From 36c74db3f1f15ceb8619899534849ef1c9cc4bdf Mon Sep 17 00:00:00 2001 From: asahoo Date: Thu, 9 Jul 2026 17:02:21 -0500 Subject: [PATCH 01/19] Initial code --- .github/workflows/playground.yaml | 45 + .github/workflows/release-build.yaml | 5 + .gitignore | 6 + .golangci.yaml | 2 + .markdownlint-cli2.yaml | 2 + architecture/06-cli.md | 35 +- docs/cli.md | 43 + docs/llms.txt | 43 + mise.lock | 52 + mise.toml | 67 +- pkg/cli/playground.go | 431 ++++++++ .../playground/assets/JsonEditor-C5A1n0-f.js | 997 ++++++++++++++++++ pkg/cli/playground/assets/index-C8zeAA2a.css | 2 + pkg/cli/playground/assets/index-CCIhad_V.js | 26 + .../playground/assets/mode-json-CmR6NCOW.js | 1 + .../assets/preload-helper-cM5i_iDb.js | 1 + .../assets/rolldown-runtime-Bh1tDfsg.js | 1 + pkg/cli/playground/index.html | 24 + pkg/cli/playground_test.go | 383 +++++++ pkg/cli/root.go | 1 + playground/.gitignore | 5 + playground/.oxfmtrc.json | 5 + playground/.oxlintrc.json | 11 + playground/bun.lock | 955 +++++++++++++++++ playground/index.html | 21 + playground/package.json | 42 + playground/src/ace-builds.d.ts | 6 + playground/src/api/cog.test.ts | 167 +++ playground/src/api/cog.ts | 212 ++++ playground/src/app/App.tsx | 250 +++++ .../src/components/SegmentedTabs.test.tsx | 29 + playground/src/components/SegmentedTabs.tsx | 21 + playground/src/components/StatusBadge.tsx | 22 + playground/src/domain/schema.test.ts | 98 ++ playground/src/domain/schema.ts | 94 ++ playground/src/domain/types.ts | 87 ++ playground/src/editor/JsonEditor.tsx | 95 ++ playground/src/editor/LazyJsonEditor.tsx | 16 + playground/src/editor/ace.ts | 6 + playground/src/editor/kumoTheme.ts | 49 + .../src/features/connection/ConnectionBar.tsx | 33 + .../src/features/connection/SetupPanel.tsx | 14 + .../src/features/connection/useConnection.ts | 97 ++ .../src/features/inputs/InputForm.test.tsx | 93 ++ playground/src/features/inputs/InputForm.tsx | 335 ++++++ .../features/predictions/OutputPanel.test.tsx | 74 ++ .../src/features/predictions/OutputPanel.tsx | 170 +++ .../features/predictions/RequestInspector.tsx | 182 ++++ .../src/features/predictions/RunToolbar.tsx | 69 ++ .../features/predictions/WebhookOptions.tsx | 29 + .../predictions/usePrediction.test.tsx | 246 +++++ .../src/features/predictions/usePrediction.ts | 452 ++++++++ playground/src/main.tsx | 7 + playground/src/styles/app.css | 5 + playground/src/styles/playground.css | 638 +++++++++++ playground/src/test/setup.ts | 19 + playground/src/theme.ts | 11 + playground/tsconfig.json | 24 + playground/vite.config.ts | 21 + playground/vitest.config.ts | 28 + 60 files changed, 6892 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/playground.yaml create mode 100644 pkg/cli/playground.go create mode 100644 pkg/cli/playground/assets/JsonEditor-C5A1n0-f.js create mode 100644 pkg/cli/playground/assets/index-C8zeAA2a.css create mode 100644 pkg/cli/playground/assets/index-CCIhad_V.js create mode 100644 pkg/cli/playground/assets/mode-json-CmR6NCOW.js create mode 100644 pkg/cli/playground/assets/preload-helper-cM5i_iDb.js create mode 100644 pkg/cli/playground/assets/rolldown-runtime-Bh1tDfsg.js create mode 100644 pkg/cli/playground/index.html create mode 100644 pkg/cli/playground_test.go create mode 100644 playground/.gitignore create mode 100644 playground/.oxfmtrc.json create mode 100644 playground/.oxlintrc.json create mode 100644 playground/bun.lock create mode 100644 playground/index.html create mode 100644 playground/package.json create mode 100644 playground/src/ace-builds.d.ts create mode 100644 playground/src/api/cog.test.ts create mode 100644 playground/src/api/cog.ts create mode 100644 playground/src/app/App.tsx create mode 100644 playground/src/components/SegmentedTabs.test.tsx create mode 100644 playground/src/components/SegmentedTabs.tsx create mode 100644 playground/src/components/StatusBadge.tsx create mode 100644 playground/src/domain/schema.test.ts create mode 100644 playground/src/domain/schema.ts create mode 100644 playground/src/domain/types.ts create mode 100644 playground/src/editor/JsonEditor.tsx create mode 100644 playground/src/editor/LazyJsonEditor.tsx create mode 100644 playground/src/editor/ace.ts create mode 100644 playground/src/editor/kumoTheme.ts create mode 100644 playground/src/features/connection/ConnectionBar.tsx create mode 100644 playground/src/features/connection/SetupPanel.tsx create mode 100644 playground/src/features/connection/useConnection.ts create mode 100644 playground/src/features/inputs/InputForm.test.tsx create mode 100644 playground/src/features/inputs/InputForm.tsx create mode 100644 playground/src/features/predictions/OutputPanel.test.tsx create mode 100644 playground/src/features/predictions/OutputPanel.tsx create mode 100644 playground/src/features/predictions/RequestInspector.tsx create mode 100644 playground/src/features/predictions/RunToolbar.tsx create mode 100644 playground/src/features/predictions/WebhookOptions.tsx create mode 100644 playground/src/features/predictions/usePrediction.test.tsx create mode 100644 playground/src/features/predictions/usePrediction.ts create mode 100644 playground/src/main.tsx create mode 100644 playground/src/styles/app.css create mode 100644 playground/src/styles/playground.css create mode 100644 playground/src/test/setup.ts create mode 100644 playground/src/theme.ts create mode 100644 playground/tsconfig.json create mode 100644 playground/vite.config.ts create mode 100644 playground/vitest.config.ts diff --git a/.github/workflows/playground.yaml b/.github/workflows/playground.yaml new file mode 100644 index 0000000000..e3d173dbda --- /dev/null +++ b/.github/workflows/playground.yaml @@ -0,0 +1,45 @@ +name: Playground + +on: + merge_group: + pull_request: + paths: + - "playground/**" + - "pkg/cli/playground/**" + - "pkg/cli/playground.go" + - "mise.toml" + - ".github/workflows/playground.yaml" + - ".github/workflows/release-build.yaml" + push: + branches: [main] + paths: + - "playground/**" + - "pkg/cli/playground/**" + - "pkg/cli/playground.go" + - "mise.toml" + - ".github/workflows/playground.yaml" + - ".github/workflows/release-build.yaml" + workflow_dispatch: + +permissions: {} + +jobs: + test: + name: Test playground + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v6 + - uses: jdx/mise-action@v4 + - name: Check formatting + run: mise run fmt:playground + - name: Lint + run: mise run lint:playground + - name: Type check + run: mise run typecheck:playground + - name: Test + run: mise run test:playground + - name: Build embedded assets + run: mise run build:playground --force + - name: Verify embedded assets are current + run: test -z "$(git status --porcelain -- pkg/cli/playground)" diff --git a/.github/workflows/release-build.yaml b/.github/workflows/release-build.yaml index 015bc34dc2..0171839b63 100644 --- a/.github/workflows/release-build.yaml +++ b/.github/workflows/release-build.yaml @@ -327,6 +327,11 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Verify embedded playground assets + run: | + mise run --force build:playground + test -z "$(git status --porcelain -- pkg/cli/playground)" + # Goreleaser builds CLI binaries and creates draft release - name: Build CLI and create draft release uses: goreleaser/goreleaser-action@v7 diff --git a/.gitignore b/.gitignore index 4c1c6b6b9d..f1b15f3a59 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,9 @@ target # Generated docs /site + +# Playground frontend +/playground/node_modules/ +/playground/coverage/ +/playground/playwright-report/ +/playground/test-results/ diff --git a/.golangci.yaml b/.golangci.yaml index 17b97cfad8..0d795ff98a 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -64,6 +64,8 @@ linters: - weakCond exclusions: generated: strict + paths: + - playground/node_modules rules: # Exclude some linters from running on test files - path: '(.+)_test\.go' diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml index 18d9b90fc6..5396b71f52 100644 --- a/.markdownlint-cli2.yaml +++ b/.markdownlint-cli2.yaml @@ -7,6 +7,8 @@ ignores: - "site/**" - "docs/llms.txt" - "CLAUDE.md" + - "playground/node_modules/**" + - "playground/coverage/**" config: default: false diff --git a/architecture/06-cli.md b/architecture/06-cli.md index b47a67ee61..fedef27ae1 100644 --- a/architecture/06-cli.md +++ b/architecture/06-cli.md @@ -6,15 +6,16 @@ The Cog CLI is a Go binary that provides commands for the full model lifecycle: ## Commands Overview -| Command | Job To Be Done | -| ----------- | ------------------------------------- | -| `cog init` | Bootstrap a new model project | -| `cog build` | Create a container image | -| `cog run` | Run a prediction in a container | -| `cog exec` | Run arbitrary commands in a container | -| `cog serve` | Start HTTP server in a container | -| `cog push` | Deploy to Replicate | -| `cog login` | Authenticate with Replicate | +| Command | Job To Be Done | +| ---------------- | ------------------------------------- | +| `cog init` | Bootstrap a new model project | +| `cog build` | Create a container image | +| `cog run` | Run a prediction in a container | +| `cog exec` | Run arbitrary commands in a container | +| `cog serve` | Start HTTP server in a container | +| `cog playground` | Open a local UI for a model API | +| `cog push` | Deploy to Replicate | +| `cog login` | Authenticate with Replicate | ## Development Commands @@ -98,6 +99,21 @@ Builds the image (if needed) and starts a container running the [Container Runti **Code**: `pkg/cli/serve.go` +### cog playground + +**Job**: Explore and call a running Cog HTTP API from a browser. + +```bash +cog serve -p 8393 +cog playground --target http://localhost:8393 +``` + +The command serves an embedded React application and reverse-proxies its requests to the selected model API. The UI and proxy accept only loopback connections, even when `--host 0.0.0.0` is used so a container can deliver webhooks. Webhook URLs contain an opaque per-prediction token and payloads are relayed to the browser over server-sent events. + +The proxy is intentionally user-directed: this is a local development tool for APIs selected by the user, not a remotely hosted gateway. + +**Code**: `pkg/cli/` owns the server and embedded assets; `playground/` owns the frontend source. + ## Build Commands ### cog build @@ -219,6 +235,7 @@ pkg/cli/ ├── predict.go # prediction execution and legacy cog predict ├── exec.go # cog exec ├── serve.go # cog serve +├── playground.go # cog playground and local proxy ├── push.go # cog push ├── login.go # cog login └── init.go # cog init diff --git a/docs/cli.md b/docs/cli.md index 9f472fae32..cddcb4caf2 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -175,6 +175,49 @@ cog login [flags] --token-stdin Pass login token on stdin instead of opening a browser. You can find your Replicate login token at https://replicate.com/auth/token ``` +## `cog playground` + +Open a browser playground for talking to a running model. + +Starts a local web server that serves a schema-driven UI (a Postman-like tool +for Cog models). Point it at any running Cog HTTP API -- for example one started +with 'cog serve' -- and the playground reflects that model's inputs and outputs +from its OpenAPI schema in real time. + +Requests are reverse-proxied through this server, so the target API does not +need to set CORS headers. The server also hosts a webhook sink so async +predictions can be observed in the browser. + +Async/webhook testing against a containerized model requires the webhook URL to +be reachable from inside the container. On Docker Desktop the default +'host.docker.internal' works once the server listens on a reachable interface +(e.g. --host 0.0.0.0). + +``` +cog playground [flags] +``` + +**Examples** + +``` + # Start a model API in one terminal + cog serve -p 8393 + + # Open the playground pointing at it + cog playground --target http://localhost:8393 +``` + +**Options** + +``` + -h, --help help for playground + --host string Address to bind (use 0.0.0.0 to receive webhooks from containers) (default "127.0.0.1") + --no-open Do not open the browser automatically + -p, --port int Port to listen on (0 picks a free port) + --target string Default target model API URL (default "http://localhost:8393") + --webhook-host string Hostname the model uses to reach this server for webhooks (default "host.docker.internal") +``` + ## `cog push` Build a Docker image from cog.yaml and push it to a container registry. diff --git a/docs/llms.txt b/docs/llms.txt index e62311b0d6..c95c4c70db 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -421,6 +421,49 @@ cog login [flags] --token-stdin Pass login token on stdin instead of opening a browser. You can find your Replicate login token at https://replicate.com/auth/token ``` +## `cog playground` + +Open a browser playground for talking to a running model. + +Starts a local web server that serves a schema-driven UI (a Postman-like tool +for Cog models). Point it at any running Cog HTTP API -- for example one started +with 'cog serve' -- and the playground reflects that model's inputs and outputs +from its OpenAPI schema in real time. + +Requests are reverse-proxied through this server, so the target API does not +need to set CORS headers. The server also hosts a webhook sink so async +predictions can be observed in the browser. + +Async/webhook testing against a containerized model requires the webhook URL to +be reachable from inside the container. On Docker Desktop the default +'host.docker.internal' works once the server listens on a reachable interface +(e.g. --host 0.0.0.0). + +``` +cog playground [flags] +``` + +**Examples** + +``` + # Start a model API in one terminal + cog serve -p 8393 + + # Open the playground pointing at it + cog playground --target http://localhost:8393 +``` + +**Options** + +``` + -h, --help help for playground + --host string Address to bind (use 0.0.0.0 to receive webhooks from containers) (default "127.0.0.1") + --no-open Do not open the browser automatically + -p, --port int Port to listen on (0 picks a free port) + --target string Default target model API URL (default "http://localhost:8393") + --webhook-host string Hostname the model uses to reach this server for webhooks (default "host.docker.internal") +``` + ## `cog push` Build a Docker image from cog.yaml and push it to a container registry. diff --git a/mise.lock b/mise.lock index 3fe3fb9ec2..bd02d43e61 100644 --- a/mise.lock +++ b/mise.lock @@ -294,6 +294,54 @@ url = "https://github.com/vektra/mockery/releases/download/v3.7.0/mockery_3.7.0_ checksum = "sha256:76d524ad1740cd02ed621d90015f538fdb53cf6cd4a1ad4d289db017fb69bd0e" url = "https://github.com/vektra/mockery/releases/download/v3.7.0/mockery_3.7.0_Windows_x86_64.tar.gz" +[[tools.bun]] +version = "1.3.14" +backend = "core:bun" + +[tools.bun."platforms.linux-arm64"] +checksum = "sha256:a27ffb63a8310375836e0d6f668ae17fa8d8d18b88c37c821c65331973a19a3b" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-aarch64.zip" + +[tools.bun."platforms.linux-arm64-musl"] +checksum = "sha256:b98e0ad3625c5c00d1d5b5ff55605c7adddbfae151861e68ade57b2d3b8703bb" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-aarch64-musl.zip" + +[tools.bun."platforms.linux-x64"] +checksum = "sha256:951ee2aee855f08595aeec6225226a298d3fea83a3dcd6465c09cbccdf7e848f" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64.zip" + +[tools.bun."platforms.linux-x64-baseline"] +checksum = "sha256:a063908ae08b7852ca10939bbdc6ceed3ddabce8fb9402dce83d65d73b36e6c7" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64-baseline.zip" + +[tools.bun."platforms.linux-x64-musl"] +checksum = "sha256:14bd9aedeebf1dba67e8def9531c89bc989ecfdf1de42e5bfcaf1b8cd9294719" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64-musl.zip" + +[tools.bun."platforms.linux-x64-musl-baseline"] +checksum = "sha256:56a7d6806cf155536c0178f0ea5fbd098e684fa509ebdb4fc0a7e19fb65382dc" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64-musl-baseline.zip" + +[tools.bun."platforms.macos-arm64"] +checksum = "sha256:d8b96221828ad6f97ac7ac0ab7e95872341af763001e8803e8267652c2652620" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-darwin-aarch64.zip" + +[tools.bun."platforms.macos-x64"] +checksum = "sha256:4183df3374623e5bab315c547cfa0974533cd457d86b73b639f7a87974cd6633" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-darwin-x64.zip" + +[tools.bun."platforms.macos-x64-baseline"] +checksum = "sha256:3e35ad6f53971a9834bf9e6786e2adf72b5f1921cc9a9c5fde073d2972944076" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-darwin-x64-baseline.zip" + +[tools.bun."platforms.windows-x64"] +checksum = "sha256:0a0620930b6675d7ba440e81f4e0e00d3cfbe096c4b140d3fff02205e9e18922" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-windows-x64.zip" + +[tools.bun."platforms.windows-x64-baseline"] +checksum = "sha256:538f9c846355d9e847b2671bc00c47da4229a0befb24df3282b739770f3b475f" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-windows-x64-baseline.zip" + [[tools.cargo-binstall]] version = "1.16.6" backend = "aqua:cargo-bins/cargo-binstall" @@ -422,6 +470,10 @@ url = "https://github.com/astral-sh/ruff/releases/download/0.14.13/ruff-x86_64-p version = "1.93.0" backend = "core:rust" +[tools.rust.options] +components = "clippy,rust-analyzer,rustfmt" +targets = "aarch64-apple-darwin,aarch64-unknown-linux-gnu,x86_64-unknown-linux-gnu" + [[tools.ty]] version = "0.0.10" backend = "aqua:astral-sh/ty" diff --git a/mise.toml b/mise.toml index bace737d06..f751297977 100644 --- a/mise.toml +++ b/mise.toml @@ -32,6 +32,7 @@ config_roots = ["."] [tools] +bun = "1.3.14" go = "latest" uv = "0.9.26" "pipx:nox" = { version = "2025.11.12", uvx = true, uvx_args = "--python-preference=managed -p 3.13" } @@ -148,7 +149,8 @@ echo "Installed $DEST/cog -> $BINARY" [tasks."build:cog"] description = "Build cog CLI (development)" -sources = ["cmd/**/*.go", "pkg/**/*.go", "go.mod", "go.sum", "VERSION.txt"] +depends = ["build:playground"] +sources = ["cmd/**/*.go", "pkg/**/*.go", "pkg/cli/playground/**", "go.mod", "go.sum", "VERSION.txt"] outputs = ["dist/go/*/cog"] run = """ #!/usr/bin/env bash @@ -158,8 +160,24 @@ set -e GOFLAGS=-buildvcs=false go run github.com/goreleaser/goreleaser/v2@latest build --clean --snapshot --single-target --id cog --output cog """ +[tasks."playground:install"] +description = "Install playground dependencies" +dir = "playground" +sources = ["package.json", "bun.lock"] +outputs = ["node_modules/.cog-playground-installed"] +run = "bun install --frozen-lockfile && touch node_modules/.cog-playground-installed" + +[tasks."build:playground"] +description = "Build embedded playground assets" +depends = ["playground:install"] +dir = "playground" +sources = ["src/**/*", "index.html", "package.json", "bun.lock", "tsconfig.json", "vite.config.ts"] +outputs = ["../pkg/cli/playground/index.html", "../pkg/cli/playground/assets/*"] +run = "bun run build" + [tasks."build:cog:release"] description = "Build cog CLI (release)" +depends = ["build:playground"] run = "go run github.com/goreleaser/goreleaser/v2@latest build --clean --single-target --id cog --output cog" [tasks."build:rust"] @@ -292,6 +310,7 @@ set -e mise run test:go mise run test:rust mise run test:python +mise run test:playground if [ "${INTEGRATION_TESTS:-}" = "1" ]; then mise run test:integration fi @@ -310,6 +329,12 @@ description = "Run Python SDK tests (latest supported Python)" depends = ["build:coglet:wheel"] run = "nox -s tests -p 3.13" +[tasks."test:playground"] +description = "Run playground tests with coverage" +depends = ["playground:install"] +dir = "playground" +run = "bun run test:coverage" + [tasks."test:python:all"] description = "Run Python SDK tests on all supported Python versions" depends = ["build:coglet:wheel"] @@ -388,7 +413,7 @@ fi [tasks.fmt] alias = ["format", "fmt:check", "format:check"] description = "Check formatting for all languages (non-destructive)" -run = [{ tasks = ["fmt:go", "fmt:rust", "fmt:python", "fmt:docs"] }] +run = [{ tasks = ["fmt:go", "fmt:rust", "fmt:python", "fmt:playground", "fmt:docs"] }] [tasks."fmt:fix"] alias = "format:fix" @@ -398,6 +423,7 @@ run = [ "fmt:go:fix", "fmt:rust:fix", "fmt:python:fix", + "fmt:playground:fix", "fmt:docs:fix", ] }, ] @@ -437,6 +463,19 @@ run = "ruff format --check ." description = "Fix Python formatting" run = "ruff format ." +[tasks."fmt:playground"] +alias = "fmt:playground:check" +description = "Check playground formatting" +depends = ["playground:install"] +dir = "playground" +run = "bun run fmt:check" + +[tasks."fmt:playground:fix"] +description = "Fix playground formatting" +depends = ["playground:install"] +dir = "playground" +run = "bun run fmt" + # Docs formatting [tasks."fmt:docs"] alias = "fmt:docs:check" @@ -454,7 +493,7 @@ run = ["bash ./tools/format-markdown.sh --write", "markdownlint-cli2 --fix"] [tasks.lint] alias = "lint:check" description = "Run linters for all languages (non-destructive)" -run = [{ tasks = ["lint:go", "lint:rust", "lint:python", "lint:docs"] }] +run = [{ tasks = ["lint:go", "lint:rust", "lint:python", "lint:playground", "lint:docs"] }] [tasks."lint:fix"] description = "Fix lint issues for all languages" @@ -463,6 +502,7 @@ run = [ "lint:go:fix", "lint:rust:fix", "lint:python:fix", + "lint:playground:fix", "lint:docs:fix", ] }, ] @@ -520,13 +560,26 @@ mise run typecheck:python description = "Fix Python lint issues" run = "ruff check --fix ." +[tasks."lint:playground"] +alias = "lint:playground:check" +description = "Lint playground code" +depends = ["playground:install"] +dir = "playground" +run = "bun run lint" + +[tasks."lint:playground:fix"] +description = "Fix playground lint issues" +depends = ["playground:install"] +dir = "playground" +run = "bun run lint:fix" + # ============================================================================= # Typecheck tasks # ============================================================================= [tasks.typecheck] description = "Run type checking for all languages" -run = [{ tasks = ["typecheck:rust", "typecheck:python"] }] +run = [{ tasks = ["typecheck:rust", "typecheck:python", "typecheck:playground"] }] [tasks."typecheck:rust"] description = "Type check Rust code (cargo check)" @@ -536,6 +589,12 @@ run = "cargo check --manifest-path crates/Cargo.toml --workspace" description = "Type check Python code" run = "nox -s typecheck" +[tasks."typecheck:playground"] +description = "Type check playground code" +depends = ["playground:install"] +dir = "playground" +run = "bun run typecheck" + # ============================================================================= # Generate tasks # ============================================================================= diff --git a/pkg/cli/playground.go b/pkg/cli/playground.go new file mode 100644 index 0000000000..2586142aaf --- /dev/null +++ b/pkg/cli/playground.go @@ -0,0 +1,431 @@ +package cli + +import ( + "context" + "embed" + "encoding/json" + "errors" + "fmt" + "io" + "io/fs" + "net" + "net/http" + "net/http/httputil" + "net/url" + "os" + "os/exec" + "os/signal" + "runtime" + "strings" + "sync" + "time" + + "github.com/spf13/cobra" + + "github.com/replicate/cog/pkg/util/console" +) + +//go:embed playground +var playgroundUI embed.FS + +// maxWebhookBody caps a single webhook payload relayed to the browser. +const maxWebhookBody = 10 * 1024 * 1024 + +const ( + maxConcurrentEventStreams = 4 + maxConcurrentWebhooks = 4 + webhookBackpressureWait = time.Second +) + +var ( + playgroundPort = 0 + playgroundTarget = "http://localhost:8393" + playgroundHost = "127.0.0.1" + playgroundWebhookHost = "host.docker.internal" + playgroundNoOpen = false +) + +func newPlaygroundCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "playground", + Short: "Open a browser playground for talking to a running model", + Long: `Open a browser playground for talking to a running model. + +Starts a local web server that serves a schema-driven UI (a Postman-like tool +for Cog models). Point it at any running Cog HTTP API -- for example one started +with 'cog serve' -- and the playground reflects that model's inputs and outputs +from its OpenAPI schema in real time. + +Requests are reverse-proxied through this server, so the target API does not +need to set CORS headers. The server also hosts a webhook sink so async +predictions can be observed in the browser. + +Async/webhook testing against a containerized model requires the webhook URL to +be reachable from inside the container. On Docker Desktop the default +'host.docker.internal' works once the server listens on a reachable interface +(e.g. --host 0.0.0.0).`, + Example: ` # Start a model API in one terminal + cog serve -p 8393 + + # Open the playground pointing at it + cog playground --target http://localhost:8393`, + RunE: cmdPlayground, + Args: cobra.MaximumNArgs(0), + SuggestFor: []string{"ui", "gui"}, + } + + cmd.Flags().IntVarP(&playgroundPort, "port", "p", playgroundPort, "Port to listen on (0 picks a free port)") + cmd.Flags().StringVar(&playgroundTarget, "target", playgroundTarget, "Default target model API URL") + cmd.Flags().StringVar(&playgroundHost, "host", playgroundHost, "Address to bind (use 0.0.0.0 to receive webhooks from containers)") + cmd.Flags().StringVar(&playgroundWebhookHost, "webhook-host", playgroundWebhookHost, "Hostname the model uses to reach this server for webhooks") + cmd.Flags().BoolVar(&playgroundNoOpen, "no-open", playgroundNoOpen, "Do not open the browser automatically") + + return cmd +} + +// playgroundServer holds the runtime state for a playground instance. +type playgroundServer struct { + hub *eventHub + webhookBase string + eventSlots chan struct{} + webhookSlots chan struct{} +} + +func cmdPlayground(cmd *cobra.Command, _ []string) error { + ctx, stop := signal.NotifyContext(cmd.Context(), os.Interrupt) + defer stop() + + uiFS, err := fs.Sub(playgroundUI, "playground") + if err != nil { + return fmt.Errorf("loading playground assets: %w", err) + } + + ln, err := net.Listen("tcp", fmt.Sprintf("%s:%d", playgroundHost, playgroundPort)) + if err != nil { + return fmt.Errorf("starting playground server: %w", err) + } + port := ln.Addr().(*net.TCPAddr).Port + + srvState := &playgroundServer{ + hub: newEventHub(), + webhookBase: fmt.Sprintf("http://%s:%d", playgroundWebhookHost, port), + eventSlots: make(chan struct{}, maxConcurrentEventStreams), + webhookSlots: make(chan struct{}, maxConcurrentWebhooks), + } + + mux := srvState.routes(uiFS) + + browserHost := playgroundHost + if browserHost == "0.0.0.0" || browserHost == "" { + browserHost = "127.0.0.1" + } + uiURL := fmt.Sprintf("http://%s:%d/?target=%s", browserHost, port, url.QueryEscape(playgroundTarget)) + console.Infof("Cog playground running at %s", uiURL) + console.Info("Press Ctrl+C to stop.") + if !playgroundNoOpen { + maybeOpenBrowser(uiURL) + } + + srv := &http.Server{ + Handler: mux, + ReadHeaderTimeout: 10 * time.Second, + ReadTimeout: 5 * time.Minute, + IdleTimeout: 60 * time.Second, + MaxHeaderBytes: 64 * 1024, + } + + // Shut down gracefully when the command's context is canceled (Ctrl+C). + go func() { + <-ctx.Done() + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = srv.Shutdown(shutdownCtx) + }() + + if err := srv.Serve(ln); err != nil && !errors.Is(err, http.ErrServerClosed) { + return err + } + return nil +} + +// routes builds the HTTP handler: static UI, the reverse proxy, and the webhook +// sink + event relay. +func (s *playgroundServer) routes(uiFS fs.FS) http.Handler { + if s.eventSlots == nil { + s.eventSlots = make(chan struct{}, maxConcurrentEventStreams) + } + if s.webhookSlots == nil { + s.webhookSlots = make(chan struct{}, maxConcurrentWebhooks) + } + mux := http.NewServeMux() + mux.Handle("/", http.FileServerFS(uiFS)) + mux.HandleFunc("/proxy/", handlePlaygroundProxy) + mux.HandleFunc("/webhook/", s.handleWebhook) + mux.HandleFunc("/events", s.handleEvents) + mux.HandleFunc("/config", s.handleConfig) + return loopbackOnly(mux) +} + +// loopbackOnly keeps the UI and user-directed proxy private even when the +// server listens on 0.0.0.0 for container webhook callbacks. +func loopbackOnly(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if strings.HasPrefix(r.URL.Path, "/webhook/") || isLoopbackRemote(r.RemoteAddr) { + next.ServeHTTP(w, r) + return + } + http.Error(w, "playground UI and proxy are only available from this machine", http.StatusForbidden) + }) +} + +func isLoopbackRemote(remoteAddr string) bool { + host, _, err := net.SplitHostPort(remoteAddr) + if err != nil { + return false + } + ip := net.ParseIP(host) + return ip != nil && ip.IsLoopback() +} + +// handleConfig reports runtime configuration the UI needs, notably the webhook +// base URL the model should call back on. +func (s *playgroundServer) handleConfig(w http.ResponseWriter, _ *http.Request) { + w.Header().Set("Content-Type", "application/json") + _ = json.NewEncoder(w).Encode(map[string]string{"webhookBase": s.webhookBase}) +} + +// handleWebhook receives a webhook delivery from a model and relays its body to +// any browser subscribed to the matching token's event stream. +func (s *playgroundServer) handleWebhook(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + w.Header().Set("Allow", http.MethodPost) + http.Error(w, "method not allowed", http.StatusMethodNotAllowed) + return + } + token := strings.TrimPrefix(r.URL.Path, "/webhook/") + if token == "" || strings.Contains(token, "/") || len(token) > 128 { + http.Error(w, "missing token", http.StatusNotFound) + return + } + if !s.hub.hasSubscribers(token) { + http.Error(w, "no browser is ready to receive this webhook", http.StatusServiceUnavailable) + return + } + acquireTimer := time.NewTimer(webhookBackpressureWait) + defer acquireTimer.Stop() + select { + case s.webhookSlots <- struct{}{}: + defer func() { <-s.webhookSlots }() + case <-acquireTimer.C: + http.Error(w, "too many concurrent webhooks", http.StatusServiceUnavailable) + return + } + body, err := io.ReadAll(http.MaxBytesReader(w, r.Body, maxWebhookBody)) + if err != nil { + var maxBytesError *http.MaxBytesError + if errors.As(err, &maxBytesError) { + http.Error(w, "webhook body too large", http.StatusRequestEntityTooLarge) + return + } + http.Error(w, "cannot read webhook body", http.StatusBadRequest) + return + } + if !s.hub.publish(token, body, webhookBackpressureWait) { + http.Error(w, "no browser is ready to receive this webhook", http.StatusServiceUnavailable) + return + } + w.Header().Set("Content-Type", "application/json") + _, _ = fmt.Fprint(w, "{}") +} + +// handleEvents streams relayed webhook payloads to the browser over SSE. +func (s *playgroundServer) handleEvents(w http.ResponseWriter, r *http.Request) { + token := r.URL.Query().Get("token") + if token == "" { + http.Error(w, "missing token", http.StatusBadRequest) + return + } + select { + case s.eventSlots <- struct{}{}: + defer func() { <-s.eventSlots }() + default: + http.Error(w, "too many event streams", http.StatusServiceUnavailable) + return + } + flusher, ok := w.(http.Flusher) + if !ok { + http.Error(w, "streaming unsupported", http.StatusInternalServerError) + return + } + + // Subscribe before flushing headers so the caller is guaranteed to be + // receiving by the time it observes the response (no missed events). + ch := s.hub.subscribe(token) + defer s.hub.unsubscribe(token, ch) + + w.Header().Set("Content-Type", "text/event-stream") + w.Header().Set("Cache-Control", "no-cache") + w.Header().Set("Connection", "keep-alive") + flusher.Flush() + + keepAlive := time.NewTicker(15 * time.Second) + defer keepAlive.Stop() + ctx := r.Context() + for { + select { + case <-ctx.Done(): + return + case msg := <-ch: + writeSSEData(w, msg) + flusher.Flush() + case <-keepAlive.C: + _, _ = fmt.Fprint(w, ": keep-alive\n\n") + flusher.Flush() + } + } +} + +// writeSSEData emits a payload as a single SSE event, prefixing every line with +// "data: ". This preserves embedded newlines without letting them terminate the +// event early or inject additional SSE fields (e.g. a spoofed "event:" line). +func writeSSEData(w io.Writer, msg []byte) { + for line := range strings.SplitSeq(string(msg), "\n") { + _, _ = fmt.Fprintf(w, "data: %s\n", line) + } + _, _ = fmt.Fprint(w, "\n") +} + +// handlePlaygroundProxy reverse-proxies /proxy/* to the target model API. The +// target origin is taken from the X-Cog-Target header (set by fetch requests) +// or the cog_target query parameter (used for plain navigations like the schema +// link). Proxying keeps the browser same-origin, sidestepping CORS, and streams +// SSE responses through unbuffered. +func handlePlaygroundProxy(w http.ResponseWriter, r *http.Request) { + rawTarget := r.Header.Get("X-Cog-Target") + if rawTarget == "" { + rawTarget = r.URL.Query().Get("cog_target") + } + if rawTarget == "" { + writeProxyError(w, http.StatusBadRequest, "no target API set") + return + } + + target, err := url.Parse(strings.TrimRight(rawTarget, "/")) + if err != nil || target.Host == "" || target.User != nil || target.Fragment != "" || (target.Scheme != "http" && target.Scheme != "https") { + writeProxyError(w, http.StatusBadRequest, "invalid target API URL") + return + } + + proxy := &httputil.ReverseProxy{ + FlushInterval: -1, // flush immediately so SSE streams in real time + Rewrite: func(pr *httputil.ProxyRequest) { + // Forward the path after /proxy, dropping the cog_target hint. + escapedPath := strings.TrimPrefix(pr.In.URL.EscapedPath(), "/proxy") + if escapedPath == "" { + escapedPath = "/" + } + path, err := url.PathUnescape(escapedPath) + if err != nil { + path = strings.TrimPrefix(pr.In.URL.Path, "/proxy") + } + pr.Out.URL.Path = path + pr.Out.URL.RawPath = escapedPath + query := pr.Out.URL.Query() + query.Del("cog_target") + pr.Out.URL.RawQuery = query.Encode() + pr.SetURL(target) + pr.Out.Host = target.Host + pr.Out.Header.Del("X-Cog-Target") + }, + ErrorHandler: func(w http.ResponseWriter, _ *http.Request, err error) { + writeProxyError(w, http.StatusBadGateway, "cannot reach target API: "+err.Error()) + }, + } + // The proxy target is user-specified by design (a local model API); SSRF to + // it is the intended behavior of this dev tool, not a vulnerability. + proxy.ServeHTTP(w, r) //nolint:gosec // user-directed proxy target is intentional +} + +func writeProxyError(w http.ResponseWriter, status int, message string) { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(status) + // message is server-controlled text; encode minimally as a JSON string. + _, _ = fmt.Fprintf(w, `{"error":%q}`, message) +} + +// maybeOpenBrowser best-effort opens a URL in the default browser. +func maybeOpenBrowser(target string) { + var cmd *exec.Cmd + switch runtime.GOOS { + case "darwin": + cmd = exec.Command("open", target) + case "windows": + cmd = exec.Command("rundll32", "url.dll,FileProtocolHandler", target) + default: + cmd = exec.Command("xdg-open", target) + } + if err := cmd.Start(); err == nil { + go func() { _ = cmd.Wait() }() + } +} + +// eventHub fans out relayed webhook payloads to browser SSE subscribers keyed +// by an opaque token. +type eventHub struct { + mu sync.Mutex + subs map[string]map[chan []byte]struct{} +} + +func newEventHub() *eventHub { + return &eventHub{subs: make(map[string]map[chan []byte]struct{})} +} + +func (h *eventHub) subscribe(token string) chan []byte { + h.mu.Lock() + defer h.mu.Unlock() + ch := make(chan []byte, 4) + if h.subs[token] == nil { + h.subs[token] = make(map[chan []byte]struct{}) + } + h.subs[token][ch] = struct{}{} + return ch +} + +func (h *eventHub) hasSubscribers(token string) bool { + h.mu.Lock() + defer h.mu.Unlock() + return len(h.subs[token]) > 0 +} + +func (h *eventHub) unsubscribe(token string, ch chan []byte) { + h.mu.Lock() + defer h.mu.Unlock() + subs := h.subs[token] + if subs == nil { + return + } + delete(subs, ch) + if len(subs) == 0 { + delete(h.subs, token) + } +} + +func (h *eventHub) publish(token string, msg []byte, wait time.Duration) bool { + h.mu.Lock() + defer h.mu.Unlock() + subs := h.subs[token] + if len(subs) == 0 { + return false + } + + timer := time.NewTimer(wait) + defer timer.Stop() + for ch := range subs { + select { + case ch <- msg: + case <-timer.C: + return false + } + } + return true +} diff --git a/pkg/cli/playground/assets/JsonEditor-C5A1n0-f.js b/pkg/cli/playground/assets/JsonEditor-C5A1n0-f.js new file mode 100644 index 0000000000..8776b11475 --- /dev/null +++ b/pkg/cli/playground/assets/JsonEditor-C5A1n0-f.js @@ -0,0 +1,997 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mode-json-CmR6NCOW.js","assets/rolldown-runtime-Bh1tDfsg.js"])))=>i.map(i=>d[i]); +import{n as e,t}from"./rolldown-runtime-Bh1tDfsg.js";import{n,r,t as i}from"./preload-helper-cM5i_iDb.js";var a=t(((e,t)=>{(function(){var e=`ace`,t=(function(){return this})();if(!t&&typeof window<`u`&&(t=window),!e&&typeof requirejs<`u`)return;var n=function(e,t,r){if(typeof e!=`string`){n.original?n.original.apply(this,arguments):(console.error(`dropping module because define wasn't a string.`),console.trace());return}arguments.length==2&&(r=t),n.modules[e]||(n.payloads[e]=r,n.modules[e]=null)};n.modules={},n.payloads={};var r=function(e,t,n){if(typeof t==`string`){var r=o(e,t);if(r!=null)return n&&n(),r}else if(Object.prototype.toString.call(t)===`[object Array]`){for(var a=[],s=0,c=t.length;sn.length)&&(t=n.length),t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.repeat||r(String.prototype,`repeat`,function(e){for(var t=``,n=this;e>0;)e&1&&(t+=n),(e>>=1)&&(n+=n);return t}),String.prototype.includes||r(String.prototype,`includes`,function(e,t){return this.indexOf(e,t)!=-1}),Object.assign||(Object.assign=function(e){if(e==null)throw TypeError(`Cannot convert undefined or null to object`);for(var t=Object(e),n=1;n>>0,r=arguments[1]>>0,i=r<0?Math.max(n+r,0):Math.min(r,n),a=arguments[2],o=a===void 0?n:a>>0,s=o<0?Math.max(n+o,0):Math.min(o,n);i0;)t&1&&(n+=e),(t>>=1)&&(e+=e);return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,``)},t.stringTrimRight=function(e){return e.replace(i,``)},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,r=e.length;n65535?2:1}}),ace.define(`ace/lib/useragent`,[`require`,`exports`,`module`],function(e,t,n){t.OS={LINUX:`LINUX`,MAC:`MAC`,WINDOWS:`WINDOWS`},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var r=typeof navigator==`object`?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||[`other`])[0].toLowerCase(),a=r.userAgent||``,o=r.appName||``;t.isWin=i==`win`,t.isMac=i==`mac`,t.isLinux=i==`linux`,t.isIE=o==`Microsoft Internet Explorer`||o.indexOf(`MSAppHost`)>=0?parseFloat((a.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((a.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=a.match(/ Gecko\/\d+/),t.isOpera=typeof opera==`object`&&Object.prototype.toString.call(window.opera)==`[object Opera]`,t.isWebKit=parseFloat(a.split(`WebKit/`)[1])||void 0,t.isChrome=parseFloat(a.split(` Chrome/`)[1])||void 0,t.isSafari=parseFloat(a.split(` Safari/`)[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(a.split(` Edge/`)[1])||void 0,t.isAIR=a.indexOf(`AdobeAIR`)>=0,t.isAndroid=a.indexOf(`Android`)>=0,t.isChromeOS=a.indexOf(` CrOS `)>=0,t.isIOS=/iPad|iPhone|iPod/.test(a)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define(`ace/lib/dom`,[`require`,`exports`,`module`,`ace/lib/useragent`],function(e,t,n){var r=e("./useragent"),i=`http://www.w3.org/1999/xhtml`;t.buildDom=function e(t,n,r){if(typeof t==`string`&&t){var i=document.createTextNode(t);return n&&n.appendChild(i),i}if(!Array.isArray(t))return t&&t.appendChild&&n&&n.appendChild(t),t;if(typeof t[0]!=`string`||!t[0]){for(var a=[],o=0;o`u`)){if(o){if(r)s();else if(r===!1)return o.push([e,n])}if(!a){var i=r;!r||!r.getRootNode?i=document:(i=r.getRootNode(),(!i||i==r)&&(i=document));var c=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+=` +/*# sourceURL=ace/css/`+n+` */`);var l=t.createElement(`style`);l.appendChild(c.createTextNode(e)),n&&(l.id=n),i==c&&(i=t.getDocumentHead(c)),i.insertBefore(l,i.firstChild)}}}if(t.importCssString=c,t.importCssStylsheet=function(e,n){t.buildDom([`link`,{rel:`stylesheet`,href:e}],t.getDocumentHead(n))},t.$fixPositionBug=function(e){var t=e.getBoundingClientRect();if(e.style.left){var n=parseFloat(e.style.left),r=+t.left;Math.abs(n-r)>1&&(e.style.left=2*n-r+`px`)}if(e.style.right){var n=parseFloat(e.style.right),r=window.innerWidth-t.right;Math.abs(n-r)>1&&(e.style.right=2*n-r+`px`)}if(e.style.top){var n=parseFloat(e.style.top),r=+t.top;Math.abs(n-r)>1&&(e.style.top=2*n-r+`px`)}if(e.style.bottom){var n=parseFloat(e.style.bottom),r=window.innerHeight-t.bottom;Math.abs(n-r)>1&&(e.style.bottom=2*n-r+`px`)}},t.scrollbarWidth=function(e){var n=t.createElement(`ace_inner`);n.style.width=`100%`,n.style.minWidth=`0px`,n.style.height=`200px`,n.style.display=`block`;var r=t.createElement(`ace_outer`),i=r.style;i.position=`absolute`,i.left=`-10000px`,i.overflow=`hidden`,i.width=`200px`,i.minWidth=`0px`,i.height=`150px`,i.display=`block`,r.appendChild(n);var a=e&&e.documentElement||document&&document.documentElement;if(!a)return 0;a.appendChild(r);var o=n.offsetWidth;i.overflow=`scroll`;var s=n.offsetWidth;return o===s&&(s=r.clientWidth),a.removeChild(r),o-s},t.computedStyle=function(e,t){return window.getComputedStyle(e,``)||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=!r.isWin||typeof window<`u`&&window.devicePixelRatio>=1.5,r.isChromeOS&&(t.HI_DPI=!1),typeof document<`u`){var l=document.createElement(`div`);t.HI_DPI&&l.style.transform!==void 0&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&l.style.animationName!==void 0&&(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform=`translate(`+Math.round(t)+`px, `+Math.round(n)+`px)`}:t.translate=function(e,t,n){e.style.top=Math.round(n)+`px`,e.style.left=Math.round(t)+`px`}}),ace.define(`ace/lib/net`,[`require`,`exports`,`module`,`ace/lib/dom`],function(e,t,n){var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open(`GET`,e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement(`script`);i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){(n||!i.readyState||i.readyState==`loaded`||i.readyState==`complete`)&&(i=i.onload=i.onreadystatechange=null,n||t())}},t.qualifyURL=function(e){var t=document.createElement(`a`);return t.href=e,t.href}}),ace.define(`ace/lib/oop`,[`require`,`exports`,`module`],function(e,t,n){t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(`ace/lib/event_emitter`,[`require`,`exports`,`module`],function(e,t,n){var r={},i=function(){this.propagationStopped=!0},a=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||={},this._defaultHandlers||={};var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!(!n.length&&!r)){(typeof t!=`object`||!t)&&(t={}),t.type||=e,t.stopPropagation||=i,t.preventDefault||=a,n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=s[t+`Path`];return o==null?o=s.basePath:r==`/`&&(t=r=``),o&&o.slice(-1)!=`/`&&(o+=`/`),o+t+r+i+this.get(`suffix`)},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t};var c=function(t,n){if(t===`ace/theme/textmate`||t===`./theme/textmate`)return n(null,e("./theme/textmate"));if(l)return l(t,n);console.error(`loader is not configured`)},l;t.setLoader=function(e){l=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(e,n){var r;if(Array.isArray(e))var a=e[0],o=e[1];else if(typeof e==`string`)var o=e;var s=function(e){if(e&&!t.$loading[o])return n&&n(e);if(t.$loading[o]||(t.$loading[o]=[]),t.$loading[o].push(n),!(t.$loading[o].length>1)){var r=function(){c(o,function(e,n){n&&(t.$loaded[o]=n),t._emit(`load.module`,{name:o,module:n});var r=t.$loading[o];t.$loading[o]=null,r.forEach(function(e){e&&e(n)})})};if(!t.get(`packaged`))return r();i.loadScript(t.moduleUrl(o,a),r),u()}};if(t.dynamicModules[o])t.dynamicModules[o]().then(function(e){e.default?s(e.default):s(e)});else{try{r=this.$require(o)}catch{}s(r||t.$loaded[o])}},t.$require=function(e){if(typeof n.require==`function`)return n.require(e)},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var u=function(){!s.basePath&&!s.workerPath&&!s.modePath&&!s.themePath&&!Object.keys(s.$moduleUrls).length&&(console.error(`Unable to infer path to ace from script src,`,`use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes`,`or with webpack use ace/webpack-resolver`),u=function(){})};t.version=`1.44.0`}),ace.define(`ace/loader_build`,[`require`,`exports`,`module`,`ace/lib/fixoldbrowsers`,`ace/config`],function(e,t,n){e("./lib/fixoldbrowsers");var r=e("./config");r.setLoader(function(t,n){e([t],function(e){n(null,e)})});var i=(function(){return this||typeof window<`u`&&window})();n.exports=function(t){r.init=a,r.$require=e,t.require=e,typeof define==`function`&&(t.define=define)},a(!0);function a(t){if(!(!i||!i.document)){r.set(`packaged`,t||e.packaged||n.packaged||i.define&&define.packaged);var a={},s=``,c=document.currentScript||document._currentScript,l=c&&c.ownerDocument||document;c&&c.src&&(s=c.src.split(/[?#]/)[0].split(`/`).slice(0,-1).join(`/`)||``);for(var u=l.getElementsByTagName(`script`),d=0;d [`+this.end.row+`/`+this.end.column+`]`},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:+(t==0)):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e==`object`?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e==`object`?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0&&!(this.isEnd(e,t)||this.isStart(e,t))},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0&&!this.isEnd(e,t)},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0&&!this.isStart(e,t)},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column):ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.rown)var i={row:n+1,column:0};else if(this.start.row1?(s++,s>4&&(s=1)):s=1:s=0,i.isIE){var o=Math.abs(e.clientX-c)>5||Math.abs(e.clientY-l)>5;(!u||o)&&(s=1),u&&clearTimeout(u),u=setTimeout(function(){u=null},n[s-1]||600),s==1&&(c=e.clientX,l=e.clientY)}if(e._clicks=s,r[a](`mousedown`,e),s>4)s=0;else if(s>1)return r[a](f[s],e)}Array.isArray(e)||(e=[e]),e.forEach(function(e){d(e,`mousedown`,p,o)})};function p(e){return 0|!!e.ctrlKey|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}t.getModifierString=function(e){return r.KEY_MODS[p(e)]};function m(e,t,n){var s=p(t);if(!n&&t.code&&(n=r.$codeToKeyCode[t.code]||n),!i.isMac&&a){if(t.getModifierState&&(t.getModifierState(`OS`)||t.getModifierState(`Win`))&&(s|=8),a.altGr)if((3&s)!=3)a.altGr=0;else return;if(n===18||n===17){var c=t.location;n===17&&c===1?a[n]==1&&(o=t.timeStamp):n===18&&s===3&&c===2&&t.timeStamp-o<50&&(a.altGr=!0)}}if(n in r.MODIFIER_KEYS&&(n=-1),!(!s&&n===13&&t.location===3&&(e(t,s,-n),t.defaultPrevented))){if(i.isChromeOS&&s&8){if(e(t,s,n),t.defaultPrevented)return;s&=-9}return!s&&!(n in r.FUNCTION_KEYS)&&!(n in r.PRINTABLE_KEYS)?!1:e(t,s,n)}}t.addCommandKeyListener=function(e,n,r){var i=null;d(e,`keydown`,function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=m(n,e,e.keyCode);return i=e.defaultPrevented,t},r),d(e,`keypress`,function(e){i&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),i=null)},r),d(e,`keyup`,function(e){a[e.keyCode]=null},r),a||(h(),d(window,`focus`,h))};function h(){a=Object.create(null)}if(typeof window==`object`&&window.postMessage&&!i.isOldIE){var g=1;t.nextTick=function(e,n){n||=window;var r=`zero-timeout-message-`+g++,i=function(a){a.data==r&&(t.stopPropagation(a),f(n,`message`,i),e())};d(n,`message`,i),n.postMessage(r,`*`)}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function n(){t.$idleBlocked?setTimeout(n,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window==`object`&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define(`ace/clipboard`,[`require`,`exports`,`module`],function(e,t,n){var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define(`ace/keyboard/textinput`,[`require`,`exports`,`module`,`ace/lib/event`,`ace/config`,`ace/lib/useragent`,`ace/lib/dom`,`ace/lib/lang`,`ace/clipboard`,`ace/lib/keys`],function(e,t,n){var r=e("../lib/event"),i=e("../config").nls,a=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),c=e("../clipboard"),l=a.isChrome<18,u=a.isIE,d=a.isChrome>63,f=400,p=e("../lib/keys"),m=p.KEY_MODS,h=a.isIOS,g=h?/\s/:/\n/,_=a.isMobile;t.TextInput=function(){function e(e,t){var n=this;this.host=t,this.text=o.createElement(`textarea`),this.text.className=`ace_text-input`,this.text.setAttribute(`wrap`,`off`),this.text.setAttribute(`autocomplete`,`off`),this.text.setAttribute(`autocorrect`,`off`),this.text.setAttribute(`autocapitalize`,`off`),this.text.setAttribute(`spellcheck`,`false`),this.text.style.opacity=`0`,e.insertBefore(this.text,e.firstChild),this.copied=!1,this.pasted=!1,this.inComposition=!1,this.sendingText=!1,this.tempStyle=``,_||(this.text.style.fontSize=`1px`),this.commandMode=!1,this.ignoreFocusEvents=!1,this.lastValue=``,this.lastSelectionStart=0,this.lastSelectionEnd=0,this.lastRestoreEnd=0,this.rowStart=2**53-1,this.rowEnd=-(2**53-1),this.numberOfExtraLines=0;try{this.$isFocused=document.activeElement===this.text}catch{}this.cancelComposition=this.cancelComposition.bind(this),this.setAriaOptions({role:`textbox`}),r.addListener(this.text,`blur`,function(e){n.ignoreFocusEvents||(t.onBlur(e),n.$isFocused=!1)},t),r.addListener(this.text,`focus`,function(e){if(!n.ignoreFocusEvents){if(n.$isFocused=!0,a.isEdge)try{if(!document.hasFocus())return}catch{}t.onFocus(e),a.isEdge?setTimeout(n.resetSelection.bind(n)):n.resetSelection()}},t),this.$focusScroll=!1,t.on(`beforeEndOperation`,function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r!=`insertstring`){var i=r&&(e.docChanged||e.selectionChanged);n.inComposition&&i&&(n.lastValue=n.text.value=``,n.onCompositionEnd()),n.resetSelection()}}),t.on(`changeSelection`,this.setAriaLabel.bind(this)),this.resetSelection=h?this.$resetSelectionIOS:this.$resetSelection,this.$isFocused&&t.onFocus(),this.inputHandler=null,this.afterContextMenu=!1,r.addCommandKeyListener(this.text,function(e,r,i){if(!n.inComposition)return t.onCommandKey(e,r,i)},t),r.addListener(this.text,`select`,this.onSelect.bind(this),t),r.addListener(this.text,`input`,this.onInput.bind(this),t),r.addListener(this.text,`cut`,this.onCut.bind(this),t),r.addListener(this.text,`copy`,this.onCopy.bind(this),t),r.addListener(this.text,`paste`,this.onPaste.bind(this),t),(!(`oncut`in this.text)||!(`oncopy`in this.text)||!(`onpaste`in this.text))&&r.addListener(e,`keydown`,function(e){if(!(a.isMac&&!e.metaKey||!e.ctrlKey))switch(e.keyCode){case 67:n.onCopy(e);break;case 86:n.onPaste(e);break;case 88:n.onCut(e);break}},t),this.syncComposition=s.delayedCall(this.onCompositionUpdate.bind(this),50).schedule.bind(null,null),r.addListener(this.text,`compositionstart`,this.onCompositionStart.bind(this),t),r.addListener(this.text,`compositionupdate`,this.onCompositionUpdate.bind(this),t),r.addListener(this.text,`keyup`,this.onKeyup.bind(this),t),r.addListener(this.text,`keydown`,this.syncComposition.bind(this),t),r.addListener(this.text,`compositionend`,this.onCompositionEnd.bind(this),t),this.closeTimeout,r.addListener(this.text,`mouseup`,this.$onContextMenu.bind(this),t),r.addListener(this.text,`mousedown`,function(e){e.preventDefault(),n.onContextMenuClose()},t),r.addListener(t.renderer.scroller,`contextmenu`,this.$onContextMenu.bind(this),t),r.addListener(this.text,`contextmenu`,this.$onContextMenu.bind(this),t),h&&this.addIosSelectionHandler(e,t,this.text)}return e.prototype.addIosSelectionHandler=function(e,t,n){var r=this,i=null,a=!1;n.addEventListener(`keydown`,function(e){i&&clearTimeout(i),a=!0},!0),n.addEventListener(`keyup`,function(e){i=setTimeout(function(){a=!1},100)},!0);var o=function(e){if(document.activeElement===n&&!(a||r.inComposition||t.$mouseHandler.isMousePressed)&&!r.copied){var i=n.selectionStart,o=n.selectionEnd,s=null,c=0;if(i==0?s=p.up:i==1?s=p.home:o>r.lastSelectionEnd&&r.lastValue[o]==` +`?s=p.end:ir.lastSelectionEnd&&r.lastValue.slice(0,o).split(` +`).length>2?s=p.down:o>r.lastSelectionEnd&&r.lastValue[o-1]==` `?(s=p.right,c=m.option):(o>r.lastSelectionEnd||o==r.lastSelectionEnd&&r.lastSelectionEnd!=r.lastSelectionStart&&i==o)&&(s=p.right),i!==o&&(c|=m.shift),s){if(!t.onCommandKey({},c,s)&&t.commands){s=p.keyCodeToString(s);var l=t.commands.findKeyCommand(c,s);l&&t.execCommand(l)}r.lastSelectionStart=i,r.lastSelectionEnd=o,r.resetSelection(``)}}};document.addEventListener(`selectionchange`,o),t.on(`destroy`,function(){document.removeEventListener(`selectionchange`,o)})},e.prototype.onContextMenuClose=function(){var e=this;clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(function(){e.tempStyle&&=(e.text.style.cssText=e.tempStyle,``),e.host.renderer.$isMousePressed=!1,e.host.renderer.$keepTextAreaAtCursor&&e.host.renderer.$moveTextAreaToCursor()},0)},e.prototype.$onContextMenu=function(e){this.host.textInput.onContextMenu(e),this.onContextMenuClose()},e.prototype.onKeyup=function(e){e.keyCode==27&&this.text.value.lengthf+100||g.test(n)||_&&this.lastSelectionStart<1&&this.lastSelectionStart==this.lastSelectionEnd)&&this.resetSelection()},e.prototype.sendText=function(e,t){if(this.afterContextMenu&&=!1,this.pasted)return this.resetSelection(),e&&this.host.onPaste(e),this.pasted=!1,``;for(var n=this.text.selectionStart,r=this.text.selectionEnd,i=this.lastSelectionStart,o=this.lastValue.length-this.lastSelectionEnd,s=e,c=e.length-n,l=e.length-r,u=0;i>0&&this.lastValue[u]==e[u];)u++,i--;for(s=s.slice(u),u=1;o>0&&this.lastValue.length-u>this.lastSelectionStart-1&&this.lastValue[this.lastValue.length-u]==e[e.length-u];)u++,o--;c-=u-1,l-=u-1;var d=s.length-u+1;if(d<0&&(i=-d,d=0),s=s.slice(0,d),!t&&!s&&!c&&!i&&!o&&!l)return``;this.sendingText=!0;var f=!1;return a.isAndroid&&s==`. `&&(s=` `,f=!0),s&&!i&&!o&&!c&&!l||this.commandMode?this.host.onTextInput(s):this.host.onTextInput(s,{extendLeft:i,extendRight:o,restoreStart:c,restoreEnd:l}),this.sendingText=!1,this.lastValue=e,this.lastSelectionStart=n,this.lastSelectionEnd=r,this.lastRestoreEnd=l,f?` +`:s},e.prototype.onSelect=function(e){var t=this;this.inComposition||(this.copied?this.copied=!1:function(e){return e.selectionStart===0&&e.selectionEnd>=t.lastValue.length&&e.value===t.lastValue&&t.lastValue&&e.selectionEnd!==t.lastSelectionEnd}(this.text)?(this.host.selectAll(),this.resetSelection()):_&&this.text.selectionStart!=this.lastSelectionStart&&this.resetSelection())},e.prototype.$resetSelectionIOS=function(e){if(!(!this.$isFocused||this.copied&&!e||this.sendingText)){e||=``;var t=` + ab`+e+`cde fg +`;t!=this.text.value&&(this.text.value=this.lastValue=t);var n=4,r=4+(e.length||+!this.host.selection.isEmpty());(this.lastSelectionStart!=n||this.lastSelectionEnd!=r)&&this.text.setSelectionRange(n,r),this.lastSelectionStart=n,this.lastSelectionEnd=r}},e.prototype.$resetSelection=function(){var e=this;if(!(this.inComposition||this.sendingText)&&!(!this.$isFocused&&!this.afterContextMenu)){this.inComposition=!0;var t=0,n=0,r=``,i=function(t,n){for(var r=n,i=1;i<=t-e.rowStart&&i<2*e.numberOfExtraLines+1;i++)r+=e.host.session.getLine(t-i).length+1;return r};if(this.host.session){var a=this.host.selection,o=a.getRange(),s=a.cursor.row;s===this.rowEnd+1?(this.rowStart=this.rowEnd+1,this.rowEnd=this.rowStart+2*this.numberOfExtraLines):s===this.rowStart-1?(this.rowEnd=this.rowStart-1,this.rowStart=this.rowEnd-2*this.numberOfExtraLines):(sthis.rowEnd+1)&&(this.rowStart=s>this.numberOfExtraLines?s-this.numberOfExtraLines:0,this.rowEnd=s>this.numberOfExtraLines?s+this.numberOfExtraLines:2*this.numberOfExtraLines);for(var c=[],l=this.rowStart;l<=this.rowEnd;l++)c.push(this.host.session.getLine(l));if(r=c.join(` +`),t=i(o.start.row,o.start.column),n=i(o.end.row,o.end.column),o.start.rowthis.rowEnd){var d=this.host.session.getLine(this.rowEnd+1);n=o.end.row>this.rowEnd+1?d.length:o.end.column,n+=r.length+1,r=r+` +`+d}else _&&s>0&&(r=` +`+r,n+=1,t+=1);r.length>f&&(t1),e.preventDefault()},e.prototype.startSelect=function(e,t){e||=this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle(`ace_selecting`),this.setState(`select`))},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=c(this.$clickSelection,n,t.session);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var a=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(a==-1&&o<=0)t=this.$clickSelection.end,(i.end.row!=r.row||i.end.column!=r.column)&&(r=i.start);else if(o==1&&a>=0)t=this.$clickSelection.start,(i.start.row!=r.row||i.start.column!=r.column)&&(r=i.end);else if(a==-1&&o==1)r=i.end,t=i.start;else{var s=c(this.$clickSelection,r,n.session);r=s.cursor,t=s.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle(`ace_selecting`)},e.prototype.focusWait=function(){(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>i||Date.now()-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState(`select`)):(r=n.selection.getWordRange(t.row,t.column),this.setState(`selectByWords`)),this.$clickSelection=r,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState(`selectByLines`);var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState(`selectAll`)},e.prototype.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||={t:0,vx:0,vy:0,allowed:0};var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,s=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),c<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?n.allowed=r:r-n.allowedt.clientHeight||e.preventDefault()}}),ace.define(`ace/tooltip`,[`require`,`exports`,`module`,`ace/lib/dom`,`ace/lib/event`,`ace/range`,`ace/lib/scroll`],function(e,t,n){var r=this&&this.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),i=this&&this.__values||function(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)},a=e("./lib/dom");e("./lib/event");var o=e("./range").Range,s=e("./lib/scroll").preventParentScroll,c=`ace_tooltip`,l=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=a.createElement(`div`),this.$element.className=c,this.$element.style.display=`none`,this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+`px`,this.getElement().style.top=t+`px`},e.prototype.setClassName=function(e){a.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.theme&&(this.theme.isDark&&a.removeCssClass(this.getElement(),`ace_dark`),this.theme.cssClass&&a.removeCssClass(this.getElement(),this.theme.cssClass)),e.isDark&&a.addCssClass(this.getElement(),`ace_dark`),e.cssClass&&a.addCssClass(this.getElement(),e.cssClass),this.theme={isDark:e.isDark,cssClass:e.cssClass}},e.prototype.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||=(this.getElement().style.display=`block`,!0)},e.prototype.hide=function(e){this.isOpen&&=(this.getElement().style.display=`none`,this.getElement().className=c,!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),u=new(function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);t!==-1&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,r;this.popups.sort(function(e,t){return t.priority-e.priority});var a=[];try{for(var o=i(this.popups),s=o.next();!s.done;s=o.next()){var c=s.value,l=!0;try{for(var u=(n=void 0,i(a)),d=u.next();!d.done;d=u.next()){var f=d.value;if(this.doPopupsOverlap(f,c)){l=!1;break}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}l?a.push(c):c.hide()}}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),r=t.getElement().getBoundingClientRect();return n.leftr.left&&n.topr.top},e}());t.popupManager=u,t.Tooltip=l,t.HoverTooltip=function(e){r(t,e);function t(t){t===void 0&&(t=document.body);var n=e.call(this,t)||this;n.timeout=void 0,n.lastT=0,n.idleTime=350,n.lastEvent=void 0,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var r=n.getElement();return r.style.whiteSpace=`pre-wrap`,r.style.pointerEvents=`auto`,r.addEventListener(`mouseout`,n.onMouseOut),r.tabIndex=-1,r.addEventListener(`blur`,function(){r.contains(document.activeElement)||this.hide()}.bind(n)),r.addEventListener(`wheel`,s),n}return t.prototype.addToEditor=function(e){e.on(`mousemove`,this.onMouseMove),e.on(`mousedown`,this.hide);var t=e.renderer.getMouseEventTarget();t&&typeof t.removeEventListener==`function`&&t.addEventListener(`mouseout`,this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off(`mousemove`,this.onMouseMove),e.off(`mousedown`,this.hide);var t=e.renderer.getMouseEventTarget();t&&typeof t.removeEventListener==`function`&&t.removeEventListener(`mouseout`,this.onMouseOut,!0),this.timeout&&=(clearTimeout(this.timeout),null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var r=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(r.row,r.column)||n||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||n||(this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime))},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;if(this.idleTime-e>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-e);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),r=t.session.getLine(n.row);if(n.column==r.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),a=t.session.documentToScreenPosition(n.row,n.column);if(a.column!=i.column||a.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,r){if(!(r&&r!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var i=e.renderer;this.isOpen||(u.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.range=o.fromPoints(t.start,t.end);var s=i.textToScreenCoordinates(t.start.row,t.start.column),c=i.scroller.getBoundingClientRect();s.pageX=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)},a=e("../lib/dom"),o=e("./mouse_event").MouseEvent,s=e("../tooltip").HoverTooltip,c=e("../config").nls,l=e("../range").Range;function u(e){var t=e.editor,n=t.renderer.$gutterLayer;e.$tooltip=new d(t),e.$tooltip.addToEditor(t),e.$tooltip.setDataProvider(function(t,n){var r=t.getDocumentPosition().row;e.$tooltip.showTooltip(r)}),e.editor.setDefaultHandler(`guttermousedown`,function(r){if(!(!t.isFocused()||r.getButton()!=0)&&n.getRegion(r)!=`foldWidgets`){var i=r.getDocumentPosition().row,a=t.session.selection;if(r.getShiftKey())a.selectTo(i,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(i)}return e.setState(`selectByLines`),e.captureMouse(r),r.preventDefault()}})}t.GutterHandler=u;var d=function(e){r(t,e);function t(n){var r=e.call(this,n.container)||this;r.id=`gt`+ ++t.$uid,r.editor=n,r.visibleTooltipRow;var i=r.getElement();return i.setAttribute(`role`,`tooltip`),i.setAttribute(`id`,r.id),i.style.pointerEvents=`auto`,r.idleTime=50,r.onDomMouseMove=r.onDomMouseMove.bind(r),r.onDomMouseOut=r.onDomMouseOut.bind(r),r.setClassName(`ace_gutter-tooltip`),r}return t.prototype.onDomMouseMove=function(e){var t=new o(e,this.editor);this.onMouseMove(t,this.editor)},t.prototype.onDomMouseOut=function(e){var t=new o(e,this.editor);this.onMouseOut(t)},t.prototype.addToEditor=function(t){var n=t.renderer.$gutter;n.addEventListener(`mousemove`,this.onDomMouseMove),n.addEventListener(`mouseout`,this.onDomMouseOut),e.prototype.addToEditor.call(this,t)},t.prototype.removeFromEditor=function(t){var n=t.renderer.$gutter;n.removeEventListener(`mousemove`,this.onDomMouseMove),n.removeEventListener(`mouseout`,this.onDomMouseOut),e.prototype.removeFromEditor.call(this,t)},t.prototype.destroy=function(){this.editor&&this.removeFromEditor(this.editor),e.prototype.destroy.call(this)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:c(`gutter-tooltip.aria-label.error.singular`,`error`),plural:c(`gutter-tooltip.aria-label.error.plural`,`errors`)},security:{singular:c(`gutter-tooltip.aria-label.security.singular`,`security finding`),plural:c(`gutter-tooltip.aria-label.security.plural`,`security findings`)},warning:{singular:c(`gutter-tooltip.aria-label.warning.singular`,`warning`),plural:c(`gutter-tooltip.aria-label.warning.plural`,`warnings`)},info:{singular:c(`gutter-tooltip.aria-label.info.singular`,`information message`),plural:c(`gutter-tooltip.aria-label.info.plural`,`information messages`)},hint:{singular:c(`gutter-tooltip.aria-label.hint.singular`,`suggestion`),plural:c(`gutter-tooltip.aria-label.hint.plural`,`suggestions`)}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n,r=this.editor.renderer.$gutterLayer,i=r.$annotations[e],o=i?{displayText:Array.from(i.displayText),type:Array.from(i.type)}:{displayText:[],type:[]},s=r.session.getFoldLine(e);if(s&&r.$showFoldedAnnotations){for(var c={error:[],security:[],warning:[],info:[],hint:[]},u={error:1,security:2,warning:3,info:4,hint:5},d,f=e+1;f<=s.end.row;f++)if(r.$annotations[f])for(var p=0;p2)return n.childNodes[2]}},t.prototype.$findCellByRow=function(e){return this.editor.renderer.$gutterLayer.$lines.cells.find(function(t){return t.row===e})},t.prototype.hide=function(t){if(this.isOpen){if(this.$element.removeAttribute(`aria-live`),this.visibleTooltipRow!=null){var n=this.$findLinkedAnnotationNode(this.visibleTooltipRow);n&&n.removeAttribute(`aria-describedby`)}this.visibleTooltipRow=void 0,this.editor._signal(`hideGutterTooltip`,this),e.prototype.hide.call(this,t)}},t.annotationsToSummaryString=function(e){var n,r,a=[],o=[`error`,`security`,`warning`,`info`,`hint`];try{for(var s=i(o),c=s.next();!c.done;c=s.next()){var l=c.value;if(e[l].length){var u=e[l].length===1?t.annotationLabels[l].singular:t.annotationLabels[l].plural;a.push(`${e[l].length} ${u}`)}}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return a.join(`, `)},t.prototype.isOutsideOfText=function(e){var t=e.editor.renderer.$gutter.getBoundingClientRect();return!(e.clientX>=t.left&&e.clientX<=t.right&&e.clientY>=t.top&&e.clientY<=t.bottom)},t}(s);d.$uid=0,t.GutterTooltip=d}),ace.define(`ace/mouse/dragdrop_handler`,[`require`,`exports`,`module`,`ace/lib/dom`,`ace/lib/event`,`ace/lib/useragent`],function(e,t,n){var r=e("../lib/dom"),i=e("../lib/event"),a=e("../lib/useragent"),o=200,s=200,c=5;function l(e){var t=e.editor,n=r.createElement(`div`);n.style.cssText=`top:-100px;position:absolute;z-index:2147483647;opacity:0.5`,n.textContent=`\xA0`,[`dragWait`,`dragWaitEnd`,`startDrag`,`dragReadyEnd`,`onMouseDrag`].forEach(function(t){e[t]=this[t]},this),t.on(`mousedown`,this.onMouseDown.bind(e));var l=t.container,d,f,p,m,h,g,_=0,v,y,b,x,S;this.onDragStart=function(e){if(this.cancelDrag||!l.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}h=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?`copy`:`copyMove`,t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData(`Text`,t.session.getTextRange()),y=!0,this.setState(`drag`)},this.onDragEnd=function(e){if(l.draggable=!1,y=!1,this.setState(null),!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!v&&n==`move`&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle(`ace_dragging`),this.editor.renderer.setCursorStyle(``)},this.onDragEnter=function(e){if(!(t.getReadOnly()||!A(e.dataTransfer)))return f=e.clientX,p=e.clientY,d||E(),_++,e.dataTransfer.dropEffect=v=j(e),i.preventDefault(e)},this.onDragOver=function(e){if(!(t.getReadOnly()||!A(e.dataTransfer)))return f=e.clientX,p=e.clientY,d||(E(),_++),O!==null&&(O=null),e.dataTransfer.dropEffect=v=j(e),i.preventDefault(e)},this.onDragLeave=function(e){if(_--,_<=0&&d)return D(),v=null,i.preventDefault(e)},this.onDrop=function(e){if(g){var n=e.dataTransfer;if(y)switch(v){case`move`:h=h.contains(g.row,g.column)?{start:g,end:g}:t.moveText(h,g);break;case`copy`:h=t.moveText(h,g,!0);break}else{var r=n.getData(`Text`);h={start:g,end:t.session.insert(g,r)},t.focus(),v=null}return D(),i.preventDefault(e)}},i.addListener(l,`dragstart`,this.onDragStart.bind(e),t),i.addListener(l,`dragend`,this.onDragEnd.bind(e),t),i.addListener(l,`dragenter`,this.onDragEnter.bind(e),t),i.addListener(l,`dragover`,this.onDragOver.bind(e),t),i.addListener(l,`dragleave`,this.onDragLeave.bind(e),t),i.addListener(l,`drop`,this.onDrop.bind(e),t);function C(e,n){var r=Date.now(),i=!n||e.row!=n.row,a=!n||e.column!=n.column;!x||i||a?(t.moveCursorToPosition(e),x=r,S={x:f,y:p}):u(S.x,S.y,f,p)>c?x=null:r-x>=s&&(t.renderer.scrollCursorIntoView(),x=null)}function w(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,a=t.renderer.layerConfig.characterWidth,s=t.renderer.scroller.getBoundingClientRect(),c={x:{left:f-s.left,right:s.right-f},y:{top:p-s.top,bottom:s.bottom-p}},l=Math.min(c.x.left,c.x.right),u=Math.min(c.y.top,c.y.bottom),d={row:e.row,column:e.column};l/a<=2&&(d.column+=c.x.left=o&&t.renderer.scrollCursorIntoView(d):b=r:b=null}function T(){var e=g;g=t.renderer.screenToTextCoordinates(f,p),C(g,e),w(g,e)}function E(){h=t.selection.toOrientedRange(),d=t.session.addMarker(h,`ace_selection`,t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(m),T(),m=setInterval(T,20),_=0,i.addListener(document,`mousemove`,k)}function D(){clearInterval(m),t.session.removeMarker(d),d=null,t.selection.fromOrientedRange(h),t.isFocused()&&!y&&t.$resetCursorStyle(),h=null,g=null,_=0,b=null,x=null,i.removeListener(document,`mousemove`,k)}var O=null;function k(){O??=setTimeout(function(){O!=null&&d&&D()},20)}function A(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e==`text/plain`||e==`Text`})}function j(e){var t=[`copy`,`copymove`,`all`,`uninitialized`],n=[`move`,`copymove`,`linkmove`,`all`,`uninitialized`],r=a.isMac?e.altKey:e.ctrlKey,i=`uninitialized`;try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch{}var o=`none`;return r&&t.indexOf(i)>=0?o=`copy`:n.indexOf(i)>=0?o=`move`:t.indexOf(i)>=0&&(o=`copy`),o}}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle(`ace_dragging`),this.editor.renderer.setCursorStyle(``),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle(`ace_dragging`);var n=a.isWin?`default`:`move`;e.renderer.setCursorStyle(n),this.setState(`dragReady`)},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&this.state==`dragReady`){var n=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state===`dragWait`){var n=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton();if((e.domEvent.detail||1)===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var i=e.domEvent.target||e.domEvent.srcElement;if(`unselectable`in i&&(i.unselectable=`on`),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;var o=t.container;o.draggable=!0}this.setState(`dragWait`)}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(l.prototype);function u(e,t,n,r){return Math.sqrt((n-e)**2+(r-t)**2)}t.DragdropHandler=l}),ace.define(`ace/mouse/touch_handler`,[`require`,`exports`,`module`,`ace/mouse/mouse_event`,`ace/lib/event`,`ace/lib/dom`],function(e,t,n){var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),a=e("../lib/dom");t.addTouchListeners=function(e,t){var n=`scroll`,o,s,c,l,u,d,f=0,p,m=0,h=0,g=0,_,v;function y(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();v.replaceChild(a.buildDom(r?[`span`,!n&&o(`selectall`)&&[`span`,{class:`ace_mobile-button`,action:`selectall`},`Select All`],n&&o(`copy`)&&[`span`,{class:`ace_mobile-button`,action:`copy`},`Copy`],n&&o(`cut`)&&[`span`,{class:`ace_mobile-button`,action:`cut`},`Cut`],e&&o(`paste`)&&[`span`,{class:`ace_mobile-button`,action:`paste`},`Paste`],i&&o(`undo`)&&[`span`,{class:`ace_mobile-button`,action:`undo`},`Undo`],o(`find`)&&[`span`,{class:`ace_mobile-button`,action:`find`},`Find`],o(`openCommandPalette`)&&[`span`,{class:`ace_mobile-button`,action:`openCommandPalette`},`Palette`]]:[`span`]),v.firstChild)},o=function(e){return t.commands.canExecute(e,t)},s=function(n){var a=n.target.getAttribute(`action`);if(a==`more`||!r)return r=!r,i();a==`paste`?e.readText().then(function(e){t.execCommand(a,e)}):a&&((a==`cut`||a==`copy`)&&(e?e.writeText(t.getCopyText()):document.execCommand(`copy`)),t.execCommand(a)),v.firstChild.style.display=`none`,r=!1,a!=`openCommandPalette`&&t.focus()};v=a.buildDom([`div`,{class:`ace_mobile-menu`,onclick:s},[`span`],[`span`,{class:`ace_mobile-button`,action:`more`},`...`]],t.container),v.addEventListener(`touchstart`,function(e){n=`menu`,e.stopPropagation(),e.preventDefault(),t.textInput.focus()}),v.addEventListener(`touchend`,function(e){e.stopPropagation(),e.preventDefault(),s(e)})}function b(){if(!t.getOption(`enableMobileMenu`)){v&&x();return}v||y();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,a=t.container.getBoundingClientRect();v.style.top=n.pageY-a.top-3+`px`,n.pageX-a.left=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n=`wait`}i.addListener(e,`contextmenu`,function(e){_&&t.textInput.getElement().focus()},t),i.addListener(e,`touchstart`,function(e){var i=e.touches;if(u||i.length>1){clearTimeout(u),u=null,c=-1,n=`zoom`;return}_=t.$mouseHandler.isMousePressed=!0;var a=t.renderer.layerConfig.lineHeight,d=t.renderer.layerConfig.lineHeight,v=e.timeStamp;l=v;var y=i[0],b=y.clientX,x=y.clientY;if(Math.abs(o-b)+Math.abs(s-x)>a&&(c=-1),o=e.clientX=b,s=e.clientY=x,h=g=0,p=new r(e,t).getDocumentPosition(),v-c<500&&i.length==1&&!f)m++,e.preventDefault(),e.button=0,C();else{m=0;var w=t.selection.cursor,T=t.selection.isEmpty()?w:t.selection.anchor,E=t.renderer.$cursorLayer.getPixelPosition(w,!0),D=t.renderer.$cursorLayer.getPixelPosition(T,!0),O=t.renderer.scroller.getBoundingClientRect(),k=t.renderer.layerConfig.offset,A=t.renderer.scrollLeft,j=function(e,t){return e/=d,t=t/a-.75,e*e+t*t};if(e.clientXN?`cursor`:`anchor`),n=N<3.5?`anchor`:M<3.5?`cursor`:`scroll`,u=setTimeout(S,450)}c=v},t),i.addListener(e,`touchend`,function(e){_=t.$mouseHandler.isMousePressed=!1,d&&clearInterval(d),n==`zoom`?(n=``,f=0):u?(t.selection.moveToPosition(p),f=0,b()):n==`scroll`?(w(),x()):b(),clearTimeout(u),u=null},t),i.addListener(e,`touchmove`,function(e){u&&=(clearTimeout(u),null);var i=e.touches;if(!(i.length>1||n==`zoom`)){var a=i[0],c=o-a.clientX,d=s-a.clientY;if(n==`wait`)if(c*c+d*d>4)n=`cursor`;else return e.preventDefault();o=a.clientX,s=a.clientY,e.clientX=a.clientX,e.clientY=a.clientY;var f=e.timeStamp,p=f-l;if(l=f,n==`scroll`){var m=new r(e,t);m.speed=1,m.wheelX=c,m.wheelY=d,10*Math.abs(c)0)if(g==16){for(S=x;S-1){for(S=x;S=0&&u[T]==b;T--)t[T]=r}}}function P(e,t,n){if(!(i=e){for(c=s+1;c=e;)c++;for(l=s,u=c-1;l=t.length||(l=n[i-1])!=m&&l!=h||(u=t[i+1])!=m&&u!=h?g:(a&&(u=h),u==l?u:g);case S:return l=i>0?n[i-1]:_,l==m&&i+10&&n[i-1]==m)return m;if(a)return g;for(j=i+1,d=t.length;j=1425&&M<=2303||M==64286;if(l=t[j],N&&(l==p||l==y))return p}return i<1||(l=t[i-1])==_?g:n[i-1];case _:return a=!1,o=!0,r;case v:return s=!0,g;case T:case E:case O:case k:case D:a=!1;case A:return g}}function I(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?f:j[t]:n==5?/[\u0591-\u05f4]/.test(e)?p:f:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?w:/[\u0660-\u0669\u066b-\u066c]/.test(e)?h:t==1642?C:/[\u06f0-\u06f9]/.test(e)?m:y:n==32&&t<=8287?M[t&255]:n==254&&t>=65136?y:g}t.L=f,t.R=p,t.EN=m,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT=`·`,t.doBidiReorder=function(e,n,i){if(e.length<2)return{};var a=e.split(``),o=Array(a.length),s=Array(a.length),c=[];r=i?d:u,N(a,c,a.length,n);for(var l=0;ly&&n[l]0&&a[l-1]===`ل`&&/\u0622|\u0623|\u0625|\u0627/.test(a[l])&&(c[l-1]=c[l]=t.R_H,l++);a[a.length-1]===t.DOT&&(c[a.length-1]=t.B),a[0]===`‫`&&(c[0]=t.RLE);for(var l=0;l=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var n,r=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(n=this.session.$getRowCacheIndex(t,this.currentRow-e-1),n===r);)r=n,e++;else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){e===void 0&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var a=this.session.$wrapData[e];a&&(t===void 0&&(t=this.getSplitIndex()),t>0&&a.length?(this.wrapIndent=a.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),a=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&a[i]%2!=0&&i++;for(var s=0;st&&a[i]%2==0&&(o+=this.charWidths[a[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},e.prototype.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,a=[],o=0,s=Math.min(e,t)-this.wrapIndent,c=Math.max(e,t)-this.wrapIndent,l=!1,u=!1,d=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var f,p=0;p=s&&fn+a/2;){if(n+=a,r===i.length-1){a=0;break}a=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!=0&&i[r]%2==0?(e0&&i[r-1]%2==0&&i[r]%2!=0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&a===0&&i[r-1]%2==0||!this.isRtlDir&&r===0&&i[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!=0&&a!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},e}()}),ace.define(`ace/selection`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/lang`,`ace/lib/event_emitter`,`ace/range`],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/lang"),a=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,s=function(){function e(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on(`change`,function(e){t.$cursorChanged=!0,t.$silent||t._emit(`changeCursor`),!t.$isEmpty&&!t.$silent&&t._emit(`changeSelection`),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on(`change`,function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit(`changeSelection`)})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},e.prototype.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(`changeSelection`))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},e.prototype.$setSelection=function(e,t,n,r){if(!this.$silent){var i=this.$isEmpty,a=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit(`changeCursor`),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||a)&&this._emit(`changeSelection`)}},e.prototype.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},e.prototype.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},e.prototype.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},e.prototype.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},e.prototype.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(e,t){if(t===void 0){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},e.prototype.getLineRange=function(e,t){var n=typeof e==`number`?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(` `).length-1==t},e.prototype.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}if(this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t)),t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(a)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},e.prototype.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;if(i.lastIndex=0,this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{for(;(n=e[t])&&r.test(n);)t++;if(t<1){for(i.lastIndex=0;(n=e[t])&&!i.test(n);)if(i.lastIndex=0,t++,r.test(n))if(t>2){t--;break}else{for(;(n=e[t])&&r.test(n);)t++;if(t>2)break}}}return i.lastIndex=0,t},e.prototype.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var a=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r=``)}var a=i.stringReverse(r),o=this.$shortWordEndIndex(a);return this.moveCursorTo(e,t-o)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;if(t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column),e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var a=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&a.row===this.lead.row&&(a.column,this.lead.column),this.moveCursorTo(a.row,a.column+t,t===0)},e.prototype.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},e.prototype.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?--t:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},e.prototype.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch{return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},e.prototype.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},e.prototype.fromJSON=function(e){if(e.start==null)if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}else e=e[0];this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},e.prototype.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0},e}();s.prototype.setSelectionAnchor=s.prototype.setAnchor,s.prototype.getSelectionAnchor=s.prototype.getAnchor,s.prototype.setSelectionRange=s.prototype.setRange,r.implement(s.prototype,a),t.Selection=s}),ace.define(`ace/tokenizer`,[`require`,`exports`,`module`,`ace/lib/report_error`],function(e,t,n){var r=e("./lib/report_error").reportError,i=2e3,a=function(){function e(e){for(var t in this.splitRegex,this.states=e,this.regExps={},this.matchMappings={},this.states){for(var n=this.states[t],r=[],i=0,a=this.matchMappings[t]={defaultToken:`text`},o=`g`,s=[],c=0;c1?l.onMatch=this.$applyToken:l.onMatch=l.token),d>1&&(/\\\d/.test(l.regex)?u=l.regex.replace(/\\([0-9]+)/g,function(e,t){return`\\`+(parseInt(t,10)+i+1)}):(d=1,u=this.removeCapturingGroups(l.regex)),!l.splitRegex&&typeof l.token!=`string`&&s.push(l)),a[i]=c,i+=d,r.push(u),l.onMatch||=null}}r.length||(a[0]=0,r.push(`$`)),s.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=RegExp(`(`+r.join(`)|(`)+`)|($)`,o)}}return e.prototype.$setMaxTokenCount=function(e){i=e|0},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n==`string`)return[{type:n,value:e}];for(var r=[],i=0,a=n.length;iu){var _=e.substring(u,g-h.length);f.type==p?f.value+=_:(f.type&&l.push(f),f={type:p,value:_})}for(var v=0;vi){for(d>2*e.length&&this.reportError(`infinite loop with in ace tokenizer`,{startState:t,line:e});u1&&n[0]!==r&&n.unshift(`#tmp`,r),{tokens:l,state:n.length?n:r}},e}();a.prototype.reportError=r,t.Tokenizer=a}),ace.define(`ace/mode/text_highlight_rules`,[`require`,`exports`,`module`,`ace/lib/deep_copy`],function(e,t,n){var r=e("../lib/deep_copy").deepCopy,i=function(){this.$rules={start:[{token:`empty_line`,regex:`^$`},{defaultToken:`text`}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){for(var r=e[n],i=0;i=this.$rowTokens.length;){if(this.$row+=1,e||=this.$session.getLength(),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==void 0)return n;for(n=0;t>0;)--t,n+=e[t].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)},e}()}),ace.define(`ace/mode/behaviour/cstyle`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/mode/behaviour`,`ace/token_iterator`,`ace/lib/lang`],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),s=[`text`,`paren.rparen`,`rparen`,`paren`,`punctuation.operator`],c=[`text`,`paren.rparen`,`rparen`,`paren`,`punctuation.operator`,`comment`],l,u={},d={'"':`"`,"'":`'`},f=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return l=u[t];l=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:``,maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:``,maybeInsertedLineEnd:``}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+ +!i]}},m=function(e){e||={},this.add(`braces`,`insertion`,function(t,n,r,i,a){var s=r.getCursorPosition(),c=i.doc.getLine(s.row);if(a==`{`){f(r);var u=r.getSelectionRange(),d=i.doc.getTextRange(u),h=i.getTokenAt(s.row,s.column);if(d!==``&&d!==`{`&&r.getWrapBehavioursEnabled())return p(u,d,`{`,`}`);if(h&&/(?:string)\.quasi|\.xml/.test(h.type))return[/tag\-(?:open|name)/,/attribute\-name/].some(function(e){return e.test(h.type)})||/(string)\.quasi/.test(h.type)&&h.value[s.column-h.start-1]!==`$`?void 0:(m.recordAutoInsert(r,i,`}`),{text:`{}`,selection:[1,1]});if(m.isSaneInsertion(r,i))return/[\]\}\)]/.test(c[s.column])||r.inMultiSelectMode||e.braces?(m.recordAutoInsert(r,i,`}`),{text:`{}`,selection:[1,1]}):(m.recordMaybeInsert(r,i,`{`),{text:`{`,selection:[1,1]})}else if(a==`}`){f(r);var g=c.substring(s.column,s.column+1);if(g==`}`&&i.$findOpeningBracket(`}`,{column:s.column+1,row:s.row})!==null&&m.isAutoInsertedClosing(s,c,a))return m.popAutoInsertedClosing(),{text:``,selection:[1,1]}}else if(a==` +`||a==`\r +`){f(r);var _=``;m.isMaybeInsertedClosing(s,c)&&(_=o.stringRepeat(`}`,l.maybeInsertedBrackets),m.clearMaybeInsertedClosing());var g=c.substring(s.column,s.column+1);if(g===`}`){var v=i.findMatchingBracket({row:s.row,column:s.column+1},`}`);if(!v)return null;var y=this.$getIndent(i.getLine(v.row))}else if(_)var y=this.$getIndent(c);else{m.clearMaybeInsertedClosing();return}var b=y+i.getTabString();return{text:` +`+b+` +`+y+_,selection:[1,b.length,1,b.length]}}else m.clearMaybeInsertedClosing()}),this.add(`braces`,`deletion`,function(e,t,n,r,i){var a=r.doc.getTextRange(i);if(!i.isMultiLine()&&a==`{`){if(f(n),r.doc.getLine(i.start.row).substring(i.end.column,i.end.column+1)==`}`)return i.end.column++,i;l.maybeInsertedBrackets--}}),this.add(`parens`,`insertion`,function(e,t,n,r,i){if(i==`(`){f(n);var a=n.getSelectionRange(),o=r.doc.getTextRange(a);if(o!==``&&n.getWrapBehavioursEnabled())return p(a,o,`(`,`)`);if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,`)`),{text:`()`,selection:[1,1]}}else if(i==`)`){f(n);var s=n.getCursorPosition(),c=r.doc.getLine(s.row);if(c.substring(s.column,s.column+1)==`)`&&r.$findOpeningBracket(`)`,{column:s.column+1,row:s.row})!==null&&m.isAutoInsertedClosing(s,c,i))return m.popAutoInsertedClosing(),{text:``,selection:[1,1]}}}),this.add(`parens`,`deletion`,function(e,t,n,r,i){var a=r.doc.getTextRange(i);if(!i.isMultiLine()&&a==`(`&&(f(n),r.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==`)`))return i.end.column++,i}),this.add(`brackets`,`insertion`,function(e,t,n,r,i){if(i==`[`){f(n);var a=n.getSelectionRange(),o=r.doc.getTextRange(a);if(o!==``&&n.getWrapBehavioursEnabled())return p(a,o,`[`,`]`);if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,`]`),{text:`[]`,selection:[1,1]}}else if(i==`]`){f(n);var s=n.getCursorPosition(),c=r.doc.getLine(s.row);if(c.substring(s.column,s.column+1)==`]`&&r.$findOpeningBracket(`]`,{column:s.column+1,row:s.row})!==null&&m.isAutoInsertedClosing(s,c,i))return m.popAutoInsertedClosing(),{text:``,selection:[1,1]}}}),this.add(`brackets`,`deletion`,function(e,t,n,r,i){var a=r.doc.getTextRange(i);if(!i.isMultiLine()&&a==`[`&&(f(n),r.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==`]`))return i.end.column++,i}),this.add(`string_dquotes`,`insertion`,function(e,t,n,r,i){var a=r.$mode.$quotes||d;if(i.length==1&&a[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;f(n);var o=i,s=n.getSelectionRange(),c=r.doc.getTextRange(s);if(c!==``&&(c.length!=1||!a[c])&&n.getWrapBehavioursEnabled())return p(s,c,o,o);if(!c){var l=n.getCursorPosition(),u=r.doc.getLine(l.row),m=u.substring(l.column-1,l.column),h=u.substring(l.column,l.column+1),g=r.getTokenAt(l.row,l.column),_=r.getTokenAt(l.row,l.column+1);if(m==`\\`&&g&&/escape/.test(g.type))return null;var v=g&&/string|escape/.test(g.type),y=!_||/string|escape/.test(_.type),b;if(h==o)b=v!==y,b&&/string\.end/.test(_.type)&&(b=!1);else{if(v&&!y||v&&y)return null;var x=r.$mode.tokenRe;x.lastIndex=0;var S=x.test(m);x.lastIndex=0;var C=x.test(h),w=r.$mode.$pairQuotesAfter;if(!(w&&w[o]&&w[o].test(m))&&S||C||h&&!/[\s;,.})\]\\]/.test(h))return null;var T=u[l.column-2];if(m==o&&(T==o||x.test(T)))return null;b=!0}return{text:b?o+o:``,selection:[1,1]}}}}),this.add(`string_dquotes`,`deletion`,function(e,t,n,r,i){var a=r.$mode.$quotes||d,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&a.hasOwnProperty(o)&&(f(n),r.doc.getLine(i.start.row).substring(i.start.column+1,i.start.column+2)==o))return i.end.column++,i}),e.closeDocComment!==!1&&this.add(`doc comment end`,`insertion`,function(e,t,n,r,i){if(e===`doc-start`&&(i===` +`||i===`\r +`)&&n.selection.isEmpty()){var a=n.getCursorPosition();if(a.column===0)return;for(var o=r.doc.getLine(a.row),s=r.doc.getLine(a.row+1),c=r.getTokens(a.row),l=0,u=0;u=a.column){if(l===a.column){if(!/\.doc/.test(d.type))return;if(/\*\//.test(d.value)){var f=c[u+1];if(!f||!/\.doc/.test(f.type))return}}var p=a.column-(l-d.value.length),m=d.value.indexOf(`*/`),h=d.value.indexOf(`/**`,m>-1?m+2:0);if(h!==-1&&p>h&&p=m&&p<=h||!/\.doc/.test(d.type))return;break}}var g=this.$getIndent(o);if(/\s*\*/.test(s))return/^\s*\*/.test(o)?{text:i+g+`* `,selection:[1,2+g.length,1,2+g.length]}:{text:i+g+` * `,selection:[1,3+g.length,1,3+g.length]};if(/\/\*\*/.test(o.substring(0,a.column)))return{text:i+g+` * `+i+` `+g+`*/`,selection:[1,4+g.length,1,4+g.length]}}})};m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new a(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||`text`,s)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new a(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||`text`,s))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||`text`,c)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,l.autoInsertedLineEnd[0])||(l.autoInsertedBrackets=0),l.autoInsertedRow=r.row,l.autoInsertedLineEnd=n+i.substr(r.column),l.autoInsertedBrackets++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(l.maybeInsertedBrackets=0),l.maybeInsertedRow=r.row,l.maybeInsertedLineStart=i.substr(0,r.column)+n,l.maybeInsertedLineEnd=i.substr(r.column),l.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(e,t,n){return l.autoInsertedBrackets>0&&e.row===l.autoInsertedRow&&n===l.autoInsertedLineEnd[0]&&t.substr(e.column)===l.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(e,t){return l.maybeInsertedBrackets>0&&e.row===l.maybeInsertedRow&&t.substr(e.column)===l.maybeInsertedLineEnd&&t.substr(0,e.column)==l.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){l.autoInsertedLineEnd=l.autoInsertedLineEnd.substr(1),l.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){l&&(l.maybeInsertedBrackets=0,l.maybeInsertedRow=-1)},r.inherits(m,i),t.CstyleBehaviour=m}),ace.define(`ace/unicode`,[`require`,`exports`,`module`],function(e,t,n){for(var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,a=[],o=0;o2?r%l!=l-1:r%l==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,v=this.blockComment.end,d=RegExp(`^(\\s*)(?:`+c.escapeRegExp(f)+`)`),y=RegExp(`(?:`+c.escapeRegExp(v)+`)\\s*$`),h=function(e,t){g(e,t)||(!a||/\S/.test(e))&&(i.insertInLine({row:t,column:e.length},v),i.insertInLine({row:t,column:s},f))},p=function(e,t){var n;(n=e.match(y))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(d))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(d.test(e))return!0;for(var r=t.getTokens(n),i=0;ie.length&&(x=e.length):(nt[n].column&&n++,a.unshift(n,0),t.splice.apply(t,a),this.$updateRows()}}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach(function(e,n){if(e)for(t=!1,e.row=n;e.$oldWidget;)e.$oldWidget.row=n,e=e.$oldWidget}),t&&(this.session.lineWidgets=null)}},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement(`div`),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=r.createElement(`div`),e.el.textContent=e.text),e.el&&(r.addCssClass(e.el,`ace_lineWidgetContainer`),e.className&&r.addCssClass(e.el,e.className),e.el.style.position=`absolute`,e.el.style.zIndex=`5`,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=`3`),e.pixelHeight??=e.el.offsetHeight),e.rowCount??=e.pixelHeight/t.layerConfig.lineHeight;var n=this.session.getFoldAt(e.row,0);if(e.$fold=n,n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit(`changeFold`,{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch{}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit(`changeFold`,{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,n=t&&t[e],r=[];n;)r.push(n),n=n.$oldWidget;return r},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!(!n||!n.length)){for(var i=1/0,a=0;a0&&!r[i];)i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=a;o++){var s=r[o];if(!(!s||!s.el)){if(s.hidden){s.el.style.top=-100-(s.pixelHeight||0)+`px`;continue}s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var c=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;s.coverLine||(c+=n.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=c-n.offset+`px`;var l=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(l-=t.scrollLeft),s.el.style.left=l+`px`,s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=n.width+2*n.padding+`px`),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+`px`:s.el.style.right=``}}}},e}()}),ace.define(`ace/apply_delta`,[`require`,`exports`,`module`],function(e,t,n){t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,a=e[r]||``;switch(t.action){case`insert`:if(t.lines.length===1)e[r]=a.substring(0,i)+t.lines[0]+a.substring(i);else{var o=[r,1].concat(t.lines);e.splice.apply(e,o),e[r]=a.substring(0,i)+e[r],e[r+t.lines.length-1]+=a.substring(i)}break;case`remove`:var s=t.end.column,c=t.end.row;r===c?e[r]=a.substring(0,i)+a.substring(s):e.splice(r,c-r+1,a.substring(0,i)+e[c].substring(s));break}}}),ace.define(`ace/anchor`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/event_emitter`],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,a=function(){function e(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof t==`number`?this.setPosition(t,n):this.setPosition(t.row,t.column)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(e){if(!(e.start.row==e.end.row&&e.start.row!=this.row)&&!(e.start.row>this.row)){var t=s(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)}},e.prototype.setPosition=function(e,t,n){var r=n?{row:e,column:t}:this.$clipPositionToDocument(e,t);if(!(this.row==r.row&&this.column==r.column)){var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(`change`,{old:i,value:r})}},e.prototype.detach=function(){this.document.off(`change`,this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on(`change`,this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();a.prototype.$insertRight=!1,r.implement(a.prototype,i);function o(e,t,n){var r=n?e.column<=t.column:e.column=n&&(e=n-1,t=void 0);var r=this.getLine(e);return t??=r.length,t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:`remove`,lines:[``,``]})},e.prototype.replace=function(e,t){return e instanceof o||(e=o.fromPoints(e.start,e.end)),t.length===0&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action==`insert`;(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal(`change`,e)))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action==`remove`&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),a<=r&&n.fireUpdateEvent(a,r)}}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal(`update`,{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||=setTimeout(this.$worker,700)},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action==`remove`)this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||`start`},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+``==r.state+``?this.currentLine==e&&(this.currentLine=e+1):(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)),this.lines[e]=r.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();r.implement(a.prototype,i),t.BackgroundTokenizer=a}),ace.define(`ace/search_highlight`,[`require`,`exports`,`module`,`ace/lib/lang`,`ace/range`],function(e,t,n){var r=e("./lib/lang"),i=e("./range").Range,a=function(){function e(e,t,n){n===void 0&&(n=`text`),this.setRegexp(e),this.clazz=t,this.type=n,this.docLen=0}return e.prototype.setRegexp=function(e){this.regExp+``!=e+``&&(this.regExp=e,this.cache=[])},e.prototype.update=function(e,t,n,a){if(this.regExp){for(var o=a.firstRow,s=a.lastRow,c={},l=n.$editor&&n.$editor.$search,u=l&&l.$isMultilineSearch(n.$editor.getLastSearchOptions()),d=o;d<=s;d++){var f=this.cache[d];if(f==null||n.getValue().length!=this.docLen){if(u){f=[];var p=l.$multiLineForward(n,this.regExp,d,s);if(p){var m=p.endRow<=s?p.endRow-1:s;m>d&&(d=m),f.push(new i(p.startRow,p.startCol,p.endRow,p.endCol))}f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES))}else f=r.getMatchOffsets(n.getLine(d),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new i(d,e.offset,d,e.offset+e.length)});this.cache[d]=f.length?f:``}if(f.length!==0)for(var h=f.length;h--;){var g=f[h].toScreenRange(n),_=g.toString();c[_]||(c[_]=!0,t.drawSingleLineMarker(e,g,this.clazz,a))}}this.docLen=n.getValue().length}},e}();a.prototype.MAX_RANGES=500,t.SearchHighlight=a}),ace.define(`ace/undomanager`,[`require`,`exports`,`module`,`ace/range`],function(e,t,n){var r=function(){function e(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return e.prototype.addSession=function(e){this.$session=e},e.prototype.add=function(e,t,n){if(!this.$fromUndo&&e!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),t===!1||!this.lastDeltas){this.lastDeltas=[];var r=this.$undoStack.length;r>this.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}(e.action==`remove`||e.action==`insert`)&&(this.$lastDelta=e),this.lastDeltas.push(e)}},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){t??=this.$rev+1;for(var n=this.$undoStack,r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){e??=this.$rev,this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},e.prototype.fromJSON=function(e){this.reset(),this.$undoStack=e.$undoStack,this.$redoStack=e.$redoStack},e.prototype.$prettyPrint=function(e){return e?l(e):l(this.$undoStack)+` +--- +`+l(this.$redoStack)},e}();r.prototype.hasUndo=r.prototype.canUndo,r.prototype.hasRedo=r.prototype.canRedo,r.prototype.isClean=r.prototype.isAtBookmark,r.prototype.markClean=r.prototype.bookmark;function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){for(;n`+e.end.row+`:`+e.end.column}function d(e,t){var n=e.action==`insert`,r=t.action==`insert`;if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else if(o(t.start,e.start)<=0)m(e,t,1);else return null;else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else if(o(t.end,e.start)<=0)m(e,t,-1);else return null;else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else if(o(t.start,e.start)<=0)m(e,t,1);else return null;else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else if(o(t.end,e.start)<=0)m(e,t,-1);else return null;return[t,e]}function f(e,t){for(var n=e.length;n--;)for(var r=0;r=0?m(e,t,-1):(o(e.start,t.start)<=0||m(e,a.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):(o(t.start,e.start)<=0||m(t,a.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else if(o(t.end,e.start)<=0)m(e,t,-1);else{var i,s;return o(e.start,t.start)<0&&(i=e,e=g(e,t.start)),o(e.end,t.end)>0&&(s=g(e,t.end)),h(t.end,e.start,e.end,-1),s&&!i&&(e.lines=s.lines,e.start=s.start,e.end=s.end,s=e),[t,i,s].filter(Boolean)}return[t,e]}function m(e,t,n){h(e.start,t.start,t.end,n),h(e.end,t.start,t.end,n)}function h(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function g(e,t){var n=e.lines,r=e.end;e.end=s(t);var i=e.end.row-e.start.row,a=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;return n.push(a[0].substring(0,o)),a[0]=a[0].substr(o),{start:s(t),end:r,lines:a,action:e.action}}function _(e,t){t=c(t);for(var n=e.length;n--;){for(var r=e[n],i=0;ithis.endRow)throw Error(`Can't add a fold to this FoldLine as it has no connection`);this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else if(e.end.row==this.start.row)this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column;else throw Error(`Trying to add fold to FoldRow that doesn't have a matching row`);e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var r=0,i=this.folds,a,o,s,c=!0;t??(t=this.end.row,n=this.end.column);for(var l=0;l0)){var c=r(e,o.start);return s===0?t&&c!==0?-a-2:a:c>0||c===0&&!t?a:-a-1}}return-a-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},e.prototype.addList=function(e){for(var t=[],n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var n=t[0],i,a=1;a=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if(e.action==`insert`)for(var l=i-r,u=-t.column+n.column;or)break;if(c.start.row==r&&c.start.column>=t.column&&(c.start.column==t.column&&this.$bias<=0||(c.start.column+=u,c.start.row+=l)),c.end.row==r&&c.end.column>=t.column){if(c.end.column==t.column&&this.$bias<0)continue;c.end.column==t.column&&u>0&&oc.start.column&&c.end.column==a[o+1].start.column&&(c.end.column-=u),c.end.column+=u,c.end.row+=l}}else for(var l=r-i,u=t.column-n.column;oi)break;c.end.rowt.column)&&(c.end.column=t.column,c.end.row=t.row):(c.end.column+=u,c.end.row+=l):c.end.row>i&&(c.end.row+=l),c.start.rowt.column)&&(c.start.column=t.column,c.start.row=t.row):(c.start.column+=u,c.start.row+=l):c.start.row>i&&(c.start.row+=l)}if(l!=0&&o=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;for(t&&(r=n.indexOf(t)),r==-1&&(r=0);r=e)return i}return null},this.getFoldedRowCount=function(e,t){for(var n=this.$foldData,r=t-e+1,i=0;i=t){s=e?r-=t-s:r=0);break}else o>=e&&(s>=e?r-=o-s:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof a?o=e:(o=new a(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var s=o.start.row,c=o.start.column,l=o.end.row,u=o.end.column,d=this.getFoldAt(s,c,1),f=this.getFoldAt(l,u,-1);if(d&&f==d)return d.addSubFold(o);d&&!d.range.isStart(s,c)&&this.removeFold(d),f&&!f.range.isEnd(l,u)&&this.removeFold(f);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var m=0;m0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t??=!0;else if(typeof e==`number`)n=new r(e,0,e,this.getLine(e).length);else if(`row`in e)n=r.fromPoints(e,e);else if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;else n=e;i=this.getFoldsInRangeList(n);for(var a=i;i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0;)this.expandFolds(i),i=this.getFoldsInRangeList(n);if(t==0?this.expandFolds(i):this.removeFolds(i),a.length)return a},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r??=e.start.row,i??=0,t??=e.end.row,n??=this.getLine(t).length;var a=this.doc,o=``;return e.walk(function(e,t,n,s){if(!(td)break;while(a&&c.test(a.type));a=i.stepBackward()}else a=i.getCurrentToken();return l.end.row=i.getCurrentTokenRow(),l.end.column=i.getCurrentTokenColumn(),l.start.row==l.end.row&&l.start.column>l.end.column?void 0:l}},this.foldAll=function(e,t,n,r){n??=1e5;var i=this.foldWidgets;if(i){t||=this.getLength(),e||=0;for(var a=e;a=e&&(a=o.end.row,o.collapseChildren=n,this.addFold(`...`,o))}}},this.foldToLevel=function(e){for(this.foldAll();e-->0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){for(var n=e.getTokens(t),r=0;r=0;){var a=n[r];if(a??=n[r]=this.getFoldWidget(r),a==`start`){var o=this.getFoldWidgetRange(r);if(i||=o,o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t instanceof s&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,n)){var r=t.target||t.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=` ace_invalid`)}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var n=this.getFoldWidget(e),r=this.getLine(e),i=n===`end`?-1:1,a=this.getFoldAt(e,i===-1?0:r.length,i);if(a)return t.children||t.all?this.removeFold(a):this.expandFold(a),a;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()&&(a=this.getFoldAt(o.start.row,o.start.column,1),a&&o.isEqual(a.range)))return this.removeFold(a),a;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var c=s.range.start.row+1,l=s.range.end.row;this.foldAll(c,l,t.all?1e4:0)}else t.children?(l=o?o.end.row:this.getLength(),this.foldAll(e+1,l,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold(`...`,o));return o}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(!n){var r=this.getParentFoldRangeData(t,!0);if(n=r.range||r.firstRange,n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold(`...`,n)}}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action==`remove`)this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}t.Folding=c}),ace.define(`ace/edit_session/bracket_match`,[`require`,`exports`,`module`,`ace/token_iterator`,`ace/range`],function(e,t,n){var r=e("../token_iterator").TokenIterator,i=e("../range").Range;function a(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n==``)return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,a=t.charAt(e.column-1),o=a&&a.match(/([\(\[\{])|([\)\]\}])/);if(o||(a=t.charAt(e.column),e={row:e.row,column:e.column+1},o=a&&a.match(/([\(\[\{])|([\)\]\}])/),n=!1),!o)return null;if(o[1]){var s=this.$findClosingBracket(o[1],e);if(!s)return null;r=i.fromPoints(e,s),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var s=this.$findOpeningBracket(o[2],e);if(!s)return null;r=i.fromPoints(s,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,a=!t&&n.charAt(e.column-1),o=a&&a.match(r);if(o||=(a=(t===void 0||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},a&&a.match(r)),!o)return null;var s=new i(e.row,e.column-1,e.row,e.column),c=o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e);return c?[s,new i(c.row,c.column,c.row,c.column+1)]:[s]},this.$brackets={")":`(`,"(":`)`,"]":`[`,"[":`]`,"{":`}`,"}":`{`,"<":`>`,">":`<`},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],a=1,o=new r(this,t.row,t.column),s=o.getCurrentToken();if(s||=o.stepForward(),s){n||=RegExp(`(\\.?`+s.type.replace(`.`,`\\.`).replace(`rparen`,`.paren`).replace(/\b(?:end)\b/,`(?:start|begin|end)`).replace(/-close\b/,`-(close|open)`)+`)+`);for(var c=t.column-o.getCurrentTokenColumn()-2,l=s.value;;){for(;c>=0;){var u=l.charAt(c);if(u==i){if(--a,a==0)return{row:o.getCurrentTokenRow(),column:c+o.getCurrentTokenColumn()}}else u==e&&(a+=1);--c}do s=o.stepBackward();while(s&&!n.test(s.type));if(s==null)break;l=s.value,c=l.length-1}return null}},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],a=1,o=new r(this,t.row,t.column),s=o.getCurrentToken();if(s||=o.stepForward(),s){n||=RegExp(`(\\.?`+s.type.replace(`.`,`\\.`).replace(`lparen`,`.paren`).replace(/\b(?:start|begin)\b/,`(?:start|begin|end)`).replace(/-open\b/,`-(close|open)`)+`)+`);for(var c=t.column-o.getCurrentTokenColumn();;){for(var l=s.value,u=l.length;c`?r=!0:t.type.indexOf(`tag-name`)!==-1&&(n=!0));while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,a=t.value,o=0,s=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),l=!1;do{if(n=t,n.type.indexOf(`tag-close`)!==-1&&!l){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);l=!0}if(t=e.stepForward(),t){if(t.value===`>`&&!l){var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);l=!0}if(t.type.indexOf(`tag-name`)!==-1){if(r=t.value,a===r){if(n.value===`<`)o++;else if(n.value===``)var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);else return}}}else if(a===r&&t.value===`/>`&&(o--,o<0))var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),f=d,p=f,u=new i(c.end.row,c.end.column,c.end.row,c.end.column+1)}}while(t&&o>=0);if(s&&u&&d&&p&&c&&f)return{openTag:new i(s.start.row,s.start.column,u.end.row,u.end.column),closeTag:new i(d.start.row,d.start.column,p.end.row,p.end.column),openTagName:c,closeTagName:f}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,a=0,o=e.getCurrentTokenRow(),s=e.getCurrentTokenColumn(),c=s+2,l=new i(o,s,o,c);e.stepForward();var u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);if(t.type.indexOf(`tag-close`)===-1&&(t=e.stepForward()),!(!t||t.value!==`>`)){var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do if(t=n,o=e.getCurrentTokenRow(),s=e.getCurrentTokenColumn(),c=s+t.value.length,n=e.stepBackward(),t){if(t.type.indexOf(`tag-name`)!==-1){if(r===t.value)if(n.value===`<`){if(a++,a>0){var f=new i(o,s,o,c),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do t=e.stepForward();while(t&&t.value!==`>`);var m=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else n.value===``){for(var h=0,g=n;g;){if(g.type.indexOf(`tag-name`)!==-1&&g.value===r){a--;break}else if(g.value===`<`)break;g=e.stepBackward(),h++}for(var _=0;_n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){for(var n=0,r=e.length-1;n<=r;){var i=n+r>>1,a=e[i];if(t>a)n=i+1;else if(t=t));a++);return r=n[a],r?(r.index=a,r.start=i-r.value.length,r):null},e.prototype.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(` `,this.getTabSize()):` `},e.prototype.setUseSoftTabs=function(e){this.setOption(`useSoftTabs`,e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption(`tabSize`,e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption(`navigateWithinSoftTabs`,e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption(`overwrite`,e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=``),this.$decorations[e]+=` `+t,this._signal(`changeBreakpoint`,{})},e.prototype.removeGutterCustomWidget=function(e){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(e)},e.prototype.addGutterCustomWidget=function(e,t){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||``).replace(` `+t,``),this._signal(`changeBreakpoint`,{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||=!!n.charAt(t).match(this.tokenRe),r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var a=t;if(a>0){do a--;while(a>=0&&n.charAt(a).match(i));a++}for(var o=t;oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,a=this.$foldData[i],o=a?a.start.row:1/0,s=t.length,c=0;co){if(c=a.end.row+1,c>=s)break;a=this.$foldData[i++],o=a?a.start.row:1/0}n[c]??(n[c]=this.$getStringScreenWidth(t[c])[0]),n[c]>r&&(r=n[c])}this.screenWidth=r}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action==`insert`||r.action==`remove`?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},e.prototype.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var n=0;ne.end.column&&(a.start.column+=s),a.end.row==e.end.row&&a.end.column>e.end.column&&(a.end.column+=s)),o&&a.start.row>=e.end.row&&(a.start.row+=o,a.end.row+=o)}if(a.end=this.insert(a.start,r),i.length){var c=e.start,l=a.start,o=l.row-c.row,s=l.column-c.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==c.row&&(e.start.column+=s),e.end.row==c.row&&(e.end.column+=s),e.start.row+=o,e.end.row+=o,e}))}return a},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},e.prototype.outdentRows=function(e){for(var t=e.collapseRows(),n=new u(0,0,0,0),r=this.getTabSize(),i=t.start.row;i<=t.end.row;++i){var a=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var a=new u(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(a).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),s=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,s),o.length&&this.addFolds(o),i},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal(`changeWrapMode`)}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)&&(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal(`changeWrapMode`))},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal(`changeWrapLimit`)),!0):!1},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,a=r.row,o=i.row,s=o-a,c=null;if(this.$updating=!0,s!=0)if(n===`remove`){this[t?`$wrapData`:`$rowLengthCache`].splice(a,s);var l=this.$foldData;c=this.getFoldsInRange(e),this.removeFolds(c);var u=this.getFoldLine(i.row),d=0;if(u){u.addRemoveChars(i.row,i.column,r.column-i.column),u.shiftRow(-s);var f=this.getFoldLine(a);f&&f!==u&&(f.merge(u),u=f),d=l.indexOf(u)+1}for(;d=i.row&&u.shiftRow(-s)}o=a}else{var p=Array(s);p.unshift(a,0);var m=t?this.$wrapData:this.$rowLengthCache;m.splice.apply(m,p);var l=this.$foldData,u=this.getFoldLine(a),d=0;if(u){var h=u.range.compareInside(r.row,r.column);h==0?(u=u.split(r.row,r.column),u&&(u.shiftRow(s),u.addRemoveChars(o,0,i.column-r.column))):h==-1&&(u.addRemoveChars(a,0,i.column-r.column),u.shiftRow(s)),d=l.indexOf(u)+1}for(;d=a&&u.shiftRow(s)}}else{s=Math.abs(e.start.column-e.end.column),n===`remove`&&(c=this.getFoldsInRange(e),this.removeFolds(c),s=-s);var u=this.getFoldLine(a);u&&u.addRemoveChars(a,r.column,s)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error(`doc.getLength() and $wrapData.length have to be the same!`),this.$updating=!1,t?this.$updateWrapData(a,o):this.$updateRowLengthCache(a,o),c},e.prototype.$updateRowLengthCache=function(e,t){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,a=this.$wrapLimit,o,s,c=e;for(t=Math.min(t,n.length-1);c<=t;)s=this.getFoldLine(c,s),s?(o=[],s.walk(function(e,t,r,i){var a;if(e!=null){a=this.$getDisplayTokens(e,o.length),a[0]=y;for(var s=1;st-f;){var p=a+t-f;if(e[p-1]>=S&&e[p]>=S){d(p);continue}if(e[p]==y||e[p]==b){for(;p!=a-1&&e[p]!=y;p--);if(p>a){d(p);continue}for(p=a+t;p>2)),a-1);p>m&&e[p]m&&e[p]m&&e[p]==x;)p--}else for(;p>m&&e[p]m){d(++p);continue}p=a+t,e[p]==v&&p--,d(p-f)}return r},e.prototype.$getDisplayTokens=function(e,t){var n=[],r;t||=0;for(var i=0;i39&&a<48||a>57&&a<64?n.push(x):a>=4352&&T(a)?n.push(_,v):n.push(_)}return n},e.prototype.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t??=1/0,n||=0;var r,i;for(i=0;i=4352&&T(r)?n+=2:n+=1,!(n>t));i++);return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},e.prototype.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var s=l[u],i=this.$docRowCache[u],f=e>l[d-1];else var f=!d;for(var p=this.getLength()-1,m=this.getNextFoldLine(i),h=m?m.start.row:1/0;s<=e&&(c=this.getRowLength(i),!(s+c>e||i>=p));)s+=c,i++,i>h&&(i=m.end.row+1,m=this.getNextFoldLine(i,m),h=m?m.start.row:1/0),f&&(this.$docRowCache.push(i),this.$screenRowCache.push(s));if(m&&m.start.row<=i)r=this.getFoldDisplayLine(m),i=m.start.row;else if(s+c<=e||i>p)return{row:p,column:this.getLine(p).length};else r=this.getLine(i),m=null;var g=0,_=Math.floor(e-s);if(this.$useWrapMode){var v=this.$wrapData[i];v&&(o=v[_],_>0&&v.length&&(g=v.indent,a=v[_-1]||v[v.length-1],r=r.substring(a)))}return n!==void 0&&this.$bidiHandler.isBidiRow(s+_,i,_)&&(t=this.$bidiHandler.offsetToCol(n)),a+=this.$getStringScreenWidth(r,t-g)[1],this.$useWrapMode&&a>=o&&(a=o-1),m?m.idxToPosition(a):{row:i,column:a}},e.prototype.documentToScreenPosition=function(e,t){if(t===void 0)var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,a=null;a=this.getFoldAt(e,t,1),a&&(e=a.start.row,t=a.start.column);var o,s=0,c=this.$docRowCache,l=this.$getRowCacheIndex(c,e),u=c.length;if(u&&l>=0)var s=c[l],r=this.$screenRowCache[l],d=e>c[u-1];else var d=!u;for(var f=this.getNextFoldLine(s),p=f?f.start.row:1/0;s=p){if(o=f.end.row+1,o>e)break;f=this.getNextFoldLine(o,f),p=f?f.start.row:1/0}else o=s+1;r+=this.getRowLength(s),s=o,d&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var m=``;f&&s>=p?(m=this.getFoldDisplayLine(f,e,t),i=f.start.row):(m=this.getLine(e).substring(0,t),i=e);var h=0;if(this.$useWrapMode){var g=this.$wrapData[i];if(g){for(var _=0;m.length>=g[_];)r++,_++;m=m.substring(g[_-1]||0,m.length),h=_>0?g.indent:0}}return this.lineWidgets&&this.lineWidgets[s]&&this.lineWidgets[s].rowsAbove&&(r+=this.lineWidgets[s].rowsAbove),{row:r,column:h+this.$getStringScreenWidth(m)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var n=this.$wrapData.length,r=0,i=0,t=this.$foldData[i++],a=t?t.start.row:1/0;ra&&(r=t.end.row+1,t=this.$foldData[i++],a=t?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,i=0;in));a++);return[r,a]})},e.prototype.getPrecedingCharacter=function(){var e=this.selection.getCursor();return e.column===0?e.row===0?``:this.doc.getNewLineCharacter():this.getLine(e.row)[e.column-1]},e.prototype.destroy=function(){this.destroyed||=(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off(`change`,this.$onChange),this.selection&&(this.selection.off(`changeCursor`,this.$onSelectionChange),this.selection.off(`changeSelection`,this.$onSelectionChange)),this.selection.detach()},e}();g.$uid=0,g.prototype.$modes=o.$modes,g.prototype.getValue=g.prototype.toString,g.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},g.prototype.$overwrite=!1,g.prototype.$mode=null,g.prototype.$modeId=null,g.prototype.$scrollTop=0,g.prototype.$scrollLeft=0,g.prototype.$wrapLimit=80,g.prototype.$useWrapMode=!1,g.prototype.$wrapLimitRange={min:null,max:null},g.prototype.lineWidgets=null,g.prototype.isFullWidth=T,r.implement(g.prototype,s);var _=1,v=2,y=3,b=4,x=9,S=10,C=11,w=12;function T(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}e("./edit_session/folding").Folding.call(g.prototype),e("./edit_session/bracket_match").BracketMatch.call(g.prototype),o.defineOptions(g.prototype,`session`,{wrap:{set:function(e){if(!e||e==`off`?e=!1:e==`free`?e=!0:e==`printMargin`?e=-1:typeof e==`string`&&(e=parseInt(e,10)||!1),this.$wrap!=e)if(this.$wrap=e,!e)this.setUseWrapMode(!1);else{var t=typeof e==`number`?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?`printMargin`:this.getWrapLimitRange().min?this.$wrap:`free`:`off`},handlesSet:!0},wrapMethod:{set:function(e){e=e==`auto`?this.$mode.type!=`text`:e!=`text`,e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:`auto`},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal(`changeBreakpoint`)},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal(`changeTabSize`))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal(`changeOverwrite`)},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=g}),ace.define(`ace/search`,[`require`,`exports`,`module`,`ace/lib/lang`,`ace/lib/oop`,`ace/range`],function(e,t,n){var r=e("./lib/lang"),i=e("./lib/oop"),a=e("./range").Range,o=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return r.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new a(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],s=t.re;if(t.$isMultiLine){var c=s.length,l=i.length-c,u;outer:for(var d=s.offset||0;d<=l;d++){for(var f=0;fh||(o.push(u=new a(d,h,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var _,v=0;vv&&(v=b),o.push(new a(_.startRow,_.startCol,_.endRow,_.endCol))}}else{_=r.getMatchOffsets(i[v],s);for(var f=0;f<_.length;f++){var x=_[f];o.push(new a(v,x.offset,v,x.offset+x.length))}}if(n){for(var S=n.start.column,C=n.end.column,v=0,f=o.length-1;vC&&o[f].end.row==w;)f--;for(o=o.slice(v,f+1),v=0,f=o.length;v=i){n+=`\\`;break}switch(e.charCodeAt(r)){case t.Backslash:n+=`\\`;break;case t.n:n+=` +`;break;case t.t:n+=` `;break}continue}if(a===t.DollarSign){if(r++,r>=i){n+=`$`;break}var o=e.charCodeAt(r);if(o===t.DollarSign){n+=`$$`;continue}if(o===t.Digit0||o===t.Ampersand){n+=`$&`;continue}if(t.Digit1<=o&&o<=t.Digit9){n+=`$`+e[r];continue}}n+=e[r]}return n||e},e.prototype.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(r){var i=this.$isMultilineSearch(n);i&&(e=e.replace(/\r\n|\r|\n/g,` +`));var a=r.exec(e);if(!a||!i&&a[0].length!=e.length)return null;if(t=n.regExp?this.parseReplaceString(t):t.replace(/\$/g,`$$$$`),t=e.replace(r,t),n.preserveCase){t=t.split(``);for(var o=Math.min(e.length,e.length);o--;){var s=e[o];s&&s.toLowerCase()!=s?t[o]=t[o].toUpperCase():t[o]=t[o].toLowerCase()}t=t.join(``)}return t}},e.prototype.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n));var i=e.caseSensitive?`gm`:`gmi`;try{new RegExp(n,`u`),e.$supportsUnicodeFlag=!0,i+=`u`}catch{e.$supportsUnicodeFlag=!1}if(e.wholeWord&&(n=s(n,e)),e.$isMultiLine=!t&&/[\n\r]/.test(n),e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var a=new RegExp(n,i)}catch{a=!1}return e.re=a},e.prototype.$assembleMultilineRegExp=function(e,t){for(var n=e.replace(/\r\n|\r|\n/g,`$ +^`).split(` +`),r=[],i=0;ir);s++){var c=e.getLine(o++);i=i==null?c:i+` +`+c}var u=t.exec(i);if(t.lastIndex=0,u){var d=i.slice(0,u.index).split(` +`),f=u[0].split(` +`),p=n+d.length-1,m=d[d.length-1].length;return{startRow:p,startCol:m,endRow:p+f.length-1,endCol:f.length==1?m+f[0].length:f[f.length-1].length}}}return null},e.prototype.$multiLineBackward=function(e,t,n,r,i){for(var a,o=l(e,r),s=e.getLine(r).length-n,u=r;u>=i;){for(var d=0;d=i;d++){var f=e.getLine(u--);a=a==null?f:f+` +`+a}var p=c(a,t,s);if(p){var m=a.slice(0,p.index).split(` +`),h=p[0].split(` +`),g=u+m.length,_=m[m.length-1].length;return{startRow:g,startCol:_,endRow:g+h.length-1,endCol:h.length==1?_+h[0].length:h[h.length-1].length}}}return null},e.prototype.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i=this.$isMultilineSearch(t),a=this.$multiLineForward,o=this.$multiLineBackward,s=t.backwards==1,c=t.skipCurrent!=0,l=n.unicode,u=t.range,d=t.start;d||=u?u[s?`end`:`start`]:e.selection.getRange(),d.start&&(d=d[c==s?`start`:`end`]);var f=u?u.start.row:0,p=u?u.end.row:e.getLength()-1;if(s)var m=function(e){var n=d.row;if(!g(n,d.column,e)){for(n--;n>=f;n--)if(g(n,Number.MAX_VALUE,e))return;if(t.wrap!=0){for(n=p,f=d.row;n>=f;n--)if(g(n,Number.MAX_VALUE,e))return}}};else var m=function(e){var n=d.row;if(!g(n,d.column,e)){for(n+=1;n<=p;n++)if(g(n,0,e))return;if(t.wrap!=0){for(n=f,p=d.row;n<=p;n++)if(g(n,0,e))return}}};if(t.$isMultiLine)var h=n.length,g=function(t,r,i){var a=s?t-h+1:t;if(!(a<0||a+h>e.getLength())){var o=e.getLine(a),c=o.search(n[0]);if(!(!s&&cr)&&i(a,c,a+h-1,u))return!0}}};else if(s)var g=function(t,a,s){if(i){var c=o(e,n,a,t,f);if(!c)return!1;if(s(c.startRow,c.startCol,c.endRow,c.endCol))return!0}else{var u=e.getLine(t),d=[],p,m=0;for(n.lastIndex=0;p=n.exec(u);){var h=p[0].length;if(m=p.index,!h){if(m>=u.length)break;n.lastIndex=m+=r.skipEmptyMatch(u,m,l)}if(p.index+h>a)break;d.push(p.index,h)}for(var g=d.length-1;g>=0;g-=2){var _=d[g-1],h=d[g];if(s(t,_,t,_+h))return!0}}};else var g=function(t,o,s){if(n.lastIndex=o,i){var c=a(e,n,t,p);if(c){var u=c.endRow<=p?c.endRow-1:p;u>t&&(t=u)}if(!c)return!1;if(s(c.startRow,c.startCol,c.endRow,c.endCol))return!0}else for(var d=e.getLine(t),f,m;m=n.exec(d);){var h=m[0].length;if(f=m.index,s(t,f,t,f+h))return!0;if(!h&&(n.lastIndex=f+=r.skipEmptyMatch(d,f,l),f>=d.length))return!1}};return{forEach:m}},e}();function s(e,t){var n=r.supportsLookbehind();function i(e,r){return r===void 0&&(r=!0),(n&&t.$supportsUnicodeFlag?RegExp(`[\\p{L}\\p{N}_]`,`u`):RegExp(`\\w`)).test(e)||t.regExp?n&&t.$supportsUnicodeFlag?r?`(?<=^|[^\\p{L}\\p{N}_])`:`(?=[^\\p{L}\\p{N}_]|$)`:`\\b`:``}var a=Array.from(e),o=a[0],s=a[a.length-1];return i(o)+e+i(s,!1)}function c(e,t,n){for(var r=null,i=0;i<=e.length;){t.lastIndex=i;var a=t.exec(e);if(!a)break;var o=a.index+a[0].length;if(o>e.length-n)break;(!r||o>r.index+r[0].length)&&(r=a),i=a.index+1}return r}function l(e,t){var n=5e3,r={row:t,column:0},i=e.doc.positionToIndex(r)+n;return e.doc.indexToPosition(i).row+1}t.Search=o}),ace.define(`ace/keyboard/hash_handler`,[`require`,`exports`,`module`,`ace/lib/keys`,`ace/lib/useragent`],function(e,t,n){var r=this&&this.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),i=e("../lib/keys"),a=e("../lib/useragent"),o=i.KEY_MODS,s=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(a.isMac?`mac`:`win`),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&(typeof e==`string`?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var a=r[i];if(a==e)delete r[i];else if(Array.isArray(a)){var o=a.indexOf(e);o!=-1&&(a.splice(o,1),a.length==1&&(r[i]=a[0]))}}},e.prototype.bindKey=function(e,t,n){if(typeof e==`object`&&e&&(n??=e.position,e=e[this.platform]),e){if(typeof t==`function`)return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split(`|`).forEach(function(e){var r=``;if(e.indexOf(` `)!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;r+=(r?` `:``)+n,this._addCommandToBinding(r,`chainKeys`)},this),r+=` `}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(r+s,t,n)},this)}},e.prototype._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;if(!t)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=t;else{Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],typeof n!=`number`&&(n=c(t));var a=r[e];for(i=0;in)break}a.splice(i,0,t)}},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(n){if(typeof n==`string`)return this.bindKey(n,t);typeof n==`function`&&(n={exec:n}),typeof n==`object`&&(n.name||=t,this.addCommand(n))}},this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),r=i[n];if(i.FUNCTION_KEYS[r])n=i.FUNCTION_KEYS[r].toLowerCase();else if(!t.length)return{key:n,hashId:-1};else if(t.length==1&&t[0]==`shift`)return{key:n.toUpperCase(),hashId:-1};for(var a=0,o=t.length;o--;){var s=i.KEY_MODS[t[o]];if(s==null)return typeof console<`u`&&console.error(`invalid modifier `+t[o]+` in `+e),!1;a|=s}return{key:n,hashId:a}},e.prototype.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,r){if(!(r<0)){var i=o[t]+n,a=this.commandKeyBinding[i];return e.$keyChain&&(e.$keyChain+=` `+i,a=this.commandKeyBinding[e.$keyChain]||a),a&&(a==`chainKeys`||a[a.length-1]==`chainKeys`)?(e.$keyChain=e.$keyChain||i,{command:`null`}):(e.$keyChain&&((!t||t==4)&&n.length==1?e.$keyChain=e.$keyChain.slice(0,-i.length-1):(t==-1||r>0)&&(e.$keyChain=``)),{command:a})}},e.prototype.getStatusText=function(e,t){return t.$keyChain||``},e}();function c(e){return typeof e==`object`&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var l=function(e){r(t,e);function t(t,n){var r=e.call(this,t,n)||this;return r.$singleCommand=!0,r}return t}(s);l.call=function(e,t,n){s.prototype.$init.call(e,t,n,!0)},s.call=function(e,t,n){s.prototype.$init.call(e,t,n,!1)},t.HashHandler=l,t.MultiHashHandler=s}),ace.define(`ace/commands/command_manager`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/keyboard/hash_handler`,`ace/lib/event_emitter`],function(e,t,n){var r=this&&this.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),i=e("../lib/oop"),a=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e){r(t,e);function t(t,n){var r=e.call(this,n,t)||this;return r.byName=r.commands,r.setDefaultHandler(`exec`,function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}),r}return t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e==`string`&&(e=this.commands[e]);var i={editor:t,command:e,args:n};return this.canExecute(e,t)?(i.returnValue=this._emit(`exec`,i),this._signal(`afterExec`,i),i.returnValue!==!1):(this._signal(`commandUnavailable`,i),!1)},t.prototype.canExecute=function(e,t){return typeof e==`string`&&(e=this.commands[e]),!(!e||t&&t.$readOnly&&!e.readOnly||this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))},t.prototype.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit(`changeStatus`),this.recording?(this.macro.pop(),this.off(`exec`,this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||=function(e){this.macro.push([e.command,e.args])}.bind(this),this.oldMacro=this.macro,this.macro=[],this.on(`exec`,this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t==`string`?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(e){return e.map(function(e){return typeof e[0]!=`string`&&(e[0]=e[0].name),e[1]||(e=e[0]),e})},t}(a);i.implement(s.prototype,o),t.CommandManager=s}),ace.define(`ace/commands/default_commands`,[`require`,`exports`,`module`,`ace/lib/lang`,`ace/config`,`ace/range`],function(e,t,n){var r=e("../lib/lang"),i=e("../config"),a=e("../range").Range;function o(e,t){return{win:e,mac:t}}t.commands=[{name:`showSettingsMenu`,description:`Show settings menu`,bindKey:o(`Ctrl-,`,`Command-,`),exec:function(e){i.loadModule(`ace/ext/settings_menu`,function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:`goToNextError`,description:`Go to next error`,bindKey:o(`Alt-E`,`F4`),exec:function(e){i.loadModule(`ace/ext/error_marker`,function(t){t.showErrorMarker(e,1)})},scrollIntoView:`animate`,readOnly:!0},{name:`goToPreviousError`,description:`Go to previous error`,bindKey:o(`Alt-Shift-E`,`Shift-F4`),exec:function(e){i.loadModule(`ace/ext/error_marker`,function(t){t.showErrorMarker(e,-1)})},scrollIntoView:`animate`,readOnly:!0},{name:`selectall`,description:`Select all`,bindKey:o(`Ctrl-A`,`Command-A`),exec:function(e){e.selectAll()},readOnly:!0},{name:`centerselection`,description:`Center selection`,bindKey:o(null,`Ctrl-L`),exec:function(e){e.centerSelection()},readOnly:!0},{name:`gotoline`,description:`Go to line...`,bindKey:o(`Ctrl-L`,`Command-L`),exec:function(e,t){typeof t==`number`&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:`gotoLine`})},readOnly:!0},{name:`fold`,bindKey:o(`Alt-L|Ctrl-F1`,`Command-Alt-L|Command-F1`),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`unfold`,bindKey:o(`Alt-Shift-L|Ctrl-Shift-F1`,`Command-Alt-Shift-L|Command-Shift-F1`),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`toggleFoldWidget`,description:`Toggle fold widget`,bindKey:o(`F2`,`F2`),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`toggleParentFoldWidget`,description:`Toggle parent fold widget`,bindKey:o(`Alt-F2`,`Alt-F2`),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`foldall`,description:`Fold all`,bindKey:o(null,`Ctrl-Command-Option-0`),exec:function(e){e.session.foldAll()},scrollIntoView:`center`,readOnly:!0},{name:`foldAllComments`,description:`Fold all comments`,bindKey:o(null,`Ctrl-Command-Option-0`),exec:function(e){e.session.foldAllComments()},scrollIntoView:`center`,readOnly:!0},{name:`foldOther`,description:`Fold other`,bindKey:o(`Alt-0`,`Command-Option-0`),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:`center`,readOnly:!0},{name:`unfoldall`,description:`Unfold all`,bindKey:o(`Alt-Shift-0`,`Command-Option-Shift-0`),exec:function(e){e.session.unfold()},scrollIntoView:`center`,readOnly:!0},{name:`findnext`,description:`Find next`,bindKey:o(`Ctrl-K`,`Command-G`),exec:function(e){e.findNext()},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`findprevious`,description:`Find previous`,bindKey:o(`Ctrl-Shift-K`,`Command-Shift-G`),exec:function(e){e.findPrevious()},multiSelectAction:`forEach`,scrollIntoView:`center`,readOnly:!0},{name:`selectOrFindNext`,description:`Select or find next`,bindKey:o(`Alt-K`,`Ctrl-G`),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:`selectOrFindPrevious`,description:`Select or find previous`,bindKey:o(`Alt-Shift-K`,`Ctrl-Shift-G`),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:`find`,description:`Find`,bindKey:o(`Ctrl-F`,`Command-F`),exec:function(e){i.loadModule(`ace/ext/searchbox`,function(t){t.Search(e)})},readOnly:!0},{name:`overwrite`,description:`Overwrite`,bindKey:`Insert`,exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:`selecttostart`,description:`Select to start`,bindKey:o(`Ctrl-Shift-Home`,`Command-Shift-Home|Command-Shift-Up`),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:`forEach`,readOnly:!0,scrollIntoView:`animate`,aceCommandGroup:`fileJump`},{name:`gotostart`,description:`Go to start`,bindKey:o(`Ctrl-Home`,`Command-Home|Command-Up`),exec:function(e){e.navigateFileStart()},multiSelectAction:`forEach`,readOnly:!0,scrollIntoView:`animate`,aceCommandGroup:`fileJump`},{name:`selectup`,description:`Select up`,bindKey:o(`Shift-Up`,`Shift-Up|Ctrl-Shift-P`),exec:function(e){e.getSelection().selectUp()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`golineup`,description:`Go line up`,bindKey:o(`Up`,`Up|Ctrl-P`),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selecttoend`,description:`Select to end`,bindKey:o(`Ctrl-Shift-End`,`Command-Shift-End|Command-Shift-Down`),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:`forEach`,readOnly:!0,scrollIntoView:`animate`,aceCommandGroup:`fileJump`},{name:`gotoend`,description:`Go to end`,bindKey:o(`Ctrl-End`,`Command-End|Command-Down`),exec:function(e){e.navigateFileEnd()},multiSelectAction:`forEach`,readOnly:!0,scrollIntoView:`animate`,aceCommandGroup:`fileJump`},{name:`selectdown`,description:`Select down`,bindKey:o(`Shift-Down`,`Shift-Down|Ctrl-Shift-N`),exec:function(e){e.getSelection().selectDown()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`golinedown`,description:`Go line down`,bindKey:o(`Down`,`Down|Ctrl-N`),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectwordleft`,description:`Select word left`,bindKey:o(`Ctrl-Shift-Left`,`Option-Shift-Left`),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotowordleft`,description:`Go to word left`,bindKey:o(`Ctrl-Left`,`Option-Left`),exec:function(e){e.navigateWordLeft()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selecttolinestart`,description:`Select to line start`,bindKey:o(`Alt-Shift-Left`,`Command-Shift-Left|Ctrl-Shift-A`),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotolinestart`,description:`Go to line start`,bindKey:o(`Alt-Left|Home`,`Command-Left|Home|Ctrl-A`),exec:function(e){e.navigateLineStart()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectleft`,description:`Select left`,bindKey:o(`Shift-Left`,`Shift-Left|Ctrl-Shift-B`),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotoleft`,description:`Go to left`,bindKey:o(`Left`,`Left|Ctrl-B`),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectwordright`,description:`Select word right`,bindKey:o(`Ctrl-Shift-Right`,`Option-Shift-Right`),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotowordright`,description:`Go to word right`,bindKey:o(`Ctrl-Right`,`Option-Right`),exec:function(e){e.navigateWordRight()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selecttolineend`,description:`Select to line end`,bindKey:o(`Alt-Shift-Right`,`Command-Shift-Right|Shift-End|Ctrl-Shift-E`),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotolineend`,description:`Go to line end`,bindKey:o(`Alt-Right|End`,`Command-Right|End|Ctrl-E`),exec:function(e){e.navigateLineEnd()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectright`,description:`Select right`,bindKey:o(`Shift-Right`,`Shift-Right`),exec:function(e){e.getSelection().selectRight()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`gotoright`,description:`Go to right`,bindKey:o(`Right`,`Right|Ctrl-F`),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectpagedown`,description:`Select page down`,bindKey:`Shift-PageDown`,exec:function(e){e.selectPageDown()},readOnly:!0},{name:`pagedown`,description:`Page down`,bindKey:o(null,`Option-PageDown`),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:`gotopagedown`,description:`Go to page down`,bindKey:o(`PageDown`,`PageDown|Ctrl-V`),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:`selectpageup`,description:`Select page up`,bindKey:`Shift-PageUp`,exec:function(e){e.selectPageUp()},readOnly:!0},{name:`pageup`,description:`Page up`,bindKey:o(null,`Option-PageUp`),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:`gotopageup`,description:`Go to page up`,bindKey:`PageUp`,exec:function(e){e.gotoPageUp()},readOnly:!0},{name:`scrollup`,description:`Scroll up`,bindKey:o(`Ctrl-Up`,null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:`scrolldown`,description:`Scroll down`,bindKey:o(`Ctrl-Down`,null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:`selectlinestart`,description:`Select line start`,bindKey:`Shift-Home`,exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`selectlineend`,description:`Select line end`,bindKey:`Shift-End`,exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`togglerecording`,description:`Toggle recording`,bindKey:o(`Ctrl-Alt-E`,`Command-Option-E`),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:`replaymacro`,description:`Replay macro`,bindKey:o(`Ctrl-Shift-E`,`Command-Shift-E`),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:`jumptomatching`,description:`Jump to matching`,bindKey:o(`Ctrl-\\|Ctrl-P`,`Command-\\`),exec:function(e){e.jumpToMatching()},multiSelectAction:`forEach`,scrollIntoView:`animate`,readOnly:!0},{name:`selecttomatching`,description:`Select to matching`,bindKey:o(`Ctrl-Shift-\\|Ctrl-Shift-P`,`Command-Shift-\\`),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:`forEach`,scrollIntoView:`animate`,readOnly:!0},{name:`expandToMatching`,description:`Expand to matching`,bindKey:o(`Ctrl-Shift-M`,`Ctrl-Shift-M`),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:`forEach`,scrollIntoView:`animate`,readOnly:!0},{name:`passKeysToBrowser`,description:`Pass keys to browser`,bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:`copy`,description:`Copy`,exec:function(e){},readOnly:!0},{name:`cut`,description:`Cut`,exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit(`cut`,t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:`cursor`,multiSelectAction:`forEach`},{name:`paste`,description:`Paste`,exec:function(e,t){e.$handlePaste(t)},scrollIntoView:`cursor`},{name:`removeline`,description:`Remove line`,bindKey:o(`Ctrl-D`,`Command-D`),exec:function(e){e.removeLines()},scrollIntoView:`cursor`,multiSelectAction:`forEachLine`},{name:`duplicateSelection`,description:`Duplicate selection`,bindKey:o(`Ctrl-Shift-D`,`Command-Shift-D`),exec:function(e){e.duplicateSelection()},scrollIntoView:`cursor`,multiSelectAction:`forEach`},{name:`sortlines`,description:`Sort lines`,bindKey:o(`Ctrl-Alt-S`,`Command-Alt-S`),exec:function(e){e.sortLines()},scrollIntoView:`selection`,multiSelectAction:`forEachLine`},{name:`togglecomment`,description:`Toggle comment`,bindKey:o(`Ctrl-/`,`Command-/`),exec:function(e){e.toggleCommentLines()},multiSelectAction:`forEachLine`,scrollIntoView:`selectionPart`},{name:`toggleBlockComment`,description:`Toggle block comment`,bindKey:o(`Ctrl-Shift-/`,`Command-Shift-/`),exec:function(e){e.toggleBlockComment()},multiSelectAction:`forEach`,scrollIntoView:`selectionPart`},{name:`modifyNumberUp`,description:`Modify number up`,bindKey:o(`Ctrl-Shift-Up`,`Alt-Shift-Up`),exec:function(e){e.modifyNumber(1)},scrollIntoView:`cursor`,multiSelectAction:`forEach`},{name:`modifyNumberDown`,description:`Modify number down`,bindKey:o(`Ctrl-Shift-Down`,`Alt-Shift-Down`),exec:function(e){e.modifyNumber(-1)},scrollIntoView:`cursor`,multiSelectAction:`forEach`},{name:`replace`,description:`Replace`,bindKey:o(`Ctrl-H`,`Command-Option-F`),exec:function(e){i.loadModule(`ace/ext/searchbox`,function(t){t.Search(e,!0)})}},{name:`undo`,description:`Undo`,bindKey:o(`Ctrl-Z`,`Command-Z`),exec:function(e){e.undo()}},{name:`redo`,description:`Redo`,bindKey:o(`Ctrl-Shift-Z|Ctrl-Y`,`Command-Shift-Z|Command-Y`),exec:function(e){e.redo()}},{name:`copylinesup`,description:`Copy lines up`,bindKey:o(`Alt-Shift-Up`,`Command-Option-Up`),exec:function(e){e.copyLinesUp()},scrollIntoView:`cursor`},{name:`movelinesup`,description:`Move lines up`,bindKey:o(`Alt-Up`,`Option-Up`),exec:function(e){e.moveLinesUp()},scrollIntoView:`cursor`},{name:`copylinesdown`,description:`Copy lines down`,bindKey:o(`Alt-Shift-Down`,`Command-Option-Down`),exec:function(e){e.copyLinesDown()},scrollIntoView:`cursor`},{name:`movelinesdown`,description:`Move lines down`,bindKey:o(`Alt-Down`,`Option-Down`),exec:function(e){e.moveLinesDown()},scrollIntoView:`cursor`},{name:`del`,description:`Delete`,bindKey:o(`Delete`,`Delete|Ctrl-D|Shift-Delete`),exec:function(e){e.remove(`right`)},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`backspace`,description:`Backspace`,bindKey:o(`Shift-Backspace|Backspace`,`Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H`),exec:function(e){e.remove(`left`)},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`cut_or_delete`,description:`Cut or delete`,bindKey:o(`Shift-Delete`,null),exec:function(e){if(e.selection.isEmpty())e.remove(`left`);else return!1},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removetolinestart`,description:`Remove to line start`,bindKey:o(`Alt-Backspace`,`Command-Backspace`),exec:function(e){e.removeToLineStart()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removetolineend`,description:`Remove to line end`,bindKey:o(`Alt-Delete`,`Ctrl-K|Command-Delete`),exec:function(e){e.removeToLineEnd()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removetolinestarthard`,description:`Remove to line start hard`,bindKey:o(`Ctrl-Shift-Backspace`,null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removetolineendhard`,description:`Remove to line end hard`,bindKey:o(`Ctrl-Shift-Delete`,null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removewordleft`,description:`Remove word left`,bindKey:o(`Ctrl-Backspace`,`Alt-Backspace|Ctrl-Alt-Backspace`),exec:function(e){e.removeWordLeft()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`removewordright`,description:`Remove word right`,bindKey:o(`Ctrl-Delete`,`Alt-Delete`),exec:function(e){e.removeWordRight()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`outdent`,description:`Outdent`,bindKey:o(`Shift-Tab`,`Shift-Tab`),exec:function(e){e.blockOutdent()},multiSelectAction:`forEach`,scrollIntoView:`selectionPart`},{name:`indent`,description:`Indent`,bindKey:o(`Tab`,`Tab`),exec:function(e){e.indent()},multiSelectAction:`forEach`,scrollIntoView:`selectionPart`},{name:`blockoutdent`,description:`Block outdent`,bindKey:o(`Ctrl-[`,`Ctrl-[`),exec:function(e){e.blockOutdent()},multiSelectAction:`forEachLine`,scrollIntoView:`selectionPart`},{name:`blockindent`,description:`Block indent`,bindKey:o(`Ctrl-]`,`Ctrl-]`),exec:function(e){e.blockIndent()},multiSelectAction:`forEachLine`,scrollIntoView:`selectionPart`},{name:`insertstring`,description:`Insert string`,exec:function(e,t){e.insert(t)},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`inserttext`,description:`Insert text`,exec:function(e,t){e.insert(r.stringRepeat(t.text||``,t.times||1))},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`splitline`,description:`Split line`,bindKey:o(null,`Ctrl-O`),exec:function(e){e.splitLine()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`transposeletters`,description:`Transpose letters`,bindKey:o(`Alt-Shift-X`,`Ctrl-T`),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:`cursor`},{name:`touppercase`,description:`To uppercase`,bindKey:o(`Ctrl-U`,`Ctrl-U`),exec:function(e){e.toUpperCase()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`tolowercase`,description:`To lowercase`,bindKey:o(`Ctrl-Shift-U`,`Ctrl-Shift-U`),exec:function(e){e.toLowerCase()},multiSelectAction:`forEach`,scrollIntoView:`cursor`},{name:`autoindent`,description:`Auto Indent`,bindKey:o(null,null),exec:function(e){e.autoIndent()},scrollIntoView:`animate`},{name:`expandtoline`,description:`Expand to line`,bindKey:o(`Ctrl-Shift-L`,`Command-Shift-L`),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:`forEach`,scrollIntoView:`cursor`,readOnly:!0},{name:`openlink`,bindKey:o(`Ctrl+F3`,`F3`),exec:function(e){e.openLink()}},{name:`joinlines`,description:`Join lines`,bindKey:o(null,null),exec:function(e){for(var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,s=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/,` `).length,c=e.session.doc.getLine(n.row),l=n.row+1;l<=i.row+1;l++){var u=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));u.length!==0&&(u=` `+u),c+=u}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+s)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:`forEach`,readOnly:!0},{name:`invertSelection`,description:`Invert selection`,bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o0||e+t=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(e!=null){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$focusCustomWidget=function(e){if(e!=null){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},e.prototype.$focusAnnotation=function(e){if(e!=null){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},e.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}},e.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)},i=e("./lib/oop"),a=e("./lib/dom"),o=e("./lib/lang"),s=e("./lib/useragent"),c=e("./keyboard/textinput").TextInput,l=e("./mouse/mouse_handler").MouseHandler,u=e("./mouse/fold_handler").FoldHandler,d=e("./keyboard/keybinding").KeyBinding,f=e("./edit_session").EditSession,p=e("./search").Search,m=e("./range").Range,h=e("./lib/event_emitter").EventEmitter,g=e("./commands/command_manager").CommandManager,_=e("./commands/default_commands").commands,v=e("./config"),y=e("./token_iterator").TokenIterator,b=e("./keyboard/gutter_handler").GutterKeyboardHandler,x=e("./config").nls,S=e("./clipboard"),C=e("./lib/keys"),w=e("./lib/event"),T=e("./tooltip").HoverTooltip,E=function(){function e(t,n,r){this.id=`editor`+ ++e.$uid,this.session,this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.commands=new g(s.isMac?`mac`:`win`,_),typeof document==`object`&&(this.textInput=new c(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new l(this),new u(this)),this.keyBinding=new d(this),this.$search=new p().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on(`exec`,this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal(`input`,{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on(`change`,function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(n||r&&r.session||new f(``)),v.resetOptions(this),r&&this.setOptions(r),v._signal(`editor`,this)}return e.prototype.$initOperationListeners=function(){this.commands.on(`exec`,this.startOperation.bind(this),!0),this.commands.on(`afterExec`,this.endOperation.bind(this),!0)},e.prototype.startOperation=function(e){this.session.startOperation(e)},e.prototype.endOperation=function(e){this.session.endOperation(e)},e.prototype.onStartOperation=function(e){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,e||(this.previousCommand=null)},e.prototype.onEndOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1){this.curOp=null;return}if(this._signal(`beforeEndOperation`),!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case`center-animate`:n=`animate`;case`center`:this.renderer.scrollCursorIntoView(null,.5);break;case`animate`:case`cursor`:this.renderer.scrollCursorIntoView();break;case`selectionPart`:var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}n==`animate`&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name==`insertstring`){var i=e.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r&&=n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!=`always`&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},e.prototype.setKeyboardHandler=function(e,t){if(e&&typeof e==`string`&&e!=`ace`){this.$keybindingId=e;var n=this;v.loadModule([`keybinding`,e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off(`change`,this.$onDocumentChange),this.session.off(`changeMode`,this.$onChangeMode),this.session.off(`tokenizerUpdate`,this.$onTokenizerUpdate),this.session.off(`changeTabSize`,this.$onChangeTabSize),this.session.off(`changeWrapLimit`,this.$onChangeWrapLimit),this.session.off(`changeWrapMode`,this.$onChangeWrapMode),this.session.off(`changeFold`,this.$onChangeFold),this.session.off(`changeFrontMarker`,this.$onChangeFrontMarker),this.session.off(`changeBackMarker`,this.$onChangeBackMarker),this.session.off(`changeBreakpoint`,this.$onChangeBreakpoint),this.session.off(`changeAnnotation`,this.$onChangeAnnotation),this.session.off(`changeOverwrite`,this.$onCursorChange),this.session.off(`changeScrollTop`,this.$onScrollTopChange),this.session.off(`changeScrollLeft`,this.$onScrollLeftChange),this.session.off(`startOperation`,this.$onStartOperation),this.session.off(`endOperation`,this.$onEndOperation);var n=this.session.getSelection();n.off(`changeCursor`,this.$onCursorChange),n.off(`changeSelection`,this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on(`change`,this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on(`changeMode`,this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on(`tokenizerUpdate`,this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on(`changeTabSize`,this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on(`changeWrapLimit`,this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on(`changeWrapMode`,this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on(`changeFold`,this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on(`changeFrontMarker`,this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on(`changeBackMarker`,this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on(`changeBreakpoint`,this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on(`changeAnnotation`,this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on(`changeOverwrite`,this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on(`changeScrollTop`,this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on(`changeScrollLeft`,this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on(`changeCursor`,this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on(`changeSelection`,this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on(`startOperation`,this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on(`endOperation`,this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal(`changeSession`,{session:e,oldSession:t}),this.curOp=null,t&&t._signal(`changeEditor`,{oldEditor:this}),t&&(t.$editor=null),e&&e._signal(`changeEditor`,{editor:this}),e&&(e.$editor=this),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()}},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e,t){this.renderer.setStyle(e,t)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption(`fontSize`)||a.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption(`fontSize`,e)},e.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!(!t||t.destroyed)){t.$bracketHighlight&&=(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),a=t.getMatchingBracketRanges(n,i);if(!a){var o=new y(t,n.row,n.column).getCurrentToken();if(o&&/\b(?:tag-open|tag-name)/.test(o.type)){var s=t.getMatchingTags(n);s&&(a=[s.openTagName.isEmpty()?s.openTag:s.openTagName,s.closeTagName.isEmpty()?s.closeTag:s.closeTagName])}}if(!a&&t.$mode.getMatching&&(a=t.$mode.getMatching(e.session)),!a){e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide();return}var c=`ace_bracket`;Array.isArray(a)?a.length==1&&(c=`ace_error_bracket`):a=[a],a.length==2&&(m.comparePoints(a[0].end,a[1].start)==0?a=[m.fromPoints(a[0].start,a[1].end)]:m.comparePoints(a[0].start,a[1].end)==0&&(a=[m.fromPoints(a[1].start,a[0].end)])),t.$bracketHighlight={ranges:a,markerIds:a.map(function(e){return t.addMarker(e,c,`text`)})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()}},50)}},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(`focus`,e))},e.prototype.onBlur=function(e){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(`blur`,e))},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:1/0;this.renderer.updateLines(e.start.row,n,t),this._signal(`change`,e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal(`changeSelection`)},e.prototype.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine&&((this.$selectionStyle!=`line`||!this.selection.isMultiLine())&&(t=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)),e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new m(t.row,t.column,t.row,1/0);n.id=e.addMarker(n,`ace_active-line`,`screenLine`),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal(`changeBackMarker`))},e.prototype.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,`ace_selection`,r)}var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal(`changeSelection`)},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!(t.isEmpty()||t.isMultiLine())){var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),a=i.substring(n,r);if(!(a.length>5e3||!/[\w\d]/.test(a))){var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:a}),s=i.substring(n-1,r+1);if(o.test(s))return o}}},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit(`changeMode`,e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;for(var r=this.selection.getAllRanges(),i=0;is.search(/\S|$/)){var c=s.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+c)}}this.clearSelection();var l=i.column,u=n.getState(i.row),s=n.getLine(i.row),d=r.checkOutdent(u,s,e);if(n.insert(i,e),a&&a.selection&&(a.selection.length==2?this.selection.setSelectionRange(new m(i.row,l+a.selection[0],i.row,l+a.selection[1])):this.selection.setSelectionRange(new m(i.row+a.selection[0],a.selection[1],i.row+a.selection[2],a.selection[3]))),this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var f=r.getNextLineIndent(u,s.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},f)}d&&r.autoOutdent(u,n,i.row)}},e.prototype.autoIndent=function(){for(var e=this.session,t=e.getMode(),n=this.selection.isEmpty()?[new m(0,0,e.doc.getLength()-1,0)]:this.selection.getAllRanges(),r=``,i=``,a=``,o=e.getTabString(),s=0;s0&&(r=e.getState(u-1),i=e.getLine(u-1),a=t.getNextLineIndent(r,i,o));var d=e.getLine(u),f=t.$getIndent(d);if(a!==f){if(f.length>0){var p=new m(u,0,u,f.length);e.remove(p)}a.length>0&&e.insert({row:u,column:0},a)}t.autoOutdent(r,e,u)}},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:`insertstring`}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}if((e||!this.selection.isEmpty())&&this.insert(e,!0),t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption(`scrollSpeed`,e)},e.prototype.getScrollSpeed=function(){return this.getOption(`scrollSpeed`)},e.prototype.setDragDelay=function(e){this.setOption(`dragDelay`,e)},e.prototype.getDragDelay=function(){return this.getOption(`dragDelay`)},e.prototype.setSelectionStyle=function(e){this.setOption(`selectionStyle`,e)},e.prototype.getSelectionStyle=function(){return this.getOption(`selectionStyle`)},e.prototype.setHighlightActiveLine=function(e){this.setOption(`highlightActiveLine`,e)},e.prototype.getHighlightActiveLine=function(){return this.getOption(`highlightActiveLine`)},e.prototype.setHighlightGutterLine=function(e){this.setOption(`highlightGutterLine`,e)},e.prototype.getHighlightGutterLine=function(){return this.getOption(`highlightGutterLine`)},e.prototype.setHighlightSelectedWord=function(e){this.setOption(`highlightSelectedWord`,e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption(`readOnly`,e)},e.prototype.getReadOnly=function(){return this.getOption(`readOnly`)},e.prototype.setBehavioursEnabled=function(e){this.setOption(`behavioursEnabled`,e)},e.prototype.getBehavioursEnabled=function(){return this.getOption(`behavioursEnabled`)},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption(`wrapBehavioursEnabled`,e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption(`wrapBehavioursEnabled`)},e.prototype.setShowFoldWidgets=function(e){this.setOption(`showFoldWidgets`,e)},e.prototype.getShowFoldWidgets=function(){return this.getOption(`showFoldWidgets`)},e.prototype.setFadeFoldWidgets=function(e){this.setOption(`fadeFoldWidgets`,e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption(`fadeFoldWidgets`)},e.prototype.remove=function(e){this.selection.isEmpty()&&(e==`left`?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,`deletion`,this,n,t);if(t.end.column===0){var a=n.getTextRange(t);if(a[a.length-1]==` +`){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert(` +`),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(t!==0){var n=this.session.getLine(e.row),r,i;tt.toLowerCase())});for(var i=new m(0,0,0,0),r=e.first;r<=e.last;r++){var a=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=a.length,t.replace(i,n[r-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;for(var r=this.session.getLine(e);n.lastIndex=t)return{value:i[0],start:i.index,end:i.index+i[0].length}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new m(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var a=this.getNumberAt(t,n);if(a){var o=a.value.indexOf(`.`)>=0?a.start+a.value.indexOf(`.`)+1:a.end,s=a.start+a.value.length-o,c=parseFloat(a.value);c*=10**s,o!==a.end&&n=s&&a<=c&&(n=t,l.selection.clearSelection(),l.moveCursorTo(e,s+r),l.selection.selectTo(e,c+r)),s=c});for(var u=this.$toggleWordPairs,d,f=0;f=s&&o<=c&&f.match(/((?:https?|ftp):\/\/[\S]+)/)){l=f.replace(/[\s:.,'";}\]]+$/,``);break}s=c}}catch(e){n={error:e}}finally{try{d&&!d.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}return l},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,`_blank`),t!=null},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var a=r?n.start:n.end,o=t.insert(a,t.getTextRange(n));n.start=a,n.end=o,e.setSelectionRange(n,r)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var a=i.toOrientedRange();n=this.$getSelectedRows(a),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),a.moveBy(r,0),i.fromOrientedRange(a)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var s=0,c=0,l=o.length,u=0;up+1)break;p=m.last}for(u--,s=this.session.$moveLines(f,p,t?0:e),t&&e==-1&&(d=u+1);d<=u;)o[d].moveBy(s,0),d++;t||(s=0),c+=s}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var a=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(a)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),a=0;i&&i.type.indexOf(`tag-name`)!==-1&&(i=r.stepBackward());var o=i||r.stepForward();if(o){var s,c=!1,l={},u=n.column-o.start,d,f={")":`(`,"(":`(`,"]":`[`,"[":`[`,"{":`{`,"}":`{`};do{if(o.value.match(/[{}()\[\]]/g)){for(;u1?l[o.value]++:i.value===`=0;--a)this.$tryReplace(n[a],e)&&r++;return this.selection.setSelectionRange(i),r},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t===null?null:(e.end=this.session.replace(e,t),e)},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||={},typeof e==`string`||e instanceof RegExp?t.needle=e:typeof e==`object`&&i.mixin(t,e);var r=this.selection.getRange();t.needle??(e=this.session.getTextRange(r)||this.$search.$options.needle,e||=(r=this.session.getWordRange(r.start.row,r.start.column),this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var a=this.$search.find(this.session);if(t.preventScroll)return a;if(a)return this.revealRange(a,n),a;t.backwards?r.start=r.end:r.end=r.start,this.selection.setRange(r)},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.destroyed=!0,this.$toDestroy&&=(this.$toDestroy.forEach(function(e){e.destroy()}),[]),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal(`destroy`,this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(e){var t,n=this,r=!1;this.$scrollAnchor||=document.createElement(`div`);var i=this.$scrollAnchor;i.style.cssText=`position:absolute`,this.container.insertBefore(i,this.container.firstChild);var a=this.on(`changeSelection`,function(){r=!0}),o=this.renderer.on(`beforeRender`,function(){r&&(t=n.renderer.container.getBoundingClientRect())}),s=this.renderer.on(`afterRender`,function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,a=e.$cursorLayer.$pixelPos,o=e.layerConfig,s=a.top-o.offset;r=a.top>=0&&s+t.top<0?!0:a.topwindow.innerHeight?!1:null,r!=null&&(i.style.top=s+`px`,i.style.left=a.left+`px`,i.style.height=o.lineHeight+`px`,i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off(`changeSelection`,a),this.renderer.off(`afterRender`,s),this.renderer.off(`beforeRender`,o))}}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||`ace`,t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!=`wide`,a.setCssClass(t.element,`ace_slim-cursors`,/slim/.test(e)))},e.prototype.prompt=function(e,t,n){var r=this;v.loadModule(`ace/ext/prompt`,function(i){i.prompt(r,e,t,n)})},Object.defineProperty(e.prototype,"hoverTooltip",{get:function(){return this.$hoverTooltip||=new T(this.container)},set:function(e){this.$hoverTooltip&&this.$hoverTooltip.destroy(),this.$hoverTooltip=e},enumerable:!1,configurable:!0}),e}();E.$uid=0,E.prototype.curOp=null,E.prototype.prevOp={},E.prototype.$mergeableCommands=[`backspace`,`del`,`insertstring`],E.prototype.$toggleWordPairs=[[`first`,`last`],[`true`,`false`],[`yes`,`no`],[`width`,`height`],[`top`,`bottom`],[`right`,`left`],[`on`,`off`],[`x`,`y`],[`get`,`set`],[`max`,`min`],[`horizontal`,`vertical`],[`show`,`hide`],[`add`,`remove`],[`up`,`down`],[`before`,`after`],[`even`,`odd`],[`in`,`out`],[`inside`,`outside`],[`next`,`previous`],[`increase`,`decrease`],[`attach`,`detach`],[`&&`,`||`],[`==`,`!=`]],i.implement(E.prototype,h),v.defineOptions(E.prototype,`editor`,{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal(`changeSelectionStyle`,{data:e})},initialValue:`line`},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){var t=this;if(this.textInput.setReadOnly(e),!this.destroyed){this.$resetCursorStyle(),this.$readOnlyCallback||=function(e){var n=!1;if(e&&e.type==`keydown`){if(e&&e.key&&!e.ctrlKey&&!e.metaKey&&(e.key==` `&&e.preventDefault(),n=e.key.length==1),!n)return}else e&&e.type!==`exec`&&(n=!0);if(n){var r=a.createElement(`div`);r.textContent=x(`editor.tooltip.disable-editing`,`Editing is disabled`),t.hoverTooltip.isOpen||t.hoverTooltip.showForRange(t,t.getSelectionRange(),r)}else t.hoverTooltip&&t.hoverTooltip.isOpen&&t.hoverTooltip.hide()};var n=this.textInput.getElement();e?(w.addListener(n,`keydown`,this.$readOnlyCallback,this),this.commands.on(`exec`,this.$readOnlyCallback),this.commands.on(`commandUnavailable`,this.$readOnlyCallback)):(w.removeListener(n,`keydown`,this.$readOnlyCallback),this.commands.off(`exec`,this.$readOnlyCallback),this.commands.off(`commandUnavailable`,this.$readOnlyCallback))}},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:[`ace`,`slim`,`smooth`,`wide`],initialValue:`ace`},mergeUndoDeltas:{values:[!1,!0,`always`],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?D.attach(this):D.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?D.attach(this):D.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off(`afterRender`,this.$updatePlaceholder),a.removeCssClass(this.container,`ace_hasPlaceholder`),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on(`afterRender`,this.$updatePlaceholder),a.addCssClass(this.container,`ace_hasPlaceholder`);var t=a.createElement(`div`);t.className=`ace_placeholder`,t.textContent=this.$placeholder||``,this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||``)}.bind(this),this.on(`input`,this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t={name:`blurTextInput`,description:`Set focus to the editor content div to allow tabbing through the page`,bindKey:`Esc`,exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},n=function(e){if(e.target==this.renderer.scroller&&e.keyCode===C.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}},r;e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName=`ace_keyboard-focus`,this.textInput.getElement().setAttribute(`tabindex`,-1),this.textInput.setNumberOfExtraLines(s.isWin?3:0),this.renderer.scroller.setAttribute(`tabindex`,0),this.renderer.scroller.setAttribute(`role`,`group`),this.renderer.scroller.setAttribute(`aria-roledescription`,x(`editor.scroller.aria-roledescription`,`editor`)),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute(`aria-label`,x(`editor.scroller.aria-label`,`Editor content, press Enter to start editing, press Escape to exit`)),this.renderer.scroller.addEventListener(`keyup`,n.bind(this)),this.commands.addCommand(t),this.renderer.$gutter.setAttribute(`tabindex`,0),this.renderer.$gutter.setAttribute(`aria-hidden`,!1),this.renderer.$gutter.setAttribute(`role`,`group`),this.renderer.$gutter.setAttribute(`aria-roledescription`,x(`editor.gutter.aria-roledescription`,`editor gutter`)),this.renderer.$gutter.setAttribute(`aria-label`,x(`editor.gutter.aria-label`,`Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit`)),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute(`aria-hidden`,!0),r||=new b(this),r.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute(`tabindex`,0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute(`tabindex`,-1),this.renderer.scroller.removeAttribute(`role`),this.renderer.scroller.removeAttribute(`aria-roledescription`),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute(`aria-label`),this.renderer.scroller.removeEventListener(`keyup`,n.bind(this)),this.commands.removeCommand(t),this.renderer.content.removeAttribute(`aria-hidden`),this.renderer.$gutter.setAttribute(`tabindex`,-1),this.renderer.$gutter.setAttribute(`aria-hidden`,!0),this.renderer.$gutter.removeAttribute(`role`),this.renderer.$gutter.removeAttribute(`aria-roledescription`),this.renderer.$gutter.removeAttribute(`aria-label`),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),r&&r.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(e){this.$textInputAriaLabel=e},initialValue:``},enableMobileMenu:{set:function(e){this.$enableMobileMenu=e},initialValue:!0},customScrollbar:`renderer`,hScrollBarAlwaysVisible:`renderer`,vScrollBarAlwaysVisible:`renderer`,highlightGutterLine:`renderer`,animatedScroll:`renderer`,showInvisibles:`renderer`,showPrintMargin:`renderer`,printMarginColumn:`renderer`,printMargin:`renderer`,fadeFoldWidgets:`renderer`,showFoldWidgets:`renderer`,displayIndentGuides:`renderer`,highlightIndentGuides:`renderer`,showGutter:`renderer`,fontSize:`renderer`,fontFamily:`renderer`,maxLines:`renderer`,minLines:`renderer`,scrollPastEnd:`renderer`,fixedWidthGutter:`renderer`,theme:`renderer`,hasCssTransforms:`renderer`,maxPixelHeight:`renderer`,useTextareaForIME:`renderer`,useResizeObserver:`renderer`,useSvgGutterIcons:`renderer`,showFoldedAnnotations:`renderer`,scrollSpeed:`$mouseHandler`,dragDelay:`$mouseHandler`,dragEnabled:`$mouseHandler`,focusTimeout:`$mouseHandler`,firstLineNumber:`session`,overwrite:`session`,newLineMode:`session`,useWorker:`session`,useSoftTabs:`session`,navigateWithinSoftTabs:`session`,tabSize:`session`,wrap:`session`,indentedSoftWrap:`session`,foldStyle:`session`,mode:`session`});var D={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?`·`:``))+``},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on(`changeSelection`,this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off(`changeSelection`,this.update),this.update(null,e)}};t.Editor=E}),ace.define(`ace/layer/lines`,[`require`,`exports`,`module`,`ace/lib/dom`],function(e,t,n){var r=e("../lib/dom");t.Lines=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+`px`,this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight);return n.documentToScreenRow(e,0)*t.lineHeight-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=r.createFragment(this.element),n=0;na&&(c=i.end.row+1,i=t.getNextFoldLine(c,i),a=i?i.start.row:1/0),c>r){for(;this.$lines.getLength()>s+1;)this.$lines.pop();break}o=this.$lines.get(++s),o?o.row=c:(o=this.$lines.createCell(c,e,this.session,u),this.$lines.push(o)),this.$renderCell(o,e,i,c),c++}this._signal(`afterRender`),this.$updateGutterWidth(e),this.$showCursorMarker&&this.$highlightGutterLine&&this.$updateCursorMarker()},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:``;(this.$fixedWidth||t.$useWrapMode)&&(i=t.getLength()+r-1);var a=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();a+=o.left+o.right,a!==this.gutterWidth&&!isNaN(a)&&(this.gutterWidth=a,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+`px`,this._signal(`changeGutterWidth`,a))},e.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},e.prototype.updateLineHighlight=function(){if(this.$showCursorMarker&&this.$updateCursorMarker(),this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!(this.$cursorCell&&this.$cursorCell.row==e)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace(`ace_gutter-active-line `,``));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(n>0&&i&&i.start.row==t[n-1].row)r=t[n-1];else break}r.element.className=`ace_gutter-active-line `+r.element.className,this.$cursorCell=r;break}}}}},e.prototype.$updateCursorMarker=function(){if(this.session){var e=this.session;this.$highlightElement||(this.$highlightElement=r.createElement(`div`),this.$highlightElement.className=`ace_gutter-cursor`,this.$highlightElement.style.pointerEvents=`none`,this.element.appendChild(this.$highlightElement));var t=e.selection.cursor,n=this.config,i=this.$lines,a=n.firstRowScreen*n.lineHeight,o=Math.floor(a/i.canvasHeight),s=e.documentToScreenRow(t)*n.lineHeight-o*i.canvasHeight;r.setStyle(this.$highlightElement.style,`height`,n.lineHeight+`px`),r.setStyle(this.$highlightElement.style,`top`,s+`px`)}},e.prototype.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;if(this.oldLastRow=n,!t||r0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal(`afterRender`),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){for(var r=[],i=t,a=this.session.getNextFoldLine(i),o=a?a.start.row:1/0;i>o&&(i=a.end.row+1,a=this.session.getNextFoldLine(i,a),o=a?a.start.row:1/0),!(i>n);){var s=this.$lines.createCell(i,e,this.session,u);this.$renderCell(s,e,a,i),r.push(s),i++}return r},e.prototype.$renderCell=function(e,t,n,i){var a=e.element,o=this.session,s=a.childNodes[0],l=a.childNodes[1],u=a.childNodes[2],d=a.childNodes[3],f=u.firstChild,p=o.$firstLineNumber,m=o.$breakpoints,h=o.$decorations,g=o.gutterRenderer||this.$renderer,_=this.$showFoldWidgets&&o.foldWidgets,v=n?n.start.row:Number.MAX_VALUE,y=t.lineHeight+`px`,b=this.$useSvgGutterIcons?`ace_gutter-cell_svg-icons `:`ace_gutter-cell `,x=this.$useSvgGutterIcons?`ace_icon_svg`:`ace_icon`,S=(g?g.getText(o,i):i+p).toString();if(this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=v&&this.$cursorRow<=n.end.row)&&(b+=`ace_gutter-active-line `,this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace(`ace_gutter-active-line `,``)),this.$cursorCell=e)),m[i]&&(b+=m[i]),h[i]&&(b+=h[i]),this.$annotations[i]&&i!==v&&(b+=this.$annotations[i].className),_){var C=_[i];C??=_[i]=o.getFoldWidget(i)}if(C){var w=`ace_fold-widget ace_`+C,T=C==`start`&&i==v&&it[r].row)){for(;n<=r;){var i=Math.floor((n+r)/2),a=t[i];if(a.row>e)r=i-1;else if(a.rown.right-t.right)return`foldWidgets`},e}();l.prototype.$fixedWidth=!1,l.prototype.$highlightGutterLine=!0,l.prototype.$renderer=void 0,l.prototype.$showLineNumbers=!0,l.prototype.$showFoldWidgets=!0,i.implement(l.prototype,o);function u(e){var t=document.createTextNode(``);e.appendChild(t);var n=r.createElement(`span`);e.appendChild(n);var i=r.createElement(`span`);e.appendChild(i);var a=r.createElement(`span`);return i.appendChild(a),e}t.Gutter=l}),ace.define(`ace/layer/marker`,[`require`,`exports`,`module`,`ace/range`,`ace/lib/dom`],function(e,t,n){var r=e("../range").Range,i=e("../lib/dom"),a=function(){function e(e){this.element=i.createElement(`div`),this.element.className=`ace_layer ace_marker-layer`,e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement(`div`),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(e){this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(!i.isEmpty())if(i=i.toScreenRange(this.session),r.renderer){var a=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,a,e)}else r.type==`fullLine`?this.drawFullLineMarker(t,i,r.clazz,e):r.type==`screenLine`?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type==`text`?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+` ace_start ace_br15`,e)}if(this.i!=-1)for(;this.ip,u==l),i,u==l?0:1,a)},e.prototype.drawMultiLineMarker=function(e,t,n,r,i){var a=this.$padding,o=r.lineHeight,s=this.$getTop(t.start.row,r),c=a+t.start.column*r.characterWidth;if(i||=``,this.session.$bidiHandler.isBidiRow(t.start.row)){var l=t.clone();l.end.row=l.start.row,l.end.column=this.session.getLine(l.start.row).length,this.drawBidiSingleLineMarker(e,l,n+` ace_br1 ace_start`,r,null,i)}else this.elt(n+` ace_br1 ace_start`,`height:`+o+`px;right:`+a+`px;top:`+s+`px;left:`+c+`px;`+(i||``));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var l=t.clone();l.start.row=l.end.row,l.start.column=0,this.drawBidiSingleLineMarker(e,l,n+` ace_br12`,r,null,i)}else{s=this.$getTop(t.end.row,r);var u=t.end.column*r.characterWidth;this.elt(n+` ace_br12`,`height:`+o+`px;width:`+u+`px;top:`+s+`px;left:`+a+`px;`+(i||``))}if(o=(t.end.row-t.start.row-1)*r.lineHeight,!(o<=0)){s=this.$getTop(t.start.row+1,r);var d=!!t.start.column|(t.end.column?0:8);this.elt(n+(d?` ace_br`+d:``),`height:`+o+`px;right:`+a+`px;top:`+s+`px;left:`+a+`px;`+(i||``))}},e.prototype.drawSingleLineMarker=function(e,t,n,r,i,a){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,a);var o=r.lineHeight,s=(t.end.column+(i||0)-t.start.column)*r.characterWidth,c=this.$getTop(t.start.row,r),l=this.$padding+t.start.column*r.characterWidth;this.elt(n,`height:`+o+`px;width:`+s+`px;top:`+c+`px;left:`+l+`px;`+(a||``))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,r,i,a){var o=r.lineHeight,s=this.$getTop(t.start.row,r),c=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(e){this.elt(n,`height:`+o+`px;width:`+(e.width+(i||0))+`px;top:`+s+`px;left:`+(c+e.left)+`px;`+(a||``))},this)},e.prototype.drawFullLineMarker=function(e,t,n,r,i){var a=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-a),this.elt(n,`height:`+o+`px;top:`+a+`px;left:0;right:0;`+(i||``))},e.prototype.drawScreenLineMarker=function(e,t,n,r,i){var a=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,`height:`+o+`px;top:`+a+`px;left:0;right:0;`+(i||``))},e}();a.prototype.$padding=0;function o(e,t,n,r){return!!e|(t?2:0)|(n?4:0)|(r?8:0)}t.Marker=a}),ace.define(`ace/layer/text_util`,[`require`,`exports`,`module`],function(e,t,n){var r=new Set([`text`,`rparen`,`lparen`]);t.isTextToken=function(e){return r.has(e)}}),ace.define(`ace/layer/text`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/dom`,`ace/lib/lang`,`ace/layer/lines`,`ace/lib/event_emitter`,`ace/config`,`ace/layer/text_util`],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),a=e("../lib/lang"),o=e("./lines").Lines,s=e("../lib/event_emitter").EventEmitter,c=e("../config").nls,l=e("./text_util").isTextToken,u=function(){function e(e){this.dom=i,this.element=this.dom.createElement(`div`),this.element.className=`ace_layer ace_text-layer`,e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()==` +`&&e.getNewLineMode()!=`windows`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin=`0 `+e+`px`},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on(`changeCharacterSize`,function(e){this._signal(`changeCharacterSize`,e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e==`string`?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],n=1;nu&&(s=c.end.row+1,c=this.session.getNextFoldLine(s,c),u=c?c.start.row:1/0),!(s>i);){var d=a[o++];if(d){this.dom.removeChildren(d),this.$renderLine(d,s,s==u&&c),l&&(d.style.top=this.$lines.computeLineTop(s,e,this.session)+`px`);var f=e.lineHeight*this.session.getRowLength(s)+`px`;d.style.height!=f&&(l=!0,d.style.height=f)}s++}if(l)for(;o0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){for(var r=[],a=t,o=this.session.getNextFoldLine(a),s=o?o.start.row:1/0;a>s&&(a=o.end.row+1,o=this.session.getNextFoldLine(a,o),s=o?o.start.row:1/0),!(a>n);){var c=this.$lines.createCell(a,e,this.session),l=c.element;this.dom.removeChildren(l),i.setStyle(l.style,`height`,this.$lines.computeLineHeight(a,e,this.session)+`px`),i.setStyle(l.style,`top`,this.$lines.computeLineTop(a,e,this.session)+`px`),this.$renderLine(l,a,a==s&&o),this.$useLineGroups()?l.className=`ace_line_group`:l.className=`ace_line`,r.push(c),a++}return r},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,n=e.lastRow,r=this.$lines;r.getLength();)r.pop();r.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,r){for(var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,s=this.dom.createFragment(this.element),u,d=0;u=o.exec(r);){var f=u[1],p=u[2],m=u[3],h=u[4],g=u[5];if(!(!i.showSpaces&&p)){var _=d==u.index?``:r.slice(d,u.index);if(d=u.index+u[0].length,_&&s.appendChild(this.dom.createTextNode(_,this.element)),f){var v=i.session.getScreenTabSize(t+u.index),y=i.$tabStrings[v].cloneNode(!0);y.charCount=1,s.appendChild(y),t+=v-1}else if(p)if(i.showSpaces){var b=this.dom.createElement(`span`);b.className=`ace_invisible ace_invisible_space`,b.textContent=a.stringRepeat(i.SPACE_CHAR,p.length),s.appendChild(b)}else s.appendChild(this.dom.createTextNode(p,this.element));else if(m){var b=this.dom.createElement(`span`);b.className=`ace_invisible ace_invisible_space ace_invalid`,b.textContent=a.stringRepeat(i.SPACE_CHAR,m.length),s.appendChild(b)}else if(h){t+=1;var b=this.dom.createElement(`span`);b.style.width=i.config.characterWidth*2+`px`,b.className=i.showSpaces?`ace_cjk ace_invisible ace_invisible_space`:`ace_cjk`,b.textContent=i.showSpaces?i.SPACE_CHAR:h,s.appendChild(b)}else if(g){t+=1;var b=this.dom.createElement(`span`);b.style.width=i.config.characterWidth*2+`px`,b.className=`ace_cjk`,b.textContent=g,s.appendChild(b)}}}if(s.appendChild(this.dom.createTextNode(d?r.slice(d):r,this.element)),l(n.type))e.appendChild(s);else{var x=`ace_`+n.type.replace(/\./g,` ace_`),b=this.dom.createElement(`span`);n.type==`fold`&&(b.style.width=n.value.length*this.config.characterWidth+`px`,b.setAttribute(`title`,c(`inline-fold.closed.title`,`Unfold code`))),b.className=x,b.appendChild(s),e.appendChild(b)}return t+r.length},e.prototype.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==` `){r-=r%this.tabSize;for(var i=r/this.tabSize,a=0;ai[a].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[t.row]!==``&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(var a=t.row+1;a0)n=e.element.childNodes[0];else return;var r=n.childNodes;if(r){var i=r[t-1];i&&i.classList&&i.classList.contains(`ace_indent-guide`)&&i.classList.add(`ace_indent-guide-active`)}}},e.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var e=this.$lines.cells;this.$clearActiveIndentGuide();var t=this.$highlightIndentGuideMarker.indentLevel;if(t!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var n=0;n=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=o;){s=this.$renderToken(c,s,u,d.substring(0,o-r)),d=d.substring(o-r),r=o,c=this.$createLineElement(),e.appendChild(c);var f=this.dom.createTextNode(a.stringRepeat(`\xA0`,n.indent),this.element);f.charCount=0,c.appendChild(f),i++,s=0,o=n[i]||Number.MAX_VALUE}d.length!=0&&(r+=d.length,s=this.$renderToken(c,s,u,d))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(c,s,null,``,!0)},e.prototype.$renderSimpleLine=function(e,t){for(var n=0,r=0;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,a);n=this.$renderToken(e,n,i,a)}}},e.prototype.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var a=this.dom.createElement(`span`);a.className=`ace_inline_button ace_keyword ace_toggle_wrap`,a.textContent=i?``:``,e.appendChild(a)},e.prototype.$renderLine=function(e,t,n){if(!n&&n!=0&&(n=this.session.getFoldLine(t)),n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var a=this.session.getRowSplitData(t);if(a&&a.length){this.$renderWrappedLine(e,r,a);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement(`span`);o.className=`ace_invisible ace_invisible_eol`,o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},e.prototype.$getFoldLineTokens=function(e,t){var n=this.session,r=[];function i(e,t,n){for(var i=0,a=0;a+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),a=t+o.length,i+=1}for(;an?r.push({type:e[i].type,value:o.substring(0,n-a)}):r.push(e[i]),a+=o.length,i+=1}}var a=n.getTokens(e);return t.walk(function(e,t,o,s,c){e==null?(c&&(a=n.getTokens(t)),a.length&&i(a,s,o)):r.push({type:`fold`,value:e})},t.end.row,this.session.getLine(t.end.row).length),r},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();u.prototype.EOF_CHAR=`¶`,u.prototype.EOL_CHAR_LF=`¬`,u.prototype.EOL_CHAR_CRLF=`¤`,u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR=`—`,u.prototype.SPACE_CHAR=`·`,u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,r.implement(u.prototype,s),t.Text=u}),ace.define(`ace/layer/cursor`,[`require`,`exports`,`module`,`ace/lib/dom`],function(e,t,n){var r=e("../lib/dom"),i=function(){function e(e){this.element=r.createElement(`div`),this.element.className=`ace_layer ace_cursor-layer`,e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,`ace_hidden-cursors`),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){for(var t=this.cursors,n=t.length;n--;)r.setStyle(t[n].style,`opacity`,e?``:`0`)},e.prototype.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+`ms`;this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,`ace_animate-blinking`)}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,`ace_animate-blinking`)},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,`ace_smooth-blinking`,e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=r.createElement(`div`);return e.className=`ace_cursor`,this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,`ace_hidden-cursors`),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,`ace_hidden-cursors`),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,`ace_smooth-blinking`)),e(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,`ace_smooth-blinking`)}.bind(this))),r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||=this.session.selection.getCursor();var n=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),top:(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||o.top<0)&&n>1)){var s=this.cursors[i++]||this.addCursor(),c=s.style;this.drawCursor?this.drawCursor(s,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(c,`display`,`block`),r.translate(s,o.left,o.top),r.setStyle(c,`width`,Math.round(e.characterWidth)+`px`),r.setStyle(c,`height`,e.lineHeight+`px`)):r.setStyle(c,`display`,`none`)}}for(;this.cursors.length>i;)this.removeCursor();var l=this.session.getOverwrite();this.$setOverwrite(l),this.$pixelPos=o,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,`ace_overwrite-cursors`):r.removeCssClass(this.element,`ace_overwrite-cursors`))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i}),ace.define(`ace/scrollbar`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/dom`,`ace/lib/event`,`ace/lib/event_emitter`],function(e,t,n){var r=this&&this.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),i=e("./lib/oop"),a=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,c=32768,l=function(){function e(e,t){this.element=a.createElement(`div`),this.element.className=`ace_scrollbar ace_scrollbar`+t,this.element.tabIndex=-1,this.inner=a.createElement(`div`),this.inner.className=`ace_scrollbar-inner`,this.inner.textContent=`\xA0`,this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,`scroll`,this.onScroll.bind(this)),o.addListener(this.element,`mousedown`,o.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?``:`none`,this.isVisible=e,this.coeff=1},e}();i.implement(l.prototype,s);var u=function(e){r(t,e);function t(t,n){var r=e.call(this,t,`-v`)||this;return r.scrollTop=0,r.scrollHeight=0,n.$scrollbarWidth=r.width=a.scrollbarWidth(t.ownerDocument),r.inner.style.width=r.element.style.width=(r.width||15)+5+`px`,r.$minWidth=0,r}return t.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit(`scroll`,{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+`px`},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>c?(this.coeff=c/e,e=c):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+`px`},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(l);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(e){r(t,e);function t(t,n){var r=e.call(this,t,`-h`)||this;return r.scrollLeft=0,r.height=n.$scrollbarWidth,r.inner.style.height=r.element.style.height=(r.height||15)+5+`px`,r}return t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit(`scroll`,{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+`px`},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+`px`},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+`px`},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(l);t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d}),ace.define(`ace/scrollbar_custom`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/dom`,`ace/lib/event`,`ace/lib/event_emitter`],function(e,t,n){var r=this&&this.__extends||(function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if(typeof n!=`function`&&n!==null)throw TypeError(`Class extends value `+String(n)+` is not a constructor or null`);e(t,n);function r(){this.constructor=t}t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}})(),i=e("./lib/oop"),a=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter;a.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ + position: absolute; + background: rgba(128, 128, 128, 0.6); + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #bbb; + border-radius: 2px; + z-index: 8; +} +.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { + position: absolute; + z-index: 6; + background: none; + overflow: hidden!important; +} +.ace_editor>.ace_sb-v { + z-index: 6; + right: 0; + top: 0; + width: 12px; +} +.ace_editor>.ace_sb-v div { + z-index: 8; + right: 0; + width: 100%; +} +.ace_editor>.ace_sb-h { + bottom: 0; + left: 0; + height: 12px; +} +.ace_editor>.ace_sb-h div { + bottom: 0; + height: 100%; +} +.ace_editor>.ace_sb_grabbed { + z-index: 8; + background: #000; +}`,`ace_scrollbar.css`,!1);var c=function(){function e(e,t){this.element=a.createElement(`div`),this.element.className=`ace_sb`+t,this.inner=a.createElement(`div`),this.inner.className=``,this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addMultiMouseDownListener(this.element,[500,300,300],this,`onMouseDown`)}return e.prototype.setVisible=function(e){this.element.style.display=e?``:`none`,this.isVisible=e,this.coeff=1},e}();i.implement(c.prototype,s);var l=function(e){r(t,e);function t(t,n){var r=e.call(this,t,`-v`)||this;return r.scrollTop=0,r.scrollHeight=0,r.parent=t,r.width=r.VScrollWidth,r.renderer=n,r.inner.style.width=r.element.style.width=(r.width||15)+`px`,r.$minWidth=0,r}return t.prototype.onMouseDown=function(e,t){if(e===`mousedown`&&!(o.getButton(t)!==0||t.detail===2)){if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},a=function(){clearInterval(u)},s=t.clientY,c=this.thumbTop,l=function(){if(r!==void 0){var e=n.scrollTopFromThumbTop(c+r-s);e!==n.scrollTop&&n._emit(`scroll`,{data:e})}};o.capture(this.inner,i,a);var u=setInterval(l,20);return o.preventDefault(t)}var d=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit(`scroll`,{data:this.scrollTopFromThumbTop(d)}),o.preventDefault(t)}},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){this.pageHeight===e&&!t||(this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+`px`,this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit(`scroll`,{data:this.scrollTop})))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+`px`},t}(c);l.prototype.setInnerHeight=l.prototype.setScrollHeight;var u=function(e){r(t,e);function t(t,n){var r=e.call(this,t,`-h`)||this;return r.scrollLeft=0,r.scrollWidth=0,r.height=r.HScrollHeight,r.inner.style.height=r.element.style.height=(r.height||12)+`px`,r.renderer=n,r}return t.prototype.onMouseDown=function(e,t){if(e===`mousedown`&&!(o.getButton(t)!==0||t.detail===2)){if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},a=function(){clearInterval(u)},s=t.clientX,c=this.thumbLeft,l=function(){if(r!==void 0){var e=n.scrollLeftFromThumbLeft(c+r-s);e!==n.scrollLeft&&n._emit(`scroll`,{data:e})}};o.capture(this.inner,i,a);var u=setInterval(l,20);return o.preventDefault(t)}var d=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit(`scroll`,{data:this.scrollLeftFromThumbLeft(d)}),o.preventDefault(t)}},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+`px`,this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){this.pageWidth===e&&!t||(this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+`px`,this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit(`scroll`,{data:this.scrollLeft})))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+`px`},t}(c);u.prototype.setInnerWidth=u.prototype.setScrollWidth,t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=u,t.VScrollBar=l,t.HScrollBar=u}),ace.define(`ace/renderloop`,[`require`,`exports`,`module`,`ace/lib/event`],function(e,t,n){var r=e("./lib/event");t.RenderLoop=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;if(t&&(r.blockIdle(100),n.changes=0,n.onRender(t)),n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes|=e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}()}),ace.define(`ace/layer/font_metrics`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/dom`,`ace/lib/lang`,`ace/lib/event`,`ace/lib/useragent`,`ace/lib/event_emitter`],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),a=e("../lib/lang"),o=e("../lib/event"),s=e("../lib/useragent"),c=e("../lib/event_emitter").EventEmitter,l=512,u=typeof ResizeObserver==`function`,d=200,f=function(){function e(e){this.el=i.createElement(`div`),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement(`div`),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement(`div`),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=a.stringRepeat(`X`,l),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height=`auto`,e.left=e.top=`0px`,e.visibility=`hidden`,e.position=`absolute`,e.whiteSpace=`pre`,s.isIE<8?e[`font-family`]=`inherit`:e.font=`inherit`,e.overflow=t?`hidden`:`visible`},e.prototype.checkForSizeChanges=function(e){if(e===void 0&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight=`bold`;var t=this.$measureSizes();this.$measureNode.style.fontWeight=``,this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit(`changeCharacterSize`,{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&=(clearInterval(this.$pollSizeChangesTimer),0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/l};return t.width===0||t.height===0?null:t},e.prototype.$measureCharWidth=function(e){return this.$main.textContent=a.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return t===void 0&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return!e||!e.parentElement?1:(Number(window.getComputedStyle(e).zoom)||1)*this.$getZoom(e.parentElement)},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return[`div`,{style:`position: absolute;top:`+e+`px;left:`+t+`px;`}]};this.els=i.buildDom([e(0,0),e(d,0),e(0,d),e(d,d)],this.el)},e.prototype.transformCoordinates=function(e,t){e&&=a(1/this.$getZoom(this.el),e);function n(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function r(e,t){return[e[0]-t[0],e[1]-t[1]]}function i(e,t){return[e[0]+t[0],e[1]+t[1]]}function a(e,t){return[e*t[0],e*t[1]]}this.els||this.$initTransformMeasureNodes();function o(e){var t=e.getBoundingClientRect();return[t.left,t.top]}var s=o(this.els[0]),c=o(this.els[1]),l=o(this.els[2]),u=o(this.els[3]),f=n(r(u,c),r(u,l),r(i(c,l),i(u,s))),p=a(1+f[0],r(c,s)),m=a(1+f[1],r(l,s));if(t){var h=t,g=f[0]*h[0]/d+f[1]*h[1]/d+1,_=i(a(h[0],p),a(h[1],m));return i(a(1/g/d,_),s)}var v=r(e,s);return a(d,n(r(p,a(f[0],v)),r(m,a(f[1],v)),v))},e}();f.prototype.$characterSize={width:0,height:0},r.implement(f.prototype,c),t.FontMetrics=f}),ace.define(`ace/css/editor-css`,[`require`,`exports`,`module`],function(e,t,n){n.exports=` +.ace_br1 {border-top-left-radius : 3px;} +.ace_br2 {border-top-right-radius : 3px;} +.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} +.ace_br4 {border-bottom-right-radius: 3px;} +.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} +.ace_br8 {border-bottom-left-radius : 3px;} +.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} + + +.ace_editor { + position: relative; + overflow: hidden; + padding: 0; + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; + direction: ltr; + text-align: left; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + forced-color-adjust: none; +} + +.ace_scroller { + position: absolute; + overflow: hidden; + top: 0; + bottom: 0; + background-color: inherit; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + cursor: text; +} + +.ace_content { + position: absolute; + box-sizing: border-box; + min-width: 100%; + contain: style size layout; + font-variant-ligatures: no-common-ligatures; +} +.ace_invisible { + font-variant-ligatures: none; +} + +.ace_keyboard-focus:focus { + box-shadow: inset 0 0 0 2px #5E9ED6; + outline: none; +} + +.ace_dragging .ace_scroller:before{ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + content: ''; + background: rgba(250, 250, 250, 0.01); + z-index: 1000; +} +.ace_dragging.ace_dark .ace_scroller:before{ + background: rgba(0, 0, 0, 0.01); +} + +.ace_gutter { + position: absolute; + overflow : hidden; + width: auto; + top: 0; + bottom: 0; + left: 0; + cursor: default; + z-index: 4; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + contain: style size layout; +} + +.ace_gutter-active-line { + position: absolute; + left: 0; + right: 0; +} + +.ace_scroller.ace_scroll-left:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; + pointer-events: none; +} + +.ace_gutter-cell, .ace_gutter-cell_svg-icons { + position: absolute; + top: 0; + left: 0; + right: 0; + padding-left: 19px; + padding-right: 6px; + background-repeat: no-repeat; +} + +.ace_gutter-cell_svg-icons .ace_gutter_annotation { + margin-left: -14px; + float: left; +} + +.ace_gutter-cell .ace_gutter_annotation { + margin-left: -19px; + float: left; +} + +.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); +} + +.ace_icon_svg.ace_error { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_security { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_warning { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: darkorange; +} +.ace_icon_svg.ace_info { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: royalblue; +} +.ace_icon_svg.ace_hint { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg=="); + background-color: silver; +} + +.ace_icon_svg.ace_error_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_security_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_warning_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); + background-color: darkorange; +} + +.ace_scrollbar { + contain: strict; + position: absolute; + right: 0; + bottom: 0; + z-index: 6; +} + +.ace_scrollbar-inner { + position: absolute; + cursor: text; + left: 0; + top: 0; +} + +.ace_scrollbar-v{ + overflow-x: hidden; + overflow-y: scroll; + top: 0; +} + +.ace_scrollbar-h { + overflow-x: scroll; + overflow-y: hidden; + left: 0; +} + +.ace_print-margin { + position: absolute; + height: 100%; +} + +.ace_text-input { + position: absolute; + z-index: 0; + width: 0.5em; + height: 1em; + opacity: 0; + background: transparent; + -moz-appearance: none; + appearance: none; + border: none; + resize: none; + outline: none; + overflow: hidden; + font: inherit; + padding: 0 1px; + margin: 0 -1px; + contain: strict; + -ms-user-select: text; + -moz-user-select: text; + -webkit-user-select: text; + user-select: text; + /*with \`pre-line\` chrome inserts   instead of space*/ + white-space: pre!important; +} +.ace_text-input.ace_composition { + background: transparent; + color: inherit; + z-index: 1000; + opacity: 1; +} +.ace_composition_placeholder { color: transparent } +.ace_composition_marker { + border-bottom: 1px solid; + position: absolute; + border-radius: 0; + margin-top: 1px; +} + +[ace_nocontext=true] { + transform: none!important; + filter: none!important; + clip-path: none!important; + mask : none!important; + contain: none!important; + perspective: none!important; + mix-blend-mode: initial!important; + z-index: auto; +} + +.ace_layer { + z-index: 1; + position: absolute; + overflow: hidden; + /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ + word-wrap: normal; + white-space: pre; + height: 100%; + width: 100%; + box-sizing: border-box; + /* setting pointer-events: auto; on node under the mouse, which changes + during scroll, will break mouse wheel scrolling in Safari */ + pointer-events: none; +} + +.ace_gutter-layer { + position: relative; + width: auto; + text-align: right; + pointer-events: auto; + height: 1000000px; + contain: style size layout; +} + +.ace_text-layer { + font: inherit !important; + position: absolute; + height: 1000000px; + width: 1000000px; + contain: style size layout; +} + +.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { + contain: style size layout; + position: absolute; + top: 0; + left: 0; + right: 0; +} + +.ace_hidpi .ace_text-layer, +.ace_hidpi .ace_gutter-layer, +.ace_hidpi .ace_content, +.ace_hidpi .ace_gutter { + contain: strict; +} +.ace_hidpi .ace_text-layer > .ace_line, +.ace_hidpi .ace_text-layer > .ace_line_group { + contain: strict; +} + +.ace_cjk { + display: inline-block; + text-align: center; +} + +.ace_cursor-layer { + z-index: 4; +} + +.ace_cursor { + z-index: 4; + position: absolute; + box-sizing: border-box; + border-left: 2px solid; + /* workaround for smooth cursor repaintng whole screen in chrome */ + transform: translatez(0); +} + +.ace_multiselect .ace_cursor { + border-left-width: 1px; +} + +.ace_slim-cursors .ace_cursor { + border-left-width: 1px; +} + +.ace_overwrite-cursors .ace_cursor { + border-left-width: 0; + border-bottom: 1px solid; +} + +.ace_hidden-cursors .ace_cursor { + opacity: 0.2; +} + +.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { + opacity: 0; +} + +.ace_smooth-blinking .ace_cursor { + transition: opacity 0.18s; +} + +.ace_animate-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: step-end; + animation-name: blink-ace-animate; + animation-iteration-count: infinite; +} + +.ace_animate-blinking.ace_smooth-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: ease-in-out; + animation-name: blink-ace-animate-smooth; +} + +@keyframes blink-ace-animate { + from, to { opacity: 1; } + 60% { opacity: 0; } +} + +@keyframes blink-ace-animate-smooth { + from, to { opacity: 1; } + 45% { opacity: 1; } + 60% { opacity: 0; } + 85% { opacity: 0; } +} + +.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { + position: absolute; + z-index: 3; +} + +.ace_marker-layer .ace_selection { + position: absolute; + z-index: 5; +} + +.ace_marker-layer .ace_bracket { + position: absolute; + z-index: 6; +} + +.ace_marker-layer .ace_error_bracket { + position: absolute; + border-bottom: 1px solid #DE5555; + border-radius: 0; +} + +.ace_marker-layer .ace_active-line { + position: absolute; + z-index: 2; +} + +.ace_marker-layer .ace_selected-word { + position: absolute; + z-index: 4; + box-sizing: border-box; +} + +.ace_line .ace_fold { + box-sizing: border-box; + + display: inline-block; + height: 11px; + margin-top: -2px; + vertical-align: middle; + + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); + background-repeat: no-repeat, repeat-x; + background-position: center center, top left; + color: transparent; + + border: 1px solid black; + border-radius: 2px; + + cursor: pointer; + pointer-events: auto; +} + +.ace_dark .ace_fold { +} + +.ace_fold:hover{ + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); +} + +.ace_tooltip { + background-color: #f5f5f5; + border: 1px solid gray; + border-radius: 1px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + color: black; + padding: 3px 4px; + position: fixed; + z-index: 999999; + box-sizing: border-box; + cursor: default; + white-space: pre-wrap; + word-wrap: break-word; + line-height: normal; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + pointer-events: none; + overflow: auto; + max-width: min(33em, 66vw); + overscroll-behavior: contain; +} +.ace_tooltip pre { + white-space: pre-wrap; +} + +.ace_tooltip.ace_dark { + background-color: #636363; + color: #fff; +} + +.ace_tooltip:focus { + outline: 1px solid #5E9ED6; +} + +.ace_icon { + display: inline-block; + width: 18px; + vertical-align: top; +} + +.ace_icon_svg { + display: inline-block; + width: 12px; + vertical-align: top; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 12px; + -webkit-mask-position: center; +} + +.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { + padding-right: 13px; +} + +.ace_fold-widget, .ace_custom-widget { + box-sizing: border-box; + + margin: 0 -12px 0 1px; + display: none; + width: 11px; + vertical-align: top; + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: center; + + border-radius: 3px; + + border: 1px solid transparent; + cursor: pointer; + pointer-events: auto; +} + +.ace_custom-widget { + background: none; +} + +.ace_folding-enabled .ace_fold-widget { + display: inline-block; +} + +.ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); +} + +.ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); +} + +.ace_fold-widget:hover { + border: 1px solid rgba(0, 0, 0, 0.3); + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); +} + +.ace_fold-widget:active { + border: 1px solid rgba(0, 0, 0, 0.4); + background-color: rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); +} +/** + * Dark version for fold widgets + */ +.ace_dark .ace_fold-widget { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); +} +.ace_dark .ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget:hover { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.1); +} +.ace_dark .ace_fold-widget:active { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); +} + +.ace_inline_button { + border: 1px solid lightgray; + display: inline-block; + margin: -1px 8px; + padding: 0 5px; + pointer-events: auto; + cursor: pointer; +} +.ace_inline_button:hover { + border-color: gray; + background: rgba(200,200,200,0.2); + display: inline-block; + pointer-events: auto; +} + +.ace_fold-widget.ace_invalid { + background-color: #FFB4B4; + border-color: #DE5555; +} + +.ace_fade-fold-widgets .ace_fold-widget { + transition: opacity 0.4s ease 0.05s; + opacity: 0; +} + +.ace_fade-fold-widgets:hover .ace_fold-widget { + transition: opacity 0.05s ease 0.05s; + opacity:1; +} + +.ace_underline { + text-decoration: underline; +} + +.ace_bold { + font-weight: bold; +} + +.ace_nobold .ace_bold { + font-weight: normal; +} + +.ace_italic { + font-style: italic; +} + + +.ace_error-marker { + background-color: rgba(255, 0, 0,0.2); + position: absolute; + z-index: 9; +} + +.ace_highlight-marker { + background-color: rgba(255, 255, 0,0.2); + position: absolute; + z-index: 8; +} + +.ace_mobile-menu { + position: absolute; + line-height: 1.5; + border-radius: 4px; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + background: white; + box-shadow: 1px 3px 2px grey; + border: 1px solid #dcdcdc; + color: black; +} +.ace_dark > .ace_mobile-menu { + background: #333; + color: #ccc; + box-shadow: 1px 3px 2px grey; + border: 1px solid #444; + +} +.ace_mobile-button { + padding: 2px; + cursor: pointer; + overflow: hidden; +} +.ace_mobile-button:hover { + background-color: #eee; + opacity:1; +} +.ace_mobile-button:active { + background-color: #ddd; +} + +.ace_placeholder { + position: relative; + font-family: arial; + transform: scale(0.9); + transform-origin: left; + white-space: pre; + opacity: 0.7; + margin: 0 10px; + z-index: 1; +} + +.ace_ghost_text { + opacity: 0.5; + font-style: italic; +} + +.ace_ghost_text_container > div { + white-space: pre; +} + +.ghost_text_line_wrapped::after { + content: "↩"; + position: absolute; +} + +.ace_lineWidgetContainer.ace_ghost_text { + margin: 0px 4px +} + +.ace_screenreader-only { + position:absolute; + left:-10000px; + top:auto; + width:1px; + height:1px; + overflow:hidden; +} + +.ace_hidden_token { + display: none; +}`}),ace.define(`ace/layer/decorators`,[`require`,`exports`,`module`,`ace/lib/dom`,`ace/lib/oop`,`ace/lib/event_emitter`],function(e,t,n){var r=e("../lib/dom"),i=e("../lib/oop"),a=e("../lib/event_emitter").EventEmitter,o=function(){function e(e,t){this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.colors={},this.colors.dark={error:`rgba(255, 18, 18, 1)`,warning:`rgba(18, 136, 18, 1)`,info:`rgba(18, 18, 136, 1)`},this.colors.light={error:`rgb(255,51,51)`,warning:`rgb(32,133,72)`,info:`rgb(35,68,138)`},this.setScrollBarV(e)}return e.prototype.$createCanvas=function(){this.canvas=r.createElement(`canvas`),this.canvas.style.top=`0px`,this.canvas.style.right=`0px`,this.canvas.style.zIndex=`7`,this.canvas.style.position=`absolute`},e.prototype.setScrollBarV=function(e){this.$createCanvas(),this.scrollbarV=e,e.element.appendChild(this.canvas),this.setDimensions()},e.prototype.$updateDecorators=function(e){if(typeof this.canvas.getContext!=`function`)return;var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(e);var n=this.canvas.getContext(`2d`);function r(e,t){return e.priorityt.priority)}var i=this.renderer.session.$annotations;if(n.clearRect(0,0,this.canvas.width,this.canvas.height),i){var a={info:1,warning:2,error:3};i.forEach(function(e){e.priority=a[e.type]||null}),i=i.sort(r);for(var o=0;othis.canvasHeight&&(f=this.canvasHeight-p);var m=f-p,h=f+p-m;n.fillStyle=t[i[o].type]||null,n.fillRect(0,m,Math.round(this.oneZoneWidth-1),h)}}var g=this.renderer.session.selection.getCursor();if(g){var _=Math.round(this.getVerticalOffsetForRow(g.row)*this.heightRatio);n.fillStyle=`rgba(0, 0, 0, 0.5)`,n.fillRect(0,_,this.canvasWidth,2)}},e.prototype.getVerticalOffsetForRow=function(e){return e|=0,this.renderer.session.documentToScreenRow(e,0)*this.lineHeight},e.prototype.setDimensions=function(e){e||=this.renderer.layerConfig,this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.canvasWidth=this.scrollbarV.width||this.canvasWidth,this.setZoneWidth(),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.maxHeighte&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,r){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=+!!e;var i=this.container;r||=i.clientHeight||i.scrollHeight,!r&&this.$maxLines&&this.lineHeight>1&&(!i.style.height||i.style.height==`0px`)&&(i.style.height=`1px`,r=i.clientHeight||i.scrollHeight),n||=i.clientWidth||i.scrollWidth;var a=this.$updateCachedSize(e,t,n,r);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(a|this.$changes,!0):this.$loop.schedule(a|this.$changes),this.resizing&&=0,this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},e.prototype.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var a=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};if(r&&(e||o.height!=r)&&(o.height=r,a|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(o.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+`px`,a|=this.CHANGE_SCROLL),n&&(e||o.width!=n)){a|=this.CHANGE_SIZE,o.width=n,t??=this.$showGutter?this.$gutter.offsetWidth:0,this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,`left`,t+`px`),i.setStyle(this.scroller.style,`left`,t+this.margin.left+`px`),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,`left`,this.margin.left+`px`);var c=this.scrollBarV.getWidth()+`px`;i.setStyle(this.scrollBarH.element.style,`right`,c),i.setStyle(this.scroller.style,`right`,c),i.setStyle(this.scroller.style,`bottom`,this.scrollBarH.getHeight()),this.scrollBarH.setWidth(o.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(a|=this.CHANGE_FULL)}return o.$dirty=!n||!r,a&&this._signal(`resize`,s),a},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption(`animatedScroll`,e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption(`showInvisibles`,e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption(`showInvisibles`)},e.prototype.getDisplayIndentGuides=function(){return this.getOption(`displayIndentGuides`)},e.prototype.setDisplayIndentGuides=function(e){this.setOption(`displayIndentGuides`,e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption(`highlightIndentGuides`)},e.prototype.setHighlightIndentGuides=function(e){this.setOption(`highlightIndentGuides`,e)},e.prototype.setShowPrintMargin=function(e){this.setOption(`showPrintMargin`,e)},e.prototype.getShowPrintMargin=function(){return this.getOption(`showPrintMargin`)},e.prototype.setPrintMarginColumn=function(e){this.setOption(`printMarginColumn`,e)},e.prototype.getPrintMarginColumn=function(){return this.getOption(`printMarginColumn`)},e.prototype.getShowGutter=function(){return this.getOption(`showGutter`)},e.prototype.setShowGutter=function(e){return this.setOption(`showGutter`,e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption(`fadeFoldWidgets`)},e.prototype.setFadeFoldWidgets=function(e){this.setOption(`fadeFoldWidgets`,e)},e.prototype.setHighlightGutterLine=function(e){this.setOption(`highlightGutterLine`,e)},e.prototype.getHighlightGutterLine=function(){return this.getOption(`highlightGutterLine`)},e.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var e=i.createElement(`div`);e.className=`ace_layer ace_print-margin-layer`,this.$printMarginEl=i.createElement(`div`),this.$printMarginEl.className=`ace_print-margin`,e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+`px`,t.visibility=this.$showPrintMargin?`visible`:`hidden`,this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(n){t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,a=n.top,o=n.left;a-=r.offset;var s=t&&t.useTextareaForIME||b.isMobile?this.lineHeight:1;if(a<0||a>r.height-s){i.translate(this.textarea,0,0);return}var c=1,l=this.$size.height-s;if(!t)a+=this.lineHeight;else if(t.useTextareaForIME){var u=this.textarea.value;c=this.characterWidth*this.session.$getStringScreenWidth(u)[0]}else a+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-c&&(o=this.$size.scrollerWidth-c),o+=this.gutterWidth+this.margin.left,i.setStyle(e,`height`,s+`px`),i.setStyle(e,`width`,c+`px`),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-c),Math.min(a,l))}}},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption(`hScrollBarAlwaysVisible`,e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption(`vScrollBarAlwaysVisible`,e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){if(this.$changes&&=(e|=this.$changes,0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal(`beforeRender`,e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var a=n.width+2*this.$padding+`px`,o=n.minHeight+`px`;i.setStyle(this.content.style,`width`,a),i.setStyle(this.content.style,`height`,o)}if(e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?`ace_scroller `:`ace_scroller ace_scroll-left `,this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal(`afterRender`,e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal(`afterRender`,e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal(`afterRender`,e)},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=!(n<=2*this.lineHeight)&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+`px`,this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal(`autosize`)}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength()*this.lineHeight,i=this.$getLongestLine(),a=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-i-2*this.$padding<0),o=this.$horizScroll!==a;o&&(this.$horizScroll=a,this.scrollBarH.setVisible(a));var s=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),n=t.height<=2*this.lineHeight);var c=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=l;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,i+2*this.$padding-t.scrollerWidth+u.right)));var d=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+l<0||this.scrollTop>u.top),f=s!==d;f&&(this.$vScroll=d,this.scrollBarV.setVisible(d));var p=this.scrollTop%this.lineHeight,m=Math.ceil(c/this.lineHeight)-1,h=Math.max(0,Math.round((this.scrollTop-p)/this.lineHeight)),g=h+m,_,v,y=this.lineHeight;h=e.screenToDocumentRow(h,0);var b=e.getFoldLine(h);b&&(h=b.start.row),_=e.documentToScreenRow(h,0),v=e.getRowLength(h)*y,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),c=t.scrollerHeight+e.getRowLength(g)*y+v,p=this.scrollTop-_*y,p<0&&_>0&&(_=Math.max(0,_+Math.floor(p/y)),p=this.scrollTop-_*y);var x=0;return(this.layerConfig.width!=i||o)&&(x=this.CHANGE_H_SCROLL),(o||f)&&(x|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal(`scrollbarVisibilityChanged`),f&&(i=this.$getLongestLine())),this.layerConfig={width:i,padding:this.$padding,firstRow:h,firstRowScreen:_,lastRow:g,lineHeight:y,characterWidth:this.characterWidth,minHeight:c,maxHeight:r,offset:p,gutterOffset:y?Math.max(0,Math.ceil((p+t.height-t.scrollerHeight)/y)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(i-this.$padding),x},e.prototype.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(!(e>n.lastRow+1)&&!(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this._rows=e,this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight!==0){var r=this.$cursorLayer.getPixelPosition(e),i=r.left,a=r.top,o=n&&n.top||0,s=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var c=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;c+o>a?(t&&c+o>a+this.lineHeight&&(a-=t*this.$size.scrollerHeight),a===0&&(a=-this.scrollMargin.top),this.session.setScrollTop(a)):c+this.$size.scrollerHeight-s=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,a=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=this.$blockCursor?Math.floor(a):Math.round(a);return{row:o,column:s,side:a-s>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,a=i/this.characterWidth,o=this.$blockCursor?Math.floor(a):Math.round(a),s=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(s,Math.max(o,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),a=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+a-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,`ace_focus`)},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,`ace_focus`)},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||=this.textarea.style.cssText,e.useTextareaForIME??=this.$useTextareaForIME,this.$useTextareaForIME?(i.addCssClass(this.textarea,`ace_composition`),this.textarea.style.cssText=``,this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display=`none`):e.markerId=this.session.addMarker(e.markerRange,`ace_composition_marker`,`text`)},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,`composition_placeholder`,t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,`ace_composition`),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=``}},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,r=t||{row:n.row,column:n.column};this.removeGhostText();var a=this.$calculateWrappedTextChunks(e,r);this.addToken(a[0].text,`ghost_text`,r.row,r.column),this.$ghostText={text:e,position:{row:r.row,column:r.column}};var o=i.createElement(`div`);if(a.length>1){var s=this.hideTokensAfterPosition(r.row,r.column),c;a.slice(1).forEach(function(e){var t=i.createElement(`div`),n=i.createElement(`span`);n.className=`ace_ghost_text`,e.wrapped&&(t.className=`ghost_text_line_wrapped`),e.text.length===0&&(e.text=` `),n.appendChild(i.createTextNode(e.text)),t.appendChild(n),o.appendChild(t),c=t}),s.forEach(function(e){var t=i.createElement(`span`);x(e.type)||(t.className=`ace_`+e.type.replace(/\./g,` ace_`)),t.appendChild(i.createTextNode(e.value)),c.appendChild(t)}),this.$ghostTextWidget={el:o,row:r.row,column:r.column,className:`ace_ghost_text_container`},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var l=this.$cursorLayer.getPixelPosition(r,!0),u=this.container.getBoundingClientRect().height,d=a.length*this.lineHeight;if(d0){var l=0;c.push(i[o].length);for(var u=0;u1||Math.abs(e.$size.height-r)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},e}();S.prototype.CHANGE_CURSOR=1,S.prototype.CHANGE_MARKER=2,S.prototype.CHANGE_GUTTER=4,S.prototype.CHANGE_SCROLL=8,S.prototype.CHANGE_LINES=16,S.prototype.CHANGE_TEXT=32,S.prototype.CHANGE_SIZE=64,S.prototype.CHANGE_MARKER_BACK=128,S.prototype.CHANGE_MARKER_FRONT=256,S.prototype.CHANGE_FULL=512,S.prototype.CHANGE_H_SCROLL=1024,S.prototype.$changes=0,S.prototype.$padding=null,S.prototype.$frozen=!1,S.prototype.STEPS=8,r.implement(S.prototype,_),o.defineOptions(S.prototype,`renderer`,{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e==`number`&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?`block`:`none`,this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,`ace_fade-fold-widgets`,e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){this.$textLayer.setHighlightIndentGuides(e)==1?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e==`number`&&(e+=`px`),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:`./theme/textmate`,handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!b.isMobile&&!b.isIE}}),t.VirtualRenderer=S}),ace.define(`ace/worker/worker_client`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/lib/net`,`ace/lib/event_emitter`,`ace/config`],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,o=e("../config");function s(e){var t=`importScripts('`+i.qualifyURL(e)+`');`;try{return new Blob([t],{type:`application/javascript`})}catch{var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(t),n.getBlob(`application/javascript`)}}function c(e){if(typeof Worker>`u`)return{postMessage:function(){},terminate:function(){}};if(o.get(`loadWorkerFromBlob`)){var t=s(e),n=(window.URL||window.webkitURL).createObjectURL(t);return new Worker(n)}return new Worker(e)}var l=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,a),this.$createWorkerFromOldConfig=function(t,n,r,i,a){if(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),o.get(`packaged`)||!e.toUrl)i||=o.moduleUrl(n,`worker`);else{var s=this.$normalizePath;i||=s(e.toUrl(`ace/worker/worker.js`,null,`_`));var l={};t.forEach(function(t){l[t]=s(e.toUrl(t,null,`_`).replace(/(\.js)?(\?.*)?$/,``))})}return this.$worker=c(i),a&&this.send(`importScripts`,a),this.$worker.postMessage({init:!0,tlns:l,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case`event`:this._signal(t.name,{data:t.data});break;case`call`:var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case`error`:this.reportError(t.data);break;case`log`:window.console&&console.log&&console.log.apply(console,t.data);break}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal(`terminate`,{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off(`change`,this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call(`setValue`,[e.getValue()]),e.on(`change`,this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action==`insert`?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call(`setValue`,[this.$doc.getValue()]):this.emit(`change`,{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,n){var r=null,i=!1,s=Object.create(a),c=[],u=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),r&&(i?setTimeout(d):d())}});u.setEmitSync=function(e){i=e};var d=function(){var e=c.shift();e.command?r[e.command].apply(r,e.args):e.event&&s._signal(e.event,e.data)};return s.postMessage=function(e){u.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:`call`,id:t,data:e})},s.emit=function(e,t){this.postMessage({type:`event`,name:e,data:t})},o.loadModule([`worker`,t],function(e){for(r=new e[n](s);c.length;)d()}),u},t.WorkerClient=l,t.createWorker=c}),ace.define(`ace/placeholder`,[`require`,`exports`,`module`,`ace/range`,`ace/lib/event_emitter`,`ace/lib/oop`],function(e,t,n){var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,a=e("./lib/oop"),o=function(){function e(e,t,n,r,i,a){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=a,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(`change`,this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on(`changeCursor`,this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})}},e.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,a=t.start.column-this.pos.column;if(this.updateAnchors(e),i&&(this.length+=n),i&&!this.session.$fromUndo){if(e.action===`insert`)for(var o=this.others.length-1;o>=0;o--){var s=this.others[o],c={row:s.row,column:s.column+a};this.doc.insertMergedLines(c,e.lines)}else if(e.action===`remove`)for(var o=this.others.length-1;o>=0;o--){var s=this.others[o],c={row:s.row,column:s.column+a};this.doc.remove(new r(c.row,c.column,c.row,c.column-n))}}this.$updating=!1,this.updateMarkers()}},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)}},e.prototype.onCursorChange=function(e){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(`cursorEnter`,e)):(this.hideOtherMarkers(),this._emit(`cursorLeave`,e))}},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off(`change`,this.$onUpdate),this.session.selection.off(`changeCursor`,this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:`Ctrl-Alt-L`,mac:`Ctrl-Alt-L`},readOnly:!0},{name:`splitSelectionIntoLines`,description:`Split into lines`,exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:`alignCursors`,description:`Align cursors`,exec:function(e){e.alignCursors()},bindKey:{win:`Ctrl-Alt-A`,mac:`Ctrl-Alt-A`},scrollIntoView:`cursor`},{name:`findAll`,description:`Find all`,exec:function(e){e.findAll()},bindKey:{win:`Ctrl-Alt-K`,mac:`Ctrl-Alt-G`},scrollIntoView:`cursor`,readOnly:!0}],t.multiSelectCommands=[{name:`singleSelection`,description:`Single selection`,bindKey:`esc`,exec:function(e){e.exitMultiSelectMode()},scrollIntoView:`cursor`,readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define(`ace/multi_select`,[`require`,`exports`,`module`,`ace/range_list`,`ace/range`,`ace/selection`,`ace/mouse/multi_select_handler`,`ace/lib/event`,`ace/lib/lang`,`ace/commands/multi_select_commands`,`ace/search`,`ace/edit_session`,`ace/editor`,`ace/config`],function(e,t,n){var r=e("./range_list").RangeList,i=e("./range").Range,a=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,s=e("./lib/event"),c=e("./lib/lang"),l=e("./commands/multi_select_commands");t.commands=l.defaultCommands.concat(l.multiSelectCommands);var u=e("./search").Search,d=new u;function f(e,t,n){return d.$options.wrap=!0,d.$options.needle=t,d.$options.backwards=n==-1,d.find(e)}var p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),(function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();if(this.rangeList.add(n),this.rangeList.add(e),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||=e.end;var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal(`multiSelect`),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e||=this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal(`addRange`,{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal(`removeRange`,{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal(`singleSelect`),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t||=this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new r,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),a=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(r,a).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],a=e.column0;)_--;if(_>0)for(var v=0;r[v].isEmpty();)v++;for(var y=_;y>=v;y--)r[y].isEmpty()&&r.splice(y,1)}return r}}).call(a.prototype);var m=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||=e.end;var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,`ace_selection`,t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,n=e.length;n--;){var r=e[n];if(r.marker){this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle(`ace_multiselect`),this.keyBinding.addKeyboardHandler(l.keyboardHandler),this.commands.setDefaultHandler(`exec`,this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle(`ace_multiselect`),this.keyBinding.removeKeyboardHandler(l.keyboardHandler),this.commands.removeDefaultHandler(`exec`,this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit(`changeSelection`))},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(n.multiSelect){if(t.multiSelectAction)t.multiSelectAction==`forEach`?r=n.forEachSelection(t,e.args):t.multiSelectAction==`forEachLine`?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction==`single`?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});else{var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}return r}},this.forEachSelection=function(e,t,n){if(!this.inVirtualSelectionMode){var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,s=this.selection,c=s.rangeList,l=(r?s:c).ranges,u;if(!l.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=s._eventRegistry;s._eventRegistry={};var f=new a(o);this.inVirtualSelectionMode=!0;for(var p=l.length;p--;){if(i)for(;p>0&&l[p].start.row==l[p-1].end.row;)p--;f.fromOrientedRange(l[p]),f.index=p,this.selection=o.selection=f;var m=e.exec?e.exec(this,t||{}):e(this,t||{});!u&&m!==void 0&&(u=m),f.toOrientedRange(l[p])}f.detach(),this.selection=o.selection=s,this.inVirtualSelectionMode=!1,s._eventRegistry=d,s.mergeOverlappingRanges(),s.ranges[0]&&s.fromOrientedRange(s.ranges[0]);var h=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),h&&h.from==h.to&&this.renderer.animateScrolling(h.from),u}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e=``;if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,n=[],r=0;r0);s<0&&(s=0),l>=d&&(l=d-1)}var p=this.session.removeFullLines(s,l);p=this.$reAlignText(p,u),this.session.insert({row:s,column:0},p.join(` +`)+` +`),u||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{a.forEach(function(e){t.substractPoint(e.cursor)});var m=0,h=1/0,g=n.map(function(t){var n=t.cursor,r=e.getLine(n.row).substr(n.column).search(/\S/g);return r==-1&&(r=0),n.column>m&&(m=n.column),ro?e.insert(r,c.stringRepeat(` `,a-o)):e.remove(new i(r.row,r.column,r.row,r.column-a+o)),t.start.column=t.end.column=m,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){var n=!0,r=!0,i,a,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,a=t[2].length,o=t[3].length,t):(i+a+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),at[3].length&&(o=t[3].length),t):[e]}).map(t?l:n?r?u:l:d);function s(e){return c.stringRepeat(` `,e)}function l(e){return e[2]?s(i)+e[2]+s(a-e[2].length+o)+e[4].replace(/^([=:])\s+/,`$1 `):e[0]}function u(e){return e[2]?s(i+a-e[2].length)+e[2]+s(o)+e[4].replace(/^([=:])\s+/,`$1 `):e[0]}function d(e){return e[2]?s(i)+e[2]+s(o)+e[4].replace(/^([=:])\s+/,`$1 `):e[0]}}}).call(m.prototype);function h(e,t){return e.row==t.row&&e.column==t.column}t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off(`addRange`,this.$onAddRange),n.multiSelect.off(`removeRange`,this.$onRemoveRange),n.multiSelect.off(`multiSelect`,this.$onMultiSelect),n.multiSelect.off(`singleSelect`,this.$onSingleSelect),n.multiSelect.lead.off(`change`,this.$checkMultiselectChange),n.multiSelect.anchor.off(`change`,this.$checkMultiselectChange)),t&&(t.multiSelect.on(`addRange`,this.$onAddRange),t.multiSelect.on(`removeRange`,this.$onRemoveRange),t.multiSelect.on(`multiSelect`,this.$onMultiSelect),t.multiSelect.on(`singleSelect`,this.$onSingleSelect),t.multiSelect.lead.on(`change`,this.$checkMultiselectChange),t.multiSelect.anchor.on(`change`,this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function g(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on(`changeSession`,e.$multiselectOnSessionChange),e.on(`mousedown`,o),e.commands.addCommands(l.defaultCommands),_(e))}function _(e){if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;s.addListener(t,`keydown`,function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||=(e.renderer.setMouseCursor(`crosshair`),!0):n&&r()},e),s.addListener(t,`keyup`,r,e),s.addListener(t,`blur`,r,e);function r(t){n&&=(e.renderer.setMouseCursor(``),!1)}}t.MultiSelect=g,e("./config").defineOptions(m.prototype,`editor`,{enableMultiselect:{set:function(e){g(this),e?this.on(`mousedown`,o):this.off(`mousedown`,o)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define(`ace/mode/folding/fold_mode`,[`require`,`exports`,`module`,`ace/range`],function(e,t,n){var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?`start`:t==`markbeginend`&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?`end`:``},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,a=e.getLine(t),o=a.search(i);if(o!=-1){for(var s=n||a.length,c=e.getLength(),l=t,u=t;++tl){var p=e.getLine(u).length;return new r(l,s,u,p)}}},this.openingBracketBlock=function(e,t,n,i,a){var o={row:n,column:i+1},s=e.$findClosingBracket(t,o,a);if(s){var c=e.foldWidgets[s.row];return c??=e.getFoldWidget(s.row),c==`start`&&s.row>o.row&&(s.row--,s.column=e.getLine(s.row).length),r.fromPoints(o,s)}},this.closingBracketBlock=function(e,t,n,i,a){var o={row:n,column:i},s=e.$findOpeningBracket(t,o);if(s)return s.column++,o.column--,r.fromPoints(s,o)}}).call(i.prototype)}),ace.define(`ace/ext/error_marker`,[`require`,`exports`,`module`,`ace/lib/dom`,`ace/range`,`ace/config`],function(e,t,n){var r=e("../lib/dom"),i=e("../range").Range,a=e("../config").nls;function o(e,t,n){for(var r=0,i=e.length-1;r<=i;){var a=r+i>>1,o=n(t,e[a]);if(o>0)r=a+1;else if(o<0)i=a-1;else return a}return-(r+1)}function s(e,t,n){var r=e.getAnnotations().sort(i.comparePoints);if(r.length){var a=o(r,{row:t,column:-1},i.comparePoints);a<0&&(a=-a-1),a>=r.length?a=n>0?0:r.length-1:a===0&&n<0&&(a=r.length-1);var s=r[a];if(!(!s||!n)){if(s.row===t){do s=r[a+=n];while(s&&s.row===t);if(!s)return r.slice()}var c=[];t=s.row;do c[n<0?`unshift`:`push`](s),s=r[a+=n];while(s&&s.row==t);return c.length&&c}}}t.showErrorMarker=function(e,t){var n=e.session,i=e.getCursorPosition(),o=i.row,c=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type==`errorMarker`})[0];c?c.destroy():o-=t;var l=s(n,o,t),u;if(l){var d=l[0];i.column=(d.pos&&typeof d.column!=`number`?d.pos.sc:d.column)||0,i.row=d.row,u=e.renderer.$gutterLayer.$annotations[i.row]}else if(c)return;else u={displayText:[a(`error-marker.good-state`,`Looks good!`)],className:`ace_ok`};e.session.unfold(i.row),e.selection.moveToPosition(i);var f={row:i.row,fixedWidth:!0,coverGutter:!0,el:r.createElement(`div`),type:`errorMarker`},p=f.el.appendChild(r.createElement(`div`)),m=f.el.appendChild(r.createElement(`div`));m.className=`error_widget_arrow `+u.className;var h=e.renderer.$cursorLayer.getPixelPosition(i).left;m.style.left=h+e.renderer.gutterWidth-5+`px`,f.el.className=`error_widget_wrapper`,p.className=`error_widget `+u.className,u.displayText.forEach(function(e,t){p.appendChild(r.createTextNode(e)),timport(`./mode-json-CmR6NCOW.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1]));var c=s.default,l=e=>` +.${e} { background-color: var(--color-kumo-base); color: var(--text-color-kumo-default); } +.${e} .ace_gutter { background: var(--color-kumo-elevated); color: var(--text-color-kumo-subtle); } +.${e} .ace_print-margin { width: 1px; background: var(--color-kumo-hairline); } +.${e} .ace_cursor { color: var(--text-color-kumo-default); } +.${e} .ace_marker-layer .ace_selection { background: var(--color-kumo-info-tint); } +.${e} .ace_marker-layer .ace_active-line, +.${e} .ace_gutter-active-line { background: color-mix(in srgb, var(--color-kumo-fill) 45%, transparent); } +.${e} .ace_marker-layer .ace_selected-word { border: 1px solid var(--color-kumo-line); } +.${e} .ace_fold { background-color: var(--color-kumo-brand); border-color: var(--text-color-kumo-default); } +.${e} .ace_variable { color: var(--text-color-kumo-link); } +.${e} .ace_string { color: var(--text-color-kumo-success); } +.${e} .ace_constant.ace_numeric { color: var(--text-color-kumo-warning); } +.${e} .ace_constant.ace_language { color: var(--text-color-kumo-brand); } +.${e} .ace_constant.ace_language.ace_escape { color: var(--text-color-kumo-info); } +.${e} .ace_paren, .${e} .ace_punctuation { color: var(--text-color-kumo-subtle); } +`;function u(e,t,n){c.define(`ace/theme/${e}`,[`require`,`exports`,`module`,`ace/lib/dom`],(e,r)=>{let i=e,a=r;a.isDark=n,a.cssClass=t,a.cssText=l(t),i(`ace/lib/dom`).importCssString(a.cssText,t)})}u(`kumo-light`,`ace-kumo-light`,!1),u(`kumo-dark`,`ace-kumo-dark`,!0);function d(){return document.documentElement.dataset.mode===`light`?`ace/theme/kumo-light`:`ace/theme/kumo-dark`}var f=n();function p({value:e,onChange:t,readOnly:n=!1,followTail:r=!1,className:i=``,label:a,autoHeight:s=!1}){let l=(0,o.useRef)(null),u=(0,o.useRef)(void 0),p=(0,o.useRef)(e),h=(0,o.useRef)(t);return h.current=t,(0,o.useEffect)(()=>{if(!l.current)return;let e=c.edit(l.current);u.current=e,e.session.setMode(`ace/mode/json`),e.setTheme(d()),e.setOptions({readOnly:n,fontSize:`12px`,showPrintMargin:!1,useWorker:!1,highlightActiveLine:!n,highlightGutterLine:!n,showFoldWidgets:!0,fadeFoldWidgets:!1,tabSize:2,useSoftTabs:!0,wrap:!0}),e.setValue(p.current,-1),l.current.querySelector(`textarea`)?.setAttribute(`aria-label`,a),e.on(`change`,()=>h.current?.(e.getValue()));let t=()=>e.setTheme(d());return window.addEventListener(`cog-theme-change`,t),()=>{window.removeEventListener(`cog-theme-change`,t),e.destroy(),u.current=void 0}},[a,n]),(0,o.useEffect)(()=>{let t=u.current;t&&(t.getValue()!==e&&t.setValue(e,r?1:-1),t.resize(),r&&t.renderer.scrollToLine(t.session.getLength(),!1,!1,()=>{}))},[r,e]),(0,f.jsxs)(`div`,{className:`ace-json ${i}`,style:s?{height:`${m(e)}px`}:void 0,children:[(0,f.jsx)(`div`,{ref:l,"aria-label":a,"aria-readonly":n}),(0,f.jsx)(`button`,{type:`button`,className:`editor-copy`,onClick:async()=>{try{await navigator.clipboard.writeText(u.current?.getValue()??e)}catch{u.current?.selectAll(),u.current?.focus()}},children:`Copy`})]})}function m(e){return Math.min(320,Math.max(80,e.split(` +`).length*18+18))}export{p as JsonEditor}; \ No newline at end of file diff --git a/pkg/cli/playground/assets/index-C8zeAA2a.css b/pkg/cli/playground/assets/index-C8zeAA2a.css new file mode 100644 index 0000000000..9f034cbe8d --- /dev/null +++ b/pkg/cli/playground/assets/index-C8zeAA2a.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.2 | 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{--fade-left-n:0;--fade-right-n:0;--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-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--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-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-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-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-duration:initial;--tw-ease:initial;--tw-content:""}}}:root,:host{--text-color-kumo-default:var(--lightningcss-light,var(--color-neutral-900,oklch(21% .006 285.885)))var(--lightningcss-dark,var(--color-neutral-100,oklch(97% 0 0)));--text-color-kumo-inverse:var(--lightningcss-light,var(--color-neutral-100,oklch(97% 0 0)))var(--lightningcss-dark,var(--color-neutral-900,oklch(20.5% 0 0)));--text-color-kumo-strong:var(--lightningcss-light,var(--color-neutral-950,oklch(14.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-50,oklch(98.5% 0 0)));--text-color-kumo-subtle:var(--lightningcss-light,var(--color-neutral-500,oklch(55.6% 0 0)))var(--lightningcss-dark,var(--color-neutral-400,oklch(70.8% 0 0)));--text-color-kumo-inactive:var(--lightningcss-light,var(--color-neutral-300,oklch(87% 0 0)))var(--lightningcss-dark,var(--color-neutral-600,oklch(43.9% 0 0)));--text-color-kumo-placeholder:var(--lightningcss-light,var(--color-neutral-400,oklch(70.8% 0 0)))var(--lightningcss-dark,var(--color-neutral-500,oklch(55.6% 0 0)));--text-color-kumo-brand:var(--lightningcss-light,#f6821f)var(--lightningcss-dark,#f6821f);--text-color-kumo-link:var(--lightningcss-light,var(--color-blue-800,oklch(42.4% .199 265.638)))var(--lightningcss-dark,var(--color-blue-400,oklch(70.7% .165 254.624)));--text-color-kumo-info:var(--lightningcss-light,var(--color-blue-800,oklch(42.4% .199 265.638)))var(--lightningcss-dark,var(--color-blue-400,oklch(70.7% .165 254.624)));--text-color-kumo-success:var(--lightningcss-light,var(--color-emerald-800,oklch(43.2% .095 166.913)))var(--lightningcss-dark,var(--color-emerald-200,oklch(90.5% .093 164.15)));--text-color-kumo-danger:var(--lightningcss-light,var(--color-red-700,oklch(50.5% .213 27.518)))var(--lightningcss-dark,var(--color-red-400,oklch(70.4% .191 22.216)));--text-color-kumo-warning:var(--lightningcss-light,var(--color-yellow-800,oklch(47.6% .114 61.907)))var(--lightningcss-dark,var(--color-yellow-400,oklch(85.2% .199 91.936)));--text-color-kumo-badge-teal-subtle:var(--lightningcss-light,var(--color-teal-800,oklch(43.7% .078 188.216)))var(--lightningcss-dark,var(--color-teal-200,oklch(91% .096 180.426)));--text-color-kumo-badge-neutral-subtle:var(--lightningcss-light,var(--color-neutral-800,oklch(26.9% 0 0)))var(--lightningcss-dark,var(--color-neutral-200,oklch(92.2% 0 0)));--text-color-kumo-badge-inverted:var(--lightningcss-light,var(--color-white,#fff))var(--lightningcss-dark,var(--color-black,#000));--color-kumo-canvas:var(--lightningcss-light,var(--color-kumo-neutral-25,oklch(98.75% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-1000,oklch(10% 0 0)));--color-kumo-elevated:var(--lightningcss-light,var(--color-kumo-neutral-75,oklch(98% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-975,oklch(12% 0 0)));--color-kumo-recessed:var(--lightningcss-light,var(--color-kumo-neutral-125,oklch(96% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-950,oklch(15% 0 0)));--color-kumo-base:var(--lightningcss-light,var(--color-white,#fff))var(--lightningcss-dark,var(--color-kumo-neutral-925,oklch(17% 0 0)));--color-kumo-tint:var(--lightningcss-light,var(--color-neutral-100,oklch(97% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-800,oklch(26.9% 0 0)));--color-kumo-contrast:var(--lightningcss-light,var(--color-kumo-neutral-975,oklch(8.5% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-25,oklch(98.5% 0 0)));--color-kumo-overlay:var(--lightningcss-light,var(--color-kumo-neutral-50,oklch(97.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0)));--color-kumo-control:var(--lightningcss-light,var(--color-white,#fff))var(--lightningcss-dark,var(--color-neutral-900,oklch(21% .006 285.885)));--color-kumo-interact:var(--lightningcss-light,var(--color-neutral-300,oklch(87% 0 0)))var(--lightningcss-dark,var(--color-neutral-700,oklch(37.1% 0 0)));--color-kumo-fill:var(--lightningcss-light,var(--color-neutral-200,oklch(92.2% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0)));--color-kumo-fill-hover:var(--lightningcss-light,var(--color-kumo-neutral-125,oklch(96.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(37.1% 0 0)));--color-kumo-brand:var(--lightningcss-light,oklch(57.72% .2324 260))var(--lightningcss-dark,oklch(51.948% .2324 260));--color-kumo-brand-hover:var(--lightningcss-light,var(--color-blue-700,oklch(48.8% .243 264.376)))var(--lightningcss-dark,var(--color-blue-700,oklch(48.8% .243 264.376)));--color-kumo-line:var(--lightningcss-light,oklch(14.5% 0 0/.1))var(--lightningcss-dark,var(--color-kumo-neutral-750,oklch(32% 0 0)));--color-kumo-hairline:var(--lightningcss-light,var(--color-kumo-neutral-150,oklch(93.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0)));--color-kumo-focus:var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0)));--color-kumo-shadow-edge:var(--lightningcss-light,oklch(0% 0 0/.12))var(--lightningcss-dark,oklch(100% 0 0/.1));--color-kumo-shadow-drop:var(--lightningcss-light,oklch(0% 0 0/.08))var(--lightningcss-dark,oklch(0% 0 0/.3));--color-kumo-tip-shadow:var(--lightningcss-light,var(--color-gray-200,oklch(92.8% .006 264.531)))var(--lightningcss-dark,transparent);--color-kumo-tip-stroke:var(--lightningcss-light,transparent)var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0)));--color-kumo-info-tint:var(--lightningcss-light,var(--color-blue-100,oklch(93.2% .032 255.585)))var(--lightningcss-dark,var(--color-blue-900,oklch(37.9% .146 265.522)));--color-kumo-info:var(--lightningcss-light,var(--color-blue-500,oklch(68.5% .169 237.323)))var(--lightningcss-dark,var(--color-blue-400,oklch(70.7% .165 254.624)));--color-kumo-warning-tint:var(--lightningcss-light,var(--color-yellow-100,oklch(97.3% .071 103.193)))var(--lightningcss-dark,var(--color-yellow-700,oklch(55.4% .135 66.442)));--color-kumo-warning:var(--lightningcss-light,var(--color-yellow-500,oklch(79.5% .184 86.047)))var(--lightningcss-dark,var(--color-yellow-400,oklch(85.2% .199 91.936)));--color-kumo-danger-tint:var(--lightningcss-light,var(--color-red-100,oklch(93.6% .032 17.717)))var(--lightningcss-dark,var(--color-red-900,oklch(39.6% .141 25.723)));--color-kumo-danger:var(--lightningcss-light,var(--color-red-500,oklch(63.7% .237 25.331)))var(--lightningcss-dark,var(--color-red-600,oklch(57.7% .245 27.325)));--color-kumo-success-tint:var(--lightningcss-light,var(--color-emerald-100,oklch(95% .052 163.051)))var(--lightningcss-dark,var(--color-emerald-900,oklch(37.8% .077 168.94)));--color-kumo-success:var(--lightningcss-light,var(--color-emerald-600,oklch(59.6% .145 163.225)))var(--lightningcss-dark,var(--color-emerald-400,oklch(76.5% .177 163.223)));--color-kumo-banner-info:var(--lightningcss-light,oklch(93.2% .032 255.585/.7))var(--lightningcss-dark,oklch(37.9% .146 265.522/.5));--color-kumo-banner-warning:var(--lightningcss-light,var(--color-yellow-100,oklch(97.3% .071 103.193)))var(--lightningcss-dark,oklch(55.4% .135 66.442/.5));--color-kumo-badge-red:var(--lightningcss-light,var(--color-red-600,oklch(57.7% .245 27.325)))var(--lightningcss-dark,var(--color-red-700,oklch(50.5% .213 27.518)));--color-kumo-badge-green:var(--lightningcss-light,var(--color-emerald-600,oklch(59.6% .145 163.225)))var(--lightningcss-dark,var(--color-emerald-700,oklch(50.8% .118 165.612)));--color-kumo-badge-orange:var(--lightningcss-light,var(--color-orange-650,oklch(81.5% .197 76)))var(--lightningcss-dark,var(--color-orange-650,oklch(81.5% .197 76)));--color-kumo-badge-purple:var(--lightningcss-light,var(--color-purple-600,oklch(60% .118 184.704)))var(--lightningcss-dark,var(--color-purple-700,oklch(50.8% .118 165.612)));--color-kumo-badge-teal:var(--lightningcss-light,var(--color-teal-650,oklch(54.9% .096 184.565)))var(--lightningcss-dark,var(--color-teal-700,oklch(51.1% .096 186.391)));--color-kumo-badge-blue:var(--lightningcss-light,var(--color-blue-600,oklch(54.6% .245 262.881)))var(--lightningcss-dark,var(--color-blue-700,oklch(48.8% .243 264.376)));--color-kumo-badge-neutral:var(--lightningcss-light,var(--color-neutral-500,oklch(55.6% 0 0)))var(--lightningcss-dark,var(--color-neutral-600,oklch(43.9% 0 0)));--color-kumo-badge-inverted:var(--lightningcss-light,var(--color-neutral-950,oklch(14.5% 0 0)))var(--lightningcss-dark,var(--color-white,#fff));--text-xs:12px;--text-xs--line-height:calc(1 / .75);--text-sm:13px;--text-sm--line-height:calc(1 / .85);--text-base:14px;--text-base--line-height:calc(1.25 / .875);--text-lg:16px;--text-lg--line-height:calc(1.25 / 1);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-800:oklch(42.4% .199 265.638);--color-orange-650:oklch(81.5% .197 76);--color-teal-650:oklch(54.9% .096 184.565);--color-kumo-neutral-50:oklch(98.75% 0 0);--color-kumo-neutral-75:oklch(98% 0 0);--color-kumo-neutral-125:oklch(96.5% 0 0);--color-kumo-neutral-750:oklch(32% 0 0);--color-kumo-neutral-925:oklch(17% 0 0);--color-kumo-neutral-950:oklch(15% 0 0);--color-kumo-neutral-975:oklch(12% 0 0);--color-kumo-neutral-1000:oklch(10% 0 0);--default-transition-duration:.1s;--animate-refresh:refresh .5s ease-in-out infinite;--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-800:oklch(47% .157 37.304);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-200:oklch(91% .096 180.426);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-sky-100:oklch(95.1% .026 236.824);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-gray-200:oklch(92.8% .006 264.531);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-2xl:42rem;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--tracking-widest:.1em;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--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-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@layer base{:root,[data-theme=kumo]{--text-color-kumo-default:var(--color-neutral-900,oklch(21% .006 285.885));--text-color-kumo-inverse:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-strong:var(--color-neutral-950,oklch(14.5% 0 0));--text-color-kumo-subtle:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-inactive:var(--color-neutral-300,oklch(87% 0 0));--text-color-kumo-placeholder:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-800,oklch(42.4% .199 265.638));--text-color-kumo-info:var(--color-blue-800,oklch(42.4% .199 265.638));--text-color-kumo-success:var(--color-emerald-800,oklch(43.2% .095 166.913));--text-color-kumo-danger:var(--color-red-700,oklch(50.5% .213 27.518));--text-color-kumo-warning:var(--color-yellow-800,oklch(47.6% .114 61.907));--text-color-kumo-badge-orange-subtle:var(--color-orange-800,oklch(47% .157 37.304));--text-color-kumo-badge-teal-subtle:var(--color-teal-800,oklch(43.7% .078 188.216));--text-color-kumo-badge-neutral-subtle:var(--color-neutral-800,oklch(26.9% 0 0));--text-color-kumo-badge-inverted:var(--color-white,#fff);--color-kumo-canvas:var(--color-kumo-neutral-25,oklch(98.75% 0 0));--color-kumo-elevated:var(--color-kumo-neutral-75,oklch(98% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-125,oklch(96% 0 0));--color-kumo-base:var(--color-white,#fff);--color-kumo-tint:var(--color-neutral-100,oklch(97% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-975,oklch(8.5% 0 0));--color-kumo-overlay:var(--color-kumo-neutral-50,oklch(97.5% 0 0));--color-kumo-control:var(--color-white,#fff);--color-kumo-interact:var(--color-neutral-300,oklch(87% 0 0));--color-kumo-fill:var(--color-neutral-200,oklch(92.2% 0 0));--color-kumo-fill-hover:var(--color-kumo-neutral-125,oklch(96.5% 0 0));--color-kumo-brand:oklch(57.72% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:oklch(14.5% 0 0/.1);--color-kumo-hairline:var(--color-kumo-neutral-150,oklch(93.5% 0 0));--color-kumo-focus:var(--color-kumo-neutral-950,oklch(15% 0 0));--color-kumo-shadow-edge:oklch(0% 0 0/.12);--color-kumo-shadow-drop:oklch(0% 0 0/.08);--color-kumo-tip-shadow:var(--color-gray-200,oklch(92.8% .006 264.531));--color-kumo-tip-stroke:transparent;--color-kumo-info-tint:var(--color-blue-100,oklch(93.2% .032 255.585));--color-kumo-info:var(--color-blue-500,oklch(68.5% .169 237.323));--color-kumo-warning-tint:var(--color-yellow-100,oklch(97.3% .071 103.193));--color-kumo-warning:var(--color-yellow-500,oklch(79.5% .184 86.047));--color-kumo-danger-tint:var(--color-red-100,oklch(93.6% .032 17.717));--color-kumo-danger:var(--color-red-500,oklch(63.7% .237 25.331));--color-kumo-success-tint:var(--color-emerald-100,oklch(95% .052 163.051));--color-kumo-success:var(--color-emerald-600,oklch(59.6% .145 163.225));--color-kumo-banner-info:oklch(93.2% .032 255.585/.7);--color-kumo-banner-warning:var(--color-yellow-100,oklch(97.3% .071 103.193));--color-kumo-badge-red:var(--color-red-600,oklch(57.7% .245 27.325));--color-kumo-badge-green:var(--color-emerald-600,oklch(59.6% .145 163.225));--color-kumo-badge-orange:var(--color-orange-650,oklch(81.5% .197 76));--color-kumo-badge-purple:var(--color-purple-600,oklch(60% .118 184.704));--color-kumo-badge-teal:var(--color-teal-650,oklch(54.9% .096 184.565));--color-kumo-badge-blue:var(--color-blue-600,oklch(54.6% .245 262.881));--color-kumo-badge-neutral:var(--color-neutral-500,oklch(55.6% 0 0));--color-kumo-badge-inverted:var(--color-neutral-950,oklch(14.5% 0 0))}:root[data-mode=dark],[data-mode=dark]:not([data-theme]),[data-mode=dark] [data-theme=kumo],[data-theme=kumo][data-mode=dark],[data-theme=kumo] [data-mode=dark]{--text-color-kumo-default:var(--color-neutral-100,oklch(97% 0 0));--text-color-kumo-inverse:var(--color-neutral-900,oklch(20.5% 0 0));--text-color-kumo-strong:var(--color-neutral-50,oklch(98.5% 0 0));--text-color-kumo-subtle:var(--color-neutral-400,oklch(70.8% 0 0));--text-color-kumo-inactive:var(--color-neutral-600,oklch(43.9% 0 0));--text-color-kumo-placeholder:var(--color-neutral-500,oklch(55.6% 0 0));--text-color-kumo-brand:#f6821f;--text-color-kumo-link:var(--color-blue-400,oklch(70.7% .165 254.624));--text-color-kumo-info:var(--color-blue-400,oklch(70.7% .165 254.624));--text-color-kumo-success:var(--color-emerald-200,oklch(90.5% .093 164.15));--text-color-kumo-danger:var(--color-red-400,oklch(70.4% .191 22.216));--text-color-kumo-warning:var(--color-yellow-400,oklch(85.2% .199 91.936));--text-color-kumo-badge-orange-subtle:var(--color-orange-200,oklch(90.1% .076 70.697));--text-color-kumo-badge-teal-subtle:var(--color-teal-200,oklch(91% .096 180.426));--text-color-kumo-badge-neutral-subtle:var(--color-neutral-200,oklch(92.2% 0 0));--text-color-kumo-badge-inverted:var(--color-black,#000);--color-kumo-canvas:var(--color-kumo-neutral-1000,oklch(10% 0 0));--color-kumo-elevated:var(--color-kumo-neutral-975,oklch(12% 0 0));--color-kumo-recessed:var(--color-kumo-neutral-950,oklch(15% 0 0));--color-kumo-base:var(--color-kumo-neutral-925,oklch(17% 0 0));--color-kumo-tint:var(--color-kumo-neutral-800,oklch(26.9% 0 0));--color-kumo-contrast:var(--color-kumo-neutral-25,oklch(98.5% 0 0));--color-kumo-overlay:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-control:var(--color-neutral-900,oklch(21% .006 285.885));--color-kumo-interact:var(--color-neutral-700,oklch(37.1% 0 0));--color-kumo-fill:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-fill-hover:var(--color-neutral-800,oklch(37.1% 0 0));--color-kumo-brand:oklch(51.948% .2324 260);--color-kumo-brand-hover:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-line:var(--color-kumo-neutral-750,oklch(32% 0 0));--color-kumo-hairline:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-focus:var(--color-kumo-neutral-150,oklch(93.5% 0 0));--color-kumo-shadow-edge:oklch(100% 0 0/.1);--color-kumo-shadow-drop:oklch(0% 0 0/.3);--color-kumo-tip-shadow:transparent;--color-kumo-tip-stroke:var(--color-neutral-800,oklch(26.9% 0 0));--color-kumo-info-tint:var(--color-blue-900,oklch(37.9% .146 265.522));--color-kumo-info:var(--color-blue-400,oklch(70.7% .165 254.624));--color-kumo-warning-tint:var(--color-yellow-700,oklch(55.4% .135 66.442));--color-kumo-warning:var(--color-yellow-400,oklch(85.2% .199 91.936));--color-kumo-danger-tint:var(--color-red-900,oklch(39.6% .141 25.723));--color-kumo-danger:var(--color-red-600,oklch(57.7% .245 27.325));--color-kumo-success-tint:var(--color-emerald-900,oklch(37.8% .077 168.94));--color-kumo-success:var(--color-emerald-400,oklch(76.5% .177 163.223));--color-kumo-banner-info:oklch(37.9% .146 265.522/.5);--color-kumo-banner-warning:oklch(55.4% .135 66.442/.5);--color-kumo-badge-red:var(--color-red-700,oklch(50.5% .213 27.518));--color-kumo-badge-green:var(--color-emerald-700,oklch(50.8% .118 165.612));--color-kumo-badge-orange:var(--color-orange-650,oklch(81.5% .197 76));--color-kumo-badge-purple:var(--color-purple-700,oklch(50.8% .118 165.612));--color-kumo-badge-teal:var(--color-teal-700,oklch(51.1% .096 186.391));--color-kumo-badge-blue:var(--color-blue-700,oklch(48.8% .243 264.376));--color-kumo-badge-neutral:var(--color-neutral-600,oklch(43.9% 0 0));--color-kumo-badge-inverted:var(--color-white,#fff)}[data-theme=fedramp],[data-mode=dark] [data-theme=fedramp],[data-theme=fedramp][data-mode=dark],[data-theme=fedramp] [data-mode=dark]{--color-kumo-canvas:#5b697c;--color-kumo-base:#5b697c;--color-kumo-hairline:#c8d4e5}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.skeleton-line{height:.5rem;width:var(--skeleton-width);background-color:#f3f4f6;border-radius:2px;position:relative;overflow:hidden}.skeleton-line:after{animation:shimmer var(--shimmer-duration,1.5s) var(--shimmer-delay,0s) infinite ease-in-out;content:"";background:linear-gradient(90deg,#0000 0%,#00000014 50%,#0000 100%);position:absolute;inset:0}[data-mode=dark] .skeleton-line{background-color:#ffffff0f}[data-mode=dark] .skeleton-line:after{background:linear-gradient(90deg,#fff0 0%,#ffffff0d 50%,#fff0 100%)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-input-spinner{appearance:textfield}.no-input-spinner ::-webkit-outer-spin-button{appearance:none}.no-input-spinner ::-webkit-inner-spin-button{appearance:none}.link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-decoration-color:color-mix(in oklch, currentColor 35%, transparent)}}[data-mode=dark] .link-current{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){[data-mode=dark] .link-current{-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);-webkit-text-decoration-color:color-mix(in oklch, currentColor 65%, transparent);text-decoration-color:color-mix(in oklch, currentColor 65%, transparent)}}.link-current:hover{text-decoration-color:currentColor}.link-external-icon{stroke-width:1.75px}[data-mode=dark] .link-external-icon{stroke-width:2px}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.inset-y-px{inset-block:1px}.-top-px{top:-1px}.top-\(--active-tab-top\){top:var(--active-tab-top)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-22{top:calc(var(--spacing) * 22)}.top-\[10vh\]{top:10vh}.top-auto{top:auto}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.right-6{right:calc(var(--spacing) * 6)}.right-8{right:calc(var(--spacing) * 8)}.right-9{right:calc(var(--spacing) * 9)}.right-10{right:calc(var(--spacing) * 10)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-4{left:calc(var(--spacing) * 4)}.left-4\.5{left:calc(var(--spacing) * 4.5)}.left-5{left:calc(var(--spacing) * 5)}.left-\[19px\]{left:19px}.left-auto{left:auto}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[calc\(1000-var\(--toast-index\)\)\]{z-index:calc(1000 - var(--toast-index))}.-order-1{order:calc(1 * -1)}.order-1{order:1}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!m-0{margin:0!important}.m-0{margin:0}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0{margin-inline:0}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.-mt-16{margin-top:calc(var(--spacing) * -16)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.-mr-16{margin-right:calc(var(--spacing) * -16)}.mr-0{margin-right:0}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-4{margin-right:calc(var(--spacing) * 4)}.\!mb-0{margin-bottom:0!important}.-mb-16{margin-bottom:calc(var(--spacing) * -16)}.mb-0\!{margin-bottom:0!important}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-3{margin-left:calc(var(--spacing) * -3)}.-ml-16{margin-left:calc(var(--spacing) * -16)}.-ml-px{margin-left:-1px}.ml-0{margin-left:0}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.\!inline{display:inline!important}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.size-1\.75{width:calc(var(--spacing) * 1.75);height:calc(var(--spacing) * 1.75)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6\.5{width:calc(var(--spacing) * 6.5);height:calc(var(--spacing) * 6.5)}.size-8\.5{width:calc(var(--spacing) * 8.5);height:calc(var(--spacing) * 8.5)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-\(--active-tab-height\){height:var(--active-tab-height)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-6\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-7\.5{height:calc(var(--spacing) * 7.5)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-\[1\.375em\]{height:1.375em}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-\[58px\]{height:58px}.h-\[var\(--height\)\]{height:var(--height)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-full\!{height:100%!important}.h-px{height:1px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[min\(var\(--available-height\)\,24rem\)\]{max-height:min(var(--available-height), 24rem)}.max-h-\[var\(--available-height\)\]{max-height:var(--available-height)}.\!min-h-0{min-height:0!important}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6\.5{min-height:calc(var(--spacing) * 6.5)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8\.5{min-height:calc(var(--spacing) * 8.5)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--active-tab-width\){width:var(--active-tab-width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-8\.5{width:calc(var(--spacing) * 8.5)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-10\.5{width:calc(var(--spacing) * 10.5)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-12\.5{width:calc(var(--spacing) * 12.5)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-\[2px\]{width:2px}.w-\[10px\]{width:10px}.w-\[123px\]{width:123px}.w-\[125px\]{width:125px}.w-\[168px\]{width:168px}.w-\[196px\]{width:196px}.w-\[252px\]{width:252px}.w-\[calc\(100\%-0\.75rem\)\]{width:calc(100% - .75rem)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--available-width\){max-width:var(--available-width)}.max-w-\(--sidebar-width\){max-width:var(--sidebar-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-8\/10{max-width:80%}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-\[1400px\]{max-width:1400px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[var\(--available-width\)\]{max-width:var(--available-width)}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--anchor-width\){min-width:var(--anchor-width)}.min-w-0{min-width:0}.min-w-0\!{min-width:0!important}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-42{min-width:calc(var(--spacing) * 42)}.min-w-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[calc\(var\(--anchor-width\)\+3px\)\]{min-width:calc(var(--anchor-width) + 3px)}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.origin-\(--transform-origin\),.origin-\[var\(--transform-origin\)\]{transform-origin:var(--transform-origin)}.origin-bottom{transform-origin:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\(--active-tab-left\){--tw-translate-x:var(--active-tab-left);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-3px\]{--tw-translate-x:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[10\.5px\]{--tw-translate-x:10.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.rotate-90{rotate:90deg}.\[transform\:translateX\(var\(--toast-swipe-movement-x\)\)_translateY\(calc\(var\(--toast-swipe-movement-y\)-\(var\(--toast-index\)\*var\(--peek\)\)-\(var\(--shrink\)\*var\(--height\)\)\)\)_scale\(var\(--scale\)\)\]{transform:translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-swipe-movement-y) - (var(--toast-index) * var(--peek)) - (var(--shrink) * var(--height)))) scale(var(--scale))}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0) var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-refresh{animation:var(--animate-refresh)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.scroll-px-\(--scroll-fade-width\){scroll-padding-inline:var(--scroll-fade-width)}.scroll-py-2{scroll-padding-block:calc(var(--spacing) * 2)}.scroll-pt-2{scroll-padding-top:calc(var(--spacing) * 2)}.scroll-pb-2{scroll-padding-bottom:calc(var(--spacing) * 2)}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_16px\]{grid-template-columns:1fr 16px}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-\[0\.1875em\]{gap:.1875em}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-px{row-gap:1px}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.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(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden\!{overflow-x:hidden!important}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:.25rem}.rounded-\[5px\]{border-radius:5px}.rounded-\[11px\]{border-radius:11px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-\[5px\]{border-top-left-radius:5px}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\[inherit\]{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rounded-tr{border-top-right-radius:.25rem}.rounded-tr-\[5px\]{border-top-right-radius:5px}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-br{border-bottom-right-radius:.25rem}.rounded-br-\[5px\]{border-bottom-right-radius:5px}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-\[5px\]{border-bottom-left-radius:5px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-bs{border-block-start-style:var(--tw-border-style);border-block-start-width:1px}.border-be{border-block-end-style:var(--tw-border-style);border-block-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l\!{border-left-style:var(--tw-border-style)!important;border-left-width:1px!important}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-kumo-brand{border-color:var(--color-kumo-brand)}.border-kumo-danger{border-color:var(--color-kumo-danger)}.border-kumo-fill{border-color:var(--color-kumo-fill)}.border-kumo-fill\/60{border-color:color-mix(in srgb, var(--lightningcss-light,var(--color-neutral-200,oklch(92.2% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0))) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.border-kumo-fill\/60{border-color:color-mix(in oklab, var(--color-kumo-fill) 60%, transparent)}}.border-kumo-hairline{border-color:var(--color-kumo-hairline)}.border-kumo-line{border-color:var(--color-kumo-line)}.border-kumo-line\!{border-color:var(--color-kumo-line)!important}.border-kumo-recessed{border-color:var(--color-kumo-recessed)}.border-transparent{border-color:#0000}.\!bg-kumo-contrast{background-color:var(--color-kumo-contrast)!important}.bg-\(--kumo-button-emphasis-bg\){background-color:var(--kumo-button-emphasis-bg)}.bg-\(--sidebar-active-bg\){background-color:var(--sidebar-active-bg)}.bg-\(--sidebar-bg\){background-color:var(--sidebar-bg)}.bg-black{background-color:var(--color-black)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-inherit{background-color:inherit}.bg-kumo-badge-blue{background-color:var(--color-kumo-badge-blue)}.bg-kumo-badge-green{background-color:var(--color-kumo-badge-green)}.bg-kumo-badge-inverted{background-color:var(--color-kumo-badge-inverted)}.bg-kumo-badge-neutral{background-color:var(--color-kumo-badge-neutral)}.bg-kumo-badge-orange{background-color:var(--color-kumo-badge-orange)}.bg-kumo-badge-purple{background-color:var(--color-kumo-badge-purple)}.bg-kumo-badge-red{background-color:var(--color-kumo-badge-red)}.bg-kumo-badge-teal{background-color:var(--color-kumo-badge-teal)}.bg-kumo-banner-info{background-color:var(--color-kumo-banner-info)}.bg-kumo-banner-warning{background-color:var(--color-kumo-banner-warning)}.bg-kumo-base{background-color:var(--color-kumo-base)}.bg-kumo-base\/90{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-white,#fff))var(--lightningcss-dark,var(--color-kumo-neutral-925,oklch(17% 0 0))) 90%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-base\/90{background-color:color-mix(in oklab, var(--color-kumo-base) 90%, transparent)}}.bg-kumo-brand{background-color:var(--color-kumo-brand)}.bg-kumo-contrast\/5{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-975,oklch(8.5% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-25,oklch(98.5% 0 0))) 5%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-contrast\/5{background-color:color-mix(in oklab, var(--color-kumo-contrast) 5%, transparent)}}.bg-kumo-control{background-color:var(--color-kumo-control)}.bg-kumo-danger{background-color:var(--color-kumo-danger)}.bg-kumo-danger-tint\/30{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-100,oklch(93.6% .032 17.717)))var(--lightningcss-dark,var(--color-red-900,oklch(39.6% .141 25.723))) 30%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-danger-tint\/30{background-color:color-mix(in oklab, var(--color-kumo-danger-tint) 30%, transparent)}}.bg-kumo-danger-tint\/60{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-100,oklch(93.6% .032 17.717)))var(--lightningcss-dark,var(--color-red-900,oklch(39.6% .141 25.723))) 60%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-danger-tint\/60{background-color:color-mix(in oklab, var(--color-kumo-danger-tint) 60%, transparent)}}.bg-kumo-elevated{background-color:var(--color-kumo-elevated)}.bg-kumo-fill{background-color:var(--color-kumo-fill)}.bg-kumo-hairline{background-color:var(--color-kumo-hairline)}.bg-kumo-hairline\/50{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-150,oklch(93.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-hairline\/50{background-color:color-mix(in oklab, var(--color-kumo-hairline) 50%, transparent)}}.bg-kumo-info{background-color:var(--color-kumo-info)}.bg-kumo-info-tint\/30{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-blue-100,oklch(93.2% .032 255.585)))var(--lightningcss-dark,var(--color-blue-900,oklch(37.9% .146 265.522))) 30%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-info-tint\/30{background-color:color-mix(in oklab, var(--color-kumo-info-tint) 30%, transparent)}}.bg-kumo-info-tint\/70{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-blue-100,oklch(93.2% .032 255.585)))var(--lightningcss-dark,var(--color-blue-900,oklch(37.9% .146 265.522))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-info-tint\/70{background-color:color-mix(in oklab, var(--color-kumo-info-tint) 70%, transparent)}}.bg-kumo-interact{background-color:var(--color-kumo-interact)}.bg-kumo-interact\/85{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-neutral-300,oklch(87% 0 0)))var(--lightningcss-dark,var(--color-neutral-700,oklch(37.1% 0 0))) 85%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-interact\/85{background-color:color-mix(in oklab, var(--color-kumo-interact) 85%, transparent)}}.bg-kumo-line{background-color:var(--color-kumo-line)}.bg-kumo-overlay{background-color:var(--color-kumo-overlay)}.bg-kumo-recessed{background-color:var(--color-kumo-recessed)}.bg-kumo-success{background-color:var(--color-kumo-success)}.bg-kumo-success-tint\/20{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-emerald-100,oklch(95% .052 163.051)))var(--lightningcss-dark,var(--color-emerald-900,oklch(37.8% .077 168.94))) 20%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-success-tint\/20{background-color:color-mix(in oklab, var(--color-kumo-success-tint) 20%, transparent)}}.bg-kumo-success-tint\/70{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-emerald-100,oklch(95% .052 163.051)))var(--lightningcss-dark,var(--color-emerald-900,oklch(37.8% .077 168.94))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-success-tint\/70{background-color:color-mix(in oklab, var(--color-kumo-success-tint) 70%, transparent)}}.bg-kumo-tint{background-color:var(--color-kumo-tint)}.bg-kumo-warning{background-color:var(--color-kumo-warning)}.bg-kumo-warning-tint\/20{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-yellow-100,oklch(97.3% .071 103.193)))var(--lightningcss-dark,var(--color-yellow-700,oklch(55.4% .135 66.442))) 20%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-warning-tint\/20{background-color:color-mix(in oklab, var(--color-kumo-warning-tint) 20%, transparent)}}.bg-kumo-warning-tint\/70{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-yellow-100,oklch(97.3% .071 103.193)))var(--lightningcss-dark,var(--color-yellow-700,oklch(55.4% .135 66.442))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-warning-tint\/70{background-color:color-mix(in oklab, var(--color-kumo-warning-tint) 70%, transparent)}}.bg-kumo-warning\/50{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-yellow-500,oklch(79.5% .184 86.047)))var(--lightningcss-dark,var(--color-yellow-400,oklch(85.2% .199 91.936))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.bg-kumo-warning\/50{background-color:color-mix(in oklab, var(--color-kumo-warning) 50%, transparent)}}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-500{background-color:var(--color-neutral-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-\(--kumo-button-emphasis-gradient-start\){--tw-gradient-from:var(--kumo-button-emphasis-gradient-start);--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))}.from-kumo-brand{--tw-gradient-from:var(--color-kumo-brand);--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))}.via-kumo-brand{--tw-gradient-via:var(--color-kumo-brand);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\(--kumo-button-emphasis-gradient-end\){--tw-gradient-to:var(--kumo-button-emphasis-gradient-end);--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))}.to-kumo-brand{--tw-gradient-to:var(--color-kumo-brand);--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))}.\[mask-image\:linear-gradient\(to_bottom\,transparent_0\,black_min\(24px\,var\(--scroll-area-overflow-y-start\,24px\)\)\,black_calc\(100\%-min\(24px\,var\(--scroll-area-overflow-y-end\,24px\)\)\)\,transparent_100\%\)\]{-webkit-mask-image:linear-gradient(to bottom,transparent 0,black min(24px, var(--scroll-area-overflow-y-start,24px)),black calc(100% - min(24px, var(--scroll-area-overflow-y-end,24px))),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,black min(24px, var(--scroll-area-overflow-y-start,24px)),black calc(100% - min(24px, var(--scroll-area-overflow-y-end,24px))),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,black min(24px, var(--scroll-area-overflow-y-start,24px)),black calc(100% - min(24px, var(--scroll-area-overflow-y-end,24px))),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,black min(24px, var(--scroll-area-overflow-y-start,24px)),black calc(100% - min(24px, var(--scroll-area-overflow-y-end,24px))),transparent 100%)}.bg-clip-padding{background-clip:padding-box}.bg-repeat{background-repeat:repeat}.mask-no-clip{-webkit-mask-clip:no-clip;mask-clip:no-clip}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.fill-current{fill:currentColor}.fill-kumo-base{fill:var(--color-kumo-base)}.fill-kumo-danger{fill:var(--color-kumo-danger)}.fill-kumo-info{fill:var(--color-kumo-info)}.fill-kumo-tip-shadow{fill:var(--color-kumo-tip-shadow)}.fill-kumo-tip-stroke{fill:var(--color-kumo-tip-stroke)}.fill-kumo-warning{fill:var(--color-kumo-warning)}.\!p-0{padding:0!important}.\!p-4{padding:calc(var(--spacing) * 4)!important}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-px{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-10{padding-inline:calc(var(--spacing) * 10)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-16{padding-inline:calc(var(--spacing) * 16)}.px-\[11px\]{padding-inline:11px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-px{padding-top:1px}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pr-\[3px\]{padding-right:3px}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-0{padding-left:0}.pl-1{padding-left:var(--spacing)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-px{padding-left:1px}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.\!text-base{font-size:var(--text-base)!important;line-height:var(--tw-leading,var(--text-base--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-\[11px\]\/none{font-size:11px;line-height:1}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.925rem\]{font-size:.925rem}.text-\[0\.975rem\]{font-size:.975rem}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[0\]{--tw-leading:0;line-height:0}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-pretty{text-wrap:pretty}.text-wrap{text-wrap:wrap}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.\!text-kumo-danger{color:var(--text-color-kumo-danger)!important}.\!text-kumo-default{color:var(--text-color-kumo-default)!important}.\!text-kumo-inverse{color:var(--text-color-kumo-inverse)!important}.\!text-kumo-subtle{color:var(--text-color-kumo-subtle)!important}.\!text-white{color:var(--color-white)!important}.text-black{color:var(--color-black)}.text-current{color:currentColor}.text-inherit{color:inherit}.text-inherit\!{color:inherit!important}.text-kumo-badge-inverted{color:var(--text-color-kumo-badge-inverted)}.text-kumo-badge-neutral-subtle{color:var(--text-color-kumo-badge-neutral-subtle)}.text-kumo-badge-teal-subtle{color:var(--text-color-kumo-badge-teal-subtle)}.text-kumo-brand{color:var(--text-color-kumo-brand)}.text-kumo-danger{color:var(--text-color-kumo-danger)}.text-kumo-default{color:var(--text-color-kumo-default)}.text-kumo-default\/70{color:color-mix(in srgb, var(--lightningcss-light,var(--color-neutral-900,oklch(21% .006 285.885)))var(--lightningcss-dark,var(--color-neutral-100,oklch(97% 0 0))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.text-kumo-default\/70{color:color-mix(in oklab, var(--text-color-kumo-default) 70%, transparent)}}.text-kumo-inactive{color:var(--text-color-kumo-inactive)}.text-kumo-info{color:var(--text-color-kumo-info)}.text-kumo-inverse{color:var(--text-color-kumo-inverse)}.text-kumo-link{color:var(--text-color-kumo-link)}.text-kumo-placeholder{color:var(--text-color-kumo-placeholder)}.text-kumo-strong{color:var(--text-color-kumo-strong)}.text-kumo-subtle{color:var(--text-color-kumo-subtle)}.text-kumo-success{color:var(--text-color-kumo-success)}.text-kumo-warning{color:var(--text-color-kumo-warning)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.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,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.no-underline\!{text-decoration-line:none!important}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-\[0\.0625em\]{text-decoration-thickness:.0625em}.underline-offset-2{text-underline-offset:2px}.underline-offset-\[0\.15em\]{text-underline-offset:.15em}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_1px_0\.5px_var\(--color-kumo-shadow-edge\)\,0_1px_2px_var\(--color-kumo-shadow-drop\)\]{--tw-shadow:0 0 1px .5px var(--tw-shadow-color,var(--color-kumo-shadow-edge)), 0 1px 2px var(--tw-shadow-color,var(--color-kumo-shadow-drop));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_0_var\(--kumo-button-emphasis-bg\)\]{--tw-shadow:inset 0 1px 0 0 var(--tw-shadow-color,var(--kumo-button-emphasis-bg));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-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)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0\!{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[0\.3px\]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(.3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-kumo-tip-shadow{--tw-shadow-color:var(--lightningcss-light,var(--color-gray-200,oklch(92.8% .006 264.531)))var(--lightningcss-dark,transparent)}@supports (color:color-mix(in lab, red, red)){.shadow-kumo-tip-shadow{--tw-shadow-color:color-mix(in oklab, var(--color-kumo-tip-shadow) var(--tw-shadow-alpha), transparent)}}.\!ring-kumo-danger{--tw-ring-color:var(--color-kumo-danger)!important}.ring-\(--kumo-button-emphasis-ring\){--tw-ring-color:var(--kumo-button-emphasis-ring)}.ring-black\/20{--tw-ring-color:#0003}@supports (color:color-mix(in lab, red, red)){.ring-black\/20{--tw-ring-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.ring-blue-600{--tw-ring-color:var(--color-blue-600)}.ring-kumo-danger{--tw-ring-color:var(--color-kumo-danger)}.ring-kumo-fill{--tw-ring-color:var(--color-kumo-fill)}.ring-kumo-hairline{--tw-ring-color:var(--color-kumo-hairline)}.ring-kumo-hairline\/70{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-150,oklch(93.5% 0 0)))var(--lightningcss-dark,var(--color-neutral-800,oklch(26.9% 0 0))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.ring-kumo-hairline\/70{--tw-ring-color:color-mix(in oklab, var(--color-kumo-hairline) 70%, transparent)}}.ring-kumo-info{--tw-ring-color:var(--color-kumo-info)}.ring-kumo-line{--tw-ring-color:var(--color-kumo-line)}.ring-kumo-success{--tw-ring-color:var(--color-kumo-success)}.ring-kumo-warning{--tw-ring-color:var(--color-kumo-warning)}.ring-neutral-300{--tw-ring-color:var(--color-neutral-300)}.ring-neutral-600{--tw-ring-color:var(--color-neutral-600)}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab, red, red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-kumo-fill{outline-color:var(--color-kumo-fill)}.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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--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,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\,outline\]{transition-property:color,box-shadow,outline;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\]{transition-property:color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\,margin\,border-color\]{transition-property:grid-template-rows,margin,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\]{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[padding\]{transition-property:padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,rotate\,opacity\]{transition-property:transform,rotate,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,scale\,opacity\]{transition-property:transform,scale,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,padding\]{transition-property:width,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.transition-none\!{transition-property:none!important}.duration-\(--sidebar-animation-duration\){--tw-duration:var(--sidebar-animation-duration);transition-duration:var(--sidebar-animation-duration)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\[50\]{--tw-duration:50;transition-duration:50}.\[transition-duration\:250ms\]{transition-duration:.25s}.ease-\(--sidebar-easing\){--tw-ease:var(--sidebar-easing);transition-timing-function:var(--sidebar-easing)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--gap\:0\.75rem\]{--gap:.75rem}.\[--height\:var\(--toast-frontmost-height\,var\(--toast-height\)\)\]{--height:var(--toast-frontmost-height,var(--toast-height))}.\[--offset-y\:calc\(var\(--toast-offset-y\)\*-1\+calc\(var\(--toast-index\)\*var\(--gap\)\*-1\)\+var\(--toast-swipe-movement-y\)\)\]{--offset-y:calc(var(--toast-offset-y) * -1 + calc(var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))}.\[--peek\:0\.75rem\]{--peek:.75rem}.\[--scale\:calc\(max\(0\,1-\(var\(--toast-index\)\*0\.1\)\)\)\]{--scale:calc(max(0, 1 - (var(--toast-index) * .1)))}.\[--scroll-fade-width\:3rem\]{--scroll-fade-width:3rem}.\[--shrink\:calc\(1-var\(--scale\)\)\]{--shrink:calc(1 - var(--scale))}.\[--sidebar-active-bg\:var\(--color-kumo-tint\)\]{--sidebar-active-bg:var(--color-kumo-tint)}.\[--sidebar-bg\:var\(--color-kumo-base\)\]{--sidebar-bg:var(--color-kumo-base)}.\[corner-shape\:squircle\]{corner-shape:squircle}.\[transition\:transform_0\.5s_cubic-bezier\(0\.22\,1\,0\.36\,1\)\,opacity_0\.5s\,height_0\.15s\]{transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s,height .15s}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}:is(.\*\:pointer-events-auto>*){pointer-events:auto}.not-first\:-ml-px:not(:first-child){margin-left:-1px}.not-first\:border-l:not(:first-child){border-left-style:var(--tw-border-style);border-left-width:1px}.not-first\:border-kumo-line:not(:first-child){border-color:var(--color-kumo-line)}.group-not-data-\[state\=collapsed\]\/sidebar\:my-0:is(:where(.group\/sidebar):not([data-state=collapsed]) *){margin-block:0}.group-not-data-\[state\=collapsed\]\/sidebar\:translate-x-0:is(:where(.group\/sidebar):not([data-state=collapsed]) *){--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-not-data-\[state\=collapsed\]\/sidebar\:grid-rows-\[1fr\]:is(:where(.group\/sidebar):not([data-state=collapsed]) *){grid-template-rows:1fr}.group-not-data-\[state\=collapsed\]\/sidebar\:border-transparent:is(:where(.group\/sidebar):not([data-state=collapsed]) *){border-color:#0000}.group-not-data-\[state\=collapsed\]\/sidebar\:px-3\.5:is(:where(.group\/sidebar):not([data-state=collapsed]) *){padding-inline:calc(var(--spacing) * 3.5)}.group-not-data-\[state\=collapsed\]\/sidebar\:px-4:is(:where(.group\/sidebar):not([data-state=collapsed]) *){padding-inline:calc(var(--spacing) * 4)}.group-focus-within\/container\:invisible:is(:where(.group\/container):focus-within *){visibility:hidden}.group-focus-within\/container\:visible:is(:where(.group\/container):focus-within *){visibility:visible}.group-focus-within\/container\:opacity-100:is(:where(.group\/container):focus-within *){opacity:1}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:from-\(--kumo-button-emphasis-bg\):is(:where(.group):hover *){--tw-gradient-from:var(--kumo-button-emphasis-bg);--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))}.group-hover\:text-kumo-brand:is(:where(.group):hover *){color:var(--text-color-kumo-brand)}.group-hover\:text-kumo-default:is(:where(.group):hover *){color:var(--text-color-kumo-default)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:ring-kumo-hairline:is(:where(.group):hover *){--tw-ring-color:var(--color-kumo-hairline)}.group-hover\/container\:opacity-100:is(:where(.group\/container):hover *){opacity:1}.group-hover\/mask\:invisible:is(:where(.group\/mask):hover *){visibility:hidden}.group-hover\/mask\:visible:is(:where(.group\/mask):hover *){visibility:visible}.group-hover\/menu-button\:opacity-100:is(:where(.group\/menu-button):hover *){opacity:1}}.group-data-selected\:flex:is(:where(.group)[data-selected] *){display:flex}.group-data-\[compact\]\/header\:bg-kumo-elevated:is(:where(.group\/header)[data-compact] *){background-color:var(--color-kumo-elevated)}.group-data-\[highlighted\]\:opacity-100:is(:where(.group)[data-highlighted] *){opacity:1}.group-data-\[mobile\=true\]\/sidebar\:my-0:is(:where(.group\/sidebar)[data-mobile=true] *){margin-block:0}.group-data-\[mobile\=true\]\/sidebar\:grid-rows-\[1fr\]:is(:where(.group\/sidebar)[data-mobile=true] *){grid-template-rows:1fr}.group-data-\[mobile\=true\]\/sidebar\:border-transparent:is(:where(.group\/sidebar)[data-mobile=true] *){border-color:#0000}.group-data-\[mobile\=true\]\/sidebar\:transition-none:is(:where(.group\/sidebar)[data-mobile=true] *){transition-property:none}.group-data-\[side\=left\]\/sidebar-wrapper\:right-0:is(:where(.group\/sidebar-wrapper)[data-side=left] *){right:0}.group-data-\[side\=right\]\/sidebar-wrapper\:left-0:is(:where(.group\/sidebar-wrapper)[data-side=right] *){left:0}.group-data-\[state\=collapsed\]\/sidebar\:hidden:is(:where(.group\/sidebar)[data-state=collapsed] *){display:none}.group-data-\[state\=collapsed\]\/sidebar\:w-\(--sidebar-width-icon\):is(:where(.group\/sidebar)[data-state=collapsed] *){width:var(--sidebar-width-icon)}.group-data-\[state\=collapsed\]\/sidebar\:overflow-hidden:is(:where(.group\/sidebar)[data-state=collapsed] *){overflow:hidden}.group-data-\[state\=collapsed\]\/sidebar\:border-r:is(:where(.group\/sidebar)[data-state=collapsed] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[state\=collapsed\]\/sidebar\:border-kumo-line:is(:where(.group\/sidebar)[data-state=collapsed] *){border-color:var(--color-kumo-line)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-3:before{content:var(--tw-content);inset:calc(var(--spacing) * -3)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:-inset-y-px:before{content:var(--tw-content);inset-block:-1px}.before\:inset-y-0:before{content:var(--tw-content);inset-block:0}.before\:-right-6:before{content:var(--tw-content);right:calc(var(--spacing) * -6)}.before\:-left-6:before{content:var(--tw-content);left:calc(var(--spacing) * -6)}.before\:w-6:before{content:var(--tw-content);width:calc(var(--spacing) * 6)}.before\:bg-gradient-to-l:before{content:var(--tw-content);--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\:bg-gradient-to-r:before{content:var(--tw-content);--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\:from-transparent:before{content:var(--tw-content);--tw-gradient-from: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))}.before\:to-kumo-base:before{content:var(--tw-content);--tw-gradient-to:var(--color-kumo-base);--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))}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.group-data-\[compact\]\/header\:before\:to-kumo-elevated:is(:where(.group\/header)[data-compact] *):before{content:var(--tw-content);--tw-gradient-to:var(--color-kumo-elevated);--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))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * -3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:0}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:right-0:after{content:var(--tw-content);right:0}.after\:left-0:after{content:var(--tw-content);left:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:h-\[calc\(var\(--gap\)\+1px\)\]:after{content:var(--tw-content);height:calc(var(--gap) + 1px)}.after\:w-0\.5:after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:bg-transparent:after{content:var(--tw-content);background-color:#0000}.after\:transition-colors:after{content:var(--tw-content);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))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mb-2:first-child{margin-bottom:calc(var(--spacing) * 2)}.first\:rounded-l-\[inherit\]:first-child{border-top-left-radius:inherit;border-bottom-left-radius:inherit}.first\:rounded-l-lg:first-child{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:rounded-r-\[inherit\]:last-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.last\:rounded-r-lg:last-child{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.only\:rounded-lg:only-child{border-radius:var(--radius-lg)}.empty\:m-0:empty{margin:0}.empty\:p-0:empty{padding:0}.focus-within\:z-2:focus-within{z-index:2}.focus-within\:border-kumo-focus\/50:focus-within{border-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus-within\:border-kumo-focus\/50:focus-within{border-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[1\.5px\]:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-kumo-brand:focus-within{--tw-ring-color:var(--color-kumo-brand)}.focus-within\:ring-kumo-danger\/50:focus-within{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-500,oklch(63.7% .237 25.331)))var(--lightningcss-dark,var(--color-red-600,oklch(57.7% .245 27.325))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-kumo-danger\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--color-kumo-danger) 50%, transparent)}}.focus-within\:ring-kumo-focus\/50:focus-within{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-kumo-focus\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus-within\:outline:focus-within{outline-style:var(--tw-outline-style);outline-width:1px}.focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.focus-within\:outline-kumo-focus:focus-within{outline-color:var(--color-kumo-focus)}@media (hover:hover){.hover\:z-1:hover{z-index:1}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-kumo-interact\/80:hover{border-color:color-mix(in srgb, var(--lightningcss-light,var(--color-neutral-300,oklch(87% 0 0)))var(--lightningcss-dark,var(--color-neutral-700,oklch(37.1% 0 0))) 80%, transparent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-kumo-interact\/80:hover{border-color:color-mix(in oklab, var(--color-kumo-interact) 80%, transparent)}}.hover\:border-kumo-line:hover{border-color:var(--color-kumo-line)}.hover\:bg-\(--sidebar-active-bg\):hover{background-color:var(--sidebar-active-bg)}.hover\:bg-current\/15:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/15:hover{background-color:color-mix(in oklab, currentcolor 15%, transparent)}}.hover\:bg-kumo-fill:hover{background-color:var(--color-kumo-fill)}.hover\:bg-kumo-fill-hover:hover{background-color:var(--color-kumo-fill-hover)}.hover\:bg-kumo-interact:hover{background-color:var(--color-kumo-interact)}.hover\:bg-kumo-tint:hover{background-color:var(--color-kumo-tint)}.hover\:font-medium:hover{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.hover\:text-kumo-default:hover{color:var(--text-color-kumo-default)}.hover\:text-kumo-link\/70:hover{color:color-mix(in srgb, var(--lightningcss-light,var(--color-blue-800,oklch(42.4% .199 265.638)))var(--lightningcss-dark,var(--color-blue-400,oklch(70.7% .165 254.624))) 70%, transparent)}@supports (color:color-mix(in lab, red, red)){.hover\:text-kumo-link\/70:hover{color:color-mix(in oklab, var(--text-color-kumo-link) 70%, transparent)}}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-kumo-hairline:hover{--tw-ring-color:var(--color-kumo-hairline)}.hover\:brightness-120:hover{--tw-brightness:brightness(120%);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,)}.not-disabled\:hover\:bg-kumo-tint:not(:disabled):hover{background-color:var(--color-kumo-tint)}.not-disabled\:hover\:\!text-kumo-danger:not(:disabled):hover{color:var(--text-color-kumo-danger)!important}.not-disabled\:hover\:text-kumo-strong:not(:disabled):hover{color:var(--text-color-kumo-strong)}.not-disabled\:hover\:ring-kumo-danger\/30:not(:disabled):hover{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-500,oklch(63.7% .237 25.331)))var(--lightningcss-dark,var(--color-red-600,oklch(57.7% .245 27.325))) 30%, transparent)}@supports (color:color-mix(in lab, red, red)){.not-disabled\:hover\:ring-kumo-danger\/30:not(:disabled):hover{--tw-ring-color:color-mix(in oklab, var(--color-kumo-danger) 30%, transparent)}}.not-disabled\:hover\:ring-kumo-focus\/25:not(:disabled):hover{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 25%, transparent)}@supports (color:color-mix(in lab, red, red)){.not-disabled\:hover\:ring-kumo-focus\/25:not(:disabled):hover{--tw-ring-color:color-mix(in oklab, var(--color-kumo-focus) 25%, transparent)}}.hover\:not-has-\[\[data-disabled\]\]\:bg-kumo-tint:hover:not(:has([data-disabled])){background-color:var(--color-kumo-tint)}.hover\:after\:bg-kumo-brand\/20:hover:after{content:var(--tw-content);background-color:var(--lightningcss-light,#056dff33)var(--lightningcss-dark,#005ce333)}@supports (color:color-mix(in lab, red, red)){.hover\:after\:bg-kumo-brand\/20:hover:after{background-color:color-mix(in oklab, var(--color-kumo-brand) 20%, transparent)}}.hover\:after\:bg-kumo-hairline:hover:after{content:var(--tw-content);background-color:var(--color-kumo-hairline)}}.focus\:z-2:focus{z-index:2}.focus\:z-3:focus{z-index:3}.focus\:border-kumo-focus\/50:focus{border-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus\:border-kumo-focus\/50:focus{border-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus\:bg-kumo-tint:focus{background-color:var(--color-kumo-tint)}.focus\:text-kumo-default:focus{color:var(--text-color-kumo-default)}.focus\:opacity-100:focus{opacity:1}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-0\!:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[1\.5px\]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\(--kumo-button-emphasis-ring\):focus{--tw-ring-color:var(--kumo-button-emphasis-ring)}.focus\:ring-kumo-danger\/50:focus{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-500,oklch(63.7% .237 25.331)))var(--lightningcss-dark,var(--color-red-600,oklch(57.7% .245 27.325))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-kumo-danger\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-kumo-danger) 50%, transparent)}}.focus\:ring-kumo-focus:focus{--tw-ring-color:var(--color-kumo-focus)}.focus\:ring-kumo-focus\/50:focus{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-kumo-focus\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\:z-2:focus-visible{z-index:2}.focus-visible\:z-3:focus-visible{z-index:3}.focus-visible\:z-50:focus-visible{z-index:50}.focus-visible\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\:border-kumo-focus\/50:focus-visible{border-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-kumo-focus\/50:focus-visible{border-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus-visible\:bg-\(--sidebar-active-bg\):focus-visible{background-color:var(--sidebar-active-bg)}.focus-visible\:text-kumo-strong:focus-visible{color:var(--text-color-kumo-strong)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[1\.5px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\(--kumo-button-emphasis-ring\):focus-visible{--tw-ring-color:var(--kumo-button-emphasis-ring)}.focus-visible\:ring-kumo-brand:focus-visible{--tw-ring-color:var(--color-kumo-brand)}.focus-visible\:ring-kumo-focus\/50:focus-visible{--tw-ring-color:color-mix(in srgb, var(--lightningcss-light,var(--color-kumo-neutral-950,oklch(15% 0 0)))var(--lightningcss-dark,var(--color-kumo-neutral-150,oklch(93.5% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-kumo-focus\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-kumo-focus) 50%, transparent)}}.focus-visible\:outline-offset-3:focus-visible{outline-offset:3px}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:after\:bg-kumo-hairline:focus-visible:after{content:var(--tw-content);background-color:var(--color-kumo-hairline)}.active\:cursor-grabbing:active{cursor:grabbing}.active\:ring-\(--kumo-button-emphasis-ring\):active{--tw-ring-color:var(--kumo-button-emphasis-ring)}.active\:after\:bg-kumo-hairline:active:after{content:var(--tw-content);background-color:var(--color-kumo-hairline)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-kumo-base\/50:disabled{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-white,#fff))var(--lightningcss-dark,var(--color-kumo-neutral-925,oklch(17% 0 0))) 50%, transparent)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-kumo-base\/50:disabled{background-color:color-mix(in oklab, var(--color-kumo-base) 50%, transparent)}}.disabled\:bg-kumo-overlay:disabled{background-color:var(--color-kumo-overlay)}.disabled\:\!text-kumo-danger\/70:disabled{color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-700,oklch(50.5% .213 27.518)))var(--lightningcss-dark,var(--color-red-400,oklch(70.4% .191 22.216))) 70%, transparent)!important}@supports (color:color-mix(in lab, red, red)){.disabled\:\!text-kumo-danger\/70:disabled{color:color-mix(in oklab, var(--text-color-kumo-danger) 70%, transparent)!important}}.disabled\:\!text-kumo-default\/70:disabled{color:color-mix(in srgb, var(--lightningcss-light,var(--color-neutral-900,oklch(21% .006 285.885)))var(--lightningcss-dark,var(--color-neutral-100,oklch(97% 0 0))) 70%, transparent)!important}@supports (color:color-mix(in lab, red, red)){.disabled\:\!text-kumo-default\/70:disabled{color:color-mix(in oklab, var(--text-color-kumo-default) 70%, transparent)!important}}.disabled\:text-kumo-inactive\!:disabled{color:var(--text-color-kumo-inactive)!important}.disabled\:text-kumo-subtle:disabled{color:var(--text-color-kumo-subtle)}.disabled\:opacity-50:disabled{opacity:.5}:where(:focus) :is(.\*\:in-focus\:opacity-100>*){opacity:1}.has-data-\[variant\=inset\]\:bg-kumo-recessed:has([data-variant=inset]){background-color:var(--color-kumo-recessed)}.has-\[\:disabled\]\:cursor-not-allowed:has(:disabled){cursor:not-allowed}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[\[data-active\]\]\:bg-transparent:has([data-active]){background-color:#0000}@media (hover:hover){.has-\[\[data-active\]\]\:hover\:bg-\(--sidebar-active-bg\):has([data-active]):hover{background-color:var(--sidebar-active-bg)}}.has-\[\[data-checked\]\]\:border-kumo-danger:has([data-checked]){border-color:var(--color-kumo-danger)}.has-\[\[data-checked\]\]\:border-kumo-interact:has([data-checked]){border-color:var(--color-kumo-interact)}.has-\[\[data-checked\]\]\:bg-kumo-base:has([data-checked]){background-color:var(--color-kumo-base)}.has-\[\[data-checked\]\]\:bg-kumo-tint:has([data-checked]){background-color:var(--color-kumo-tint)}.has-\[\[data-disabled\]\]\:cursor-not-allowed:has([data-disabled]){cursor:not-allowed}.has-\[\[data-disabled\]\]\:opacity-50:has([data-disabled]){opacity:.5}.has-\[\[role\=switch\]\]\:flex:has([role=switch]){display:flex}.has-\[\[role\=switch\]\]\:grid-cols-\[auto_1fr\]:has([role=switch]){grid-template-columns:auto 1fr}.has-\[\[role\=switch\]\]\:flex-row-reverse:has([role=switch]){flex-direction:row-reverse}.has-\[\[role\=switch\]\]\:flex-wrap:has([role=switch]){flex-wrap:wrap}.has-\[\[role\=switch\]\]\:items-center:has([role=switch]){align-items:center}.has-\[input\[aria-invalid\=true\]\]\:ring-kumo-danger:has(:is(input[aria-invalid=true])){--tw-ring-color:var(--color-kumo-danger)}.has-\[input\[type\=checkbox\]\]\:flex:has(:is(input[type=checkbox])){display:flex}.has-\[input\[type\=checkbox\]\]\:grid-cols-\[auto_1fr\]:has(:is(input[type=checkbox])){grid-template-columns:auto 1fr}.has-\[input\[type\=checkbox\]\]\:flex-row-reverse:has(:is(input[type=checkbox])){flex-direction:row-reverse}.has-\[input\[type\=checkbox\]\]\:flex-wrap:has(:is(input[type=checkbox])){flex-wrap:wrap}.has-\[input\[type\=checkbox\]\]\:items-center:has(:is(input[type=checkbox])){align-items:center}.aria-selected\:font-medium[aria-selected=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.aria-selected\:text-kumo-default[aria-selected=true]{color:var(--text-color-kumo-default)}@media (hover:hover){.aria-selected\:hover\:bg-kumo-tint[aria-selected=true]:hover{background-color:var(--color-kumo-tint)}}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-ending-style\:scale-90[data-ending-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-ending-style\:opacity-0[data-ending-style]{opacity:0}.data-highlighted\:bg-kumo-danger\/5[data-highlighted]{background-color:color-mix(in srgb, var(--lightningcss-light,var(--color-red-500,oklch(63.7% .237 25.331)))var(--lightningcss-dark,var(--color-red-600,oklch(57.7% .245 27.325))) 5%, transparent)}@supports (color:color-mix(in lab, red, red)){.data-highlighted\:bg-kumo-danger\/5[data-highlighted]{background-color:color-mix(in oklab, var(--color-kumo-danger) 5%, transparent)}}.data-highlighted\:bg-kumo-overlay[data-highlighted]{background-color:var(--color-kumo-overlay)}.data-highlighted\:bg-kumo-tint[data-highlighted]{background-color:var(--color-kumo-tint)}.data-highlighted\:text-kumo-danger[data-highlighted]{color:var(--text-color-kumo-danger)}.data-instant\:duration-0[data-instant]{--tw-duration:0s;transition-duration:0s}.data-selected\:font-medium[data-selected]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-starting-style\:scale-90[data-starting-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-starting-style\:opacity-0[data-starting-style]{opacity:0}.data-\[behind\]\:pointer-events-none[data-behind]{pointer-events:none}.data-\[behind\]\:opacity-0[data-behind]{opacity:0}.data-\[checked\]\:bg-kumo-contrast[data-checked]{background-color:var(--color-kumo-contrast)}.data-\[checked\]\:ring-kumo-contrast[data-checked]{--tw-ring-color:var(--color-kumo-contrast)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:text-kumo-subtle[data-disabled]{color:var(--text-color-kumo-subtle)}.data-\[disabled\]\:opacity-0[data-disabled]{opacity:0}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\]\:opacity-60[data-disabled]{opacity:.6}.data-\[disabled\]\:data-highlighted\:bg-transparent[data-disabled][data-highlighted]{background-color:#0000}.data-\[ending-style\]\:scale-90[data-ending-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-\[ending-style\]\:opacity-0[data-ending-style]{opacity:0}.data-\[expanded\]\:pointer-events-auto[data-expanded]{pointer-events:auto}.data-\[expanded\]\:h-\[var\(--toast-height\)\][data-expanded]{height:var(--toast-height)}.data-\[expanded\]\:\[transform\:translateX\(var\(--toast-swipe-movement-x\)\)_translateY\(calc\(var\(--offset-y\)\)\)\][data-expanded]{transform:translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--offset-y)))}.data-\[expanded\]\:opacity-100[data-expanded]{opacity:1}.data-\[highlighted\]\:bg-kumo-overlay[data-highlighted]{background-color:var(--color-kumo-overlay)}.data-\[hovering\]\:opacity-100[data-hovering]{opacity:1}.data-\[indeterminate\]\:bg-kumo-contrast[data-indeterminate]{background-color:var(--color-kumo-contrast)}.data-\[indeterminate\]\:ring-kumo-contrast[data-indeterminate]{--tw-ring-color:var(--color-kumo-contrast)}.data-\[instant\]\:duration-0[data-instant]{--tw-duration:0s;transition-duration:0s}.data-\[limited\]\:opacity-0[data-limited]{opacity:0}.data-\[placeholder\]\:text-kumo-placeholder[data-placeholder]{color:var(--text-color-kumo-placeholder)}.data-\[rendered\=false\]\:scale-90[data-rendered=false]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-\[rendered\=false\]\:opacity-0[data-rendered=false]{opacity:0}.data-\[scrolling\]\:opacity-100[data-scrolling]{opacity:1}.data-\[side\=bottom\]\:-top-2[data-side=bottom]{top:calc(var(--spacing) * -2)}.data-\[side\=bottom\]\:top-\[-8px\][data-side=bottom]{top:-8px}.data-\[side\=left\]\:right-\[-13px\][data-side=left]{right:-13px}.data-\[side\=left\]\:rotate-90[data-side=left]{rotate:90deg}.data-\[side\=right\]\:left-\[-13px\][data-side=right]{left:-13px}.data-\[side\=right\]\:-rotate-90[data-side=right]{rotate:-90deg}.data-\[side\=top\]\:-bottom-2[data-side=top]{bottom:calc(var(--spacing) * -2)}.data-\[side\=top\]\:bottom-\[-8px\][data-side=top]{bottom:-8px}.data-\[side\=top\]\:rotate-180[data-side=top]{rotate:180deg}.data-\[starting-style\]\:scale-90[data-starting-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-\[starting-style\]\:\[transform\:translateY\(150\%\)\][data-starting-style]{transform:translateY(150%)}.data-\[starting-style\]\:opacity-0[data-starting-style]{opacity:0}.data-\[state\=open\]\:bg-kumo-base[data-state=open]{background-color:var(--color-kumo-base)}.data-\[state\=open\]\:bg-kumo-tint[data-state=open]{background-color:var(--color-kumo-tint)}.data-\[ending-style\]\:data-\[swipe-direction\=down\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)\+150\%\)\)\][data-ending-style][data-swipe-direction=down],.data-\[expanded\]\:data-\[ending-style\]\:data-\[swipe-direction\=down\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)\+150\%\)\)\][data-expanded][data-ending-style][data-swipe-direction=down]{transform:translateY(calc(var(--toast-swipe-movement-y) + 150%))}.data-\[ending-style\]\:data-\[swipe-direction\=left\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)-150\%\)\)_translateY\(var\(--offset-y\)\)\][data-ending-style][data-swipe-direction=left],.data-\[expanded\]\:data-\[ending-style\]\:data-\[swipe-direction\=left\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)-150\%\)\)_translateY\(var\(--offset-y\)\)\][data-expanded][data-ending-style][data-swipe-direction=left]{transform:translateX(calc(var(--toast-swipe-movement-x) - 150%)) translateY(var(--offset-y))}.data-\[ending-style\]\:data-\[swipe-direction\=right\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)\+150\%\)\)_translateY\(var\(--offset-y\)\)\][data-ending-style][data-swipe-direction=right],.data-\[expanded\]\:data-\[ending-style\]\:data-\[swipe-direction\=right\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)\+150\%\)\)_translateY\(var\(--offset-y\)\)\][data-expanded][data-ending-style][data-swipe-direction=right]{transform:translateX(calc(var(--toast-swipe-movement-x) + 150%)) translateY(var(--offset-y))}.data-\[ending-style\]\:data-\[swipe-direction\=up\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)-150\%\)\)\][data-ending-style][data-swipe-direction=up],.data-\[expanded\]\:data-\[ending-style\]\:data-\[swipe-direction\=up\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)-150\%\)\)\][data-expanded][data-ending-style][data-swipe-direction=up]{transform:translateY(calc(var(--toast-swipe-movement-y) - 150%))}.data-\[unchecked\]\:invisible[data-unchecked]{visibility:hidden}@supports (corner-shape:squircle){.supports-\[corner-shape\:squircle\]\:rounded-\[10px\]{border-radius:10px}}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:right-8{right:calc(var(--spacing) * 8)}.sm\:bottom-8{bottom:calc(var(--spacing) * 8)}.sm\:block{display:block}.sm\:contents{display:contents}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-\[32rem\]{width:32rem}.sm\:w-\[48rem\]{width:48rem}.sm\:w-\[340px\]{width:340px}}@media (width>=48rem){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.md\:grid-cols-\[2fr_1fr\]{grid-template-columns:2fr 1fr}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:pb-0{padding-bottom:0}}@media (width>=64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-8{gap:calc(var(--spacing) * 8)}.lg\:px-10{padding-inline:calc(var(--spacing) * 10)}.lg\:py-9{padding-block:calc(var(--spacing) * 9)}}@media (width>=80rem){.xl\:sticky{position:sticky}.xl\:block{display:block}.xl\:hidden{display:none}.xl\:w-\[380px\]{width:380px}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:gap-6{gap:calc(var(--spacing) * 6)}.xl\:gap-8{gap:calc(var(--spacing) * 8)}}@media (prefers-color-scheme:dark){.dark\:bg-blue-300{background-color:var(--color-blue-300)}.dark\:bg-blue-600{background-color:var(--color-blue-600)}.dark\:bg-kumo-base{background-color:var(--color-kumo-base)}.dark\:bg-neutral-400{background-color:var(--color-neutral-400)}.dark\:bg-neutral-700{background-color:var(--color-neutral-700)}.dark\:ring-blue-500{--tw-ring-color:var(--color-blue-500)}.dark\:ring-neutral-600{--tw-ring-color:var(--color-neutral-600)}.dark\:ring-neutral-700{--tw-ring-color:var(--color-neutral-700)}}.\[\&_\[data-toast-icon\]\]\:text-kumo-danger [data-toast-icon]{color:var(--text-color-kumo-danger)}.\[\&_\[data-toast-icon\]\]\:text-kumo-info [data-toast-icon]{color:var(--text-color-kumo-info)}.\[\&_\[data-toast-icon\]\]\:text-kumo-success [data-toast-icon]{color:var(--text-color-kumo-success)}.\[\&_\[data-toast-icon\]\]\:text-kumo-warning [data-toast-icon]{color:var(--text-color-kumo-warning)}.\[\&_\[data-toast-title\]\]\:text-kumo-danger [data-toast-title]{color:var(--text-color-kumo-danger)}.\[\&_\[data-toast-title\]\]\:text-kumo-info [data-toast-title]{color:var(--text-color-kumo-info)}.\[\&_\[data-toast-title\]\]\:text-kumo-success [data-toast-title]{color:var(--text-color-kumo-success)}.\[\&_\[data-toast-title\]\]\:text-kumo-warning [data-toast-title]{color:var(--text-color-kumo-warning)}.\[\&_code\]\:\!m-0 code{margin:0!important}.\[\&_code\]\:\!border-0 code{border-style:var(--tw-border-style)!important;border-width:0!important}.\[\&_code\]\:\!bg-transparent code{background-color:#0000!important}.\[\&_code\]\:\!p-0 code{padding:0!important}.has-data-\[slot\=input-group-suffix\]\:\[\&_input\]\:field-sizing-content:has([data-slot=input-group-suffix]) input{field-sizing:content}.has-data-\[slot\=input-group-suffix\]\:\[\&_input\]\:max-w-full:has([data-slot=input-group-suffix]) input{max-width:100%}.has-data-\[slot\=input-group-suffix\]\:\[\&_input\]\:grow-0:has([data-slot=input-group-suffix]) input{flex-grow:0}.has-data-\[slot\=input-group-suffix\]\:\[\&_input\]\:pr-0:has([data-slot=input-group-suffix]) input{padding-right:0}.has-\[\[data-slot\=input-group-addon-end\]\]\:\[\&_input\]\:pr-1:has([data-slot=input-group-addon-end]) input{padding-right:var(--spacing)}.has-\[\[data-slot\=input-group-addon-end\]\]\:\[\&_input\]\:pr-1\.5:has([data-slot=input-group-addon-end]) input{padding-right:calc(var(--spacing) * 1.5)}.has-\[\[data-slot\=input-group-addon-end\]\]\:\[\&_input\]\:pr-2:has([data-slot=input-group-addon-end]) input{padding-right:calc(var(--spacing) * 2)}.has-\[\[data-slot\=input-group-addon-end\]\]\:\[\&_input\]\:pr-2\.5:has([data-slot=input-group-addon-end]) input{padding-right:calc(var(--spacing) * 2.5)}.has-\[\[data-slot\=input-group-addon-start\]\]\:\[\&_input\]\:pl-1:has([data-slot=input-group-addon-start]) input{padding-left:var(--spacing)}.has-\[\[data-slot\=input-group-addon-start\]\]\:\[\&_input\]\:pl-1\.5:has([data-slot=input-group-addon-start]) input{padding-left:calc(var(--spacing) * 1.5)}.has-\[\[data-slot\=input-group-addon-start\]\]\:\[\&_input\]\:pl-2:has([data-slot=input-group-addon-start]) input{padding-left:calc(var(--spacing) * 2)}.has-\[\[data-slot\=input-group-addon-start\]\]\:\[\&_input\]\:pl-2\.5:has([data-slot=input-group-addon-start]) input{padding-left:calc(var(--spacing) * 2.5)}.has-\[\[data-slot\=input-group-suffix\]\]\:\[\&_input\]\:\[field-sizing\:content\]:has([data-slot=input-group-suffix]) input{field-sizing:content}.has-\[\[data-slot\=input-group-suffix\]\]\:\[\&_input\]\:max-w-full:has([data-slot=input-group-suffix]) input{max-width:100%}.has-\[\[data-slot\=input-group-suffix\]\]\:\[\&_input\]\:grow-0:has([data-slot=input-group-suffix]) input{flex-grow:0}.has-\[\[data-slot\=input-group-suffix\]\]\:\[\&_input\]\:pr-0:has([data-slot=input-group-suffix]) input{padding-right:0}.\[\&_td\]\:border-b td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_td\]\:border-kumo-fill td{border-color:var(--color-kumo-fill)}.\[\&_td\]\:p-3 td{padding:calc(var(--spacing) * 3)}.\[\&_th\]\:sticky th{position:sticky}.\[\&_th\]\:top-0 th{top:0}.\[\&_th\]\:z-1 th{z-index:1}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-kumo-fill th{border-color:var(--color-kumo-fill)}.\[\&_th\]\:bg-kumo-base th{background-color:var(--color-kumo-base)}.\[\&_th\]\:bg-kumo-elevated th{background-color:var(--color-kumo-elevated)}.\[\&_th\]\:p-3 th{padding:calc(var(--spacing) * 3)}.\[\&_th\]\:py-2 th{padding-block:calc(var(--spacing) * 2)}.\[\&_th\]\:text-base th{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_tr\:last-child_td\]\:border-b-0 tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\:focus-within\>span\]\:ring-kumo-focus:focus-within>span{--tw-ring-color:var(--color-kumo-focus)}.\[\&\:hover\>span\]\:ring-kumo-hairline:hover>span{--tw-ring-color:var(--color-kumo-hairline)}.\[\&\>label\]\:flex-1>label{flex:1}.\[\&\>li\>a\]\:pl-7>li>a,.\[\&\>li\>button\]\:pl-7>li>button{padding-left:calc(var(--spacing) * 7)}.\[\&\>pre\]\:\!m-0>pre{margin:0!important}.\[\&\>pre\]\:\!rounded-none>pre{border-radius:0!important}.\[\&\>pre\]\:\!border-0>pre{border-style:var(--tw-border-style)!important;border-width:0!important}.\[\&\>pre\]\:\!bg-transparent>pre{background-color:#0000!important}.\[\&\>pre\]\:\!p-4>pre{padding:calc(var(--spacing) * 4)!important}.\[\&\>pre\]\:p-2\.5>pre{padding:calc(var(--spacing) * 2.5)}.\[\&\>pre\]\:p-2\.5\!>pre{padding:calc(var(--spacing) * 2.5)!important}.\[\&\>pre\]\:p-4>pre{padding:calc(var(--spacing) * 4)}.\[\&\>pre\]\:font-mono>pre{font-family:var(--font-mono)}.\[\&\>pre\]\:text-sm>pre{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&\>pre\]\:leading-relaxed>pre{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&\>span\]\:ring-kumo-danger>span{--tw-ring-color:var(--color-kumo-danger)}.\[\&\[data-ending-style\]\:not\(\[data-limited\]\)\:not\(\[data-swipe-direction\]\)\]\:\[transform\:translateY\(150\%\)\][data-ending-style]:not([data-limited]):not([data-swipe-direction]){transform:translateY(150%)}[data-panel-open] .\[\[data-panel-open\]_\&\]\:rotate-180{rotate:180deg}[data-sidebar=group]:first-child .\[\[data-sidebar\=group\]\:first-child_\&\]\:my-0{margin-block:0}[data-sidebar=group]:first-child .\[\[data-sidebar\=group\]\:first-child_\&\]\:mt-2{margin-top:calc(var(--spacing) * 2)}[data-sidebar=group]:first-child .\[\[data-sidebar\=group\]\:first-child_\&\]\:border-transparent{border-color:#0000}}@keyframes right{to{transform:translate(100%)}}.float{animation:5s linear infinite alternate float}@keyframes float{to{transform:translate(5px,15px)}}@keyframes refresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}to{transform:scale(1)}}.animate-bounce-in{animation:.4s ease-out bounce-in}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes kumo-chart-wave{0%{transform:translate(0)}to{transform:translate(-400px)}}@keyframes toast-bump{0%{transform:scale(1)}20%{transform:scale(1.02)}to{transform:scale(1)}}.animate-toast-bump{transform-origin:50%;animation:.4s cubic-bezier(.34,1.56,.64,1) toast-bump}@property --fade-left-n{syntax:"";inherits:false;initial-value:0}@property --fade-right-n{syntax:"";inherits:false;initial-value:0}@keyframes scroll-fade-x-left{0%{--fade-left-n:0}to{--fade-left-n:1}}@keyframes scroll-fade-x-right{0%{--fade-right-n:1}to{--fade-right-n:0}}@supports (animation-timeline:scroll()){[data-overflowing]{-webkit-mask-image:linear-gradient(to right, transparent, white calc(var(--fade-left-n) * var(--scroll-fade-width,3rem)), white calc(100% - var(--fade-right-n) * var(--scroll-fade-width,3rem)), transparent);-webkit-mask-image:linear-gradient(to right, transparent, white calc(var(--fade-left-n) * var(--scroll-fade-width,3rem)), white calc(100% - var(--fade-right-n) * var(--scroll-fade-width,3rem)), transparent);-webkit-mask-image:linear-gradient(to right, transparent, white calc(var(--fade-left-n) * var(--scroll-fade-width,3rem)), white calc(100% - var(--fade-right-n) * var(--scroll-fade-width,3rem)), transparent);mask-image:linear-gradient(to right, transparent, white calc(var(--fade-left-n) * var(--scroll-fade-width,3rem)), white calc(100% - var(--fade-right-n) * var(--scroll-fade-width,3rem)), transparent);animation-name:scroll-fade-x-left,scroll-fade-x-right;animation-timing-function:linear,linear;animation-timeline:scroll(self x);animation-range:0 var(--scroll-fade-range,3rem), calc(100% - var(--scroll-fade-range,3rem)) 100%;animation-fill-mode:both}}.kumo-tabs-list{overscroll-behavior-x:contain}@supports (animation-timeline:scroll()){.kumo-tabs-list{scrollbar-width:none;-ms-overflow-style:none}.kumo-tabs-list::-webkit-scrollbar{display:none}}[data-mode=dark] .kumo-tooltip-popup,[data-mode=dark] .kumo-popover-popup{outline-offset:-1px}.kumo-input-placeholder::placeholder{color:var(--text-color-kumo-placeholder)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}:where(a[href],button,input[type=button],input[type=checkbox],input[type=radio],input[type=submit],input[type=reset],label[for],select,summary,[role=button],[role=link],[role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=option],[role=tab],[role=checkbox],[role=radio],[role=switch]):where([data-kumo-component],[data-kumo-part]):where(:not(:disabled)):where(:not([disabled])):where(:not([aria-disabled=true])):where(:not([data-disabled])){cursor:pointer}.skeleton{background:linear-gradient(90deg,#0000 0%,#0000000d 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton}[data-mode=dark] .skeleton{background:linear-gradient(90deg,#0000 0%,#ffffff0d 50%,#0000 100%)}.animate-refresh{animation:1s linear infinite refresh}.rdp-root{font-variant-numeric:tabular-nums;--rdp-cell-padding:2px;--rdp-day-height:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day-width:calc(2rem + var(--rdp-cell-padding) * 2);--rdp-day_button-border-radius:.375rem;--rdp-day_button-border:none;--rdp-day_button-height:2rem;--rdp-day_button-width:2rem;--rdp-selected-border:none;--rdp-disabled-opacity:.4;--rdp-outside-opacity:.4;--rdp-dropdown-gap:.5rem;--rdp-months-gap:1rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem;--rdp-nav-height:2.5rem;--rdp-week_number-border-radius:.375rem;--rdp-week_number-border:none;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weekday-opacity:1;--rdp-weekday-padding:.5rem 0;--rdp-gradient-direction:90deg;--rdp-animation_duration:.2s;--rdp-animation_timing:ease-out;--rdp-accent-color:oklch(20.5% 0 0);--rdp-accent-background-color:oklch(92.2% 0 0);--rdp-range_middle-background-color:oklch(92.2% 0 0);--rdp-range_middle-color:oklch(21% .006 285.885);--rdp-range_start-color:oklch(97% 0 0);--rdp-range_start-date-background-color:oklch(20.5% 0 0);--rdp-range_end-color:oklch(97% 0 0);--rdp-range_end-date-background-color:oklch(20.5% 0 0);--rdp-today-color:oklch(54.6% .215 262.881);--rdp-day-color:oklch(21% .006 285.885);--rdp-day-color-subtle:oklch(55.6% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(14.5% 0 0/.1);--rdp-hover-bg:oklch(90% 0 0);--rdp-fill-hover-bg:oklch(87% 0 0);--rdp-focus-ring:var(--color-kumo-brand);box-sizing:border-box;position:relative}[data-mode=dark] .rdp-root{--rdp-accent-color:oklch(97% 0 0);--rdp-accent-background-color:oklch(35% 0 0);--rdp-range_middle-background-color:oklch(28% 0 0);--rdp-range_middle-color:oklch(97% 0 0);--rdp-range_start-color:oklch(20.5% 0 0);--rdp-range_start-date-background-color:oklch(97% 0 0);--rdp-range_end-color:oklch(20.5% 0 0);--rdp-range_end-date-background-color:oklch(97% 0 0);--rdp-today-color:oklch(62.3% .214 259.815);--rdp-day-color:oklch(97% 0 0);--rdp-day-color-subtle:oklch(70% 0 0);--rdp-nav-bg:transparent;--rdp-nav-border:oklch(26.9% 0 0);--rdp-hover-bg:oklch(20% 0 0);--rdp-fill-hover-bg:oklch(25% 0 0);--rdp-focus-ring:var(--color-kumo-brand)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root *{box-sizing:border-box}.rdp-root thead{background:0 0}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center;padding:var(--rdp-cell-padding)}.rdp-day_button{cursor:pointer;font:inherit;color:var(--rdp-day-color);width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;outline:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:.8125rem;transition:background-color .15s,color .15s;display:flex}.rdp-day_button:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-day_button:hover{background-color:var(--rdp-hover-bg)}.rdp-day_button:disabled{cursor:not-allowed}.rdp-caption_label{z-index:1;white-space:nowrap;color:var(--rdp-day-color);border:0;align-items:center;font-weight:600;display:inline-flex;position:relative}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:var(--rdp-day-color);appearance:none;box-shadow:inset 0 0 0 1px var(--rdp-nav-border);border:none;border-radius:.375rem;outline:none;justify-content:center;align-items:center;margin:0;padding:0;transition:background-color .15s,box-shadow .15s;display:inline-flex;position:relative;background:0 0!important;width:1.5rem!important;height:1.5rem!important}.rdp-button_next:hover,.rdp-button_previous:hover{background:var(--rdp-hover-bg)!important}.rdp-button_next:focus-visible,.rdp-button_previous:focus-visible{box-shadow:inset 0 0 0 2px var(--rdp-focus-ring)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:not-allowed;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-day-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-weight:600;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{height:var(--rdp-nav-height);inset-inline-start:0;display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{height:var(--rdp-nav-height);inset-inline-end:0;justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse;border-spacing:0}.rdp-nav{height:var(--rdp-nav-height);align-items:center;gap:.25rem;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:center;color:var(--rdp-day-color-subtle);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:center;color:var(--rdp-day-color-subtle);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside):not(.rdp-selected) .rdp-day_button{color:var(--rdp-today-color);font-weight:600}.rdp-selected .rdp-day_button{background-color:var(--rdp-accent-color);color:var(--rdp-range_start-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-selected .rdp-day_button:hover{background-color:var(--rdp-accent-color)}.rdp-outside .rdp-day_button{opacity:var(--rdp-outside-opacity);color:var(--rdp-day-color-subtle)}.rdp-disabled:not(.rdp-selected) .rdp-day_button{opacity:var(--rdp-disabled-opacity);cursor:not-allowed}.rdp-disabled .rdp-day_button:hover{background-color:#0000}.rdp-hidden{visibility:hidden}.rdp-day.rdp-range_start:not(.rdp-range_end){background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius) 0 0 var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-day.rdp-range_start .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-day.rdp-range_middle .rdp-day_button{color:var(--rdp-range_middle-color);background-color:#0000}.rdp-day.rdp-range_middle .rdp-day_button:hover{background-color:var(--rdp-fill-hover-bg);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_end:not(.rdp-range_start){background-color:var(--rdp-range_end-date-background-color);border-radius:0 var(--rdp-day_button-border-radius) var(--rdp-day_button-border-radius) 0}.rdp-day.rdp-range_end .rdp-day_button{color:var(--rdp-range_end-color);background-color:#0000}.rdp-day.rdp-range_end .rdp-day_button:hover{background-color:#0000}.rdp-day.rdp-range_start.rdp-range_end{background-color:var(--rdp-range_start-date-background-color);border-radius:var(--rdp-day_button-border-radius)}.rdp-day.rdp-range_start.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:#0000}.rdp-focusable{cursor:pointer}.rdp-footer{width:0;min-width:100%;padding-top:.5rem}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.kumo-shiki pre{background-color:#0000!important}[data-mode=dark] .kumo-shiki span:not(.line-highlighted){color:var(--shiki-dark)!important;background-color:#0000!important}[data-mode=dark] .kumo-shiki .line-highlighted{color:var(--shiki-dark)!important}.kumo-shiki code{width:fit-content;min-width:100%;padding-right:1rem;display:block}.kumo-shiki{--kumo-code-highlight-bg:#0000000d}[data-mode=dark] .kumo-shiki{--kumo-code-highlight-bg:#ffffff14}.kumo-shiki .line.line-highlighted{background-color:var(--kumo-code-highlight-bg);width:calc(100% + 2rem);margin:0 -1rem;padding:0 1rem;display:inline-block}.kumo-line-numbers{padding-left:.75rem;line-height:1.625}@layer theme,components;@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-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}:root{--bg:var(--color-kumo-canvas);--surface:var(--color-kumo-elevated);--surface-hover:var(--color-kumo-fill-hover);--border:var(--color-kumo-hairline);--text:var(--text-color-kumo-default);--text-muted:var(--text-color-kumo-subtle);--accent:var(--color-kumo-brand);--on-accent:#fff;--green:var(--text-color-kumo-success);--yellow:var(--text-color-kumo-warning);--red:var(--text-color-kumo-danger)}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.muted{color:var(--text-muted);font-size:12px}.spacer{flex:1}header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 20px;display:flex}header h1{margin:0;font-size:16px;font-weight:600}header a{color:var(--text-color-kumo-link);font-size:13px;text-decoration:none}#target-bar,#action-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex}#target-bar{align-items:flex-end}.target-input{flex:1;max-width:480px}#action-bar{z-index:20;position:sticky;top:0}#target-bar label{color:var(--text-muted);font-size:13px}.playground-segmented{flex:none}.playground-segmented>div{box-shadow:none;border-radius:8px}.playground-segmented [role=tablist]{background:var(--color-kumo-fill);border:1px solid var(--border);white-space:nowrap;border-radius:8px;align-items:stretch;gap:2px;width:max-content;max-width:100%;height:34px;padding:3px;display:flex;overflow-x:auto}.playground-segmented [role=tab]{min-height:26px;color:var(--text-muted);background:0 0;border-radius:5px;margin:0;padding:4px 12px;font-size:12px;font-weight:600}.playground-segmented [role=tab][aria-selected=true]{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 2px color-mix(in srgb, var(--text) 20%, transparent)}.playground-segmented [role=tab][aria-selected=false]:hover{background:var(--surface-hover);color:var(--text)}.playground-segmented [role=presentation]{display:none}#setup-panel{border-bottom:1px solid var(--border);background:var(--surface)}#setup-panel summary{cursor:pointer;color:var(--text-muted);padding:8px 20px;font-size:13px}#setup-logs{white-space:pre-wrap;max-height:200px;color:var(--text-muted);margin:0;padding:0 20px 12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;overflow:auto}main{background:var(--border);grid-template-columns:1fr 1fr;gap:1px;min-height:60vh;display:grid}@media (width<=900px){main{grid-template-columns:1fr}}section{background:var(--bg);padding:16px 20px}#json-container{flex-direction:column;gap:6px;display:flex}.panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel-head h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:13px;font-weight:600}.response-title{align-items:center;gap:8px;display:flex}input[type=text],input[type=password],input[type=url],input[type=number],select,textarea{background:var(--color-kumo-control);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:6px 10px;font-family:inherit;font-size:13px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}input[type=checkbox]{width:auto;margin-right:6px}input[type=file]{color:var(--text-muted);width:auto;font-size:12px}input[type=file]::file-selector-button{background:var(--surface-hover);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;margin-right:8px;padding:4px 10px;font-size:12px}.field{margin-bottom:14px}.field label{margin-bottom:4px;font-size:13px;font-weight:500;display:block}.field label .req{color:var(--red)}.field .desc{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.deprecated-tag{color:var(--yellow);font-size:12px;font-weight:400}.field-error{color:var(--red);margin-top:4px;font-size:12px;display:block}.file-widget{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.file-widget .file-name{color:var(--green);font-size:12px}#webhook-options{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 20px;display:flex}#webhook-options label{color:var(--text-muted);align-items:center;font-size:12px;display:flex}.ace-json{border:1px solid var(--border);border-radius:6px;width:100%;min-height:120px;position:relative}.ace-json>div:first-child{width:100%;height:100%}.editor-copy{z-index:6;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;opacity:0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;transition:opacity .12s;position:absolute;top:6px;right:14px}.ace-json:hover .editor-copy,.editor-copy:focus-visible{opacity:.95}.editor-copy:hover{color:var(--text);background:var(--surface-hover)}.ace-output{height:60vh;min-height:280px}.ace-inspector{min-height:80px;max-height:320px}.ace-timeline{min-height:80px;max-height:240px;margin-top:6px}.ace-field{height:140px}.ace_editor{font-family:SF Mono,Monaco,Consolas,Liberation Mono,monospace!important;line-height:1.5!important}.metrics-table{border-collapse:collapse;width:100%;font-size:12px}.metrics-table td{border-bottom:1px solid var(--border);padding:3px 10px 3px 0}.metrics-table td:first-child{color:var(--text-muted)}.notice{background:var(--color-kumo-warning-tint);border:1px solid var(--color-kumo-warning);color:var(--text-color-kumo-warning);border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:none}.notice.visible{display:block}.error-container{background:var(--color-kumo-danger-tint);border:1px solid var(--color-kumo-danger);color:var(--text-color-kumo-danger);border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.field-heading{align-items:center;gap:6px;margin-bottom:4px;display:flex}.field-heading label{margin:0}.field-disabled{opacity:.55;pointer-events:none}.input-media{border:1px solid var(--border);border-radius:6px;max-width:100%;max-height:240px;margin-top:8px;display:block}.empty-output{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:6px;padding:32px 16px}.text-output{background:var(--surface);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;min-height:120px;margin:0;padding:10px}.inspector-logs{background:var(--surface);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;min-height:220px;max-height:60vh;margin:0;padding:12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;overflow:auto}.request-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.request-summary>div{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:10px}.request-summary dt{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.request-summary dd{overflow-wrap:anywhere;margin:4px 0 0;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.method-badge{background:var(--color-kumo-info-tint);color:var(--text-color-kumo-info);border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.inspector-document{margin-bottom:10px}.inspector-document>summary{color:var(--text-muted);cursor:pointer;margin-bottom:6px;font-size:12px;font-weight:600}.trace-timeline{margin:0;padding:2px 0 2px 92px;list-style:none;position:relative}.trace-timeline:before{background:var(--border);content:"";width:1px;position:absolute;top:8px;bottom:8px;left:70px}.trace-timeline>li{grid-template-columns:70px minmax(0,1fr);gap:8px;min-height:42px;padding:0 0 14px;display:grid;position:relative}.trace-timeline>li:before{background:var(--accent);border:2px solid var(--bg);width:9px;height:9px;box-shadow:0 0 0 1px var(--border);content:"";border-radius:50%;position:absolute;top:5px;left:-26px}.trace-timeline time{width:58px;color:var(--text-muted);text-align:right;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;position:absolute;top:1px;left:-92px}.trace-kind{background:var(--color-kumo-fill);width:fit-content;height:fit-content;color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.trace-timeline strong{font-size:12px;font-weight:600}.trace-timeline details{margin-top:4px}.trace-timeline summary{color:var(--text-muted);cursor:pointer;font-size:11px}.trace-error:before{background:var(--red)!important}.trace-response:before{background:var(--green)!important}@media (width<=600px){header{flex-wrap:wrap;padding:8px 12px}#target-bar,#action-bar,#webhook-options,section{padding-inline:12px}#action-bar{position:static}}@media (prefers-reduced-motion:reduce){.streaming-cursor{animation:none}}.output-item{margin-bottom:10px}.output-item img{border:1px solid var(--border);border-radius:6px;max-width:100%}.output-item audio,.output-item video{width:100%;max-width:500px}.output-item pre{background:var(--surface);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;margin:0;padding:10px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;overflow-x:auto}.output-item a{color:var(--text-color-kumo-link);font-size:13px}.streaming-cursor{background:var(--accent);vertical-align:text-bottom;width:8px;height:14px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}} diff --git a/pkg/cli/playground/assets/index-CCIhad_V.js b/pkg/cli/playground/assets/index-CCIhad_V.js new file mode 100644 index 0000000000..d72a5ce0d6 --- /dev/null +++ b/pkg/cli/playground/assets/index-CCIhad_V.js @@ -0,0 +1,26 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/JsonEditor-C5A1n0-f.js","assets/rolldown-runtime-Bh1tDfsg.js","assets/preload-helper-cM5i_iDb.js"])))=>i.map(i=>d[i]); +import{n as e,t}from"./rolldown-runtime-Bh1tDfsg.js";import{n,r,t as i}from"./preload-helper-cM5i_iDb.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var a=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),o=t(((e,t)=>{t.exports=a()})),s=t((e=>{var t=r();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()})),l=t((e=>{var t=o(),n=r(),i=c();function a(e){var t=`https://react.dev/errors/`+e;if(1z||(e.current=ee[z],ee[z]=null,z--)}function H(e,t){z++,ee[z]=e.current,e.current=t}var te=B(null),U=B(null),ne=B(null),re=B(null);function ie(e,t){switch(H(ne,t),H(U,e),H(te,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}V(te),H(te,e)}function ae(){V(te),V(U),V(ne)}function oe(e){e.memoizedState!==null&&H(re,e);var t=te.current,n=Hd(t,e.type);t!==n&&(H(U,e),H(te,n))}function se(e){U.current===e&&(V(te),V(U)),re.current===e&&(V(re),Qf._currentValue=R)}var ce,le;function ue(e){if(ce===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ce=t&&t[1]||``,le=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{de=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ue(n):``}function pe(e,t){switch(e.tag){case 26:case 27:case 5:return ue(e.type);case 16:return ue(`Lazy`);case 13:return e.child!==t&&t!==null?ue(`Suspense Fallback`):ue(`Suspense`);case 19:return ue(`SuspenseList`);case 0:case 15:return fe(e.type,!1);case 11:return fe(e.type.render,!1);case 1:return fe(e.type,!0);case 31:return ue(`Activity`);default:return``}}function me(e){try{var t=``,n=null;do t+=pe(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var he=Object.prototype.hasOwnProperty,ge=t.unstable_scheduleCallback,_e=t.unstable_cancelCallback,ve=t.unstable_shouldYield,ye=t.unstable_requestPaint,be=t.unstable_now,xe=t.unstable_getCurrentPriorityLevel,Se=t.unstable_ImmediatePriority,Ce=t.unstable_UserBlockingPriority,we=t.unstable_NormalPriority,Te=t.unstable_LowPriority,Ee=t.unstable_IdlePriority,De=t.log,Oe=t.unstable_setDisableYieldValue,ke=null,Ae=null;function je(e){if(typeof De==`function`&&Oe(e),Ae&&typeof Ae.setStrictMode==`function`)try{Ae.setStrictMode(ke,e)}catch{}}var Me=Math.clz32?Math.clz32:Fe,Ne=Math.log,Pe=Math.LN2;function Fe(e){return e>>>=0,e===0?32:31-(Ne(e)/Pe|0)|0}var Ie=256,W=262144,Le=4194304;function Re(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ze(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Re(n))):i=Re(o):i=Re(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Re(n))):i=Re(o)):i=Re(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Be(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ve(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function He(){var e=Le;return Le<<=1,!(Le&62914560)&&(Le=4194304),e}function Ue(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function We(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ge(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),en=!1;if($t)try{var tn={};Object.defineProperty(tn,"passive",{get:function(){en=!0}}),window.addEventListener(`test`,tn,tn),window.removeEventListener(`test`,tn,tn)}catch{en=!1}var nn=null,rn=null,an=null;function on(){if(an)return an;var e,t=rn,n=t.length,r,i=`value`in nn?nn.value:nn.textContent,a=i.length;for(e=0;e=Rn),Vn=` `,Hn=!1;function Un(e,t){switch(e){case`keyup`:return In.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Wn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Gn=!1;function Kn(e,t){switch(e){case`compositionend`:return Wn(t);case`keypress`:return t.which===32?(Hn=!0,Vn):null;case`textInput`:return e=t.data,e===Vn&&Hn?null:e;default:return null}}function qn(e,t){if(Gn)return e===`compositionend`||!Ln&&Un(e,t)?(e=on(),an=rn=nn=null,Gn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=hr(n)}}function _r(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_r(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function vr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ot(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ot(e.document)}return t}function yr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var br=$t&&`documentMode`in document&&11>=document.documentMode,xr=null,Sr=null,Cr=null,wr=!1;function Tr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;wr||xr==null||xr!==Ot(r)||(r=xr,`selectionStart`in r&&yr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Cr&&mr(Cr,r)||(Cr=r,r=Td(Sr,`onSelect`),0>=o,i-=o,gi=1<<32-Me(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Y&&vi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),Y&&vi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Y&&vi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),Y&&vi(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&va(l)===r.type){n(e,r.sibling),c=i(r,o.props),wa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=ii(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ri(o.type,o.key,o.props,null,e.mode,c),wa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=si(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=va(o),b(e,r,o,c)}if(F(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ca(o),c);if(o.$$typeof===C)return b(e,r,Ki(e,o),c);Ta(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=ai(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Sa=0;var i=b(e,t,n,r);return X=null,i}catch(t){if(t===fa||t===ma)throw t;var a=$r(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Da=Ea(!0),Oa=Ea(!1),ka=!1;function Aa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ja(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ma(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Na(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,jl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Xr(e),Yr(e,null,n),t}return Kr(e,r,t,n),Xr(e)}function Pa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qe(e,n)}}function Fa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ia=!1;function La(){if(Ia){var e=ra;if(e!==null)throw e}}function Z(e,t,n,r){Ia=!1;var i=e.updateQueue;ka=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Pl&f)===f:(r&f)===f){f!==0&&f===na&&(Ia=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:ka=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Hl|=o,e.lanes=o,e.memoizedState=d}}function Ra(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=I.T,s={};I.T=s,Ts(e,!1,t,n);try{var c=i(),l=I.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ws(e,t,oa(c,r),uu(e)):ws(e,t,r,uu(e))}catch(n){ws(e,t,{then:function(){},status:`rejected`,reason:n},uu())}finally{L.p=a,o!==null&&s.types!==null&&(o.types=s.types),I.T=o}}function ms(){}function hs(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=gs(e).queue;ps(e,i,t,R,n===null?ms:function(){return _s(e),n(r)})}function gs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:R,baseState:R,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Eo,lastRenderedState:R},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Eo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function _s(e){var t=gs(e);t.next===null&&(t=e.alternate.memoizedState),ws(e,t.next.queue,{},uu())}function vs(){return Gi(Qf)}function ys(){return xo().memoizedState}function bs(){return xo().memoizedState}function xs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=uu();e=Ma(n);var r=Na(t,e,n);r!==null&&(fu(r,t,n),Pa(r,t,n)),t={cache:Qi()},e.payload=t;return}t=t.return}}function Ss(e,t,n){var r=uu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Es(e)?Ds(t,n):(n=qr(e,t,n,r),n!==null&&(fu(n,e,r),Os(n,t,r)))}function Cs(e,t,n){ws(e,t,n,uu())}function ws(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Es(e))Ds(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,pr(s,o))return Kr(e,t,i,0),Ml===null&&Gr(),!1}catch{}if(n=qr(e,t,i,r),n!==null)return fu(n,e,r),Os(n,t,r),!0}return!1}function Ts(e,t,n,r){if(r={lane:2,revertLane:ld(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Es(e)){if(t)throw Error(a(479))}else t=qr(e,n,r,2),t!==null&&fu(t,e,2)}function Es(e){var t=e.alternate;return e===Q||t!==null&&t===Q}function Ds(e,t){io=ro=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Os(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qe(e,n)}}var ks={readContext:Gi,use:wo,useCallback:uo,useContext:uo,useEffect:uo,useImperativeHandle:uo,useLayoutEffect:uo,useInsertionEffect:uo,useMemo:uo,useReducer:uo,useRef:uo,useState:uo,useDebugValue:uo,useDeferredValue:uo,useTransition:uo,useSyncExternalStore:uo,useId:uo,useHostTransitionStatus:uo,useFormState:uo,useActionState:uo,useOptimistic:uo,useMemoCache:uo,useCacheRefresh:uo};ks.useEffectEvent=uo;var As={readContext:Gi,use:wo,useCallback:function(e,t){return bo().memoizedState=[e,t===void 0?null:t],e},useContext:Gi,useEffect:es,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Qo(4194308,4,os.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Qo(4194308,4,e,t)},useInsertionEffect:function(e,t){Qo(4,2,e,t)},useMemo:function(e,t){var n=bo();t=t===void 0?null:t;var r=e();if(ao){je(!0);try{e()}finally{je(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=bo();if(n!==void 0){var i=n(t);if(ao){je(!0);try{n(t)}finally{je(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ss.bind(null,Q,e),[r.memoizedState,e]},useRef:function(e){var t=bo();return e={current:e},t.memoizedState=e},useState:function(e){e=Io(e);var t=e.queue,n=Cs.bind(null,Q,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:cs,useDeferredValue:function(e,t){return ds(bo(),e,t)},useTransition:function(){var e=Io(!1);return e=ps.bind(null,Q,e.queue,!0,!1),bo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=Q,i=bo();if(Y){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Ml===null)throw Error(a(349));Pl&127||jo(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,es(No.bind(null,r,o,e),[e]),r.flags|=2048,Xo(9,{destroy:void 0},Mo.bind(null,r,o,n,t),null),n},useId:function(){var e=bo(),t=Ml.identifierPrefix;if(Y){var n=_i,r=gi;n=(r&~(1<<32-Me(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=oo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[$e]=t,o[et]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Cc(t)}}return Oc(t),wc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Cc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ne.current,ji(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Ci,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[$e]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||jd(e.nodeValue,n)),e||Oi(t,!0)}else e=Bd(e).createTextNode(r),e[$e]=t,t.stateNode=e}return Oc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ji(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[$e]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Oc(t),e=!1}else n=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Za(t),t):(Za(t),null);if(t.flags&128)throw Error(a(558))}return Oc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=ji(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[$e]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Oc(t),i=!1}else i=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Za(t),t):(Za(t),null)}return Za(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ec(t,t.updateQueue),Oc(t),null);case 4:return ae(),e===null&&xd(t.stateNode.containerInfo),Oc(t),null;case 10:return zi(t.type),Oc(t),null;case 19:if(V(Qa),r=t.memoizedState,r===null)return Oc(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Dc(r,!1);else{if(Vl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=$a(e),o!==null){for(t.flags|=128,Dc(r,!1),e=o.updateQueue,t.updateQueue=e,Ec(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ni(n,e),n=n.sibling;return H(Qa,Qa.current&1|2),Y&&vi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&be()>Ql&&(t.flags|=128,i=!0,Dc(r,!1),t.lanes=4194304)}else{if(!i)if(e=$a(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Ec(t,e),Dc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Y)return Oc(t),null}else 2*be()-r.renderingStartTime>Ql&&n!==536870912&&(t.flags|=128,i=!0,Dc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Oc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=be(),e.sibling=null,n=Qa.current,H(Qa,i?n&1|2:n&1),Y&&vi(t,r.treeForkCount),e);case 22:case 23:return Za(t),Wa(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Oc(t),t.subtreeFlags&6&&(t.flags|=8192)):Oc(t),n=t.updateQueue,n!==null&&Ec(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&V(ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),zi(Zi),Oc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Ac(e,t){switch(xi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return zi(Zi),ae(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return se(t),null;case 31:if(t.memoizedState!==null){if(Za(t),t.alternate===null)throw Error(a(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Za(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return V(Qa),null;case 4:return ae(),null;case 10:return zi(t.type),null;case 22:case 23:return Za(t),Wa(),e!==null&&V(ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return zi(Zi),null;case 25:return null;default:return null}}function jc(e,t){switch(xi(t),t.tag){case 3:zi(Zi),ae();break;case 26:case 27:case 5:se(t);break;case 4:ae();break;case 31:t.memoizedState!==null&&Za(t);break;case 13:Za(t);break;case 19:V(Qa);break;case 10:zi(t.type);break;case 22:case 23:Za(t),Wa(),e!==null&&V(ca);break;case 24:zi(Zi)}}function Mc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Hu(t,t.return,e)}}function Nc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Hu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Hu(t,t.return,e)}}function Pc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{za(t,n)}catch(t){Hu(e,e.return,t)}}}function Fc(e,t,n){n.props=Ls(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Hu(e,t,n)}}function Ic(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Hu(e,t,n)}}function Lc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Hu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Hu(e,t,n)}else n.current=null}function Rc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Hu(e,e.return,t)}}function zc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[et]=t}catch(t){Hu(e,e.return,t)}}function Bc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Vc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Bc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Hc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Wt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Hc(e,t,n),e=e.sibling;e!==null;)Hc(e,t,n),e=e.sibling}function Uc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Uc(e,t,n),e=e.sibling;e!==null;)Uc(e,t,n),e=e.sibling}function Wc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[$e]=e,t[et]=n}catch(t){Hu(e,e.return,t)}}var Gc=!1,Kc=!1,qc=!1,Jc=typeof WeakSet==`function`?WeakSet:Set,Yc=null;function Xc(e,t){if(e=e.containerInfo,Rd=sp,e=vr(e),yr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,Yc=t;Yc!==null;)if(t=Yc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Yc=e;else for(;Yc!==null;){switch(t=Yc,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[$e]=e,dt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=gr(s,h),v=gr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,I.T=null,n=ou,ou=null;var o=nu,s=iu;if(tu=0,ru=nu=null,iu=0,jl&6)throw Error(a(331));var c=jl;if(jl|=4,El(o.current),vl(o,o.current,s,n),jl=c,nd(0,!1),Ae&&typeof Ae.onPostCommitFiberRoot==`function`)try{Ae.onPostCommitFiberRoot(ke,o)}catch{}return!0}finally{L.p=i,I.T=r,Ru(e,t)}}function Vu(e,t,n){t=ci(n,t),t=Hs(e.stateNode,t,2),e=Na(e,t,2),e!==null&&(We(e,2),td(e))}function Hu(e,t,n){if(e.tag===3)Vu(e,e,n);else for(;t!==null;){if(t.tag===3){Vu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(eu===null||!eu.has(r))){e=ci(n,e),n=Us(2),r=Na(t,n,2),r!==null&&(Ws(n,r,t,e),We(r,2),td(r));break}}t=t.return}}function Uu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Al;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(zl=!0,i.add(n),e=Wu.bind(null,e,t,n),t.then(e,e))}function Wu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ml===e&&(Pl&n)===n&&(Vl===4||Vl===3&&(Pl&62914560)===Pl&&300>be()-Xl?!(jl&2)&&yu(e,0):Wl|=n,Kl===Pl&&(Kl=0)),td(e)}function Gu(e,t){t===0&&(t=He()),e=Jr(e,t),e!==null&&(We(e,t),td(e))}function Ku(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Gu(e,n)}function qu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),Gu(e,n)}function Ju(e,t){return ge(e,t)}var Yu=null,Xu=null,Zu=!1,Qu=!1,$u=!1,ed=0;function td(e){e!==Xu&&e.next===null&&(Xu===null?Yu=Xu=e:Xu=Xu.next=e),Qu=!0,Zu||(Zu=!0,cd())}function nd(e,t){if(!$u&&Qu){$u=!0;do for(var n=!1,r=Yu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Me(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,sd(r,a))}else a=Pl,a=ze(r,r===Ml?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Be(r,a)||(n=!0,sd(r,a));r=r.next}while(n);$u=!1}}function rd(){id()}function id(){Qu=Zu=!1;var e=0;ed!==0&&Gd()&&(e=ed);for(var t=be(),n=null,r=Yu;r!==null;){var i=r.next,a=ad(r,t);a===0?(r.next=null,n===null?Yu=i:n.next=i,i===null&&(Xu=n)):(n=r,(e!==0||a&3)&&(Qu=!0)),r=i}tu!==0&&tu!==5||nd(e,!1),ed!==0&&(ed=0)}function ad(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=At(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),dt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+At(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+At(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+At(n.imageSizes)+`"]`)):i+=`[href="`+At(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),dt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+At(r)+`"][href="`+At(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),dt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=ut(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);dt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=ut(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),dt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=ut(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),dt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=ne.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=ut(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=ut(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=ut(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+At(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),dt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+At(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+At(n.href)+`"]`);if(r)return t.instance=r,dt(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),dt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,dt(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),dt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,dt(i),i):(r=n,(i=mf.get(o))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),dt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,dt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),dt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=l()})),d=e(r(),1),f=new Map([[`bold`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z`}))],[`duotone`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z`,opacity:`0.2`}),d.createElement(`path`,{d:`M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z`}))],[`fill`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z`}))],[`light`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z`}))],[`regular`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z`}))],[`thin`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z`}))]]),p=new Map([[`bold`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z`}))],[`duotone`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),d.createElement(`path`,{d:`M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z`}))],[`fill`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z`}))],[`light`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z`}))],[`regular`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z`}))],[`thin`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z`}))]]),m=new Map([[`bold`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M228,128a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24H216A12,12,0,0,1,228,128Z`}))],[`duotone`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z`,opacity:`0.2`}),d.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128Z`}))],[`fill`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H72a8,8,0,0,1,0-16H184a8,8,0,0,1,0,16Z`}))],[`light`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M222,128a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12H216A6,6,0,0,1,222,128Z`}))],[`regular`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128Z`}))],[`thin`,d.createElement(d.Fragment,null,d.createElement(`path`,{d:`M220,128a4,4,0,0,1-4,4H40a4,4,0,0,1,0-8H216A4,4,0,0,1,220,128Z`}))]]),h=(0,d.createContext)({color:`currentColor`,size:`1em`,weight:`regular`,mirrored:!1}),g=d.forwardRef((e,t)=>{let{alt:n,color:r,size:i,weight:a,mirrored:o,children:s,weights:c,...l}=e,{color:u=`currentColor`,size:f,weight:p=`regular`,mirrored:m=!1,...g}=d.useContext(h);return d.createElement(`svg`,{ref:t,xmlns:`http://www.w3.org/2000/svg`,width:i??f,height:i??f,fill:r??u,viewBox:`0 0 256 256`,transform:o||m?`scale(-1, 1)`:void 0,...g,...l},!!n&&d.createElement(`title`,null,n),s,c.get(a??p))});g.displayName=`IconBase`;var _=d.forwardRef((e,t)=>d.createElement(g,{ref:t,...e,weights:f}));_.displayName=`CheckIcon`;var v=d.forwardRef((e,t)=>d.createElement(g,{ref:t,...e,weights:p}));v.displayName=`InfoIcon`;var y=v,b=d.forwardRef((e,t)=>d.createElement(g,{ref:t,...e,weights:m}));b.displayName=`MinusIcon`;function x(e,t,n){let r=e[t];return r===void 0?e[n]:r}var S=n(),C={size:{sm:{value:16,description:`Small loader for inline use`},base:{value:24,description:`Default loader size`},lg:{value:32,description:`Large loader for prominent loading states`}}},w={size:`base`};function T({size:e=w.size}={}){return typeof e==`number`?e:x(C.size,e,w.size).value}var E=({className:e,size:t=w.size,"aria-label":n=`Loading`})=>{let r=T({size:t});return(0,S.jsxs)(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,className:e,style:{height:r,width:r},role:`status`,"aria-label":n,children:[(0,S.jsxs)(`circle`,{cx:`12`,cy:`12`,r:`9.5`,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,children:[(0,S.jsx)(`animateTransform`,{attributeName:`transform`,type:`rotate`,from:`0 12 12`,to:`360 12 12`,dur:`2s`,repeatCount:`indefinite`}),(0,S.jsx)(`animate`,{attributeName:`stroke-dasharray`,values:`0 150;42 150;42 150`,keyTimes:`0;0.5;1`,dur:`1.5s`,repeatCount:`indefinite`}),(0,S.jsx)(`animate`,{attributeName:`stroke-dashoffset`,values:`0;-16;-59`,keyTimes:`0;0.5;1`,dur:`1.5s`,repeatCount:`indefinite`})]}),(0,S.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9.5`,fill:`none`,opacity:.1,strokeWidth:`2`,strokeLinecap:`round`})]})},D=(0,d.createContext)(null);function O(){return(0,d.useContext)(D)}var k=Array.isArray,A=e=>{if(!e)return``;if(typeof e==`string`)return e;if(typeof e==`number`)return``+e;let t=``;if(k(e)){let n=e.length;for(let r=0;r{let n=e.length,r=t.length,i=Array(n+r);for(let t=0;t({classGroupId:e,validator:t}),N=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),P=`-`,F=[],I=`arbitrary..`,L=e=>{let t=z(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e[0]===`[`&&e[e.length-1]===`]`)return ee(e);let n=e.split(P);return R(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?j(i,t):t:i||F}return n[e]||F}}},R=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=R(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(P):e.slice(t).join(P),s=a.length;for(let e=0;e{let t=e.slice(1,-1),n=t.indexOf(`:`);if(n===-1)return;let r=t.slice(0,n);return r?I+r:void 0},z=e=>{let{theme:t,classGroups:n}=e;return B(n,t)},B=(e,t)=>{let n=N();for(let r in e){let i=e[r];V(i,n,r,t)}return n},V=(e,t,n,r)=>{let i=e.length;for(let a=0;a{if(typeof e==`string`){te(e,t,n);return}if(typeof e==`function`){U(e,t,n,r);return}ne(e,t,n,r)},te=(e,t,n)=>{let r=e===``?t:re(t,e);r.classGroupId=n},U=(e,t,n,r)=>{if(ie(e)){V(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(M(n,e))},ne=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e{let n=e,r=t.split(P),i=r.length;for(let e=0;e`isThemeGetter`in e&&e.isThemeGetter===!0,ae=58,oe=47,se=91,ce=93,le=40,ue=41,de=33,fe=(e,t,n,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:void 0}),pe=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;si?a-i:void 0;return fe(t,l,c,d)},me=e=>{let t=new Set(e.orderSensitiveModifiers);return e=>{let n=[],r=[];for(let i=0;i0){r.sort();for(let e=0;e0){r.sort();for(let e=0;e{let t=me(e),n=ve(e),{getClassGroupId:r,getConflictingClassGroupIds:i}=L(e),a=Object.create(null),o=Object.create(null),s=0,c=new Int32Array(256),l=0,u=new Uint8Array(64),d=!1,f=e=>{let t=[],n=e.length,r=-1;d=!1;for(let i=0;i=9&&n<=13?(d=!0,r!==-1&&(t.push(e.slice(r,i)),r=-1)):r===-1&&(r=i)}return r!==-1&&t.push(e.slice(r)),t},p=new Map,m=0,h=e=>{let t=p.get(e);if(t===void 0&&(t=m++,p.set(e,t),t>=c.length)){let e=new Int32Array(c.length*2);e.set(c),c=e}return t},g=e=>{let{isExternal:a,modifiers:o,hasImportantModifier:s,baseClassName:c,maybePostfixModifierPosition:l}=pe(e);if(a)return he;let u=!!l,d;if(u){d=r(c.substring(0,l));let e=d&&n[d]?r(c):void 0;e&&e!==d&&(d=e,u=!1)}else d=r(c);if(!d){if(!u||(d=r(c),!d))return he;u=!1}let f=o.length===0?``:o.length===1?o[0]:t(o).join(`:`),p=s?f+`!`:f,m=i(d,u),g=[];for(let e=0;e{let t=a[e];return t!==void 0||(t=o[e],t===void 0&&(t=g(e)),a[e]=t,++s>ge&&(s=0,o=a,a=Object.create(null))),t};return{parseClassName:pe,sortModifiers:t,postfixLookupClassGroupIds:n,getClassGroupId:r,getConflictingClassGroupIds:i,getClassDescriptor:_,mergeClassList:e=>{let t=f(e),n=t.length;if(n===1)return t[0];l=l+1|0,l===0&&(l=1);let r=l;if(n>u.length){let e=u.length;for(;e=0;--e){let n=t[e];a+=n.length;let o=_(n);if(o.isExternal){u[e]=1;continue}let s=o.classId;if(c[s]===r){u[e]=0,i=!0;continue}c[s]=r;let l=o.conflictIds;for(let e=0;e{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e{let t=0,n,r,i=``;for(;t{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r{let t,n,r=Object.create(null),i=Object.create(null),a=0,o=r=>(t=_e(e()),n=t.mergeClassList,c.mergeString=s,s(r)),s=e=>{let t=r[e];return t!==void 0||(t=i[e],t===void 0&&(t=n(e)),r[e]=t,++a>xe&&(a=0,i=r,r=Object.create(null))),t},c=(...e)=>c.mergeString(ye(...e));return c.mergeString=o,c},Ce=[],we=e=>{let t=t=>t[e]||Ce;return t.isThemeGetter=!0,t},Te=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ee=/^\((?:(\w[\w-]*):)?(.+)\)$/i,De=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Oe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ke=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ae=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,je=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Me=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ne=Number,Pe=Number.isNaN,Fe=Number.isInteger,Ie=e=>De.test(e),W=e=>!!e&&!Pe(Ne(e)),Le=e=>!!e&&Fe(Ne(e)),Re=e=>e.endsWith(`%`)&&W(e.slice(0,-1)),ze=e=>Oe.test(e),Be=()=>!0,Ve=e=>ke.test(e)&&!Ae.test(e),He=()=>!1,Ue=e=>je.test(e),We=e=>Me.test(e),Ge=e=>!G(e)&&!K(e),Ke=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),qe=e=>ct(e,ft,He),G=e=>Te.test(e),Je=e=>ct(e,pt,Ve),Ye=e=>ct(e,mt,W),Xe=e=>ct(e,gt,Be),Ze=e=>ct(e,ht,He),Qe=e=>ct(e,ut,He),$e=e=>ct(e,dt,We),et=e=>ct(e,_t,Ue),K=e=>Ee.test(e),tt=e=>lt(e,pt),nt=e=>lt(e,ht),rt=e=>lt(e,ut),it=e=>lt(e,ft),at=e=>lt(e,dt),ot=e=>lt(e,_t,!0),st=e=>lt(e,gt,!0),ct=(e,t,n)=>{let r=Te.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},lt=(e,t,n=!1)=>{let r=Ee.exec(e);return r?r[1]?t(r[1]):n:!1},ut=e=>e===`position`||e===`percentage`,dt=e=>e===`image`||e===`url`,ft=e=>e===`length`||e===`size`||e===`bg-size`,pt=e=>e===`length`,mt=e=>e===`number`,ht=e=>e===`family-name`,gt=e=>e===`number`||e===`weight`,_t=e=>e===`shadow`,vt=Se(()=>{let e=we(`color`),t=we(`font`),n=we(`text`),r=we(`font-weight`),i=we(`tracking`),a=we(`leading`),o=we(`breakpoint`),s=we(`container`),c=we(`spacing`),l=we(`radius`),u=we(`shadow`),d=we(`inset-shadow`),f=we(`text-shadow`),p=we(`drop-shadow`),m=we(`blur`),h=we(`perspective`),g=we(`aspect`),_=we(`ease`),v=we(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),K,G],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[K,G,c],T=()=>[Ie,`full`,`auto`,...w()],E=()=>[Le,`none`,`subgrid`,K,G],D=()=>[`auto`,{span:[`full`,Le,K,G]},Le,K,G],O=()=>[Le,`auto`,K,G],k=()=>[`auto`,`min`,`max`,`fr`,K,G],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],M=()=>[`auto`,...w()],N=()=>[Ie,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],P=()=>[Ie,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],F=()=>[Ie,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],I=()=>[e,K,G],L=()=>[...b(),rt,Qe,{position:[K,G]}],R=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ee=()=>[`auto`,`cover`,`contain`,it,qe,{size:[K,G]}],z=()=>[Re,tt,Je],B=()=>[``,`none`,`full`,l,K,G],V=()=>[``,W,tt,Je],H=()=>[`solid`,`dashed`,`dotted`,`double`],te=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],U=()=>[W,Re,rt,Qe],ne=()=>[``,`none`,m,K,G],re=()=>[`none`,W,K,G],ie=()=>[`none`,W,K,G],ae=()=>[W,K,G],oe=()=>[Ie,`full`,...w()];return{theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[ze],breakpoint:[ze],color:[Be],container:[ze],"drop-shadow":[ze],ease:[`in`,`out`,`in-out`],font:[Ge],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[ze],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[ze],shadow:[ze],spacing:[`px`,W],text:[ze],"text-shadow":[ze],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Ie,G,K,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,K,G]}],"container-named":[Ke],columns:[{columns:[W,G,K,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Le,`auto`,K,G]}],basis:[{basis:[Ie,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[W,Ie,`auto`,`initial`,`none`,G]}],grow:[{grow:[``,W,K,G]}],shrink:[{shrink:[``,W,K,G]}],order:[{order:[Le,`first`,`last`,`none`,K,G]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:N()}],"inline-size":[{inline:[`auto`,...P()]}],"min-inline-size":[{"min-inline":[`auto`,...P()]}],"max-inline-size":[{"max-inline":[`none`,...P()]}],"block-size":[{block:[`auto`,...F()]}],"min-block-size":[{"min-block":[`auto`,...F()]}],"max-block-size":[{"max-block":[`none`,...F()]}],w:[{w:[s,`screen`,...N()]}],"min-w":[{"min-w":[s,`screen`,`none`,...N()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...N()]}],h:[{h:[`screen`,`lh`,...N()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...N()]}],"max-h":[{"max-h":[`screen`,`lh`,...N()]}],"font-size":[{text:[`base`,n,tt,Je]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,st,Xe]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Re,G]}],"font-family":[{font:[nt,Ze,t]}],"font-features":[{"font-features":[G]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,K,G]}],"line-clamp":[{"line-clamp":[W,`none`,K,Ye]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,K,G]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,K,G]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...H(),`wavy`]}],"text-decoration-thickness":[{decoration:[W,`from-font`,`auto`,K,Je]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[W,`auto`,K,G]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[Le,K,G]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,K,G]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,K,G]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:R()}],"bg-size":[{bg:ee()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Le,K,G],radial:[``,K,G],conic:[Le,K,G]},at,$e]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:B()}],"rounded-s":[{"rounded-s":B()}],"rounded-e":[{"rounded-e":B()}],"rounded-t":[{"rounded-t":B()}],"rounded-r":[{"rounded-r":B()}],"rounded-b":[{"rounded-b":B()}],"rounded-l":[{"rounded-l":B()}],"rounded-ss":[{"rounded-ss":B()}],"rounded-se":[{"rounded-se":B()}],"rounded-ee":[{"rounded-ee":B()}],"rounded-es":[{"rounded-es":B()}],"rounded-tl":[{"rounded-tl":B()}],"rounded-tr":[{"rounded-tr":B()}],"rounded-br":[{"rounded-br":B()}],"rounded-bl":[{"rounded-bl":B()}],"border-w":[{border:V()}],"border-w-x":[{"border-x":V()}],"border-w-y":[{"border-y":V()}],"border-w-s":[{"border-s":V()}],"border-w-e":[{"border-e":V()}],"border-w-bs":[{"border-bs":V()}],"border-w-be":[{"border-be":V()}],"border-w-t":[{"border-t":V()}],"border-w-r":[{"border-r":V()}],"border-w-b":[{"border-b":V()}],"border-w-l":[{"border-l":V()}],"divide-x":[{"divide-x":V()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":V()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...H(),`hidden`,`none`]}],"divide-style":[{divide:[...H(),`hidden`,`none`]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...H(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[W,K,G]}],"outline-w":[{outline:[``,W,tt,Je]}],"outline-color":[{outline:I()}],shadow:[{shadow:[``,`none`,u,ot,et]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":[`none`,d,ot,et]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:V()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[W,Je]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":V()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":[`none`,f,ot,et]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[W,K,G]}],"mix-blend":[{"mix-blend":[...te(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":te()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[W]}],"mask-image-linear-from-pos":[{"mask-linear-from":U()}],"mask-image-linear-to-pos":[{"mask-linear-to":U()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":U()}],"mask-image-t-to-pos":[{"mask-t-to":U()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":U()}],"mask-image-r-to-pos":[{"mask-r-to":U()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":U()}],"mask-image-b-to-pos":[{"mask-b-to":U()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":U()}],"mask-image-l-to-pos":[{"mask-l-to":U()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":U()}],"mask-image-x-to-pos":[{"mask-x-to":U()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":U()}],"mask-image-y-to-pos":[{"mask-y-to":U()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[K,G]}],"mask-image-radial-from-pos":[{"mask-radial-from":U()}],"mask-image-radial-to-pos":[{"mask-radial-to":U()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[W]}],"mask-image-conic-from-pos":[{"mask-conic-from":U()}],"mask-image-conic-to-pos":[{"mask-conic-to":U()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:R()}],"mask-size":[{mask:ee()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,K,G]}],filter:[{filter:[``,`none`,K,G]}],blur:[{blur:ne()}],brightness:[{brightness:[W,K,G]}],contrast:[{contrast:[W,K,G]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,ot,et]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:[``,W,K,G]}],"hue-rotate":[{"hue-rotate":[W,K,G]}],invert:[{invert:[``,W,K,G]}],saturate:[{saturate:[W,K,G]}],sepia:[{sepia:[``,W,K,G]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,K,G]}],"backdrop-blur":[{"backdrop-blur":ne()}],"backdrop-brightness":[{"backdrop-brightness":[W,K,G]}],"backdrop-contrast":[{"backdrop-contrast":[W,K,G]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,W,K,G]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[W,K,G]}],"backdrop-invert":[{"backdrop-invert":[``,W,K,G]}],"backdrop-opacity":[{"backdrop-opacity":[W,K,G]}],"backdrop-saturate":[{"backdrop-saturate":[W,K,G]}],"backdrop-sepia":[{"backdrop-sepia":[``,W,K,G]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,K,G]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[W,`initial`,K,G]}],ease:[{ease:[`linear`,`initial`,_,K,G]}],delay:[{delay:[W,K,G]}],animate:[{animate:[`none`,v,K,G]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,K,G]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:ie()}],"scale-x":[{"scale-x":ie()}],"scale-y":[{"scale-y":ie()}],"scale-z":[{"scale-z":ie()}],"scale-3d":[`scale-3d`],skew:[{skew:ae()}],"skew-x":[{"skew-x":ae()}],"skew-y":[{"skew-y":ae()}],transform:[{transform:[K,G,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:oe()}],"translate-x":[{"translate-x":oe()}],"translate-y":[{"translate-y":oe()}],"translate-z":[{"translate-z":oe()}],"translate-none":[`translate-none`],zoom:[{zoom:[Le,K,G]}],accent:[{accent:I()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,K,G]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":I()}],"scrollbar-track-color":[{"scrollbar-track":I()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,K,G]}],fill:[{fill:[`none`,...I()]}],"stroke-w":[{stroke:[W,tt,Je,Ye]}],stroke:[{stroke:[`none`,...I()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),yt=8,bt=new WeakMap,xt=(e,t)=>{let n=t.length,r=!0;for(let e=0;e=yt&&n.shift(),n.push({values:t,result:a})}return a},St=(()=>{let e=Error();return!(`line`in e)&&!(`lineNumber`in e)})(),Ct=64,wt=500,Tt=new Map,Et=new Map,Dt=0,Ot=e=>{let t=e.length,n=``,r=-1,i=0,a=!0;for(let o=0;o=Ct&&l.shift(),l.push({rest:s,result:c}),++Dt>wt&&(Dt=0,Et=Tt,Tt=new Map),c}let o=``;for(let n=0;n`u`?!1:e instanceof ShadowRoot||e instanceof Nt(e).ShadowRoot}function Rt(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Yt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function zt(e){return/^(table|td|th)$/.test(Mt(e))}function Bt(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Vt=/transform|translate|scale|rotate|perspective|filter/,Ht=/paint|layout|strict|content/,Ut=e=>!!e&&e!==`none`,Wt;function Gt(e){let t=q(e)?Yt(e):e;return Ut(t.transform)||Ut(t.translate)||Ut(t.scale)||Ut(t.rotate)||Ut(t.perspective)||!qt()&&(Ut(t.backdropFilter)||Ut(t.filter))||Vt.test(t.willChange||``)||Ht.test(t.contain||``)}function Kt(e){let t=Zt(e);for(;It(t)&&!Jt(t);){if(Gt(t))return t;if(Bt(t))return null;t=Zt(t)}return null}function qt(){return Wt??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Wt}function Jt(e){return/^(html|body|#document)$/.test(Mt(e))}function Yt(e){return Nt(e).getComputedStyle(e)}function Xt(e){return q(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Zt(e){if(Mt(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Lt(e)&&e.host||Pt(e);return Lt(t)?t.host:t}function Qt(e){let t=Zt(e);return Jt(t)?e.ownerDocument?e.ownerDocument.body:e.body:It(t)&&Rt(t)?t:Qt(t)}function $t(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Qt(e),i=r===e.ownerDocument?.body,a=Nt(r);if(i){let e=en(a);return t.concat(a,a.visualViewport||[],Rt(r)?r:[],e&&n?$t(e):[])}else return t.concat(r,$t(r,[],n))}function en(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var tn=[`top`,`right`,`bottom`,`left`],nn=Math.min,rn=Math.max,an=Math.round,on=Math.floor,sn=e=>({x:e,y:e}),cn={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ln(e,t,n){return rn(e,nn(t,n))}function un(e,t){return typeof e==`function`?e(t):e}function dn(e){return e.split(`-`)[0]}function fn(e){return e.split(`-`)[1]}function pn(e){return e===`x`?`y`:`x`}function mn(e){return e===`y`?`height`:`width`}function hn(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function gn(e){return pn(hn(e))}function _n(e,t,n){n===void 0&&(n=!1);let r=fn(e),i=gn(e),a=mn(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=En(o)),[o,En(o)]}function vn(e){let t=En(e);return[yn(e),t,yn(t)]}function yn(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var bn=[`left`,`right`],xn=[`right`,`left`],Sn=[`top`,`bottom`],Cn=[`bottom`,`top`];function wn(e,t,n){switch(e){case`top`:case`bottom`:return n?t?xn:bn:t?bn:xn;case`left`:case`right`:return t?Sn:Cn;default:return[]}}function Tn(e,t,n,r){let i=fn(e),a=wn(dn(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(yn)))),a}function En(e){let t=dn(e);return cn[t]+e.slice(t.length)}function Dn(e){return{top:0,right:0,bottom:0,left:0,...e}}function On(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Dn(e)}function kn(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function An(e,t,n){let{reference:r,floating:i}=e,a=hn(t),o=gn(t),s=mn(o),c=dn(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(fn(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function jn(e,t){var n;t===void 0&&(t={});let{x:r,y:i,platform:a,rects:o,elements:s,strategy:c}=e,{boundary:l=`clippingAncestors`,rootBoundary:u=`viewport`,elementContext:d=`floating`,altBoundary:f=!1,padding:p=0}=un(t,e),m=On(p),h=s[f?d===`floating`?`reference`:`floating`:d],g=kn(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(h)))==null||n?h:h.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),_=d===`floating`?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,v=await(a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating)),y=await(a.isElement==null?void 0:a.isElement(v))&&await(a.getScale==null?void 0:a.getScale(v))||{x:1,y:1},b=kn(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:_,offsetParent:v,strategy:c}):_);return{top:(g.top-b.top+m.top)/y.y,bottom:(b.bottom-g.bottom+m.bottom)/y.y,left:(g.left-b.left+m.left)/y.x,right:(b.right-g.right+m.right)/y.x}}var Mn=50,Nn=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:jn},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=An(l,r,c),f=r,p=0,m={};for(let n=0;ne<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==hn(t))||T.every(e=>hn(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=hn(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Fn(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function In(e){return tn.some(t=>e[t]>=0)}var Ln=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=un(e,t);switch(i){case`referenceHidden`:{let e=Fn(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:In(e)}}}case`escaped`:{let e=Fn(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:In(e)}}}default:return{}}}}},Rn=new Set([`left`,`top`]);async function zn(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=dn(n),s=fn(n),c=hn(n)===`y`,l=Rn.has(o)?-1:1,u=a&&c?-1:1,d=un(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Bn=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await zn(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Vn=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=un(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=hn(dn(i)),p=pn(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=ln(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=ln(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Hn=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=un(e,t),u={x:n,y:r},d=hn(i),f=pn(d),p=u[f],m=u[d],h=un(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;pn&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Rn.has(dn(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);mr&&(m=r)}return{[f]:p,[d]:m}}}},Un=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=un(e,t),u=await o.detectOverflow(t,l),d=dn(i),f=fn(i),p=hn(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=nn(h-u[g],v),x=nn(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=rn(u.left,0),t=rn(u.right,0),n=rn(u.top,0),r=rn(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:rn(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:rn(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function Wn(e){let t=Yt(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=It(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=an(n)!==a||an(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Gn(e){return q(e)?e:e.contextElement}function Kn(e){let t=Gn(e);if(!It(t))return sn(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Wn(t),o=(a?an(n.width):n.width)/r,s=(a?an(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var qn=sn(0);function Jn(e){let t=Nt(e);return!qt()||!t.visualViewport?qn:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Yn(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Nt(e)?!1:t}function Xn(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Gn(e),o=sn(1);t&&(r?q(r)&&(o=Kn(r)):o=Kn(e));let s=Yn(a,n,r)?Jn(a):sn(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Nt(a),t=r&&q(r)?Nt(r):r,n=e,i=en(n);for(;i&&r&&t!==n;){let e=Kn(i),t=i.getBoundingClientRect(),r=Yt(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Nt(i),i=en(n)}}return kn({width:u,height:d,x:c,y:l})}function Zn(e,t){let n=Xt(e).scrollLeft;return t?t.left+n:Xn(Pt(e)).left+n}function Qn(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Zn(e,n),y:n.top+t.scrollTop}}function $n(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Pt(r),s=t?Bt(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=sn(1),u=sn(0),d=It(r);if((d||!d&&!a)&&((Mt(r)!==`body`||Rt(o))&&(c=Xt(r)),d)){let e=Xn(r);l=Kn(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Qn(o,c):sn(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function er(e){return Array.from(e.getClientRects())}function tr(e){let t=Pt(e),n=Xt(e),r=e.ownerDocument.body,i=rn(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=rn(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Zn(e),s=-n.scrollTop;return Yt(r).direction===`rtl`&&(o+=rn(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var nr=25;function rr(e,t){let n=Nt(e),r=Pt(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=qt();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Zn(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=nr&&(a-=o)}else l<=nr&&(a+=l);return{width:a,height:o,x:s,y:c}}function ir(e,t){let n=Xn(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=It(e)?Kn(e):sn(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function ar(e,t,n){let r;if(t===`viewport`)r=rr(e,n);else if(t===`document`)r=tr(Pt(e));else if(q(t))r=ir(t,n);else{let n=Jn(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return kn(r)}function or(e,t){let n=Zt(e);return n===t||!q(n)||Jt(n)?!1:Yt(n).position===`fixed`||or(n,t)}function sr(e,t){let n=t.get(e);if(n)return n;let r=$t(e,[],!1).filter(e=>q(e)&&Mt(e)!==`body`),i=null,a=Yt(e).position===`fixed`,o=a?Zt(e):e;for(;q(o)&&!Jt(o);){let t=Yt(o),n=Gt(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Rt(o)&&!n&&or(e,o))?r=r.filter(e=>e!==o):i=t,o=Zt(o)}return t.set(e,r),r}function cr(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Bt(t)?[]:sr(t,this._c):[].concat(n),r],o=ar(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!_r(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function yr(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Gn(e),u=i||a?[...l?$t(l):[],...t?$t(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?vr(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Xn(e):null;c&&g();function g(){let t=Xn(e);h&&!_r(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var br=Bn,xr=Vn,Sr=Pn,Cr=Un,wr=Ln,Tr=Hn,Er=(e,t,n)=>{let r=new Map,i={platform:gr,...n},a={...i.platform,_c:r};return Nn(e,t,{...i,platform:a})},Dr=typeof document<`u`?d.useLayoutEffect:function(){};function Or(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Or(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Or(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function kr(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Ar(e,t){let n=kr(e);return Math.round(t*n)/n}function jr(e){let t=d.useRef(e);return Dr(()=>{t.current=e}),t}function Mr(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,f]=d.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=d.useState(r);Or(p,r)||m(r);let[h,g]=d.useState(null),[_,v]=d.useState(null),y=d.useCallback(e=>{e!==C.current&&(C.current=e,g(e))},[]),b=d.useCallback(e=>{e!==w.current&&(w.current=e,v(e))},[]),x=a||h,S=o||_,C=d.useRef(null),w=d.useRef(null),T=d.useRef(u),E=c!=null,D=jr(c),O=jr(i),k=jr(l),A=d.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:p};O.current&&(e.platform=O.current),Er(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!Or(T.current,t)&&(T.current=t,At.flushSync(()=>{f(t)}))})},[p,t,n,O,k]);Dr(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,f(e=>({...e,isPositioned:!1})))},[l]);let j=d.useRef(!1);Dr(()=>(j.current=!0,()=>{j.current=!1}),[]),Dr(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let M=d.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),N=d.useMemo(()=>({reference:x,floating:S}),[x,S]),P=d.useMemo(()=>{let e={position:n,left:0,top:0};if(!N.floating)return e;let t=Ar(N.floating,u.x),r=Ar(N.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...kr(N.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,N.floating,u.x,u.y]);return d.useMemo(()=>({...u,update:A,refs:M,elements:N,floatingStyles:P}),[u,A,M,N,P])}var Nr=(e,t)=>{let n=br(e);return{name:n.name,fn:n.fn,options:[e,t]}},Pr=(e,t)=>{let n=xr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Fr=(e,t)=>({fn:Tr(e).fn,options:[e,t]}),Ir=(e,t)=>{let n=Sr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Lr=(e,t)=>{let n=Cr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Rr=(e,t)=>{let n=wr(e);return{name:n.name,fn:n.fn,options:[e,t]}},zr={exports:{}},Br={},Vr;function Hr(){if(Vr)return Br;Vr=1;var e=d.default;function t(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var n=typeof Object.is==`function`?Object.is:t,r=e.useState,i=e.useEffect,a=e.useLayoutEffect,o=e.useDebugValue;function s(e,t){var n=t(),s=r({inst:{value:n,getSnapshot:t}}),l=s[0].inst,u=s[1];return a(function(){l.value=n,l.getSnapshot=t,c(l)&&u({inst:l})},[e,n,t]),i(function(){return c(l)&&u({inst:l}),e(function(){c(l)&&u({inst:l})})},[e]),o(n),n}function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch{return!0}}function l(e,t){return t()}var u=typeof window>`u`||typeof window.document>`u`||typeof window.document.createElement>`u`?l:s;return Br.useSyncExternalStore=e.useSyncExternalStore===void 0?u:e.useSyncExternalStore,Br}var Ur;function Wr(){return Ur||(Ur=1,zr.exports=Hr()),zr.exports}var Gr=Wr(),Kr={exports:{}},qr={},Jr;function Yr(){if(Jr)return qr;Jr=1;var e=d.default,t=Wr();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useSyncExternalStore,a=e.useRef,o=e.useEffect,s=e.useMemo,c=e.useDebugValue;return qr.useSyncExternalStoreWithSelector=function(e,t,n,l,u){var d=a(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s(function(){function e(e){if(!i){if(i=!0,a=e,e=l(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return o=t}return o=e}if(t=o,r(a,e))return t;var n=l(e);return u!==void 0&&u(t,n)?(a=e,t):(a=e,o=n)}var i=!1,a,o,s=n===void 0?null:n;return[function(){return e(t())},s===null?void 0:function(){return e(s())}]},[t,n,l,u]);var p=i(e,d[0],d[1]);return o(function(){f.hasValue=!0,f.value=p},[p]),c(p),p},qr}var Xr;function Zr(){return Xr||(Xr=1,Kr.exports=Yr()),Kr.exports}var Qr=Zr(),$r={};function ei(e,t){let n=d.useRef($r);return n.current===$r&&(n.current=e(t)),n}var ti=[],ni;function ri(){return ni}function ii(e){ti.push(e)}function ai(e){let t=(t,n)=>{let r=ei(si).current,i;try{ni=r;for(let e of ti)e.before(r);i=e(t,n);for(let e of ti)e.after(r);r.didInitialize=!0}finally{ni=void 0}return i};return t.displayName=e.displayName||e.name,t}function oi(e){return d.forwardRef(ai(e))}function si(){return{didInitialize:!1}}var J=typeof document<`u`?d.useLayoutEffect:()=>{};function ci(e,t){return function(n,...r){let i=new URL(e);return i.searchParams.set(`code`,n.toString()),r.forEach(e=>i.searchParams.append(`args[]`,e)),`${t} error #${n}; visit ${i} for the full message.`}}var li=ci(`https://base-ui.com/production-error`,`Base UI`),ui=d.createContext(void 0);function di(e){let t=d.useContext(ui);if(t===void 0&&!e)throw Error(li(72));return t}var fi=[];function pi(e){d.useEffect(e,fi)}var mi=0,hi=class e{static create(){return new e}currentId=mi;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=mi,t()},e)}isStarted(){return this.currentId!==mi}clear=()=>{this.currentId!==mi&&(clearTimeout(this.currentId),this.currentId=mi)};disposeEffect=()=>this.clear};function gi(){let e=ei(hi.create).current;return pi(e.disposeEffect),e}function _i(){return typeof navigator>`u`?{userAgent:``,platform:``,maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??0}}var{userAgent:vi,platform:yi,maxTouchPoints:bi}=_i(),xi=vi.toLowerCase(),Si=yi.toLowerCase(),Ci=/^i(os$|p)/.test(Si)||Si===`macintel`&&bi>1,wi=`android`,Y=Si===wi||xi.includes(wi),Ti=!Ci&&Si.startsWith(`mac`);Si.startsWith(`win`);var Ei=Ti||Ci,Di=typeof CSS<`u`&&!!CSS.supports?.(`-webkit-backdrop-filter:none`);!Di&&xi.includes(`firefox`),!Di&&xi.includes(`chrom`);var Oi=Ei,ki=/jsdom|happydom/.test(xi);function Ai(e){e.preventDefault(),e.stopPropagation()}function ji(e){return`nativeEvent`in e}function Mi(e){return e.pointerType===``&&e.isTrusted?!0:Y&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function Ni(e){return ki?!1:!Y&&e.width===0&&e.height===0||Y&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function Pi(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function Fi(e){let t=e.type;return t===`click`||t===`mousedown`||t===`keydown`||t===`keyup`}var Ii=`data-base-ui-focusable`,Li=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,Ri=`ArrowLeft`,zi=`ArrowRight`,Bi=`ArrowUp`,Vi=`ArrowDown`;function Hi(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function Ui(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&Lt(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function Wi(e){return`composedPath`in e?e.composedPath()[0]:e.target}function Gi(e,t){if(!q(e))return!1;let n=e;if(t.hasElement(n))return!n.hasAttribute(`data-trigger-disabled`);for(let[,e]of t.entries())if(Ui(e,n))return!e.hasAttribute(`data-trigger-disabled`);return!1}function Ki(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function qi(e){return e.matches(`html,body`)}function Ji(e){return It(e)&&e.matches(Li)}function Yi(e){return e?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${Li}`)!=null}function Xi(e){return e?e.getAttribute(`role`)===`combobox`&&Ji(e):!1}function Zi(e){if(!e||ki)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}function Qi(e){return e?e.hasAttribute(Ii)?e:e.querySelector(`[${Ii}]`)||e:null}function $i(e,t){return t!=null&&!Pi(t)?0:typeof e==`function`?e():e}function ea(e,t,n){let r=$i(e,n);return typeof r==`number`?r:r?.[t]}function ta(e){return typeof e==`function`?e():e}function na(e,t){return t||e===`click`||e===`mousedown`}function ra(e){return e?.includes(`mouse`)&&e!==`mousedown`}function ia(){}var aa=Object.freeze([]),oa=Object.freeze({}),sa=`none`,ca=`trigger-press`,la=`trigger-hover`,ua=`trigger-focus`,da=`outside-press`,fa=`item-press`,pa=`focus-out`,ma=`escape-key`,ha=`list-navigation`,ga=`cancel-open`,_a=`sibling-open`,va=`disabled`,ya=`missing`,ba=`initial`,xa=`imperative-action`;function X(e,t,n,r){let i=!1,a=!1,o=r??oa;return{reason:e,event:t??new Event(`base-ui`),cancel(){i=!0},allowPropagation(){a=!0},get isCanceled(){return i},get isPropagationAllowed(){return a},trigger:n,...o}}var Sa=d.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new hi,currentIdRef:{current:null},currentContextRef:{current:null}});function Ca(e,t){e.current=t.current}function wa(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:f}=d.useContext(Sa),[p,m]=d.useState(!1),h=d.useRef(n),g=d.useRef(!1);return J(()=>{h.current=n},[n]),J(()=>()=>{g.current=!0},[]),J(()=>{function e(){g.current||m(!1),l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,f.clear()}if(a.current&&!n&&a.current===i){if(m(!1),s){let t=i;return f.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{(h.current||a.current!==t)&&f.clear()}}e()}},[n,i,a,o,s,c,l,f,r]),J(()=>{if(!n)return;let e=l.current,t=a.current;f.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:m},a.current=i,o.current={open:0,close:ea(c.current,`close`)},t!==null&&t!==i?(m(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,X(sa))):(m(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,f]),J(()=>()=>{if(a.current===i){if(l.current=null,!h.current)return;a.current=null,Ca(o,c),f.clear()}},[l,a,o,i,c,f]),d.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:p}),[u,o,p])}function Ta(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function Ea(...e){return()=>{for(let t=0;te!==t[n])}function Ma(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e{for(let e=0;e{t.current=t.next}};return t}var Fa={...d},Ia=Fa.useInsertionEffect,La=Ia&&Ia!==Fa.useLayoutEffect?Ia:e=>e();function Z(e){let t=ei(Ra).current;return t.next=e,La(t.effect),t.trampoline}function Ra(){let e={next:void 0,callback:za,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function za(){}var Ba=null;globalThis.requestAnimationFrame;var Va=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n=this.callbacks.length||(this.callbacks[t]=null,--this.callbacksCount)}},Ha=class e{static create(){return new e}static request(e){return Va.request(e)}static cancel(e){return Va.cancel(e)}currentId=Ba;request(e){this.cancel(),this.currentId=Va.request(()=>{this.currentId=Ba,e()})}cancel=()=>{this.currentId!==Ba&&(Va.cancel(this.currentId),this.currentId=Ba)};disposeEffect=()=>this.cancel};function Ua(){let e=ei(Ha.create).current;return pi(e.disposeEffect),e}function Wa(e){return e?.ownerDocument||document}var Ga={clipPath:`inset(50%)`,overflow:`hidden`,whiteSpace:`nowrap`,border:0,padding:0,width:1,height:1,margin:-1},Ka={...Ga,position:`fixed`,top:0,left:0},qa={...Ga,position:`absolute`},Ja=d.forwardRef(function(e,t){let[n,r]=d.useState();return J(()=>{Oi&&Di&&r(`button`)},[]),(0,S.jsx)(`span`,{...e,ref:t,style:Ka,"aria-hidden":!n||void 0,tabIndex:0,role:n,"data-base-ui-focus-guard":``})});function Ya(e,t){return t<0||t>=e.length}function Xa(e,t){return Qa(e.current,{disabledIndices:t})}function Za(e,t){return Qa(e.current,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function Qa(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:r,amount:i=1}={}){let a=t;do a+=n?-i:i;while(a>=0&&a<=e.length-1&&$a(e,a,r));return a}function $a(e,t,n){if(typeof n==`function`?n(t):n?.includes(t)??!1)return!0;let r=e[t];return r?!Q(r)||!n&&(r.hasAttribute(`disabled`)||r.getAttribute(`aria-disabled`)===`true`):!1}function eo(e){return e.visibility===`hidden`||e.visibility===`collapse`}function Q(e,t=e?Yt(e):null){return!e||!e.isConnected||!t||eo(t)?!1:typeof e.checkVisibility==`function`?e.checkVisibility():t.display!==`none`&&t.display!==`contents`}var to=`a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]`;function no(e){let t=e.assignedSlot;if(t)return t;if(e.parentElement)return e.parentElement;let n=e.getRootNode();return Lt(n)?n.host:null}function ro(e){for(let t of Array.from(e.children))if(Mt(t)===`summary`)return t;return null}function io(e,t){let n=ro(t);return!!n&&(e===n||Ui(n,e))}function ao(e){let t=e?Mt(e):``;return e!=null&&e.matches(to)&&(t!==`summary`||e.parentElement!=null&&Mt(e.parentElement)===`details`&&ro(e.parentElement)===e)&&(t!==`details`||ro(e)==null)&&(t!==`input`||e.type!==`hidden`)}function oo(e){if(!ao(e)||!e.isConnected||e.matches(`:disabled`))return!1;for(let t=e;t;t=no(t)){let n=t!==e,r=Mt(t)===`slot`;if(t.hasAttribute(`inert`)||n&&Mt(t)===`details`&&!t.open&&!io(e,t)||t.hasAttribute(`hidden`)||!r&&!so(t,n))return!1}return!0}function so(e,t){let n=Yt(e);return t?n.display!==`none`:Q(e,n)}function co(e){let t=e.tabIndex;if(t<0){let t=Mt(e);if(t===`details`||t===`audio`||t===`video`||It(e)&&e.isContentEditable)return 0}return t}function lo(e){if(Mt(e)!==`input`)return null;let t=e;return t.type===`radio`&&t.name!==``?t:null}function uo(e,t){let n=lo(e);if(!n)return!0;let r=t.find(e=>{let t=lo(e);return t?.name===n.name&&t.form===n.form&&t.checked});return r?r===n:t.find(e=>{let t=lo(e);return t?.name===n.name&&t.form===n.form})===n}function fo(e){if(It(e)&&Mt(e)===`slot`){let t=e.assignedElements({flatten:!0});if(t.length>0)return t}return It(e)&&e.shadowRoot?Array.from(e.shadowRoot.children):Array.from(e.children)}function po(e,t){fo(e).forEach(e=>{ao(e)&&t.push(e),po(e,t)})}function mo(e){let t=[];return po(e,t),t.filter(oo)}function ho(e){let t=mo(e);return t.filter(e=>co(e)>=0&&uo(e,t))}function go(e,t){let n=ho(e),r=n.length;if(r===0)return;let i=Hi(Wa(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}function _o(e){return go(Wa(e).body,1)||e}function vo(e,t){if(!e)return null;let n=ho(Wa(e).body),r=n.length;if(r===0)return null;let i=n.indexOf(e);return i===-1?null:n[(i+t+r)%r]}function yo(e){return vo(e,1)}function bo(e){return vo(e,-1)}function xo(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!Ui(n,r)}function So(e,t,n=!0){return e.filter(e=>e.parentId===t).flatMap(t=>[...!n||t.context?.open?[t]:[],...So(e,t.id,n)])}function Co(e){return`data-base-ui-${e}`}var wo=0;function To(e,t={}){let{preventScroll:n=!1,sync:r=!1,shouldFocus:i}=t;cancelAnimationFrame(wo);function a(){i&&!i()||e?.focus({preventScroll:n})}if(r)return a(),ia;let o=requestAnimationFrame(a);return wo=o,()=>{wo===o&&(cancelAnimationFrame(o),wo=0)}}var Eo=0;function Do(e,t=`mui`){let[n,r]=d.useState(e),i=e||n;return d.useEffect(()=>{n??(Eo+=1,r(`${t}-${Eo}`))},[n,t]),i}var Oo=Fa.useId;function ko(e,t){if(Oo!==void 0){let n=Oo();return e??(t?`${t}-${n}`:n)}return Do(e,t)}var Ao=19;function jo(e){return Ao>=e}function Mo(e){if(!d.isValidElement(e))return null;let t=e,n=t.props;return(jo(19)?n?.ref:t.ref)??null}function No(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function Po(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function Fo(e,t){return typeof e==`function`?e(t):e}function Io(e,t){return typeof e==`function`?e(t):e}var Lo={};function Ro(e,t,n,r,i){if(!n&&!r&&!i&&!e)return Bo(t);let a=Bo(e);return t&&(a=Vo(a,t)),n&&(a=Vo(a,n)),r&&(a=Vo(a,r)),i&&(a=Vo(a,i)),a}function zo(e){if(e.length===0)return Lo;if(e.length===1)return Bo(e[0]);let t=Bo(e[0]);for(let n=1;n=65&&i<=90&&(typeof t==`function`||typeof t>`u`)}function Go(e){return typeof e==`function`}function Ko(e,t){return Go(e)?e(t):e??Lo}function qo(e,t){return t?e?(...n)=>{let r=n[0];if(Zo(r)){let i=r;Yo(i);let a=t(...n);return i.baseUIHandlerPrevented||e?.(...n),a}let i=t(...n);return e?.(...n),i}:Jo(t):e}function Jo(e){return e&&((...t)=>{let n=t[0];return Zo(n)&&Yo(n),e(...t)})}function Yo(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function Xo(e,t){return t?e?t+` `+e:t:e}function Zo(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function Qo(e,t,n={}){let r=t.render,i=$o(t,n);return n.enabled===!1?null:ns(e,r,i,n.state??oa)}function $o(e,t={}){let{className:n,style:r,render:i}=e,{state:a=oa,ref:o,props:s,stateAttributesMapping:c,enabled:l=!0}=t,u=l?Fo(n,a):void 0,d=l?Io(r,a):void 0,f=l?Po(a,c):oa,p=l&&s?es(s):void 0,m=l?No(f,p)??{}:oa;return typeof document<`u`&&(l?Array.isArray(o)?m.ref=Oa([m.ref,Mo(i),...o]):m.ref=Da(m.ref,Mo(i),o):Da(null,null)),l?(u!==void 0&&(m.className=Xo(m.className,u)),d!==void 0&&(m.style=No(m.style,d)),m):oa}function es(e){return Array.isArray(e)?zo(e):Ro(void 0,e)}var ts=Symbol.for(`react.lazy`);function ns(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=Ro(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===ts&&(i=d.Children.toArray(t)[0]),d.cloneElement(i,e)}if(e&&typeof e==`string`)return rs(e,n);throw Error(li(8))}function rs(e,t){return e===`button`?(0,d.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,d.createElement)(`img`,{alt:``,...t,key:t.key}):d.createElement(e,t)}var is=500,as=500,os={style:{transition:`none`}},ss=`data-base-ui-swipe-ignore`,cs=`data-swipe-ignore`,ls=`[${ss}]`,us=`[${cs}]`,ds={fallbackAxisSide:`end`},fs=d.createContext(null),ps=()=>d.useContext(fs),ms=Co(`portal`);function hs(e={}){let{ref:t,container:n,componentProps:r=oa,elementProps:i}=e,a=ko(),o=ps()?.portalNode,[s,c]=d.useState(null),[l,u]=d.useState(null),f=Z(e=>{e!==null&&u(e)}),p=d.useRef(null);J(()=>{if(n===null){p.current&&(p.current=null,u(null),c(null));return}if(a==null)return;let e=(n&&(Ft(n)?n:n.current))??o??document.body;if(e==null){p.current&&(p.current=null,u(null),c(null));return}p.current!==e&&(p.current=e,u(null),c(e))},[n,o,a]);let m=Qo(`div`,r,{ref:[t,f],props:[{id:a,[ms]:``},i]});return{portalNode:l,portalSubtree:s&&m?At.createPortal(m,s):null}}function gs(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}var _s=class{nodesRef={current:[]};events=gs();addNode(e){this.nodesRef.current.push(e)}removeNode(e){let t=this.nodesRef.current.findIndex(t=>t===e);t!==-1&&this.nodesRef.current.splice(t,1)}},vs=d.createContext(null),ys=d.createContext(null),bs=()=>d.useContext(vs)?.id||null,xs=e=>{let t=d.useContext(ys);return e??t};function Ss(e){let t=ko(),n=xs(e),r=bs();return J(()=>{if(!t)return;let e={id:t,parentId:r};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,r]),t}function Cs(e){let{children:t,externalTree:n}=e,r=ei(()=>n??new _s).current;return(0,S.jsx)(ys.Provider,{value:r,children:t})}function ws(e){return e==null?e:`current`in e?e.current:e}function Ts(e,t={}){let{enabled:n=!0,event:r=`click`,toggle:i=!0,ignoreMouse:a=!1,stickIfOpen:o=!0,touchOpenDelay:s=0,reason:c=ca}=t,l=`rootStore`in e?e.rootStore:e,u=l.context.dataRef,f=d.useRef(void 0),p=Ua(),m=gi(),h=d.useMemo(()=>{function e(e,t,n,r){let i=X(c,t,n);e&&r===`touch`&&s>0?m.start(s,()=>{l.setOpen(!0,i)}):l.setOpen(e,i)}function t(e,t,n){let r=u.current.openEvent,a=l.select(`domReferenceElement`)!==t;return e&&a||!e||!i?!0:r&&o?!n(r.type):!1}return{onPointerDown(e){f.current=e.pointerType},onMouseDown(n){let i=f.current,o=n.nativeEvent,s=l.select(`open`);if(n.button!==0||r===`click`||Pi(i,!0)&&a)return;let c=t(s,n.currentTarget,e=>e===`click`||e===`mousedown`),u=Wi(o);if(Ji(u)){e(c,o,u,i);return}let d=n.currentTarget;p.request(()=>{e(c,o,d,i)})},onClick(n){if(r===`mousedown-only`)return;let i=f.current;if(r===`mousedown`&&i){f.current=void 0;return}Pi(i,!0)&&a||e(t(l.select(`open`),n.currentTarget,e=>e===`click`||e===`mousedown`||e===`keydown`||e===`keyup`),n.nativeEvent,n.currentTarget,i)},onKeyDown(){f.current=void 0}}},[u,r,a,c,l,o,i,p,m,s]);return d.useMemo(()=>n?{reference:h}:oa,[n,h])}function Es(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Ds(e){return e!=null&&e.clientX!=null}function Os(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,i=`rootStore`in e?e.rootStore:e,a=i.useState(`open`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.context.dataRef,l=d.useRef(!1),u=d.useRef(null),[f,p]=d.useState(),[m,h]=d.useState([]),g=Z(e=>{i.set(`positionReference`,e)}),_=Z((e,t,n)=>{l.current||c.current.openEvent&&!Ds(c.current.openEvent)||i.set(`positionReference`,Es(n??s,{x:e,y:t,axis:r,dataRef:c,pointerType:f}))}),v=Z(e=>{a?u.current||(_(e.clientX,e.clientY,e.currentTarget),h([])):_(e.clientX,e.clientY,e.currentTarget)}),y=Pi(f)?o:a;d.useEffect(()=>{if(!n){g(s);return}if(!y)return;function e(){u.current?.(),u.current=null}let t=Nt(o);function r(t){let n=Wi(t);Ui(o,n)?e():_(t.clientX,t.clientY)}return!c.current.openEvent||Ds(c.current.openEvent)?u.current=Ta(t,`mousemove`,r):g(s),e},[y,n,o,c,s,i,_,g,m]),d.useEffect(()=>()=>{i.set(`positionReference`,null)},[i]),d.useEffect(()=>{n&&!o&&(l.current=!1)},[n,o]),d.useEffect(()=>{!n&&a&&(l.current=!0)},[n,a]);let b=d.useMemo(()=>{function e(e){p(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return d.useMemo(()=>n?{reference:b,trigger:b}:{},[n,b])}function ks(){return!1}function As(e){return{escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}}function js(e,t={}){let{enabled:n=!0,escapeKey:r=!0,outsidePress:i=!0,outsidePressEvent:a=`sloppy`,referencePress:o=ks,bubbles:s,externalTree:c}=t,l=`rootStore`in e?e.rootStore:e,u=l.useState(`open`),f=l.useState(`floatingElement`),{dataRef:p}=l.context,m=xs(c),h=Z(typeof i==`function`?i:()=>!1),g=typeof i==`function`?h:i,_=g!==!1,v=Z(()=>a),{escapeKey:y,outsidePress:b}=As(s),x=d.useRef(!1),S=d.useRef(!1),C=d.useRef(!1),w=d.useRef(!1),T=d.useRef(``),E=d.useRef(null),D=gi(),O=gi(),k=Z(()=>{O.clear(),p.current.insideReactTree=!1}),A=Z(e=>{let t=p.current.floatingContext?.nodeId;return(m?So(m.nodesRef.current,t):[]).some(t=>t.context?.open&&!t.context.dataRef.current[e])}),j=Z(e=>Ki(e,l.select(`floatingElement`))||Ki(e,l.select(`domReferenceElement`))),M=Z(e=>{o()&&l.setOpen(!1,X(ca,e.nativeEvent))}),N=Z(e=>{if(!u||!n||!r||e.key!==`Escape`||w.current||!y&&A(`__escapeKeyBubbles`))return;let t=X(ma,ji(e)?e.nativeEvent:e);l.setOpen(!1,t),t.isCanceled||e.preventDefault(),!y&&!t.isPropagationAllowed&&e.stopPropagation()}),P=Z(()=>{p.current.insideReactTree=!0,O.start(0,k)}),F=Z(e=>{if(!u||!n||e.button!==0)return;let t=Wi(e.nativeEvent);Ui(l.select(`floatingElement`),t)&&(x.current||(x.current=!0,S.current=!1))}),I=Z(e=>{!u||!n||(e.defaultPrevented||e.nativeEvent.defaultPrevented)&&x.current&&(S.current=!0)});d.useEffect(()=>{if(!u||!n)return;p.current.__escapeKeyBubbles=y,p.current.__outsidePressBubbles=b;let e=new hi,t=new hi;function i(){e.clear(),w.current=!0}function a(){e.start(Di?5:0,()=>{w.current=!1})}function o(){C.current=!0,t.start(0,()=>{C.current=!1})}function s(){x.current=!1,S.current=!1}function c(){let e=T.current,t=e===`pen`||!e?`mouse`:e,n=v(),r=typeof n==`function`?n():n;return typeof r==`string`?r:r[t]}function d(e){let t=c();return t===`intentional`&&e.type!==`click`||t===`sloppy`&&e.type===`click`}function h(e){let t=p.current.floatingContext?.nodeId,n=m&&So(m.nodesRef.current,t).some(t=>Ki(e,t.context?.elements.floating));return j(e)||n}function O(e){if(d(e)){e.type!==`click`&&!j(e)&&(t.clear(),C.current=!1),k();return}if(p.current.insideReactTree){k();return}let n=Wi(e),r=`[${Co(`inert`)}]`,i=q(n)?n.getRootNode():null,a=Array.from((Lt(i)?i:Wa(l.select(`floatingElement`))).querySelectorAll(r)),o=l.context.triggerElements;if(n&&(o.hasElement(n)||o.hasMatchingElement(e=>Ui(e,n))))return;let s=q(n)?n:null;for(;s&&!Jt(s);){let e=Zt(s);if(Jt(e)||!q(e))break;s=e}if(!(a.length&&q(n)&&!qi(n)&&!Ui(n,l.select(`floatingElement`))&&a.every(e=>!Ui(s,e)))){if(It(n)&&!(`touches`in e)){let t=Jt(n),r=Yt(n),i=/auto|scroll/,a=t||i.test(r.overflowX),o=t||i.test(r.overflowY),s=a&&n.clientWidth>0&&n.scrollWidth>n.clientWidth,c=o&&n.clientHeight>0&&n.scrollHeight>n.clientHeight,l=r.direction===`rtl`,u=c&&(l?e.offsetX<=n.offsetWidth-n.clientWidth:e.offsetX>n.clientWidth),d=s&&e.offsetY>n.clientHeight;if(u||d)return}if(!h(e)){if(c()===`intentional`&&C.current){t.clear(),C.current=!1;return}typeof g==`function`&&!g(e)||A(`__outsidePressBubbles`)||(l.setOpen(!1,X(da,e)),k())}}}function M(e){c()!==`sloppy`||e.pointerType===`touch`||!l.select(`open`)||!n||j(e)||O(e)}function P(e){if(c()!==`sloppy`||!l.select(`open`)||!n||j(e))return;let t=e.touches[0];t&&(E.current={startTime:Date.now(),startX:t.clientX,startY:t.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},D.start(1e3,()=>{E.current&&(E.current.dismissOnTouchEnd=!1,E.current.dismissOnMouseDown=!1)}))}function F(e,t){let n=Wi(e);if(!n)return;let r=Ta(n,e.type,()=>{t(e),r()})}function I(e){T.current=`touch`,F(e,P)}function L(e){D.clear(),e.type===`pointerdown`&&(T.current=e.pointerType),!(e.type===`mousedown`&&E.current&&!E.current.dismissOnMouseDown)&&F(e,e=>{e.type===`pointerdown`?M(e):O(e)})}function R(e){if(!x.current)return;let n=S.current;if(s(),c()===`intentional`){if(e.type===`pointercancel`){n&&o();return}if(!h(e)){if(n){o();return}typeof g==`function`&&!g(e)||(t.clear(),C.current=!0,k())}}}function ee(e){if(c()!==`sloppy`||!E.current||j(e))return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-E.current.startX),r=Math.abs(t.clientY-E.current.startY),i=Math.sqrt(n*n+r*r);i>5&&(E.current.dismissOnTouchEnd=!0),i>10&&(O(e),D.clear(),E.current=null)}function z(e){F(e,ee)}function B(e){c()!==`sloppy`||!E.current||j(e)||(E.current.dismissOnTouchEnd&&O(e),D.clear(),E.current=null)}function V(e){F(e,B)}let H=Wa(f),te=Ea(r&&Ea(Ta(H,`keydown`,N),Ta(H,`compositionstart`,i),Ta(H,`compositionend`,a)),_&&Ea(Ta(H,`click`,L,!0),Ta(H,`pointerdown`,L,!0),Ta(H,`pointerup`,R,!0),Ta(H,`pointercancel`,R,!0),Ta(H,`mousedown`,L,!0),Ta(H,`mouseup`,R,!0),Ta(H,`touchstart`,I,!0),Ta(H,`touchmove`,z,!0),Ta(H,`touchend`,V,!0)));return()=>{te(),e.clear(),t.clear(),s(),C.current=!1}},[p,f,r,_,g,u,n,y,b,N,k,v,A,j,m,l,D]),d.useEffect(k,[g,k]);let L=d.useMemo(()=>({onKeyDown:N,onPointerDown:M,onClick:M}),[N,M]),R=d.useMemo(()=>({onKeyDown:N,onPointerDown:I,onMouseDown:I,onClickCapture:P,onMouseDownCapture(e){P(),F(e)},onPointerDownCapture(e){P(),F(e)},onMouseUpCapture:P,onTouchEndCapture:P,onTouchMoveCapture:P}),[N,P,F,I]);return d.useMemo(()=>n?{reference:L,floating:R,trigger:L}:{},[n,L,R])}function Ms(e,t,n,r){return{left:e,top:t,right:n,bottom:r,x:e,y:t,width:n-e,height:r-t}}function Ns(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom,width:e.width,height:e.height}}function Ps(e){let t=[],n,r=1/0,i=1/0,a=-1/0,o=-1/0;for(let s of Array.from(e).sort((e,t)=>e.top-t.top)){if(r=Math.min(r,s.left),i=Math.min(i,s.top),a=Math.max(a,s.right),o=Math.max(o,s.bottom),!n||s.top-n.top>n.height/2)t.push(Ns(s));else{let e=t[t.length-1];e.left=Math.min(e.left,s.left),e.right=Math.max(e.right,s.right),e.bottom=Math.max(e.bottom,s.bottom),e.width=e.right-e.left,e.height=e.bottom-e.top}n=s}return{lines:t,fallback:Ms(r,i,a,o)}}function Fs(e,t,n){return e.findIndex(e=>t>e.left-2&&te.top-2&&n{if(o.length>0)throw Error(li(1));let s;if(e&&t&&n&&r&&i&&a)s=(o,s,c,l)=>a(e(o,s,c,l),t(o,s,c,l),n(o,s,c,l),r(o,s,c,l),i(o,s,c,l),s,c,l);else if(e&&t&&n&&r&&i)s=(a,o,s,c)=>i(e(a,o,s,c),t(a,o,s,c),n(a,o,s,c),r(a,o,s,c),o,s,c);else if(e&&t&&n&&r)s=(i,a,o,s)=>r(e(i,a,o,s),t(i,a,o,s),n(i,a,o,s),a,o,s);else if(e&&t&&n)s=(r,i,a,o)=>n(e(r,i,a,o),t(r,i,a,o),i,a,o);else if(e&&t)s=(n,r,i,a)=>t(e(n,r,i,a),r,i,a);else if(e)s=e;else throw Error(`Missing arguments`);return s},Bs=jo(19)?Us:Ws;function Vs(e,t,n,r,i){return Bs(e,t,n,r,i)}function Hs(e,t,n,r,i){let a=d.useCallback(()=>t(e.getSnapshot(),n,r,i),[e,t,n,r,i]);return Gr.useSyncExternalStore(e.subscribe,a,a)}ii({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let n=0;n0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{let n=new Set;for(let t of e.syncHooks)n.add(t.store);let r=[];for(let e of n)r.push(e.subscribe(t));return()=>{for(let e of r)e()}}),Gr.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot))}});function Us(e,t,n,r,i){let a=ri();if(!a)return Hs(e,t,n,r,i);let o=a.syncIndex;a.syncIndex+=1;let s;return a.didInitialize?(s=a.syncHooks[o],(s.store!==e||s.selector!==t||!Object.is(s.a1,n)||!Object.is(s.a2,r)||!Object.is(s.a3,i))&&(s.store!==e&&(a.didChangeStore=!0),s.store=e,s.selector=t,s.a1=n,s.a2=r,s.a3=i,s.value=t(e.getSnapshot(),n,r,i))):(s={store:e,selector:t,a1:n,a2:r,a3:i,value:t(e.getSnapshot(),n,r,i)},a.syncHooks.push(s)),s.value}function Ws(e,t,n,r,i){return Qr.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,e=>t(e,n,r,i))}var Gs=class{constructor(e){this.state=e,this.listeners=new Set,this.updateTick=0}subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.state;setState(e){if(this.state===e)return;this.state=e,this.updateTick+=1;let t=this.updateTick;for(let n of this.listeners){if(t!==this.updateTick)return;n(e)}}update(e){for(let t in e)if(!Object.is(this.state[t],e[t])){this.setState({...this.state,...e});return}}set(e,t){Object.is(this.state[e],t)||this.setState({...this.state,[e]:t})}notifyAll(){let e={...this.state};this.setState(e)}use(e,t,n,r){return Vs(this,e,t,n,r)}},Ks=class extends Gs{constructor(e,t={},n){super(e),this.context=t,this.selectors=n}useSyncedValue(e,t){d.useDebugValue(e);let n=this;J(()=>{n.state[e]!==t&&n.set(e,t)},[n,e,t])}useSyncedValueWithCleanup(e,t){let n=this;J(()=>(n.state[e]!==t&&n.set(e,t),()=>{n.set(e,void 0)}),[n,e,t])}useSyncedValues(e){let t=this;J(()=>{t.update(e)},[t,...Object.values(e)])}useControlledProp(e,t){d.useDebugValue(e);let n=this,r=t!==void 0;J(()=>{r&&!Object.is(n.state[e],t)&&n.setState({...n.state,[e]:t})},[n,e,t,r])}select(e,t,n,r){let i=this.selectors[e];return i(this.state,t,n,r)}useState(e,t,n,r){return d.useDebugValue(e),Vs(this,this.selectors[e],t,n,r)}useContextCallback(e,t){d.useDebugValue(e);let n=Z(t??ia);this.context[e]=n}useStateSetter(e){let t=d.useRef(void 0);return t.current===void 0&&(t.current=t=>{this.set(e,t)}),t.current}observe(e,t){let n;n=typeof e==`function`?e:this.selectors[e];let r=n(this.state);return t(r,r,this),this.subscribe(e=>{let i=n(e);if(!Object.is(r,i)){let e=r;r=i,t(i,e,this)}})}};function qs(){let[,e]=d.useState({});return d.useCallback(()=>{e({})},[])}var Js={open:$(e=>e.open),transitionStatus:$(e=>e.transitionStatus),domReferenceElement:$(e=>e.domReferenceElement),referenceElement:$(e=>e.positionReference??e.referenceElement),floatingElement:$(e=>e.floatingElement),floatingId:$(e=>e.floatingId)},Ys=class extends Ks{constructor(e){let{syncOnly:t,nested:n,onOpenChange:r,triggerElements:i,...a}=e;super({...a,positionReference:a.referenceElement,domReferenceElement:a.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:gs(),nested:n,triggerElements:i},Js),this.syncOnly=t}syncOpenEvent=(e,t)=>{(!e||!this.state.open||t!=null&&Fi(t))&&(this.context.dataRef.current.openEvent=e?t:void 0)};dispatchOpenChange=(e,t)=>{this.syncOpenEvent(e,t.event);let n={open:e,reason:t.reason,nativeEvent:t.event,nested:this.context.nested,triggerElement:t.trigger};this.context.events.emit(`openchange`,n)};setOpen=(e,t)=>{if(this.syncOnly){this.context.onOpenChange?.(e,t);return}this.dispatchOpenChange(e,t),this.context.onOpenChange?.(e,t)}};function Xs(e){let{popupStore:t,treatPopupAsFloatingElement:n=!1,floatingRootContext:r,floatingId:i,nested:a,onOpenChange:o}=e,s=t.useState(`open`),c=t.useState(`activeTriggerElement`),l=t.useState(n?`popupElement`:`positionerElement`),u=t.context.triggerElements,f=o,p=d.useRef(null);r===void 0&&p.current===null&&(p.current=new Ys({open:s,transitionStatus:void 0,referenceElement:c,floatingElement:l,triggerElements:u,onOpenChange:f,floatingId:i,syncOnly:!0,nested:a}));let m=r??p.current;return t.useSyncedValue(`floatingId`,i),J(()=>{let e={open:s,floatingId:i,referenceElement:c,floatingElement:l};q(c)&&(e.domReferenceElement=c),m.state.positionReference===m.state.referenceElement&&(e.positionReference=c),m.update(e)},[s,i,c,l,m]),m.context.onOpenChange=f,m.context.nested=a,m}function Zs(e,t=!1,n=!1){let[r,i]=d.useState(e&&t?`idle`:void 0),[a,o]=d.useState(e);return e&&!a&&(o(!0),i(`starting`)),!e&&a&&r!==`ending`&&!n&&i(`ending`),!e&&!a&&r===`ending`&&i(void 0),J(()=>{if(!e&&a&&r!==`ending`&&n){let e=Ha.request(()=>{i(`ending`)});return()=>{Ha.cancel(e)}}},[e,a,r,n]),J(()=>{if(!e||t)return;let n=Ha.request(()=>{i(void 0)});return()=>{Ha.cancel(n)}},[t,e]),J(()=>{if(!e||!t)return;e&&a&&r!==`idle`&&i(`starting`);let n=Ha.request(()=>{i(`idle`)});return()=>{Ha.cancel(n)}},[t,e,a,r]),{mounted:a,setMounted:o,transitionStatus:r}}var Qs=(function(e){return e.startingStyle=`data-starting-style`,e.endingStyle=`data-ending-style`,e})({}),$s={[Qs.startingStyle]:``},ec={[Qs.endingStyle]:``},tc={transitionStatus(e){return e===`starting`?$s:e===`ending`?ec:null}};function nc(e,t=!1,n=!0){let r=Ua();return Z((i,a=null)=>{r.cancel();let o=ws(e);if(o==null)return;let s=o,c=()=>{At.flushSync(i)};if(typeof s.getAnimations!=`function`||globalThis.BASE_UI_ANIMATIONS_DISABLED){i();return}function l(){Promise.all(s.getAnimations().map(e=>e.finished)).then(()=>{a?.aborted||c()}).catch(()=>{if(n){a?.aborted||c();return}let e=s.getAnimations();!a?.aborted&&e.length>0&&e.some(e=>e.pending||e.playState!==`finished`)&&l()})}if(t){let e=Qs.startingStyle;if(!s.hasAttribute(e)){r.request(l);return}let t=new MutationObserver(()=>{s.hasAttribute(e)||(t.disconnect(),l())});t.observe(s,{attributes:!0,attributeFilter:[e]}),a?.addEventListener(`abort`,()=>t.disconnect(),{once:!0});return}r.request(l)})}function rc(e){let{enabled:t=!0,open:n,ref:r,onComplete:i}=e,a=Z(i),o=nc(r,n,!1);d.useEffect(()=>{if(!t)return;let e=new AbortController;return o(a,e.signal),()=>{e.abort()}},[t,n,a,o])}var ic={tabIndex:-1,[Ii]:``};function ac(e,t,n=!1){let r=ko(),i=bs()!=null,a=d.useRef(null);e===void 0&&a.current===null&&(a.current=t(r,i));let o=e??a.current;return Xs({popupStore:o,treatPopupAsFloatingElement:n,floatingRootContext:o.state.floatingRootContext,floatingId:r,nested:i,onOpenChange:o.setOpen}),{store:o,internalStore:a.current}}function oc(e,t){let n=d.useRef(null),r=d.useRef(null);return d.useCallback(i=>{if(e===void 0)return;let a=!1;if(n.current!==null){let e=n.current,i=r.current,o=t.context.triggerElements.getById(e);i&&o===i&&(t.context.triggerElements.delete(e),a=!0),n.current=null,r.current=null}if(i!==null&&(n.current=e,r.current=i,t.context.triggerElements.add(e,i),a=!0),a){let e=t.context.triggerElements.size;t.select(`open`)&&t.state.triggerCount!==e&&t.set(`triggerCount`,e)}},[t,e])}function sc(e,t,n,r=!1){t?e.preventUnmountingOnClose=!1:r&&(e.preventUnmountingOnClose=!0);let i=n?.id??null;(i||t)&&(e.activeTriggerId=i,e.activeTriggerElement=n??null)}function cc(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function lc(e,t,n,r={}){let i=n.reason,a=i===la,o=t&&i===ua,s=!t&&(i===ca||i===ma),c=cc(n);if(e.context.onOpenChange?.(t,n),n.isCanceled)return;r.onBeforeDispatch?.(),e.state.floatingRootContext.dispatchOpenChange(t,n);let l=()=>{let i={...r.extraState,open:t};o?i.instantType=`focus`:s?i.instantType=`dismiss`:a&&(i.instantType=void 0),sc(i,t,n.trigger,c()),e.update(i)};a?At.flushSync(l):l()}function uc(e,t,n,r){zs(()=>{t===void 0&&e.state.open===!1&&n&&(e.state={...e.state,open:!0,activeTriggerId:r,preventUnmountingOnClose:!1})})}function dc(e,t,n,r){let i=n.useState(`isMountedByTrigger`,e),a=oc(e,n),o=Z(t=>{if(a(t),!t)return;let i=n.select(`open`),o=n.select(`activeTriggerId`);if(o===e){n.update({activeTriggerElement:t,...i?r:null});return}o==null&&i&&n.update({activeTriggerId:e,activeTriggerElement:t,...r})});return J(()=>{i&&n.update({activeTriggerElement:t.current,...r})},[i,n,t,...Object.values(r)]),{registerTrigger:o,isMountedByThisTrigger:i}}function fc(e,t={}){let{closeOnActiveTriggerUnmount:n=!1}=t,r=e.useState(`open`);J(()=>{if(!r){e.state.triggerCount!==0&&e.set(`triggerCount`,0);return}let t=e.context.triggerElements.size,i={};e.state.triggerCount!==t&&(i.triggerCount=t);let a=e.select(`activeTriggerId`),o=null;if(a){let t=e.context.triggerElements.getById(a);t?t!==e.state.activeTriggerElement&&(i.activeTriggerElement=t):o=a}if(!o&&!a&&t===1){let t=e.context.triggerElements.entries().next();if(!t.done){let[e,n]=t.value;i.activeTriggerId=e,i.activeTriggerElement=n}}(i.triggerCount!==void 0||i.activeTriggerId!==void 0||i.activeTriggerElement!==void 0)&&e.update(i),o&&n&&queueMicrotask(()=>{if(e.select(`open`)&&e.select(`activeTriggerId`)===o&&!e.context.triggerElements.getById(o)){let t=X(sa);e.setOpen(!1,t),t.isCanceled||e.update({activeTriggerId:null,activeTriggerElement:null})}})},[r,e,e.useState(`triggerCount`),n])}function pc(e,t,n){let{mounted:r,setMounted:i,transitionStatus:a}=Zs(e),o=t.useState(`preventUnmountingOnClose`),s=!e&&o;t.useSyncedValues({mounted:r,transitionStatus:a,preventUnmountingOnClose:s});let c=Z(()=>{i(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)});return rc({enabled:r&&!e&&!s,open:e,ref:t.context.popupRef,onComplete(){e||c()}}),{forceUnmount:c,transitionStatus:a}}function mc(e,t){e.useSyncedValues(t),J(()=>()=>{e.update({activeTriggerProps:oa,inactiveTriggerProps:oa,popupProps:oa})},[e])}var hc=class{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(e,t){let n=this.idMap.get(e);n!==t&&(n!==void 0&&this.elementsSet.delete(n),this.elementsSet.add(t),this.idMap.set(e,t))}delete(e){let t=this.idMap.get(e);t&&(this.elementsSet.delete(t),this.idMap.delete(e))}hasElement(e){return this.elementsSet.has(e)}hasMatchingElement(e){for(let t of this.elementsSet)if(e(t))return!0;return!1}getById(e){return this.idMap.get(e)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}};function gc(){return new Ys({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new hc,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function _c(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:gc(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:oa,inactiveTriggerProps:oa,popupProps:oa}}function vc(e,t,n=!1){return new Ys({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0})}var yc=$(e=>e.triggerIdProp??e.activeTriggerId),bc=$(e=>e.openProp??e.open),xc=$(e=>(e.popupElement?.id??e.floatingId)||void 0);function Sc(e,t){return t!==void 0&&bc(e)&&yc(e)===t}function Cc(e,t){return Sc(e,t)?!0:t!==void 0&&bc(e)&&yc(e)==null&&e.triggerCount===1}var wc={open:bc,mounted:$(e=>e.mounted),transitionStatus:$(e=>e.transitionStatus),floatingRootContext:$(e=>e.floatingRootContext),triggerCount:$(e=>e.triggerCount),preventUnmountingOnClose:$(e=>e.preventUnmountingOnClose),payload:$(e=>e.payload),activeTriggerId:yc,activeTriggerElement:$(e=>e.mounted?e.activeTriggerElement:null),popupId:xc,isTriggerActive:$((e,t)=>t!==void 0&&yc(e)===t),isOpenedByTrigger:$((e,t)=>Sc(e,t)),isMountedByTrigger:$((e,t)=>t!==void 0&&yc(e)===t&&e.mounted),triggerProps:$((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),triggerPopupId:$((e,t)=>Cc(e,t)?xc(e):void 0),popupProps:$(e=>e.popupProps),popupElement:$(e=>e.popupElement),positionerElement:$(e=>e.positionerElement)};function Tc(e){let{open:t=!1,onOpenChange:n,elements:r={}}=e,i=ko(),a=bs()!=null,o=ei(()=>new Ys({open:t,transitionStatus:void 0,onOpenChange:n,referenceElement:r.reference??null,floatingElement:r.floating??null,triggerElements:new hc,floatingId:i,syncOnly:!1,nested:a})).current;return J(()=>{let e={open:t,floatingId:i};r.reference!==void 0&&(e.referenceElement=r.reference,e.domReferenceElement=q(r.reference)?r.reference:null),r.floating!==void 0&&(e.floatingElement=r.floating),o.update(e)},[t,i,r.reference,r.floating,o]),o.context.onOpenChange=n,o.context.nested=a,o}function Ec(e={}){let{nodeId:t,externalTree:n}=e,r=Tc(e),i=e.rootContext||r,a=i.useState(`referenceElement`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.useState(`open`),l=i.useState(`floatingId`),[u,f]=d.useState(null),[p,m]=d.useState(void 0),[h,g]=d.useState(void 0),_=d.useRef(null),v=xs(n),y=d.useMemo(()=>({reference:a,floating:o,domReference:s}),[a,o,s]),b=Mr({...e,elements:{...y,...u&&{reference:u}}}),x=q(p)?p:null,S=h===void 0?i.state.floatingElement:h;i.useSyncedValue(`referenceElement`,p??null),i.useSyncedValue(`domReferenceElement`,p===void 0?s:x),i.useSyncedValue(`floatingElement`,S);let C=d.useCallback(e=>{let t=q(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;f(t),b.refs.setReference(t)},[b.refs]),w=d.useCallback(e=>{(q(e)||e===null)&&(_.current=e,m(e)),(q(b.refs.reference.current)||b.refs.reference.current===null||e!==null&&!q(e))&&b.refs.setReference(e)},[b.refs,m]),T=d.useCallback(e=>{g(e),b.refs.setFloating(e)},[b.refs]),E=d.useMemo(()=>({...b.refs,setReference:w,setFloating:T,setPositionReference:C,domReference:_}),[b.refs,w,T,C]),D=d.useMemo(()=>({...b.elements,domReference:s}),[b.elements,s]),O=d.useMemo(()=>({...b,dataRef:i.context.dataRef,open:c,onOpenChange:i.setOpen,events:i.context.events,floatingId:l,refs:E,elements:D,nodeId:t,rootStore:i}),[b,E,D,t,i,c,l]);return J(()=>{s&&(_.current=s)},[s]),J(()=>{i.context.dataRef.current.floatingContext=O;let e=v?.nodesRef.current.find(e=>e.id===t);e&&(e.context=O)}),d.useMemo(()=>({...b,context:O,refs:E,elements:D,rootStore:i}),[b,E,D,O,i])}var Dc=Ti&&Di;function Oc(e,t={}){let{enabled:n=!0,delay:r}=t,i=`rootStore`in e?e.rootStore:e,{events:a,dataRef:o}=i.context,s=d.useRef(!1),c=d.useRef(null),l=d.useRef(!0),u=gi();d.useEffect(()=>{let e=i.select(`domReferenceElement`);if(!n)return;let t=Nt(e);function r(){let e=i.select(`domReferenceElement`);!i.select(`open`)&&It(e)&&e===Hi(Wa(e))&&(s.current=!0)}function a(){l.current=!0}function o(){l.current=!1}return Ea(Ta(t,`blur`,r),Dc&&Ta(t,`keydown`,a,!0),Dc&&Ta(t,`pointerdown`,o,!0))},[i,n]),d.useEffect(()=>{if(!n)return;function e(e){if(e.reason===ca||e.reason===ma){let e=i.select(`domReferenceElement`);q(e)&&(c.current=e,s.current=!0)}}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[a,n,i]);let f=d.useMemo(()=>{function e(){s.current=!1,c.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(s.current){if(c.current===n)return;e()}let a=Wi(t.nativeEvent);if(q(a)){if(Dc&&!t.relatedTarget){if(!l.current&&!Ji(a))return}else if(!Zi(a))return}let o=Gi(t.relatedTarget,i.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof r==`function`?r():r;if(i.select(`open`)&&o||p===0||p===void 0){i.setOpen(!0,X(ua,d,f));return}u.start(p,()=>{s.current||i.setOpen(!0,X(ua,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,a=q(n)&&n.hasAttribute(Co(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;u.start(0,()=>{let e=i.select(`domReferenceElement`),t=Hi(Wa(e));!n&&t===e||Ui(o.current.floatingContext?.refs.floating.current,t)||Ui(e,t)||a||Gi(n??t,i.context.triggerElements)||i.setOpen(!1,X(ua,r))})}}},[o,r,i,u]);return d.useMemo(()=>n?{reference:f,trigger:f}:{},[n,f])}var kc=class e{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new hi,this.restTimeout=new hi,this.handleCloseOptions=void 0}static create(){return new e}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose},Ac=new WeakMap;function jc(e){if(!e.performedPointerEventsMutation)return;let t=e.pointerEventsScopeElement;t&&Ac.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty(`pointer-events`),e.pointerEventsReferenceElement?.style.removeProperty(`pointer-events`),e.pointerEventsFloatingElement?.style.removeProperty(`pointer-events`),Ac.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function Mc(e,t){let{scopeElement:n,referenceElement:r,floatingElement:i}=t,a=Ac.get(n);a&&a!==e&&jc(a),jc(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=n,e.pointerEventsReferenceElement=r,e.pointerEventsFloatingElement=i,Ac.set(n,e),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,i.style.pointerEvents=`auto`}function Nc(e){let t=e.context.dataRef.current,n=ei(()=>t.hoverInteractionState??kc.create()).current;return t.hoverInteractionState||=n,pi(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function Pc(e,t={}){let{enabled:n=!0,closeDelay:r=0,nodeId:i}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),{dataRef:l}=a.context,u=xs(),f=bs(),p=Nc(a),m=gi(),h=Z(()=>na(l.current.openEvent?.type,p.interactedInside)),g=Z(()=>ra(l.current.openEvent?.type)),_=Z(()=>{jc(p)});J(()=>{o||(p.pointerType=void 0,p.restTimeoutPending=!1,p.interactedInside=!1,_())},[o,p,_]),d.useEffect(()=>_,[_]),J(()=>{if(n&&o&&p.handleCloseOptions?.blockPointerEvents&&g()&&q(c)&&s){let e=c,t=s,n=Wa(s),r=u?.nodesRef.current.find(e=>e.id===f)?.context?.elements.floating;r&&(r.style.pointerEvents=``);let i=p.pointerEventsScopeElement===t?null:p.pointerEventsScopeElement,a=r===t?null:r,o=p.handleCloseOptions?.getScope?.()??i??a??e.closest(`[data-rootownerid]`)??n.body;return Mc(p,{scopeElement:o,referenceElement:e,floatingElement:t}),()=>{_()}}},[n,o,c,s,p,g,u,f,_]),d.useEffect(()=>{if(!n)return;function e(){return!!(u&&f&&So(u.nodesRef.current,f).length>0)}function t(e){let t=ea(r,`close`,p.pointerType),n=()=>{a.setOpen(!1,X(la,e)),u?.events.emit(`floating.closed`,e)};t?p.openChangeTimeout.start(t,n):(p.openChangeTimeout.clear(),n())}function o(e){let t=Wi(e);if(!Yi(t)){p.interactedInside=!1;return}p.interactedInside=t?.closest(`[aria-haspopup]`)!=null}function c(){p.openChangeTimeout.clear(),m.clear(),u?.events.off(`floating.closed`,v),_()}function d(n){if(e()&&u){u.events.on(`floating.closed`,v);return}if(Gi(n.relatedTarget,a.context.triggerElements))return;let r=l.current.floatingContext?.nodeId??i,o=n.relatedTarget;if(!(u&&r&&q(o)&&So(u.nodesRef.current,r,!1).some(e=>Ui(e.context?.elements.floating,o)))){if(p.handler){p.handler(n);return}_(),g()&&!h()&&t(n)}}function v(t){!u||!f||e()||m.start(0,()=>{u.events.off(`floating.closed`,v),a.setOpen(!1,X(la,t)),u.events.emit(`floating.closed`,t)})}let y=s;return Ea(y&&Ta(y,`mouseenter`,c),y&&Ta(y,`mouseleave`,d),y&&Ta(y,`pointerdown`,o,!0),()=>{u?.events.off(`floating.closed`,v)})},[n,s,a,l,r,i,g,h,_,p,u,f,m])}var Fc={current:null};function Ic(e,t={}){let{enabled:n=!0,delay:r=0,handleClose:i=null,mouseOnly:a=!1,restMs:o=0,move:s=!0,triggerElementRef:c=Fc,externalTree:l,isActiveTrigger:u=!0,getHandleCloseContext:f,isClosing:p,shouldOpen:m}=t,h=`rootStore`in e?e.rootStore:e,{dataRef:g,events:_}=h.context,v=xs(l),y=Nc(h),b=d.useRef(!1),x=Na(i),S=Na(r),C=Na(o),w=Na(n),T=Na(m),E=Na(p),D=Z(()=>na(g.current.openEvent?.type,y.interactedInside)),O=Z(()=>T.current?.()!==!1),k=Z((e,t,n)=>{let r=h.context.triggerElements;if(r.hasElement(t))return!e||!Ui(e,t);if(!q(n))return!1;let i=n;return r.hasMatchingElement(e=>Ui(e,i))&&(!e||!Ui(e,i))}),A=Z(()=>{y.handler&&=(Wa(h.select(`domReferenceElement`)).removeEventListener(`mousemove`,y.handler),void 0)}),j=Z(()=>{jc(y)});return u&&(y.handleCloseOptions=x.current?.__options),d.useEffect(()=>A,[A]),d.useEffect(()=>{if(!n)return;function e(e){e.open?b.current=!1:(b.current=e.reason===la,A(),y.openChangeTimeout.clear(),y.restTimeout.clear(),y.blockMouseMove=!0,y.restTimeoutPending=!1)}return _.on(`openchange`,e),()=>{_.off(`openchange`,e)}},[n,_,y,A]),d.useEffect(()=>{if(!n)return;function e(e,t=!0){let n=ea(S.current,`close`,y.pointerType);n?y.openChangeTimeout.start(n,()=>{h.setOpen(!1,X(la,e)),v?.events.emit(`floating.closed`,e)}):t&&(y.openChangeTimeout.clear(),h.setOpen(!1,X(la,e)),v?.events.emit(`floating.closed`,e))}let t=c.current??(u?h.select(`domReferenceElement`):null);if(!q(t))return;function r(e){if(y.openChangeTimeout.clear(),y.blockMouseMove=!1,a&&!Pi(y.pointerType))return;let t=ta(C.current),n=ea(S.current,`open`,y.pointerType),r=Wi(e),i=e.currentTarget??null,o=h.select(`domReferenceElement`),s=i;if(q(r)&&!h.context.triggerElements.hasElement(r)){for(let e of h.context.triggerElements.elements())if(Ui(e,r)){s=e;break}}q(i)&&q(o)&&!h.context.triggerElements.hasElement(i)&&Ui(i,o)&&(s=o);let c=s!=null&&k(o,s,r),l=h.select(`open`),u=E.current?.()??h.select(`transitionStatus`)===`ending`,d=!l&&u&&b.current,f=!c&&q(s)&&q(o)&&Ui(o,s)&&d,p=t>0&&!n,m=c&&(l||d)||f,g=!l||c;if(m){O()&&h.setOpen(!0,X(la,e,s));return}p||(n?y.openChangeTimeout.start(n,()=>{g&&O()&&h.setOpen(!0,X(la,e,s))}):g&&O()&&h.setOpen(!0,X(la,e,s)))}function i(t){if(D()){j();return}A();let n=Wa(h.select(`domReferenceElement`));y.restTimeout.clear(),y.restTimeoutPending=!1;let r=g.current.floatingContext??f?.();if(!Gi(t.relatedTarget,h.context.triggerElements)){if(x.current&&r){h.select(`open`)||y.openChangeTimeout.clear();let i=c.current;y.handler=x.current({...r,tree:v,x:t.clientX,y:t.clientY,onClose(){j(),A(),w.current&&!D()&&i===h.select(`domReferenceElement`)&&e(t,!0)}}),n.addEventListener(`mousemove`,y.handler),y.handler(t);return}(y.pointerType!==`touch`||!Ui(h.select(`floatingElement`),t.relatedTarget))&&e(t)}}return s?Ea(Ta(t,`mousemove`,r,{once:!0}),Ta(t,`mouseenter`,r),Ta(t,`mouseleave`,i)):Ea(Ta(t,`mouseenter`,r),Ta(t,`mouseleave`,i))},[A,j,g,S,h,n,x,y,u,k,D,a,s,C,c,v,w,f,E,O]),d.useMemo(()=>{if(!n)return;function e(e){y.pointerType=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e,n=e.currentTarget,r=h.select(`domReferenceElement`),i=h.select(`open`),o=k(r,n,e.target);if(a&&!Pi(y.pointerType))return;if(i&&o&&y.handleCloseOptions?.blockPointerEvents){let e=h.select(`floatingElement`);if(e){let t=y.handleCloseOptions?.getScope?.()??n.ownerDocument.body;Mc(y,{scopeElement:t,referenceElement:n,floatingElement:e})}}let s=ta(C.current);if(i&&!o||s===0||!o&&y.restTimeoutPending&&e.movementX**2+e.movementY**2<2)return;y.restTimeout.clear();function c(){if(y.restTimeoutPending=!1,D())return;let e=h.select(`open`);!y.blockMouseMove&&(!e||o)&&O()&&h.setOpen(!0,X(la,t,n))}y.pointerType===`touch`?At.flushSync(()=>{c()}):o&&i?c():(y.restTimeoutPending=!0,y.restTimeout.start(s,c))}}},[n,y,D,k,a,h,C,O])}var Lc=`Escape`;function Rc(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function zc(e,t){return Rc(t,e===Bi||e===Vi,e===Ri||e===zi)}function Bc(e,t,n){return Rc(t,e===Vi,n?e===Ri:e===zi)||e===`Enter`||e===` `||e===``}function Vc(e,t,n){return Rc(t,n?e===Ri:e===zi,e===Vi)}function Hc(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===Lc:Rc(t,n?e===zi:e===Ri,e===Bi)}function Uc(e,t){let{listRef:n,activeIndex:r,onNavigate:i=()=>{},enabled:a=!0,selectedIndex:o=null,allowEscape:s=!1,loopFocus:c=!1,nested:l=!1,rtl:u=!1,virtual:f=!1,focusItemOnOpen:p=`auto`,focusItemOnHover:m=!0,openOnArrowKeyDown:h=!0,disabledIndices:g=void 0,orientation:_=`vertical`,parentOrientation:v,id:y,resetOnPointerLeave:b=!0,externalTree:x,grid:S}=t,C=S!=null,w=`rootStore`in e?e.rootStore:e,T=w.useState(`open`),E=w.useState(`floatingElement`),D=w.useState(`domReferenceElement`),O=w.context.dataRef,k=Qi(E),A=Xi(D),j=Na(k),M=bs(),N=xs(x),P=d.useRef(p),F=d.useRef(o??-1),I=d.useRef(null),L=d.useRef(!0),R=Z(e=>{i(F.current===-1?null:F.current,e)}),ee=d.useRef(!!E),z=d.useRef(T),B=d.useRef(!1),V=d.useRef(!1),H=d.useRef(null),te=Na(g),U=Na(T),ne=Na(o),re=Na(b),ie=Ua(),ae=Ua(),oe=Z(()=>{function e(e){f?N?.events.emit(`virtualfocus`,e):H.current=To(e,{sync:B.current,preventScroll:!0})}let t=n.current[F.current],r=V.current;t&&e(t),(B.current?e=>e():e=>ie.request(e))(()=>{let i=n.current[F.current]||t;i&&(t||e(i),fe&&(r||!L.current)&&i.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});J(()=>{O.current.orientation=_},[O,_]),J(()=>{a&&(T&&E?(F.current=o??-1,P.current&&o!=null&&(V.current=!0,R())):ee.current&&(F.current=-1,R()))},[a,T,E,o,R]),J(()=>{if(a){if(!T){B.current=!1;return}if(E)if(r==null){if(B.current=!1,ne.current!=null)return;if(ee.current&&(F.current=-1,oe()),(!z.current||!ee.current)&&P.current&&(I.current!=null||P.current===!0&&I.current==null)){let e=0,t=()=>{n.current[0]==null?(e<2&&(e?e=>ae.request(e):queueMicrotask)(t),e+=1):(F.current=I.current==null||Bc(I.current,_,u)||l?Xa(n):Za(n),I.current=null,R())};t()}}else Ya(n.current,r)||(F.current=r,oe(),V.current=!1)}},[a,T,E,r,ne,l,n,_,u,R,oe,ae]),J(()=>{if(!a||E||!N||f||!ee.current)return;let e=N.nodesRef.current,t=e.find(e=>e.id===M)?.context?.elements.floating,n=Hi(Wa(D??t??null)),r=e.some(e=>e.context&&Ui(e.context.elements.floating,n));t&&!r&&L.current&&t.focus({preventScroll:!0})},[a,E,D,N,M,f]),J(()=>{z.current=T,ee.current=!!E}),J(()=>{T||(I.current=null,P.current=p)},[T,p]);let se=r!=null,ce=Z(e=>{if(!U.current)return;let t=n.current.indexOf(e.currentTarget);t!==-1&&(F.current!==t||r!==t)&&(F.current=t,R(e))}),le=Z(()=>v??N?.nodesRef.current.find(e=>e.id===M)?.context?.dataRef?.current.orientation),ue=Z(()=>Xa(n,te.current)),de=Z(e=>{if(L.current=!1,B.current=!0,e.which===229||!U.current&&e.currentTarget===j.current)return;if(l&&Hc(e.key,_,u,C)){zc(e.key,le())||Ai(e),w.setOpen(!1,X(ha,e.nativeEvent)),It(D)&&(f?N?.events.emit(`virtualfocus`,D):D.focus());return}let t=F.current,r=Xa(n,g),i=Za(n,g);if(A||(e.key===`Home`&&(Ai(e),F.current=r,R(e)),e.key===`End`&&(Ai(e),F.current=i,R(e))),S!=null){let t=S(e,F.current,n,_,c,u,g,r,i);if(t!=null&&(F.current=t,R(e)),_===`both`)return}if(zc(e.key,_)){if(Ai(e),T&&!f&&Hi(e.currentTarget.ownerDocument)===e.currentTarget){F.current=Bc(e.key,_,u)?r:i,R(e);return}Bc(e.key,_,u)?c?t>=i?s&&t!==n.current.length?F.current=-1:(B.current=!1,F.current=r):F.current=Qa(n.current,{startingIndex:t,disabledIndices:g}):F.current=Math.min(i,Qa(n.current,{startingIndex:t,disabledIndices:g})):c?t<=r?s&&t!==-1?F.current=n.current.length:(B.current=!1,F.current=i):F.current=Qa(n.current,{startingIndex:t,decrement:!0,disabledIndices:g}):F.current=Math.max(r,Qa(n.current,{startingIndex:t,decrement:!0,disabledIndices:g})),Ya(n.current,F.current)&&(F.current=-1),R(e)}}),fe=d.useMemo(()=>({onFocus(e){B.current=!0,ce(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){B.current=!0,V.current=!1,m&&ce(e)},onPointerLeave(e){if(!U.current||!L.current||e.pointerType===`touch`)return;B.current=!0;let t=e.relatedTarget;if(!(!m||n.current.includes(t))&&re.current&&(H.current?.(),H.current=null,F.current=-1,R(e),!f)){let e=j.current,t=Hi(Wa(e));e&&Ui(e,t)&&e.focus({preventScroll:!0})}}}),[ce,U,j,m,n,R,re,f]),pe=d.useMemo(()=>f&&T&&se&&{"aria-activedescendant":`${y}-${r}`},[f,T,se,y,r]),me=d.useMemo(()=>({"aria-orientation":_===`both`?void 0:_,...A?{}:pe,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&T&&!f){let t=Wi(e.nativeEvent);if(t&&!Ui(j.current,t))return;Ai(e),w.setOpen(!1,X(pa,e.nativeEvent)),It(D)&&D.focus();return}de(e)},onPointerMove(){L.current=!0}}),[pe,de,j,_,A,w,T,f,D]),he=d.useMemo(()=>{function e(e){w.setOpen(!0,X(ha,e.nativeEvent,e.currentTarget))}function t(e){p===`auto`&&Mi(e.nativeEvent)&&(P.current=!f)}function n(e){P.current=p,p===`auto`&&Ni(e.nativeEvent)&&(P.current=!0)}return{onKeyDown(t){let n=w.select(`open`);L.current=!1;let r=t.key.startsWith(`Arrow`),i=Vc(t.key,le(),u),a=zc(t.key,_),o=(l?i:a)||t.key===`Enter`||t.key.trim()===``;if(f&&n)return de(t);if(!(!n&&!h&&r)){if(o){let e=zc(t.key,le());I.current=l&&e?null:t.key}if(l){i&&(Ai(t),n?(F.current=ue(),R(t)):e(t));return}a&&(ne.current!=null&&(F.current=ne.current),Ai(t),!n&&h?e(t):de(t),n&&R(t))}},onFocus(e){w.select(`open`)&&!f&&(F.current=-1,R(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[de,p,ue,l,R,w,h,_,le,u,ne,f]),ge=d.useMemo(()=>({...pe,...he}),[pe,he]);return d.useMemo(()=>a?{reference:ge,floating:me,item:fe,trigger:he}:{},[a,ge,me,he,fe])}function Wc(e,t){let{listRef:n,elementsRef:r,activeIndex:i,onMatch:a,disabledIndices:o,onTyping:s,enabled:c=!0,resetMs:l=750,selectedIndex:u=null}=t,f=`rootStore`in e?e.rootStore:e,p=f.useState(`open`),m=gi(),h=d.useRef(``),g=d.useRef(u??i??-1),_=d.useRef(null),v=Z(e=>{function t(e){let t=r?.current[e];return!t||Q(t)}function c(e){return t(e)?o==null||!$a(aa,e,o):!1}function d(e,t,n=0){if(e.length===0)return-1;let r=(n%e.length+e.length)%e.length,i=t.toLowerCase();for(let t=0;t0&&e.key===` `&&(Ai(e),s?.(!0)),h.current.length>0&&h.current[0]!==` `&&d(f,h.current)===-1&&e.key!==` `&&s?.(!1),f==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;p&&e.key!==` `&&(Ai(e),s?.(!0));let v=h.current===``;v&&(g.current=u??i??-1),f.every((e,t)=>e&&c(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&h.current===e.key&&(h.current=``,g.current=_.current),h.current+=e.key,m.start(l,()=>{h.current=``,g.current=_.current,s?.(!1)});let y=((v?u??i??-1:g.current)??0)+1,b=d(f,h.current,y);b===-1?e.key!==` `&&(h.current=``,s?.(!1)):(a?.(b),_.current=b)}),y=Z(e=>{let t=e.relatedTarget,n=f.select(`domReferenceElement`),r=f.select(`floatingElement`);Ui(n,t)||Ui(r,t)||(m.clear(),h.current=``,g.current=_.current,s?.(!1))});J(()=>{!p&&u!==null||(m.clear(),_.current=null,h.current!==``&&(h.current=``))},[p,u,m]),J(()=>{p&&h.current===``&&(g.current=u??i??-1)},[p,u,i]);let b=d.useMemo(()=>({onKeyDown:v,onBlur:y}),[v,y]);return d.useMemo(()=>c?{reference:b,floating:b}:{},[c,b])}var Gc=.1,Kc=Gc*Gc,qc=.5;function Jc(e,t,n,r,i,a){return r>=t!=a>=t&&e<=(i-n)*(t-r)/(a-r)+n}function Yc(e,t,n,r,i,a,o,s,c,l){let u=!1;return Jc(e,t,n,r,i,a)&&(u=!u),Jc(e,t,i,a,o,s)&&(u=!u),Jc(e,t,o,s,c,l)&&(u=!u),Jc(e,t,c,l,n,r)&&(u=!u),u}function Xc(e,t,n){return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height}function Zc(e,t,n,r,i,a){return e>=Math.min(n,i)&&e<=Math.max(n,i)&&t>=Math.min(r,a)&&t<=Math.max(r,a)}function Qc(e={}){let{blockPointerEvents:t=!1}=e,n=new hi,r=({x:e,y:t,placement:r,elements:i,onClose:a,nodeId:o,tree:s})=>{let c=r?.split(`-`)[0],l=!1,u=null,d=null,f=typeof performance<`u`?performance.now():0;function p(e,t){let n=performance.now(),r=n-f;if(u===null||d===null||r===0)return u=e,d=t,f=n,!1;let i=e-u,a=t-d,o=i*i+a*a,s=r*r*Kc;return u=e,d=t,f=n,o0)}function b(){y()||m()}if(y())return;let x=a.getBoundingClientRect(),S=u.getBoundingClientRect(),C=e>S.right-S.width/2,w=t>S.bottom-S.height/2,T=S.width>x.width,E=S.height>x.height,D=(T?x:S).left,O=(T?x:S).right,k=(E?x:S).top,A=(E?x:S).bottom;if(c===`top`&&t>=x.bottom-1||c===`bottom`&&t<=x.top+1||c===`left`&&e>=x.right-1||c===`right`&&e<=x.left+1){b();return}let j=!1;switch(c){case`top`:j=Zc(d,f,D,x.top+1,O,S.bottom-1);break;case`bottom`:j=Zc(d,f,D,S.top+1,O,x.bottom-1);break;case`left`:j=Zc(d,f,S.right-1,A,x.left+1,k);break;case`right`:j=Zc(d,f,x.right-1,A,S.left+1,k);break}if(j)return;if(l&&!Xc(d,f,x)){b();return}if(!g&&p(d,f)){b();return}let M=!1;switch(c){case`top`:{let n=T?qc/2:qc*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t+qc+1,o=C||T?S.bottom-qc:S.top,s=C?T?S.bottom-qc:S.top:S.bottom-qc;M=Yc(d,f,r,a,i,a,S.left,o,S.right,s);break}case`bottom`:{let n=T?qc/2:qc*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t-qc,o=C||T?S.top+qc:S.bottom,s=C?T?S.top+qc:S.bottom:S.top+qc;M=Yc(d,f,r,a,i,a,S.left,o,S.right,s);break}case`left`:{let n=E?qc/2:qc*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e+qc+1,o=w||E?S.right-qc:S.left,s=w?E?S.right-qc:S.left:S.right-qc;M=Yc(d,f,o,S.top,s,S.bottom,a,r,a,i);break}case`right`:{let n=E?qc/2:qc*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e-qc,o=w||E?S.left+qc:S.right,s=w?E?S.left+qc:S.right:S.left+qc;M=Yc(d,f,a,r,a,i,o,S.top,s,S.bottom);break}}M?l||n.start(40,b):b()}};return r.__options={...e,blockPointerEvents:t},r}var $c={...wc,disabled:$(e=>e.disabled),instantType:$(e=>e.instantType),isInstantPhase:$(e=>e.isInstantPhase),trackCursorAxis:$(e=>e.trackCursorAxis),disableHoverablePopup:$(e=>e.disableHoverablePopup),lastOpenChangeReason:$(e=>e.openChangeReason),closeOnClick:$(e=>e.closeOnClick),closeDelay:$(e=>e.closeDelay),hasViewport:$(e=>e.hasViewport)},el=class e extends Ks{constructor(e,t,n=!1){let r=new hc,i={...tl(),...e};i.floatingRootContext=vc(r,t,n),super(i,{popupRef:d.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:r},$c)}setOpen=(e,t)=>{lc(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,X(ca,e))}static useStore(t,n){return ac(t,(t,r)=>new e(n,t,r)).store}};function tl(){return{..._c(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,hasViewport:!1}}var nl=ai(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:f=null,children:p}=e,m=el.useStore(l?.store,{open:n,openProp:r,activeTriggerId:f,triggerIdProp:u});uc(m,r,n,f),m.useControlledProp(`openProp`,r),m.useControlledProp(`triggerIdProp`,u),m.useContextCallback(`onOpenChange`,s),m.useContextCallback(`onOpenChangeComplete`,c);let h=m.useState(`open`),g=!t&&h,_=m.useState(`activeTriggerId`),v=m.useState(`mounted`),y=m.useState(`payload`);m.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i}),m.useSyncedValue(`disabled`,t),fc(m,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:b,transitionStatus:x}=pc(g,m),C=m.useState(`isInstantPhase`),w=m.useState(`instantType`),T=m.useState(`lastOpenChangeReason`),E=d.useRef(null);J(()=>{h&&t&&m.setOpen(!1,X(va))},[h,t,m]),J(()=>{x===`ending`&&T===sa||x!==`ending`&&C?(w!==`delay`&&(E.current=w),m.set(`instantType`,`delay`)):E.current!==null&&(m.set(`instantType`,E.current),E.current=null)},[x,C,T,w,m]),J(()=>{g&&_==null&&m.set(`payload`,void 0)},[m,_,g]);let D=d.useCallback(()=>{m.setOpen(!1,X(xa))},[m]);d.useImperativeHandle(o,()=>({unmount:b,close:D}),[b,D]);let O=g||v||!t&&a!==`none`;return(0,S.jsxs)(ui.Provider,{value:m,children:[O&&(0,S.jsx)(rl,{store:m,disabled:t,trackCursorAxis:a}),typeof p==`function`?p({payload:y}):p]})});function rl({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=js(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Os(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n});return mc(e,{activeTriggerProps:d.useMemo(()=>Ro(a.reference,i.reference),[a.reference,i.reference]),inactiveTriggerProps:d.useMemo(()=>Ro(a.trigger,i.trigger),[a.trigger,i.trigger]),popupProps:d.useMemo(()=>Ro(ic,a.floating,i.floating),[a.floating,i.floating])}),null}var il=(function(e){return e.open=`data-open`,e.closed=`data-closed`,e[e.startingStyle=Qs.startingStyle]=`startingStyle`,e[e.endingStyle=Qs.endingStyle]=`endingStyle`,e.anchorHidden=`data-anchor-hidden`,e.side=`data-side`,e.align=`data-align`,e})({}),al=(function(e){return e.popupOpen=`data-popup-open`,e.pressed=`data-pressed`,e})({}),ol={[al.popupOpen]:``},sl={[al.popupOpen]:``,[al.pressed]:``},cl={[il.open]:``},ll={[il.closed]:``},ul={[il.anchorHidden]:``},dl={open(e){return e?ol:null}},fl={open(e){return e?sl:null}},pl={open(e){return e?cl:ll},anchorHidden(e){return e?ul:null}};function ml(e){return ko(e,`base-ui`)}var hl=d.createContext(void 0);function gl(){return d.useContext(hl)}var _l=(function(e){return e[e.popupOpen=al.popupOpen]=`popupOpen`,e.triggerDisabled=`data-trigger-disabled`,e})({}),vl=600,yl=`data-base-ui-tooltip-trigger`;function bl(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;eh.select(`transitionStatus`)===`ending`,shouldOpen(){return!F.current}}),V=Oc(y,{enabled:!j}).reference,H=e=>{let t=F.current,n=bl(e),r=z(n),i=b.current,a=i&&n&&Ui(i,n);if(r&&h.select(`open`)&&h.select(`lastOpenChangeReason`)===la){h.setOpen(!1,X(la,e));return}if(t&&!r&&a&&!M.current&&!h.select(`open`)&&i&&Pi(L.current)){let t=()=>{!F.current&&!M.current&&!h.select(`open`)&&h.setOpen(!0,X(la,e,i))},n=R();n===0?(I.clear(),t()):I.start(n,t)}},te=h.useState(`triggerProps`,w);return Qo(`button`,e,{state:{open:v},ref:[t,C,b],props:[B,V,w||N!==`none`?te:void 0,{onMouseOver(e){H(e.nativeEvent)},onFocus(e){ee(bl(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){F.current=!1,I.clear(),L.current=void 0},onPointerEnter(e){L.current=e.pointerType},onPointerDown(e){L.current=e.pointerType,h.set(`closeOnClick`,l),l&&!h.select(`open`)&&h.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!h.select(`open`)&&h.cancelPendingOpen(e.nativeEvent)},id:g,[_l.triggerDisabled]:j?``:void 0,[yl]:j?void 0:``},p],stateAttributesMapping:dl})}),Cl=d.createContext(void 0);function wl(){let e=d.useContext(Cl);if(e===void 0)throw Error(li(70));return e}var Tl=d.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{portalNode:c,portalSubtree:l}=hs({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,S.jsxs)(d.Fragment,{children:[l,c&&At.createPortal(n,c)]})}),El=d.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return di().useState(`mounted`)||n?(0,S.jsx)(Cl.Provider,{value:n,children:(0,S.jsx)(Tl,{ref:t,...r})}):null}),Dl=d.createContext(void 0);function Ol(){let e=d.useContext(Dl);if(e===void 0)throw Error(li(71));return e}var kl=d.createContext(void 0);function Al(){return d.useContext(kl)?.direction??`ltr`}var jl=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0,offsetParent:d=`real`}=un(e,t)||{};if(l==null)return{};let f=On(u),p={x:n,y:r},m=gn(i),h=mn(m),g=await o.getDimensions(l),_=m===`y`,v=_?`top`:`left`,y=_?`bottom`:`right`,b=_?`clientHeight`:`clientWidth`,x=a.reference[h]+a.reference[m]-p[m]-a.floating[h],S=p[m]-a.reference[m],C=d===`real`?await o.getOffsetParent?.(l):s.floating,w=s.floating[b]||a.floating[h];(!w||!await o.isElement?.(C))&&(w=s.floating[b]||a.floating[h]);let T=x/2-S/2,E=w/2-g[h]/2-1,D=Math.min(f[v],E),O=Math.min(f[y],E),k=D,A=w-g[h]-O,j=w/2-g[h]/2+T,M=ln(k,j,A),N=!c.arrow&&fn(i)!=null&&j!==M&&a.reference[h]/2-(j({...jl(e),options:[e,t]}),Nl=Rr().fn,Pl={name:`hide`,async fn(e){let{width:t,height:n,x:r,y:i}=e.rects.reference,a=t===0&&n===0&&r===0&&i===0;return{data:{referenceHidden:(await Nl(e)).data?.referenceHidden||a}}}},Fl={sideX:`left`,sideY:`top`},Il={name:`adaptiveOrigin`,async fn(e){let{x:t,y:n,rects:{floating:r},elements:{floating:i},platform:a,strategy:o,placement:s}=e,c=Nt(i),l=c.getComputedStyle(i);if(!(l.transitionDuration!==`0s`&&l.transitionDuration!==``))return{x:t,y:n,data:Fl};let u=await a.getOffsetParent?.(i),d={width:0,height:0};if(o===`fixed`&&c?.visualViewport)d={width:c.visualViewport.width,height:c.visualViewport.height};else if(u===c){let e=Wa(i);d={width:e.documentElement.clientWidth,height:e.documentElement.clientHeight}}else await a.isElement?.(u)&&(d=await a.getDimensions(u));let f=dn(s),p=t,m=n;f===`left`&&(p=d.width-(t+r.width)),f===`top`&&(m=d.height-(n+r.height));let h=f===`left`?`right`:Fl.sideX,g=f===`top`?`bottom`:Fl.sideY;return{x:p,y:m,data:{sideX:h,sideY:g}}}};function Ll(e,t,n){let r=e===`inline-start`||e===`inline-end`;return{top:`top`,right:r?n?`inline-start`:`inline-end`:`right`,bottom:`bottom`,left:r?n?`inline-end`:`inline-start`:`left`}[t]}function Rl(e,t,n){let{rects:r,placement:i}=e;return{side:Ll(t,dn(i),n),align:fn(i)||`center`,anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function zl(e){let{anchor:t,positionMethod:n=`absolute`,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,collisionBoundary:s,collisionPadding:c=5,sticky:l=!1,arrowPadding:u=5,disableAnchorTracking:f=!1,inline:p,keepMounted:m=!1,floatingRootContext:h,mounted:g,collisionAvoidance:_,shiftCrossAxis:v=!1,nodeId:y,adaptiveOrigin:b,lazyFlip:x=!1,externalTree:S}=e,[C,w]=d.useState(null);!g&&C!==null&&w(null);let T=_.side||`flip`,E=_.align||`flip`,D=_.fallbackAxisSide||`end`,O=typeof t==`function`?t:void 0,k=Z(O),A=O?k:t,j=Na(t),M=Na(g),N=Al()===`rtl`,P=C||{top:`top`,right:`right`,bottom:`bottom`,left:`left`,"inline-end":N?`left`:`right`,"inline-start":N?`right`:`left`}[r],F=a===`center`?P:`${P}-${a}`,I=c,L=+(r===`bottom`),R=+(r===`top`),ee=+(r===`right`),z=+(r===`left`);typeof I==`number`?I={top:I+L,right:I+z,bottom:I+R,left:I+ee}:I&&={top:(I.top||0)+L,right:(I.right||0)+z,bottom:(I.bottom||0)+R,left:(I.left||0)+ee};let B={boundary:s===`clipping-ancestors`?`clippingAncestors`:s,padding:I},V=d.useRef(null),H=Na(i),te=Na(o),U=typeof i==`function`?0:i,ne=typeof o==`function`?0:o,re=[];p&&re.push(p),re.push(Nr(e=>{let t=Rl(e,r,N),n=typeof H.current==`function`?H.current(t):H.current,i=typeof te.current==`function`?te.current(t):te.current;return{mainAxis:n,crossAxis:i,alignmentAxis:i}},[U,ne,N,r]));let ie=E===`none`&&T!==`shift`,ae=!ie&&(l||v||T===`shift`),oe=T===`none`?null:Ir({...B,padding:{top:I.top+1,right:I.right+1,bottom:I.bottom+1,left:I.left+1},mainAxis:!v&&T===`flip`,crossAxis:E===`flip`&&`alignment`,fallbackAxisSideDirection:D}),se=ie?null:Pr(e=>{let t=Wa(e.elements.floating).documentElement;return{...B,rootBoundary:v?{x:0,y:0,width:t.clientWidth,height:t.clientHeight}:void 0,mainAxis:E!==`none`,crossAxis:ae,limiter:l||v?void 0:Fr(e=>{if(!V.current)return{};let{width:t,height:n}=V.current.getBoundingClientRect(),r=hn(dn(e.placement)),i=r===`y`?t:n,a=r===`y`?I.left+I.right:I.top+I.bottom;return{offset:i/2+a/2}})}},[B,l,v,I,E]);T===`shift`||E===`shift`||a===`center`?re.push(se,oe):re.push(oe,se),re.push(Lr({...B,apply({elements:{floating:e},availableWidth:t,availableHeight:n,rects:r}){if(!M.current)return;let i=e.style;i.setProperty(`--available-width`,`${t}px`),i.setProperty(`--available-height`,`${n}px`);let a=Nt(e).devicePixelRatio||1,{x:o,y:s,width:c,height:l}=r.reference,u=(Math.round((o+c)*a)-Math.round(o*a))/a,d=(Math.round((s+l)*a)-Math.round(s*a))/a;i.setProperty(`--anchor-width`,`${u}px`),i.setProperty(`--anchor-height`,`${d}px`)}}),Ml(e=>({element:V.current||Wa(e.elements.floating).createElement(`div`),padding:u,offsetParent:`floating`}),[u]),{name:`transformOrigin`,fn(e){let{elements:t,middlewareData:n,placement:a,rects:o,y:s}=e,c=dn(a),l=hn(c),u=V.current,d=n.arrow?.x||0,f=n.arrow?.y||0,p=u?.clientWidth||0,m=u?.clientHeight||0,h=d+p/2,g=f+m/2,_=Math.abs(n.shift?.y||0),v=o.reference.height/2,y=typeof i==`function`?i(Rl(e,r,N)):i,b=_>y,x={top:`${h}px calc(100% + ${y}px)`,bottom:`${h}px ${-y}px`,left:`calc(100% + ${y}px) ${g}px`,right:`${-y}px ${g}px`}[c],S=`${h}px ${o.reference.y+v-s}px`;return t.floating.style.setProperty(`--transform-origin`,ae&&l===`y`&&b?S:x),{}}},Pl,b),J(()=>{!g&&h&&h.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[g,h]);let ce=d.useMemo(()=>({elementResize:!f&&typeof ResizeObserver<`u`,layoutShift:!f&&typeof IntersectionObserver<`u`}),[f]),{refs:le,elements:ue,x:de,y:fe,middlewareData:pe,update:me,placement:he,context:ge,isPositioned:_e,floatingStyles:ve}=Ec({rootContext:h,open:m?g:void 0,placement:F,middleware:re,strategy:n,whileElementsMounted:m?void 0:(...e)=>yr(...e,ce),nodeId:y,externalTree:S}),{sideX:ye,sideY:be}=pe.adaptiveOrigin||Fl,xe=_e?n:`fixed`,Se=d.useMemo(()=>{let e=b?{position:xe,[ye]:de,[be]:fe}:{position:xe,...ve};return _e||(e.opacity=0),e},[b,xe,ye,de,be,fe,ve,_e]),Ce=d.useRef(null);J(()=>{if(!g)return;let e=j.current,t=typeof e==`function`?e():e,n=(Bl(t)?t.current:t)||null;n!==Ce.current&&(le.setPositionReference(n),Ce.current=n)},[g,le,A,j]),d.useEffect(()=>{if(!g)return;let e=j.current;typeof e!=`function`&&Bl(e)&&e.current!==Ce.current&&(le.setPositionReference(e.current),Ce.current=e.current)},[g,le,A,j]),d.useEffect(()=>{if(m&&g&&ue.reference&&ue.floating)return yr(ue.reference,ue.floating,me,ce)},[m,g,ue,me,ce]);let we=dn(he),Te=Ll(r,we,N),Ee=fn(he)||`center`,De=!!pe.hide?.referenceHidden;J(()=>{x&&g&&_e&&w(we)},[x,g,_e,we]);let Oe=d.useMemo(()=>({position:`absolute`,top:pe.arrow?.y,left:pe.arrow?.x}),[pe.arrow]),ke=pe.arrow?.centerOffset!==0;return d.useMemo(()=>({positionerStyles:Se,arrowStyles:Oe,arrowRef:V,arrowUncentered:ke,side:Te,align:Ee,physicalSide:we,anchorHidden:De,refs:le,context:ge,isPositioned:_e,update:me}),[Se,Oe,V,ke,Te,Ee,we,De,le,ge,_e,me])}function Bl(e){return e!=null&&`current`in e}function Vl(e){return e===`starting`?os:oa}function Hl(e,t,{styles:n,transitionStatus:r,props:i,refs:a,hidden:o,inert:s=!1}){let c={...n};return s&&(c.pointerEvents=`none`),Qo(`div`,e,{state:t,ref:a,props:[{role:`presentation`,hidden:o,style:c},Vl(r),i],stateAttributesMapping:pl})}var Ul=d.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:f=5,arrowPadding:p=5,sticky:m=!1,disableAnchorTracking:h=!1,collisionAvoidance:g=ds,style:_,...v}=e,y=di(),b=wl(),x=y.useState(`open`),C=y.useState(`mounted`),w=y.useState(`trackCursorAxis`),T=y.useState(`disableHoverablePopup`),E=y.useState(`floatingRootContext`),D=y.useState(`instantType`),O=y.useState(`transitionStatus`),k=zl({anchor:i,positionMethod:a,floatingRootContext:E,mounted:C,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:f,sticky:m,arrowPadding:p,disableAnchorTracking:h,keepMounted:b,collisionAvoidance:g,adaptiveOrigin:y.useState(`hasViewport`)?Il:void 0}),A=Hl(e,d.useMemo(()=>({open:x,side:k.side,align:k.align,anchorHidden:k.anchorHidden,instant:w===`none`?D:`tracking-cursor`}),[x,k.side,k.align,k.anchorHidden,w,D]),{styles:k.positionerStyles,transitionStatus:O,props:v,refs:[t,y.useStateSetter(`positionerElement`)],hidden:!C,inert:!x||w===`both`||T});return(0,S.jsx)(Dl.Provider,{value:k,children:A})}),Wl={...pl,...tc},Gl=d.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=di(),{side:s,align:c}=Ol(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);rc({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Pc(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return Qo(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[f,Vl(d),a],stateAttributesMapping:Wl})}),Kl=d.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=di(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=Ol();return Qo(`div`,e,{state:{open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)},ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:pl})});function ql(e){let t=Yt(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=It(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r;return(an(n)!==a||an(r)!==o)&&(n=a,r=o),{width:n,height:r}}var Jl=d.createContext(void 0);function Yl(e=!1){let t=d.useContext(Jl);if(!t&&!e)throw Error(li(86));return t}var Xl=d.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,...o}=e,[s,c]=d.useState(void 0),l=Yl(!0)?.disabled||a,u=Qo(`fieldset`,e,{ref:t,state:{disabled:l},props:[{"aria-labelledby":s,disabled:l},o]}),f=d.useMemo(()=>({legendId:s,setLegendId:c,disabled:l}),[s,c,l]);return(0,S.jsx)(Jl.Provider,{value:f,children:u})}),Zl=d.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,{disabled:s,setLegendId:c}=Yl(),l=ml(a);return J(()=>(c(l),()=>{c(void 0)}),[c,l]),Qo(`div`,e,{state:{disabled:s??!1},ref:t,props:[{id:l},o]})}),Ql=(function(e){return e.disabled=`data-disabled`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e})({}),$l={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},eu={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},tu={disabled:!1,...eu},nu={valid(e){return e===null?null:e?{[Ql.valid]:``}:{[Ql.invalid]:``}}},ru={invalid:void 0,name:void 0,validityData:{state:$l,errors:[],error:``,value:``,initialValue:null},setValidityData:ia,disabled:void 0,touched:eu.touched,setTouched:ia,dirty:eu.dirty,setDirty:ia,filled:eu.filled,setFilled:ia,focused:eu.focused,setFocused:ia,validate:()=>null,validationMode:`onSubmit`,validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:tu,markedDirtyRef:{current:!1},registerFieldControl:ia,validation:{getValidationProps:(e,t=oa)=>t,inputRef:{current:null},registerInput:ia,commit:async()=>{},change:ia}},iu=d.createContext(ru);function au(e=!0){let t=d.useContext(iu);if(t.setValidityData===ia&&!e)throw Error(li(28));return t}var ou=d.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:ia,validationMode:`onSubmit`,submitAttemptedRef:{current:!1}});function su(){return d.useContext(ou)}var cu=d.createContext({controlId:void 0,registerControlId:ia,labelId:void 0,setLabelId:ia,messageIds:[],setMessageIds:ia,getDescriptionProps:e=>e});function lu(){return d.useContext(cu)}var uu=function(e){let t=ml(),n=e.controlId===void 0?t:e.controlId,[r,i]=d.useState(n),[a,o]=d.useState(e.labelId),[s,c]=d.useState([]),l=ei(()=>new Map),{messageIds:u}=lu(),f=Z((e,t)=>{let n=l.current;if(t===void 0){n.delete(e);return}n.set(e,t),i(e=>{if(n.size===0)return;let t;for(let r of n.values()){if(e!==void 0&&r===e)return e;t===void 0&&(t=r)}return t})}),p=d.useCallback(e=>{let t=e[`aria-describedby`]?e[`aria-describedby`].split(` `):[];return t.push(...u,...s),{...e,"aria-describedby":Array.from(new Set(t)).join(` `)||void 0}},[u,s]),m=d.useMemo(()=>({controlId:r,registerControlId:f,labelId:a,setLabelId:o,messageIds:s,setMessageIds:c,getDescriptionProps:p}),[r,f,a,o,s,c,p]);return(0,S.jsx)(cu.Provider,{value:m,children:e.children})};function du(e,t,n,r=!0,i){let[a,o]=d.useState(),s=ml(i?`${i}-label`:void 0),c=e??t??a;return J(()=>{let i=e||t||!r?void 0:fu(n.current,s);a!==i&&o(i)}),c}function fu(e,t){let n=pu(e);if(n)return!n.id&&t&&(n.id=t),n.id||void 0}function pu(e){if(!e)return;let t=e.parentElement;if(t&&t.tagName===`LABEL`)return t;let n=e.id;if(n){let t=e.nextElementSibling;if(t&&t.htmlFor===n)return t}let r=e.labels;return r&&r[0]}function mu(e={}){let{id:t,implicit:n=!1,controlRef:r}=e,{controlId:i,registerControlId:a}=lu(),o=ml(t),s=n?i:void 0,c=ei(()=>Symbol(`labelable-control`)),l=d.useRef(!1),u=d.useRef(t!=null),f=Z(()=>{!l.current||a===ia||(l.current=!1,a(c.current,void 0))});return J(()=>{if(a===ia)return;let e;if(n){let n=r?.current;e=q(n)&&n.closest(`label`)!=null?t??null:s??o}else if(t!=null)u.current=!0,e=t;else if(u.current)e=o;else{f();return}if(e===void 0){f();return}l.current=!0,a(c.current,e)},[t,r,s,a,n,o,c,f]),d.useEffect(()=>f,[f]),i??o}function hu(e,t){let n=ml(e);return J(()=>(t(n),()=>{t(void 0)}),[n,t]),n}function gu(e={}){let{id:t,fallbackControlId:n,native:r=!1,setLabelId:i,focusControl:a}=e,{controlId:o,setLabelId:s}=lu(),c=hu(t,Z(e=>{s(e),i?.(e)})),l=o??n;function u(e){if(a){a(e,l);return}if(!l)return;let t=Wa(e.currentTarget).getElementById(l);It(t)&&_u(t)}function d(e){Wi(e.nativeEvent)?.closest(`button,input,select,textarea`)||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),!r&&u(e))}return r?{id:c,htmlFor:l??void 0,onMouseDown:d}:{id:c,onClick:d,onPointerDown(e){e.preventDefault()}}}function _u(e){e.focus({focusVisible:!0})}function vu(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}var yu=Object.keys($l);function bu(e){if(!e||e.valid||!e.valueMissing)return!1;let t=!1;for(let n of yu)n!==`valid`&&(n===`valueMissing`?t=e[n]:e[n]&&(t=!1));return t}function xu(e){let t=null;for(let n of e)if(!n.disabled){if(!n.validity.valid)return n;t??=n}return t}function Su(e,t){let n=!1;for(let r of t)r.setCustomValidity(``),n||=r===e;n||e.setCustomValidity(``)}function Cu(e){let{formRef:t}=su(),{setValidityData:n,validate:r,validityData:i,validationDebounceTime:a,invalid:o,markedDirtyRef:s,state:c,shouldValidateOnChange:l,getRegisteredFieldId:u}=e,{controlId:f,getDescriptionProps:p}=lu(),m=gi(),h=d.useRef(null),g=ei(()=>new Set).current,_=d.useRef(0),v=d.useCallback(e=>{if(e)return g.add(e),()=>{g.delete(e)}},[g]),y=Z(async(e,a=!1)=>{let d=xu(g)??h.current;if(!d)return;_.current+=1;let p=_.current;function v(e,n=o){let r=u()??f;if(r==null)return;let i=t.current.fields.get(r);if(!i)return;let a=vu(e,n);t.current.fields.set(r,{...i,validityData:a})}if(a){if(c.valid!==!1)return;let t=d.validity;if(!t.valueMissing){let t={value:e,state:{...$l,valid:!0},error:``,errors:[],initialValue:i.initialValue};Su(d,g),v(t,!1),n(t);return}let r=yu.reduce((e,n)=>(e[n]=t[n],e),{});if(!r.valid&&!bu(r))return}function y(e){let t=yu.reduce((t,n)=>(t[n]=e.validity[n],t),{}),n=!1;for(let e of yu)if(e!==`valid`){if(e===`valueMissing`&&t[e])n=!0;else if(t[e])return t}return n&&!s.current&&(t.valid=!0,t.valueMissing=!1),t}m.clear();let b=null,x=[],S=y(d),C,w=l();if(d.validationMessage&&!w)C=d.validationMessage,x=[d.validationMessage];else{let n=Array.from(t.current.fields.values()).reduce((e,t)=>(t.name&&(e[t.name]=t.getValue()),e),{}),i=r(e,n);if(typeof i==`object`&&i&&`then`in i){if(b=await i,p!==_.current)return}else b=i;b===null?w&&(Su(d,g),S.customError=!1,d.validationMessage?(C=d.validationMessage,x=[d.validationMessage]):d.validity.valid&&!S.valid&&(S.valid=!0)):(S.valid=!1,S.customError=!0,Array.isArray(b)?(x=b,d.setCustomValidity(b.join(` +`))):b&&(x=[b],d.setCustomValidity(b)))}let T={value:e,state:S,error:C??(Array.isArray(b)?b[0]:b??``),errors:x,initialValue:i.initialValue};v(T),n(T)}),b=Z(e=>{m.clear();let t=l();t&&e!==``&&a?(_.current+=1,m.start(a,()=>{y(e)})):y(e,!t)}),x=d.useCallback((e,t={})=>Ro(p(t),c.valid===!1&&!c.disabled&&!e?{"aria-invalid":!0}:oa),[p,c.disabled,c.valid]);return d.useMemo(()=>({getValidationProps:x,inputRef:h,registerInput:v,commit:y,change:b}),[x,v,y,b])}function wu(e){let{commit:t,invalid:n,markedDirtyRef:r,name:i,setRegisteredFieldName:a,setRegisteredFieldId:o,setValidityData:s,validityData:c}=e,{formRef:l}=su(),u=d.useRef(null),f=d.useRef(null),p=d.useRef(null),m=Z(()=>{let e=f.current;if(e)return e.getValue?e.getValue():e.value});function h(e){return e.value===void 0?m():e.value}let g=Z(()=>{let e=f.current;if(r.current=!0,!e){t(c.value);return}t(h(e))});function _(){let e=f.current;!e||!e.id||l.current.fields.set(e.id,{getValue:m,name:i??e.name,controlRef:e.controlRef??p,validityData:vu(c,n),validate:g})}function v(e=f.current?.id){e&&l.current.fields.delete(e)}function y(){let e=f.current;if(!e)return;let t=h(e);c.initialValue===null&&t!==null&&s(e=>({...e,initialValue:t}))}return J(()=>{let e=f.current;!e||!e.id||(a(i?void 0:e.name),l.current.fields.set(e.id,{getValue:m,name:i??e.name,controlRef:e.controlRef??p,validityData:vu(c,n),validate:g}))},[l,m,n,i,a,g,c]),J(()=>{let e=l.current.fields;return()=>{let t=f.current?.id;t&&e.delete(t)}},[l]),[g,Z((e,t)=>{if(!t){u.current===e&&(u.current=null,v(),f.current=null,a(void 0),o(void 0));return}let n=f.current?.id;u.current=e,f.current=t,i||a(t.name),o(t.id),n&&n!==t.id&&v(n),y(),_()})]}var Tu=d.forwardRef(function(e,t){let{errors:n,validationMode:r,submitAttemptedRef:i}=su(),{render:a,className:o,validate:s,validationDebounceTime:c=0,validationMode:l=r,name:u,disabled:f=!1,invalid:p,dirty:m,touched:h,actionsRef:g,style:_,...v}=e,y=Yl(!0)?.disabled,b=Z(s||(()=>null)),x=y||f,[C,w]=d.useState(!1),[T,E]=d.useState(!1),[D,O]=d.useState(!1),[k,A]=d.useState(!1),j=m??T,M=h??C,N=d.useRef(j),P=d.useRef(void 0),[F,I]=d.useState(),L=u??F;J(()=>{m!==void 0&&(N.current=m)},[m]);let R=d.useCallback(()=>P.current,[]),ee=d.useCallback(e=>{P.current=e},[]),z=Z(e=>{m===void 0&&(e&&(N.current=!0),E(e))}),B=Z(e=>{h===void 0&&w(e)}),V=Z(()=>l===`onChange`||l===`onSubmit`&&i.current),H=L&&Object.hasOwn(n,L)?n[L]:null,te=!!(Array.isArray(H)?H.length:H),U=p===!0||te,[ne,re]=d.useState({state:$l,error:``,errors:[],value:null,initialValue:null}),ie=x?null:!U&&ne.state.valid,ae=d.useMemo(()=>({disabled:x,touched:M,dirty:j,valid:ie,filled:D,focused:k}),[x,M,j,ie,D,k]),oe=Cu({setValidityData:re,validate:b,validityData:ne,validationDebounceTime:c,invalid:U,markedDirtyRef:N,state:ae,shouldValidateOnChange:V,getRegisteredFieldId:R}),[se,ce]=wu({commit:oe.commit,invalid:U,markedDirtyRef:N,name:u,setRegisteredFieldName:I,setRegisteredFieldId:ee,setValidityData:re,validityData:ne});d.useImperativeHandle(g,()=>({validate:se}),[se]);let le=d.useMemo(()=>({invalid:U,name:L,validityData:ne,setValidityData:re,disabled:x,touched:M,setTouched:B,dirty:j,setDirty:z,filled:D,setFilled:O,focused:k,setFocused:A,validate:b,validationMode:l,validationDebounceTime:c,shouldValidateOnChange:V,state:ae,markedDirtyRef:N,registerFieldControl:ce,validation:oe}),[U,L,ne,x,M,B,j,z,D,O,k,A,b,l,c,V,ae,ce,oe]),ue=Qo(`div`,e,{ref:t,state:ae,props:v,stateAttributesMapping:nu});return(0,S.jsx)(iu.Provider,{value:le,children:ue})}),Eu=d.forwardRef(function(e,t){return(0,S.jsx)(uu,{children:(0,S.jsx)(Tu,{...e,ref:t})})}),Du=d.createContext({disabled:!1});function Ou(){return d.useContext(Du)}var ku=d.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,nativeLabel:o=!0,...s}=e,c=au(!1),l=Ou(),{labelId:u}=lu(),f={...c.state,disabled:c.disabled||l.disabled},p=d.useRef(null),m=gu({id:u??a,native:o});return Qo(`label`,e,{ref:[t,p],state:f,props:[m,s],stateAttributesMapping:nu})}),Au={...nu,...tc},ju=d.forwardRef(function(e,t){let{render:n,id:r,className:i,match:a,style:o,...s}=e,c=ml(r),{validityData:l,state:u,name:f}=au(!1),{setMessageIds:p}=lu(),{errors:m}=su(),h=f&&Object.hasOwn(m,f)?m[f]:null,g=!!(Array.isArray(h)?h.length:h),_=typeof a==`string`,v=!1;v=a===!0?!0:u.disabled?!1:_?!!l.state[a]:g||l.state.valid===!1;let{mounted:y,transitionStatus:b,setMounted:x}=Zs(v);J(()=>{if(!(!v||!c))return p(e=>e.concat(c)),()=>{p(e=>e.filter(e=>e!==c))}},[v,c,p]);let C=d.useRef(null),[w,T]=d.useState(null),[E,D]=d.useState(null),O=l.error;!_&&g?O=h:l.errors.length>1&&(O=l.errors);let k=O??``;Array.isArray(O)&&(k=O.length>1?(0,S.jsx)(`ul`,{children:O.map(e=>(0,S.jsx)(`li`,{children:e},e))}):O[0]??``);let A=Array.isArray(O)?JSON.stringify(O):O;v&&A!==E&&(D(A),T(k)),rc({open:v,ref:C,onComplete(){v||x(!1)}});let j={...u,transitionStatus:b},M=Qo(`div`,e,{ref:[t,C],state:j,props:[{id:c,children:v?k:w},s],stateAttributesMapping:Au,enabled:y});return y?M:null}),Mu=d.forwardRef(function(e,t){let{render:n,id:r,className:i,style:a,...o}=e,s=ml(r),c=au(!1),l=Ou(),{setMessageIds:u}=lu(),d={...c.state,disabled:c.disabled||l.disabled};return J(()=>{if(s)return u(e=>e.concat(s)),()=>{u(e=>e.filter(e=>e!==s))}},[s,u]),Qo(`p`,e,{ref:t,state:d,props:[{id:s},o],stateAttributesMapping:nu})});function Nu({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=d.useRef(e!==void 0),[a,o]=d.useState(t);return[i?e:a,d.useCallback(e=>{i||o(e)},[])]}function Pu(e,t,n,r,i=!0,a){let{registerFieldControl:o}=au(),s=d.useRef(null);s.current||=Symbol(),J(()=>{let c=s.current;return!c||!i?void 0:(o(c,{controlRef:e,getValue:r,id:t,name:a,value:n}),()=>{o(c,void 0)})},[e,i,r,t,a,o,n])}var Fu=d.forwardRef(function(e,t){let{render:n,className:r,id:i,name:a,value:o,disabled:s=!1,onValueChange:c,defaultValue:l,autoFocus:u=!1,style:f,...p}=e,{state:m,name:h,disabled:g,setTouched:_,setDirty:v,validityData:y,setFocused:b,setFilled:x,validationMode:S,validation:C}=au(),{clearErrors:w}=su(),T=g||s,E=h??a,D={...m,disabled:T},{labelId:O}=lu(),k=mu({id:i});J(()=>{let e=o!=null;C.inputRef.current?.value||e&&o!==``?x(!0):e&&o===``&&x(!1)},[C.inputRef,x,o]);let A=d.useRef(null);J(()=>{u&&A.current===Hi(Wa(A.current))&&b(!0)},[u,b]);let[j]=Nu({controlled:o,default:l,name:`FieldControl`,state:`value`}),M=o!==void 0,N=M?j:void 0,P=Z(()=>C.inputRef.current?.value);return Pu(C.inputRef,k,N,P,!T,a),Qo(`input`,e,{ref:[t,A],state:D,props:[{id:k,disabled:T,name:E,ref:C.inputRef,"aria-labelledby":O,autoFocus:u,...M?{value:N}:{defaultValue:l},onChange(e){let t=e.currentTarget.value;c?.(t,X(sa,e.nativeEvent)),v(t!==y.initialValue),x(t!==``),e.nativeEvent.defaultPrevented||(w(E),C.change(t))},onFocus(){b(!0)},onBlur(e){_(!0),b(!1),S===`onBlur`&&C.commit(e.currentTarget.value)},onKeyDown(e){e.currentTarget.tagName===`INPUT`&&e.key===`Enter`&&(_(!0),C.commit(e.currentTarget.value))}},p,e=>C.getValidationProps(T,e)],stateAttributesMapping:nu})}),Iu=d.createContext(void 0);function Lu(e=!0){let t=d.useContext(Iu);if(t===void 0&&!e)throw Error(li(3));return t}function Ru(e){if(!e)return null;for(let t of e.elements){let e=t.tagName;if(e===`BUTTON`||e===`INPUT`){let e=t;if(e.type===`submit`)return e}}return null}var zu=(function(e){return e.checked=`data-checked`,e.unchecked=`data-unchecked`,e.indeterminate=`data-indeterminate`,e.disabled=`data-disabled`,e.readonly=`data-readonly`,e.required=`data-required`,e.valid=`data-valid`,e.invalid=`data-invalid`,e.touched=`data-touched`,e.dirty=`data-dirty`,e.filled=`data-filled`,e.focused=`data-focused`,e})({});function Bu(e){return d.useMemo(()=>({checked(t){return e.indeterminate?{}:t?{[zu.checked]:``}:{[zu.unchecked]:``}},...nu}),[e.indeterminate])}var Vu=d.createContext(void 0);function Hu(e=!1){let t=d.useContext(Vu);if(t===void 0&&!e)throw Error(li(16));return t}function Uu(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return{props:d.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}}function Wu(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:i=!0,composite:a}=e,o=d.useRef(null),s=Hu(!0),c=a??s!==void 0,{props:l}=Uu({focusableWhenDisabled:n,disabled:t,composite:c,tabIndex:r,isNativeButton:i}),u=d.useCallback(()=>{let e=o.current;Gu(e)&&c&&t&&l.disabled===void 0&&e.disabled&&(e.disabled=!1)},[t,l.disabled,c]);return J(u,[u]),{getButtonProps:d.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:o,onPointerDown:s,...u}=e;return Ro({onClick(e){if(t){e.preventDefault();return}n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(Yo(e),o?.(e),e.baseUIHandlerPrevented))return;let r=e.target===e.currentTarget,a=e.currentTarget,s=Gu(a),l=!i&&Ku(a),u=r&&(i?s:!l),d=e.key===`Enter`,f=e.key===` `,p=a.getAttribute(`role`),m=p?.startsWith(`menuitem`)||p===`option`||p===`gridcell`;if(r&&c&&f){if(e.defaultPrevented&&m)return;e.preventDefault(),l||i&&s?(a.click(),e.preventBaseUIHandler()):u&&(n?.(e),e.preventBaseUIHandler());return}u&&(!i&&(f||d)&&e.preventDefault(),!i&&d&&n?.(e))},onKeyUp(e){if(!t){if(Yo(e),a?.(e),e.target===e.currentTarget&&i&&c&&Gu(e.currentTarget)&&e.key===` `){e.preventDefault();return}e.baseUIHandlerPrevented||e.target===e.currentTarget&&!i&&!c&&e.key===` `&&n?.(e)}},onPointerDown(e){if(t){e.preventDefault();return}s?.(e)}},i?{type:`button`}:{role:`button`},l,u)},[t,l,c,i]),buttonRef:Z(e=>{o.current=e,u()})}}function Gu(e){return It(e)&&e.tagName===`BUTTON`}function Ku(e){return!!(e?.tagName===`A`&&e?.href)}var qu=d.createContext(void 0);function Ju(){let e=d.useContext(qu);if(e===void 0)throw Error(li(14));return e}function Yu(e,t){let n=d.useRef(e),r=Z(t);J(()=>{n.current!==e&&r(n.current)},[e,r]),J(()=>{n.current=e},[e])}var Xu=`data-parent`,Zu=d.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:i=!1,"aria-labelledby":a,disabled:o=!1,form:s,id:c,indeterminate:l=!1,inputRef:u,name:f,onCheckedChange:p,parent:m=!1,readOnly:h=!1,render:g,required:_=!1,uncheckedValue:v,value:y,nativeButton:b=!1,style:x,...C}=e,{clearErrors:w}=su(),{disabled:T,name:E,setDirty:D,setFilled:O,setFocused:k,setTouched:A,state:j,validationMode:M,validityData:N,validation:P}=au(),F=Ou(),{labelId:I,controlId:L,registerControlId:R,getDescriptionProps:ee}=lu(),z=Lu(),B=z?.parent,V=B&&z.allValues,H=T||F.disabled||z?.disabled||o,te=E??f,U=y??te,ne=ml(),re=ml(),ie=L;V?ie=m?re:`${B.id}-${U}`:c&&(ie=c);let ae={};V&&(m?ae=z.parent.getParentProps():U&&(ae=z.parent.getChildProps(U)));let{checked:oe=n,indeterminate:se=l,onCheckedChange:ce,...le}=ae,ue=z?.value,de=z?.setValue,fe=z?.defaultValue,pe=d.useRef(null),me=ei(()=>Symbol(`checkbox-control`)),he=d.useRef(!1),{getButtonProps:ge,buttonRef:_e}=Wu({disabled:H,native:b}),ve=z?.validation??P,[ye,be]=Nu({controlled:U&&ue&&!m?ue.includes(U):oe,default:U&&fe&&!m?fe.includes(U):i,name:`Checkbox`,state:`checked`}),xe=V?!!oe:ye,Se=V&&se||l;J(()=>{R!==ia&&(he.current=!0,R(me.current,ie))},[ie,R,me]),d.useEffect(()=>{let e=me.current;return()=>{!he.current||R===ia||(he.current=!1,R(e,void 0))}},[R,me]),Pu(pe,ne,ye,void 0,!z&&!H,f);let Ce=d.useRef(null),we=Da(u,Ce,ve.inputRef,ve.registerInput),Te=du(a,I,Ce,!b,ie??void 0);J(()=>{Ce.current&&(Ce.current.indeterminate=Se,ye&&O(!0))},[ye,Se,O]),Yu(ye,()=>{z||(w(te),O(ye),D(ye!==N.initialValue),ve.change(ye))});let Ee=Ro({checked:ye,disabled:H,form:s,name:m?void 0:te,id:b?void 0:ie??void 0,required:_,ref:we,style:te?qa:Ka,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(h){e.preventDefault();return}let t=e.currentTarget.checked,n=X(sa,e.nativeEvent);if(p?.(t,n),!n.isCanceled&&(ce?.(t,n),!n.isCanceled&&(be(t),U&&ue&&de&&!m&&!V))){let e=t?[...ue,U]:ue.filter(e=>e!==U);de(e,n)}},onFocus(){pe.current?.focus()}},y===void 0?oa:{value:(z?ye&&y:y)||``},ee,e=>ve.getValidationProps(H,e));d.useEffect(()=>{if(!B||!U)return;let e=B.disabledStatesRef.current;return e.set(U,H),()=>{e.delete(U)}},[B,H,U]);let De=d.useMemo(()=>({...j,checked:xe,disabled:H,readOnly:h,required:_,indeterminate:Se}),[j,xe,H,h,_,Se]),Oe=Bu(De),ke=Qo(`span`,e,{state:De,ref:[_e,pe,t,z?.registerControlRef],props:[{id:b?ie??void 0:ne,role:`checkbox`,"aria-checked":Se?`mixed`:xe,"aria-readonly":h||void 0,"aria-required":_||void 0,"aria-labelledby":Te,[Xu]:m?``:void 0,onFocus(){H||k(!0)},onBlur(){let e=Ce.current;e&&(A(!0),k(!1),M===`onBlur`&&ve.commit(z?ue:e.checked))},onKeyDown(e){if(e.key!==`Enter`||(e.preventBaseUIHandler(),e.defaultPrevented))return;let t=Ce.current?.form??null,n=e.currentTarget,r=e.nativeEvent,i=e.preventDefault,a=r.preventDefault,o=!1;e.preventDefault=()=>{o=!0,i.call(e)},r.preventDefault=()=>{o=!0,a.call(r)},a.call(r),Nt(n).queueMicrotask(()=>{e.preventDefault=i,r.preventDefault=a,o||Ru(t)?.click()})},onClick(e){if(h||H)return;e.preventDefault();let t=Ce.current;t&&t.dispatchEvent(new(Nt(t)).PointerEvent(`click`,{bubbles:!0,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey}))}},C,le,ge,ee,e=>ve.getValidationProps(H,e)],stateAttributesMapping:Oe});return(0,S.jsxs)(qu.Provider,{value:De,children:[ke,!ye&&!z&&te&&!m&&v!==void 0&&(0,S.jsx)(`input`,{type:`hidden`,form:s,name:te,value:v,disabled:H}),(0,S.jsx)(`input`,{...Ee,suppressHydrationWarning:!0})]})}),Qu=[];function $u(e){let{allValues:t=Qu,value:n=Qu,onValueChange:r}=e,i=d.useRef(n),a=d.useRef(new Map),[o,s]=d.useState(`mixed`),c=ml(),l=n.length===t.length,u=n.length!==t.length&&n.length>0,f=Z(r),p=d.useCallback(()=>({id:c,indeterminate:u,checked:l,"aria-controls":t.map(e=>`${c}-${e}`).join(` `),onCheckedChange(e,r){let c=i.current,l=t.filter(e=>a.current.get(e)&&c.includes(e)),u=t.filter(e=>!a.current.get(e)||a.current.get(e)&&c.includes(e));if(c.length===u.length||c.length===0){n.length===u.length?f(l,r):f(u,r);return}let d=`mixed`,p=c;o===`mixed`?(d=`on`,p=u):o===`on`&&(d=`off`,p=l),f(p,r),r.isCanceled||s(d)}}),[t,l,c,u,f,o,n.length]),m=d.useCallback(e=>({checked:n.includes(e),onCheckedChange(t,r){let a=n.slice();t?a.push(e):a.splice(a.indexOf(e),1),f(a,r),r.isCanceled||(i.current=a,s(`mixed`))}}),[f,n]);return d.useMemo(()=>({id:c,indeterminate:u,getParentProps:p,getChildProps:m,disabledStatesRef:a}),[c,u,p,m])}function ed(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,r)=>n(e,t[r]))}var td=d.forwardRef(function(e,t){let{allValues:n,className:r,defaultValue:i,disabled:a=!1,id:o,onValueChange:s,render:c,value:l,style:u,...f}=e,{disabled:p,name:m,state:h,validation:g,setFilled:_,setDirty:v,validityData:y}=au(),{labelId:b,getDescriptionProps:x}=lu(),{clearErrors:C}=su(),w=p||a,T=d.useMemo(()=>{if(l===void 0)return i??[]},[l,i]),[E,D]=Nu({controlled:l,default:T,name:`CheckboxGroup`,state:`value`}),O=Z((e,t)=>{s?.(e,t),!t.isCanceled&&D(e)}),k=$u({allValues:n,value:E,onValueChange:O}),A=ml(o),j=d.useRef(null),M=d.useCallback(e=>{j.current==null&&e!=null&&!e.hasAttribute(Xu)&&(j.current=e)},[]);Pu(j,A,E,void 0,!!m&&!w,m);let N=E??aa;Yu(N,()=>{m&&C(m);let e=Array.isArray(y.initialValue)?y.initialValue:aa;_(N.length>0),v(!ed(N,e)),g.change(N)});let P={...h,disabled:w},F=d.useMemo(()=>({allValues:n,value:E,defaultValue:T,setValue:O,parent:k,disabled:w,validation:g,registerControlRef:M}),[n,E,T,O,k,w,g,M]),I=Qo(`div`,e,{state:P,ref:t,props:[{id:o,role:`group`,"aria-labelledby":b},f,x],stateAttributesMapping:nu});return(0,S.jsx)(Iu.Provider,{value:F,children:I})}),nd=d.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,s=Ju(),c=s.checked||s.indeterminate,{mounted:l,transitionStatus:u,setMounted:f}=Zs(c),p=d.useRef(null),m={...s,transitionStatus:u};rc({open:c,ref:p,onComplete(){c||f(!1)}});let h={...Bu(s),...tc,...nu},g=a||l,_=Qo(`span`,e,{ref:[t,p],state:m,stateAttributesMapping:h,props:o});return g?_:null}),rd=e=>e.toastMetadata;$(e=>e.toasts),$(e=>e.toasts.length===0),$(rd,(e,t)=>e.get(t)?.value),$(rd,(e,t)=>e.get(t)?.domIndex??-1),$(rd,(e,t)=>e.get(t)?.offsetY??0),$(rd,(e,t)=>e.get(t)?.visibleIndex??-1),$(e=>e.hovering),$(e=>e.focused),$(e=>e.hovering||e.focused),$(e=>e.hovering||e.focused||!e.isWindowFocused),$(e=>e.prevFocusElement),{...tc},`${ls}${us}`;var id=d.forwardRef(function(e,t){return(0,S.jsx)(Fu,{ref:t,...e})});function ad(e,t,n){return e==null||t==null?Object.is(e,t):n(e,t)}function od(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function sd(e){return e!=null&&e.length>0&&typeof e[0]==`object`&&e[0]!=null&&`items`in e[0]}function cd(e){if(!Array.isArray(e))return e!=null&&`null`in e;let t=e;if(sd(t)){for(let e of t)for(let t of e.items)if(t&&t.value==null&&t.label!=null)return!0;return!1}for(let e of t)if(e&&e.value==null&&e.label!=null)return!0;return!1}function ld(e,t){return t&&e!=null?t(e)??``:e&&typeof e==`object`&&`value`in e&&`label`in e?od(e.value):od(e)}$(e=>e.id),$(e=>e.labelId),$(e=>e.items),$(e=>e.selectedValue),$(e=>{let t=e.selectedValue;return Array.isArray(t)&&t.length>0}),$(e=>{let{selectedValue:t,selectionMode:n}=e;return t==null?!1:n===`multiple`&&Array.isArray(t)?t.length>0:!0}),$((e,t)=>t?cd(e.items):!1),$(e=>e.open),$(e=>e.mounted),$(e=>e.forceMounted),$(e=>e.inline),$(e=>e.activeIndex),$(e=>e.selectedIndex),$((e,t)=>e.activeIndex===t),$((e,t)=>{let n=e.isItemEqualToValue,r=e.selectedValue;return Array.isArray(r)?r.some(e=>ad(t,e,n)):ad(t,r,n)}),$(e=>e.transitionStatus),$(e=>e.popupProps),$(e=>e.inputProps),$(e=>e.triggerProps),$(e=>e.itemProps),$(e=>e.positionerElement),$(e=>e.listElement),$(e=>e.popupId),$(e=>e.triggerElement),$(e=>e.inputElement),$(e=>e.inputGroupElement),$(e=>e.popupSide),$(e=>e.openMethod),$(e=>e.inputInsidePopup),$(e=>e.inputOwnsFormValue),$(e=>e.selectionMode),$(e=>e.name),$(e=>e.form),$(e=>e.disabled),$(e=>e.readOnly),$(e=>e.required),$(e=>e.grid),$(e=>e.virtualized),$(e=>e.itemToStringLabel),$(e=>e.isItemEqualToValue),$(e=>e.modal),$(e=>e.autoHighlight),$(e=>e.submitOnItemClick);function ud(e){let t=d.useRef(``),n=d.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:d.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function dd(e,t){let{onClick:n,onPointerDown:r}=ud(Z((n,r)=>{(typeof e==`function`?e():e)||t(r||(Ci?`touch`:``))}));return d.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function fd(e){let[t,n]=d.useState(null),r=dd(e,n);return Yu(e,t=>{t&&!e&&n(null)}),d.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}({...fl,...nu});function pd(e){let t=e.getBoundingClientRect(),n=Nt(e);if(ki)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(!(r.content!==`none`||i.content!==`none`))return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),d=l-t.width,f=u-t.height;return{left:t.left-d/2,right:t.right+d/2,top:t.top-f/2,bottom:t.bottom+f/2}}var md=d.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function hd(){return d.useContext(md)}function gd(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:i}=e,a=Z(i),o=d.useRef(0),s=ei(vd).current,c=ei(_d).current,[l,u]=d.useState(0),f=d.useRef(l),p=Z((e,t)=>{c.set(e,t??null),f.current+=1,u(f.current)}),m=Z(e=>{c.delete(e),f.current+=1,u(f.current)}),h=d.useMemo(()=>{let e=new Map;return Array.from(c.keys()).filter(e=>e.isConnected).sort(yd).forEach((t,n)=>{let r=c.get(t)??{};e.set(t,{...r,index:n})}),e},[c,l]);J(()=>{if(typeof MutationObserver!=`function`||h.size===0)return;let e=new MutationObserver(e=>{let t=new Set,n=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(n),e.addedNodes.forEach(n)}),t.size===0&&(f.current+=1,u(f.current))});return h.forEach((t,n)=>{n.parentElement&&e.observe(n.parentElement,{childList:!0})}),()=>{e.disconnect()}},[h]),J(()=>{f.current===l&&(n.current.length!==h.size&&(n.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size),o.current=h.size),a(h)},[a,h,n,r,l]),J(()=>()=>{n.current=[]},[n]),J(()=>()=>{r&&(r.current=[])},[r]);let g=Z(e=>(s.add(e),()=>{s.delete(e)}));J(()=>{s.forEach(e=>e(h))},[s,h]);let _=d.useMemo(()=>({register:p,unregister:m,subscribeMapChange:g,elementsRef:n,labelsRef:r,nextIndexRef:o}),[p,m,g,n,r,o]);return(0,S.jsx)(md.Provider,{value:_,children:t})}function _d(){return new Map}function vd(){return new Set}function yd(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}({...pl,...tc});var bd={},xd={},Sd=``;function Cd(e){if(typeof document>`u`)return!1;let t=Wa(e);return Nt(t).innerWidth-t.documentElement.clientWidth>0}function wd(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=Wa(e),n=t.documentElement,r=t.body,i=Rt(n)?n:r,a=i.style.overflowY,o=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,i.style.overflowY=`scroll`;let s=i.offsetWidth;i.style.overflowY=`hidden`;let c=i.offsetWidth;return i.style.overflowY=a,n.style.scrollbarGutter=o,s===c}function Td(e){let t=Wa(e),n=t.documentElement,r=t.body,i=Rt(n)?n:r,a={overflowY:i.style.overflowY,overflowX:i.style.overflowX};return Object.assign(i.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(i.style,a)}}function Ed(e){let t=Wa(e),n=t.documentElement,r=t.body,i=Nt(n),a=0,o=0,s=!1,c=Ha.create();if(Di&&(i.visualViewport?.scale??1)!==1)return()=>{};function l(){let t=i.getComputedStyle(n),c=i.getComputedStyle(r),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;a=n.scrollTop,o=n.scrollLeft,bd={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},Sd=n.style.scrollBehavior,xd={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let u=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f=t.overflowY===`scroll`||c.overflowY===`scroll`,p=t.overflowX===`scroll`||c.overflowX===`scroll`,m=Math.max(0,i.innerWidth-r.clientWidth),h=Math.max(0,i.innerHeight-r.clientHeight),g=parseFloat(c.marginTop)+parseFloat(c.marginBottom),_=parseFloat(c.marginLeft)+parseFloat(c.marginRight),v=Rt(n)?n:r;if(s=wd(e),s){n.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(n.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(n.style.overflowY=`scroll`),(d||p)&&(n.style.overflowX=`scroll`),Object.assign(r.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflow:`hidden`,scrollBehavior:`unset`}),r.scrollTop=a,r.scrollLeft=o,n.setAttribute(`data-base-ui-scroll-locked`,``),n.style.scrollBehavior=`unset`}function u(){Object.assign(n.style,bd),Object.assign(r.style,xd),s||(n.scrollTop=a,n.scrollLeft=o,n.removeAttribute(`data-base-ui-scroll-locked`),n.style.scrollBehavior=Sd)}function d(){u(),c.request(l)}l();let f=Ta(i,`resize`,d);return()=>{c.cancel(),u(),typeof i.removeEventListener==`function`&&f()}}new class{lockCount=0;restore=null;timeoutLock=hi.create();timeoutUnlock=hi.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=Wa(e).documentElement,n=Nt(t).getComputedStyle(t).overflowY;if(n===`hidden`||n===`clip`){this.restore=ia;return}let r=Ci||!Cd(e);this.restore=r?Td(e):Ed(e)}},{...pl,...tc};var Dd=(function(e){return e[e.None=0]=`None`,e[e.GuessFromOrder=1]=`GuessFromOrder`,e})({});function Od(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,elementsRef:l,labelsRef:u,nextIndexRef:f}=hd(),p=d.useRef(-1),[m,h]=d.useState(a??(i===Dd.GuessFromOrder?()=>{if(p.current===-1){let e=f.current;f.current+=1,p.current=e}return p.current}:-1)),g=d.useRef(null),_=d.useCallback(e=>{if(g.current=e,m!==-1&&e!==null&&(l.current[m]=e,u)){let n=t!==void 0;u.current[m]=n?t:r?.current?.textContent??e.textContent}},[m,l,u,t,r]);return J(()=>{if(a!=null)return;let e=g.current;if(e)return o(e,n),()=>{s(e)}},[a,o,s,n]),J(()=>{if(a==null)return c(e=>{let t=g.current?e.get(g.current)?.index:null;t!=null&&h(t)})},[a,c,h]),{ref:_,index:m}}({...tc,...dl});function kd(e){return e==null||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}var Ad=`ArrowUp`,jd=`ArrowDown`,Md=`ArrowLeft`,Nd=`ArrowRight`,Pd=`Home`,Fd=`End`,Id=new Set([Md,Nd]),Ld=new Set([Md,Nd,Pd,Fd]),Rd=new Set([Ad,jd]),zd=new Set([Ad,jd,Pd,Fd]),Bd=new Set([...Id,...Rd]),Vd=new Set([...Bd,Pd,Fd]),Hd=new Set([`Shift`,`Control`,`Alt`,`Meta`]);function Ud(e){return It(e)&&e.tagName===`INPUT`}function Wd(e){return!!(Ud(e)&&e.selectionStart!=null||It(e)&&e.tagName===`TEXTAREA`)}function Gd(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidthe.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLefte.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=Kd(e,t,`top`),r=qd(e),i=qd(t);n-i.scrollMarginTope.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function Kd(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function qd(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var Jd=`data-composite-item-active`,Yd=[];function Xd(e){let{loopFocus:t=!0,orientation:n=`both`,grid:r,onLoop:i,direction:a,highlightedIndex:o,onHighlightedIndexChange:s,rootRef:c,enableHomeAndEndKeys:l=!1,stopEventPropagation:u=!1,disabledIndices:f,modifierKeys:p=Yd}=e,[m,h]=d.useState(0),g=r!=null,_=d.useRef(null),v=Da(_,c),y=d.useRef([]),b=d.useRef(!1),x=o??m,S=Z((e,t=!1)=>{if((s??h)(e),t){let t=y.current[e];Gd(_.current,t,a,n)}}),C=Z(e=>{if(e.size===0||b.current)return;b.current=!0;let t=Array.from(e.keys()),r=t.find(e=>e?.hasAttribute(Jd))??null,i=r?t.indexOf(r):-1;if(i!==-1)S(i);else if($a(t,x,f)){let e=Qa(t,{disabledIndices:f});Ya(t,e)||S(e)}Gd(_.current,r,a,n)});J(()=>{if(f==null||o!=null||!b.current)return;let e=y.current;if($a(e,x,f)){let t=Qa(e,{disabledIndices:f});Ya(e,t)||S(t)}},[f,o,x,y,S]);let w=Z((e,t,n)=>i?i(e,t,n,y):n),T=Z(e=>{let o=l?Vd:Bd;if(!o.has(e.key)||Zd(e,p)||!_.current)return;let s=a===`rtl`,c=s?Md:Nd,d={horizontal:c,vertical:jd,both:c}[n],m=s?Nd:Md,h={horizontal:m,vertical:Ad,both:m}[n],v=Wi(e.nativeEvent);if(v!=null&&Wd(v)&&!kd(v)){let t=v.selectionStart,n=v.selectionEnd,r=v.value??``;if(t==null||e.shiftKey||t!==n||e.key!==h&&t0)return}let b=x,C=Xa(y,f),T=Za(y,f);r!=null&&(b=r({disabledIndices:f,elementsRef:y,event:e,highlightedIndex:x,loopFocus:t,maxIndex:T,minIndex:C,onLoop:w,orientation:n,rtl:s}));let E={horizontal:[c],vertical:[jd],both:[c,jd]}[n],D={horizontal:[m],vertical:[Ad],both:[m,Ad]}[n],O=g?o:{horizontal:l?Ld:Id,vertical:l?zd:Rd,both:o}[n];l&&(e.key===Pd?b=C:e.key===Fd&&(b=T)),b===x&&(E.includes(e.key)||D.includes(e.key))&&(t&&b===T&&E.includes(e.key)?(b=C,i&&(b=i(e,x,b,y))):t&&b===C&&D.includes(e.key)?(b=T,i&&(b=i(e,x,b,y))):b=Qa(y.current,{startingIndex:b,decrement:D.includes(e.key),disabledIndices:f})),b!==x&&!Ya(y.current,b)&&(u&&e.stopPropagation(),O.has(e.key)&&e.preventDefault(),S(b,!0),queueMicrotask(()=>{y.current[b]?.focus()}))});return{props:{ref:v,onFocus(e){let t=_.current,n=Wi(e.nativeEvent);!t||n==null||!Wd(n)||n.setSelectionRange(0,n.value.length??0)},onKeyDown:T},highlightedIndex:x,onHighlightedIndexChange:S,elementsRef:y,disabledIndices:f,onMapChange:C,relayKeyboardEvent:T}}function Zd(e,t){for(let n of Hd.values())if(!t.includes(n)&&e.getModifierState(n))return!0;return!1}function Qd(e){let{render:t,className:n,style:r,refs:i=aa,props:a=aa,state:o=oa,stateAttributesMapping:s,highlightedIndex:c,onHighlightedIndexChange:l,orientation:u,grid:f,loopFocus:p,onLoop:m,enableHomeAndEndKeys:h,onMapChange:g,stopEventPropagation:_=!0,rootRef:v,disabledIndices:y,modifierKeys:b,highlightItemOnHover:x=!1,tag:C=`div`,...w}=e,{props:T,highlightedIndex:E,onHighlightedIndexChange:D,elementsRef:O,onMapChange:k,relayKeyboardEvent:A}=Xd({grid:f,loopFocus:p,onLoop:m,orientation:u,highlightedIndex:c,onHighlightedIndexChange:l,rootRef:v,stopEventPropagation:_,enableHomeAndEndKeys:h,direction:Al(),disabledIndices:y,modifierKeys:b}),j=Qo(C,e,{state:o,ref:i,props:[T,...a,w],stateAttributesMapping:s}),M=d.useMemo(()=>({highlightedIndex:E,onHighlightedIndexChange:D,highlightItemOnHover:x,relayKeyboardEvent:A}),[E,D,x,A]);return(0,S.jsx)(Vu.Provider,{value:M,children:(0,S.jsx)(gd,{elementsRef:O,onMapChange:e=>{g?.(e),k(e)},children:j})})}function $d(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=Hu(),{ref:i,index:a}=Od(e),o=n===a,s=d.useRef(null),c=Da(i,s);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=s.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:c,index:a}}function ef(e){let{render:t,className:n,style:r,state:i=oa,props:a=aa,refs:o=aa,metadata:s,stateAttributesMapping:c,tag:l=`div`,...u}=e,{compositeProps:d,compositeRef:f}=$d({metadata:s});return Qo(l,e,{state:i,ref:[...o,f],props:[d,...a,u],stateAttributesMapping:c})}({...pl,...tc}),(function(e){return e[e.open=il.open]=`open`,e[e.closed=il.closed]=`closed`,e[e.startingStyle=il.startingStyle]=`startingStyle`,e[e.endingStyle=il.endingStyle]=`endingStyle`,e.nested=`data-nested`,e.nestedDialogOpen=`data-nested-dialog-open`,e})({}),{...pl,...tc},{...wc},$(e=>e.modal),$(e=>e.nested),$(e=>e.nestedOpenDialogCount),$(e=>e.nestedOpenDrawerCount),$(e=>e.disablePointerDismissal),$(e=>e.openMethod),$(e=>e.descriptionElementId),$(e=>e.titleElementId),$(e=>e.viewportElement),$(e=>e.role),(function(e){return e[e.open=il.open]=`open`,e[e.closed=il.closed]=`closed`,e[e.startingStyle=il.startingStyle]=`startingStyle`,e[e.endingStyle=il.endingStyle]=`endingStyle`,e.nested=`data-nested`,e.nestedDialogOpen=`data-nested-dialog-open`,e})({}),{...pl,...tc};var tf=d.createContext(void 0);function nf(e){let t=d.useContext(tf);if(t===void 0&&!e)throw Error(li(36));return t}var rf=d.createContext(void 0);function af(e=!0){let t=d.useContext(rf);if(t===void 0&&!e)throw Error(li(25));return t}({...pl,...tc}),{...tc},{...pl,...tc};var of=d.createContext(null);function sf(e){let t=d.useContext(of);if(t===null&&!e)throw Error(li(5));return t}var cf={...wc,disabled:$(e=>e.parent.type===`menubar`&&e.parent.context.disabled||e.disabled),modal:$(e=>(e.parent.type===void 0||e.parent.type===`context-menu`)&&(e.modal??!0)),openMethod:$(e=>e.openMethod),allowMouseEnter:$(e=>e.allowMouseEnter),highlightItemOnHover:$(e=>e.highlightItemOnHover),stickIfOpen:$(e=>e.stickIfOpen),parent:$(e=>e.parent),rootId:$(e=>e.parent.type===`menu`?e.parent.store.select(`rootId`):e.parent.type===void 0?e.rootId:e.parent.context.rootId),activeIndex:$(e=>e.activeIndex),isActive:$((e,t)=>e.activeIndex===t),hoverEnabled:$(e=>e.hoverEnabled),instantType:$(e=>e.instantType),lastOpenChangeReason:$(e=>e.openChangeReason),floatingTreeRoot:$(e=>e.parent.type===`menu`?e.parent.store.select(`floatingTreeRoot`):e.floatingTreeRoot),floatingNodeId:$(e=>e.floatingNodeId),floatingParentNodeId:$(e=>e.floatingParentNodeId),itemProps:$(e=>e.itemProps),closeDelay:$(e=>e.closeDelay),hasViewport:$(e=>e.hasViewport),keyboardEventRelay:$(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type===`menu`)return e.parent.store.select(`keyboardEventRelay`)})},lf=class e extends Ks{constructor(e){super({...uf(),...e},{positionerRef:d.createRef(),popupRef:d.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:d.createRef(),beforeContentFocusGuardRef:d.createRef(),onOpenChangeComplete:void 0,triggerElements:new hc},cf),this.unsubscribeParentListener=this.observe(`parent`,e=>{if(this.unsubscribeParentListener?.(),e.type===`menu`){let t=e.store.select(`rootId`),n=e.store.select(`floatingTreeRoot`),r=e.store.select(`keyboardEventRelay`);this.unsubscribeParentListener=e.store.subscribe(()=>{let i=e.store.select(`rootId`),a=e.store.select(`floatingTreeRoot`),o=e.store.select(`keyboardEventRelay`);t===i&&n===a&&r===o||(t=i,n=a,r=o,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}e.type!==void 0&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit(`setOpen`,{open:e,eventDetails:t})}static useStore(t,n){let r=ei(()=>new e(n)).current;return t??r}unsubscribeParentListener=null};function uf(){return{..._c(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new _s,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:oa,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}var df=d.createContext(void 0);function ff(){return d.useContext(df)}ai(function(e){let{children:t,open:n,onOpenChange:r,onOpenChangeComplete:i,defaultOpen:a=!1,disabled:o=!1,modal:s,loopFocus:c=!0,orientation:l=`vertical`,actionsRef:u,closeParentOnEsc:f=!1,handle:p,triggerId:m,defaultTriggerId:h=null,highlightItemOnHover:g=!0}=e,_=af(!0),v=nf(!0),y=sf(!0),b=ff(),x=d.useMemo(()=>b&&v?{type:`menu`,store:v.store}:y?{type:`menubar`,context:y}:_&&!v?{type:`context-menu`,context:_}:{type:void 0},[_,v,y,b]),C=lf.useStore(p?.store,{open:a,openProp:n,activeTriggerId:h,triggerIdProp:m,parent:x});uc(C,n,a,h),C.useControlledProp(`openProp`,n),C.useControlledProp(`triggerIdProp`,m),C.useContextCallback(`onOpenChangeComplete`,i);let w=ko(),T=ko(),E=C.useState(`floatingTreeRoot`),D=Ss(E),O=bs(),k=C.useState(`open`),A=C.useState(`activeTriggerElement`),j=C.useState(`positionerElement`),M=C.useState(`hoverEnabled`),N=C.useState(`disabled`),P=C.useState(`lastOpenChangeReason`),F=C.useState(`parent`),I=C.useState(`activeIndex`),L=C.useState(`payload`),R=C.useState(`floatingParentNodeId`),ee=d.useRef(null),z=d.useRef(F.type!==`context-menu`),B=gi(),V=d.useRef(!0),H=gi(),te=R!=null,{openMethod:U,triggerProps:ne}=fd(k);C.useSyncedValues({disabled:o,highlightItemOnHover:g,modal:F.type===void 0?s:void 0,openMethod:U,rootId:w}),fc(C);let{forceUnmount:re}=pc(k,C,()=>{C.update({allowMouseEnter:!1,stickIfOpen:!0})});J(()=>{_&&!v?C.update({parent:{type:`context-menu`,context:_},floatingNodeId:D,floatingParentNodeId:O}):v&&C.update({floatingNodeId:D,floatingParentNodeId:O})},[_,v,D,O,C]),d.useEffect(()=>{if(k||(ee.current=null),F.type===`context-menu`){if(!k){B.clear(),z.current=!1;return}B.start(500,()=>{z.current=!0})}},[B,k,F.type]),J(()=>{!k&&!M&&C.set(`hoverEnabled`,!0)},[k,M,C]);let ie=Z((e,t)=>{let n=t.reason;if(k===e&&t.trigger===A&&P===n)return;let i=cc(t);if(!e&&t.trigger==null&&(t.trigger=A??void 0),r?.(e,t),t.isCanceled)return;C.state.floatingRootContext.dispatchOpenChange(e,t);let a=t.event;if(e===!1&&a?.type===`click`&&a.pointerType===`touch`&&!V.current)return;e&&n===ua?(V.current=!1,H.start(300,()=>{V.current=!0})):(V.current=!0,H.clear());let o=(n===ca||n===fa)&&a.detail===0&&a?.isTrusted,s=!e&&(n===ma||n==null),c={open:e,openChangeReason:n};ee.current=t.event??null,sc(c,e,t.trigger,i()),C.update(c),F.type===`menubar`&&(n===ua||n===pa||n===la||n===ha||n===_a)?C.set(`instantType`,`group`):o||s?C.set(`instantType`,o?`click`:`dismiss`):C.set(`instantType`,void 0)}),ae=Xs({popupStore:C,floatingId:T,nested:O!=null,onOpenChange:ie}),oe=ae.context.events;d.useEffect(()=>{let e=({open:e,eventDetails:t})=>ie(e,t);return oe.on(`setOpen`,e),()=>{oe?.off(`setOpen`,e)}},[oe,ie]);let se=d.useCallback(()=>{C.setOpen(!1,X(xa))},[C]);d.useImperativeHandle(u,()=>({unmount:re,close:se}),[re,se]);let ce;F.type===`context-menu`&&(ce=F.context),d.useImperativeHandle(ce?.positionerRef,()=>j,[j]),d.useImperativeHandle(ce?.actionsRef,()=>({setOpen:ie}),[ie]);let le=js(ae,{enabled:!N,bubbles:{escapeKey:f&&F.type===`menu`},outsidePress(){return F.type!==`context-menu`||ee.current?.type===`contextmenu`||z.current},externalTree:te?E:void 0}),ue=Al(),de=d.useCallback(e=>{C.select(`activeIndex`)!==e&&C.set(`activeIndex`,e)},[C]),fe=Uc(ae,{enabled:!N,listRef:C.context.itemDomElements,activeIndex:I,nested:F.type!==void 0,loopFocus:c,orientation:l,parentOrientation:F.type===`menubar`?F.context.orientation:void 0,rtl:ue===`rtl`,disabledIndices:aa,onNavigate:de,openOnArrowKeyDown:F.type!==`context-menu`,externalTree:te?E:void 0,focusItemOnHover:g}),pe=d.useCallback(e=>{C.context.typingRef.current=e},[C]),me=Wc(ae,{enabled:!N,listRef:C.context.itemLabels,elementsRef:C.context.itemDomElements,activeIndex:I,resetMs:is,onMatch:e=>{k&&e!==I&&C.set(`activeIndex`,e)},onTyping:pe});mc(C,{floatingRootContext:ae,activeTriggerProps:d.useMemo(()=>{let e=Ro(me.reference,fe.reference,le.reference,{onMouseMove(){C.set(`allowMouseEnter`,!0)}},ne);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=k,e},[C,me.reference,fe.reference,le.reference,ne,k]),inactiveTriggerProps:d.useMemo(()=>{let e=Ro(fe.trigger,le.trigger,ne);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=!1,e},[fe.trigger,le.trigger,ne]),popupProps:d.useMemo(()=>Ro(ic,{id:T,role:`menu`,"aria-labelledby":A?.id,onMouseMove(){C.set(`allowMouseEnter`,!0),F.type===`menu`&&C.set(`hoverEnabled`,!1)},onClick(){C.select(`hoverEnabled`)&&C.set(`hoverEnabled`,!1)},onKeyDown(e){let t=C.select(`keyboardEventRelay`);t&&!e.isPropagationStopped()&&t(e)}},me.floating,fe.floating,le.floating),[A,T,F.type,C,me.floating,fe.floating,le.floating]),itemProps:fe.item??oa});let he=d.useMemo(()=>({store:C,parent:x}),[C,x]),ge=(0,S.jsx)(tf.Provider,{value:he,children:typeof t==`function`?t({payload:L}):t});return F.type===void 0||F.type===`context-menu`?(0,S.jsx)(Cs,{externalTree:E,children:ge}):ge});function pf(e){if(It(e)&&e.hasAttribute(`data-rootownerid`))return e.getAttribute(`data-rootownerid`)??void 0;if(!Jt(e))return pf(Zt(e))}function mf(e,t){let n=d.useRef(null);function r(t){At.flushSync(()=>{e.setOpen(!1,X(pa,t.nativeEvent,t.currentTarget))}),bo(n.current)?.focus()}function i(n){let r=e.select(`positionerElement`);if(r&&xo(n,r))e.context.beforeContentFocusGuardRef.current?.focus();else{At.flushSync(()=>{e.setOpen(!1,X(pa,n.nativeEvent,n.currentTarget))});let i=yo(e.context.triggerFocusTargetRef.current||t.current);for(;i!==null&&Ui(r,i);){let e=i;if(i=_o(i),i===e)break}i?.focus()}}return{preFocusGuardRef:n,handlePreFocusGuardFocus:r,handleFocusTargetFocus:i}}function hf(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,i=d.useRef(!1);return d.useMemo(()=>t?{onMouseDown:e=>{(n===`open`&&!r||n===`close`&&r)&&(i.current=!0,Wa(e.currentTarget).addEventListener(`click`,()=>{i.current=!1},{once:!0}))},onClick:e=>{i.current&&(i.current=!1,e.preventBaseUIHandler())}}:oa,[t,n,r])}var gf=2;oi(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,id:s,openOnHover:c,delay:l=100,closeDelay:u=0,handle:f,payload:p,...m}=e,h=nf(!0),g=f?.store??h?.store;if(!g)throw Error(li(85));let _=ml(s),v=g.useState(`isTriggerActive`,_),y=g.useState(`floatingRootContext`),b=g.useState(`isOpenedByTrigger`,_),x=g.useState(`triggerPopupId`,_),C=d.useRef(null),w=vf(),T=Hu(!0),E=xs(),D=d.useMemo(()=>E??new _s,[E]),{registerTrigger:O,isMountedByThisTrigger:k}=dc(_,C,g,{payload:p,closeDelay:u,parent:w,floatingTreeRoot:D,floatingNodeId:Ss(D),floatingParentNodeId:bs(),keyboardEventRelay:T?.relayKeyboardEvent}),A=w.type===`menubar`,j=g.useState(`disabled`),M=a||j||A&&w.context.disabled,{getButtonProps:N,buttonRef:P}=Wu({disabled:M,native:o});d.useEffect(()=>{!b&&w.type===void 0&&(g.context.allowMouseUpTriggerRef.current=!1)},[g,b,w.type]);let F=d.useRef(null),I=gi(),L=Z(e=>{if(!F.current)return;I.clear(),g.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if(Ui(F.current,t)||Ui(g.select(`positionerElement`),t)||t===F.current||t!=null&&pf(t)===g.select(`rootId`))return;let n=pd(F.current);e.clientX>=n.left-gf&&e.clientX<=n.right+gf&&e.clientY>=n.top-gf&&e.clientY<=n.bottom+gf||D.events.emit(`close`,{domEvent:e,reason:ga})});d.useEffect(()=>{b&&g.select(`lastOpenChangeReason`)===la&&Wa(F.current).addEventListener(`mouseup`,L,{once:!0})},[b,L,g]);let R=A&&w.context.hasSubmenuOpen,ee=Ic(y,{enabled:(c??R)&&!M&&w.type!==`context-menu`&&(!A||R&&!k),handleClose:Qc({blockPointerEvents:!A}),mouseOnly:!0,move:!1,restMs:w.type===void 0?l:void 0,delay:{close:u},triggerElementRef:C,externalTree:D,isActiveTrigger:v,isClosing:()=>g.select(`transitionStatus`)===`ending`}),z=_f(b,g.select(`lastOpenChangeReason`)),B=Ts(y,{enabled:!M&&w.type!==`context-menu`,event:b&&A?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:w.type===void 0&&z}),V=Oc(y,{enabled:!M&&R}),H=hf({open:b,enabled:A,mouseDownAction:`open`}),te=d.useMemo(()=>Ro(V.reference,B.reference),[V.reference,B.reference]),U=g.useState(`triggerProps`,k),{preFocusGuardRef:ne,handlePreFocusGuardFocus:re,handleFocusTargetFocus:ie}=mf(g,C),ae={disabled:M,open:b},oe=[F,t,P,O,C],se=[te,ee??oa,U,{"aria-haspopup":`menu`,"aria-controls":x,id:_,onMouseDown:e=>{g.select(`open`)||(I.start(200,()=>{g.context.allowMouseUpTriggerRef.current=!0}),Wa(e.currentTarget).addEventListener(`mouseup`,L,{once:!0}))}},A?{role:`menuitem`}:{},H,m,N],ce=Qo(`button`,e,{enabled:!A,stateAttributesMapping:fl,state:ae,ref:oe,props:se});return A?(0,S.jsx)(ef,{tag:`button`,render:n,className:r,style:i,state:ae,refs:oe,props:se,stateAttributesMapping:fl}):b?(0,S.jsxs)(d.Fragment,{children:[(0,S.jsx)(Ja,{ref:ne,onFocus:re},`${_}-pre-focus-guard`),(0,S.jsx)(d.Fragment,{children:ce},_),(0,S.jsx)(Ja,{ref:g.context.triggerFocusTargetRef,onFocus:ie},`${_}-post-focus-guard`)]}):(0,S.jsx)(d.Fragment,{children:ce},_)});function _f(e,t){let n=gi(),[r,i]=d.useState(!1);return J(()=>{e&&t===`trigger-hover`?(i(!0),n.start(as,()=>{i(!1)})):e||(n.clear(),i(!1))},[e,t,n]),r}function vf(){let e=af(!0),t=nf(!0),n=sf(!0);return d.useMemo(()=>n?{type:`menubar`,context:n}:e&&!t?{type:`context-menu`,context:e}:{type:void 0},[e,t,n])}var yf=(function(e){return e.open=`data-open`,e.closed=`data-closed`,e[e.startingStyle=Qs.startingStyle]=`startingStyle`,e[e.endingStyle=Qs.endingStyle]=`endingStyle`,e})({}),bf=(function(e){return e.panelOpen=`data-panel-open`,e})({}),xf={[yf.open]:``},Sf={[yf.closed]:``},Cf={open(e){return e?{[bf.panelOpen]:``}:null}},wf={open(e){return e?xf:Sf}};({...wf,...tc}),{...Cf,...tc},$(e=>e.id),$(e=>e.labelId),$(e=>e.modal),$(e=>e.multiple),$(e=>e.items),$(e=>e.itemToStringLabel),$(e=>e.itemToStringValue),$(e=>e.isItemEqualToValue),$(e=>e.value),$(e=>{let{value:t,multiple:n,itemToStringValue:r}=e;return t==null?!1:n&&Array.isArray(t)?t.length>0:ld(t,r)!==``}),$((e,t)=>t?cd(e.items):!1),$(e=>e.open),$(e=>e.mounted),$(e=>e.forceMount),$(e=>e.transitionStatus),$(e=>e.openMethod),$(e=>e.activeIndex),$(e=>e.selectedIndex),$((e,t)=>e.activeIndex===t),$((e,t)=>{let n=e.isItemEqualToValue,r=e.value;return e.multiple?Array.isArray(r)&&r.some(e=>ad(t,e,n)):ad(t,r,n)}),$((e,t)=>e.selectedIndex===t),$(e=>e.popupProps),$(e=>e.triggerProps),$(e=>e.triggerElement),$(e=>e.positionerElement),$(e=>e.listElement),$(e=>e.popupSide),$(e=>e.scrollUpArrowVisible),$(e=>e.scrollDownArrowVisible),$(e=>e.hasScrollArrows),{...fl,...nu},{...pl,...tc};var Tf=d.createContext(void 0),Ef={disableStyleElements:!1};function Df(){return d.useContext(Tf)??Ef}({...pl,...tc}),{...pl,...tc},{...nu};var Of=d.createContext(void 0);function kf(){let e=d.useContext(Of);if(e===void 0)throw Error(li(64));return e}var Af=(function(e){return e.activationDirection=`data-activation-direction`,e.orientation=`data-orientation`,e})({}),jf={tabActivationDirection:e=>({[Af.activationDirection]:e})},Mf=d.forwardRef(function(e,t){let{className:n,defaultValue:r=0,onValueChange:i,orientation:a=`horizontal`,render:o,value:s,style:c,...l}=e,u=e.defaultValue!==void 0,f=d.useRef([]),[p,m]=d.useState(()=>new Map),[h,g]=Nu({controlled:s,default:r,name:`Tabs`,state:`value`}),_=s!==void 0,[v,y]=d.useState(()=>new Map),b=d.useRef(void 0),x=d.useCallback(e=>{if(e===void 0)return null;for(let[t,n]of v.entries())if(n!=null&&e===(n.value??n.index))return t;return null},[v]),[C,w]=d.useState(()=>({previousValue:h,tabActivationDirection:`none`})),{previousValue:T,tabActivationDirection:E}=C,D=E,O=!1;T!==h&&(D=Nf(T,h,a,v),O=T!=null&&h!=null&&x(h)==null);let k=O?T:h,A=T!==k||E!==D;J(()=>{A&&w({previousValue:k,tabActivationDirection:D})},[k,A,D]);let j=Z((e,t)=>{t.activationDirection=Nf(h,e,a,v),i?.(e,t),!t.isCanceled&&g(e)}),M=Z((e,t)=>{i?.(e,X(t,void 0,void 0,{activationDirection:`none`}))}),N=Z((e,t)=>{m(n=>{if(n.get(e)===t)return n;let r=new Map(n);return r.set(e,t),r})}),P=Z((e,t)=>{m(n=>{if(!n.has(e)||n.get(e)!==t)return n;let r=new Map(n);return r.delete(e),r})}),F=d.useCallback(e=>p.get(e),[p]),I=d.useCallback(e=>{for(let t of v.values())if(e===t?.value)return t?.id},[v]),L=d.useMemo(()=>({getTabElementBySelectedValue:x,getTabIdByPanelValue:I,getTabPanelIdByValue:F,onValueChange:j,orientation:a,registerMountedTabPanel:N,setTabMap:y,unregisterMountedTabPanel:P,tabActivationDirection:D,value:h}),[x,I,F,j,a,N,y,P,D,h]),R=d.useMemo(()=>{for(let e of v.values())if(e!=null&&e.value===h)return e},[v,h]),ee=d.useMemo(()=>{for(let e of v.values())if(e!=null&&!e.disabled)return e.value},[v]),z=d.useRef(!u),B=d.useRef(r),V=d.useRef(u),H=d.useRef(!1);J(()=>{if(_)return;function e(e,t){g(e),w(t=>t.previousValue===e&&t.tabActivationDirection===`none`?t:{previousValue:e,tabActivationDirection:`none`}),M(e,t),z.current=!1}if(v.size===0){H.current&&h!==null&&!b.current?.isConnected&&e(null,ya);return}H.current=!0,b.current=v.keys().next().value;let t=R?.disabled,n=R==null&&h!==null;if(!t&&h===B.current&&(V.current=!1),V.current&&t&&h===B.current)return;let r=z.current;if(t||n){let n=ee??null;if(h===n){z.current=!1;return}let i=ya;r?i=ba:t&&(i=va),e(n,i);return}r&&R!=null&&(M(h,ba),z.current=!1)},[ee,_,M,R,g,v,h]);let te=Qo(`div`,e,{state:{orientation:a,tabActivationDirection:D},ref:t,props:l,stateAttributesMapping:jf});return(0,S.jsx)(Of.Provider,{value:L,children:(0,S.jsx)(gd,{elementsRef:f,children:te})})});function Nf(e,t,n,r){if(e==null||t==null)return`none`;let i=null,a=null;for(let[n,o]of r.entries()){if(o==null)continue;let r=o.value??o.index;if(e===r&&(i=n),t===r&&(a=n),i!=null&&a!=null)break}if(i==null||a==null)return i!==a&&(typeof e==`number`||typeof e==`string`)&&typeof e==typeof t?n===`horizontal`?t>e?`right`:`left`:t>e?`down`:`up`:`none`;let o=i.getBoundingClientRect(),s=a.getBoundingClientRect();if(n===`horizontal`){if(s.lefto.left)return`right`}else{if(s.topo.top)return`down`}return`none`}var Pf=d.createContext(void 0);function Ff(){let e=d.useContext(Pf);if(e===void 0)throw Error(li(65));return e}var If=d.forwardRef(function(e,t){let{className:n,disabled:r=!1,render:i,value:a,id:o,nativeButton:s=!0,style:c,...l}=e,{value:u,getTabPanelIdByValue:f,orientation:p,tabActivationDirection:m}=kf(),{activateOnFocus:h,highlightedTabIndex:g,onTabActivation:_,registerTabResizeObserverElement:v,setHighlightedTabIndex:y,tabsListElement:b}=Ff(),x=ml(o),{compositeProps:S,compositeRef:C,index:w}=$d({metadata:d.useMemo(()=>({disabled:r,id:x,value:a}),[r,x,a])}),T=a===u,E=d.useRef(!1),D=d.useRef(null);J(()=>{let e=D.current;if(e)return v(e)},[v]),J(()=>{if(E.current){E.current=!1;return}if(!(T&&w>-1&&g!==w))return;let e=b;if(e!=null){let t=Hi(Wa(e));if(t&&Ui(e,t))return}r||y(w)},[T,w,g,y,r,b]);let{getButtonProps:O,buttonRef:k}=Wu({disabled:r,native:s,focusableWhenDisabled:!0}),A=f(a),j=d.useRef(!1),M=d.useRef(!1);function N(e){T||r||_(a,X(sa,e.nativeEvent,void 0,{activationDirection:`none`}))}function P(e){T||(w>-1&&!r&&y(w),!r&&h&&(!j.current||j.current&&M.current)&&_(a,X(sa,e.nativeEvent,void 0,{activationDirection:`none`})))}function F(e){if(T||r)return;j.current=!0;function t(){j.current=!1,M.current=!1}(!e.button||e.button===0)&&(M.current=!0,Wa(e.currentTarget).addEventListener(`pointerup`,t,{once:!0}))}return Qo(`button`,e,{state:{disabled:r,active:T,orientation:p,tabActivationDirection:m},ref:[t,k,C,D],props:[S,{role:`tab`,"aria-controls":A,"aria-selected":T,id:x,onClick:N,onFocus:P,onPointerDown:F,[Jd]:T?``:void 0,onKeyDownCapture(){E.current=!0}},l,O],stateAttributesMapping:jf})});function Lf(){return ia}function Rf(){return!1}function zf(){return!0}function Bf(){return Gr.useSyncExternalStore(Lf,Rf,zf)}var Vf='!function(){const t=document.currentScript.previousElementSibling;if(!t)return;const e=t.closest(\'[role="tablist"]\');if(!e)return;const i=e.querySelector("[data-active]");if(!i)return;if(0===i.offsetWidth||0===e.offsetWidth)return;let o=0,n=0,h=0,l=0,r=0,f=0;function s(t){const e=getComputedStyle(t);let i=parseFloat(e.width)||0,o=parseFloat(e.height)||0;return(Math.round(i)!==t.offsetWidth||Math.round(o)!==t.offsetHeight)&&(i=t.offsetWidth,o=t.offsetHeight),{width:i,height:o}}if(null!=i&&null!=e){const{width:t,height:c}=s(i),{width:u,height:d}=s(e),a=i.getBoundingClientRect(),g=e.getBoundingClientRect(),p=u>0?g.width/u:1,b=d>0?g.height/d:1;if(Math.abs(p)>Number.EPSILON&&Math.abs(b)>Number.EPSILON){const t=a.left-g.left,i=a.top-g.top;o=t/p+e.scrollLeft-e.clientLeft,h=i/b+e.scrollTop-e.clientTop}else o=i.offsetLeft,h=i.offsetTop;r=t,f=c,n=e.scrollWidth-o-r,l=e.scrollHeight-h-f}function c(e,i){t.style.setProperty(`--active-tab-${e}`,`${i}px`)}c("left",o),c("right",n),c("top",h),c("bottom",l),c("width",r),c("height",f),r>0&&f>0&&t.removeAttribute("hidden")}();',Hf=(function(e){return e.activeTabLeft=`--active-tab-left`,e.activeTabRight=`--active-tab-right`,e.activeTabTop=`--active-tab-top`,e.activeTabBottom=`--active-tab-bottom`,e.activeTabWidth=`--active-tab-width`,e.activeTabHeight=`--active-tab-height`,e})({}),Uf={...jf,activeTabPosition:()=>null,activeTabSize:()=>null},Wf=d.forwardRef(function(e,t){let{className:n,render:r,renderBeforeHydration:i=!1,style:a,...o}=e,{nonce:s}=Df(),{getTabElementBySelectedValue:c,orientation:l,tabActivationDirection:u,value:f}=kf(),{tabsListElement:p,registerIndicatorUpdateListener:m}=Ff(),h=Bf(),g=qs();d.useEffect(()=>m(g),[m,g]);let _=0,v=0,y=0,b=0,x=0,C=0,w=!1;if(f!=null&&p!=null){let e=c(f);if(e!=null){w=!0;let{width:t,height:n}=ql(e),{width:r,height:i}=ql(p),a=e.getBoundingClientRect(),o=p.getBoundingClientRect(),s=r>0?o.width/r:1,c=i>0?o.height/i:1;if(Math.abs(s)>2**-52&&Math.abs(c)>2**-52){let e=a.left-o.left,t=a.top-o.top;_=e/s+p.scrollLeft-p.clientLeft,y=t/c+p.scrollTop-p.clientTop}else _=e.offsetLeft,y=e.offsetTop;x=t,C=n,v=p.scrollWidth-_-x,b=p.scrollHeight-y-C}}let T=w?{left:_,right:v,top:y,bottom:b}:null,E=w?{width:x,height:C}:null,D=w?{[Hf.activeTabLeft]:`${_}px`,[Hf.activeTabRight]:`${v}px`,[Hf.activeTabTop]:`${y}px`,[Hf.activeTabBottom]:`${b}px`,[Hf.activeTabWidth]:`${x}px`,[Hf.activeTabHeight]:`${C}px`}:void 0,O=Qo(`span`,e,{state:{orientation:l,activeTabPosition:T,activeTabSize:E,tabActivationDirection:u},ref:t,props:[{role:`presentation`,style:D,hidden:!(w&&x>0&&C>0)},o,{suppressHydrationWarning:!0}],stateAttributesMapping:Uf});return f==null?null:(0,S.jsxs)(d.Fragment,{children:[O,h&&i&&(0,S.jsx)(`script`,{nonce:s,dangerouslySetInnerHTML:{__html:Vf},suppressHydrationWarning:!0})]})});(function(e){return e.index=`data-index`,e.activationDirection=`data-activation-direction`,e.orientation=`data-orientation`,e.hidden=`data-hidden`,e[e.startingStyle=Qs.startingStyle]=`startingStyle`,e[e.endingStyle=Qs.endingStyle]=`endingStyle`,e})({}),{...jf,...tc};var Gf=d.forwardRef(function(e,t){let{activateOnFocus:n=!1,className:r,loopFocus:i=!0,render:a,style:o,...s}=e,{onValueChange:c,orientation:l,value:u,setTabMap:f,tabActivationDirection:p}=kf(),[m,h]=d.useState(0),[g,_]=d.useState(null),v=d.useRef(new Set),y=d.useRef(new Set),b=d.useRef(null);J(()=>{if(typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>{v.current.forEach(e=>{e()})});return b.current=e,g&&e.observe(g),y.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),b.current=null}},[g]);let x=Z(e=>(v.current.add(e),()=>{v.current.delete(e)})),C=Z(e=>(y.current.add(e),b.current?.observe(e),()=>{y.current.delete(e),b.current?.unobserve(e)})),w=Z((e,t)=>{e!==u&&c(e,t)}),T={orientation:l,tabActivationDirection:p},E={"aria-orientation":l===`vertical`?`vertical`:void 0,role:`tablist`},D=d.useMemo(()=>({activateOnFocus:n,highlightedTabIndex:m,registerIndicatorUpdateListener:x,registerTabResizeObserverElement:C,onTabActivation:w,setHighlightedTabIndex:h,tabsListElement:g}),[n,m,x,C,w,h,g]);return(0,S.jsx)(Pf.Provider,{value:D,children:(0,S.jsx)(Qd,{render:a,className:r,style:o,state:T,refs:[t,_],props:[E,s],stateAttributesMapping:jf,highlightedIndex:m,enableHomeAndEndKeys:!0,loopFocus:i,orientation:l,onHighlightedIndexChange:h,onMapChange:f,disabledIndices:aa})})});({...wc}),$(e=>e.disabled),$(e=>e.instantType),$(e=>e.openMethod),$(e=>e.openChangeReason),$(e=>e.modal),$(e=>e.focusManagerModal),$(e=>e.stickIfOpen),$(e=>e.titleElementId),$(e=>e.descriptionElementId),$(e=>e.openOnHover),$(e=>e.closeDelay),$(e=>e.hasViewport),{...pl,...tc},{...pl,...tc},{...tc,...nu},{...wf},{...tc},{...tc},{...pl,...tc};var Kf=`data-drawer-content`;(function(e){return e[e.open=il.open]=`open`,e[e.closed=il.closed]=`closed`,e[e.startingStyle=il.startingStyle]=`startingStyle`,e[e.endingStyle=il.endingStyle]=`endingStyle`,e.expanded=`data-expanded`,e.nestedDrawerOpen=`data-nested-drawer-open`,e.nestedDrawerSwiping=`data-nested-drawer-swiping`,e.swipeDismiss=`data-swipe-dismiss`,e.swipeDirection=`data-swipe-direction`,e.swiping=`data-swiping`,e})({}),{...pl,...tc};var qf=(function(e){return e[e.open=il.open]=`open`,e[e.closed=il.closed]=`closed`,e.disabled=`data-disabled`,e.swipeDirection=`data-swipe-direction`,e.swiping=`data-swiping`,e})({});qf.open,qf.closed,qf.swiping,qf.disabled,`${Kf}`,{...pl,...tc},gc(),gc(),{...pl,...tc},{...pl,...tc},{...nu};var Jf=[`零`,`〇`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`],Yf=[`٠`,`١`,`٢`,`٣`,`٤`,`٥`,`٦`,`٧`,`٨`,`٩`],Xf=[`۰`,`۱`,`۲`,`۳`,`۴`,`۵`,`۶`,`۷`,`۸`,`۹`],Zf=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],Qf=[`%`,`٪`,`%`,`﹪`],$f=[`‰`,`؉`],ep=[`−`,`-`,`‒`,`–`,`—`,`﹣`],tp=[`+`,`﹢`];RegExp(`[${Yf.join(``)}]`,`g`),RegExp(`[${Xf.join(``)}]`,`g`),RegExp(`[${Zf.join(``)}]`,`g`),RegExp(`[${Jf.join(``)}]`,`g`);var np=RegExp(`[${Qf.join(``)}]`),rp=RegExp(`[${$f.join(``)}]`);new RegExp(np.source,`g`),new RegExp(rp.source,`g`),RegExp(`[${Yf.join(``)}]`),RegExp(`[${Xf.join(``)}]`),RegExp(`[${Jf.join(``)}]`),RegExp(`[${Zf.join(``)}]`),[...tp],[...ep];var ip=e=>e.replace(/[-\\\]^]/g,e=>`\\${e}`),ap=e=>`[${e.map(ip).join(``)}]`,op=ap([`-`].concat(ep)),sp=ap([`+`].concat(tp));new RegExp(op,`gu`),new RegExp(sp,`gu`),new RegExp(op),new RegExp(sp),{...nu},{...nu};var cp=d.createContext(void 0);function lp(e){let t=d.useContext(cp);if(t===void 0&&!e)throw Error(li(50));return t}var up=600,dp=300,fp={...wc,instantType:$(e=>e.instantType),hasViewport:$(e=>e.hasViewport)},pp=class e extends Ks{constructor(e,t,n=!1){let r=new hc,i={...mp(),...e};i.floatingRootContext=vc(r,t,n),super(i,{popupRef:d.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:r,closeDelayRef:{current:dp},inlineRectCoordsRef:{current:void 0}},fp)}setOpen=(e,t)=>{let{inlineRectCoordsRef:n}=this.context;lc(this,e,t,{onBeforeDispatch(){let r=t.event;e&&t.reason===la&&t.trigger&&`clientX`in r&&`clientY`in r&&n.current?.element!==t.trigger&&Rs(n,t.trigger,r.clientX,r.clientY)}})};static useStore(t,n){return ac(t,(t,r)=>new e(n,t,r)).store}};function mp(){return{..._c(),instantType:void 0,hasViewport:!1}}function hp(e){let{open:t,defaultOpen:n=!1,onOpenChange:r,onOpenChangeComplete:i,actionsRef:a,handle:o,triggerId:s,defaultTriggerId:c=null,children:l}=e,u=pp.useStore(o?.store,{open:n,openProp:t,activeTriggerId:c,triggerIdProp:s});uc(u,t,n,c),u.useControlledProp(`openProp`,t),u.useControlledProp(`triggerIdProp`,s),u.useContextCallback(`onOpenChange`,r),u.useContextCallback(`onOpenChangeComplete`,i);let f=u.useState(`open`),p=u.useState(`activeTriggerId`),m=u.useState(`mounted`),h=u.useState(`payload`);fc(u,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:g}=pc(f,u,()=>{u.context.inlineRectCoordsRef.current=void 0});J(()=>{f&&p==null&&u.set(`payload`,void 0)},[u,p,f]);let _=d.useCallback(()=>{u.setOpen(!1,X(xa))},[u]);d.useImperativeHandle(a,()=>({unmount:g,close:_}),[g,_]);let v=f||m;return(0,S.jsxs)(cp.Provider,{value:u,children:[v&&(0,S.jsx)(gp,{store:u}),typeof l==`function`?l({payload:h}):l]})}function gp({store:e}){let t=js(e.useState(`floatingRootContext`));return mc(e,{activeTriggerProps:t.reference??oa,inactiveTriggerProps:t.trigger??oa,popupProps:d.useMemo(()=>Ro(ic,t.floating),[t.floating])}),null}ai(function(e){return lp(!0)?(0,S.jsx)(hp,{...e}):(0,S.jsx)(Cs,{children:(0,S.jsx)(hp,{...e})})}),oi(function(e,t){let{render:n,className:r,delay:i,closeDelay:a,id:o,payload:s,handle:c,style:l,...u}=e,f=lp(!0),p=c?.store??f;if(!p)throw Error(li(89));let m=ml(o),h=p.useState(`isTriggerActive`,m),g=p.useState(`isOpenedByTrigger`,m),_=p.useState(`floatingRootContext`),v=p.context.inlineRectCoordsRef,y=d.useRef(null),b=i??up,x=a??dp,{registerTrigger:S,isMountedByThisTrigger:C}=dc(m,y,p,{payload:s});J(()=>{C&&(p.context.closeDelayRef.current=x)},[p,C,x]);let w=Ic(_,{mouseOnly:!0,move:!1,handleClose:Qc(),delay:()=>({open:b,close:x}),triggerElementRef:y,isActiveTrigger:h,isClosing:()=>p.select(`transitionStatus`)===`ending`}),T=Oc(_,{delay:b}),E={open:g},D=p.useState(`triggerProps`,C),O=Ls(v,g);return Qo(`a`,e,{state:E,ref:[t,S,y],props:[w,T.reference,D,O,{id:m},u],stateAttributesMapping:dl})}),{...pl,...tc},{...pl,...tc},{...nu},[...Vd];function _p({content:e,children:t,align:n,asChild:r,render:i,side:a,className:o,container:s,closeDelay:c,delay:l,...u}){let d=O(),f=s??d??void 0,p=i??(r?t:void 0);return(0,S.jsxs)(nl,{...u,children:[(0,S.jsx)(Sl,{closeDelay:c,delay:l,className:kt(p===void 0&&`inline-flex items-center bg-transparent border-none shadow-none p-0 m-0 h-auto min-h-0 leading-[0]`,`cursor-default`,o),render:p,children:r?void 0:t}),(0,S.jsx)(El,{container:f,children:(0,S.jsx)(Ul,{align:n,side:a,sideOffset:10,className:`max-w-[var(--available-width)]`,children:(0,S.jsxs)(Gl,{className:kt(`flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-2.5 py-1.5 text-sm text-kumo-default`,`shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill`,`transition-[transform,scale,opacity] duration-150`,`data-[starting-style]:scale-90 data-[starting-style]:opacity-0`,`data-[ending-style]:scale-90 data-[ending-style]:opacity-0`,`data-[instant]:duration-0`,`kumo-tooltip-popup`),children:[(0,S.jsx)(Kl,{className:kt(`flex`,`data-[side=bottom]:top-[-8px]`,`data-[side=left]:right-[-13px] data-[side=left]:rotate-90`,`data-[side=right]:left-[-13px] data-[side=right]:-rotate-90`,`data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180`),children:(0,S.jsx)(vp,{})}),e]})})})]})}function vp(e){return(0,S.jsxs)(`svg`,{width:`20`,height:`10`,viewBox:`0 0 20 10`,fill:`none`,...e,children:[(0,S.jsx)(`path`,{d:`M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z`,className:`fill-kumo-base`}),(0,S.jsx)(`path`,{d:`M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z`,className:`fill-kumo-tip-shadow`}),(0,S.jsx)(`path`,{d:`M10.3333 3.34539L5.47654 7.71648C4.55842 8.54279 3.36693 9 2.13172 9H0V8H2.13172C3.11989 8 4.07308 7.63423 4.80758 6.97318L9.66437 2.60207C10.0447 2.25979 10.622 2.2598 11.0023 2.60207L15.8591 6.97318C16.5936 7.63423 17.5468 8 18.5349 8H20V9H18.5349C17.2998 9 16.1083 8.54278 15.1901 7.71648L10.3333 3.34539Z`,className:`fill-kumo-tip-stroke`})]})}var yp=(0,d.forwardRef)(function({to:e,href:t,...n},r){return(0,S.jsx)(`a`,{ref:r,href:t??e??void 0,...n})}),bp=(0,d.createContext)(yp);function xp(){return(0,d.useContext)(bp)}var Sp={shape:{base:{classes:``,description:`Default rectangular button shape`},square:{classes:`items-center justify-center p-0`,description:`Square button for icon-only actions`},circle:{classes:`items-center justify-center p-0 rounded-full`,description:`Circular button for icon-only actions`}},size:{xs:{classes:`h-5 gap-1 rounded-sm px-1.5 text-xs`,description:`Extra small button for compact UIs`},sm:{classes:`h-6.5 gap-1 rounded-md px-2 text-xs`,description:`Small button for secondary actions`},base:{classes:`h-9 gap-1.5 rounded-lg px-3 text-base`,description:`Default button size`},lg:{classes:`h-10 gap-2 rounded-lg px-4 text-base`,description:`Large button for primary CTAs`}},compactSize:{xs:{classes:`size-3.5`},sm:{classes:`size-6.5`},base:{classes:`size-9`},lg:{classes:`size-10`}},variant:{primary:{classes:`relative overflow-hidden bg-(--kumo-button-emphasis-bg) !text-white ring ring-(--kumo-button-emphasis-ring) focus:ring-(--kumo-button-emphasis-ring) focus-visible:ring-(--kumo-button-emphasis-ring) active:ring-(--kumo-button-emphasis-ring) disabled:opacity-50`,description:`High-emphasis button for primary actions`},secondary:{classes:`bg-kumo-base !text-kumo-default ring not-disabled:hover:bg-kumo-tint disabled:bg-kumo-base/50 disabled:!text-kumo-default/70 ring-kumo-line data-[state=open]:bg-kumo-base`,description:`Default button style for most actions`},ghost:{classes:`text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit`,description:`Minimal button with no background`},destructive:{classes:`relative overflow-hidden bg-(--kumo-button-emphasis-bg) !text-white ring ring-(--kumo-button-emphasis-ring) focus:ring-(--kumo-button-emphasis-ring) focus-visible:ring-(--kumo-button-emphasis-ring) active:ring-(--kumo-button-emphasis-ring) disabled:opacity-50`,description:`Danger button for destructive actions like delete`},"secondary-destructive":{classes:`bg-kumo-base !text-kumo-danger ring not-disabled:hover:!text-kumo-danger not-disabled:hover:ring-kumo-danger/30 disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-base`,description:`Secondary button with destructive text for less prominent dangerous actions`},outline:{classes:`bg-transparent text-kumo-default ring ring-kumo-line transition-colors not-disabled:hover:text-kumo-strong not-disabled:hover:ring-kumo-focus/25`,description:`Bordered button with transparent background`}}},Cp={shape:`base`,size:`base`,variant:`secondary`};function wp({variant:e=Cp.variant,size:t=Cp.size,shape:n=Cp.shape}={}){let r=n===`square`||n===`circle`;return kt(`group flex w-max shrink-0 items-center font-medium select-none`,`border-0 shadow-xs`,`focus:outline-none focus:ring-kumo-focus/50 focus-visible:ring-2 focus-visible:ring-kumo-brand`,`cursor-pointer`,`disabled:cursor-not-allowed disabled:text-kumo-subtle`,x(Sp.size,t,Cp.size).classes,x(Sp.shape,n,Cp.shape).classes,r&&x(Sp.compactSize,t,Cp.size).classes,x(Sp.variant,e,Cp.variant).classes)}var Tp=e=>e?d.isValidElement(e)?e:(0,S.jsx)(e,{}):null,Ep=e=>{if(e===`primary`)return`var(--color-kumo-brand)`;if(e===`destructive`)return`var(--color-kumo-danger)`},Dp=e=>{let t=Ep(e);if(t)return{"--kumo-button-emphasis-ring":`color-mix(in oklch, ${t}, black 10%)`,"--kumo-button-emphasis-bg":`color-mix(in oklch, ${t}, white 30%)`,"--kumo-button-emphasis-gradient-start":`color-mix(in oklch, ${t}, white 15%)`,"--kumo-button-emphasis-gradient-end":t}},Op=(e,t,n)=>{let r=n==null?null:(0,S.jsx)(`span`,{className:`contents`,children:n});return Ep(e)?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{"aria-hidden":`true`,className:`absolute inset-0 rounded-[inherit] bg-linear-to-b from-(--kumo-button-emphasis-gradient-start) to-(--kumo-button-emphasis-gradient-end) shadow-[inset_0_1px_0_0_var(--kumo-button-emphasis-bg)] group-hover:from-(--kumo-button-emphasis-bg)`}),(0,S.jsxs)(`span`,{className:`relative flex items-center gap-1.5`,children:[t,r]})]}):(0,S.jsxs)(S.Fragment,{children:[t,r]})},kp=d.forwardRef(({children:e,className:t,disabled:n,loading:r,shape:i=`base`,size:a=`base`,variant:o=`secondary`,icon:s,style:c,title:l,...u},d)=>{let{type:f,...p}=u,m=Dp(o),h=r?(0,S.jsx)(E,{size:a===`lg`?16:14}):Tp(s),g=(0,S.jsx)(`button`,{ref:d,"data-kumo-component":`Button`,className:kt(wp({variant:o,size:a,shape:i}),n&&`cursor-not-allowed opacity-50`,t),disabled:r||n,style:m?{...m,...c}:c,type:f??`button`,...p,children:Op(o,h,e)});return l?(0,S.jsx)(_p,{content:l,render:g}):g});kp.displayName=`Button`;var Ap=d.forwardRef(({children:e,className:t,external:n,href:r,shape:i=`base`,size:a=`base`,variant:o=`ghost`,icon:s,style:c,...l},u)=>{let d=xp(),f=Dp(o),p=n?{target:`_blank`,rel:`noopener noreferrer`}:{};return(0,S.jsx)(d,{ref:u,"data-kumo-component":`LinkButton`,className:kt(wp({variant:o,size:a,shape:i}),`flex items-center no-underline!`,t),href:r,style:f?{...f,...c}:c,to:typeof r==`string`?r:void 0,...p,...l,children:Op(o,Tp(s),e)})});Ap.displayName=`LinkButton`;var jp=u(),Mp=`/proxy`,Np=1024*1024,Pp=class extends Error{status;detail;constructor(e,t,n){super(e),this.status=t,this.detail=n}},Fp=class{#e=``;setTarget(e){this.#e=e.trim().replace(/\/+$/,``)}async config(){let e=await fetch(`/config`);if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}async health(){return this.#i(`/health-check`)}async schema(){return this.#i(`/openapi.json`)}async submit(e){let t=this.#n({"Content-Type":`application/json`});e.async&&t.set(`Prefer`,`respond-async`);let n=await fetch(this.#t(e.endpoint,e.id),{method:e.id?`PUT`:`POST`,headers:t,body:JSON.stringify(this.#r(e.input,e.webhook,e.webhookEvents)),signal:e.signal});return e.onResponse?.(n),Vp(n)}async*stream(e){let t=await fetch(this.#t(e.endpoint,e.id),{method:e.id?`PUT`:`POST`,headers:this.#n({"Content-Type":`application/json`,Accept:`text/event-stream`}),body:JSON.stringify(this.#r(e.input)),signal:e.signal});if(e.onResponse?.(t),!t.ok)throw await Hp(t);if(!t.body)throw Error(`Streaming response has no body`);let n=t.body.getReader(),r=new TextDecoder,i=``,a=!1;try{for(;;){let e=await n.read();a=e.done,i+=r.decode(e.value,{stream:!a}),i=Ip(i,a);let t=i.indexOf(` + +`);for(;t>=0;){if(t>Np)throw Error(`SSE event is too large`);let e=i.slice(0,t);i=i.slice(t+2);let n=Lp(e);n&&(yield n),t=i.indexOf(` + +`)}if(i.length>Np)throw Error(`SSE event is too large`);if(a)break}if(i.trim()){let e=Lp(i);e&&(yield e)}}finally{a||await n.cancel(),n.releaseLock()}}async cancel(e,t,n){let r=await fetch(`${Mp}${e}/${encodeURIComponent(t)}/cancel`,{method:`POST`,headers:this.#n(),signal:n});if(!r.ok)throw await Hp(r)}#t(e,t){return t?`${Mp}${e}/${encodeURIComponent(t)}`:Mp+e}#n(e){let t=new Headers(e);return t.set(`X-Cog-Target`,this.#e),t}#r(e,t,n){return t?{input:e,webhook:t,webhook_events_filter:n}:{input:e}}async#i(e){let t=await fetch(Mp+e,{headers:this.#n()});if(!t.ok)throw await Hp(t);return t.json()}};function Ip(e,t){let n=!t&&e.endsWith(`\r`);return(n?e.slice(0,-1):e).replaceAll(`\r +`,` +`).replaceAll(`\r`,` +`)+(n?`\r`:``)}function Lp(e){let t=``,n=[];for(let r of e.split(` +`))r.startsWith(`event:`)&&(t=r.slice(6).trim()),r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``));if(!t)return;let r=n.join(` +`),i={value:r};try{let e=JSON.parse(r);i=Rp(e)?e:{value:zp(e)?e:r}}catch{}return{type:t,data:i,raw:e}}function Rp(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zp(e){return e===null||[`boolean`,`number`,`string`].includes(typeof e)?!0:Array.isArray(e)?e.every(zp):Rp(e)&&Object.values(e).every(zp)}function Bp(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error??Error(`Could not read file`)),r.readAsDataURL(e)})}async function Vp(e){if(!e.ok)throw await Hp(e);return e.json()}async function Hp(e){let t=await e.text(),n={};try{let e=JSON.parse(t);n=Rp(e)?e:{}}catch{}let r=Array.isArray(n.detail)?n.detail:void 0;return new Pp(typeof n.error==`string`&&n.error||typeof n.detail==`string`&&n.detail||t||`HTTP ${e.status}`,e.status,r)}var Up={variant:`segmented`,size:`base`};function Wp({tabs:e,value:t,selectedValue:n,onValueChange:r,activateOnFocus:i,className:a,listClassName:o,indicatorClassName:s,variant:c=Up.variant,size:l=Up.size}){let u=e??[];if(u.length===0)return null;let d=u[0]?.value,f=t!==void 0,p={value:f?t:void 0,defaultValue:f?void 0:n??d},m=c===`segmented`,h=c===`underline`,g=l===`sm`,{ref:_,isOverflowing:v}=Kp(m),y=Gp(_,v);return(0,S.jsxs)(Mf,{...p,className:kt(`relative isolate min-w-0 font-medium`,m&&(g?`rounded-md`:`rounded-lg`)+` ring ring-kumo-hairline/70`,a),onValueChange:e=>{r?.(String(e))},children:[m&&(0,S.jsx)(`div`,{className:kt(`absolute inset-x-0 top-1/2 z-0 -translate-y-1/2 rounded-lg bg-kumo-recessed`,g?`h-6.5`:`h-9`)}),(0,S.jsxs)(Gf,{ref:_,activateOnFocus:i,"data-overflowing":v?``:void 0,...y(),className:kt(`relative flex min-w-0 shrink items-stretch`,m&&`kumo-tabs-list overflow-x-auto rounded-lg bg-kumo-recessed px-0.5 [--scroll-fade-width:3rem] scroll-px-(--scroll-fade-width)`,m&&(g?`h-6.5 rounded-md`:`h-9`),v&&`cursor-grab active:cursor-grabbing`,h&&`gap-4 border-b border-kumo-hairline pb-2`,h&&(g?`h-6.5`:`h-7.5`),o),children:[u.map(e=>(0,S.jsx)(If,{"data-kumo-component":`Tabs`,"data-kumo-part":`tab`,value:e.value,render:e.render,onClick:e=>{e.currentTarget.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})},className:kt(`relative z-2 flex items-center rounded bg-transparent whitespace-nowrap focus:outline-none focus:ring-kumo-focus/50 focus-visible:ring-2 focus-visible:ring-kumo-brand`,v?`cursor-grab active:cursor-grabbing`:`cursor-pointer`,g?`text-xs`:`text-base`,m&&`my-0.5 text-kumo-subtle hover:text-kumo-default aria-selected:text-kumo-default focus-visible:ring-inset`,m&&(g?`px-2 rounded-sm`:`px-2.5 rounded-md`),h&&`text-kumo-subtle hover:bg-kumo-tint hover:text-kumo-default aria-selected:hover:bg-kumo-tint aria-selected:font-medium aria-selected:text-kumo-default`,h&&(g?`px-1.5 py-2.5`:`px-2 py-3`),e.className),children:e.label},e.value)),(0,S.jsx)(Wf,{render:e=>(0,S.jsx)(`div`,{...e,className:kt(`absolute z-1 left-0`,`w-(--active-tab-width) translate-x-(--active-tab-left) transition-all duration-200`,`data-[rendered=false]:scale-90 data-[rendered=false]:opacity-0`,m&&kt(`top-(--active-tab-top) h-(--active-tab-height) bg-kumo-base shadow-sm ring ring-kumo-line`,g?`rounded`:`rounded-md`),h&&`bottom-0 h-0.5 bg-kumo-brand`,s)})})]})]})}function Gp(e,t){let n=(0,d.useRef)(null),r=(0,d.useRef)(!1);return()=>({onPointerDownCapture:i=>{let a=e.current;!a||!t||i.pointerType!==`mouse`||i.button!==0||(n.current={pointerId:i.pointerId,startX:i.clientX,scrollLeft:a.scrollLeft,dragging:!1},r.current=!1)},onPointerMoveCapture:i=>{let a=e.current,o=n.current;if(!a||!t||!o||o.pointerId!==i.pointerId)return;let s=i.clientX-o.startX;if(!o.dragging){if(Math.abs(s)<=3)return;o.dragging=!0,r.current=!0,a.setPointerCapture(i.pointerId)}i.preventDefault(),a.scrollLeft=o.scrollLeft-s},onPointerUpCapture:t=>{let i=e.current,a=n.current;!i||!a||a.pointerId!==t.pointerId||(n.current=null,i.hasPointerCapture(t.pointerId)&&i.releasePointerCapture(t.pointerId),r.current&&window.setTimeout(()=>{r.current=!1},0))},onPointerCancelCapture:t=>{let r=e.current,i=n.current;!r||!i||i.pointerId!==t.pointerId||(n.current=null,r.hasPointerCapture(t.pointerId)&&r.releasePointerCapture(t.pointerId))},onClickCapture:e=>{r.current&&=(e.preventDefault(),e.stopPropagation(),!1)}})}function Kp(e){let t=(0,d.useRef)(null),[n,r]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{if(!e)return;let n=t.current;if(!n)return;let i=()=>r(n.scrollWidth>n.clientWidth),a=new ResizeObserver(i);return a.observe(n),i(),()=>a.disconnect()},[e]),{ref:t,isOverflowing:n}}function qp({label:e,items:t,value:n,onChange:r}){return(0,S.jsx)(`div`,{"aria-label":e,className:`playground-segmented`,children:(0,S.jsx)(Wp,{tabs:t,value:n,onValueChange:r,variant:`segmented`,size:`sm`})})}var Jp=`inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap`,Yp={variant:{primary:{classes:`bg-kumo-badge-inverted text-kumo-badge-inverted`,description:`Primary badge`},secondary:{classes:`bg-kumo-fill text-kumo-badge-neutral-subtle`,description:`Secondary badge`},error:{classes:`bg-kumo-danger-tint/60 text-kumo-danger`,description:`Error badge`},warning:{classes:`bg-kumo-warning-tint/70 text-kumo-warning`,description:`Warning badge`},success:{classes:`bg-kumo-success-tint/70 text-kumo-success`,description:`Success badge`},destructive:{classes:`bg-kumo-badge-red text-white`,description:`Deprecated. Use red instead.`},info:{classes:`bg-kumo-info-tint/70 text-kumo-info`,description:`Info badge`},beta:{classes:`border border-dashed border-kumo-brand bg-transparent text-kumo-link`,description:`Indicates beta or experimental features`},outline:{classes:`border border-kumo-fill bg-transparent text-kumo-default`,description:`Bordered badge with transparent background`},red:{classes:`bg-kumo-badge-red text-white`,description:`Red badge`},green:{classes:`bg-kumo-badge-green text-white`,description:`Green badge`},neutral:{classes:`bg-kumo-badge-neutral text-white`,description:`Neutral badge`},orange:{classes:`bg-kumo-badge-orange text-black`,description:`Orange badge`},purple:{classes:`bg-kumo-badge-purple text-white`,description:`Purple badge`},teal:{classes:`bg-kumo-badge-teal text-white`,description:`Teal badge`},"teal-subtle":{classes:`bg-kumo-badge-teal-subtle text-kumo-badge-teal-subtle`,description:`Subtle teal badge`},blue:{classes:`bg-kumo-badge-blue text-white`,description:`Blue badge`}},appearance:{filled:{classes:``,description:`Filled badge with background color (default)`},dot:{classes:`gap-1.5 bg-transparent text-kumo-default ring ring-kumo-hairline`,description:`Outlined badge with a colored circle dot indicating status`}},dotColor:{none:{classes:``,description:`No dot indicator (used when appearance is not dot, or variant has no dot color)`},success:{classes:`bg-kumo-success`,description:`Green dot for success status`},warning:{classes:`bg-kumo-badge-orange`,description:`Orange dot for warning status`},error:{classes:`bg-kumo-badge-red`,description:`Red dot for error status`},neutral:{classes:`bg-kumo-badge-neutral`,description:`Neutral dot for informational status`}}},Xp={variant:`primary`,appearance:`filled`,dotColor:`none`};function Zp({variant:e=Xp.variant,appearance:t=Xp.appearance}={}){let n=x(Yp.variant,e,Xp.variant).classes,r=x(Yp.appearance,t,Xp.appearance).classes;return kt(Jp,t===`dot`?``:n,r)}function Qp({variant:e=Xp.variant,appearance:t=Xp.appearance,className:n,children:r}){let i=t===`dot`?x(Yp.dotColor,e,Xp.dotColor).classes:``;return(0,S.jsxs)(`span`,{className:kt(Zp({variant:e,appearance:t}),n),children:[i?(0,S.jsx)(`span`,{"aria-hidden":`true`,className:kt(`size-1.75 rounded-full shrink-0`,i)}):null,r]})}function $p({status:e}){let t=e?.toLowerCase()||`unknown`;return(0,S.jsx)(Qp,{variant:{ready:`success`,succeeded:`success`,busy:`warning`,starting:`warning`,processing:`warning`,failed:`error`,error:`error`,unreachable:`error`,canceled:`secondary`,unknown:`secondary`}[t]??`secondary`,appearance:`dot`,children:t})}var em=`#/components/schemas/`;function tm(e,t){return t.$ref?.startsWith(em)?e.components?.schemas?.[t.$ref.slice(21)]??t:t}function nm(e,t){let n=tm(e,t);if(!n.anyOf)return n;let r=n.anyOf.map(t=>tm(e,t)).filter(e=>e.type!==`null`);if(r.length!==1)return n;let i={...n,...r[0]};return delete i.anyOf,i}function rm(e,t){let n=nm(e,t);if(n.enum)return n.enum;for(let t of n.allOf??[]){let n=tm(e,t);if(n.enum)return n.enum}}function im(e,t){let n={},r=new Set(t.required??[]);for(let[i,a]of am(t)){let t=nm(e,a);if(t.default!==void 0&&t.default!==null){n[i]=t.default;continue}if(!r.has(i))continue;let o=rm(e,t);o?.length?n[i]=o[0]:t.type===`boolean`&&(n[i]=!1)}return n}function am(e){return Object.entries(e.properties??{}).sort(([,e],[,t])=>(typeof e[`x-order`]==`number`?e[`x-order`]:999)-(typeof t[`x-order`]==`number`?t[`x-order`]:999))}function om(e){let t=[];return e.minimum!==void 0&&t.push(`min ${e.minimum}`),e.maximum!==void 0&&t.push(`max ${e.maximum}`),e.minLength!==void 0&&t.push(`min ${e.minLength} chars`),e.maxLength!==void 0&&t.push(`max ${e.maxLength} chars`),e.pattern&&t.push(`pattern: ${e.pattern}`),t.join(` · `)}function sm(e){let t=e.components?.schemas??{},n=!!e.paths?.[`/trainings`],r=n?`/trainings`:`/predictions`;return{endpoint:r,input:tm(e,t[n?`TrainingInput`:`Input`]??{}),output:tm(e,t[n?`TrainingOutput`:`Output`]??{}),streaming:e.paths?.[r]?.post?.[`x-cog-streaming`]===!0,async:!!e.paths?.[`${r}/{${n?`training`:`prediction`}_id}/cancel`]}}var cm=(0,d.lazy)(async()=>({default:(await i(async()=>{let{JsonEditor:e}=await import(`./JsonEditor-C5A1n0-f.js`);return{JsonEditor:e}},__vite__mapDeps([0,1,2]))).JsonEditor}));function lm(e){return(0,S.jsx)(d.Suspense,{fallback:(0,S.jsx)(E,{"aria-label":`Loading JSON editor`,className:`editor-loader`,size:`sm`}),children:(0,S.jsx)(cm,{...e})})}function um(e={}){return kt(`m-0 text-base font-medium text-kumo-default`)}function dm(){return kt(`inline-flex items-center gap-1`)}function fm({children:e,showOptional:t=!1,tooltip:n,className:r,htmlFor:i,asContent:a=!1}){let o=(0,S.jsxs)(S.Fragment,{children:[e,t&&(0,S.jsx)(`span`,{className:`font-normal text-kumo-subtle`,children:`(optional)`}),n&&(0,S.jsx)(_p,{content:n,render:(0,S.jsx)(kp,{variant:`ghost`,size:`xs`,shape:`square`,"aria-label":`More information`,children:(0,S.jsx)(y,{className:`size-4`})})})]});return a?(0,S.jsx)(`span`,{className:kt(dm(),r),children:o}):(0,S.jsx)(`label`,{htmlFor:i,className:kt(um(),dm(),r),children:o})}fm.displayName=`Label`;function pm(e){if(e)return typeof e==`string`?{message:e,match:!0}:e}function mm({controlFirst:e=!1}={}){return kt(`grid gap-2`,`has-[input[type=checkbox]]:grid-cols-[auto_1fr] has-[input[type=checkbox]]:items-center`,`has-[[role=switch]]:grid-cols-[auto_1fr] has-[[role=switch]]:items-center`,e&&[`has-[input[type=checkbox]]:flex has-[input[type=checkbox]]:flex-row-reverse has-[input[type=checkbox]]:flex-wrap has-[input[type=checkbox]]:items-center`,`has-[[role=switch]]:flex has-[[role=switch]]:flex-row-reverse has-[[role=switch]]:flex-wrap has-[[role=switch]]:items-center`,`[&>label]:flex-1`])}function hm({children:e,label:t,required:n,labelTooltip:r,error:i,description:a,controlFirst:o=!1,hideLabel:s=!1}){let c=n===!1;return(0,S.jsxs)(Eu,{className:mm({controlFirst:o}),children:[!s&&(0,S.jsx)(ku,{className:`m-0 select-none text-base font-medium text-kumo-default`,children:(0,S.jsx)(fm,{showOptional:c,tooltip:r,asContent:!0,children:t})}),e,i?(0,S.jsx)(ju,{className:kt(`text-sm leading-snug text-kumo-danger`,`col-span-full`),match:i.match,children:i.message}):a&&(0,S.jsx)(Mu,{className:kt(`text-sm leading-snug text-kumo-subtle`,`col-span-full`),children:a})]})}var gm={size:{xs:{classes:`h-5 gap-1 rounded-sm px-1.5 text-xs`,description:`Extra small input for compact UIs`},sm:{classes:`h-6.5 gap-1 rounded-md px-2 text-xs`,description:`Small input for secondary fields`},base:{classes:`h-9 gap-1.5 rounded-lg px-3 text-base`,description:`Default input size`},lg:{classes:`h-10 gap-2 rounded-lg px-4 text-base`,description:`Large input for prominent fields`}},variant:{default:{classes:`focus:ring-kumo-focus/50 focus:ring-[1.5px]`,description:`Default input appearance`},error:{classes:`!ring-kumo-danger focus:ring-kumo-danger/50 focus:ring-[1.5px]`,description:`Error state for validation failures`}}},_m={size:`base`,variant:`default`};function vm({variant:e=_m.variant,size:t=_m.size,parentFocusIndicator:n=!1,focusIndicator:r=!1}={}){return kt(`border-0 bg-kumo-control text-kumo-default ring ring-kumo-line outline-none focus:outline-none`,`kumo-input-placeholder disabled:text-kumo-disabled`,x(gm.size,t,_m.size).classes,x(gm.variant,e,_m.variant).classes,n&&(e===`error`?`focus-within:ring-kumo-danger/50 focus-within:ring-[1.5px]`:`focus-within:ring-kumo-focus/50 focus-within:ring-[1.5px]`),r&&(e===`error`?`focus:ring-kumo-danger/50 focus:ring-[1.5px]`:`focus:ring-kumo-focus/50 focus:ring-[1.5px]`))}var ym=(0,d.forwardRef)((e,t)=>{let{className:n,size:r=`base`,variant:i,label:a,labelTooltip:o,description:s,error:c,passwordManagerIgnore:l=!1,...u}=e,d=i??(c?`error`:`default`),{required:f}=u,p=(0,S.jsx)(id,{ref:t,className:kt(vm({size:r,variant:d,focusIndicator:!0}),l&&`keeper-ignore`,n),...l?{"data-1p-ignore":`true`,"data-bwignore":`true`,"data-form-type":`other`,"data-lpignore":`true`}:{},...u});return a||c||s?(0,S.jsx)(hm,{label:a,required:f,labelTooltip:o,description:s,error:pm(c),children:p}):p});ym.displayName=`Input`;var bm=d.forwardRef((e,t)=>{let{className:n,onValueChange:r,size:i=`base`,variant:a,onChange:o,label:s,labelTooltip:c,description:l,error:u,...f}=e,p=a??(u?`error`:`default`),{required:m}=f,h=(0,d.useCallback)(e=>{o?.(e),r?.(e.target.value)},[o,r]),g=kt(vm({size:i,variant:p,focusIndicator:!0}),`h-auto py-2`,n);return s||u||l?(0,S.jsx)(hm,{label:s,required:m,labelTooltip:c,description:l,error:pm(u),children:(0,S.jsx)(Fu,{render:e=>(0,S.jsx)(`textarea`,{...e,ref:t,className:g,onChange:h,...f})})}):(0,S.jsx)(`textarea`,{ref:t,className:g,onChange:h,...f})});bm.displayName=`InputArea`;function xm({draft:e,status:t,disabled:n,onDraftChange:r,onConnect:i}){return(0,S.jsxs)(`div`,{id:`target-bar`,children:[(0,S.jsx)(`div`,{className:`target-input`,children:(0,S.jsx)(ym,{label:`Target`,type:`url`,value:e,disabled:n,onInput:e=>r(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&i()}})}),(0,S.jsx)(kp,{disabled:n||!e.trim(),onClick:i,children:`Connect`}),(0,S.jsx)(`output`,{className:`muted`,children:t})]})}function Sm({setup:e}){return e?(0,S.jsxs)(`details`,{id:`setup-panel`,children:[(0,S.jsxs)(`summary`,{children:[`Setup `,(0,S.jsx)($p,{status:e.status})]}),(0,S.jsx)(`pre`,{id:`setup-logs`,children:e.logs})]}):null}var Cm=`http://localhost:8393`,wm=`cog-playground-target`;function Tm(e){let t=(0,d.useMemo)(()=>new URLSearchParams(location.search).get(`target`)||localStorage.getItem(wm)||Cm,[]),[n,r]=(0,d.useState)(t),[i,a]=(0,d.useState)(t),[o,s]=(0,d.useState)({status:`unknown`}),[c,l]=(0,d.useState)(),[u,f]=(0,d.useState)(``),[p,m]=(0,d.useState)(``),h=(0,d.useMemo)(()=>c?sm(c):void 0,[c]);return(0,d.useEffect)(()=>{e.config().then(e=>m(e.webhookBase??``)).catch(()=>{})},[e]),(0,d.useEffect)(()=>{e.setTarget(i),localStorage.setItem(wm,i),history.replaceState(null,``,`?target=${encodeURIComponent(i)}`);let t=!1,n,r=async()=>{try{let n=await e.schema();if(t)return;l(n),f(``)}catch(e){if(t)return;l(void 0),f(`Waiting for schema... (${Em(e)})`),n=window.setTimeout(r,3e3)}};return r(),()=>{t=!0,n&&clearTimeout(n)}},[e,i]),(0,d.useEffect)(()=>{let t=!1,n=async()=>{try{let n=await e.health();t||s(n)}catch{t||s({status:`unreachable`,user_healthcheck_error:`target unreachable`})}};n();let r=window.setInterval(n,5e3);return()=>{t=!0,clearInterval(r)}},[e,i]),{target:i,targetDraft:n,setTargetDraft:r,connect:()=>{let e=n.trim();e&&a(e)},health:o,schema:c,schemaError:u,webhookBase:p,capabilities:h}}function Em(e){return e instanceof Error?e.message:String(e)}var Dm=(0,d.createContext)({controlFirst:!0}),Om=(0,d.forwardRef)(({className:e,checked:t,indeterminate:n,disabled:r,variant:i=`default`,label:a,labelTooltip:o,controlFirst:s=!0,onCheckedChange:c,required:l,name:u,...d},f)=>{let p=(0,S.jsx)(Zu,{ref:f,"data-kumo-component":`Checkbox`,name:u,checked:t,indeterminate:n,disabled:r,onCheckedChange:c,className:kt(`relative flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border-0 bg-kumo-base ring focus:outline-none after:absolute after:-inset-x-3 after:-inset-y-2`,a&&`mt-0.5`,i===`error`?`ring-kumo-danger`:`ring-kumo-hairline`,!r&&`hover:ring-kumo-hairline focus:ring-kumo-focus focus:ring-2 focus-visible:ring-2 focus-visible:ring-kumo-brand`,`data-[checked]:bg-kumo-contrast data-[checked]:ring-kumo-contrast data-[indeterminate]:bg-kumo-contrast data-[indeterminate]:ring-kumo-contrast`,r&&`cursor-not-allowed opacity-50`,e),...d,children:(0,S.jsx)(nd,{keepMounted:!0,className:`flex items-center justify-center text-kumo-inverse data-[unchecked]:invisible`,render:(e,t)=>(0,S.jsx)(`span`,{...e,children:t.indeterminate?(0,S.jsx)(b,{weight:`bold`,size:12}):(0,S.jsx)(_,{weight:`bold`,size:12})})})});return a?(0,S.jsx)(Eu,{className:`inline-flex`,children:(0,S.jsxs)(ku,{className:kt(`!m-0 !min-h-0 !text-base inline-flex items-start gap-2`,s?`flex-row`:`flex-row-reverse justify-end`,r?`cursor-not-allowed`:`cursor-pointer`),children:[p,(0,S.jsx)(fm,{showOptional:l===!1,tooltip:o,asContent:!0,children:a})]})}):p});Om.displayName=`Checkbox`;var km=(0,d.forwardRef)(({className:e,checked:t,indeterminate:n,disabled:r,variant:i=`default`,label:a,value:o,onCheckedChange:s,name:c},l)=>{let{controlFirst:u}=(0,d.useContext)(Dm);return(0,S.jsxs)(`label`,{"data-kumo-component":`Checkbox`,"data-kumo-part":`item-label`,className:kt(`m-0 relative inline-flex items-start gap-2`,!u&&`flex-row-reverse justify-end`,r?`cursor-not-allowed opacity-50`:`cursor-pointer`,e),children:[(0,S.jsx)(Zu,{ref:l,"data-kumo-component":`Checkbox`,"data-kumo-part":`item`,value:o,name:c,checked:t,indeterminate:n,disabled:r,onCheckedChange:s,className:kt(`peer relative mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border-0 bg-kumo-base ring after:absolute after:-inset-x-3 after:-inset-y-2`,i===`error`?`ring-kumo-danger`:`ring-kumo-hairline`,!r&&`group-hover:ring-kumo-hairline hover:ring-kumo-hairline focus:ring-kumo-focus focus:ring-2 focus-visible:ring-2 focus-visible:ring-kumo-brand`,`data-[checked]:bg-kumo-contrast data-[checked]:ring-kumo-contrast data-[indeterminate]:bg-kumo-contrast data-[indeterminate]:ring-kumo-contrast`),children:(0,S.jsx)(nd,{keepMounted:!0,className:`flex items-center justify-center text-kumo-inverse data-[unchecked]:invisible`,render:(e,t)=>(0,S.jsx)(`span`,{...e,children:t.indeterminate?(0,S.jsx)(b,{weight:`bold`,size:12}):(0,S.jsx)(_,{weight:`bold`,size:12})})})}),(0,S.jsx)(`span`,{className:`text-base text-kumo-default`,children:a})]})});km.displayName=`Checkbox.Item`;function Am({children:e,className:t}){return(0,S.jsx)(Zl,{className:kt(`text-base font-medium text-kumo-default`,t),children:e})}Am.displayName=`Checkbox.Legend`;function jm({legend:e,children:t,error:n,description:r,defaultValue:i,value:a,onValueChange:o,allValues:s,disabled:c,controlFirst:l=!0,className:u}){return(0,S.jsx)(Dm.Provider,{value:{controlFirst:l},children:(0,S.jsx)(td,{defaultValue:i,value:a,onValueChange:o,allValues:s,disabled:c,children:(0,S.jsxs)(Xl,{className:kt(`flex flex-col gap-4`,u),children:[e&&(0,S.jsx)(Zl,{className:`text-base font-medium text-kumo-default`,children:e}),(0,S.jsx)(`div`,{className:`flex flex-col gap-2`,children:t}),n&&(0,S.jsx)(`p`,{className:`text-sm text-kumo-danger`,children:n}),r&&(0,S.jsx)(`p`,{className:`text-sm text-kumo-subtle`,children:r})]})})})}var Mm=Object.assign(Om,{Item:km,Group:jm,Legend:Am});Mm.displayName=`Checkbox`;function Nm({document:e,schema:t,value:n,onChange:r,onBusyChange:i,onValidityChange:a}){let o=(0,d.useMemo)(()=>am(t).map(([t,n])=>[t,nm(e,n)]),[e,t]),s=(0,d.useMemo)(()=>new Set(t.required??[]),[t.required]),[c,l]=(0,d.useState)({}),[u,f]=(0,d.useState)({}),p=o.every(([e,t])=>!(s.has(e)||Object.hasOwn(n,e))||Vm(t,n[e],s.has(e)));if((0,d.useEffect)(()=>{let e=o.every(([e])=>!(s.has(e)||Object.hasOwn(n,e))||c[e]!==!1);a(p&&e)},[a,o,s,p,c,n]),(0,d.useEffect)(()=>i(Object.values(u).some(Boolean)),[u,i]),o.length===0)return(0,S.jsx)(`p`,{className:`muted`,children:`This model takes no inputs.`});let m=(e,t)=>r({...n,[e]:t}),h=(i,a)=>{if(a){let n=nm(e,t.properties?.[i]??{});m(i,n.default??zm(n));return}let o={...n};delete o[i],r(o)};return(0,S.jsx)(`div`,{children:o.map(([t,r])=>{let i=s.has(t)||Object.hasOwn(n,t);return(0,S.jsx)(Pm,{document:e,name:t,schema:r,required:s.has(t),included:i,value:n[t],onIncludedChange:e=>h(t,e),onChange:e=>m(t,e),onBusyChange:e=>f(n=>({...n,[t]:e})),onValidityChange:e=>l(n=>({...n,[t]:e}))},t)})})}function Pm(e){let{schema:t,name:n,required:r,included:i}=e,a=[t.description,om(t)].filter(Boolean).join(` · `);return(0,S.jsxs)(`div`,{className:`field`,children:[(0,S.jsxs)(`div`,{className:`field-heading`,children:[!r&&(0,S.jsx)(Mm,{"aria-label":`Include optional field ${n}`,checked:i,onCheckedChange:t=>e.onIncludedChange(t===!0)}),(0,S.jsxs)(`label`,{htmlFor:`field-${n}`,children:[n,r&&(0,S.jsx)(`span`,{className:`req`,children:` *`}),t.deprecated&&(0,S.jsx)(`span`,{className:`deprecated-tag`,children:` (deprecated)`})]})]}),a&&(0,S.jsx)(`small`,{className:`desc`,children:a}),(0,S.jsx)(`div`,{"aria-disabled":!i,className:i?void 0:`field-disabled`,children:(0,S.jsx)(Fm,{...e,disabled:!i})})]})}function Fm(e){let t=rm(e.document,e.schema),n={id:`field-${e.name}`,disabled:e.disabled};return t?(0,S.jsxs)(`select`,{...n,value:String(e.value??``),onChange:n=>{let r=n.currentTarget.value;e.onChange(t.find(e=>String(e)===r)??r)},children:[!e.required&&(0,S.jsx)(`option`,{value:``,children:`Select a value`}),t.map(e=>(0,S.jsx)(`option`,{value:String(e),children:String(e)},String(e)))]}):e.schema.type===`string`&&e.schema.format===`uri`?(0,S.jsx)(Lm,{...e}):e.schema.type===`string`&&e.schema.format===`password`?(0,S.jsx)(ym,{...n,type:`password`,"aria-label":e.name,value:String(e.value??``),onInput:t=>e.onChange(t.currentTarget.value)}):e.schema.type===`string`?(0,S.jsx)(bm,{...n,"aria-label":e.name,value:String(e.value??``),onInput:t=>e.onChange(t.currentTarget.value)}):e.schema.type===`integer`||e.schema.type===`number`?(0,S.jsx)(ym,{...n,type:`number`,"aria-label":e.name,min:e.schema.minimum,max:e.schema.maximum,step:e.schema.type===`integer`?1:`any`,value:e.value===void 0?``:String(e.value),onInput:t=>{let n=t.currentTarget.value;e.onChange(n===``?``:Number(n)),e.onValidityChange(t.currentTarget.checkValidity())}}):e.schema.type===`boolean`?(0,S.jsxs)(`select`,{...n,value:String(e.value??!1),onChange:t=>e.onChange(t.currentTarget.value===`true`),children:[(0,S.jsx)(`option`,{value:`true`,children:`true`}),(0,S.jsx)(`option`,{value:`false`,children:`false`})]}):(0,S.jsx)(Im,{...e})}function Im(e){let t=e.value===void 0?zm(e.schema):e.value,[n,r]=(0,d.useState)(JSON.stringify(t,null,2)),[i,a]=(0,d.useState)(``);return(0,d.useEffect)(()=>{r(JSON.stringify(e.value===void 0?zm(e.schema):e.value,null,2)),a(``)},[e.schema,e.value]),(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(lm,{value:n,label:`${e.name} JSON`,className:`ace-field`,onChange:t=>{r(t);try{e.onChange(JSON.parse(t)),a(``),e.onValidityChange(!0)}catch(t){a(t instanceof Error?t.message:`Invalid JSON`),e.onValidityChange(!1)}}}),i&&(0,S.jsxs)(`small`,{className:`field-error`,children:[`Invalid JSON: `,i]})]})}function Lm(e){let[t,n]=(0,d.useState)(``),[r,i]=(0,d.useState)(``),a=Array.isArray(e.schema[`x-cog-accept`])?e.schema[`x-cog-accept`].join(`,`):typeof e.schema[`x-cog-accept`]==`string`?e.schema[`x-cog-accept`]:void 0;return(0,S.jsxs)(`div`,{className:`file-widget`,children:[(0,S.jsx)(`input`,{id:`field-${e.name}`,type:`file`,accept:a,disabled:e.disabled,onChange:async t=>{let r=t.currentTarget.files?.[0];if(r){e.onBusyChange(!0),i(``);try{e.onChange(await Bp(r)),n(`${r.name} (${Bm(r.size)})`)}catch(e){i(e instanceof Error?e.message:`Could not read file`)}finally{e.onBusyChange(!1)}}}}),t&&(0,S.jsx)(`span`,{className:`file-name`,children:t}),(0,S.jsx)(`span`,{className:`muted`,children:`or URL`}),(0,S.jsx)(ym,{"aria-label":`${e.name} URL`,disabled:e.disabled,placeholder:`https://...`,value:typeof e.value==`string`&&!e.value.startsWith(`data:`)?e.value:``,onInput:t=>e.onChange(t.currentTarget.value)}),r&&(0,S.jsx)(`small`,{className:`field-error`,children:r}),typeof e.value==`string`&&(0,S.jsx)(Rm,{value:e.value})]})}function Rm({value:e}){return e.startsWith(`data:image/`)||/\.(png|jpe?g|gif|webp)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`img`,{className:`input-media`,src:e,alt:`Selected input preview`}):e.startsWith(`data:audio/`)||/\.(mp3|wav|ogg|flac|m4a)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`audio`,{controls:!0,src:e}):e.startsWith(`data:video/`)||/\.(mp4|webm|mov)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`video`,{controls:!0,src:e}):null}function zm(e){return e.type===`array`?[]:e.type===`object`||e.properties?{}:e.type!==`boolean`&&``}function Bm(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Vm(e,t,n){return t==null||t===``?!n:!(typeof t==`string`&&(e.minLength!==void 0&&t.lengthe.maxLength||e.pattern&&!new RegExp(e.pattern).test(t))||typeof t==`number`&&(e.minimum!==void 0&&te.maximum))}function Hm({view:e,trace:t,envelope:n}){return t?e===`logs`?(0,S.jsx)(Um,{logs:n?.logs}):e===`timeline`?(0,S.jsx)(Wm,{trace:t}):(0,S.jsx)(qm,{trace:t,envelope:n}):(0,S.jsx)(`div`,{className:`empty-output`,children:e===`timeline`?`Run a prediction to see its event timeline.`:e===`logs`?`Run an async prediction to see its logs.`:`Run a prediction to inspect its request and response metadata.`})}function Um({logs:e}){return e?(0,S.jsx)(`pre`,{className:`inspector-logs`,children:e}):(0,S.jsx)(`div`,{className:`empty-output`,children:`No prediction logs were received.`})}function Wm({trace:e}){return(0,S.jsx)(`ol`,{className:`trace-timeline`,children:Km(e.events).map(e=>(0,S.jsxs)(`li`,{className:`trace-${e.kind}`,children:[(0,S.jsx)(`time`,{children:Xm(e.elapsedMs)}),(0,S.jsx)(`span`,{className:`trace-kind`,children:e.kind}),(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`strong`,{children:[e.label,e.count>1&&` × ${e.count}`]}),e.data!==void 0&&(0,S.jsx)(Gm,{value:e.data})]})]},e.id))})}function Gm({value:e}){let[t,n]=(0,d.useState)(!1);return(0,S.jsxs)(`details`,{open:t,onToggle:e=>n(e.currentTarget.open),children:[(0,S.jsx)(`summary`,{children:`Payload`}),t&&(0,S.jsx)(lm,{value:Ym(e),label:`Timeline event payload`,className:`ace-timeline`,readOnly:!0,autoHeight:!0})]})}function Km(e){let t=[];for(let n of e){let e=t.at(-1);if(e&&n.kind===`sse`&&n.label===`output`&&e.label===`output`){e.count+=1,e.elapsedMs=n.elapsedMs,e.data=`${Ym(e.data)}\n\n${Ym(n.data)}`;continue}t.push({...n,count:1})}return t}function qm({trace:e,envelope:t}){let n=e.finishedAt?e.finishedAt-e.startedAt:e.events.at(-1)?.elapsedMs,r=typeof t?.metrics?.predict_time==`number`?t.metrics.predict_time*1e3:void 0;return(0,S.jsxs)(`div`,{className:`request-inspector`,children:[(0,S.jsxs)(`dl`,{className:`request-summary`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:`Request`}),(0,S.jsxs)(`dd`,{children:[(0,S.jsx)(`span`,{className:`method-badge`,children:e.method}),` `,e.endpoint]})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:`Started`}),(0,S.jsx)(`dd`,{children:e.startedAtLabel})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:`Status`}),(0,S.jsx)(`dd`,{children:e.responseStatus??`Waiting`})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:`Total duration`}),(0,S.jsx)(`dd`,{children:n===void 0?`Waiting`:Xm(n)})]}),r!==void 0&&(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:`Prediction time`}),(0,S.jsx)(`dd`,{children:Xm(r)})]})]}),(0,S.jsx)(Jm,{label:`Request headers`,value:e.requestHeaders}),(0,S.jsx)(Jm,{label:`Request body`,value:e.requestBody}),e.responseHeaders&&(0,S.jsx)(Jm,{label:`Response headers`,value:e.responseHeaders}),e.responseBody!==void 0&&(0,S.jsx)(Jm,{label:`Response body`,value:e.responseBody})]})}function Jm({label:e,value:t}){let[n,r]=(0,d.useState)(e.includes(`body`));return(0,S.jsxs)(`details`,{className:`inspector-document`,open:n,onToggle:e=>r(e.currentTarget.open),children:[(0,S.jsx)(`summary`,{children:e}),n&&(0,S.jsx)(lm,{value:Ym(t),label:e,className:`ace-inspector`,readOnly:!0,autoHeight:!0})]})}function Ym(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}function Xm(e){return e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(2)} s`}function Zm({envelope:e,output:t,rawEvents:n,running:r,streaming:i,trace:a}){let o=e||n.length>0||t!==void 0,[s,c]=(0,d.useState)(`output`),l=!!e?.logs?.trim();return(0,d.useEffect)(()=>{s===`logs`&&!l&&c(`output`)},[l,s]),(0,S.jsxs)(`section`,{id:`output-panel`,children:[(0,S.jsxs)(`div`,{className:`panel-head`,children:[(0,S.jsxs)(`div`,{className:`response-title`,children:[(0,S.jsx)(`h2`,{children:`Response`}),e?.status&&(0,S.jsx)($p,{status:e.status})]}),(0,S.jsx)(qp,{label:`Response details`,items:[{value:`output`,label:`Output`},{value:`raw`,label:`Raw`},...l?[{value:`logs`,label:`Logs`}]:[],{value:`timeline`,label:`Timeline`},{value:`request`,label:`Request`}],value:s,onChange:e=>c(e)})]}),e?.error&&(0,S.jsx)(`div`,{className:`error-container`,role:`alert`,children:e.error}),s===`output`?(0,S.jsxs)(S.Fragment,{children:[e?.metrics&&(0,S.jsx)(Qm,{metrics:e.metrics}),o?(0,S.jsx)($m,{value:t,running:r}):(0,S.jsx)(`div`,{className:`empty-output`,children:`Run a prediction to see its output.`})]}):s===`raw`?o?(0,S.jsx)(lm,{value:n.join(` + +`),label:`Raw prediction events`,className:`ace-output`,readOnly:!0,followTail:i}):(0,S.jsx)(`div`,{className:`empty-output`,children:`Run a prediction to see its raw response.`}):(0,S.jsx)(Hm,{view:s,trace:a,envelope:e})]})}function Qm({metrics:e}){return(0,S.jsx)(`table`,{className:`metrics-table`,children:(0,S.jsx)(`tbody`,{children:Object.entries(e).map(([e,t])=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{children:e}),(0,S.jsx)(`td`,{children:String(t)})]},e))})})}function $m({value:e,running:t}){if(e==null)return(0,S.jsx)(`div`,{className:`empty-output`,children:t?`Waiting for output...`:`Prediction returned no output.`});if(typeof e==`string`){let n=eh(e);return n?(0,S.jsx)(`div`,{className:`output-item`,children:n}):(0,S.jsxs)(`pre`,{className:`text-output`,children:[e,t&&(0,S.jsx)(`span`,{className:`streaming-cursor`})]})}if(Array.isArray(e)&&e.every(e=>typeof e==`string`)){let n=e;return n.some(e=>eh(e))?(0,S.jsx)(`div`,{children:n.map((e,t)=>(0,S.jsx)(`div`,{className:`output-item`,children:eh(e)??(0,S.jsx)(`pre`,{children:e})},t))}):(0,S.jsxs)(`pre`,{className:`text-output`,children:[n.join(``),t&&(0,S.jsx)(`span`,{className:`streaming-cursor`})]})}return(0,S.jsx)(lm,{value:JSON.stringify(e,null,2),label:`Structured prediction output`,className:`ace-output`,readOnly:!0,followTail:t})}function eh(e){return e.startsWith(`data:image/`)||/\.(png|jpe?g|gif|webp)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`img`,{src:e,alt:`Prediction output`}):e.startsWith(`data:audio/`)||/\.(mp3|wav|ogg|flac|m4a)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`audio`,{controls:!0,src:e}):e.startsWith(`data:video/`)||/\.(mp4|webm|mov)(?:[?#]|$)/i.test(e)?(0,S.jsx)(`video`,{controls:!0,src:e}):e.startsWith(`data:`)?(0,S.jsx)(`a`,{href:e,download:`output`,children:`Download file`}):/^https?:\/\//i.test(e)?(0,S.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,children:e}):null}var th=[`sync`,`stream`,`async`];function nh(e){let t=th.filter(t=>t===`sync`||t===`stream`&&e.streaming||t===`async`&&e.async);return(0,S.jsxs)(`div`,{id:`action-bar`,children:[(e.streaming||e.async)&&(0,S.jsx)(qp,{label:`Prediction mode`,items:t.map(e=>({value:e,label:e[0].toUpperCase()+e.slice(1)})),value:e.runMode,onChange:t=>e.onRunModeChange(t)}),(0,S.jsx)(ym,{"aria-label":`Prediction ID`,placeholder:`id (optional)`,value:e.predictionId,disabled:e.running,onInput:t=>e.onPredictionIdChange(t.currentTarget.value)}),(0,S.jsx)(kp,{variant:`primary`,disabled:!e.runnable,loading:e.running,onClick:e.onRun,children:`Run`}),(0,S.jsx)(kp,{variant:`secondary-destructive`,disabled:!e.running,onClick:e.onStop,children:`Stop`}),(0,S.jsx)(kp,{variant:`ghost`,disabled:e.running||!e.schemaLoaded,onClick:e.onReset,children:`Reset`})]})}var rh=new Set([`succeeded`,`failed`,`canceled`]),ih=1024*1024,ah=64*1024;function oh(e){let[t,n]=(0,d.useState)(!1),[r,i]=(0,d.useState)(),[a,o]=(0,d.useState)(),[s,c]=(0,d.useState)([]),[l,u]=(0,d.useState)(``),[f,p]=(0,d.useState)(),m=(0,d.useRef)(void 0),h=(0,d.useRef)(void 0),g=(0,d.useRef)(void 0),_=(0,d.useRef)(!0);(0,d.useEffect)(()=>()=>{_.current=!1,m.current?.abort.abort(),m.current?.events?.close();let e=h.current?.frame;e!==void 0&&window.cancelAnimationFrame(e),m.current=void 0,h.current=void 0},[]);let v=(0,d.useCallback)(e=>{if(m.current?.token!==e)return;let t=h.current;if(!t||(t.frame!==void 0&&window.cancelAnimationFrame(t.frame),t.frame=void 0,t.rawEvents.length===0&&t.output.length===0))return;let n=t.rawEvents.splice(0),r=t.output.slice();(0,d.startTransition)(()=>{n.length&&c(e=>sh([...e,...n],ih)),r.length&&o(r)})},[]),y=(e,t,n)=>{let r=h.current;m.current?.token!==e||!r||(r.rawEvents.push(t),r.rawEvents=sh(r.rawEvents,ih),n!==void 0&&r.output.push(n),r.frame===void 0&&(r.frame=window.requestAnimationFrame(()=>v(e))))},b=(0,d.useCallback)(e=>{m.current?.token===e&&(v(e),p(e=>e&&{...e,finishedAt:Date.now()}),m.current.events?.close(),m.current=void 0,n(!1))},[v]),x=(0,d.useCallback)(e=>{i(t=>({...t,...e})),!e.error&&e.output!==void 0&&o(e.output)},[]),S=async e=>{if(t)return;let r=crypto.randomUUID(),a=new AbortController;m.current={token:r,endpoint:e.endpoint,predictionId:e.predictionId,abort:a,startedAt:performance.now()},h.current={rawEvents:[],output:[]},g.current=r,n(!0),u(``),i({status:e.mode===`async`?`starting`:`processing`}),o(e.mode===`stream`?[]:void 0),c([]),p({startedAt:Date.now(),startedAtLabel:new Date().toLocaleTimeString(),method:e.predictionId?`PUT`:`POST`,endpoint:e.predictionId?`${e.endpoint}/${encodeURIComponent(e.predictionId)}`:e.endpoint,requestHeaders:lh(e.mode),requestBody:{input:e.input},events:[{id:crypto.randomUUID(),elapsedMs:0,kind:`request`,label:`${e.predictionId?`PUT`:`POST`} ${e.endpoint}`,data:{input:e.input}}]});try{e.mode===`stream`?await w(r,e,a.signal):e.mode===`async`?await T(r,e,a.signal):await C(r,e,a.signal)}catch(e){if(m.current?.token!==r)return;let t=e instanceof DOMException&&e.name===`AbortError`;u(t?``:dh(e)),O(r,`error`,t?`Request aborted`:dh(e)),i(e=>({...e,status:t?`canceled`:`failed`})),b(r)}},C=async(t,n,r)=>{let i=await e.submit({endpoint:n.endpoint,id:n.predictionId,input:n.input,signal:r,onResponse:e=>A(t,e)});m.current?.token===t&&(m.current.predictionId=i.id,x(i),j(t,i),c([JSON.stringify(i,null,2)]),b(t))},w=async(t,n,r)=>{let a=[],o=[],s=!1;for await(let c of e.stream({endpoint:n.endpoint,id:n.predictionId,input:n.input,signal:r,onResponse:e=>A(t,e,`SSE connection opened`)})){if(m.current?.token!==t)return;o.push(c.raw);let e=sh(o,ih);if(o.splice(0,o.length,...e),O(t,`sse`,c.type,c.raw),c.type===`start`)x(c.data),typeof c.data.id==`string`&&(m.current.predictionId=c.data.id),s=rh.has(String(c.data.status??``));else if(c.type===`output`){a.push(c.data.chunk),y(t,c.raw,c.data.chunk);continue}else c.type===`metric`?i(e=>({...e,metrics:{...e?.metrics,[String(c.data.name)]:Number(c.data.value)}})):c.type===`log`?i(e=>({...e,logs:(e?.logs??``)+String(c.data.data??c.data.message??c.data.value??``)})):c.type===`error`?(u(String(c.data.error??`Stream error`)),i(e=>({...e,...c.data,status:`failed`})),s=!0):c.type===`completed`&&(x(c.data),s=!0);if(y(t,c.raw),s)break}v(t),j(t,o.join(` + +`),!1),s||(u(`Prediction stream ended before a terminal event`),i(e=>({...e,status:`failed`})),O(t,`error`,`Prediction stream ended before a terminal event`)),b(t)},T=async(t,n,r)=>{if(!n.webhookBase)throw Error(`No webhook host is configured`);let a=crypto.randomUUID(),o=new EventSource(`/events?token=${encodeURIComponent(a)}`);if(m.current?.token!==t)return;m.current.events=o,await uh(o,r),O(t,`webhook`,`Webhook event stream connected`);let s=`${n.webhookBase}/webhook/${a}`,l=Array.from(new Set([...n.webhookEvents,`completed`]));p(e=>e&&{...e,requestBody:{input:n.input,webhook:s,webhook_events_filter:l}}),o.onmessage=e=>{if(m.current?.token===t){c(t=>sh([...t,e.data],ih)),O(t,`webhook`,`Webhook delivery`,e.data);try{let n=JSON.parse(e.data);x(n),rh.has(n.status??``)&&b(t)}catch{u(`Received an invalid webhook payload`)}}},o.onerror=()=>{m.current?.token===t&&(u(`Webhook event connection was interrupted`),O(t,`error`,`Webhook event connection interrupted`),i(e=>({...e,status:`failed`})),b(t))};let d=await e.submit({endpoint:n.endpoint,id:n.predictionId,input:n.input,async:!0,webhook:s,webhookEvents:l,signal:r,onResponse:e=>A(t,e)});m.current?.token===t&&(m.current.predictionId=d.id,x(d),j(t,d),rh.has(d.status??``)&&b(t))},E=()=>{let t=m.current;t&&(t.abort.abort(),t.events?.close(),O(t.token,`cancel`,`Cancellation requested`),i(e=>({...e,status:`canceled`})),b(t.token),t.predictionId&&e.cancel(t.endpoint,t.predictionId,AbortSignal.timeout(1e4)).catch(e=>{if(!_.current||g.current!==t.token)return;let n=`Cancellation failed: ${dh(e)}`;u(n),k(t,`error`,n)}))},D=(0,d.useCallback)(()=>{i(void 0),o(void 0),c([]),u(``),p(void 0),g.current=void 0},[]),O=(e,t,n,r)=>{let i=m.current;if(!i||i.token!==e)return;let a={id:crypto.randomUUID(),elapsedMs:performance.now()-i.startedAt,kind:t,label:n,data:ch(r)};p(e=>e&&{...e,events:[...e.events,a].slice(-100)})},k=(e,t,n,r)=>{let i={id:crypto.randomUUID(),elapsedMs:performance.now()-e.startedAt,kind:t,label:n,data:ch(r)};p(e=>e&&{...e,events:[...e.events,i].slice(-100)})},A=(e,t,n)=>{O(e,`response`,n?`${n} (HTTP ${t.status})`:`HTTP ${t.status}`),p(e=>e&&{...e,responseStatus:t.status,responseHeaders:Object.fromEntries(t.headers.entries())})},j=(e,t,n=!0)=>{m.current?.token===e&&p(e=>{if(!e)return e;let r=[...e.events];if(n){for(let e=r.length-1;e>=0;--e)if(r[e].kind===`response`){r[e]={...r[e],data:t};break}}return{...e,responseBody:t,events:r}})};return{running:t,envelope:r,output:a,rawEvents:s,error:l,trace:f,run:S,stop:E,reset:D}}function sh(e,t){let n=[],r=0;for(let i=e.length-1;i>=0;--i){let a=e[i];if(r+a.length>t){n.length===0&&n.push(a.slice(-t));break}n.push(a),r+=a.length}return n.reverse()}function ch(e){return typeof e==`string`&&e.length>ah?e.slice(0,ah)+` +... truncated`:e}function lh(e){return{"Content-Type":`application/json`,...e===`stream`?{Accept:`text/event-stream`}:{},...e===`async`?{Prefer:`respond-async`}:{}}}function uh(e,t){return new Promise((n,r)=>{let i=window.setTimeout(()=>r(Error(`Webhook event connection timed out`)),5e3),a=()=>{clearTimeout(i),t.removeEventListener(`abort`,o)},o=()=>{a(),e.close(),r(new DOMException(`Aborted`,`AbortError`))};t.addEventListener(`abort`,o,{once:!0}),e.onopen=()=>{a(),n()},e.onerror=()=>{a(),e.close(),r(Error(`Could not establish webhook event connection`))}})}function dh(e){return e instanceof Pp&&e.detail?e.detail.map(e=>JSON.stringify(e)).join(` +`):e instanceof Error?e.message:String(e)}function fh({value:e,webhookBase:t,onChange:n}){return(0,S.jsxs)(`div`,{id:`webhook-options`,children:[(0,S.jsx)(`span`,{className:`muted`,children:`Webhook events`}),[`start`,`output`,`logs`].map(t=>(0,S.jsx)(Mm,{label:t,checked:e.includes(t),onCheckedChange:r=>n(r?[...e,t]:e.filter(e=>e!==t))},t)),(0,S.jsx)(Mm,{label:`completed`,checked:!0,disabled:!0}),(0,S.jsx)(`span`,{className:`muted`,children:t?`Webhook: ${t}/webhook/...`:`No webhook host configured`})]})}function ph(){return document.documentElement.dataset.mode===`light`?`light`:`dark`}function mh(e){document.documentElement.dataset.mode=e,localStorage.setItem(`cog-playground-theme`,e),window.dispatchEvent(new Event(`cog-theme-change`))}function hh(){let e=(0,d.useMemo)(()=>new Fp,[]),t=Tm(e),n=oh(e),[r,i]=(0,d.useState)({}),[a,o]=(0,d.useState)(`{}`),[s,c]=(0,d.useState)(``),[l,u]=(0,d.useState)(`form`),[f,p]=(0,d.useState)(`sync`),[m,h]=(0,d.useState)(``),[g,_]=(0,d.useState)(!1),[v,y]=(0,d.useState)(!0),[b,x]=(0,d.useState)(ph()),[C,w]=(0,d.useState)([`start`,`output`,`logs`,`completed`]),{schema:T,capabilities:E}=t,D=n.reset;(0,d.useEffect)(()=>{if(!T||!E)return;let e=im(T,E.input);i(e),o(JSON.stringify(e,null,2)),p(E.streaming?`stream`:`sync`),D()},[E,D,T]);let O=()=>{if(!t.capabilities)return;let e=r;if(l===`json`)try{e=vh(a),c(``)}catch(e){c(_h(e));return}n.run({endpoint:t.capabilities.endpoint,predictionId:m.trim()||void 0,input:e,mode:f,webhookBase:t.webhookBase,webhookEvents:C})},k=()=>{if(!t.schema||!t.capabilities)return;let e=im(t.schema,t.capabilities.input);i(e),o(JSON.stringify(e,null,2)),h(``),c(``),n.reset()},A=e=>{if(e!==l){if(e===`json`){o(JSON.stringify(r,null,2)),u(`json`);return}try{i(vh(a)),c(``),u(`form`)}catch(e){c(_h(e))}}},j=()=>{let e=b===`dark`?`light`:`dark`;mh(e),x(e)},M=[t.health.version?.coglet&&`coglet ${t.health.version.coglet}`,t.health.version?.cog&&`cog ${t.health.version.cog}`,t.health.version?.python&&`py ${t.health.version.python}`].filter(Boolean).join(` · `),N=!!(t.schema&&t.capabilities&&!g&&v&&!n.running);return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`header`,{children:[(0,S.jsx)(`h1`,{children:`Cog Playground`}),(0,S.jsx)($p,{status:t.health.status}),(0,S.jsx)(`span`,{className:`spacer`}),(0,S.jsx)(`span`,{className:`muted`,children:M}),(0,S.jsx)(kp,{size:`sm`,variant:`ghost`,onClick:j,children:b===`dark`?`Light`:`Dark`}),(0,S.jsx)(`a`,{href:`/proxy/openapi.json?cog_target=${encodeURIComponent(t.target)}`,target:`_blank`,rel:`noreferrer`,children:`Schema`})]}),(0,S.jsx)(xm,{draft:t.targetDraft,status:t.health.user_healthcheck_error,disabled:n.running,onDraftChange:t.setTargetDraft,onConnect:t.connect}),(0,S.jsx)(nh,{runMode:f,predictionId:m,streaming:t.capabilities?.streaming??!1,async:t.capabilities?.async??!1,running:n.running,runnable:N,schemaLoaded:!!t.schema,onRunModeChange:p,onPredictionIdChange:h,onRun:O,onStop:()=>void n.stop(),onReset:k}),f===`async`&&(0,S.jsx)(fh,{value:C,webhookBase:t.webhookBase,onChange:w}),(0,S.jsx)(Sm,{setup:t.health.setup}),(0,S.jsxs)(`main`,{children:[(0,S.jsxs)(`section`,{id:`input-panel`,children:[(0,S.jsxs)(`div`,{className:`panel-head`,children:[(0,S.jsx)(`h2`,{children:`Input`}),(0,S.jsx)(qp,{label:`Input editor mode`,items:[{value:`form`,label:`Form`},{value:`json`,label:`JSON`}],value:l,onChange:A})]}),t.schemaError&&(0,S.jsx)(`output`,{className:`notice visible`,children:t.schemaError}),n.error&&(0,S.jsx)(`div`,{className:`error-container`,role:`alert`,children:n.error}),t.schema&&t.capabilities&&l===`form`&&(0,S.jsx)(Nm,{document:t.schema,schema:t.capabilities.input,value:r,onChange:i,onBusyChange:_,onValidityChange:y}),l===`json`&&(0,S.jsxs)(`div`,{id:`json-container`,children:[(0,S.jsx)(lm,{value:a,label:`Prediction input JSON`,onChange:o}),s&&(0,S.jsx)(`small`,{className:`field-error`,children:s}),(0,S.jsx)(kp,{size:`sm`,variant:`ghost`,onClick:()=>gh(a,o,c),children:`Format`})]})]}),(0,S.jsx)(Zm,{envelope:n.envelope,output:n.output,rawEvents:n.rawEvents,running:n.running,streaming:f!==`sync`,trace:n.trace})]})]})}function gh(e,t,n){try{t(JSON.stringify(JSON.parse(e),null,2)),n(``)}catch(e){n(_h(e))}}function _h(e){return e instanceof Error?e.message:String(e)}function vh(e){let t=JSON.parse(e);if(!yh(t))throw Error(`Input must be a JSON object`);return t}function yh(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}(0,jp.createRoot)(document.getElementById(`root`)).render((0,S.jsx)(hh,{})); \ No newline at end of file diff --git a/pkg/cli/playground/assets/mode-json-CmR6NCOW.js b/pkg/cli/playground/assets/mode-json-CmR6NCOW.js new file mode 100644 index 0000000000..464ba7ccef --- /dev/null +++ b/pkg/cli/playground/assets/mode-json-CmR6NCOW.js @@ -0,0 +1 @@ +import{t as e}from"./rolldown-runtime-Bh1tDfsg.js";var t=e(((e,t)=>{ace.define(`ace/mode/json_highlight_rules`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/mode/text_highlight_rules`],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,a=function(){this.$rules={start:[{token:`variable`,regex:`["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)`},{token:`string`,regex:`"`,next:`string`},{token:`constant.numeric`,regex:`0[xX][0-9a-fA-F]+\\b`},{token:`constant.numeric`,regex:`[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b`},{token:`constant.language.boolean`,regex:`(?:true|false)\\b`},{token:`text`,regex:`['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']`},{token:`comment`,regex:`\\/\\/.*$`},{token:`comment.start`,regex:`\\/\\*`,next:`comment`},{token:`paren.lparen`,regex:`[[({]`},{token:`paren.rparen`,regex:`[\\])}]`},{token:`punctuation.operator`,regex:/[,]/},{token:`text`,regex:`\\s+`}],string:[{token:`constant.language.escape`,regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:`string`,regex:`"|$`,next:`start`},{defaultToken:`string`}],comment:[{token:`comment.end`,regex:`\\*\\/`,next:`start`},{defaultToken:`comment`}]}};r.inherits(a,i),t.JsonHighlightRules=a}),ace.define(`ace/mode/matching_brace_outdent`,[`require`,`exports`,`module`,`ace/range`],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var i=n[1].length,a=e.findMatchingBracket({row:t,column:i});if(!a||a.row==t)return 0;var o=this.$getIndent(e.getLine(a.row));e.replace(new r(t,0,t,i-1),o)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(`ace/mode/folding/cstyle`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/range`,`ace/mode/folding/fold_mode`],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,a=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,`|`+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,`|`+e.end)))};r.inherits(o,a),(function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return``;var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?`start`:i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var a=i.match(this.foldingStartMarker);if(a){var o=a.index;if(a[1])return this.openingBracketBlock(e,a[1],n,o);var s=e.getCommentFoldRange(n,o+a[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):t!=`all`&&(s=null)),s}if(t!==`markbegin`){var a=i.match(this.foldingStopMarker);if(a){var o=a.index+a[0].length;return a[1]?this.closingBracketBlock(e,a[1],n,o):e.getCommentFoldRange(n,o,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),a=t,o=n.length;t+=1;for(var s=t,c=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,`all`,t);if(u){if(u.start.row<=a)break;if(u.isMultiLine())t=u.end.row;else if(r==l)break}s=t}}return new i(a,o,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),a=e.getLength(),o=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++no)return new i(o,r,u,t.length)}}).call(o.prototype)}),ace.define(`ace/mode/json`,[`require`,`exports`,`module`,`ace/lib/oop`,`ace/mode/text`,`ace/mode/json_highlight_rules`,`ace/mode/matching_brace_outdent`,`ace/mode/folding/cstyle`,`ace/worker/worker_client`],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,a=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./folding/cstyle").FoldMode,c=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=a,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new s};r.inherits(l,i),(function(){this.lineCommentStart=`//`,this.blockComment={start:`/*`,end:`*/`},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);return e==`start`&&t.match(/^.*[\{\(\[]\s*$/)&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new c([`ace`],`ace/mode/json_worker`,`JsonWorker`);return t.attachToDocument(e.getDocument()),t.on(`annotate`,function(t){e.setAnnotations(t.data)}),t.on(`terminate`,function(){e.clearAnnotations()}),t},this.$id=`ace/mode/json`}).call(l.prototype),t.Mode=l}),(function(){ace.require([`ace/mode/json`],function(n){typeof t==`object`&&typeof e==`object`&&t&&(t.exports=n)})})()}));export default t(); \ No newline at end of file diff --git a/pkg/cli/playground/assets/preload-helper-cM5i_iDb.js b/pkg/cli/playground/assets/preload-helper-cM5i_iDb.js new file mode 100644 index 0000000000..83ce8d20da --- /dev/null +++ b/pkg/cli/playground/assets/preload-helper-cM5i_iDb.js @@ -0,0 +1 @@ +import{t as e}from"./rolldown-runtime-Bh1tDfsg.js";var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{n.exports=t()})),r=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),i=e(((e,t)=>{t.exports=r()})),a=`modulepreload`,o=function(e){return`/`+e},s={},c=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),c=i?.nonce||i?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=l(t.map(t=>{if(t=o(t,n),t=u(t),t in s)return;s[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:a,r||(i.as=`script`),i.crossOrigin=``,i.href=t,c&&i.setAttribute(`nonce`,c),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};export{i as n,n as r,c as t}; \ No newline at end of file diff --git a/pkg/cli/playground/assets/rolldown-runtime-Bh1tDfsg.js b/pkg/cli/playground/assets/rolldown-runtime-Bh1tDfsg.js new file mode 100644 index 0000000000..04d551d727 --- /dev/null +++ b/pkg/cli/playground/assets/rolldown-runtime-Bh1tDfsg.js @@ -0,0 +1 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{c as n,o as t}; \ No newline at end of file diff --git a/pkg/cli/playground/index.html b/pkg/cli/playground/index.html new file mode 100644 index 0000000000..a08a6aedb4 --- /dev/null +++ b/pkg/cli/playground/index.html @@ -0,0 +1,24 @@ + + + + + + Cog Playground + + + + + + + +
+ + diff --git a/pkg/cli/playground_test.go b/pkg/cli/playground_test.go new file mode 100644 index 0000000000..4a52bc456a --- /dev/null +++ b/pkg/cli/playground_test.go @@ -0,0 +1,383 @@ +package cli + +import ( + "bufio" + "bytes" + "encoding/json" + "fmt" + "io" + "io/fs" + "net/http" + "net/http/httptest" + "net/url" + "regexp" + "strings" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func newTestPlayground(t *testing.T) *httptest.Server { + t.Helper() + uiFS, err := fs.Sub(playgroundUI, "playground") + require.NoError(t, err) + s := &playgroundServer{hub: newEventHub(), webhookBase: "http://wh.example/cb"} + ts := httptest.NewServer(s.routes(uiFS)) + t.Cleanup(ts.Close) + return ts +} + +// echoServer reports the received path and (forwarded) query as JSON. +func echoServer(t *testing.T) *httptest.Server { + t.Helper() + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + fmt.Fprintf(w, `{"path":%q,"escaped_path":%q,"query":%q}`, r.URL.Path, r.URL.EscapedPath(), r.URL.RawQuery) + })) + t.Cleanup(ts.Close) + return ts +} + +func TestPlaygroundServesUI(t *testing.T) { + ts := newTestPlayground(t) + + resp, err := http.Get(ts.URL + "/") + require.NoError(t, err) + defer resp.Body.Close() + body, _ := io.ReadAll(resp.Body) + assert.Equal(t, http.StatusOK, resp.StatusCode) + assert.Contains(t, string(body), "Cog Playground") + + assets := regexp.MustCompile(`(?:src|href)="(/?assets/[^"]+)"`).FindAllStringSubmatch(string(body), -1) + require.NotEmpty(t, assets, "generated index should reference bundled assets") + for _, match := range assets { + path := "/" + strings.TrimPrefix(match[1], "/") + assetResp, err := http.Get(ts.URL + path) + require.NoError(t, err, "requesting %s", path) + assetResp.Body.Close() + assert.Equal(t, http.StatusOK, assetResp.StatusCode, "%s should be served", path) + if strings.HasSuffix(path, ".css") { + assert.Contains(t, assetResp.Header.Get("Content-Type"), "text/css") + } else if strings.HasSuffix(path, ".js") { + assert.Contains(t, assetResp.Header.Get("Content-Type"), "javascript") + } + } +} + +func TestPlaygroundConfig(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Get(ts.URL + "/config") + require.NoError(t, err) + defer resp.Body.Close() + + var config map[string]string + require.NoError(t, json.NewDecoder(resp.Body).Decode(&config)) + assert.Equal(t, "http://wh.example/cb", config["webhookBase"]) +} + +func TestPlaygroundRejectsRemoteUIAndProxyRequests(t *testing.T) { + uiFS, err := fs.Sub(playgroundUI, "playground") + require.NoError(t, err) + s := &playgroundServer{hub: newEventHub(), webhookBase: "http://wh.example/cb"} + + for _, path := range []string{"/", "/config", "/proxy/health-check"} { + req := httptest.NewRequest(http.MethodGet, "http://playground.example"+path, nil) + req.RemoteAddr = "192.0.2.10:1234" + resp := httptest.NewRecorder() + s.routes(uiFS).ServeHTTP(resp, req) + assert.Equal(t, http.StatusForbidden, resp.Code, path) + } +} + +func TestPlaygroundAllowsRemoteWebhookRequests(t *testing.T) { + uiFS, err := fs.Sub(playgroundUI, "playground") + require.NoError(t, err) + s := &playgroundServer{hub: newEventHub(), webhookBase: "http://wh.example/cb"} + ch := s.hub.subscribe("token") + defer s.hub.unsubscribe("token", ch) + + req := httptest.NewRequest(http.MethodPost, "http://playground.example/webhook/token", strings.NewReader(`{"status":"succeeded"}`)) + req.RemoteAddr = "192.0.2.10:1234" + resp := httptest.NewRecorder() + s.routes(uiFS).ServeHTTP(resp, req) + + assert.Equal(t, http.StatusOK, resp.Code) +} + +func TestPlaygroundProxyHeaderTarget(t *testing.T) { + ts := newTestPlayground(t) + stub := echoServer(t) + + req, err := http.NewRequest(http.MethodGet, ts.URL+"/proxy/openapi.json?foo=bar&cog_target=ignored", nil) + require.NoError(t, err) + req.Header.Set("X-Cog-Target", stub.URL) + + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + + var got map[string]string + require.NoError(t, json.NewDecoder(resp.Body).Decode(&got)) + assert.Equal(t, "/openapi.json", got["path"], "/proxy prefix should be stripped") + assert.Equal(t, "foo=bar", got["query"], "cog_target should be removed from the forwarded query") +} + +func TestPlaygroundProxyQueryTarget(t *testing.T) { + ts := newTestPlayground(t) + stub := echoServer(t) + + u := ts.URL + "/proxy/health-check?x=1&cog_target=" + url.QueryEscape(stub.URL) + resp, err := http.Get(u) + require.NoError(t, err) + defer resp.Body.Close() + + var got map[string]string + require.NoError(t, json.NewDecoder(resp.Body).Decode(&got)) + assert.Equal(t, "/health-check", got["path"]) + assert.Equal(t, "x=1", got["query"]) +} + +func TestPlaygroundProxyPreservesEscapedPathSegments(t *testing.T) { + ts := newTestPlayground(t) + stub := echoServer(t) + + req, err := http.NewRequest(http.MethodPost, ts.URL+"/proxy/predictions/custom%2Fid/cancel", nil) + require.NoError(t, err) + req.Header.Set("X-Cog-Target", stub.URL+"/api") + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + + var got map[string]string + require.NoError(t, json.NewDecoder(resp.Body).Decode(&got)) + assert.Equal(t, "/api/predictions/custom/id/cancel", got["path"]) + assert.Equal(t, "/api/predictions/custom%2Fid/cancel", got["escaped_path"]) +} + +func TestPlaygroundProxyForwardsRequestAndResponse(t *testing.T) { + ts := newTestPlayground(t) + stub := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + body, err := io.ReadAll(r.Body) + require.NoError(t, err) + assert.Equal(t, http.MethodPut, r.Method) + assert.Equal(t, "/api/predictions/p1", r.URL.Path) + assert.Equal(t, `{"input":{"prompt":"hello"}}`, string(body)) + assert.Equal(t, "application/json", r.Header.Get("Content-Type")) + assert.Empty(t, r.Header.Get("X-Cog-Target")) + w.Header().Set("X-Upstream", "preserved") + w.WriteHeader(http.StatusUnprocessableEntity) + _, _ = w.Write([]byte(`{"detail":"invalid input"}`)) + })) + t.Cleanup(stub.Close) + + req, err := http.NewRequest(http.MethodPut, ts.URL+"/proxy/predictions/p1", bytes.NewBufferString(`{"input":{"prompt":"hello"}}`)) + require.NoError(t, err) + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Cog-Target", stub.URL+"/api") + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + + assert.Equal(t, http.StatusUnprocessableEntity, resp.StatusCode) + assert.Equal(t, "preserved", resp.Header.Get("X-Upstream")) + assert.JSONEq(t, `{"detail":"invalid input"}`, string(body)) +} + +func TestPlaygroundProxyMissingTarget(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Get(ts.URL + "/proxy/health-check") + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusBadRequest, resp.StatusCode) +} + +func TestPlaygroundProxyInvalidTarget(t *testing.T) { + ts := newTestPlayground(t) + for _, target := range []string{"ftp://example.com", "garbage", "", "http://user@example.com", "http://example.com/#fragment"} { + req, err := http.NewRequest(http.MethodGet, ts.URL+"/proxy/health-check", nil) + require.NoError(t, err) + if target != "" { + req.Header.Set("X-Cog-Target", target) + } + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + resp.Body.Close() + assert.Equal(t, http.StatusBadRequest, resp.StatusCode, "target %q should be rejected", target) + } +} + +func TestPlaygroundWebhookRejectsNonPost(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Get(ts.URL + "/webhook/token") + require.NoError(t, err) + defer resp.Body.Close() + + assert.Equal(t, http.StatusMethodNotAllowed, resp.StatusCode) + assert.Equal(t, http.MethodPost, resp.Header.Get("Allow")) +} + +func TestPlaygroundRecognizesIPv6Loopback(t *testing.T) { + assert.True(t, isLoopbackRemote("[::1]:8080")) + assert.False(t, isLoopbackRemote("not-an-address")) +} + +func TestPlaygroundProxyUnreachableTarget(t *testing.T) { + ts := newTestPlayground(t) + dead := httptest.NewServer(http.NotFoundHandler()) + deadURL := dead.URL + dead.Close() // now refuses connections + + req, err := http.NewRequest(http.MethodGet, ts.URL+"/proxy/health-check", nil) + require.NoError(t, err) + req.Header.Set("X-Cog-Target", deadURL) + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusBadGateway, resp.StatusCode) +} + +func TestPlaygroundProxyStreamsSSE(t *testing.T) { + ts := newTestPlayground(t) + sse := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.Header().Set("Content-Type", "text/event-stream") + w.WriteHeader(http.StatusOK) + w.(http.Flusher).Flush() + fmt.Fprint(w, "event: start\ndata: {\"a\":1}\n\n") + w.(http.Flusher).Flush() + })) + t.Cleanup(sse.Close) + + req, err := http.NewRequest(http.MethodGet, ts.URL+"/proxy/predictions", nil) + require.NoError(t, err) + req.Header.Set("X-Cog-Target", sse.URL) + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + + assert.Equal(t, "text/event-stream", resp.Header.Get("Content-Type")) + body, _ := io.ReadAll(resp.Body) + assert.Contains(t, string(body), "event: start") + assert.Contains(t, string(body), `data: {"a":1}`) +} + +func TestPlaygroundWebhookRelay(t *testing.T) { + ts := newTestPlayground(t) + const token = "tok123" + + req, err := http.NewRequestWithContext(t.Context(), http.MethodGet, ts.URL+"/events?token="+token, nil) + require.NoError(t, err) + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + require.Equal(t, "text/event-stream", resp.Header.Get("Content-Type")) + + // The subscription is registered before headers are flushed, so by now the + // hub has our channel; deliver a webhook and expect it relayed. + got := make(chan string, 1) + go func() { + scanner := bufio.NewScanner(resp.Body) + for scanner.Scan() { + if line := scanner.Text(); strings.HasPrefix(line, "data: ") { + got <- strings.TrimPrefix(line, "data: ") + return + } + } + }() + + whResp, err := http.Post(ts.URL+"/webhook/"+token, "application/json", + strings.NewReader(`{"status":"succeeded","id":"p1"}`)) + require.NoError(t, err) + whResp.Body.Close() + assert.Equal(t, http.StatusOK, whResp.StatusCode) + + select { + case data := <-got: + assert.JSONEq(t, `{"status":"succeeded","id":"p1"}`, data) + case <-time.After(2 * time.Second): + require.FailNow(t, "timed out waiting for relayed webhook event") + } +} + +// A payload containing newlines must be framed as one SSE event with a +// "data: " prefix per line, not terminate the event early or inject fields. +func TestPlaygroundWebhookRelayPreservesNewlines(t *testing.T) { + ts := newTestPlayground(t) + const token = "tok-nl" + + req, err := http.NewRequestWithContext(t.Context(), http.MethodGet, ts.URL+"/events?token="+token, nil) + require.NoError(t, err) + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + + got := make(chan []string, 1) + go func() { + scanner := bufio.NewScanner(resp.Body) + var data []string + for scanner.Scan() { + line := scanner.Text() + if after, ok := strings.CutPrefix(line, "data: "); ok { + data = append(data, after) + } else if line == "" && len(data) > 0 { + got <- data + return + } + } + }() + + whResp, err := http.Post(ts.URL+"/webhook/"+token, "application/json", + strings.NewReader("{\"a\":1}\n{\"b\":2}")) + require.NoError(t, err) + whResp.Body.Close() + + select { + case data := <-got: + assert.Equal(t, []string{`{"a":1}`, `{"b":2}`}, data) + case <-time.After(2 * time.Second): + require.FailNow(t, "timed out waiting for relayed webhook event") + } +} + +func TestPlaygroundEventsMissingToken(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Get(ts.URL + "/events") + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusBadRequest, resp.StatusCode) +} + +func TestPlaygroundWebhookMissingToken(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Post(ts.URL+"/webhook/", "application/json", strings.NewReader("{}")) + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusNotFound, resp.StatusCode) +} + +func TestPlaygroundWebhookRejectsOversizedBody(t *testing.T) { + uiFS, err := fs.Sub(playgroundUI, "playground") + require.NoError(t, err) + // Keep a subscriber active so the handler reaches its body-size check. + s := &playgroundServer{hub: newEventHub(), webhookBase: "http://wh.example/cb"} + ch := s.hub.subscribe("token") + defer s.hub.unsubscribe("token", ch) + ts := httptest.NewServer(s.routes(uiFS)) + t.Cleanup(ts.Close) + resp, err := http.Post(ts.URL+"/webhook/token", "application/json", + strings.NewReader(strings.Repeat("x", maxWebhookBody+1))) + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusRequestEntityTooLarge, resp.StatusCode) +} + +func TestPlaygroundWebhookRejectsMissingSubscriber(t *testing.T) { + ts := newTestPlayground(t) + resp, err := http.Post(ts.URL+"/webhook/token", "application/json", strings.NewReader("{}")) + require.NoError(t, err) + defer resp.Body.Close() + assert.Equal(t, http.StatusServiceUnavailable, resp.StatusCode) +} diff --git a/pkg/cli/root.go b/pkg/cli/root.go index 6de4283905..794f437431 100644 --- a/pkg/cli/root.go +++ b/pkg/cli/root.go @@ -60,6 +60,7 @@ https://github.com/replicate/cog`, newPushCommand(), newExecCommand(), newServeCommand(), + newPlaygroundCommand(), newTrainCommand(), newWeightsCommand(), ) diff --git a/playground/.gitignore b/playground/.gitignore new file mode 100644 index 0000000000..a55b3fb16e --- /dev/null +++ b/playground/.gitignore @@ -0,0 +1,5 @@ +**/node_modules/ +**/coverage/ +**/playwright-report/ +**/test-results/ +*.log diff --git a/playground/.oxfmtrc.json b/playground/.oxfmtrc.json new file mode 100644 index 0000000000..600e409925 --- /dev/null +++ b/playground/.oxfmtrc.json @@ -0,0 +1,5 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 100, + "ignorePatterns": ["coverage", "playwright-report", "test-results"] +} diff --git a/playground/.oxlintrc.json b/playground/.oxlintrc.json new file mode 100644 index 0000000000..ee4fa674b3 --- /dev/null +++ b/playground/.oxlintrc.json @@ -0,0 +1,11 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["eslint", "typescript", "unicorn", "oxc", "react", "import", "vitest", "jsx-a11y"], + "rules": { + "vitest/require-mock-type-parameters": "off" + }, + "env": { + "browser": true + }, + "ignorePatterns": ["coverage", "playwright-report", "test-results"] +} diff --git a/playground/bun.lock b/playground/bun.lock new file mode 100644 index 0000000000..ea09ea80e1 --- /dev/null +++ b/playground/bun.lock @@ -0,0 +1,955 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "@replicate/cog-playground", + "dependencies": { + "@cloudflare/kumo": "^2.7.0", + "@phosphor-icons/react": "^2.1.10", + "ace-builds": "^1.43.6", + "react": "^19.2.4", + "react-dom": "^19.2.4", + }, + "devDependencies": { + "@tailwindcss/vite": "^4.1.17", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@types/ace": "^0.0.52", + "@types/node": "^24.10.1", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "@vitejs/plugin-react": "^5.1.2", + "@vitest/coverage-v8": "^4.0.8", + "jsdom": "^27.2.0", + "oxfmt": "^0.58.0", + "oxlint": "^1.50.0", + "tailwindcss": "^4.1.17", + "typescript": "^5.9.3", + "vite": "^8.1.4", + "vitest": "^4.0.8", + }, + }, + }, + "packages": { + "@acemir/cssom": ["@acemir/cssom@0.9.31", "", {}, "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA=="], + + "@adobe/css-tools": ["@adobe/css-tools@4.5.0", "", {}, "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q=="], + + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@4.1.2", "", { "dependencies": { "@csstools/css-calc": "^3.0.0", "@csstools/css-color-parser": "^4.0.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "lru-cache": "^11.2.5" } }, "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg=="], + + "@asamuzakjp/dom-selector": ["@asamuzakjp/dom-selector@6.8.1", "", { "dependencies": { "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.1.0", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.2.6" } }, "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ=="], + + "@asamuzakjp/nwsapi": ["@asamuzakjp/nwsapi@2.3.9", "", {}, "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q=="], + + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + + "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + + "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": "./bin/babel-parser.js" }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q=="], + + "@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + + "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + + "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + + "@base-ui/react": ["@base-ui/react@1.6.0", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@base-ui/utils": "0.3.1", "@floating-ui/react-dom": "^2.1.8", "@floating-ui/utils": "^0.2.11", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@date-fns/tz": "^1.2.0", "@types/react": "^17 || ^18 || ^19", "date-fns": "^4.0.0", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@date-fns/tz", "@types/react", "date-fns"] }, "sha512-/jzjTWJYXhRFO45Bev9lc3cHbmjzCMpUqbMZ2AgKy/z25mY9B6shGSNcXcjQar9n5doM0KYW1W8fcFv2jZBuMw=="], + + "@base-ui/utils": ["@base-ui/utils@0.3.1", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.11", "reselect": "^5.2.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-gFFiltORVmW/N6IILTGxizP3PBpVpysqML1ALY5Vk0mH+7faVkCknOU31goYHN5Aoek2dkjxva1XOD2Ce9WuIg=="], + + "@bcoe/v8-coverage": ["@bcoe/v8-coverage@1.0.2", "", {}, "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA=="], + + "@cloudflare/kumo": ["@cloudflare/kumo@2.7.0", "https://registry-gateway.cloudflare-ui.workers.dev/@cloudflare/kumo/-/kumo-2.7.0.tgz", { "dependencies": { "@base-ui/react": "^1.6.0", "@shikijs/langs": "^4.0.0", "@shikijs/themes": "^4.0.0", "cnfast": "^0.0.8", "d3-geo": "^3.1.1", "motion": "^12.34.1", "react-day-picker": "^9.13.2", "shiki": "^4.0.0" }, "peerDependencies": { "@phosphor-icons/react": "^2.1.10", "echarts": "^6.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "zod": "^4.0.0" }, "optionalPeers": ["echarts", "zod"], "bin": { "kumo": "bin/kumo.js" } }, "sha512-KniieEmj/ZwqffqmLIVW76JnMuG5aeKJrs1nmSMME3U2wFo4yEzQtbLrLujNR2xmiDed5qm2PKpO03BltQa2mw=="], + + "@csstools/color-helpers": ["@csstools/color-helpers@6.1.0", "", {}, "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg=="], + + "@csstools/css-calc": ["@csstools/css-calc@3.2.1", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg=="], + + "@csstools/css-color-parser": ["@csstools/css-color-parser@4.1.9", "", { "dependencies": { "@csstools/color-helpers": "^6.1.0", "@csstools/css-calc": "^3.2.1" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A=="], + + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@4.0.0", "", { "peerDependencies": { "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w=="], + + "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.1.6", "", { "peerDependencies": { "css-tree": "^3.2.1" }, "optionalPeers": ["css-tree"] }, "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ=="], + + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@4.0.0", "", {}, "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA=="], + + "@date-fns/tz": ["@date-fns/tz@1.5.0", "", {}, "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg=="], + + "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], + + "@exodus/bytes": ["@exodus/bytes@1.15.1", "", { "peerDependencies": { "@noble/hashes": "^1.8.0 || ^2.0.0" }, "optionalPeers": ["@noble/hashes"] }, "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q=="], + + "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + + "@oxc-project/types": ["@oxc-project/types@0.139.0", "", {}, "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw=="], + + "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.58.0", "", { "os": "android", "cpu": "arm" }, "sha512-Uz62sHduGGPftXtILGyxdSW4PX82rUg+rfdNqhsgxe881g4rIoXlIqmZQ6HVKcF4f+F8qMhdD03Bx5u7gmeTdg=="], + + "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.58.0", "", { "os": "android", "cpu": "arm64" }, "sha512-rD0lRaJp1b+9vw6X4A2dJWKukd6X8yxiicN4JxXcXayolmUypRZxk+lKR+fVOu5q/iYc0fh5fR4bgmfOfVlbaA=="], + + "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.58.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-uzbPPk7O6M+w2K65vcQ1woga3wgP8zghjL1KOG5b6qJ8dvYHZJ1VShaslg2KOK6yQIwCQtcMCXqLBM6sqXUNTg=="], + + "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.58.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-L0nKYDxU32oxeQqJj21W9SlIMnf81VZEhyah6iDvFhf5q0oynq498Fopth7blErUJVBpVtxQ98RMCfMPqpJX6w=="], + + "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.58.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-woNwfD58dC5PGS9LSLSD5JYfo/EFK5iG9vhDWkcCg3q78ag7KC8bpDqgvPHrMoXpx83OLXxoSOhu6z8FsVTHlg=="], + + "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Sqs8nMLxuQpY21NKJ1u4stPDmO5hskBCNNh2E3AdCfI1QqWtf4m+Qn4mGEIUO4KGmuq3SWc/SZ80uy5IiwTCDw=="], + + "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.58.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Vd4exzBI5B5hB9m22JiTQzIL23WvHo/Pe+sNXPNeBLXSP9swCBPKCEBRwKpmpQzYhlgYaCgfPcGXPKAJBRIiZQ=="], + + "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bUWi5mHV+4Vi56RLHE1h6q/HHfwAIT3XoB9vJAVeRzfu5NriXM8y6eeJu0vlKa0C9kq2rq1sOWRClhdLHPocrg=="], + + "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.58.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-2ZHxemzgHcjtktAuVUwSoyXmGo/t+aF5tS1ciPpPei4rhSyrz3JOqDosXXrmhN/yLUSzJjtuW7ToTWqfQpCj2w=="], + + "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.58.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-AwKkVwjVmFQ3bcO7j0McGYAqCKH2a326fswfofng/E8VewCT/raeeGQr4huVhY704deK8AWASSTlxzMj0eZc6Q=="], + + "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-xsRpTxfUnJF8D3AUKko/qyWdjw4GZVHlCVFuGlzSCTeewLmykKINW8em1+wx+axsDVtJJcMtvsiaXggXxrlHgw=="], + + "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.58.0", "", { "os": "linux", "cpu": "none" }, "sha512-Z4AYOTcy7nYEIiXwD62PlerimyYRcfJOgUbQAEBjXz098kxKuERBlRntofGy69HHhe9E0TLVNMl1yspVNu+efw=="], + + "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.58.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-A3nhhtZPC/TKVWOPj9q/H3p2znJDCcHWYlJBhWL8hGq/bFmBaNBHC8Np6E581yVq1w9Mi3rMDNzDalWvtUfJtQ=="], + + "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2g+tVkgwqphw8R4hgo+kF4oz8+P5RwVOtr9+irsC7uwEp0e9j7Crw8kDGKL20uYlLPD7g02DqA61mC/UNYx98A=="], + + "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.58.0", "", { "os": "linux", "cpu": "x64" }, "sha512-rc15P6AbyyB7426aN8AakLd02Trb3a6ML/mmfAQeVHJEfVofWLcWIrBdy6zDEY+DIaL/s8E4GGPboVw+oP3+EA=="], + + "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.58.0", "", { "os": "none", "cpu": "arm64" }, "sha512-ZWoTM27/HYPOh9iq86DAbhPu9nXb8qKvvGU/h8OfliyVUFAMMNTLDkGsWDKKnDqIkqvZ9+dXlgUOsH1LYO3O7g=="], + + "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.58.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-LHZnqFXe2dEfkRI4XdZS/57nEOT/I4UCRX5IyM9v4GYW9XwQCjGe1IUK59SuKw3POwvcgWQ4pme2cYXmNqTNPg=="], + + "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.58.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-mZKpg20TpheCJym1rarcZCUJeW1sSruw8zAAaCYWvuVfwIUDN1CXdrPU/JgCWReXTCTrEfCB8Wyo3hh9jSZ2EA=="], + + "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.58.0", "", { "os": "win32", "cpu": "x64" }, "sha512-N/wUU4N5PZ2orBtI+Ko7MnMfYLfE7K91UrGMY/c/pYyHR3lA9kwst1XugkZx+92YcRh/Eo+iv2eTESSWXfiZPA=="], + + "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.73.0", "", { "os": "android", "cpu": "arm" }, "sha512-HZQRN/UMBu+Ut+/9MiAChkbP4qZqrNOWBcNI45vOT40GVhbGR0JgHB87L48D4iAqFQIdVmeQYtV9RF89AjTKkg=="], + + "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.73.0", "", { "os": "android", "cpu": "arm64" }, "sha512-Gp+KJRylv2aW7thRpG5p1KTxZq4ZJFbWowrKzufNq9d3ssl3r3JviYV45/+p+7CN1Nv0zDd1e8Ex0b/HUDq4TQ=="], + + "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.73.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-3de96NdtXhxERMjIz7wsp2HYMY6pMQycGxFWac2mFecAx6VeARF/IqFb1QIaqiCRIdfzBwzTed+pCTCoiS+CYA=="], + + "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.73.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-5zx/uPW32TiaOeVY1dQ/H5iOf0K1HOdFKOJhLqGl4o63+i1fpzoqqu/mKtd7OFgFjNCdhlyTGgjVkQTZm1ELcg=="], + + "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.73.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-qNe4gKHaGnLuZJ8toUg90JAa0S2vTVvDw+0bRi3q1avXZXDT4u5mMeECf3nD4HYrbdn1O7dXqWut4onY/yx/Xg=="], + + "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.73.0", "", { "os": "linux", "cpu": "arm" }, "sha512-cCehYh5hTbfShm/fxTD6wwrGUWIpvX+N5OxmAMhFhDeTGXvw+BeNj889tpxsFQ9ZLatQ6wImuY8tsKLZ+FMz7w=="], + + "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.73.0", "", { "os": "linux", "cpu": "arm" }, "sha512-d5j5GDU/2dMgjVhw7TQT9ITrsIr1Y02KEXKyVGIXUkD+KiaxE9TP65FS2ZdgTBemQvoRL+gSBdbrIm3cQIeacg=="], + + "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.73.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Eyf1SrP3+yR1DI3OJgOY2Pvrr9dWP9TK37xPaDYycwTtlGlI45erJAVIfH5/m/xosDt6BupJYEFi47bvbTuuyw=="], + + "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.73.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-IlT/OJApEDKaMmCooHuncgJZbbCe7T5QIWmTZBEtYscWvzPQuuEinVcid6kwQRVQOUdb7PUCz4jQHnaYXdfJXw=="], + + "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.73.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-L+JYcb/vdg5fmcH08V6o0YYLU28cTH1SPNulwJdvK9NK49aXSkYy6oNpKBmddArVOXYqNepriDGiZ04G54kh1Q=="], + + "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.73.0", "", { "os": "linux", "cpu": "none" }, "sha512-Qtk0g3bKV6OwWjIm7R8kQN1uOZRKQt/MODK2a8QfkwhTpXBD53ozx5XLVWLGDQAVyp2otLW4D2wB98XfAfMPGA=="], + + "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.73.0", "", { "os": "linux", "cpu": "none" }, "sha512-wX0NQKZVxltkAOVmzFcpOaMpdaUvsq1Eqpx9tkAfl71UdkTlSo1R4AdAnGccR1Fm2+TzFgZ22CyyGuZ41RDr/A=="], + + "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.73.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-vPe7UGBMWyiLTtnqS4xxgMQFSFGmtQwhwCxuiw6lXygaO6bVt0D8dFVg8Xv05eaiN3ybC0HXXHUAohFMFvqoCQ=="], + + "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.73.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2CwIWr9cemFC/CbRBWZvuk5mffz6ObmfFkfcC/9rTQ7f+icNhYr2kOjf9Rt8lLvugvkdGDOmkoVoFFHh6ClCTw=="], + + "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.73.0", "", { "os": "linux", "cpu": "x64" }, "sha512-nDadfJgg7NBBxG0N560wOe7LLX5QiYp6qBaI7viuk5EUORFBktU/NfV0MbTqU3gTqQDCh4VyxKdo5VADxk9w8Q=="], + + "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.73.0", "", { "os": "none", "cpu": "arm64" }, "sha512-wGjJC+NLH9xP+IKGn9RDW94ojJR/wPbg5WCnQjj/oReaOtCQthr8ws1zICe77JFmo4ouUdeTHHZL/ESGiF6Pmw=="], + + "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.73.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-I7X47GPGljw225YUQ5SbC/rb1Kkdrd0yQf0x+hYxeKS6DpfjMbo9ccQPQ6LNY6BoJQ1sHhgDUGuMn5Vg5gHT6w=="], + + "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.73.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-5lWj+3h+74Fm1jYOO9qkJA4xkAlZA099DkXppuXsk7UpnpZLttsefrZU469vChGaG6hcSqrkKXQOvMTZtbjeNg=="], + + "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.73.0", "", { "os": "win32", "cpu": "x64" }, "sha512-WaNRvh4f6zY9CvUQk2YoA1O90ieWrIklI84+HXFr9Isjz9CSESrdqo/RtIYt4Dll/cAchqGDMehfaZd0vqEFZw=="], + + "@phosphor-icons/react": ["@phosphor-icons/react@2.1.10", "", { "peerDependencies": { "react": ">= 16.8", "react-dom": ">= 16.8" } }, "sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA=="], + + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.1.5", "", { "os": "android", "cpu": "arm64" }, "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.1.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.1.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.1.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.1.5", "", { "os": "linux", "cpu": "arm" }, "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.1.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA=="], + + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.1.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg=="], + + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.1.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.1.5", "", { "os": "linux", "cpu": "x64" }, "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.1.5", "", { "os": "none", "cpu": "arm64" }, "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw=="], + + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.1.5", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.1.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.1.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.3", "", {}, "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.62.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.62.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.62.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.62.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.62.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.62.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.62.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.62.2", "", { "os": "none", "cpu": "arm64" }, "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.62.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.62.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], + + "@shikijs/core": ["@shikijs/core@4.3.1", "", { "dependencies": { "@shikijs/primitive": "4.3.1", "@shikijs/types": "4.3.1", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-ANMDxuaPsNMdDC1m4vfvhlDmJweMwkE5XitTwrq2rWHx5jM+dlm4MmHt2PP6t0uejfR77SuhrhJ0zEijIF/uhA=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.3.1", "", { "dependencies": { "@shikijs/types": "4.3.1", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" } }, "sha512-JBItcnPuYq7jVJdZo/vMj94r+szT7XEjHFX+mvFDGSEIbVAXAGyHAHzhbWzpGOwYidCZrErJLLgn2PVeiokHnQ=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.3.1", "", { "dependencies": { "@shikijs/types": "4.3.1", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-OXyNMzg0pews+msMj4cHeqT4xiYKKvbnn6VbdAXxfoFl3SSx4fJTc8FadECuc5/H9p3BzhNAoAUXKwAu9rWYhg=="], + + "@shikijs/langs": ["@shikijs/langs@4.3.1", "", { "dependencies": { "@shikijs/types": "4.3.1" } }, "sha512-m0l9nsDqgBHvbZbk7A0/kXz/impK3uB/c6rAn6Gpg/uPtdZRQ+alsN/17MU5thb68XTj/4DxkZAotrM0GGSpDQ=="], + + "@shikijs/primitive": ["@shikijs/primitive@4.3.1", "", { "dependencies": { "@shikijs/types": "4.3.1", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-CXQRQOYy1leqQ8ceTeJdmXv/bsUY++6QyLpXJ94LZAAYj5X2SKRdc5ipguv4NPyGVKItB2PPwUpRNe0Sjh5S1A=="], + + "@shikijs/themes": ["@shikijs/themes@4.3.1", "", { "dependencies": { "@shikijs/types": "4.3.1" } }, "sha512-dgpoJ4WqNi2yTmizQHBJ5zcX6j2lE6icN/0yt4l1kkf16jrY/pwPLoTb1ETsWMz0OBLf9ZNvwmxft+cH+N9qSA=="], + + "@shikijs/types": ["@shikijs/types@4.3.1", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-CHFxE0jztBIZRHH6gxXE7DXUCFXjReEGxZ/j0rfSLGKZuwp2xBYycEP14875DSa9KLL/6700oxIq6oO6ef9K2g=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + + "@tabby_ai/hijri-converter": ["@tabby_ai/hijri-converter@1.0.5", "", {}, "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.3.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "5.21.6", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.2" } }, "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.2", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.2", "@tailwindcss/oxide-darwin-arm64": "4.3.2", "@tailwindcss/oxide-darwin-x64": "4.3.2", "@tailwindcss/oxide-freebsd-x64": "4.3.2", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", "@tailwindcss/oxide-linux-x64-musl": "4.3.2", "@tailwindcss/oxide-wasm32-wasi": "4.3.2", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" } }, "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.2", "", { "os": "android", "cpu": "arm64" }, "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2", "", { "os": "linux", "cpu": "arm" }, "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.2", "", { "dependencies": { "@emnapi/core": "^1.11.1", "@emnapi/runtime": "^1.11.1", "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.2", "", { "os": "win32", "cpu": "x64" }, "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ=="], + + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.2", "", { "dependencies": { "@tailwindcss/node": "4.3.2", "@tailwindcss/oxide": "4.3.2", "tailwindcss": "4.3.2" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA=="], + + "@testing-library/dom": ["@testing-library/dom@8.20.1", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.1.3", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" } }, "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g=="], + + "@testing-library/jest-dom": ["@testing-library/jest-dom@6.9.1", "", { "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", "picocolors": "^1.1.1", "redent": "^3.0.0" } }, "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA=="], + + "@testing-library/react": ["@testing-library/react@16.3.2", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g=="], + + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + + "@types/ace": ["@types/ace@0.0.52", "", {}, "sha512-YPF9S7fzpuyrxru+sG/rrTpZkC6gpHBPF14W3x70kqVOD+ks6jkYLapk4yceh36xej7K4HYxcyz9ZDQ2lTvwgQ=="], + + "@types/aria-query": ["@types/aria-query@5.0.4", "", {}, "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + + "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], + + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/node": ["@types/node@24.13.3", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q=="], + + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.2", "", {}, "sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA=="], + + "@vitejs/plugin-react": ["@vitejs/plugin-react@5.2.0", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw=="], + + "@vitest/coverage-v8": ["@vitest/coverage-v8@4.1.10", "", { "dependencies": { "@bcoe/v8-coverage": "^1.0.2", "@vitest/utils": "4.1.10", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.2.0", "magicast": "^0.5.2", "obug": "^2.1.1", "std-env": "^4.0.0-rc.1", "tinyrainbow": "^3.1.0" }, "peerDependencies": { "@vitest/browser": "4.1.10", "vitest": "4.1.10" }, "optionalPeers": ["@vitest/browser"] }, "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g=="], + + "@vitest/expect": ["@vitest/expect@4.1.10", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.10", "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA=="], + + "@vitest/mocker": ["@vitest/mocker@4.1.10", "", { "dependencies": { "@vitest/spy": "4.1.10", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow=="], + + "@vitest/pretty-format": ["@vitest/pretty-format@4.1.10", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q=="], + + "@vitest/runner": ["@vitest/runner@4.1.10", "", { "dependencies": { "@vitest/utils": "4.1.10", "pathe": "^2.0.3" } }, "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg=="], + + "@vitest/snapshot": ["@vitest/snapshot@4.1.10", "", { "dependencies": { "@vitest/pretty-format": "4.1.10", "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw=="], + + "@vitest/spy": ["@vitest/spy@4.1.10", "", {}, "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw=="], + + "@vitest/utils": ["@vitest/utils@4.1.10", "", { "dependencies": { "@vitest/pretty-format": "4.1.10", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA=="], + + "ace-builds": ["ace-builds@1.44.0", "", {}, "sha512-PFNMSYqFdEUkul2Ntud0HvA09AgY+F1ag0UYdpMH60wNI/qOA8cB8tlTgoALMEwIdUPJK2CjrIQ7OnbiSS/ugQ=="], + + "agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + + "ast-v8-to-istanbul": ["ast-v8-to-istanbul@1.0.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.31", "estree-walker": "^3.0.3", "js-tokens": "^10.0.0" } }, "sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.42", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q=="], + + "bidi-js": ["bidi-js@1.0.3", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="], + + "browserslist": ["browserslist@4.28.5", "", { "dependencies": { "baseline-browser-mapping": "^2.10.42", "caniuse-lite": "^1.0.30001800", "electron-to-chromium": "^1.5.387", "node-releases": "^2.0.50", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ=="], + + "call-bind": ["call-bind@1.0.9", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" } }, "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001803", "", {}, "sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "cnfast": ["cnfast@0.0.8", "", { "bin": { "cnfast": "bin/cli.js" } }, "sha512-EjXKMfGfdwtV4AcNSQ6AwQaVzpC1B7IxeiwA3FlhTXz+YFlMKVi4c1JX9tgD2QOlahQXjB8KUXrBaYG+3v871Q=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="], + + "css.escape": ["css.escape@1.5.1", "", {}, "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="], + + "cssstyle": ["cssstyle@5.3.7", "", { "dependencies": { "@asamuzakjp/css-color": "^4.1.1", "@csstools/css-syntax-patches-for-csstree": "^1.0.21", "css-tree": "^3.1.0", "lru-cache": "^11.2.4" } }, "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "data-urls": ["data-urls@6.0.1", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^15.1.0" } }, "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ=="], + + "date-fns": ["date-fns@4.4.0", "", {}, "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w=="], + + "date-fns-jalali": ["date-fns-jalali@4.1.0-0", "", {}, "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + + "deep-equal": ["deep-equal@2.2.3", "", { "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.5", "es-get-iterator": "^1.1.3", "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "isarray": "^2.0.5", "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", "which-typed-array": "^1.1.13" } }, "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.389", "", {}, "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg=="], + + "enhanced-resolve": ["enhanced-resolve@5.21.6", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ=="], + + "entities": ["entities@8.0.0", "", {}, "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-get-iterator": ["es-get-iterator@1.1.3", "", { "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", "is-string": "^1.0.7", "isarray": "^2.0.5", "stop-iteration-iterator": "^1.0.0" } }, "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw=="], + + "es-module-lexer": ["es-module-lexer@2.3.0", "", {}, "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw=="], + + "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="], + + "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "framer-motion": ["framer-motion@12.42.2", "", { "dependencies": { "motion-dom": "^12.42.2", "motion-utils": "^12.39.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "html-encoding-sniffer": ["html-encoding-sniffer@6.0.0", "", { "dependencies": { "@exodus/bytes": "^1.6.0" } }, "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg=="], + + "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + + "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + + "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], + + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], + + "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], + + "istanbul-reports": ["istanbul-reports@3.2.0", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], + + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "js-tokens": ["js-tokens@10.0.0", "", {}, "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q=="], + + "jsdom": ["jsdom@27.4.0", "", { "dependencies": { "@acemir/cssom": "^0.9.28", "@asamuzakjp/dom-selector": "^6.7.6", "@exodus/bytes": "^1.6.0", "cssstyle": "^5.3.4", "data-urls": "^6.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "parse5": "^8.0.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^8.0.0", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^15.1.0", "ws": "^8.18.3", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + + "lru-cache": ["lru-cache@11.5.2", "", {}, "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g=="], + + "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "magicast": ["magicast@0.5.3", "", { "dependencies": { "@babel/parser": "^7.29.3", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } }, "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw=="], + + "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], + + "motion": ["motion@12.42.2", "", { "dependencies": { "framer-motion": "^12.42.2", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-Atvv11yUKIid41cVrRBDVX5m8tF8kNpExRSlbpt6APClhDjtwQssgFHhQzejxw7/7YYbjHSPKBVbHo05BuJT5Q=="], + + "motion-dom": ["motion-dom@12.42.2", "", { "dependencies": { "motion-utils": "^12.39.0" } }, "sha512-5gIMWLp/PycBtJRJWRgjxke5n8dlvkSn2DrYW+tr3XcqAZY1xZh6BJyooJXCM8wdfM7wfMjkBJNLge1CKPUIRA=="], + + "motion-utils": ["motion-utils@12.39.0", "", {}, "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], + + "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], + + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "object-is": ["object-is@1.1.6", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" } }, "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q=="], + + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "obug": ["obug@2.1.3", "", {}, "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg=="], + + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], + + "oxfmt": ["oxfmt@0.58.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.58.0", "@oxfmt/binding-android-arm64": "0.58.0", "@oxfmt/binding-darwin-arm64": "0.58.0", "@oxfmt/binding-darwin-x64": "0.58.0", "@oxfmt/binding-freebsd-x64": "0.58.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.58.0", "@oxfmt/binding-linux-arm-musleabihf": "0.58.0", "@oxfmt/binding-linux-arm64-gnu": "0.58.0", "@oxfmt/binding-linux-arm64-musl": "0.58.0", "@oxfmt/binding-linux-ppc64-gnu": "0.58.0", "@oxfmt/binding-linux-riscv64-gnu": "0.58.0", "@oxfmt/binding-linux-riscv64-musl": "0.58.0", "@oxfmt/binding-linux-s390x-gnu": "0.58.0", "@oxfmt/binding-linux-x64-gnu": "0.58.0", "@oxfmt/binding-linux-x64-musl": "0.58.0", "@oxfmt/binding-openharmony-arm64": "0.58.0", "@oxfmt/binding-win32-arm64-msvc": "0.58.0", "@oxfmt/binding-win32-ia32-msvc": "0.58.0", "@oxfmt/binding-win32-x64-msvc": "0.58.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-8feG/7NVEHDVwc1OUpP6Pks+TnaDFUw2jLLFIMi5bcmmwxAX2wBQvjSzj62RRTYBf2Op1Wt8xbkmagmPTR5ETg=="], + + "oxlint": ["oxlint@1.73.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.73.0", "@oxlint/binding-android-arm64": "1.73.0", "@oxlint/binding-darwin-arm64": "1.73.0", "@oxlint/binding-darwin-x64": "1.73.0", "@oxlint/binding-freebsd-x64": "1.73.0", "@oxlint/binding-linux-arm-gnueabihf": "1.73.0", "@oxlint/binding-linux-arm-musleabihf": "1.73.0", "@oxlint/binding-linux-arm64-gnu": "1.73.0", "@oxlint/binding-linux-arm64-musl": "1.73.0", "@oxlint/binding-linux-ppc64-gnu": "1.73.0", "@oxlint/binding-linux-riscv64-gnu": "1.73.0", "@oxlint/binding-linux-riscv64-musl": "1.73.0", "@oxlint/binding-linux-s390x-gnu": "1.73.0", "@oxlint/binding-linux-x64-gnu": "1.73.0", "@oxlint/binding-linux-x64-musl": "1.73.0", "@oxlint/binding-openharmony-arm64": "1.73.0", "@oxlint/binding-win32-arm64-msvc": "1.73.0", "@oxlint/binding-win32-ia32-msvc": "1.73.0", "@oxlint/binding-win32-x64-msvc": "1.73.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.24.0", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-u91G9TJzU6yqKWNZUYprQB07W7YvntZXaRxQ6CkoytepYhLWUXWsr1M8zUJ34VatNPuUAr3Z8GH+O2A331CluQ=="], + + "parse5": ["parse5@8.0.1", "", { "dependencies": { "entities": "^8.0.0" } }, "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "postcss": ["postcss@8.5.16", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg=="], + + "pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="], + + "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-day-picker": ["react-day-picker@9.14.0", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "@tabby_ai/hijri-converter": "1.0.5", "date-fns": "^4.1.0", "date-fns-jalali": "4.1.0-0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + + "react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], + + "react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="], + + "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], + + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + + "reselect": ["reselect@5.2.0", "", {}, "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw=="], + + "rolldown": ["rolldown@1.1.5", "", { "dependencies": { "@oxc-project/types": "=0.139.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.5", "@rolldown/binding-darwin-arm64": "1.1.5", "@rolldown/binding-darwin-x64": "1.1.5", "@rolldown/binding-freebsd-x64": "1.1.5", "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", "@rolldown/binding-linux-arm64-gnu": "1.1.5", "@rolldown/binding-linux-arm64-musl": "1.1.5", "@rolldown/binding-linux-ppc64-gnu": "1.1.5", "@rolldown/binding-linux-s390x-gnu": "1.1.5", "@rolldown/binding-linux-x64-gnu": "1.1.5", "@rolldown/binding-linux-x64-musl": "1.1.5", "@rolldown/binding-openharmony-arm64": "1.1.5", "@rolldown/binding-wasm32-wasi": "1.1.5", "@rolldown/binding-win32-arm64-msvc": "1.1.5", "@rolldown/binding-win32-x64-msvc": "1.1.5" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA=="], + + "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "shiki": ["shiki@4.3.1", "", { "dependencies": { "@shikijs/core": "4.3.1", "@shikijs/engine-javascript": "4.3.1", "@shikijs/engine-oniguruma": "4.3.1", "@shikijs/langs": "4.3.1", "@shikijs/themes": "4.3.1", "@shikijs/types": "4.3.1", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-oR+qDVi2OjX1tmDpyv+3KviX01KzO6Af+0NNnKnsp9491UEGz2YpxTuJboS/6VhYpTdqzmuJBuiTlrAWWJAssw=="], + + "side-channel": ["side-channel@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4", "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="], + + "side-channel-list": ["side-channel-list@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4" } }, "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], + + "std-env": ["std-env@4.2.0", "", {}, "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw=="], + + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + + "tailwindcss": ["tailwindcss@4.3.2", "", {}, "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + + "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "tinypool": ["tinypool@2.1.0", "", {}, "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw=="], + + "tinyrainbow": ["tinyrainbow@3.1.0", "", {}, "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw=="], + + "tldts": ["tldts@7.4.7", "", { "dependencies": { "tldts-core": "^7.4.7" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-56L0/9HELHSsG1bFCzay8UoLxzRL7kpFf7Wl5q/kSYwiSJGACvro61xnKzPNM+SadxllzdtXsKDSXE7HPeqIAw=="], + + "tldts-core": ["tldts-core@7.4.7", "", {}, "sha512-rNlAI8fKn/JckBMUSbNL/ES2kmDiurWaE49l+ikwEc9A6lFR7gMx9AhgQMQKBK4H5w4pKLH64JzZfB99uRsGNQ=="], + + "tough-cookie": ["tough-cookie@6.0.2", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA=="], + + "tr46": ["tr46@6.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@8.1.4", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", "postcss": "^8.5.16", "rolldown": "~1.1.4", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ=="], + + "vitest": ["vitest@4.1.10", "", { "dependencies": { "@vitest/expect": "4.1.10", "@vitest/mocker": "4.1.10", "@vitest/pretty-format": "4.1.10", "@vitest/runner": "4.1.10", "@vitest/snapshot": "4.1.10", "@vitest/spy": "4.1.10", "@vitest/utils": "4.1.10", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.10", "@vitest/browser-preview": "4.1.10", "@vitest/browser-webdriverio": "4.1.10", "@vitest/coverage-istanbul": "4.1.10", "@vitest/coverage-v8": "4.1.10", "@vitest/ui": "4.1.10", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw=="], + + "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + + "webidl-conversions": ["webidl-conversions@8.0.1", "", {}, "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ=="], + + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], + + "whatwg-url": ["whatwg-url@15.1.0", "", { "dependencies": { "tr46": "^6.0.0", "webidl-conversions": "^8.0.0" } }, "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g=="], + + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.22", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.9", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw=="], + + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + + "ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="], + + "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], + + "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/code-frame/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.2", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" }, "bundled": true }, "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@testing-library/dom/aria-query": ["aria-query@5.1.3", "", { "dependencies": { "deep-equal": "^2.0.5" } }, "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ=="], + + "@testing-library/dom/dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="], + + "data-urls/whatwg-mimetype": ["whatwg-mimetype@5.0.0", "", {}, "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw=="], + + "make-dir/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + + "rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], + + "vitest/vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], + } +} diff --git a/playground/index.html b/playground/index.html new file mode 100644 index 0000000000..67a622b658 --- /dev/null +++ b/playground/index.html @@ -0,0 +1,21 @@ + + + + + + Cog Playground + + + +
+ + + diff --git a/playground/package.json b/playground/package.json new file mode 100644 index 0000000000..7a78ca4f8c --- /dev/null +++ b/playground/package.json @@ -0,0 +1,42 @@ +{ + "name": "@replicate/cog-playground", + "private": true, + "type": "module", + "scripts": { + "build": "tsc --noEmit && vite build", + "dev": "vite", + "fmt": "oxfmt", + "fmt:check": "oxfmt --check", + "lint": "oxlint", + "lint:fix": "oxlint --fix", + "test": "vitest run", + "test:coverage": "vitest run --coverage", + "test:watch": "vitest", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@cloudflare/kumo": "^2.7.0", + "@phosphor-icons/react": "^2.1.10", + "ace-builds": "^1.43.6", + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.1.17", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@types/ace": "^0.0.52", + "@types/node": "^24.10.1", + "@types/react": "^19.2.2", + "@types/react-dom": "^19.2.2", + "@vitejs/plugin-react": "^5.1.2", + "@vitest/coverage-v8": "^4.0.8", + "jsdom": "^27.2.0", + "oxfmt": "^0.58.0", + "oxlint": "^1.50.0", + "tailwindcss": "^4.1.17", + "typescript": "^5.9.3", + "vite": "^8.1.4", + "vitest": "^4.0.8" + } +} diff --git a/playground/src/ace-builds.d.ts b/playground/src/ace-builds.d.ts new file mode 100644 index 0000000000..8443c94e01 --- /dev/null +++ b/playground/src/ace-builds.d.ts @@ -0,0 +1,6 @@ +declare module "ace-builds/src-noconflict/ace" { + const ace: AceAjax.Ace; + export default ace; +} + +declare module "ace-builds/src-noconflict/mode-json"; diff --git a/playground/src/api/cog.test.ts b/playground/src/api/cog.test.ts new file mode 100644 index 0000000000..9d5642f56d --- /dev/null +++ b/playground/src/api/cog.test.ts @@ -0,0 +1,167 @@ +import { afterEach, describe, expect, it, vi } from "vitest"; + +import { CogApi, parseSSE } from "./cog"; + +const signal = new AbortController().signal; + +describe("CogApi", () => { + afterEach(() => vi.unstubAllGlobals()); + + it("submits asynchronous predictions through the proxy", async () => { + const fetch = vi.fn().mockResolvedValue(jsonResponse({ id: "p1", status: "starting" })); + vi.stubGlobal("fetch", fetch); + const api = new CogApi(); + api.setTarget("http://localhost:5000/"); + + await expect( + api.submit({ + endpoint: "/predictions", + id: "custom/id", + input: { prompt: "hello" }, + signal, + async: true, + webhook: "http://callback/webhook/token", + webhookEvents: ["start", "completed"], + }), + ).resolves.toMatchObject({ id: "p1" }); + + const [url, request] = fetch.mock.calls[0] as [string, RequestInit]; + expect(url).toBe("/proxy/predictions/custom%2Fid"); + expect(request.method).toBe("PUT"); + expect(new Headers(request.headers).get("X-Cog-Target")).toBe("http://localhost:5000"); + expect(new Headers(request.headers).get("Prefer")).toBe("respond-async"); + expect(JSON.parse(String(request.body))).toEqual({ + input: { prompt: "hello" }, + webhook: "http://callback/webhook/token", + webhook_events_filter: ["start", "completed"], + }); + }); + + it.each([ + [jsonResponse({ error: "model unavailable" }, 503), "model unavailable"], + [jsonResponse({ detail: "bad input" }, 422), "bad input"], + [new Response("proxy failed", { status: 502 }), "proxy failed"], + [new Response(null, { status: 500 }), "HTTP 500"], + ])("preserves useful HTTP errors", async (response, message) => { + vi.stubGlobal("fetch", vi.fn().mockResolvedValue(response)); + const api = new CogApi(); + + await expect(api.health()).rejects.toMatchObject({ status: response.status, message }); + }); + + it("preserves validation details", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue(jsonResponse({ detail: [{ loc: ["input"] }] }, 422)), + ); + const api = new CogApi(); + + await expect(api.schema()).rejects.toMatchObject({ detail: [{ loc: ["input"] }] }); + }); + + it("parses chunked CRLF SSE frames and preserves raw frames", async () => { + const body = streamBody([ + "event: start\r", + '\ndata: {"id":"p1"}\r\n\r', + '\nevent: output\r\ndata: {"chunk":"hello"}\r\n\r\nevent: completed\r\ndata: {"status":"succeeded"}', + ]); + vi.stubGlobal( + "fetch", + vi + .fn() + .mockResolvedValue( + new Response(body, { headers: { "Content-Type": "text/event-stream" } }), + ), + ); + const api = new CogApi(); + const events = []; + + for await (const event of api.stream({ endpoint: "/predictions", input: {}, signal })) + events.push(event); + + expect(events).toEqual([ + { type: "start", data: { id: "p1" }, raw: 'event: start\ndata: {"id":"p1"}' }, + { type: "output", data: { chunk: "hello" }, raw: 'event: output\ndata: {"chunk":"hello"}' }, + { + type: "completed", + data: { status: "succeeded" }, + raw: 'event: completed\ndata: {"status":"succeeded"}', + }, + ]); + }); + + it("rejects failed and bodyless streams", async () => { + vi.stubGlobal("fetch", vi.fn().mockResolvedValue(new Response("busy", { status: 409 }))); + const api = new CogApi(); + await expect( + collect(api.stream({ endpoint: "/predictions", input: {}, signal })), + ).rejects.toMatchObject({ + status: 409, + message: "busy", + }); + + vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, body: null })); + await expect( + collect(api.stream({ endpoint: "/predictions", input: {}, signal })), + ).rejects.toThrow("Streaming response has no body"); + }); + + it("rejects oversized SSE events", async () => { + vi.stubGlobal( + "fetch", + vi + .fn() + .mockResolvedValue( + new Response(streamBody([`event: output\ndata: ${"x".repeat(1024 * 1024)}`])), + ), + ); + const api = new CogApi(); + + await expect( + collect(api.stream({ endpoint: "/predictions", input: {}, signal })), + ).rejects.toThrow("SSE event is too large"); + }); +}); + +describe("parseSSE", () => { + it("joins non-JSON data lines", () => { + expect(parseSSE("event: log\ndata: first\ndata: second")).toMatchObject({ + type: "log", + data: { value: "first\nsecond" }, + }); + }); + + it("preserves primitive JSON data", () => { + expect(parseSSE("event: output\ndata: 42")).toMatchObject({ + type: "output", + data: { value: 42 }, + }); + }); + + it("ignores frames without an event type", () => { + expect(parseSSE("data: no-event")).toBeUndefined(); + }); +}); + +function jsonResponse(body: unknown, status = 200): Response { + return new Response(JSON.stringify(body), { + status, + headers: { "Content-Type": "application/json" }, + }); +} + +function streamBody(chunks: string[]): ReadableStream { + const encoder = new TextEncoder(); + return new ReadableStream({ + start(controller) { + chunks.forEach((chunk) => controller.enqueue(encoder.encode(chunk))); + controller.close(); + }, + }); +} + +async function collect(stream: AsyncIterable): Promise { + const events: T[] = []; + for await (const event of stream) events.push(event); + return events; +} diff --git a/playground/src/api/cog.ts b/playground/src/api/cog.ts new file mode 100644 index 0000000000..4983cf12bc --- /dev/null +++ b/playground/src/api/cog.ts @@ -0,0 +1,212 @@ +import type { + HealthResponse, + JsonObject, + JsonValue, + OpenAPIDocument, + PredictionEnvelope, + StreamEvent, +} from "../domain/types"; + +const PROXY_PREFIX = "/proxy"; +const MAX_SSE_FRAME_LENGTH = 1024 * 1024; + +type SubmitOptions = { + endpoint: string; + id?: string; + input: Record; + signal: AbortSignal; + async?: boolean; + webhook?: string; + webhookEvents?: string[]; + onResponse?: (response: Response) => void; +}; + +type StreamOptions = Pick; + +export class HttpError extends Error { + constructor( + message: string, + readonly status: number, + readonly detail?: unknown[], + ) { + super(message); + } +} + +export class CogApi { + #target = ""; + + setTarget(target: string): void { + this.#target = target.trim().replace(/\/+$/, ""); + } + + async config(): Promise<{ webhookBase?: string }> { + const response = await fetch("/config"); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + return response.json() as Promise<{ webhookBase?: string }>; + } + + async health(): Promise { + return this.#jsonRequest("/health-check"); + } + + async schema(): Promise { + return this.#jsonRequest("/openapi.json"); + } + + async submit(options: SubmitOptions): Promise { + const headers = this.#headers({ "Content-Type": "application/json" }); + if (options.async) headers.set("Prefer", "respond-async"); + const response = await fetch(this.#url(options.endpoint, options.id), { + method: options.id ? "PUT" : "POST", + headers, + body: JSON.stringify(this.#body(options.input, options.webhook, options.webhookEvents)), + signal: options.signal, + }); + options.onResponse?.(response); + return parseResponse(response); + } + + async *stream(options: StreamOptions): AsyncGenerator { + const response = await fetch(this.#url(options.endpoint, options.id), { + method: options.id ? "PUT" : "POST", + headers: this.#headers({ "Content-Type": "application/json", Accept: "text/event-stream" }), + body: JSON.stringify(this.#body(options.input)), + signal: options.signal, + }); + options.onResponse?.(response); + if (!response.ok) throw await responseError(response); + if (!response.body) throw new Error("Streaming response has no body"); + + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + let done = false; + try { + for (;;) { + const chunk = await reader.read(); + done = chunk.done; + buffer += decoder.decode(chunk.value, { stream: !done }); + buffer = normalizeSSELines(buffer, done); + let separator = buffer.indexOf("\n\n"); + while (separator >= 0) { + if (separator > MAX_SSE_FRAME_LENGTH) throw new Error("SSE event is too large"); + const raw = buffer.slice(0, separator); + buffer = buffer.slice(separator + 2); + const event = parseSSE(raw); + if (event) yield event; + separator = buffer.indexOf("\n\n"); + } + if (buffer.length > MAX_SSE_FRAME_LENGTH) throw new Error("SSE event is too large"); + if (done) break; + } + if (buffer.trim()) { + const event = parseSSE(buffer); + if (event) yield event; + } + } finally { + if (!done) await reader.cancel(); + reader.releaseLock(); + } + } + + async cancel(endpoint: string, id: string, signal?: AbortSignal): Promise { + const response = await fetch(`${PROXY_PREFIX}${endpoint}/${encodeURIComponent(id)}/cancel`, { + method: "POST", + headers: this.#headers(), + signal, + }); + if (!response.ok) throw await responseError(response); + } + + #url(endpoint: string, id?: string): string { + return id ? `${PROXY_PREFIX}${endpoint}/${encodeURIComponent(id)}` : PROXY_PREFIX + endpoint; + } + + #headers(values?: HeadersInit): Headers { + const headers = new Headers(values); + headers.set("X-Cog-Target", this.#target); + return headers; + } + + #body( + input: Record, + webhook?: string, + webhookEvents?: string[], + ): { input: Record; webhook?: string; webhook_events_filter?: string[] } { + return webhook ? { input, webhook, webhook_events_filter: webhookEvents } : { input }; + } + + async #jsonRequest(endpoint: string): Promise { + const response = await fetch(PROXY_PREFIX + endpoint, { headers: this.#headers() }); + if (!response.ok) throw await responseError(response); + return response.json() as Promise; + } +} + +function normalizeSSELines(buffer: string, done: boolean): string { + const trailingCR = !done && buffer.endsWith("\r"); + const complete = trailingCR ? buffer.slice(0, -1) : buffer; + return complete.replaceAll("\r\n", "\n").replaceAll("\r", "\n") + (trailingCR ? "\r" : ""); +} + +export function parseSSE(raw: string): StreamEvent | undefined { + let type = ""; + const data: string[] = []; + for (const line of raw.split("\n")) { + if (line.startsWith("event:")) type = line.slice(6).trim(); + if (line.startsWith("data:")) data.push(line.slice(5).replace(/^ /, "")); + } + if (!type) return undefined; + const joined = data.join("\n"); + let parsed: JsonObject = { value: joined }; + try { + const value: unknown = JSON.parse(joined); + parsed = isJsonObject(value) ? value : { value: isJsonValue(value) ? value : joined }; + } catch { + // Preserve non-JSON event payloads. + } + return { type, data: parsed, raw }; +} + +function isJsonObject(value: unknown): value is JsonObject { + return typeof value === "object" && value !== null && !Array.isArray(value); +} + +function isJsonValue(value: unknown): value is JsonValue { + if (value === null || ["boolean", "number", "string"].includes(typeof value)) return true; + if (Array.isArray(value)) return value.every(isJsonValue); + return isJsonObject(value) && Object.values(value).every(isJsonValue); +} + +export function fileToDataURI(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(String(reader.result)); + reader.onerror = () => reject(reader.error ?? new Error("Could not read file")); + reader.readAsDataURL(file); + }); +} + +async function parseResponse(response: Response): Promise { + if (!response.ok) throw await responseError(response); + return response.json() as Promise; +} + +async function responseError(response: Response): Promise { + const text = await response.text(); + let body: JsonObject = {}; + try { + const parsed: unknown = JSON.parse(text); + body = isJsonObject(parsed) ? parsed : {}; + } catch { + // Use the response text below. + } + const detail = Array.isArray(body.detail) ? body.detail : undefined; + const message = + (typeof body.error === "string" && body.error) || + (typeof body.detail === "string" && body.detail) || + text || + `HTTP ${response.status}`; + return new HttpError(message, response.status, detail); +} diff --git a/playground/src/app/App.tsx b/playground/src/app/App.tsx new file mode 100644 index 0000000000..1143191b25 --- /dev/null +++ b/playground/src/app/App.tsx @@ -0,0 +1,250 @@ +import { Button } from "@cloudflare/kumo/components/button"; +import { useEffect, useMemo, useState } from "react"; + +import { CogApi } from "@/api/cog"; +import { SegmentedTabs } from "@/components/SegmentedTabs"; +import { StatusBadge } from "@/components/StatusBadge"; +import { defaultInput } from "@/domain/schema"; +import type { InputMode, RunMode } from "@/domain/types"; +import { LazyJsonEditor } from "@/editor/LazyJsonEditor"; +import { ConnectionBar } from "@/features/connection/ConnectionBar"; +import { SetupPanel } from "@/features/connection/SetupPanel"; +import { useConnection } from "@/features/connection/useConnection"; +import { InputForm } from "@/features/inputs/InputForm"; +import { OutputPanel } from "@/features/predictions/OutputPanel"; +import { RunToolbar } from "@/features/predictions/RunToolbar"; +import { usePrediction } from "@/features/predictions/usePrediction"; +import { WebhookOptions } from "@/features/predictions/WebhookOptions"; +import { currentTheme, setTheme, type ThemeMode } from "@/theme"; + +export function App() { + const api = useMemo(() => new CogApi(), []); + const connection = useConnection(api); + const prediction = usePrediction(api); + const [input, setInput] = useState>({}); + const [jsonInput, setJsonInput] = useState("{}"); + const [jsonError, setJsonError] = useState(""); + const [inputMode, setInputMode] = useState("form"); + const [runMode, setRunMode] = useState("sync"); + const [predictionId, setPredictionId] = useState(""); + const [formBusy, setFormBusy] = useState(false); + const [formValid, setFormValid] = useState(true); + const [theme, setThemeState] = useState(currentTheme()); + const [webhookEvents, setWebhookEvents] = useState(["start", "output", "logs", "completed"]); + const { schema, capabilities } = connection; + const resetPrediction = prediction.reset; + + useEffect(() => { + if (!schema || !capabilities) return; + const defaults = defaultInput(schema, capabilities.input); + setInput(defaults); + setJsonInput(JSON.stringify(defaults, null, 2)); + setRunMode(capabilities.streaming ? "stream" : "sync"); + resetPrediction(); + }, [capabilities, resetPrediction, schema]); + + const run = () => { + if (!connection.capabilities) return; + let nextInput = input; + if (inputMode === "json") { + try { + nextInput = parseInputObject(jsonInput); + setJsonError(""); + } catch (error) { + setJsonError(errorMessage(error)); + return; + } + } + void prediction.run({ + endpoint: connection.capabilities.endpoint, + predictionId: predictionId.trim() || undefined, + input: nextInput, + mode: runMode, + webhookBase: connection.webhookBase, + webhookEvents, + }); + }; + + const reset = () => { + if (!connection.schema || !connection.capabilities) return; + const defaults = defaultInput(connection.schema, connection.capabilities.input); + setInput(defaults); + setJsonInput(JSON.stringify(defaults, null, 2)); + setPredictionId(""); + setJsonError(""); + prediction.reset(); + }; + + const changeInputMode = (next: string) => { + if (next === inputMode) return; + if (next === "json") { + setJsonInput(JSON.stringify(input, null, 2)); + setInputMode("json"); + return; + } + try { + setInput(parseInputObject(jsonInput)); + setJsonError(""); + setInputMode("form"); + } catch (error) { + setJsonError(errorMessage(error)); + } + }; + + const toggleTheme = () => { + const next = theme === "dark" ? "light" : "dark"; + setTheme(next); + setThemeState(next); + }; + + const version = [ + connection.health.version?.coglet && `coglet ${connection.health.version.coglet}`, + connection.health.version?.cog && `cog ${connection.health.version.cog}`, + connection.health.version?.python && `py ${connection.health.version.python}`, + ] + .filter(Boolean) + .join(" · "); + const runnable = Boolean( + connection.schema && connection.capabilities && !formBusy && formValid && !prediction.running, + ); + + return ( + <> +
+

Cog Playground

+ + + {version} + + + Schema + +
+ + + void prediction.stop()} + onReset={reset} + /> + {runMode === "async" && ( + + )} + + +
+
+
+

Input

+ +
+ {connection.schemaError && ( + {connection.schemaError} + )} + {prediction.error && ( +
+ {prediction.error} +
+ )} + {connection.schema && connection.capabilities && inputMode === "form" && ( + + )} + {inputMode === "json" && ( +
+ + {jsonError && {jsonError}} + +
+ )} +
+ +
+ + ); +} + +function formatJSON( + value: string, + onChange: (value: string) => void, + onError: (error: string) => void, +) { + try { + onChange(JSON.stringify(JSON.parse(value), null, 2)); + onError(""); + } catch (error) { + onError(errorMessage(error)); + } +} + +function errorMessage(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} + +function parseInputObject(value: string): Record { + const parsed: unknown = JSON.parse(value); + if (!isInputObject(parsed)) { + throw new Error("Input must be a JSON object"); + } + return parsed; +} + +function isInputObject(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} diff --git a/playground/src/components/SegmentedTabs.test.tsx b/playground/src/components/SegmentedTabs.test.tsx new file mode 100644 index 0000000000..27e4fbb63e --- /dev/null +++ b/playground/src/components/SegmentedTabs.test.tsx @@ -0,0 +1,29 @@ +import { fireEvent, render, screen } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; + +import { SegmentedTabs } from "./SegmentedTabs"; + +describe("SegmentedTabs", () => { + it("reports the selected Kumo tab", () => { + const onChange = vi.fn(); + render( + , + ); + + const form = screen.getByRole("tab", { name: "Form" }); + const json = screen.getByRole("tab", { name: "JSON" }); + expect(form).toHaveAttribute("aria-selected", "true"); + expect(json).toHaveAttribute("aria-selected", "false"); + + fireEvent.click(json); + expect(onChange).toHaveBeenCalledWith("json"); + }); +}); diff --git a/playground/src/components/SegmentedTabs.tsx b/playground/src/components/SegmentedTabs.tsx new file mode 100644 index 0000000000..af7637d57f --- /dev/null +++ b/playground/src/components/SegmentedTabs.tsx @@ -0,0 +1,21 @@ +import { Tabs } from "@cloudflare/kumo/components/tabs"; + +type TabItem = { + value: string; + label: string; +}; + +type Props = { + label: string; + items: TabItem[]; + value: string; + onChange: (value: string) => void; +}; + +export function SegmentedTabs({ label, items, value, onChange }: Props) { + return ( +
+ +
+ ); +} diff --git a/playground/src/components/StatusBadge.tsx b/playground/src/components/StatusBadge.tsx new file mode 100644 index 0000000000..68ec606ebe --- /dev/null +++ b/playground/src/components/StatusBadge.tsx @@ -0,0 +1,22 @@ +import { Badge, type BadgeVariant } from "@cloudflare/kumo/components/badge"; + +export function StatusBadge({ status }: { status?: string }) { + const normalized = status?.toLowerCase() || "unknown"; + const variants: Record = { + ready: "success", + succeeded: "success", + busy: "warning", + starting: "warning", + processing: "warning", + failed: "error", + error: "error", + unreachable: "error", + canceled: "secondary", + unknown: "secondary", + }; + return ( + + {normalized} + + ); +} diff --git a/playground/src/domain/schema.test.ts b/playground/src/domain/schema.test.ts new file mode 100644 index 0000000000..899d7f3f9b --- /dev/null +++ b/playground/src/domain/schema.test.ts @@ -0,0 +1,98 @@ +import { describe, expect, it } from "vitest"; + +import { + constraintText, + defaultInput, + effectiveSchema, + enumValues, + inputAndOutputSchemas, + orderedProperties, +} from "./schema"; +import type { OpenAPIDocument } from "./types"; + +const document: OpenAPIDocument = { + components: { + schemas: { + Choice: { enum: [1, 2] }, + Input: { + required: ["prompt", "enabled", "choice"], + properties: { + late: { type: "string", "x-order": 2 }, + prompt: { type: "string", default: "hello", "x-order": 1 }, + optional: { type: "boolean", default: false }, + enabled: { type: "boolean" }, + choice: { allOf: [{ $ref: "#/components/schemas/Choice" }] }, + }, + }, + Output: { type: "string" }, + }, + }, + paths: { + "/predictions": { post: { "x-cog-streaming": true } }, + "/predictions/{prediction_id}/cancel": {}, + }, +}; + +describe("schema helpers", () => { + it("resolves nullable references without losing metadata", () => { + expect( + effectiveSchema(document, { + title: "Nullable choice", + anyOf: [{ $ref: "#/components/schemas/Choice" }, { type: "null" }], + }), + ).toEqual({ title: "Nullable choice", enum: [1, 2] }); + }); + + it("initializes explicit defaults and required controls", () => { + const input = document.components?.schemas?.Input ?? {}; + expect(orderedProperties(input).map(([name]) => name)).toEqual([ + "prompt", + "late", + "optional", + "enabled", + "choice", + ]); + expect(defaultInput(document, input)).toEqual({ + prompt: "hello", + optional: false, + enabled: false, + choice: 1, + }); + }); + + it("discovers enums from direct and composed schemas", () => { + expect(enumValues(document, { $ref: "#/components/schemas/Choice" })).toEqual([1, 2]); + expect(enumValues(document, { allOf: [{ $ref: "#/components/schemas/Choice" }] })).toEqual([ + 1, 2, + ]); + }); + + it("derives prediction capabilities", () => { + expect(inputAndOutputSchemas(document)).toMatchObject({ + endpoint: "/predictions", + streaming: true, + async: true, + input: document.components?.schemas?.Input, + }); + }); + + it("derives training capabilities", () => { + const training: OpenAPIDocument = { + components: { + schemas: { TrainingInput: { type: "object" }, TrainingOutput: { type: "object" } }, + }, + paths: { "/trainings": { post: {} } }, + }; + expect(inputAndOutputSchemas(training)).toMatchObject({ + endpoint: "/trainings", + streaming: false, + async: false, + }); + }); + + it("formats constraints", () => { + expect( + constraintText({ minimum: 1, maximum: 9, minLength: 2, maxLength: 10, pattern: "^[a-z]+$" }), + ).toBe("min 1 · max 9 · min 2 chars · max 10 chars · pattern: ^[a-z]+$"); + }); +}); diff --git a/playground/src/domain/schema.ts b/playground/src/domain/schema.ts new file mode 100644 index 0000000000..8b0c1c1fd6 --- /dev/null +++ b/playground/src/domain/schema.ts @@ -0,0 +1,94 @@ +import type { OpenAPIDocument, OpenAPISchema } from "./types"; + +const REF_PREFIX = "#/components/schemas/"; + +export function resolveRef(root: OpenAPIDocument, value: OpenAPISchema): OpenAPISchema { + if (!value.$ref?.startsWith(REF_PREFIX)) return value; + return root.components?.schemas?.[value.$ref.slice(REF_PREFIX.length)] ?? value; +} + +export function effectiveSchema(root: OpenAPIDocument, value: OpenAPISchema): OpenAPISchema { + let schema = resolveRef(root, value); + if (!schema.anyOf) return schema; + const nonNull = schema.anyOf + .map((item) => resolveRef(root, item)) + .filter((item) => item.type !== "null"); + if (nonNull.length !== 1) return schema; + const merged: OpenAPISchema = { ...schema, ...nonNull[0] }; + delete merged.anyOf; + return merged; +} + +export function enumValues(root: OpenAPIDocument, value: OpenAPISchema): unknown[] | undefined { + const schema = effectiveSchema(root, value); + if (schema.enum) return schema.enum; + for (const item of schema.allOf ?? []) { + const resolved = resolveRef(root, item); + if (resolved.enum) return resolved.enum; + } + return undefined; +} + +export function defaultInput( + root: OpenAPIDocument, + schema: OpenAPISchema, +): Record { + const result: Record = {}; + const required = new Set(schema.required ?? []); + for (const [name, raw] of orderedProperties(schema)) { + const property = effectiveSchema(root, raw); + if (property.default !== undefined && property.default !== null) { + result[name] = property.default; + continue; + } + if (!required.has(name)) continue; + const choices = enumValues(root, property); + if (choices?.length) result[name] = choices[0]; + else if (property.type === "boolean") result[name] = false; + } + return result; +} + +export function orderedProperties(schema: OpenAPISchema): [string, OpenAPISchema][] { + return Object.entries(schema.properties ?? {}).sort(([, left], [, right]) => { + const leftOrder = typeof left["x-order"] === "number" ? left["x-order"] : 999; + const rightOrder = typeof right["x-order"] === "number" ? right["x-order"] : 999; + return leftOrder - rightOrder; + }); +} + +export function constraintText(schema: OpenAPISchema): string { + const parts: string[] = []; + if (schema.minimum !== undefined) parts.push(`min ${schema.minimum}`); + if (schema.maximum !== undefined) parts.push(`max ${schema.maximum}`); + if (schema.minLength !== undefined) parts.push(`min ${schema.minLength} chars`); + if (schema.maxLength !== undefined) parts.push(`max ${schema.maxLength} chars`); + if (schema.pattern) parts.push(`pattern: ${schema.pattern}`); + return parts.join(" · "); +} + +export type PlaygroundSchemas = { + endpoint: "/predictions" | "/trainings"; + input: OpenAPISchema; + output: OpenAPISchema; + streaming: boolean; + async: boolean; +}; + +export function inputAndOutputSchemas(document: OpenAPIDocument): PlaygroundSchemas { + const schemas = document.components?.schemas ?? {}; + const training = Boolean(document.paths?.["/trainings"]); + const endpoint = training ? "/trainings" : "/predictions"; + const input = resolveRef(document, schemas[training ? "TrainingInput" : "Input"] ?? {}); + const output = resolveRef(document, schemas[training ? "TrainingOutput" : "Output"] ?? {}); + const operation = document.paths?.[endpoint]?.post; + return { + endpoint, + input, + output, + streaming: operation?.["x-cog-streaming"] === true, + async: Boolean( + document.paths?.[`${endpoint}/{${training ? "training" : "prediction"}_id}/cancel`], + ), + }; +} diff --git a/playground/src/domain/types.ts b/playground/src/domain/types.ts new file mode 100644 index 0000000000..29098b7127 --- /dev/null +++ b/playground/src/domain/types.ts @@ -0,0 +1,87 @@ +export type JsonPrimitive = boolean | null | number | string; +export type JsonValue = JsonObject | JsonPrimitive | JsonValue[]; +export type JsonObject = { [key: string]: JsonValue }; + +export type OpenAPISchema = { + $ref?: string; + type?: string; + format?: string; + title?: string; + description?: string; + default?: unknown; + enum?: unknown[]; + allOf?: OpenAPISchema[]; + anyOf?: OpenAPISchema[]; + items?: OpenAPISchema; + properties?: Record; + required?: string[]; + minimum?: number; + maximum?: number; + minLength?: number; + maxLength?: number; + pattern?: string; + deprecated?: boolean; + [key: `x-${string}`]: unknown; +}; + +export type OpenAPIDocument = { + components?: { schemas?: Record }; + paths?: Record; +}; + +export type OpenAPIOperation = JsonObject & { "x-cog-streaming"?: boolean }; +export type OpenAPIPathItem = Record; + +export type HealthResponse = { + status?: string; + user_healthcheck_error?: string; + setup?: { status?: string; logs?: string }; + version?: { cog?: string; coglet?: string; python?: string }; +}; + +export type PredictionEnvelope = { + id?: string; + status?: string; + output?: unknown; + error?: string; + logs?: string; + metrics?: Record; + [key: string]: unknown; +}; + +export type StreamEvent = { + type: string; + data: JsonObject; + raw: string; +}; + +export const RUN_MODES = ["sync", "stream", "async"] as const; +export type RunMode = (typeof RUN_MODES)[number]; + +export const INPUT_MODES = ["form", "json"] as const; +export type InputMode = (typeof INPUT_MODES)[number]; +export type OutputView = "text" | "raw"; + +export type TraceEventKind = "request" | "response" | "sse" | "webhook" | "cancel" | "error"; + +export type TraceEvent = { + id: string; + elapsedMs: number; + kind: TraceEventKind; + label: string; + data?: unknown; +}; + +export type RequestTrace = { + startedAt: number; + startedAtLabel: string; + finishedAt?: number; + method: "POST" | "PUT"; + endpoint: string; + requestHeaders: Record; + requestBody: unknown; + responseStatus?: number; + responseHeaders?: Record; + responseBody?: unknown; + events: TraceEvent[]; +}; diff --git a/playground/src/editor/JsonEditor.tsx b/playground/src/editor/JsonEditor.tsx new file mode 100644 index 0000000000..405ce17cc3 --- /dev/null +++ b/playground/src/editor/JsonEditor.tsx @@ -0,0 +1,95 @@ +import { useEffect, useRef } from "react"; + +import ace from "./ace"; +import { currentAceTheme } from "./kumoTheme"; + +export type JsonEditorProps = { + value: string; + onChange?: (value: string) => void; + readOnly?: boolean; + followTail?: boolean; + className?: string; + label: string; + autoHeight?: boolean; +}; + +export function JsonEditor({ + value, + onChange, + readOnly = false, + followTail = false, + className = "", + label, + autoHeight = false, +}: JsonEditorProps) { + const hostRef = useRef(null); + const editorRef = useRef(undefined); + const initialValue = useRef(value); + const onChangeRef = useRef(onChange); + onChangeRef.current = onChange; + + useEffect(() => { + if (!hostRef.current) return; + const editor = ace.edit(hostRef.current); + editorRef.current = editor; + editor.session.setMode("ace/mode/json"); + editor.setTheme(currentAceTheme()); + editor.setOptions({ + readOnly, + fontSize: "12px", + showPrintMargin: false, + useWorker: false, + highlightActiveLine: !readOnly, + highlightGutterLine: !readOnly, + showFoldWidgets: true, + fadeFoldWidgets: false, + tabSize: 2, + useSoftTabs: true, + wrap: true, + }); + editor.setValue(initialValue.current, -1); + hostRef.current.querySelector("textarea")?.setAttribute("aria-label", label); + editor.on("change", () => onChangeRef.current?.(editor.getValue())); + const updateTheme = () => editor.setTheme(currentAceTheme()); + window.addEventListener("cog-theme-change", updateTheme); + return () => { + window.removeEventListener("cog-theme-change", updateTheme); + editor.destroy(); + editorRef.current = undefined; + }; + }, [label, readOnly]); + + useEffect(() => { + const editor = editorRef.current; + if (!editor) return; + if (editor.getValue() !== value) editor.setValue(value, followTail ? 1 : -1); + editor.resize(); + if (followTail) + editor.renderer.scrollToLine(editor.session.getLength(), false, false, () => {}); + }, [followTail, value]); + + const copy = async () => { + try { + await navigator.clipboard.writeText(editorRef.current?.getValue() ?? value); + } catch { + editorRef.current?.selectAll(); + editorRef.current?.focus(); + } + }; + + return ( +
+
+ +
+ ); +} + +function editorHeight(value: string): number { + return Math.min(320, Math.max(80, value.split("\n").length * 18 + 18)); +} diff --git a/playground/src/editor/LazyJsonEditor.tsx b/playground/src/editor/LazyJsonEditor.tsx new file mode 100644 index 0000000000..851f18c337 --- /dev/null +++ b/playground/src/editor/LazyJsonEditor.tsx @@ -0,0 +1,16 @@ +import { Loader } from "@cloudflare/kumo/components/loader"; +import { lazy, Suspense } from "react"; + +import type { JsonEditorProps } from "./JsonEditor"; + +const JsonEditor = lazy(async () => ({ default: (await import("./JsonEditor")).JsonEditor })); + +export function LazyJsonEditor(props: JsonEditorProps) { + return ( + } + > + + + ); +} diff --git a/playground/src/editor/ace.ts b/playground/src/editor/ace.ts new file mode 100644 index 0000000000..0522751cb2 --- /dev/null +++ b/playground/src/editor/ace.ts @@ -0,0 +1,6 @@ +import ace from "ace-builds/src-noconflict/ace"; + +(globalThis as typeof globalThis & { ace: AceAjax.Ace }).ace = ace; +await import("ace-builds/src-noconflict/mode-json"); + +export default ace; diff --git a/playground/src/editor/kumoTheme.ts b/playground/src/editor/kumoTheme.ts new file mode 100644 index 0000000000..9dfad93080 --- /dev/null +++ b/playground/src/editor/kumoTheme.ts @@ -0,0 +1,49 @@ +import ace from "./ace"; + +type AceWithDefine = typeof ace & { + define: (name: string, dependencies: string[], factory: (...args: unknown[]) => void) => void; +}; + +const themeCSS = (className: string) => ` +.${className} { background-color: var(--color-kumo-base); color: var(--text-color-kumo-default); } +.${className} .ace_gutter { background: var(--color-kumo-elevated); color: var(--text-color-kumo-subtle); } +.${className} .ace_print-margin { width: 1px; background: var(--color-kumo-hairline); } +.${className} .ace_cursor { color: var(--text-color-kumo-default); } +.${className} .ace_marker-layer .ace_selection { background: var(--color-kumo-info-tint); } +.${className} .ace_marker-layer .ace_active-line, +.${className} .ace_gutter-active-line { background: color-mix(in srgb, var(--color-kumo-fill) 45%, transparent); } +.${className} .ace_marker-layer .ace_selected-word { border: 1px solid var(--color-kumo-line); } +.${className} .ace_fold { background-color: var(--color-kumo-brand); border-color: var(--text-color-kumo-default); } +.${className} .ace_variable { color: var(--text-color-kumo-link); } +.${className} .ace_string { color: var(--text-color-kumo-success); } +.${className} .ace_constant.ace_numeric { color: var(--text-color-kumo-warning); } +.${className} .ace_constant.ace_language { color: var(--text-color-kumo-brand); } +.${className} .ace_constant.ace_language.ace_escape { color: var(--text-color-kumo-info); } +.${className} .ace_paren, .${className} .ace_punctuation { color: var(--text-color-kumo-subtle); } +`; + +function defineTheme(name: string, className: string, isDark: boolean) { + (ace as AceWithDefine).define( + `ace/theme/${name}`, + ["require", "exports", "module", "ace/lib/dom"], + (requireValue: unknown, exportsValue: unknown) => { + const requireAce = requireValue as (module: string) => { + importCssString: (css: string, id: string) => void; + }; + const exports = exportsValue as { isDark: boolean; cssClass: string; cssText: string }; + exports.isDark = isDark; + exports.cssClass = className; + exports.cssText = themeCSS(className); + requireAce("ace/lib/dom").importCssString(exports.cssText, className); + }, + ); +} + +defineTheme("kumo-light", "ace-kumo-light", false); +defineTheme("kumo-dark", "ace-kumo-dark", true); + +export function currentAceTheme() { + return document.documentElement.dataset.mode === "light" + ? "ace/theme/kumo-light" + : "ace/theme/kumo-dark"; +} diff --git a/playground/src/features/connection/ConnectionBar.tsx b/playground/src/features/connection/ConnectionBar.tsx new file mode 100644 index 0000000000..cbabbce324 --- /dev/null +++ b/playground/src/features/connection/ConnectionBar.tsx @@ -0,0 +1,33 @@ +import { Button } from "@cloudflare/kumo/components/button"; +import { Input } from "@cloudflare/kumo/components/input"; + +type Props = { + draft: string; + status?: string; + disabled: boolean; + onDraftChange: (value: string) => void; + onConnect: () => void; +}; + +export function ConnectionBar({ draft, status, disabled, onDraftChange, onConnect }: Props) { + return ( +
+
+ onDraftChange(event.currentTarget.value)} + onKeyDown={(event) => { + if (event.key === "Enter") onConnect(); + }} + /> +
+ + {status} +
+ ); +} diff --git a/playground/src/features/connection/SetupPanel.tsx b/playground/src/features/connection/SetupPanel.tsx new file mode 100644 index 0000000000..02170f93c7 --- /dev/null +++ b/playground/src/features/connection/SetupPanel.tsx @@ -0,0 +1,14 @@ +import type { HealthResponse } from "../../domain/types"; +import { StatusBadge } from "../../components/StatusBadge"; + +export function SetupPanel({ setup }: { setup: HealthResponse["setup"] }) { + if (!setup) return null; + return ( +
+ + Setup + +
{setup.logs}
+
+ ); +} diff --git a/playground/src/features/connection/useConnection.ts b/playground/src/features/connection/useConnection.ts new file mode 100644 index 0000000000..4ab5a19205 --- /dev/null +++ b/playground/src/features/connection/useConnection.ts @@ -0,0 +1,97 @@ +import { useEffect, useMemo, useState } from "react"; + +import type { CogApi } from "../../api/cog"; +import { inputAndOutputSchemas } from "../../domain/schema"; +import type { HealthResponse, OpenAPIDocument } from "../../domain/types"; + +const DEFAULT_TARGET = "http://localhost:8393"; +const TARGET_STORAGE_KEY = "cog-playground-target"; + +export function useConnection(api: CogApi) { + const initialTarget = useMemo(() => { + const query = new URLSearchParams(location.search).get("target"); + return query || localStorage.getItem(TARGET_STORAGE_KEY) || DEFAULT_TARGET; + }, []); + const [targetDraft, setTargetDraft] = useState(initialTarget); + const [target, setTarget] = useState(initialTarget); + const [health, setHealth] = useState({ status: "unknown" }); + const [schema, setSchema] = useState(); + const [schemaError, setSchemaError] = useState(""); + const [webhookBase, setWebhookBase] = useState(""); + const capabilities = useMemo( + () => (schema ? inputAndOutputSchemas(schema) : undefined), + [schema], + ); + + useEffect(() => { + api + .config() + .then((config) => setWebhookBase(config.webhookBase ?? "")) + .catch(() => {}); + }, [api]); + + useEffect(() => { + api.setTarget(target); + localStorage.setItem(TARGET_STORAGE_KEY, target); + history.replaceState(null, "", `?target=${encodeURIComponent(target)}`); + let canceled = false; + let retry: number | undefined; + const loadSchema = async () => { + try { + const document = await api.schema(); + if (canceled) return; + setSchema(document); + setSchemaError(""); + } catch (error) { + if (canceled) return; + setSchema(undefined); + setSchemaError(`Waiting for schema... (${errorMessage(error)})`); + retry = window.setTimeout(loadSchema, 3000); + } + }; + void loadSchema(); + return () => { + canceled = true; + if (retry) clearTimeout(retry); + }; + }, [api, target]); + + useEffect(() => { + let canceled = false; + const poll = async () => { + try { + const next = await api.health(); + if (!canceled) setHealth(next); + } catch { + if (!canceled) { + setHealth({ status: "unreachable", user_healthcheck_error: "target unreachable" }); + } + } + }; + void poll(); + const timer = window.setInterval(poll, 5000); + return () => { + canceled = true; + clearInterval(timer); + }; + }, [api, target]); + + return { + target, + targetDraft, + setTargetDraft, + connect: () => { + const next = targetDraft.trim(); + if (next) setTarget(next); + }, + health, + schema, + schemaError, + webhookBase, + capabilities, + }; +} + +function errorMessage(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} diff --git a/playground/src/features/inputs/InputForm.test.tsx b/playground/src/features/inputs/InputForm.test.tsx new file mode 100644 index 0000000000..c1e9aa1e09 --- /dev/null +++ b/playground/src/features/inputs/InputForm.test.tsx @@ -0,0 +1,93 @@ +import { fireEvent, render, screen } from "@testing-library/react"; +import { describe, expect, it, vi } from "vitest"; + +vi.mock("@/editor/LazyJsonEditor", () => ({ + LazyJsonEditor: ({ + label, + onChange, + value, + }: { + label: string; + onChange: (value: string) => void; + value: string; + }) => ( +