diff --git a/.circleci/config.yml b/.circleci/config.yml index 45d6b665900..3f61ed5fa91 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -112,6 +112,24 @@ jobs: python -m mypy . cd .. no_output_timeout: 10m + + semgrep: + docker: + - image: cimg/python:3.12 + auth: + username: ${DOCKERHUB_USERNAME} + password: ${DOCKERHUB_PASSWORD} + working_directory: ~/project + steps: + - checkout + - setup_google_dns + - run: + name: Install Semgrep + command: pip install semgrep + - run: + name: Run Semgrep (custom rules only) + command: semgrep scan --config .semgrep/rules . --error + local_testing_part1: docker: - image: cimg/python:3.12 @@ -1638,7 +1656,7 @@ jobs: - search_coverage.xml - search_coverage # Split litellm_mapped_tests into 3 parallel jobs for 3x faster execution - litellm_mapped_tests_proxy: + litellm_mapped_tests_proxy_part1: docker: - image: cimg/python:3.11 auth: @@ -1649,23 +1667,53 @@ jobs: steps: - setup_litellm_test_deps - run: - name: Run proxy tests + name: Run proxy tests part 1 (high-volume directories) command: | prisma generate - python -m pytest tests/test_litellm/proxy --cov=litellm --cov-report=xml --junitxml=test-results/junit-proxy.xml --durations=10 -n 16 --maxfail=5 --timeout=300 -vv --log-cli-level=WARNING - no_output_timeout: 120m + export PYTHONUNBUFFERED=1 + python -m pytest tests/test_litellm/proxy/guardrails tests/test_litellm/proxy/management_endpoints tests/test_litellm/proxy/_experimental tests/test_litellm/proxy/client tests/test_litellm/proxy/auth --cov=litellm --cov-report=xml --junitxml=test-results/junit-proxy-part1.xml --durations=10 -n 8 --maxfail=5 --timeout=60 -vv --log-cli-level=WARNING -r A + no_output_timeout: 60m - run: name: Rename the coverage files command: | - mv coverage.xml litellm_proxy_tests_coverage.xml - mv .coverage litellm_proxy_tests_coverage + mv coverage.xml litellm_proxy_tests_part1_coverage.xml + mv .coverage litellm_proxy_tests_part1_coverage - store_test_results: path: test-results - persist_to_workspace: root: . paths: - - litellm_proxy_tests_coverage.xml - - litellm_proxy_tests_coverage + - litellm_proxy_tests_part1_coverage.xml + - litellm_proxy_tests_part1_coverage + litellm_mapped_tests_proxy_part2: + docker: + - image: cimg/python:3.11 + auth: + username: ${DOCKERHUB_USERNAME} + password: ${DOCKERHUB_PASSWORD} + working_directory: ~/project + resource_class: xlarge + steps: + - setup_litellm_test_deps + - run: + name: Run proxy tests part 2 (all other tests) + command: | + prisma generate + export PYTHONUNBUFFERED=1 + python -m pytest tests/test_litellm/proxy --ignore=tests/test_litellm/proxy/guardrails --ignore=tests/test_litellm/proxy/management_endpoints --ignore=tests/test_litellm/proxy/_experimental --ignore=tests/test_litellm/proxy/client --ignore=tests/test_litellm/proxy/auth --cov=litellm --cov-report=xml --junitxml=test-results/junit-proxy-part2.xml --durations=10 -n 8 --maxfail=5 --timeout=60 -vv --log-cli-level=WARNING -r A + no_output_timeout: 60m + - run: + name: Rename the coverage files + command: | + mv coverage.xml litellm_proxy_tests_part2_coverage.xml + mv .coverage litellm_proxy_tests_part2_coverage + - store_test_results: + path: test-results + - persist_to_workspace: + root: . + paths: + - litellm_proxy_tests_part2_coverage.xml + - litellm_proxy_tests_part2_coverage litellm_mapped_tests_llms: docker: - image: cimg/python:3.11 @@ -1706,7 +1754,7 @@ jobs: - run: name: Run core tests command: | - python -m pytest tests/test_litellm --ignore=tests/test_litellm/proxy --ignore=tests/test_litellm/llms --ignore=tests/test_litellm/integrations --ignore=tests/test_litellm/litellm_core_utils --cov=litellm --cov-report=xml --junitxml=test-results/junit-core.xml --durations=10 -n 16 --maxfail=5 --timeout=300 -vv --log-cli-level=WARNING + python -m pytest tests/test_litellm --ignore=tests/test_litellm/proxy --ignore=tests/test_litellm/llms --ignore=tests/test_litellm/integrations --ignore=tests/test_litellm/litellm_core_utils --ignore=tests/test_litellm/experimental_mcp_client --cov=litellm --cov-report=xml --junitxml=test-results/junit-core.xml --durations=10 -n 16 --maxfail=5 --timeout=300 -vv --log-cli-level=WARNING no_output_timeout: 120m - run: name: Rename the coverage files @@ -1747,6 +1795,33 @@ jobs: paths: - litellm_core_utils_tests_coverage.xml - litellm_core_utils_tests_coverage + litellm_mapped_tests_mcps: + docker: + - image: cimg/python:3.11 + auth: + username: ${DOCKERHUB_USERNAME} + password: ${DOCKERHUB_PASSWORD} + working_directory: ~/project + resource_class: xlarge + steps: + - setup_litellm_test_deps + - run: + name: Run MCP client tests + command: | + python -m pytest tests/test_litellm/experimental_mcp_client --cov=litellm --cov-report=xml --junitxml=test-results/junit-mcps.xml --durations=10 -n 4 --maxfail=5 --timeout=300 -vv --log-cli-level=WARNING + no_output_timeout: 120m + - run: + name: Rename the coverage files + command: | + mv coverage.xml litellm_mcps_tests_coverage.xml + mv .coverage litellm_mcps_tests_coverage + - store_test_results: + path: test-results + - persist_to_workspace: + root: . + paths: + - litellm_mcps_tests_coverage.xml + - litellm_mcps_tests_coverage litellm_mapped_tests_integrations: docker: - image: cimg/python:3.11 @@ -3579,9 +3654,11 @@ jobs: -p 4000:4000 \ -e DATABASE_URL=postgresql://postgres:postgres@host.docker.internal:5432/circle_test \ -e LITELLM_MASTER_KEY="sk-1234" \ + -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \ -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ -e AWS_REGION_NAME="us-east-1" \ + -e LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS="True" \ --add-host host.docker.internal:host-gateway \ --name my-app \ -v $(pwd)/tests/proxy_e2e_anthropic_messages_tests/test_config.yaml:/app/config.yaml \ @@ -3634,7 +3711,7 @@ jobs: python -m venv venv . venv/bin/activate pip install coverage - coverage combine llm_translation_coverage realtime_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage logging_coverage audio_coverage litellm_router_coverage litellm_router_unit_coverage local_testing_part1_coverage local_testing_part2_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage + coverage combine llm_translation_coverage realtime_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage litellm_mcps_tests_coverage logging_coverage audio_coverage litellm_router_coverage litellm_router_unit_coverage local_testing_part1_coverage local_testing_part2_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage coverage xml - codecov/upload: file: ./coverage.xml @@ -4118,6 +4195,12 @@ workflows: only: - main - /litellm_.*/ + - semgrep: + filters: + branches: + only: + - main + - /litellm_.*/ - local_testing_part1: filters: branches: @@ -4368,7 +4451,13 @@ workflows: only: - main - /litellm_.*/ - - litellm_mapped_tests_proxy: + - litellm_mapped_tests_proxy_part1: + filters: + branches: + only: + - main + - /litellm_.*/ + - litellm_mapped_tests_proxy_part2: filters: branches: only: @@ -4386,6 +4475,12 @@ workflows: only: - main - /litellm_.*/ + - litellm_mapped_tests_mcps: + filters: + branches: + only: + - main + - /litellm_.*/ - litellm_mapped_tests_integrations: filters: branches: @@ -4445,9 +4540,11 @@ workflows: - llm_responses_api_testing - ocr_testing - search_testing - - litellm_mapped_tests_proxy + - litellm_mapped_tests_proxy_part1 + - litellm_mapped_tests_proxy_part2 - litellm_mapped_tests_llms - litellm_mapped_tests_core + - litellm_mapped_tests_mcps - litellm_mapped_tests_integrations - litellm_mapped_tests_litellm_core_utils - litellm_mapped_enterprise_tests @@ -4510,6 +4607,7 @@ workflows: - publish_to_pypi: requires: - mypy_linting + - semgrep - local_testing_part1 - local_testing_part2 - build_and_test @@ -4523,9 +4621,11 @@ workflows: - llm_responses_api_testing - ocr_testing - search_testing - - litellm_mapped_tests_proxy + - litellm_mapped_tests_proxy_part1 + - litellm_mapped_tests_proxy_part2 - litellm_mapped_tests_llms - litellm_mapped_tests_core + - litellm_mapped_tests_mcps - litellm_mapped_tests_integrations - litellm_mapped_tests_litellm_core_utils - litellm_mapped_enterprise_tests diff --git a/.github/actions/helm-oci-chart-releaser/action.yml b/.github/actions/helm-oci-chart-releaser/action.yml index 059277ed882..1823e262832 100644 --- a/.github/actions/helm-oci-chart-releaser/action.yml +++ b/.github/actions/helm-oci-chart-releaser/action.yml @@ -40,38 +40,33 @@ outputs: runs: using: composite steps: + - name: Helm | Setup + uses: azure/setup-helm@v4 + with: + version: v3.20.0 + - name: Helm | Login shell: bash run: echo ${{ inputs.registry_password }} | helm registry login -u ${{ inputs.registry_username }} --password-stdin ${{ inputs.registry }} - env: - HELM_EXPERIMENTAL_OCI: '1' - + - name: Helm | Dependency if: inputs.update_dependencies == 'true' shell: bash run: helm dependency update ${{ inputs.path == null && format('{0}/{1}', 'charts', inputs.name) || inputs.path }} - env: - HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Package shell: bash run: helm package ${{ inputs.path == null && format('{0}/{1}', 'charts', inputs.name) || inputs.path }} --version ${{ inputs.tag }} --app-version ${{ inputs.app_version }} - env: - HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Push shell: bash run: helm push ${{ inputs.name }}-${{ inputs.tag }}.tgz oci://${{ inputs.registry }}/${{ inputs.repository }} - env: - HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Logout shell: bash run: helm registry logout ${{ inputs.registry }} - env: - HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Output id: output shell: bash - run: echo "image=${{ inputs.registry }}/${{ inputs.repository }}/${{ inputs.name }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT \ No newline at end of file + run: echo "image=${{ inputs.registry }}/${{ inputs.repository }}/${{ inputs.name }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b91b16c955c..f13039f4516 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -9,6 +9,7 @@ - [ ] I have Added testing in the [`tests/litellm/`](https://github.com/BerriAI/litellm/tree/main/tests/litellm) directory, **Adding at least 1 test is a hard requirement** - [see details](https://docs.litellm.ai/docs/extras/contributing_code) - [ ] My PR passes all unit tests on [`make test-unit`](https://docs.litellm.ai/docs/extras/contributing_code) - [ ] My PR's scope is as isolated as possible, it only solves 1 specific problem +- [ ] I have requested a Greptile review by commenting `@greptileai` and received a **Confidence Score of at least 4/5** before requesting a maintainer review ## CI (LiteLLM team) diff --git a/.github/workflows/test-litellm-matrix.yml b/.github/workflows/test-litellm-matrix.yml new file mode 100644 index 00000000000..d83fedcb2ae --- /dev/null +++ b/.github/workflows/test-litellm-matrix.yml @@ -0,0 +1,95 @@ +name: LiteLLM Unit Tests (Matrix) + +on: + pull_request: + branches: [main] + +# Cancel in-progress runs for the same PR +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + test-group: + # tests/test_litellm split by subdirectory (~560 files total) + - name: "llms" + path: "tests/test_litellm/llms" + workers: 4 + # tests/test_litellm/proxy split by subdirectory (~180 files total) + - name: "proxy-guardrails" + path: "tests/test_litellm/proxy/guardrails tests/test_litellm/proxy/management_endpoints tests/test_litellm/proxy/management_helpers" + workers: 4 + - name: "proxy-core" + path: "tests/test_litellm/proxy/auth tests/test_litellm/proxy/client tests/test_litellm/proxy/db tests/test_litellm/proxy/hooks tests/test_litellm/proxy/policy_engine" + workers: 4 + - name: "proxy-misc" + path: "tests/test_litellm/proxy/_experimental tests/test_litellm/proxy/agent_endpoints tests/test_litellm/proxy/anthropic_endpoints tests/test_litellm/proxy/common_utils tests/test_litellm/proxy/discovery_endpoints tests/test_litellm/proxy/experimental tests/test_litellm/proxy/google_endpoints tests/test_litellm/proxy/health_endpoints tests/test_litellm/proxy/image_endpoints tests/test_litellm/proxy/middleware tests/test_litellm/proxy/openai_files_endpoint tests/test_litellm/proxy/pass_through_endpoints tests/test_litellm/proxy/prompts tests/test_litellm/proxy/public_endpoints tests/test_litellm/proxy/response_api_endpoints tests/test_litellm/proxy/spend_tracking tests/test_litellm/proxy/ui_crud_endpoints tests/test_litellm/proxy/vector_store_endpoints tests/test_litellm/proxy/test_*.py" + workers: 4 + - name: "integrations" + path: "tests/test_litellm/integrations" + workers: 4 + - name: "core-utils" + path: "tests/test_litellm/litellm_core_utils" + workers: 2 + - name: "other" + path: "tests/test_litellm/caching tests/test_litellm/responses tests/test_litellm/secret_managers tests/test_litellm/vector_stores tests/test_litellm/a2a_protocol tests/test_litellm/anthropic_interface tests/test_litellm/completion_extras tests/test_litellm/containers tests/test_litellm/enterprise tests/test_litellm/experimental_mcp_client tests/test_litellm/google_genai tests/test_litellm/images tests/test_litellm/interactions tests/test_litellm/passthrough tests/test_litellm/router_strategy tests/test_litellm/router_utils tests/test_litellm/types" + workers: 4 + - name: "root" + path: "tests/test_litellm/test_*.py" + workers: 4 + # tests/proxy_unit_tests split alphabetically (~48 files total) + - name: "proxy-unit-a" + path: "tests/proxy_unit_tests/test_[a-o]*.py" + workers: 2 + - name: "proxy-unit-b" + path: "tests/proxy_unit_tests/test_[p-z]*.py" + workers: 2 + + name: test (${{ matrix.test-group.name }}) + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install Poetry + uses: snok/install-poetry@v1 + + - name: Cache Poetry dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/pypoetry + ~/.cache/pip + .venv + key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }} + restore-keys: | + ${{ runner.os }}-poetry- + + - name: Install dependencies + run: | + poetry config virtualenvs.in-project true + poetry install --with dev,proxy-dev --extras "proxy semantic-router" + poetry run pip install pytest-retry==1.6.3 pytest-xdist google-genai==1.22.0 \ + google-cloud-aiplatform>=1.38 fastapi-offline==1.7.3 python-multipart==0.0.22 openapi-core + + - name: Setup litellm-enterprise + run: | + cd enterprise && poetry run pip install -e . && cd .. + + - name: Run tests - ${{ matrix.test-group.name }} + run: | + poetry run pytest ${{ matrix.test-group.path }} \ + --tb=short -vv \ + --maxfail=10 \ + -n ${{ matrix.test-group.workers }} \ + --durations=20 diff --git a/.github/workflows/test-litellm-ui-build.yml b/.github/workflows/test-litellm-ui-build.yml new file mode 100644 index 00000000000..b0a8b648a44 --- /dev/null +++ b/.github/workflows/test-litellm-ui-build.yml @@ -0,0 +1,32 @@ +name: UI Build Check +permissions: + contents: read + +on: + pull_request: + branches: [main] + +jobs: + build-ui: + runs-on: ubuntu-latest + timeout-minutes: 10 + defaults: + run: + working-directory: ui/litellm-dashboard + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "npm" + cache-dependency-path: ui/litellm-dashboard/package-lock.json + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build diff --git a/.github/workflows/test-litellm.yml b/.github/workflows/test-litellm.yml index d9cf2e74a11..dc9b48c28f6 100644 --- a/.github/workflows/test-litellm.yml +++ b/.github/workflows/test-litellm.yml @@ -1,8 +1,12 @@ name: LiteLLM Mock Tests (folder - tests/test_litellm) +# DEPRECATED: This workflow is replaced by test-litellm-matrix.yml which runs +# the same tests in parallel across 10 jobs for faster CI times. +# Kept for manual debugging only. on: - pull_request: - branches: [ main ] + workflow_dispatch: # Manual trigger only + # pull_request: + # branches: [ main ] jobs: test: diff --git a/.gitignore b/.gitignore index ddf5f6279b3..c43df98a9e5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .venv .venv_policy_test .env +.claude .newenv newenv/* litellm/proxy/myenv/* diff --git a/.semgrep/rules/README.md b/.semgrep/rules/README.md new file mode 100644 index 00000000000..0dbb77cdd48 --- /dev/null +++ b/.semgrep/rules/README.md @@ -0,0 +1,22 @@ +# Custom Semgrep rules for LiteLLM + +Add custom rule YAML files here. Semgrep loads all `.yml`/`.yaml` files under this directory. + +**Run only custom rules (CI / fail on findings):** + +```bash +semgrep scan --config .semgrep/rules . --error +``` + +**Run with registry + custom rules:** + +```bash +semgrep scan --config auto --config .semgrep/rules . +``` + +**Layout:** + +- `python/` – Python-specific rules (security, patterns) +- Add more subdirs as needed (e.g. `generic/` for language-agnostic rules) + +See [Semgrep rule syntax](https://semgrep.dev/docs/writing-rules/rule-syntax/). diff --git a/.semgrep/rules/python/reliability/unbounded-memory.yml b/.semgrep/rules/python/reliability/unbounded-memory.yml new file mode 100644 index 00000000000..f13c38471fb --- /dev/null +++ b/.semgrep/rules/python/reliability/unbounded-memory.yml @@ -0,0 +1,17 @@ +# Unbounded memory growth – data structures without a clear max limit +# Can lead to OOM under load. + +rules: + - id: unbounded-asyncio-queue + message: asyncio.Queue() with no maxsize can grow unbounded. Use asyncio.Queue(maxsize=N) for integrations (e.g. log queues). + severity: ERROR + languages: [python] + pattern-either: + - pattern: asyncio.Queue() + - pattern: asyncio.Queue(maxsize=0) + metadata: + category: reliability + cwe: "CWE-400: Uncontrolled Resource Consumption" + tags: [python, reliability] + confidence: HIGH + source: https://docs.python.org/3/library/asyncio-queue.html diff --git a/.semgrep/rules/python/unbounded-memory.yml b/.semgrep/rules/python/unbounded-memory.yml new file mode 100644 index 00000000000..811ef689344 --- /dev/null +++ b/.semgrep/rules/python/unbounded-memory.yml @@ -0,0 +1,14 @@ +# Unbounded memory growth – data structures without a clear max limit +# Can lead to OOM under load. + +rules: + - id: unbounded-asyncio-queue + message: asyncio.Queue() with no maxsize can grow unbounded. Use asyncio.Queue(maxsize=N) for integrations (e.g. log queues). + severity: ERROR + languages: [python] + pattern-either: + - pattern: asyncio.Queue() + - pattern: asyncio.Queue(maxsize=0) + metadata: + category: correctness + cwe: "CWE-400: Uncontrolled Resource Consumption" \ No newline at end of file diff --git a/Makefile b/Makefile index b867d7ea35e..74031f418d6 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,9 @@ # LiteLLM Makefile # Simple Makefile for running tests and basic development tasks -.PHONY: help test test-unit test-integration test-unit-helm \ +.PHONY: help test test-unit test-unit-llms test-unit-proxy-guardrails test-unit-proxy-core test-unit-proxy-misc \ + test-unit-integrations test-unit-core-utils test-unit-other test-unit-root \ + test-proxy-unit-a test-proxy-unit-b test-integration test-unit-helm \ info lint lint-dev format \ install-dev install-proxy-dev install-test-deps \ install-helm-unittest check-circular-imports check-import-safety @@ -25,6 +27,16 @@ help: @echo " make check-import-safety - Check import safety" @echo " make test - Run all tests" @echo " make test-unit - Run unit tests (tests/test_litellm)" + @echo " make test-unit-llms - Run LLM provider tests (~225 files)" + @echo " make test-unit-proxy-guardrails - Run proxy guardrails+mgmt tests (~51 files)" + @echo " make test-unit-proxy-core - Run proxy auth+client+db+hooks tests (~52 files)" + @echo " make test-unit-proxy-misc - Run proxy misc tests (~77 files)" + @echo " make test-unit-integrations - Run integration tests (~60 files)" + @echo " make test-unit-core-utils - Run core utils tests (~32 files)" + @echo " make test-unit-other - Run other tests (caching, responses, etc., ~69 files)" + @echo " make test-unit-root - Run root-level tests (~34 files)" + @echo " make test-proxy-unit-a - Run proxy_unit_tests (a-o, ~20 files)" + @echo " make test-proxy-unit-b - Run proxy_unit_tests (p-z, ~28 files)" @echo " make test-integration - Run integration tests" @echo " make test-unit-helm - Run helm unit tests" @@ -129,6 +141,38 @@ test: test-unit: install-test-deps poetry run pytest tests/test_litellm -x -vv -n 4 +# Matrix test targets (matching CI workflow groups) +test-unit-llms: install-test-deps + poetry run pytest tests/test_litellm/llms --tb=short -vv -n 4 --durations=20 + +test-unit-proxy-guardrails: install-test-deps + poetry run pytest tests/test_litellm/proxy/guardrails tests/test_litellm/proxy/management_endpoints tests/test_litellm/proxy/management_helpers --tb=short -vv -n 4 --durations=20 + +test-unit-proxy-core: install-test-deps + poetry run pytest tests/test_litellm/proxy/auth tests/test_litellm/proxy/client tests/test_litellm/proxy/db tests/test_litellm/proxy/hooks tests/test_litellm/proxy/policy_engine --tb=short -vv -n 4 --durations=20 + +test-unit-proxy-misc: install-test-deps + poetry run pytest tests/test_litellm/proxy/_experimental tests/test_litellm/proxy/agent_endpoints tests/test_litellm/proxy/anthropic_endpoints tests/test_litellm/proxy/common_utils tests/test_litellm/proxy/discovery_endpoints tests/test_litellm/proxy/experimental tests/test_litellm/proxy/google_endpoints tests/test_litellm/proxy/health_endpoints tests/test_litellm/proxy/image_endpoints tests/test_litellm/proxy/middleware tests/test_litellm/proxy/openai_files_endpoint tests/test_litellm/proxy/pass_through_endpoints tests/test_litellm/proxy/prompts tests/test_litellm/proxy/public_endpoints tests/test_litellm/proxy/response_api_endpoints tests/test_litellm/proxy/spend_tracking tests/test_litellm/proxy/ui_crud_endpoints tests/test_litellm/proxy/vector_store_endpoints tests/test_litellm/proxy/test_*.py --tb=short -vv -n 4 --durations=20 + +test-unit-integrations: install-test-deps + poetry run pytest tests/test_litellm/integrations --tb=short -vv -n 4 --durations=20 + +test-unit-core-utils: install-test-deps + poetry run pytest tests/test_litellm/litellm_core_utils --tb=short -vv -n 2 --durations=20 + +test-unit-other: install-test-deps + poetry run pytest tests/test_litellm/caching tests/test_litellm/responses tests/test_litellm/secret_managers tests/test_litellm/vector_stores tests/test_litellm/a2a_protocol tests/test_litellm/anthropic_interface tests/test_litellm/completion_extras tests/test_litellm/containers tests/test_litellm/enterprise tests/test_litellm/experimental_mcp_client tests/test_litellm/google_genai tests/test_litellm/images tests/test_litellm/interactions tests/test_litellm/passthrough tests/test_litellm/router_strategy tests/test_litellm/router_utils tests/test_litellm/types --tb=short -vv -n 4 --durations=20 + +test-unit-root: install-test-deps + poetry run pytest tests/test_litellm/test_*.py --tb=short -vv -n 4 --durations=20 + +# Proxy unit tests (tests/proxy_unit_tests split alphabetically) +test-proxy-unit-a: install-test-deps + poetry run pytest tests/proxy_unit_tests/test_[a-o]*.py --tb=short -vv -n 2 --durations=20 + +test-proxy-unit-b: install-test-deps + poetry run pytest tests/proxy_unit_tests/test_[p-z]*.py --tb=short -vv -n 2 --durations=20 + test-integration: poetry run pytest tests/ -k "not test_litellm" diff --git a/cookbook/nova_sonic_realtime.py b/cookbook/nova_sonic_realtime.py index 0ea0badfb01..c7a73c1d00f 100644 --- a/cookbook/nova_sonic_realtime.py +++ b/cookbook/nova_sonic_realtime.py @@ -16,10 +16,14 @@ Usage: import asyncio import base64 import json +import os import pyaudio import websockets from typing import Optional +# Bounded queue size for audio chunks (configurable via env to avoid unbounded memory) +AUDIO_QUEUE_MAXSIZE = int(os.getenv("LITELLM_ASYNCIO_QUEUE_MAXSIZE", 10_000)) + # Audio configuration (matching Nova Sonic requirements) INPUT_SAMPLE_RATE = 16000 # Nova Sonic expects 16kHz input OUTPUT_SAMPLE_RATE = 24000 # Nova Sonic outputs 24kHz @@ -40,7 +44,7 @@ class RealtimeClient: self.api_key = api_key self.ws: Optional[websockets.WebSocketClientProtocol] = None self.is_active = False - self.audio_queue = asyncio.Queue() + self.audio_queue = asyncio.Queue(maxsize=AUDIO_QUEUE_MAXSIZE) self.pyaudio = pyaudio.PyAudio() self.input_stream = None self.output_stream = None diff --git a/deploy/charts/litellm-helm/Chart.yaml b/deploy/charts/litellm-helm/Chart.yaml index 8a08f0b4e29..0f6db331e50 100644 --- a/deploy/charts/litellm-helm/Chart.yaml +++ b/deploy/charts/litellm-helm/Chart.yaml @@ -26,6 +26,10 @@ version: 1.1.0 # It is recommended to use it with quotes. appVersion: v1.80.12 +annotations: + org.opencontainers.image.source: "https://github.com/BerriAI/litellm" + org.opencontainers.image.url: "https://docs.litellm.ai/" + dependencies: - name: "postgresql" version: ">=13.3.0" diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index 64126bb0292..004377e19b3 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -59,7 +59,8 @@ RUN mkdir -p /var/lib/litellm/ui && \ mkdir -p "$folder_name" && \ mv "$html_file" "$folder_name/index.html"; \ fi; \ - done ) && \ + done && \ + touch .litellm_ui_ready ) && \ cd /app/ui/litellm-dashboard && rm -rf ./out # Build litellm wheel and place it in wheels dir (replace any PyPI wheels) diff --git a/docker/README.md b/docker/README.md index 6d81276bb4b..7027a30fdd7 100644 --- a/docker/README.md +++ b/docker/README.md @@ -70,9 +70,12 @@ docker compose -f docker-compose.yml -f docker-compose.hardened.yml up -d This setup: - Builds from `docker/Dockerfile.non_root` with Prisma engines and Node toolchain baked into the image. -- Runs the proxy as a non-root user with a read-only rootfs and only two writable tmpfs mounts: +- Runs the proxy as a non-root user with a read-only rootfs and only writable tmpfs mounts: - `/app/cache` (Prisma/NPM cache; backing `PRISMA_BINARY_CACHE_DIR`, `NPM_CONFIG_CACHE`, `XDG_CACHE_HOME`) - `/app/migrations` (Prisma migration workspace; backing `LITELLM_MIGRATION_DIR`) +- Pre-builds and serves the admin UI from read-only paths: + - `/var/lib/litellm/ui` (pre-restructured Next.js UI with `.litellm_ui_ready` marker) + - `/var/lib/litellm/assets` (UI logos and assets) - Routes all outbound traffic through a local Squid proxy that denies egress, so Prisma migrations must use the cached CLI and engines. You should also verify offline Prisma behaviour with: diff --git a/docs/my-website/blog/claude_code_beta_headers/index.md b/docs/my-website/blog/claude_code_beta_headers/index.md new file mode 100644 index 00000000000..138a85a60c5 --- /dev/null +++ b/docs/my-website/blog/claude_code_beta_headers/index.md @@ -0,0 +1,274 @@ +--- +slug: claude_code_beta_headers +title: "Claude Code - Managing Anthropic Beta Headers" +date: 2026-02-16T10:00:00 +authors: + - name: Sameer Kankute + title: SWE @ LiteLLM (LLM Translation) + url: https://www.linkedin.com/in/sameer-kankute/ + image_url: https://pbs.twimg.com/profile_images/2001352686994907136/ONgNuSk5_400x400.jpg + - name: Ishaan Jaff + title: "CTO, LiteLLM" + url: https://www.linkedin.com/in/reffajnaahsi/ + image_url: https://pbs.twimg.com/profile_images/1613813310264340481/lz54oEiB_400x400.jpg + - name: Krrish Dholakia + title: "CEO, LiteLLM" + url: https://www.linkedin.com/in/krish-d/ + image_url: https://pbs.twimg.com/profile_images/1298587542745358340/DZv3Oj-h_400x400.jpg +description: "How to manage and configure Anthropic beta headers with Claude Code in LiteLLM: filtering, mapping, and dynamic updates across providers." +tags: [anthropic, claude, beta headers, configuration, liteLLM] +hide_table_of_contents: false + +--- +import Image from '@theme/IdealImage'; + +When using Claude Code with LiteLLM and non-Anthropic providers (Bedrock, Azure AI, Vertex AI), you need to ensure that only supported beta headers are sent to each provider. This guide explains how to add support for new beta headers or fix invalid beta header errors. + +## What Are Beta Headers? + +Anthropic uses beta headers to enable experimental features in Claude. When you use Claude Code, it may send beta headers like: + +``` +anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20 +``` + +However, not all providers support all Anthropic beta features. LiteLLM uses `anthropic_beta_headers_config.json` to manage which beta headers are supported by each provider. + +## Common Error Message + +```bash +Error: The model returned the following errors: invalid beta flag +``` + +## How LiteLLM Handles Beta Headers + +LiteLLM uses a strict validation approach with a configuration file: + +``` +litellm/litellm/anthropic_beta_headers_config.json +``` + +This JSON file contains a **mapping** of beta headers for each provider: +- **Keys**: Input beta header names (from Anthropic) +- **Values**: Provider-specific header names (or `null` if unsupported) +- **Validation**: Only headers present in the mapping with non-null values are forwarded + +This enforces stricter validation than just filtering unsupported headers - headers must be explicitly defined to be allowed. + +## Adding Support for a New Beta Header + +When Anthropic releases a new beta feature, you need to add it to the configuration file for each provider. + +### Step 1: Add the New Beta Header + +Open `anthropic_beta_headers_config.json` and add the new header to each provider's mapping: + +```json title="anthropic_beta_headers_config.json" +{ + "description": "Mapping of Anthropic beta headers for each provider. Keys are input header names, values are provider-specific header names (or null if unsupported). Only headers present in mapping keys with non-null values can be forwarded.", + "anthropic": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "new-feature-2026-03-01": "new-feature-2026-03-01", + ... + }, + "azure_ai": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "new-feature-2026-03-01": "new-feature-2026-03-01", + ... + }, + "bedrock_converse": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + }, + "bedrock": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + }, + "vertex_ai": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + } +} +``` + +**Key Points:** +- **Supported headers**: Set the value to the provider-specific header name (often the same as the key) +- **Unsupported headers**: Set the value to `null` +- **Header transformations**: Some providers use different header names (e.g., Bedrock maps `advanced-tool-use-2025-11-20` to `tool-search-tool-2025-10-19`) +- **Alphabetical order**: Keep headers sorted alphabetically for maintainability + +### Step 2: Reload Configuration (No Restart Required!) + +**Option 1: Dynamic Reload Without Restart** + +Instead of restarting your application, you can dynamically reload the beta headers configuration using environment variables and API endpoints: + +```bash +# Set environment variable to fetch from remote URL (Do this if you want to point it to some other URL) +export LITELLM_ANTHROPIC_BETA_HEADERS_URL="https://raw.githubusercontent.com/BerriAI/litellm/main/litellm/anthropic_beta_headers_config.json" + +# Manually trigger reload via API (no restart needed!) +curl -X POST "https://your-proxy-url/reload/anthropic_beta_headers" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Option 2: Schedule Automatic Reloads** + +Set up automatic reloading to always stay up-to-date with the latest beta headers: + +```bash +# Reload configuration every 24 hours +curl -X POST "https://your-proxy-url/schedule/anthropic_beta_headers_reload?hours=24" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Option 3: Traditional Restart** + +If you prefer the traditional approach, restart your LiteLLM proxy or application: + +```bash +# If using LiteLLM proxy +litellm --config config.yaml + +# If using Python SDK +# Just restart your Python application +``` + +:::tip Zero-Downtime Updates +With dynamic reloading, you can fix invalid beta header errors **without restarting your service**! This is especially useful in production environments where downtime is costly. + +See [Auto Sync Anthropic Beta Headers](../proxy/sync_anthropic_beta_headers.md) for complete documentation. +::: + +## Fixing Invalid Beta Header Errors + +If you encounter an "invalid beta flag" error, it means a beta header is being sent that the provider doesn't support. + +### Step 1: Identify the Problematic Header + +Check your logs to see which header is causing the issue: + +```bash +Error: The model returned the following errors: invalid beta flag: new-feature-2026-03-01 +``` + +### Step 2: Update the Config + +Set the header value to `null` for that provider: + +```json title="anthropic_beta_headers_config.json" +{ + "bedrock_converse": { + "new-feature-2026-03-01": null + } +} +``` + +### Step 3: Restart and Test + +Restart your application and verify the header is now filtered out. + +## Contributing a Fix to LiteLLM + +Help the community by contributing your fix! + +### What to Include in Your PR + +1. **Update the config file**: Add the new beta header to `litellm/anthropic_beta_headers_config.json` +2. **Test your changes**: Verify the header is correctly filtered/mapped for each provider +3. **Documentation**: Include provider documentation links showing which headers are supported + +### Example PR Description + +```markdown +## Add support for new-feature-2026-03-01 beta header + +### Changes +- Added `new-feature-2026-03-01` to anthropic_beta_headers_config.json +- Set to `null` for bedrock_converse (unsupported) +- Set to header name for anthropic, azure_ai (supported) + +### Testing +Tested with: +- ✅ Anthropic: Header passed through correctly +- ✅ Azure AI: Header passed through correctly +- ✅ Bedrock Converse: Header filtered out (returns error without fix) + +### References +- Anthropic docs: [link] +- AWS Bedrock docs: [link] +``` + + +## How Beta Header Filtering Works + +When you make a request through LiteLLM: + +```mermaid +sequenceDiagram + participant CC as Claude Code + participant LP as LiteLLM + participant Config as Beta Headers Config + participant Provider as Provider (Bedrock/Azure/etc) + + CC->>LP: Request with beta headers + Note over CC,LP: anthropic-beta: header1,header2,header3 + + LP->>Config: Load header mapping for provider + Config-->>LP: Returns mapping (header→value or null) + + Note over LP: Validate & Transform:1. Check if header exists in mapping2. Filter out null values3. Map to provider-specific names + + LP->>Provider: Request with filtered & mapped headers + Note over LP,Provider: anthropic-beta: mapped-header2(header1, header3 filtered out) + + Provider-->>LP: Success response + LP-->>CC: Response +``` + +### Filtering Rules + +1. **Header must exist in mapping**: Unknown headers are filtered out +2. **Header must have non-null value**: Headers with `null` values are filtered out +3. **Header transformation**: Headers are mapped to provider-specific names (e.g., `advanced-tool-use-2025-11-20` → `tool-search-tool-2025-10-19` for Bedrock) + +### Example + +Request with headers: +``` +anthropic-beta: advanced-tool-use-2025-11-20,computer-use-2025-01-24,unknown-header +``` + +For Bedrock Converse: +- ✅ `computer-use-2025-01-24` → `computer-use-2025-01-24` (supported, passed through) +- ❌ `advanced-tool-use-2025-11-20` → filtered out (null value in config) +- ❌ `unknown-header` → filtered out (not in config) + +Result sent to Bedrock: +``` +anthropic-beta: computer-use-2025-01-24 +``` + +## Dynamic Configuration Management (No Restart Required!) + +### Environment Variables + +Control how LiteLLM loads the beta headers configuration: + +| Variable | Description | Default | +|----------|-------------|---------| +| `LITELLM_ANTHROPIC_BETA_HEADERS_URL` | URL to fetch config from | GitHub main branch | +| `LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS` | Set to `True` to use local config only | `False` | + +**Example: Use Custom Config URL** +```bash +export LITELLM_ANTHROPIC_BETA_HEADERS_URL="https://your-company.com/custom-beta-headers.json" +``` + +**Example: Use Local Config Only (No Remote Fetching)** +```bash +export LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS=True +``` diff --git a/docs/my-website/blog/claude_opus_4_6/index.md b/docs/my-website/blog/claude_opus_4_6/index.md index 3fd70661543..e44420bd570 100644 --- a/docs/my-website/blog/claude_opus_4_6/index.md +++ b/docs/my-website/blog/claude_opus_4_6/index.md @@ -185,7 +185,7 @@ curl --location 'http://0.0.0.0:4000/chat/completions' \ model_list: - model_name: claude-opus-4-6 litellm_params: - model: bedrock/anthropic.claude-opus-4-6-v1:0 + model: bedrock/anthropic.claude-opus-4-6-v1 aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY aws_region_name: us-east-1 @@ -389,6 +389,10 @@ Compaction blocks are also supported in streaming mode. You'll receive: ### Adaptive Thinking +:::note +When using `reasoning_effort` with Claude Opus 4.6, all values (`low`, `medium`, `high`) are mapped to `thinking: {type: "adaptive"}`. To use explicit thinking budgets with `type: "enabled"`, pass the native `thinking` parameter directly (see "Native thinking param" tab below). +::: + @@ -434,6 +438,21 @@ curl --location 'http://0.0.0.0:4000/v1/messages' \ }' ``` + + + +Use the `thinking` parameter directly for adaptive thinking via the SDK: + +```python +import litellm + +response = litellm.completion( + model="anthropic/claude-opus-4-6", + messages=[{"role": "user", "content": "Solve this complex problem: What is the optimal strategy for..."}], + thinking={"type": "adaptive"}, +) +``` + diff --git a/docs/my-website/blog/minimax_m2_5/index.md b/docs/my-website/blog/minimax_m2_5/index.md new file mode 100644 index 00000000000..50084fcc1e5 --- /dev/null +++ b/docs/my-website/blog/minimax_m2_5/index.md @@ -0,0 +1,394 @@ +--- +slug: minimax_m2_5 +title: "Day 0 Support: MiniMax-M2.5" +date: 2026-02-12T10:00:00 +authors: + - name: Sameer Kankute + title: SWE @ LiteLLM (LLM Translation) + url: https://www.linkedin.com/in/sameer-kankute/ + image_url: https://pbs.twimg.com/profile_images/2001352686994907136/ONgNuSk5_400x400.jpg + - name: Krrish Dholakia + title: "CEO, LiteLLM" + url: https://www.linkedin.com/in/krish-d/ + image_url: https://pbs.twimg.com/profile_images/1298587542745358340/DZv3Oj-h_400x400.jpg + - name: Ishaan Jaff + title: "CTO, LiteLLM" + url: https://www.linkedin.com/in/reffajnaahsi/ + image_url: https://pbs.twimg.com/profile_images/1613813310264340481/lz54oEiB_400x400.jpg +description: "Day 0 support for MiniMax-M2.5 on LiteLLM" +tags: [minimax, M2.5, llm] +hide_table_of_contents: false +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +LiteLLM now supports MiniMax-M2.5 on Day 0. Use it across OpenAI-compatible and Anthropic-compatible APIs through the LiteLLM AI Gateway. + +## Supported Models + +LiteLLM supports the following MiniMax models: + +| Model | Description | Input Cost | Output Cost | Context Window | +|-------|-------------|------------|-------------|----------------| +| **MiniMax-M2.5** | Advanced reasoning, Agentic capabilities | $0.3/M tokens | $1.2/M tokens | 1M tokens | +| **MiniMax-M2.5-lightning** | Faster and More Agile (~100 tps) | $0.3/M tokens | $2.4/M tokens | 1M tokens | + +## Features Supported + +- **Prompt Caching**: Reduce costs with cached prompts ($0.03/M tokens for cache read, $0.375/M tokens for cache write) +- **Function Calling**: Built-in tool calling support +- **Reasoning**: Advanced reasoning capabilities with thinking support +- **System Messages**: Full system message support +- **Cost Tracking**: Automatic cost calculation for all requests + +## Docker Image + +```bash +docker pull litellm/litellm:v1.81.3-stable +``` + +## Usage - OpenAI Compatible API (/v1/chat/completions) + + + + +**1. Setup config.yaml** + +```yaml +model_list: + - model_name: minimax-m2-5 + litellm_params: + model: minimax/MiniMax-M2.5 + api_key: os.environ/MINIMAX_API_KEY + api_base: https://api.minimax.io/v1 +``` + +**2. Start the proxy** + +```bash +docker run -d \ + -p 4000:4000 \ + -e MINIMAX_API_KEY=$MINIMAX_API_KEY \ + -v $(pwd)/config.yaml:/app/config.yaml \ + ghcr.io/berriai/litellm:v1.81.3-stable \ + --config /app/config.yaml +``` + +**3. Test it!** + +```bash +curl --location 'http://0.0.0.0:4000/chat/completions' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer $LITELLM_KEY' \ +--data '{ + "model": "minimax-m2-5", + "messages": [ + { + "role": "user", + "content": "what llm are you" + } + ] +}' +``` + + + + +### With Reasoning Split + +```bash +curl --location 'http://0.0.0.0:4000/chat/completions' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer $LITELLM_KEY' \ +--data '{ + "model": "minimax-m2-5", + "messages": [ + { + "role": "user", + "content": "Solve: 2+2=?" + } + ], + "extra_body": { + "reasoning_split": true + } +}' +``` + +## Usage - Anthropic Compatible API (/v1/messages) + + + + +**1. Setup config.yaml** + +```yaml +model_list: + - model_name: minimax-m2-5 + litellm_params: + model: minimax/MiniMax-M2.5 + api_key: os.environ/MINIMAX_API_KEY + api_base: https://api.minimax.io/anthropic/v1/messages +``` + +**2. Start the proxy** + +```bash +docker run -d \ + -p 4000:4000 \ + -e MINIMAX_API_KEY=$MINIMAX_API_KEY \ + -v $(pwd)/config.yaml:/app/config.yaml \ + ghcr.io/berriai/litellm:v1.81.3-stable \ + --config /app/config.yaml +``` + +**3. Test it!** + +```bash +curl --location 'http://0.0.0.0:4000/v1/messages' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer $LITELLM_KEY' \ +--data '{ + "model": "minimax-m2-5", + "max_tokens": 1000, + "messages": [ + { + "role": "user", + "content": "what llm are you" + } + ] +}' +``` + + + + +### With Thinking + +```bash +curl --location 'http://0.0.0.0:4000/v1/messages' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer $LITELLM_KEY' \ +--data '{ + "model": "minimax-m2-5", + "max_tokens": 1000, + "thinking": { + "type": "enabled", + "budget_tokens": 1000 + }, + "messages": [ + { + "role": "user", + "content": "Solve: 2+2=?" + } + ] +}' +``` + +## Usage - LiteLLM SDK + +### OpenAI-compatible API + +```python +import litellm + +response = litellm.completion( + model="minimax/MiniMax-M2.5", + messages=[ + {"role": "user", "content": "Hello, how are you?"} + ], + api_key="your-minimax-api-key", + api_base="https://api.minimax.io/v1" +) + +print(response.choices[0].message.content) +``` + +### Anthropic-compatible API + +```python +import litellm + +response = litellm.anthropic.messages.acreate( + model="minimax/MiniMax-M2.5", + messages=[{"role": "user", "content": "Hello, how are you?"}], + api_key="your-minimax-api-key", + api_base="https://api.minimax.io/anthropic/v1/messages", + max_tokens=1000 +) + +print(response.choices[0].message.content) +``` + +### With Thinking + +```python +response = litellm.anthropic.messages.acreate( + model="minimax/MiniMax-M2.5", + messages=[{"role": "user", "content": "Solve: 2+2=?"}], + thinking={"type": "enabled", "budget_tokens": 1000}, + api_key="your-minimax-api-key" +) + +# Access thinking content +for block in response.choices[0].message.content: + if hasattr(block, 'type') and block.type == 'thinking': + print(f"Thinking: {block.thinking}") +``` + +### With Reasoning Split (OpenAI API) + +```python +response = litellm.completion( + model="minimax/MiniMax-M2.5", + messages=[ + {"role": "user", "content": "Solve: 2+2=?"} + ], + extra_body={"reasoning_split": True}, + api_key="your-minimax-api-key", + api_base="https://api.minimax.io/v1" +) + +# Access thinking and response +if hasattr(response.choices[0].message, 'reasoning_details'): + print(f"Thinking: {response.choices[0].message.reasoning_details}") +print(f"Response: {response.choices[0].message.content}") +``` + +## Cost Tracking + +LiteLLM automatically tracks costs for MiniMax-M2.5 requests. The pricing is: + +- **Input**: $0.3 per 1M tokens +- **Output**: $1.2 per 1M tokens +- **Cache Read**: $0.03 per 1M tokens +- **Cache Write**: $0.375 per 1M tokens + +### Accessing Cost Information + +```python +response = litellm.completion( + model="minimax/MiniMax-M2.5", + messages=[{"role": "user", "content": "Hello!"}], + api_key="your-minimax-api-key" +) + +# Access cost information +print(f"Cost: ${response._hidden_params.get('response_cost', 0)}") +``` + +## Streaming Support + +### OpenAI API + +```python +response = litellm.completion( + model="minimax/MiniMax-M2.5", + messages=[{"role": "user", "content": "Tell me a story"}], + stream=True, + api_key="your-minimax-api-key", + api_base="https://api.minimax.io/v1" +) + +for chunk in response: + if chunk.choices[0].delta.content: + print(chunk.choices[0].delta.content, end="") +``` + +### Streaming with Reasoning Split + +```python +stream = litellm.completion( + model="minimax/MiniMax-M2.5", + messages=[ + {"role": "user", "content": "Tell me a story"}, + ], + extra_body={"reasoning_split": True}, + stream=True, + api_key="your-minimax-api-key", + api_base="https://api.minimax.io/v1" +) + +reasoning_buffer = "" +text_buffer = "" + +for chunk in stream: + if hasattr(chunk.choices[0].delta, "reasoning_details") and chunk.choices[0].delta.reasoning_details: + for detail in chunk.choices[0].delta.reasoning_details: + if "text" in detail: + reasoning_text = detail["text"] + new_reasoning = reasoning_text[len(reasoning_buffer):] + if new_reasoning: + print(new_reasoning, end="", flush=True) + reasoning_buffer = reasoning_text + + if chunk.choices[0].delta.content: + content_text = chunk.choices[0].delta.content + new_text = content_text[len(text_buffer):] if text_buffer else content_text + if new_text: + print(new_text, end="", flush=True) + text_buffer = content_text +``` + +## Using with Native SDKs + +### Anthropic SDK via LiteLLM Proxy + +```python +import os +os.environ["ANTHROPIC_BASE_URL"] = "http://localhost:4000" +os.environ["ANTHROPIC_API_KEY"] = "sk-1234" # Your LiteLLM proxy key + +import anthropic + +client = anthropic.Anthropic() + +message = client.messages.create( + model="minimax-m2-5", + max_tokens=1000, + system="You are a helpful assistant.", + messages=[ + { + "role": "user", + "content": [ + { + "type": "text", + "text": "Hi, how are you?" + } + ] + } + ] +) + +for block in message.content: + if block.type == "thinking": + print(f"Thinking:\n{block.thinking}\n") + elif block.type == "text": + print(f"Text:\n{block.text}\n") +``` + +### OpenAI SDK via LiteLLM Proxy + +```python +import os +os.environ["OPENAI_BASE_URL"] = "http://localhost:4000" +os.environ["OPENAI_API_KEY"] = "sk-1234" # Your LiteLLM proxy key + +from openai import OpenAI + +client = OpenAI() + +response = client.chat.completions.create( + model="minimax-m2-5", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Hi, how are you?"}, + ], + extra_body={"reasoning_split": True}, +) + +# Access thinking and response +if hasattr(response.choices[0].message, 'reasoning_details'): + print(f"Thinking:\n{response.choices[0].message.reasoning_details[0]['text']}\n") +print(f"Text:\n{response.choices[0].message.content}\n") +``` diff --git a/docs/my-website/docs/adding_provider/generic_guardrail_api.md b/docs/my-website/docs/adding_provider/generic_guardrail_api.md index 482dedaa8a9..0931c349e48 100644 --- a/docs/my-website/docs/adding_provider/generic_guardrail_api.md +++ b/docs/my-website/docs/adding_provider/generic_guardrail_api.md @@ -93,6 +93,12 @@ Implement `POST /beta/litellm_basic_guardrail_api` "user_api_key_end_user_id": "end user id associated with the litellm virtual key used", "user_api_key_org_id": "org id associated with the litellm virtual key used" }, + "request_headers": { // optional: inbound request headers (allowlist). Allowed headers show their value; all others show "[present]" to indicate the header existed. + "User-Agent": "OpenAI/Python 2.17.0", + "Content-Type": "application/json", + "X-Request-Id": "[present]" + }, + "litellm_version": "1.x.y", // optional: LiteLLM library version running this proxy "input_type": "request", // "request" or "response" "litellm_call_id": "unique_call_id", // the call id of the individual LLM call "litellm_trace_id": "trace_id", // the trace id of the LLM call - useful if there are multiple LLM calls for the same conversation diff --git a/docs/my-website/docs/benchmarks.md b/docs/my-website/docs/benchmarks.md index a1489081b4c..1f818cef498 100644 --- a/docs/my-website/docs/benchmarks.md +++ b/docs/my-website/docs/benchmarks.md @@ -5,6 +5,13 @@ import Image from '@theme/IdealImage'; Benchmarks for LiteLLM Gateway (Proxy Server) tested against a fake OpenAI endpoint. +## Setting Up a Fake OpenAI Endpoint + +For load testing and benchmarking, you can use a fake OpenAI proxy server. LiteLLM provides: + +1. **Hosted endpoint**: Use our free hosted fake endpoint at `https://exampleopenaiendpoint-production.up.railway.app/` +2. **Self-hosted**: Set up your own fake OpenAI proxy server using [github.com/BerriAI/example_openai_endpoint](https://github.com/BerriAI/example_openai_endpoint) + Use this config for testing: ```yaml @@ -12,7 +19,7 @@ model_list: - model_name: "fake-openai-endpoint" litellm_params: model: openai/any - api_base: https://your-fake-openai-endpoint.com/chat/completions + api_base: https://exampleopenaiendpoint-production.up.railway.app/ # or your self-hosted endpoint api_key: "test" ``` diff --git a/docs/my-website/docs/completion/web_search.md b/docs/my-website/docs/completion/web_search.md index 9ba66c730f0..1f5ba2dee4e 100644 --- a/docs/my-website/docs/completion/web_search.md +++ b/docs/my-website/docs/completion/web_search.md @@ -18,7 +18,7 @@ Each provider uses their own search backend: | Provider | Search Engine | Notes | |----------|---------------|-------| -| **OpenAI** (`gpt-4o-search-preview`, `gpt-4o-mini-search-preview`, `gpt-5-search-api`) | OpenAI's internal search | Real-time web data | +| **OpenAI** (`gpt-5-search-api`, `gpt-4o-search-preview`, `gpt-4o-mini-search-preview`) | OpenAI's internal search | Real-time web data | | **xAI** (`grok-3`) | xAI's search + X/Twitter | Real-time social media data | | **Google AI/Vertex** (`gemini-2.0-flash`) | **Google Search** | Uses actual Google search results | | **Anthropic** (`claude-3-5-sonnet`) | Anthropic's web search | Real-time web data | @@ -45,6 +45,19 @@ Use `web_search_options` when you need to: **Anthropic Web Search Models**: Claude models that support web search: `claude-3-5-sonnet-latest`, `claude-3-5-sonnet-20241022`, `claude-3-5-haiku-latest`, `claude-3-5-haiku-20241022`, `claude-3-7-sonnet-20250219` ::: +## OpenAI Web Search: Two Approaches + +OpenAI offers two distinct ways to use web search depending on the endpoint and model: + +| Approach | Endpoint | Models | How to enable | +|----------|----------|--------|---------------| +| **Search Models** | `/chat/completions` | `gpt-5-search-api`, `gpt-4o-search-preview`, `gpt-4o-mini-search-preview` | Pass `web_search_options` parameter | +| **Web Search Tool** | `/responses` | `gpt-5`, `gpt-4.1`, `gpt-4o`, and other regular models | Pass `web_search_preview` tool | + +:::tip Search models search automatically +Search models like `gpt-5-search-api` **automatically search the web** even without the `web_search_options` parameter. Use `web_search_options` to set `search_context_size` (`"low"`, `"medium"`, `"high"`) or specify `user_location` for localized results. +::: + ## `/chat/completions` (litellm.completion) ### Quick Start @@ -56,7 +69,7 @@ Use `web_search_options` when you need to: from litellm import completion response = completion( - model="openai/gpt-4o-search-preview", + model="openai/gpt-5-search-api", messages=[ { "role": "user", @@ -76,31 +89,36 @@ response = completion( ```yaml model_list: - # OpenAI + # OpenAI search models + - model_name: gpt-5-search-api + litellm_params: + model: openai/gpt-5-search-api + api_key: os.environ/OPENAI_API_KEY + - model_name: gpt-4o-search-preview litellm_params: model: openai/gpt-4o-search-preview api_key: os.environ/OPENAI_API_KEY - + # xAI - model_name: grok-3 litellm_params: model: xai/grok-3 api_key: os.environ/XAI_API_KEY - + # Anthropic - model_name: claude-3-5-sonnet-latest litellm_params: model: anthropic/claude-3-5-sonnet-latest api_key: os.environ/ANTHROPIC_API_KEY - + # VertexAI - model_name: gemini-2-flash litellm_params: model: gemini-2.0-flash vertex_project: your-project-id vertex_location: us-central1 - + # Google AI Studio - model_name: gemini-2-flash-studio litellm_params: @@ -108,13 +126,13 @@ model_list: api_key: os.environ/GOOGLE_API_KEY ``` -2. Start the proxy +2. Start the proxy ```bash litellm --config /path/to/config.yaml ``` -3. Test it! +3. Test it! ```python showLineNumbers from openai import OpenAI @@ -126,13 +144,18 @@ client = OpenAI( ) response = client.chat.completions.create( - model="grok-3", # or any other web search enabled model + model="gpt-5-search-api", # or any other web search enabled model messages=[ { "role": "user", "content": "What was a positive news story from today?" } - ] + ], + extra_body={ + "web_search_options": { + "search_context_size": "medium" + } + } ) ``` @@ -149,7 +172,7 @@ from litellm import completion # Customize search context size response = completion( - model="openai/gpt-4o-search-preview", + model="openai/gpt-5-search-api", messages=[ { "role": "user", @@ -257,6 +280,12 @@ response = client.chat.completions.create( ## `/responses` (litellm.responses) +Use the `web_search_preview` tool with models like `gpt-5`, `gpt-4.1`, `gpt-4o`, etc. + +:::info +Search-dedicated models like `gpt-5-search-api` and `gpt-4o-search-preview` do **not** support the `/responses` endpoint. Use them with `/chat/completions` + `web_search_options` instead (see above). +::: + ### Quick Start @@ -266,18 +295,14 @@ response = client.chat.completions.create( from litellm import responses response = responses( - model="openai/gpt-4o", - input=[ - { - "role": "user", - "content": "What was a positive news story from today?" - } - ], + model="openai/gpt-5", + input="What is the capital of France?", tools=[{ "type": "web_search_preview" # enables web search with default medium context size }] ) ``` + @@ -285,19 +310,24 @@ response = responses( ```yaml model_list: - - model_name: gpt-4o + - model_name: gpt-5 litellm_params: - model: openai/gpt-4o + model: openai/gpt-5 + api_key: os.environ/OPENAI_API_KEY + + - model_name: gpt-4.1 + litellm_params: + model: openai/gpt-4.1 api_key: os.environ/OPENAI_API_KEY ``` -2. Start the proxy +2. Start the proxy ```bash litellm --config /path/to/config.yaml ``` -3. Test it! +3. Test it! ```python showLineNumbers from openai import OpenAI @@ -309,11 +339,11 @@ client = OpenAI( ) response = client.responses.create( - model="gpt-4o", + model="gpt-5", tools=[{ "type": "web_search_preview" }], - input="What was a positive news story from today?", + input="What is the capital of France?", ) print(response.output_text) @@ -331,13 +361,8 @@ from litellm import responses # Customize search context size response = responses( - model="openai/gpt-4o", - input=[ - { - "role": "user", - "content": "What was a positive news story from today?" - } - ], + model="openai/gpt-5", + input="What is the capital of France?", tools=[{ "type": "web_search_preview", "search_context_size": "low" # Options: "low", "medium" (default), "high" @@ -358,12 +383,12 @@ client = OpenAI( # Customize search context size response = client.responses.create( - model="gpt-4o", + model="gpt-5", tools=[{ "type": "web_search_preview", "search_context_size": "low" # Options: "low", "medium" (default), "high" }], - input="What was a positive news story from today?", + input="What is the capital of France?", ) print(response.output_text) @@ -417,14 +442,14 @@ model_list: web_search_options: search_context_size: "high" # Options: "low", "medium", "high" - # Different context size for different models - - model_name: gpt-4o-search-preview + # OpenAI search model with custom context size + - model_name: gpt-5-search-api litellm_params: - model: openai/gpt-4o-search-preview + model: openai/gpt-5-search-api api_key: os.environ/OPENAI_API_KEY web_search_options: search_context_size: "low" - + # Gemini with medium context (default) - model_name: gemini-2-flash litellm_params: @@ -449,6 +474,7 @@ Use `litellm.supports_web_search(model="model_name")` -> returns `True` if model ```python showLineNumbers # Check OpenAI models +assert litellm.supports_web_search(model="openai/gpt-5-search-api") == True assert litellm.supports_web_search(model="openai/gpt-4o-search-preview") == True # Check xAI models @@ -472,13 +498,20 @@ assert litellm.supports_web_search(model="gemini/gemini-2.0-flash") == True ```yaml model_list: # OpenAI + - model_name: gpt-5-search-api + litellm_params: + model: openai/gpt-5-search-api + api_key: os.environ/OPENAI_API_KEY + model_info: + supports_web_search: True + - model_name: gpt-4o-search-preview litellm_params: model: openai/gpt-4o-search-preview api_key: os.environ/OPENAI_API_KEY model_info: supports_web_search: True - + # xAI - model_name: grok-3 litellm_params: @@ -533,6 +566,12 @@ Expected Response ```json showLineNumbers { "data": [ + { + "model_group": "gpt-5-search-api", + "providers": ["openai"], + "max_tokens": 128000, + "supports_web_search": true + }, { "model_group": "gpt-4o-search-preview", "providers": ["openai"], diff --git a/docs/my-website/docs/load_test.md b/docs/my-website/docs/load_test.md index 4641a70366c..071b097904b 100644 --- a/docs/my-website/docs/load_test.md +++ b/docs/my-website/docs/load_test.md @@ -4,8 +4,9 @@ import Image from '@theme/IdealImage'; ## Locust Load Test LiteLLM Proxy -1. Add `fake-openai-endpoint` to your proxy config.yaml and start your litellm proxy -litellm provides a free hosted `fake-openai-endpoint` you can load test against +1. Add `fake-openai-endpoint` to your proxy config.yaml and start your litellm proxy. + +LiteLLM provides a free hosted `fake-openai-endpoint` you can load test against. You can also self-host your own fake OpenAI proxy server using [github.com/BerriAI/example_openai_endpoint](https://github.com/BerriAI/example_openai_endpoint). ```yaml model_list: diff --git a/docs/my-website/docs/load_test_advanced.md b/docs/my-website/docs/load_test_advanced.md index 3171bc33594..d35b5f74784 100644 --- a/docs/my-website/docs/load_test_advanced.md +++ b/docs/my-website/docs/load_test_advanced.md @@ -29,12 +29,16 @@ Tutorial on how to get to 1K+ RPS with LiteLLM Proxy on locust **Note:** we're currently migrating to aiohttp which has 10x higher throughput. We recommend using the `openai/` provider for load testing. +:::tip Setting Up a Fake OpenAI Endpoint +You can use our hosted fake endpoint or self-host your own using [github.com/BerriAI/example_openai_endpoint](https://github.com/BerriAI/example_openai_endpoint). +::: + ```yaml model_list: - model_name: "fake-openai-endpoint" litellm_params: model: openai/any - api_base: https://your-fake-openai-endpoint.com/chat/completions + api_base: https://exampleopenaiendpoint-production.up.railway.app/ # or your self-hosted endpoint api_key: "test" ``` diff --git a/docs/my-website/docs/mcp_oauth.md b/docs/my-website/docs/mcp_oauth.md index 9cd7b1e77be..5c4b70cc5b3 100644 --- a/docs/my-website/docs/mcp_oauth.md +++ b/docs/my-website/docs/mcp_oauth.md @@ -242,3 +242,96 @@ curl http://localhost:4000/mcp-rest/tools/call \ | `client_secret` | Yes | OAuth2 client secret. Supports `os.environ/VAR_NAME` | | `token_url` | Yes | Token endpoint URL | | `scopes` | No | List of scopes to request | + +## Debugging OAuth + +When the LiteLLM proxy is hosted remotely and you cannot access server logs, enable **debug headers** to get masked authentication diagnostics in the HTTP response. + +### Enable Debug Mode + +Add the `x-litellm-mcp-debug: true` header to your MCP client request. + +**Claude Code:** + +```bash +claude mcp add --transport http litellm_proxy http://proxy.example.com/atlassian_mcp/mcp \ + --header "x-litellm-api-key: Bearer sk-..." \ + --header "x-litellm-mcp-debug: true" +``` + +**curl:** + +```bash +curl -X POST http://localhost:4000/atlassian_mcp/mcp \ + -H "Content-Type: application/json" \ + -H "x-litellm-api-key: Bearer sk-..." \ + -H "x-litellm-mcp-debug: true" \ + -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' +``` + +### Reading the Debug Response Headers + +The response includes these headers (all sensitive values are masked): + +| Header | Description | +|--------|-------------| +| `x-mcp-debug-inbound-auth` | Which inbound auth headers were present. | +| `x-mcp-debug-oauth2-token` | The OAuth2 token (masked). Shows `SAME_AS_LITELLM_KEY` if the LiteLLM key is leaking. | +| `x-mcp-debug-auth-resolution` | Which auth method was used: `oauth2-passthrough`, `m2m-client-credentials`, `per-request-header`, `static-token`, or `no-auth`. | +| `x-mcp-debug-outbound-url` | The upstream MCP server URL. | +| `x-mcp-debug-server-auth-type` | The `auth_type` configured on the server. | + +**Example — healthy OAuth2 passthrough:** + +``` +x-mcp-debug-inbound-auth: x-litellm-api-key=Bearer****1234; authorization=Bearer****ef01 +x-mcp-debug-oauth2-token: Bearer****ef01 +x-mcp-debug-auth-resolution: oauth2-passthrough +x-mcp-debug-outbound-url: https://mcp.atlassian.com/v1/mcp +x-mcp-debug-server-auth-type: oauth2 +``` + +**Example — LiteLLM key leaking (misconfigured):** + +``` +x-mcp-debug-inbound-auth: authorization=Bearer****1234 +x-mcp-debug-oauth2-token: Bearer****1234 (SAME_AS_LITELLM_KEY - likely misconfigured) +x-mcp-debug-auth-resolution: oauth2-passthrough +x-mcp-debug-outbound-url: https://mcp.atlassian.com/v1/mcp +x-mcp-debug-server-auth-type: oauth2 +``` + +### Common Issues + +#### LiteLLM API key leaking to the MCP server + +**Symptom:** `x-mcp-debug-oauth2-token` shows `SAME_AS_LITELLM_KEY`. + +The `Authorization` header carries the LiteLLM API key instead of an OAuth2 token. The OAuth2 flow never ran because the client already had an `Authorization` header set. + +**Fix:** Move the LiteLLM key to `x-litellm-api-key`: + +```bash +# WRONG — blocks OAuth2 discovery +claude mcp add --transport http my_server http://proxy/mcp/server \ + --header "Authorization: Bearer sk-..." + +# CORRECT — LiteLLM key in dedicated header, Authorization free for OAuth2 +claude mcp add --transport http my_server http://proxy/mcp/server \ + --header "x-litellm-api-key: Bearer sk-..." +``` + +#### No OAuth2 token present + +**Symptom:** `x-mcp-debug-oauth2-token` shows `(none)` and `x-mcp-debug-auth-resolution` shows `no-auth`. + +Check that: +1. The `Authorization` header is NOT set as a static header in the client config. +2. The MCP server in LiteLLM config has `auth_type: oauth2`. +3. The `.well-known/oauth-protected-resource` endpoint returns valid metadata. + +#### M2M token used instead of user token + +**Symptom:** `x-mcp-debug-auth-resolution` shows `m2m-client-credentials`. + +The server has `client_id`/`client_secret`/`token_url` configured so LiteLLM is fetching a machine-to-machine token instead of using the per-user OAuth2 token. To use per-user tokens, remove the client credentials from the server config. diff --git a/docs/my-website/docs/mcp_troubleshoot.md b/docs/my-website/docs/mcp_troubleshoot.md index 27ba0e4d787..57e7bfa674d 100644 --- a/docs/my-website/docs/mcp_troubleshoot.md +++ b/docs/my-website/docs/mcp_troubleshoot.md @@ -6,6 +6,39 @@ When LiteLLM acts as an MCP proxy, traffic normally flows `Client → LiteLLM Pr For provisioning steps, transport options, and configuration fields, refer to [mcp.md](./mcp.md). +## Quick Start: Debug with One Command + +The fastest way to debug MCP issues is to enable **debug headers**. Run this curl against your LiteLLM proxy and check the response headers: + +```bash +curl -si -X POST http://localhost:4000/{your_mcp_server}/mcp \ + -H "Content-Type: application/json" \ + -H "x-litellm-api-key: Bearer sk-YOUR_KEY" \ + -H "x-litellm-mcp-debug: true" \ + -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \ + 2>&1 | grep -i "x-mcp-debug" +``` + +This returns masked diagnostic headers that tell you exactly what's happening with authentication: + +``` +x-mcp-debug-inbound-auth: x-litellm-api-key=Bearer****1234 +x-mcp-debug-oauth2-token: Bearer****ef01 +x-mcp-debug-auth-resolution: oauth2-passthrough +x-mcp-debug-outbound-url: https://mcp.atlassian.com/v1/mcp +x-mcp-debug-server-auth-type: oauth2 +``` + +If you see `SAME_AS_LITELLM_KEY` in `x-mcp-debug-oauth2-token`, your LiteLLM API key is leaking to the MCP server instead of an OAuth2 token. See [Debugging OAuth](./mcp_oauth#debugging-oauth) for the fix and other common issues. + +For Claude Code, add the debug header to your MCP config: + +```bash +claude mcp add --transport http my_server http://localhost:4000/my_mcp/mcp \ + --header "x-litellm-api-key: Bearer sk-..." \ + --header "x-litellm-mcp-debug: true" +``` + ## Locate the Error Source Pin down where the failure occurs before adjusting settings so you do not mix symptoms from separate hops. @@ -13,7 +46,7 @@ Pin down where the failure occurs before adjusting settings so you do not mix sy ### LiteLLM UI / Playground Errors (LiteLLM → MCP) Failures shown on the MCP creation form or within the MCP Tool Testing Playground mean the LiteLLM proxy cannot reach the MCP server. Typical causes are misconfiguration (transport, headers, credentials), MCP/server outages, network/firewall blocks, or inaccessible OAuth metadata. - @@ -22,7 +55,7 @@ Failures shown on the MCP creation form or within the MCP Tool Testing Playgroun **Actions** - Capture LiteLLM proxy logs alongside MCP-server logs (see [Error Log Example](./mcp_troubleshoot#error-log-example-failed-mcp-call)) to inspect the request/response pair and stack traces. -- From the LiteLLM server, run Method 2 ([`curl` smoke test](./mcp_troubleshoot#curl-smoke-test)) against the MCP endpoint to confirm basic connectivity. +- From the LiteLLM server, run a [`curl` smoke test](./mcp_troubleshoot#curl-smoke-test) against the MCP endpoint to confirm basic connectivity. ### Client Traffic Issues (Client → LiteLLM) If only real client requests fail, determine whether LiteLLM ever reaches the MCP hop. @@ -43,7 +76,7 @@ During `/responses` or `/chat/completions`, LiteLLM may trigger MCP tool calls m - Validate MCP connectivity with the [MCP Inspector](./mcp_troubleshoot#mcp-inspector) to ensure the server responds. - Reproduce the same MCP call via the LiteLLM Playground to confirm LiteLLM can complete the MCP hop independently. - @@ -55,6 +88,10 @@ LiteLLM performs metadata discovery per the MCP spec ([section 2.3](https://mode - Use `curl ` (or similar) from the LiteLLM host to ensure the discovery document is reachable and contains the expected authorization/token endpoints. - Record the exact metadata URL, requested scopes, and any static client credentials so support can replay the discovery step if needed. +## Debugging OAuth + +For detailed OAuth2 debugging — including debug header reference, common misconfigurations, and example output — see [Debugging OAuth](./mcp_oauth#debugging-oauth). + ## Verify Connectivity Run lightweight validations before impacting production traffic. @@ -66,7 +103,7 @@ Use the MCP Inspector when you need to test both `Client → LiteLLM` and `Clien 2. Configure and connect: - **Transport Type:** choose the transport the client uses (Streamable HTTP for LiteLLM). - **URL:** the endpoint under test (LiteLLM MCP URL for `Client → LiteLLM`, or the MCP server URL for `Client → MCP`). - - **Custom Headers:** e.g., `Authorization: Bearer `. + - **Custom Headers:** e.g., `x-litellm-api-key: Bearer `. 3. Open the **Tools** tab and click **List Tools** to verify the MCP alias responds. ### `curl` Smoke Test @@ -79,7 +116,7 @@ curl -X POST https://your-target-domain.example.com/mcp \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' ``` -Add `-H "Authorization: Bearer "` when the target is a LiteLLM endpoint that requires authentication. Adjust the headers, or payload to target other MCP methods. Matching failures between `curl` and LiteLLM confirm that the MCP server or network/OAuth layer is the culprit. +Add `-H "x-litellm-api-key: Bearer "` when the target is a LiteLLM endpoint that requires authentication. Adjust the headers or payload to target other MCP methods. Matching failures between `curl` and LiteLLM confirm that the MCP server or network/OAuth layer is the culprit. ## Review Logs diff --git a/docs/my-website/docs/projects/openai-agents.md b/docs/my-website/docs/projects/openai-agents.md index 95a2191b883..86983e7e510 100644 --- a/docs/my-website/docs/projects/openai-agents.md +++ b/docs/my-website/docs/projects/openai-agents.md @@ -1,22 +1,121 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; # OpenAI Agents SDK -The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) is a lightweight framework for building multi-agent workflows. -It includes an official LiteLLM extension that lets you use any of the 100+ supported providers (Anthropic, Gemini, Mistral, Bedrock, etc.) +Use OpenAI Agents SDK with any LLM provider through LiteLLM Proxy. + +The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) is a lightweight framework for building multi-agent workflows. It includes an official LiteLLM extension that lets you use any of the 100+ supported providers. + +## Quick Start + +### 1. Install Dependencies + +```bash +pip install "openai-agents[litellm]" +``` + +### 2. Add Model to Config + +```yaml title="config.yaml" +model_list: + - model_name: gpt-4o + litellm_params: + model: "openai/gpt-4o" + api_key: "os.environ/OPENAI_API_KEY" + + - model_name: claude-sonnet + litellm_params: + model: "anthropic/claude-3-5-sonnet-20241022" + api_key: "os.environ/ANTHROPIC_API_KEY" + + - model_name: gemini-pro + litellm_params: + model: "gemini/gemini-2.0-flash-exp" + api_key: "os.environ/GEMINI_API_KEY" +``` + +### 3. Start LiteLLM Proxy + +```bash +litellm --config config.yaml +``` + +### 4. Use with Proxy + + + ```python from agents import Agent, Runner from agents.extensions.models.litellm_model import LitellmModel +# Point to LiteLLM proxy agent = Agent( name="Assistant", instructions="You are a helpful assistant.", - model=LitellmModel(model="provider/model-name") + model=LitellmModel( + model="claude-sonnet", # Model from config.yaml + api_key="sk-1234", # LiteLLM API key + base_url="http://localhost:4000" + ) ) -result = Runner.run_sync(agent, "your_prompt_here") -print("Result:", result.final_output) +result = await Runner.run(agent, "What is LiteLLM?") +print(result.final_output) ``` -- [GitHub](https://github.com/openai/openai-agents-python) -- [LiteLLM Extension Docs](https://openai.github.io/openai-agents-python/ref/extensions/litellm/) + + + +```python +from agents import Agent, Runner +from agents.extensions.models.litellm_model import LitellmModel + +# Use any provider directly +agent = Agent( + name="Assistant", + instructions="You are a helpful assistant.", + model=LitellmModel( + model="anthropic/claude-3-5-sonnet-20241022", + api_key="your-anthropic-key" + ) +) + +result = await Runner.run(agent, "What is LiteLLM?") +print(result.final_output) +``` + + + + +## Track Usage + +Enable usage tracking to monitor token consumption: + +```python +from agents import Agent, ModelSettings +from agents.extensions.models.litellm_model import LitellmModel + +agent = Agent( + name="Assistant", + model=LitellmModel(model="claude-sonnet", api_key="sk-1234"), + model_settings=ModelSettings(include_usage=True) +) + +result = await Runner.run(agent, "Hello") +print(result.context_wrapper.usage) # Token counts +``` + +## Environment Variables + +| Variable | Value | Description | +|----------|-------|-------------| +| `LITELLM_BASE_URL` | `http://localhost:4000` | LiteLLM proxy URL | +| `LITELLM_API_KEY` | `sk-1234` | Your LiteLLM API key | + +## Related Resources + +- [OpenAI Agents SDK Documentation](https://openai.github.io/openai-agents-python/) +- [LiteLLM Extension Docs](https://openai.github.io/openai-agents-python/models/litellm/) +- [LiteLLM Proxy Quick Start](../proxy/quick_start) diff --git a/docs/my-website/docs/providers/anthropic.md b/docs/my-website/docs/providers/anthropic.md index 446d663c5ac..de5a4dc610c 100644 --- a/docs/my-website/docs/providers/anthropic.md +++ b/docs/my-website/docs/providers/anthropic.md @@ -1473,6 +1473,20 @@ LiteLLM translates OpenAI's `reasoning_effort` to Anthropic's `thinking` paramet | "medium" | "budget_tokens": 2048 | | "high" | "budget_tokens": 4096 | +:::note +For Claude Opus 4.6, all `reasoning_effort` values (`low`, `medium`, `high`) are mapped to `thinking: {type: "adaptive"}`. To use explicit thinking budgets, pass the native `thinking` parameter directly: + +```python +from litellm import completion + +resp = completion( + model="anthropic/claude-opus-4-6", + messages=[{"role": "user", "content": "What is the capital of France?"}], + thinking={"type": "enabled", "budget_tokens": 1024}, +) +``` +::: + @@ -1614,8 +1628,65 @@ curl http://0.0.0.0:4000/v1/chat/completions \ +#### Adaptive Thinking (Claude Opus 4.6) + + +```python +response = litellm.completion( + model="anthropic/claude-opus-4-6", + messages=[{"role": "user", "content": "What is the optimal strategy for solving this problem?"}], + thinking={"type": "adaptive"}, +) +``` + + + + +```bash +curl http://0.0.0.0:4000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $LITELLM_KEY" \ + -d '{ + "model": "anthropic/claude-opus-4-6", + "messages": [{"role": "user", "content": "What is the optimal strategy for solving this problem?"}], + "thinking": {"type": "adaptive"} + }' +``` + + + + +#### Enabled Thinking with Budget + + + + +```python +response = litellm.completion( + model="anthropic/claude-opus-4-6", + messages=[{"role": "user", "content": "What is the capital of France?"}], + thinking={"type": "enabled", "budget_tokens": 5000}, +) +``` + + + + +```bash +curl http://0.0.0.0:4000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $LITELLM_KEY" \ + -d '{ + "model": "anthropic/claude-opus-4-6", + "messages": [{"role": "user", "content": "What is the capital of France?"}], + "thinking": {"type": "enabled", "budget_tokens": 5000} + }' +``` + + + ## **Passing Extra Headers to Anthropic API** diff --git a/docs/my-website/docs/providers/dashscope.md b/docs/my-website/docs/providers/dashscope.md index 565776d6c4c..3df0fbab1ba 100644 --- a/docs/my-website/docs/providers/dashscope.md +++ b/docs/my-website/docs/providers/dashscope.md @@ -1,7 +1,7 @@ -# Dashscope (Qwen API) +# Dashscope API (Qwen models) https://dashscope.console.aliyun.com/ -**We support ALL Qwen models, just set `dashscope/` as a prefix when sending completion requests** +**We support ALL Qwen models (from Alibaba Cloud), just set `dashscope/` as a prefix when sending completion requests** ## API Key ```python @@ -9,6 +9,26 @@ https://dashscope.console.aliyun.com/ os.environ['DASHSCOPE_API_KEY'] ``` +## API Base +You can optionally specify the API base URL depending on your region: + +| Region | API Base | +|--------|----------| +| **International** | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` | +| **China/Beijing** | `https://dashscope.aliyuncs.com/compatible-mode/v1` | + +```python +# Set via environment variable +os.environ['DASHSCOPE_API_BASE'] = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" + +# Or pass directly in the completion call +response = completion( + model="dashscope/qwen-turbo", + messages=[{"role": "user", "content": "hello"}], + api_base="https://dashscope-intl.aliyuncs.com/compatible-mode/v1" +) +``` + ## Sample Usage ```python from litellm import completion @@ -43,9 +63,7 @@ for chunk in response: ``` -## Supported Models - ALL Qwen Models Supported! -We support ALL Qwen models, just set `dashscope/` as a prefix when sending completion requests - +## All supported Models [DashScope Model List](https://help.aliyun.com/zh/model-studio/compatibility-of-openai-with-dashscope?spm=a2c4g.11186623.help-menu-2400256.d_2_8_0.1efd516e2tTXBn&scm=20140722.H_2833609._.OR_help-T_cn~zh-V_1#7f9c78ae99pwz) diff --git a/docs/my-website/docs/providers/openai.md b/docs/my-website/docs/providers/openai.md index 80645a51ac5..23940e1c54e 100644 --- a/docs/my-website/docs/providers/openai.md +++ b/docs/my-website/docs/providers/openai.md @@ -230,7 +230,70 @@ os.environ["OPENAI_BASE_URL"] = "https://your_host/v1" # OPTIONAL These also support the `OPENAI_BASE_URL` environment variable, which can be used to specify a custom API endpoint. -## OpenAI Vision Models +### OpenAI Web Search Models + +OpenAI has two ways to use web search, depending on the endpoint: + +| Approach | Endpoint | Models | How to enable | +|----------|----------|--------|---------------| +| **Search Models** | `/chat/completions` | `gpt-5-search-api`, `gpt-4o-search-preview`, `gpt-4o-mini-search-preview` | Pass `web_search_options` parameter | +| **Web Search Tool** | `/responses` | `gpt-5`, `gpt-4.1`, `gpt-4o`, and other regular models | Pass `web_search_preview` tool | + + + + +```python showLineNumbers +from litellm import completion + +response = completion( + model="openai/gpt-5-search-api", + messages=[{"role": "user", "content": "What is the capital of France?"}], + web_search_options={ + "search_context_size": "medium" # Options: "low", "medium", "high" + } +) +``` + + + + +```python showLineNumbers +from litellm import responses + +response = responses( + model="openai/gpt-5", + input="What is the capital of France?", + tools=[{ + "type": "web_search_preview", + "search_context_size": "low" + }] +) +``` + + + + +```yaml +model_list: + # Search model for /chat/completions + - model_name: gpt-5-search-api + litellm_params: + model: openai/gpt-5-search-api + api_key: os.environ/OPENAI_API_KEY + + # Regular model for /responses with web_search_preview tool + - model_name: gpt-5 + litellm_params: + model: openai/gpt-5 + api_key: os.environ/OPENAI_API_KEY +``` + + + + +For full details, see the [Web Search guide](../completion/web_search.md). + +## OpenAI Vision Models | Model Name | Function Call | |-----------------------|-----------------------------------------------------------------| | gpt-4o | `response = completion(model="gpt-4o", messages=messages)` | diff --git a/docs/my-website/docs/providers/openai/responses_api.md b/docs/my-website/docs/providers/openai/responses_api.md index 75eab1afac5..7799c93ccf2 100644 --- a/docs/my-website/docs/providers/openai/responses_api.md +++ b/docs/my-website/docs/providers/openai/responses_api.md @@ -37,6 +37,24 @@ for event in response: print(event) ``` +#### Web Search +```python showLineNumbers title="OpenAI Responses with Web Search" +import litellm + +response = litellm.responses( + model="openai/gpt-5", + input="What is the capital of France?", + tools=[{ + "type": "web_search_preview", + "search_context_size": "medium" # Options: "low", "medium", "high" + }] +) + +print(response) +``` + +For full details, see the [Web Search guide](../../completion/web_search.md). + #### Image Generation with Streaming ```python showLineNumbers title="OpenAI Streaming Image Generation" import litellm diff --git a/docs/my-website/docs/providers/scaleway.md b/docs/my-website/docs/providers/scaleway.md new file mode 100644 index 00000000000..ea57c24db30 --- /dev/null +++ b/docs/my-website/docs/providers/scaleway.md @@ -0,0 +1,62 @@ + +# Scaleway +LiteLLM supports all [models available on Scaleway Generative APIs ↗](https://www.scaleway.com/en/docs/generative-apis/reference-content/supported-models/). + +## Usage with LiteLLM Python SDK + +```python +import os +from litellm import completion + +os.environ["SCW_SECRET_KEY"] = "your-scaleway-secret-key" + +messages = [{"role": "user", "content": "Write a short poem"}] +response = completion(model="scaleway/qwen3-235b-a22b-instruct-2507", messages=messages) +print(response) +``` + +## Usage with LiteLLM Proxy + +### 1. Set Scaleway models in config.yaml + +```yaml +model_list: + - model_name: scaleway-model + litellm_params: + model: scaleway/qwen3-235b-a22b-instruct-2507 + api_key: "os.environ/SCW_SECRET_KEY" # ensure you have `SCW_SECRET_KEY` in your .env +``` + +### 2. Start proxy + +```bash +litellm --config config.yaml +``` + +### 3. Query proxy + +Assuming the proxy is running on [http://localhost:4000](http://localhost:4000): +```bash +curl http://localhost:4000/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer YOUR_LITELLM_MASTER_KEY" \ + -d '{ + "model": "scaleway-model", + "messages": [ + { + "role": "system", + "content": "You are a helpful assistant." + }, + { + "role": "user", + "content": "Write a short poem" + } + ] + }' +``` +`-H "Authorization: Bearer YOUR_LITELLM_MASTER_KEY" ` is only required if you have set a LiteLLM master key + + +## Supported features + +Scaleway provider supports all features in [Generative APIs reference documentation ↗](https://www.scaleway.com/en/developers/api/generative-apis/), such as streaming, structured outputs and tool calling. diff --git a/docs/my-website/docs/proxy/access_groups.md b/docs/my-website/docs/proxy/access_groups.md new file mode 100644 index 00000000000..59904575da8 --- /dev/null +++ b/docs/my-website/docs/proxy/access_groups.md @@ -0,0 +1,122 @@ +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Access Groups + +Access Groups simplify how you define and manage resource access across your organization. Instead of configuring models, MCP servers, and agents separately on each key or team, you create one group that bundles the resources you want to grant, then attach that group to your keys or teams. + +## Overview + +**Access Groups** let you define a reusable set of allowed resources—models, MCP servers, and agents—in a single place. One group can grant access to all three resource types. Simply attach the group to a key or team, and they get access to everything defined in that group. + +- **Unified resource control** – One group controls access to models, MCP servers, and agents together +- **Reusable** – Define once, attach to many keys or teams +- **Easy to maintain** – Update the group (add or remove resources) and all attached keys and teams automatically reflect the change +- **Clear visibility** – See exactly which resources each group grants and which keys/teams use it + + + +### How It Works + +**Key concept:** Define resources in a group → Attach group to key or team → Key/team gets access to all resources in the group + +| Resource Type | What the group controls | +| --------------- | -------------------------------------------------------------------- | +| **Models** | Which LLM models keys/teams can use (e.g., `gpt-4`, `claude-3-opus`) | +| **MCP Servers** | Which MCP servers are available for tool calling | +| **Agents** | Which agents can be invoked | + +## How to Create and Use Access Groups in the UI + +### 1. Navigate to Access Groups + +Go to the Admin UI (e.g. `http://localhost:4000/ui` or your `PROXY_BASE_URL/ui`) and click **Access Groups** in the sidebar. + + + +### 2. Create an Access Group + +Click **Create Access Group** and give your group a name. + + + + + +### 3. Define Resources in the Group + +Use the tabs to select which models, MCP servers, and agents this group grants access to: + +- **Models tab** – Select the LLM models +- **MCP Servers tab** – Select MCP servers (for tool calling) +- **Agents tab** – Select agents + + + + + + + +### 4. Attach the Access Group to a Key + +When creating or editing a virtual key, expand **Optional Settings** and select your Access Group. The key will inherit access to all models, MCP servers, and agents defined in that group. + +1. Go to **Virtual Keys** and click **+ Create New Key** +2. Expand **Optional Settings** +3. In the Access Group field, select the group you created +4. Save the key + + + + + + + + + + + +### 5. Attach the Access Group to a Team + +You can also attach an Access Group to a team when creating or editing the team. All keys associated with that team will then have access to the resources defined in the group. + +## Use Cases + +### Team-based Access + +Create groups like "Engineering", "Data Science", or "Product" with the models, MCP servers, and agents each team needs. Attach the group to the team—no need to configure each resource on every key. + +### Environment Separation + +- **Production group** – Production models, approved MCP servers, and production agents +- **Development group** – Cost-efficient models, experimental MCP tools, and dev agents + +Attach the appropriate group to keys or teams based on environment. + +### Simplified Onboarding + +New developers get a key with an Access Group instead of manually configuring models, MCP servers, and agents. Add them to the right team or give them a key with the correct group. + +### Centralized Updates + +When you add a new model or MCP server to a group, every key and team attached to that group automatically gains access. Remove a resource from the group and it’s revoked everywhere at once. + +## Access Group vs. Model Access Groups + +LiteLLM has two related concepts: + +| Feature | **Access Groups** (this page) | **Model Access Groups** | +| ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------- | +| Definition | Define in the UI; one group can include models, MCP servers, and agents | Defined in config or via API; groups are model-centric | +| Scope | Models + MCP servers + agents | Models only | +| Attach to | Keys, teams | Keys, teams | +| Use when | You want unified control over models, MCP, and agents from the UI | You need config-based or API-based model access control | + +For config-based model access with `access_groups` in `model_info`, see [Model Access Groups](./model_access_groups.md). + +## Related Documentation + +- [Virtual Keys](./virtual_keys.md) – Creating and managing API keys +- [Role-based Access Controls](./access_control.md) – Organizations, teams, and user roles +- [Model Access Groups](./model_access_groups.md) – Config-based model access groups +- [MCP Control](../mcp_control.md) – MCP server setup and access control diff --git a/docs/my-website/docs/proxy/config_settings.md b/docs/my-website/docs/proxy/config_settings.md index 5b6c6669b91..5e3f56c4206 100644 --- a/docs/my-website/docs/proxy/config_settings.md +++ b/docs/my-website/docs/proxy/config_settings.md @@ -395,7 +395,7 @@ router_settings: | ATHINA_API_KEY | API key for Athina service | ATHINA_BASE_URL | Base URL for Athina service (defaults to `https://log.athina.ai`) | AUTH_STRATEGY | Strategy used for authentication (e.g., OAuth, API key) -| AUTO_REDIRECT_UI_LOGIN_TO_SSO | Flag to enable automatic redirect of UI login page to SSO when SSO is configured. Default is **true** +| AUTO_REDIRECT_UI_LOGIN_TO_SSO | Flag to enable automatic redirect of UI login page to SSO when SSO is configured. Default is **false** | AUDIO_SPEECH_CHUNK_SIZE | Chunk size for audio speech processing. Default is 1024 | ANTHROPIC_API_KEY | API key for Anthropic service | ANTHROPIC_API_BASE | Base URL for Anthropic API. Default is https://api.anthropic.com @@ -520,6 +520,7 @@ router_settings: | DEBUG_OTEL | Enable debug mode for OpenTelemetry | DEFAULT_ALLOWED_FAILS | Maximum failures allowed before cooling down a model. Default is 3 | DEFAULT_A2A_AGENT_TIMEOUT | Default timeout in seconds for A2A (Agent-to-Agent) protocol requests. Default is 6000 +| DEFAULT_ACCESS_GROUP_CACHE_TTL | Time-to-live in seconds for cached access group information. Default is 600 (10 minutes) | DEFAULT_ANTHROPIC_CHAT_MAX_TOKENS | Default maximum tokens for Anthropic chat completions. Default is 4096 | DEFAULT_BATCH_SIZE | Default batch size for operations. Default is 512 | DEFAULT_CHUNK_OVERLAP | Default chunk overlap for RAG text splitters. Default is 200 @@ -548,6 +549,7 @@ router_settings: | DEFAULT_MCP_SEMANTIC_FILTER_EMBEDDING_MODEL | Default embedding model for MCP semantic tool filtering. Default is "text-embedding-3-small" | DEFAULT_MCP_SEMANTIC_FILTER_SIMILARITY_THRESHOLD | Default similarity threshold for MCP semantic tool filtering. Default is 0.3 | DEFAULT_MCP_SEMANTIC_FILTER_TOP_K | Default number of top results to return for MCP semantic tool filtering. Default is 10 +| MCP_NPM_CACHE_DIR | Directory for npm cache used by STDIO MCP servers. In containers the default (~/.npm) may not exist or be read-only. Default is `/tmp/.npm_mcp_cache` | MCP_OAUTH2_TOKEN_CACHE_DEFAULT_TTL | Default TTL in seconds for MCP OAuth2 token cache. Default is 3600 | MCP_OAUTH2_TOKEN_CACHE_MAX_SIZE | Maximum number of entries in MCP OAuth2 token cache. Default is 200 | MCP_OAUTH2_TOKEN_CACHE_MIN_TTL | Minimum TTL in seconds for MCP OAuth2 token cache. Default is 10 @@ -555,7 +557,7 @@ router_settings: | DEFAULT_MOCK_RESPONSE_COMPLETION_TOKEN_COUNT | Default token count for mock response completions. Default is 20 | DEFAULT_MOCK_RESPONSE_PROMPT_TOKEN_COUNT | Default token count for mock response prompts. Default is 10 | DEFAULT_MODEL_CREATED_AT_TIME | Default creation timestamp for models. Default is 1677610602 -| DEFAULT_NUM_WORKERS_LITELLM_PROXY | Default number of workers for LiteLLM proxy. Default is 4. **We strongly recommend setting NUM Workers to Number of vCPUs available** +| DEFAULT_NUM_WORKERS_LITELLM_PROXY | Default number of workers for LiteLLM proxy when `NUM_WORKERS` is not set. Default is 1. **We strongly recommend setting NUM_WORKERS to the number of vCPUs available** (e.g. `NUM_WORKERS=8` or `--num_workers 8`). | DEFAULT_PROMPT_INJECTION_SIMILARITY_THRESHOLD | Default threshold for prompt injection similarity. Default is 0.7 | DEFAULT_POLLING_INTERVAL | Default polling interval for schedulers in seconds. Default is 0.03 | DEFAULT_REASONING_EFFORT_DISABLE_THINKING_BUDGET | Default reasoning effort disable thinking budget. Default is 0 @@ -745,9 +747,12 @@ router_settings: | LITERAL_API_KEY | API key for Literal integration | LITERAL_API_URL | API URL for Literal service | LITERAL_BATCH_SIZE | Batch size for Literal operations +| LITELLM_ANTHROPIC_BETA_HEADERS_URL | Custom URL for fetching Anthropic beta headers configuration. Default is the GitHub main branch URL | LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX | Disable automatic URL suffix appending for Anthropic API base URLs. When set to `true`, prevents LiteLLM from automatically adding `/v1/messages` or `/v1/complete` to custom Anthropic API endpoints +| LITELLM_ASSETS_PATH | Path to directory for UI assets and logos. Used when running with read-only filesystem (e.g., Kubernetes). Default is `/var/lib/litellm/assets` in Docker. | LITELLM_CLI_JWT_EXPIRATION_HOURS | Expiration time in hours for CLI-generated JWT tokens. Default is 24 hours | LITELLM_DD_AGENT_HOST | Hostname or IP of DataDog agent for LiteLLM-specific logging. When set, logs are sent to agent instead of direct API +| LITELLM_DEPLOYMENT_ENVIRONMENT | Environment name for the deployment (e.g., "production", "staging"). Used as a fallback when OTEL_ENVIRONMENT_NAME is not set. Sets the `environment` tag in telemetry data | LITELLM_DD_AGENT_PORT | Port of DataDog agent for LiteLLM-specific log intake. Default is 10518 | LITELLM_DD_LLM_OBS_PORT | Port for Datadog LLM Observability agent. Default is 8126 | LITELLM_DONT_SHOW_FEEDBACK_BOX | Flag to hide feedback box in LiteLLM UI @@ -760,11 +765,15 @@ router_settings: | LITELLM_MIGRATION_DIR | Custom migrations directory for prisma migrations, used for baselining db in read-only file systems. | LITELLM_HOSTED_UI | URL of the hosted UI for LiteLLM | LITELLM_UI_API_DOC_BASE_URL | Optional override for the API Reference base URL (used in sample code/docs) when the admin UI runs on a different host than the proxy. Defaults to `PROXY_BASE_URL` when unset. +| LITELLM_UI_PATH | Path to directory for Admin UI files. Used when running with read-only filesystem (e.g., Kubernetes). Default is `/var/lib/litellm/ui` in Docker. | LITELM_ENVIRONMENT | Environment of LiteLLM Instance, used by logging services. Currently only used by DeepEval. | LITELLM_KEY_ROTATION_ENABLED | Enable auto-key rotation for LiteLLM (boolean). Default is false. | LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS | Interval in seconds for how often to run job that auto-rotates keys. Default is 86400 (24 hours). +| LITELLM_KEY_ROTATION_GRACE_PERIOD | Duration to keep old key valid after rotation (e.g. "24h", "2d"). Default is empty (immediate revoke). Used for scheduled rotations and as fallback when not specified in regenerate request. | LITELLM_LICENSE | License key for LiteLLM usage +| LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS | Set to `True` to use the local bundled Anthropic beta headers config only, disabling remote fetching. Default is `False` | LITELLM_LOCAL_MODEL_COST_MAP | Local configuration for model cost mapping in LiteLLM +| LITELLM_LOCAL_POLICY_TEMPLATES | When set to "true", uses local backup policy templates instead of fetching from GitHub. Policy templates are fetched from https://raw.githubusercontent.com/BerriAI/litellm/main/policy_templates.json by default, with automatic fallback to local backup on failure | LITELLM_LOG | Enable detailed logging for LiteLLM | LITELLM_MODEL_COST_MAP_URL | URL for fetching model cost map data. Default is https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json | LITELLM_LOG_FILE | File path to write LiteLLM logs to. When set, logs will be written to both console and the specified file @@ -772,6 +781,10 @@ router_settings: | LITELLM_METER_NAME | Name for OTEL Meter | LITELLM_OTEL_INTEGRATION_ENABLE_EVENTS | Optionally enable semantic logs for OTEL | LITELLM_OTEL_INTEGRATION_ENABLE_METRICS | Optionally enable emantic metrics for OTEL +| LITELLM_ENABLE_PYROSCOPE | If true, enables Pyroscope CPU profiling. Profiles are sent to PYROSCOPE_SERVER_ADDRESS. Off by default. See [Pyroscope profiling](/proxy/pyroscope_profiling). +| PYROSCOPE_APP_NAME | Application name reported to Pyroscope. Required when LITELLM_ENABLE_PYROSCOPE is true. No default. +| PYROSCOPE_SERVER_ADDRESS | Pyroscope server URL to send profiles to. Required when LITELLM_ENABLE_PYROSCOPE is true. No default. +| PYROSCOPE_SAMPLE_RATE | Optional. Sample rate for Pyroscope profiling (integer). No default; when unset, the pyroscope-io library default is used. | LITELLM_MASTER_KEY | Master key for proxy authentication | LITELLM_MODE | Operating mode for LiteLLM (e.g., production, development) | LITELLM_NON_ROOT | Flag to run LiteLLM in non-root mode for enhanced security in Docker containers @@ -784,6 +797,7 @@ router_settings: | LITELLM_USER_AGENT | Custom user agent string for LiteLLM API requests. Used for partner telemetry attribution | LITELLM_PRINT_STANDARD_LOGGING_PAYLOAD | If true, prints the standard logging payload to the console - useful for debugging | LITELM_ENVIRONMENT | Environment for LiteLLM Instance. This is currently only logged to DeepEval to determine the environment for DeepEval integration. +| LITELLM_ASYNCIO_QUEUE_MAXSIZE | Maximum size for asyncio queues (e.g. log queues, spend update queues, and cookbook examples such as realtime audio in `nova_sonic_realtime.py`). Bounds in-memory growth to prevent OOM. Default is 1000. | LOGFIRE_TOKEN | Token for Logfire logging service | LOGFIRE_BASE_URL | Base URL for Logfire logging service (useful for self hosted deployments) | LOGGING_WORKER_CONCURRENCY | Maximum number of concurrent coroutine slots for the logging worker on the asyncio event loop. Default is 100. Setting too high will flood the event loop with logging tasks which will lower the overall latency of the requests. @@ -811,6 +825,7 @@ router_settings: | MAX_RETRY_DELAY | Maximum delay in seconds for retrying requests. Default is 8.0 | MAX_LANGFUSE_INITIALIZED_CLIENTS | Maximum number of Langfuse clients to initialize on proxy. Default is 50. This is set since langfuse initializes 1 thread everytime a client is initialized. We've had an incident in the past where we reached 100% cpu utilization because Langfuse was initialized several times. | MAX_MCP_SEMANTIC_FILTER_TOOLS_HEADER_LENGTH | Maximum header length for MCP semantic filter tools. Default is 150 +| MAX_POLICY_ESTIMATE_IMPACT_ROWS | Maximum number of rows returned when estimating the impact of a policy. Default is 1000 | MIN_NON_ZERO_TEMPERATURE | Minimum non-zero temperature value. Default is 0.0001 | MINIMUM_PROMPT_CACHE_TOKEN_COUNT | Minimum token count for caching a prompt. Default is 1024 | MISTRAL_API_BASE | Base URL for Mistral API. Default is https://api.mistral.ai @@ -827,6 +842,8 @@ router_settings: | MICROSOFT_USER_ID_ATTRIBUTE | Field name for user ID in Microsoft SSO response. Default is `id` | MICROSOFT_USER_LAST_NAME_ATTRIBUTE | Field name for user last name in Microsoft SSO response. Default is `surname` | MICROSOFT_USERINFO_ENDPOINT | Custom userinfo endpoint URL for Microsoft SSO (overrides default Microsoft Graph userinfo endpoint) +| MODEL_COST_MAP_MAX_SHRINK_RATIO | Maximum allowed shrinkage ratio when validating a fetched model cost map against the local backup. Rejects the fetched map if it is smaller than this fraction of the backup. Default is 0.5 +| MODEL_COST_MAP_MIN_MODEL_COUNT | Minimum number of models a fetched cost map must contain to be considered valid. Default is 50 | NO_DOCS | Flag to disable Swagger UI documentation | NO_REDOC | Flag to disable Redoc documentation | NO_PROXY | List of addresses to bypass proxy diff --git a/docs/my-website/docs/proxy/configs.md b/docs/my-website/docs/proxy/configs.md index a5674bf2bc5..56a8b9566db 100644 --- a/docs/my-website/docs/proxy/configs.md +++ b/docs/my-website/docs/proxy/configs.md @@ -469,6 +469,7 @@ credential_list: api_version: "2023-05-15" credential_info: description: "Production credentials for EU region" + custom_llm_provider: "azure" ``` #### Key Parameters diff --git a/docs/my-website/docs/proxy/guardrails/guardrail_policies.md b/docs/my-website/docs/proxy/guardrails/guardrail_policies.md index 56be11c85a7..e2cb839203e 100644 --- a/docs/my-website/docs/proxy/guardrails/guardrail_policies.md +++ b/docs/my-website/docs/proxy/guardrails/guardrail_policies.md @@ -1,3 +1,7 @@ +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + # [Beta] Guardrail Policies Use policies to group guardrails and control which ones run for specific teams, keys, or models. @@ -10,6 +14,9 @@ Use policies to group guardrails and control which ones run for specific teams, ## Quick Start + + + ```yaml showLineNumbers title="config.yaml" model_list: - model_name: gpt-4 @@ -43,6 +50,26 @@ policy_attachments: scope: "*" # apply to all requests ``` + + + +**Step 1: Create a Policy** + +Go to **Policies** tab and click **+ Create New Policy**. Fill in the policy name, description, and select guardrails to add. + + + + + + + + + + + + + + Response headers show what ran: ``` @@ -58,6 +85,9 @@ x-litellm-applied-guardrails: pii_masking,prompt_injection You have a global baseline, but want to add extra guardrails for a specific team. + + + ```yaml showLineNumbers title="config.yaml" policies: global-baseline: @@ -81,6 +111,30 @@ policy_attachments: - finance # team alias from /team/new ``` + + + +**Option 1: Create a team-scoped attachment** + +Go to **Policies** > **Attachments** tab and click **+ Create New Attachment**. Select the policy and the teams to scope it to. + + + + + +**Option 2: Attach from team settings** + +Go to **Teams** > click on a team > **Settings** tab > under **Policies**, select the policies to attach. + + + + + + + + + + Now the `finance` team gets `pii_masking` + `strict_compliance_check` + `audit_logger`, while everyone else just gets `pii_masking`. ## Remove guardrails for a specific team @@ -201,6 +255,60 @@ policy_attachments: - "test-*" # key alias pattern ``` +**Tag-based** (matches keys/teams by metadata tags, wildcards supported): + +```yaml showLineNumbers title="config.yaml" +policy_attachments: + - policy: hipaa-compliance + tags: + - "healthcare" + - "health-*" # wildcard - matches health-team, health-dev, etc. +``` + +Tags are read from key and team `metadata.tags`. For example, a key created with `metadata: {"tags": ["healthcare"]}` would match the attachment above. + +## Test Policy Matching + +Debug which policies and guardrails apply for a given context. Use this to verify your policy configuration before deploying. + + + + +Go to **Policies** > **Test** tab. Enter a team alias, key alias, model, or tags and click **Test** to see which policies match and what guardrails would be applied. + + + + + + +```bash +curl -X POST "http://localhost:4000/policies/resolve" \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "tags": ["healthcare"], + "model": "gpt-4" + }' +``` + +Response: + +```json +{ + "effective_guardrails": ["pii_masking"], + "matched_policies": [ + { + "policy_name": "hipaa-compliance", + "matched_via": "tag:healthcare", + "guardrails_added": ["pii_masking"] + } + ] +} +``` + + + + ## Config Reference ### `policies` @@ -233,14 +341,18 @@ policy_attachments: scope: ... teams: [...] keys: [...] + models: [...] + tags: [...] ``` | Field | Type | Description | |-------|------|-------------| | `policy` | `string` | **Required.** Name of the policy to attach. | | `scope` | `string` | Use `"*"` to apply globally. | -| `teams` | `list[string]` | Team aliases (from `/team/new`). | +| `teams` | `list[string]` | Team aliases (from `/team/new`). Supports `*` wildcard. | | `keys` | `list[string]` | Key aliases (from `/key/generate`). Supports `*` wildcard. | +| `models` | `list[string]` | Model names. Supports `*` wildcard. | +| `tags` | `list[string]` | Tag patterns (from key/team `metadata.tags`). Supports `*` wildcard. | ### Response Headers @@ -248,6 +360,7 @@ policy_attachments: |--------|-------------| | `x-litellm-applied-policies` | Policies that matched this request | | `x-litellm-applied-guardrails` | Guardrails that actually ran | +| `x-litellm-policy-sources` | Why each policy matched (e.g., `hipaa=tag:healthcare; baseline=scope:*`) | ## How it works diff --git a/docs/my-website/docs/proxy/guardrails/policy_tags.md b/docs/my-website/docs/proxy/guardrails/policy_tags.md new file mode 100644 index 00000000000..11840116c31 --- /dev/null +++ b/docs/my-website/docs/proxy/guardrails/policy_tags.md @@ -0,0 +1,139 @@ +# Tag-Based Policy Attachments + +Apply guardrail policies automatically to any key or team that has a specific tag. Instead of attaching policies one-by-one, tag your keys and let the policy engine handle the rest. + +**Example:** Your security team requires all healthcare-related keys to run PII masking and PHI detection. Tag those keys with `health`, create a single tag-based attachment, and every matching key gets the guardrails automatically. + +## 1. Create a Policy with Guardrails + +Navigate to **Policies** in the left sidebar. You'll see a list of existing policies along with their guardrails. + + + +Click **+ Add New Policy**. In the modal, enter a name for your policy (e.g., `high-risk-policy2`). You can also type to search existing policy names if you want to reference them. + + + +Scroll down to **Guardrails to Add**. Click the dropdown to see all available guardrails configured on your proxy — select the ones this policy should enforce. + + + +After selecting your guardrails, they appear as chips in the input field. The **Resolved Guardrails** section below shows the final set that will be applied (including any inherited from a parent policy). + + + +Click **Create Policy** to save. + + + +## 2. Add a Tag Attachment for the Policy + +After creating the policy, switch to the **Attachments** tab. This is where you define *where* the policy applies. + + + +Click **+ Add New Attachment**. The Attachments page explains the available scopes: Global, Teams, Keys, Models, and **Tags**. + + + +In the **Create Policy Attachment** modal, first select the policy you just created from the dropdown. + + + +Choose **Specific (teams, keys, models, or tags)** as the scope type. This expands the form to show fields for Teams, Keys, Models, and Tags. + + + +Scroll down to the **Tags** field and type the tag to match — here we enter `health`. You can enter any string, or use a wildcard pattern like `health-*` to match all tags starting with `health-` (e.g., `health-team`, `health-dev`). + + + +## 3. Check the Impact of the Attachment + +Before creating the attachment, click **Estimate Impact** to preview how many keys and teams would be affected. This is your blast-radius check — make sure the scope is what you expect before applying. + + + +The **Impact Preview** appears inline, showing exactly how many keys and teams would be affected. In this example: "This attachment would affect **1 key** and **0 teams**", with the key alias `hi` listed. + + + +Once you're satisfied with the impact, click **Create Attachment** to save. + + + +The attachment now appears in the table with the policy name `high-risk-policy2` and tag `health` visible. + + + +## 4. Create a Key with the Tag + +Navigate to **Virtual Keys** in the left sidebar. Click **+ Create New Key**. + + + +Enter a key name and select a model. Then expand **Optional Settings** and scroll down to the **Tags** field. + + + +In the **Tags** field, type `health` and press Enter. This is the tag the policy engine will match against. + + + +The tag `health` now appears as a chip in the Tags field. Confirm your settings look correct. + + + +Click **Create Key** at the bottom of the form. + + + +A dialog appears with your new virtual key. Click **Copy Virtual Key** — you'll need this to test in the next step. + + + +## 5. Test the Key and Validate the Policy is Applied + +Navigate to **Playground** in the left sidebar to test the key interactively. + + + +Under **Virtual Key Source**, select "Virtual Key" and paste the key you just copied into the input field. + + + +Select a model from the **Select Model** dropdown. + + + +Type a message and press Enter. If a guardrail blocks the request, you'll see it in the response. In this example, the `testing-pl` guardrail detected an email pattern and returned a 403 error — confirming the policy is working. + + + +**Using curl:** + +You can also verify via the command line. The response headers confirm which policies and guardrails were applied: + +```bash +curl -v http://localhost:4000/chat/completions \ + -H "Authorization: Bearer " \ + -H "Content-Type: application/json" \ + -d '{ + "model": "gpt-4o", + "messages": [{"role": "user", "content": "say hi"}] + }' +``` + +Check the response headers: + +``` +x-litellm-applied-policies: high-risk-policy2 +x-litellm-applied-guardrails: pii-pre-guard,phi-pre-guard,testing-pl +x-litellm-policy-sources: high-risk-policy2=tag:health +``` + +| Header | What it tells you | +|--------|-------------------| +| `x-litellm-applied-policies` | Which policies matched this request | +| `x-litellm-applied-guardrails` | Which guardrails actually ran | +| `x-litellm-policy-sources` | **Why** each policy matched — `tag:health` confirms it was the tag | diff --git a/docs/my-website/docs/proxy/guardrails/policy_templates.md b/docs/my-website/docs/proxy/guardrails/policy_templates.md new file mode 100644 index 00000000000..f0c93ca44c7 --- /dev/null +++ b/docs/my-website/docs/proxy/guardrails/policy_templates.md @@ -0,0 +1,296 @@ +# Policy Templates + +Policy templates provide pre-configured guardrail policies that you can use as a starting point for your organization. Instead of manually creating policies and guardrails, you can select a template that matches your use case and deploy it with one click. + +## Using Policy Templates + +### In the UI + +1. Navigate to **Policies → Templates** tab in the LiteLLM Admin UI +2. Browse available templates (e.g., "PII Protection", "Cost Control", "HR Compliance") +3. Click **"Use Template"** on any template +4. Review the guardrails that will be created: + - Existing guardrails are marked with a green checkmark + - New guardrails can be selected/deselected +5. Click **"Create X Guardrails & Use Template"** +6. Review and customize the pre-filled policy form +7. Click **"Create Policy"** to save + +### Workflow + +``` +Select Template → Review Guardrails → Create Selected → Edit Policy → Save +``` + +The system automatically: +- ✅ Detects which guardrails already exist +- ✅ Creates only the missing guardrails you select +- ✅ Pre-fills the policy form with template data +- ✅ Lets you customize before saving + +## Available Templates + +Templates are fetched from [GitHub](https://raw.githubusercontent.com/BerriAI/litellm/main/policy_templates.json) with automatic fallback to local backup. + +### Current Templates + +#### 1. Advanced PII Protection (Australia) +- **Complexity:** High +- **Use Case:** Comprehensive PII detection for Australian organizations +- **Guardrails:** + - Australian tax identifiers (TFN, ABN, Medicare) + - Australian passports + - International PII (SSN, passports, national IDs) + - Contact information (email, phone, address) + - Financial data (credit cards, IBAN) + - API credentials (AWS, GitHub, Slack) - **BLOCKS** requests + - Network infrastructure (IP addresses) + - Protected class information (gender, race, religion, disability, etc.) + +#### 2. Baseline PII Protection +- **Complexity:** Low +- **Use Case:** Basic protection for internal tools and testing +- **Guardrails:** + - Australian tax identifiers + - API credentials + - Financial data + +## Creating Your Own Policy Templates + +You can contribute policy templates for the entire LiteLLM community to use. + +### Template Structure + +Templates are defined in JSON format with the following structure: + +```json +{ + "id": "unique-template-id", + "title": "Display Title", + "description": "Detailed description of what this template protects", + "icon": "ShieldCheckIcon", + "iconColor": "text-purple-500", + "iconBg": "bg-purple-50", + "guardrails": [ + "guardrail-name-1", + "guardrail-name-2" + ], + "complexity": "Low|Medium|High", + "guardrailDefinitions": [ + { + "guardrail_name": "example-guardrail", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + { + "pattern_type": "prebuilt", + "pattern_name": "email", + "action": "MASK" + } + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "What this guardrail does" + } + } + ], + "templateData": { + "policy_name": "policy-name", + "description": "Policy description", + "guardrails_add": ["guardrail-name-1", "guardrail-name-2"], + "guardrails_remove": [] + } +} +``` + +### Field Descriptions + +#### Display Fields +- **id**: Unique identifier (lowercase with hyphens) +- **title**: User-facing name shown in UI +- **description**: Detailed explanation of what the template protects +- **icon**: Icon name (must be available in UI icon map) +- **iconColor**: Tailwind CSS text color class +- **iconBg**: Tailwind CSS background color class +- **guardrails**: Array of guardrail names (for display only) +- **complexity**: Badge showing difficulty ("Low", "Medium", or "High") + +#### Guardrail Definitions +- **guardrailDefinitions**: Array of complete guardrail configurations + - Each must be a valid guardrail object that can be sent to `/guardrails` POST endpoint + - If a guardrail already exists, it will be skipped + - Can be empty `[]` if template uses only existing guardrails + +#### Policy Configuration +- **templateData**: Object that pre-fills the policy form + - **policy_name**: Suggested name (user can edit) + - **description**: Policy description + - **guardrails_add**: Array of guardrail names to include + - **guardrails_remove**: Array to remove (usually `[]` for templates) + - **inherit**: (Optional) Parent policy name for inheritance + +### Example Template + +Here's a complete example for a HIPAA compliance template: + +```json +{ + "id": "hipaa-compliance", + "title": "HIPAA Compliance Policy", + "description": "Healthcare compliance policy that masks PHI and enforces HIPAA regulations for healthcare applications.", + "icon": "ShieldCheckIcon", + "iconColor": "text-red-500", + "iconBg": "bg-red-50", + "guardrails": [ + "phi-detector", + "medical-record-blocker", + "patient-id-masker" + ], + "complexity": "High", + "guardrailDefinitions": [ + { + "guardrail_name": "phi-detector", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + { + "pattern_type": "prebuilt", + "pattern_name": "us_ssn", + "action": "MASK" + }, + { + "pattern_type": "prebuilt", + "pattern_name": "email", + "action": "MASK" + }, + { + "pattern_type": "prebuilt", + "pattern_name": "us_phone", + "action": "MASK" + } + ], + "pattern_redaction_format": "[PHI_REDACTED]" + }, + "guardrail_info": { + "description": "Detects and masks Protected Health Information (PHI)" + } + } + ], + "templateData": { + "policy_name": "hipaa-compliance-policy", + "description": "HIPAA compliance policy for healthcare applications", + "guardrails_add": [ + "phi-detector", + "medical-record-blocker", + "patient-id-masker" + ], + "guardrails_remove": [] + } +} +``` + +## Contributing Templates + +To contribute a policy template for everyone to use: + +### Step 1: Create Your Template JSON + +1. Create a JSON file following the structure above +2. Test it locally by adding it to your local `policy_templates.json` +3. Verify all guardrails work correctly +4. Ensure descriptions are clear and helpful + +### Step 2: Submit a Pull Request + +1. Fork the [LiteLLM repository](https://github.com/BerriAI/litellm) +2. Add your template to `policy_templates.json` at the root +3. Add your template to `litellm/policy_templates_backup.json` (keep both in sync) +4. Create a pull request with: + - Clear description of what the template protects + - Use case examples + - Any relevant compliance frameworks (HIPAA, GDPR, SOC 2, etc.) + +### Guidelines + +**DO:** +- ✅ Use clear, descriptive names +- ✅ Include comprehensive descriptions +- ✅ Test all guardrails thoroughly +- ✅ Document pattern sources (e.g., "Based on NIST guidelines") +- ✅ Group related guardrails logically +- ✅ Consider different complexity levels + +**DON'T:** +- ❌ Include credentials or secrets +- ❌ Use overly broad patterns that may have false positives +- ❌ Duplicate existing templates +- ❌ Use custom code without thorough testing + +## Using Templates Offline + +For air-gapped or offline deployments, set the environment variable: + +```bash +export LITELLM_LOCAL_POLICY_TEMPLATES=true +``` + +This forces the system to use the local backup (`litellm/policy_templates_backup.json`) instead of fetching from GitHub. + +## Template Sources + +- **GitHub (default):** https://raw.githubusercontent.com/BerriAI/litellm/main/policy_templates.json +- **Local backup:** `litellm/policy_templates_backup.json` + +Templates are automatically fetched from GitHub on each request, with fallback to local backup on any failure. + +## Available Pattern Types + +When creating guardrails for templates, you can use these prebuilt patterns: + +### Identity Documents +- `passport_australia`, `passport_us`, `passport_uk`, `passport_germany`, etc. +- `us_ssn`, `us_ssn_no_dash` +- `au_tfn`, `au_abn`, `au_medicare` +- `nl_bsn_contextual` +- `br_cpf`, `br_rg`, `br_cnpj` + +### Financial +- `visa`, `mastercard`, `amex`, `discover`, `credit_card` +- `iban` + +### Contact Information +- `email` +- `us_phone`, `br_phone_landline`, `br_phone_mobile` +- `street_address` +- `br_cep` (Brazilian postal code) + +### Credentials +- `aws_access_key`, `aws_secret_key` +- `github_token` +- `slack_token` +- `generic_api_key` + +### Network +- `ipv4`, `ipv6` + +### Protected Class +- `gender_sexual_orientation` +- `race_ethnicity_national_origin` +- `religion` +- `age_discrimination` +- `disability` +- `marital_family_status` +- `military_status` +- `public_assistance` + +See the [full patterns list](https://github.com/BerriAI/litellm/blob/main/litellm/proxy/guardrails/guardrail_hooks/litellm_content_filter/patterns.json) for all available patterns. + +## Related Docs + +- [Guardrail Policies](./guardrail_policies) +- [Policy Tags](./policy_tags) +- [Content Filter Patterns](../hooks/content_filter) +- [Custom Code Guardrails](../hooks/custom_code) diff --git a/docs/my-website/docs/proxy/logging.md b/docs/my-website/docs/proxy/logging.md index 56fb420e6cf..1abb127dfda 100644 --- a/docs/my-website/docs/proxy/logging.md +++ b/docs/my-website/docs/proxy/logging.md @@ -1338,6 +1338,7 @@ litellm_settings: s3_aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY # AWS Secret Access Key for S3 s3_path: my-test-path # [OPTIONAL] set path in bucket you want to write logs to s3_endpoint_url: https://s3.amazonaws.com # [OPTIONAL] S3 endpoint URL, if you want to use Backblaze/cloudflare s3 buckets + s3_use_virtual_hosted_style: false # [OPTIONAL] use virtual-hosted-style URLs (bucket.endpoint/key) instead of path-style (endpoint/bucket/key). Useful for S3-compatible services like MinIO s3_strip_base64_files: false # [OPTIONAL] remove base64 files before storing in s3 ``` diff --git a/docs/my-website/docs/proxy/prod.md b/docs/my-website/docs/proxy/prod.md index a42d91a7d5f..994788a3ad9 100644 --- a/docs/my-website/docs/proxy/prod.md +++ b/docs/my-website/docs/proxy/prod.md @@ -250,11 +250,133 @@ The migrate deploy command: ### Read-only File System -If you see a `Permission denied` error, it means the LiteLLM pod is running with a read-only file system. +Running LiteLLM with `readOnlyRootFilesystem: true` is a Kubernetes security best practice that prevents container processes from writing to the root filesystem. LiteLLM fully supports this configuration. -To fix this, just set `LITELLM_MIGRATION_DIR="/path/to/writeable/directory"` in your environment. +#### Quick Fix for Permission Errors -LiteLLM will use this directory to write migration files. +If you see a `Permission denied` error, it means the LiteLLM pod is running with a read-only file system. LiteLLM needs writable directories for: +- **Database migrations**: Set `LITELLM_MIGRATION_DIR="/path/to/writable/directory"` +- **Admin UI**: Set `LITELLM_UI_PATH="/path/to/writable/directory"` +- **UI assets/logos**: Set `LITELLM_ASSETS_PATH="/path/to/writable/directory"` + +#### Complete Read-Only Filesystem Setup (Kubernetes) + +For production deployments with enhanced security, use this configuration: + +**Option 1: Using EmptyDir Volumes with InitContainer (Recommended)** + +This approach copies the pre-built UI from the Docker image to writable emptyDir volumes at pod startup. + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: litellm-proxy +spec: + template: + spec: + initContainers: + - name: setup-ui + image: ghcr.io/berriai/litellm:main-stable + command: + - sh + - -c + - | + cp -r /var/lib/litellm/ui/* /app/var/litellm/ui/ && \ + cp -r /var/lib/litellm/assets/* /app/var/litellm/assets/ + volumeMounts: + - name: ui-volume + mountPath: /app/var/litellm/ui + - name: assets-volume + mountPath: /app/var/litellm/assets + + containers: + - name: litellm + image: ghcr.io/berriai/litellm:main-stable + env: + - name: LITELLM_NON_ROOT + value: "true" + - name: LITELLM_UI_PATH + value: "/app/var/litellm/ui" + - name: LITELLM_ASSETS_PATH + value: "/app/var/litellm/assets" + - name: LITELLM_MIGRATION_DIR + value: "/app/migrations" + - name: PRISMA_BINARY_CACHE_DIR + value: "/app/cache/prisma-python/binaries" + - name: XDG_CACHE_HOME + value: "/app/cache" + securityContext: + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 101 + capabilities: + drop: + - ALL + volumeMounts: + - name: config + mountPath: /app/config.yaml + subPath: config.yaml + readOnly: true + - name: ui-volume + mountPath: /app/var/litellm/ui + - name: assets-volume + mountPath: /app/var/litellm/assets + - name: cache + mountPath: /app/cache + - name: migrations + mountPath: /app/migrations + + volumes: + - name: config + configMap: + name: litellm-config + - name: ui-volume + emptyDir: + sizeLimit: 100Mi + - name: assets-volume + emptyDir: + sizeLimit: 10Mi + - name: cache + emptyDir: + sizeLimit: 500Mi + - name: migrations + emptyDir: + sizeLimit: 64Mi +``` + +**Option 2: Without UI (API-only deployment)** + +If you don't need the admin UI, you can run with minimal configuration: + +```yaml +env: + - name: LITELLM_NON_ROOT + value: "true" + - name: LITELLM_MIGRATION_DIR + value: "/app/migrations" +securityContext: + readOnlyRootFilesystem: true +``` + +The proxy will log a warning about the UI but API endpoints will work normally. + +#### Environment Variables for Read-Only Filesystems + +| Variable | Purpose | Default | +|----------|---------|---------| +| `LITELLM_UI_PATH` | Admin UI directory | `/var/lib/litellm/ui` (Docker) | +| `LITELLM_ASSETS_PATH` | UI assets/logos | `/var/lib/litellm/assets` (Docker) | +| `LITELLM_MIGRATION_DIR` | Database migrations | Package directory | +| `PRISMA_BINARY_CACHE_DIR` | Prisma binary cache | System default | +| `XDG_CACHE_HOME` | General cache directory | System default | + +#### Important Notes + +1. **Migrations**: Always set `LITELLM_MIGRATION_DIR` to a writable emptyDir path +2. **Prisma Cache**: Set `PRISMA_BINARY_CACHE_DIR` and `XDG_CACHE_HOME` to writable paths +3. **Server Root Path**: If using a custom `server_root_path`, you must pre-process UI files in your Dockerfile as the proxy cannot modify files at runtime with read-only filesystem +4. **Automatic Detection**: The UI is automatically detected as pre-restructured if it contains a `.litellm_ui_ready` marker file (created by the official Docker images) ## 10. Use a Separate Health Check App :::info diff --git a/docs/my-website/docs/proxy/pyroscope_profiling.md b/docs/my-website/docs/proxy/pyroscope_profiling.md new file mode 100644 index 00000000000..fa3db3a8782 --- /dev/null +++ b/docs/my-website/docs/proxy/pyroscope_profiling.md @@ -0,0 +1,43 @@ +# Grafana Pyroscope CPU profiling + +LiteLLM proxy can send continuous CPU profiles to [Grafana Pyroscope](https://grafana.com/docs/pyroscope/latest/) when enabled via environment variables. This is optional and off by default. + +## Quick start + +1. **Install the optional dependency** (required only when enabling Pyroscope): + + ```bash + pip install pyroscope-io + ``` + + Or install the proxy extra: + + ```bash + pip install "litellm[proxy]" + ``` + +2. **Set environment variables** before starting the proxy: + + | Variable | Required | Description | + |----------|----------|-------------| + | `LITELLM_ENABLE_PYROSCOPE` | Yes (to enable) | Set to `true` to enable Pyroscope profiling. | + | `PYROSCOPE_APP_NAME` | Yes (when enabled) | Application name shown in the Pyroscope UI. | + | `PYROSCOPE_SERVER_ADDRESS` | Yes (when enabled) | Pyroscope server URL (e.g. `http://localhost:4040`). | + | `PYROSCOPE_SAMPLE_RATE` | No | Sample rate (integer). If unset, the pyroscope-io library default is used. | + +3. **Start the proxy**; profiling will begin automatically when the proxy starts. + + ```bash + export LITELLM_ENABLE_PYROSCOPE=true + export PYROSCOPE_APP_NAME=litellm-proxy + export PYROSCOPE_SERVER_ADDRESS=http://localhost:4040 + litellm --config config.yaml + ``` + +4. **View profiles** in the Pyroscope (or Grafana) UI and select your `PYROSCOPE_APP_NAME`. + +## Notes + +- **Optional dependency**: `pyroscope-io` is an optional dependency. If it is not installed and `LITELLM_ENABLE_PYROSCOPE=true`, the proxy will log a warning and continue without profiling. +- **Platform support**: The `pyroscope-io` package uses a native extension and is not available on all platforms (e.g. Windows is excluded by the package). +- **Other settings**: See [Configuration settings](/proxy/config_settings) for all proxy environment variables. diff --git a/docs/my-website/docs/proxy/sync_anthropic_beta_headers.md b/docs/my-website/docs/proxy/sync_anthropic_beta_headers.md new file mode 100644 index 00000000000..e1645082d97 --- /dev/null +++ b/docs/my-website/docs/proxy/sync_anthropic_beta_headers.md @@ -0,0 +1,128 @@ +# Auto Sync Anthropic Beta Headers + +Automatically keep your Anthropic beta headers configuration up to date without restarting your service. **This allows you to support new Anthropic beta features across all providers without restarting your service.** + +## Overview + +When Anthropic releases new beta features (e.g., new tool capabilities, extended context windows), you typically need to restart your LiteLLM service to get the latest beta header mappings for different providers (Anthropic, Bedrock, Vertex AI, Azure AI). + +With auto-sync, LiteLLM automatically pulls the latest configuration from GitHub's [`anthropic_beta_headers_config.json`](https://github.com/BerriAI/litellm/blob/main/litellm/anthropic_beta_headers_config.json) without requiring a restart. This means: + +- **Zero downtime** when new beta features are released +- **Always up-to-date** provider support mappings +- **Automatic updates** - set it once and forget it + +## Quick Start + +**Manual sync:** +```bash +curl -X POST "https://your-proxy-url/reload/anthropic_beta_headers" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \ + -H "Content-Type: application/json" +``` + +**Automatic sync every 24 hours:** +```bash +curl -X POST "https://your-proxy-url/schedule/anthropic_beta_headers_reload?hours=24" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \ + -H "Content-Type: application/json" +``` + +## API Endpoints + +| Endpoint | Method | Description | +|----------|--------|-------------| +| `/reload/anthropic_beta_headers` | POST | Manual sync | +| `/schedule/anthropic_beta_headers_reload?hours={hours}` | POST | Schedule periodic sync | +| `/schedule/anthropic_beta_headers_reload` | DELETE | Cancel scheduled sync | +| `/schedule/anthropic_beta_headers_reload/status` | GET | Check sync status | + +**Authentication:** Requires admin role or master key + +## Python Example + +```python +import requests + +def sync_anthropic_beta_headers(proxy_url, admin_token): + response = requests.post( + f"{proxy_url}/reload/anthropic_beta_headers", + headers={"Authorization": f"Bearer {admin_token}"} + ) + return response.json() + +# Usage +result = sync_anthropic_beta_headers("https://your-proxy-url", "your-admin-token") +print(result['message']) +``` + +## Configuration + +**Custom beta headers config URL:** +```bash +export LITELLM_ANTHROPIC_BETA_HEADERS_URL="https://raw.githubusercontent.com/BerriAI/litellm/main/litellm/anthropic_beta_headers_config.json" +``` + +**Use local beta headers config:** +```bash +export LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS=True +``` + +## Scheduling Automatic Reloads + +Schedule automatic reloads to ensure your proxy always has the latest beta header mappings: + +```bash +# Reload every 24 hours +curl -X POST "https://your-proxy-url/schedule/anthropic_beta_headers_reload?hours=24" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Check reload status:** +```bash +curl -X GET "https://your-proxy-url/schedule/anthropic_beta_headers_reload/status" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Response:** +```json +{ + "scheduled": true, + "interval_hours": 24, + "last_run": "2026-02-13T10:00:00", + "next_run": "2026-02-14T10:00:00" +} +``` + +**Cancel scheduled reload:** +```bash +curl -X DELETE "https://your-proxy-url/schedule/anthropic_beta_headers_reload" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +## Environment Variables + +| Variable | Description | Default | +|----------|-------------|---------| +| `LITELLM_ANTHROPIC_BETA_HEADERS_URL` | URL to fetch beta headers config from | GitHub main branch | +| `LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS` | Set to `True` to use local config only | `False` | + +## How It Works + +1. **Initial Load:** On startup, LiteLLM loads the beta headers configuration from the remote URL (or local file if configured) +2. **Caching:** The configuration is cached in memory to avoid repeated fetches on every request +3. **Scheduled Reload:** If configured, the proxy checks every 10 seconds whether it's time to reload based on your schedule +4. **Manual Reload:** You can trigger an immediate reload via the API endpoint +5. **Multi-Pod Support:** In multi-pod deployments, the reload configuration is stored in the database so all pods stay in sync + +## Benefits + +- **No Restarts Required:** Add support for new Anthropic beta features without downtime +- **Provider Compatibility:** Automatically get updated mappings for Bedrock, Vertex AI, Azure AI, etc. +- **Performance:** Configuration is cached and only reloaded when needed +- **Reliability:** Falls back to local configuration if remote fetch fails + +## Related + +- [Model Cost Map Sync](./sync_models_github.md) - Auto-sync model pricing data +- [Anthropic Beta Headers](../completion/anthropic.md#beta-features) - Using Anthropic beta features diff --git a/docs/my-website/docs/proxy/virtual_keys.md b/docs/my-website/docs/proxy/virtual_keys.md index 38ff4ede280..c74aa75ff4a 100644 --- a/docs/my-website/docs/proxy/virtual_keys.md +++ b/docs/my-website/docs/proxy/virtual_keys.md @@ -549,11 +549,14 @@ curl 'http://localhost:4000/key/sk-1234/regenerate' \ "models": [ "gpt-4", "gpt-3.5-turbo" - ] + ], + "grace_period": "48h" }' ``` +**Grace period (optional)**: Set `grace_period` (e.g. `"24h"`, `"2d"`, `"1w"`) to keep the old key valid for a transitional period. Both old and new keys work until the grace period elapses, enabling seamless cutover without production downtime. Omitted or empty = immediate revoke. Can also be set via `LITELLM_KEY_ROTATION_GRACE_PERIOD` env var for scheduled rotations. + **Read More** - [Write rotated keys to secrets manager](https://docs.litellm.ai/docs/secret#aws-secret-manager) @@ -640,11 +643,13 @@ Set these environment variables when starting the proxy: |----------|-------------|---------| | `LITELLM_KEY_ROTATION_ENABLED` | Enable the rotation worker | `false` | | `LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS` | How often to scan for keys to rotate (in seconds) | `86400` (24 hours) | +| `LITELLM_KEY_ROTATION_GRACE_PERIOD` | Duration to keep old key valid after rotation (e.g. `24h`, `2d`) | `""` (immediate revoke) | **Example:** ```bash export LITELLM_KEY_ROTATION_ENABLED=true export LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS=3600 # Check every hour +export LITELLM_KEY_ROTATION_GRACE_PERIOD=48h # Keep old key valid for 48h during cutover litellm --config config.yaml ``` diff --git a/docs/my-website/docs/response_api.md b/docs/my-website/docs/response_api.md index 140dfd4faf8..dd2b77712c4 100644 --- a/docs/my-website/docs/response_api.md +++ b/docs/my-website/docs/response_api.md @@ -1023,6 +1023,134 @@ curl http://localhost:4000/v1/responses \ +## Server-side compaction + +For long-running conversations, you can enable **server-side compaction** so that when the rendered context size crosses a threshold, the server automatically runs compaction in-stream and emits a compaction item—no separate `POST /v1/responses/compact` call is required. + +Supported on the OpenAI Responses API when using the `openai` or `azure` provider. Pass `context_management` with a compaction entry and `compact_threshold` (token count; minimum 1000). When the context crosses the threshold, the server compacts in-stream and continues. Chain turns with `previous_response_id` or by appending output items to your next input array. See [OpenAI Compaction guide](https://developers.openai.com/api/docs/guides/compaction) for details. + +For explicit control over when compaction runs, use the standalone compact endpoint (`POST /v1/responses/compact`) instead. + +### Python SDK + +```python showLineNumbers title="Server-side compaction with LiteLLM Python SDK" +import litellm + +# Non-streaming: enable compaction when context exceeds 200k tokens +response = litellm.responses( + model="openai/gpt-4o", + input="Your conversation input...", + context_management=[{"type": "compaction", "compact_threshold": 200000}], + max_output_tokens=1024, +) +print(response) + +# Streaming: same context_management, compaction runs in-stream if threshold is crossed +stream = litellm.responses( + model="openai/gpt-4o", + input="Your conversation input...", + context_management=[{"type": "compaction", "compact_threshold": 200000}], + stream=True, +) +for event in stream: + print(event) +``` + +### LiteLLM Proxy (AI Gateway) + +Use the OpenAI SDK with your proxy as `base_url`, or call the proxy with curl. The proxy forwards `context_management` to the provider. + +**OpenAI Python SDK (proxy as base_url):** + +```python showLineNumbers title="Server-side compaction via LiteLLM Proxy" +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:4000", # LiteLLM Proxy (AI Gateway) + api_key="your-proxy-api-key", +) + +response = client.responses.create( + model="openai/gpt-4o", + input="Your conversation input...", + context_management=[{"type": "compaction", "compact_threshold": 200000}], + max_output_tokens=1024, +) +print(response) +``` + +**curl (proxy):** + +```bash title="Server-side compaction via curl to LiteLLM Proxy" +curl -X POST "http://localhost:4000/v1/responses" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your-proxy-api-key" \ + -d '{ + "model": "openai/gpt-4o", + "input": "Your conversation input...", + "context_management": [{"type": "compaction", "compact_threshold": 200000}], + "max_output_tokens": 1024 + }' +``` + +## Shell tool + +The **Shell tool** lets the model run commands in a hosted container or local runtime (OpenAI Responses API). You pass `tools=[{"type": "shell", "environment": {...}}]`; the `environment` object configures the runtime (e.g. `type: "container_auto"` for auto-provisioned containers). See [OpenAI Shell tool guide](https://developers.openai.com/api/docs/guides/tools-shell) for full options. + +Supported when using the `openai` or `azure` provider with a model that supports the Shell tool. + +### Python SDK + +```python showLineNumbers title="Shell tool with LiteLLM Python SDK" +import litellm + +response = litellm.responses( + model="openai/gpt-5.2", + input="List files in /mnt/data and run python --version.", + tools=[{"type": "shell", "environment": {"type": "container_auto"}}], + tool_choice="auto", + max_output_tokens=1024, +) +``` + +### LiteLLM Proxy (AI Gateway) + +Use the OpenAI SDK with your proxy as `base_url`, or call the proxy with curl. The proxy forwards `tools` (including `type: "shell"`) to the provider. + +**OpenAI Python SDK (proxy as base_url):** + +```python showLineNumbers title="Shell tool via LiteLLM Proxy" +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:4000", + api_key="your-proxy-api-key", +) + +response = client.responses.create( + model="openai/gpt-5.2", + input="List files in /mnt/data.", + tools=[{"type": "shell", "environment": {"type": "container_auto"}}], + tool_choice="auto", + max_output_tokens=1024, +) +``` + +**curl:** + +```bash title="Shell tool via curl to LiteLLM Proxy" +curl -X POST "http://localhost:4000/v1/responses" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your-proxy-api-key" \ + -d '{ + "model": "openai/gpt-5.2", + "input": "List files in /mnt/data.", + "tools": [{"type": "shell", "environment": {"type": "container_auto"}}], + "tool_choice": "auto", + "max_output_tokens": 1024 + }' +``` + ## Session Management LiteLLM Proxy supports session management for all supported models. This allows you to store and fetch conversation history (state) in LiteLLM Proxy. diff --git a/docs/my-website/docs/troubleshoot.md b/docs/my-website/docs/troubleshoot.md index 179f1c7897c..1539e1959f7 100644 --- a/docs/my-website/docs/troubleshoot.md +++ b/docs/my-website/docs/troubleshoot.md @@ -1,102 +1,48 @@ -# Troubleshooting & Support - -## Information to Provide When Seeking Help +# Issue Reporting When reporting issues, please include as much of the following as possible. It's okay if you can't provide everything—especially in production scenarios where the trigger might be unknown. Sharing most of this information will help us assist you more effectively. -### 1. LiteLLM Configuration File +## 1. LiteLLM Configuration File Your `config.yaml` file (redact sensitive info like API keys). Include number of workers if not in config. -### 2. Initialization Command +## 2. Initialization Command The command used to start LiteLLM (e.g., `litellm --config config.yaml --num_workers 8 --detailed_debug`). -### 3. LiteLLM Version +## 3. LiteLLM Version -- Current version -- Version when the issue first appeared (if different) +- Current version +- Version when the issue first appeared (if different) - If upgraded, the version changed from → to -### 4. Environment Variables +## 4. Environment Variables Non-sensitive environment variables not in your config (e.g., `NUM_WORKERS`, `LITELLM_LOG`, `LITELLM_MODE`). Do not include passwords or API keys. -### 5. Server Specifications +## 5. Server Specifications CPU cores, RAM, OS, number of instances/replicas, etc. -### 6. Database and Redis Usage +## 6. Database and Redis Usage - **Database:** Using database? (`DATABASE_URL` set), database type and version - **Redis:** Using Redis? Redis version, configuration type (Standalone/Cluster/Sentinel). -### 7. Endpoints +## 7. Endpoints The endpoint(s) you're using that are experiencing issues (e.g., `/chat/completions`, `/embeddings`). -### 8. Request Example +## 8. Request Example A realistic example of the request causing issues, including expected vs. actual response and any error messages. -### 9. Error Logs, Stack Traces, and Metrics +## 9. Error Logs, Stack Traces, and Metrics Full error logs, stack traces, and any images from service metrics (CPU, memory, request rates, etc.) that might help diagnose the issue. --- -## UI Issues - -If you're experiencing issues with the LiteLLM Admin UI, please include the following information in addition to the general details above. - -### 1. Steps to Reproduce - -A clear, step-by-step description of how to trigger the issue (e.g., "Navigate to Settings → Team, click 'Create Team', fill in fields, click submit → error appears"). - -### 2. LiteLLM Version - -The current version of LiteLLM you're running. Check via `litellm --version` or the UI's settings page. - -### 3. Architecture & Deployment Setup - -Distributed environments are a known source of UI issues. Please describe: - -- **Number of LiteLLM instances/replicas** and how they are deployed (e.g., Kubernetes, Docker Compose, ECS) -- **Load balancer** type and configuration (e.g., ALB, Nginx, Cloudflare Tunnel) — include whether sticky sessions are enabled -- **How the UI is accessed** — directly via LiteLLM, through a reverse proxy, or behind an ingress controller -- **Any CDN or caching layers** between the user and the LiteLLM server - -### 4. Network Tab Requests - -Open your browser's Developer Tools (F12 → Network tab), reproduce the issue, and share: - -- The **failing request(s)** — URL, method, status code, and response body -- **Screenshots or HAR export** of the relevant network activity -- Any **CORS or mixed-content errors** shown in the Console tab - -### 5. Environment Variables - -Non-sensitive environment variables related to the UI and proxy setup, such as: - -- `LITELLM_MASTER_KEY` -- `PROXY_BASE_URL` / `LITELLM_PROXY_BASE_URL` -- `UI_BASE_PATH` -- Any SSO-related variables (e.g., `GOOGLE_CLIENT_ID`, `MICROSOFT_TENANT`) - -Do **not** include passwords, secrets, or API keys. - -### 6. Browser & Access Details - -- **Browser** and version (e.g., Chrome 120, Firefox 121) -- **Access URL** used to reach the UI (redact sensitive parts) -- Whether the issue occurs for **all users or specific roles** (Admin, Internal User, etc.) - -### 7. Screenshots or Screen Recordings - -A screenshot or short screen recording of the issue is extremely helpful. Include any visible error messages, toasts, or unexpected behavior. - ---- - ## Support Channels [Schedule Demo 👋](https://calendly.com/d/4mp-gd3-k5k/berriai-1-1-onboarding-litellm-hosted-version) @@ -109,4 +55,3 @@ Our numbers 📞 +1 (770) 8783-106 / +1 (412) 618-6238 Our emails ✉️ ishaan@berri.ai / krrish@berri.ai [](https://wa.link/huol9n) [](https://discord.gg/wuPM9dRgDw) - diff --git a/docs/my-website/docs/troubleshoot/ui_issues.md b/docs/my-website/docs/troubleshoot/ui_issues.md new file mode 100644 index 00000000000..90912b1daeb --- /dev/null +++ b/docs/my-website/docs/troubleshoot/ui_issues.md @@ -0,0 +1,49 @@ +# UI Troubleshooting + +If you're experiencing issues with the LiteLLM Admin UI, please include the following information when reporting. + +## 1. Steps to Reproduce + +A clear, step-by-step description of how to trigger the issue (e.g., "Navigate to Settings → Team, click 'Create Team', fill in fields, click submit → error appears"). + +## 2. LiteLLM Version + +The current version of LiteLLM you're running. Check via `litellm --version` or the UI's settings page. + +## 3. Architecture & Deployment Setup + +Distributed environments are a known source of UI issues. Please describe: + +- **Number of LiteLLM instances/replicas** and how they are deployed (e.g., Kubernetes, Docker Compose, ECS) +- **Load balancer** type and configuration (e.g., ALB, Nginx, Cloudflare Tunnel) — include whether sticky sessions are enabled +- **How the UI is accessed** — directly via LiteLLM, through a reverse proxy, or behind an ingress controller +- **Any CDN or caching layers** between the user and the LiteLLM server + +## 4. Network Tab Requests + +Open your browser's Developer Tools (F12 → Network tab), reproduce the issue, and share: + +- The **failing request(s)** — URL, method, status code, and response body +- **Screenshots or HAR export** of the relevant network activity +- Any **CORS or mixed-content errors** shown in the Console tab + +## 5. Environment Variables + +Non-sensitive environment variables related to the UI and proxy setup, such as: + +- `LITELLM_MASTER_KEY` +- `PROXY_BASE_URL` / `LITELLM_PROXY_BASE_URL` +- `UI_BASE_PATH` +- Any SSO-related variables (e.g., `GOOGLE_CLIENT_ID`, `MICROSOFT_TENANT`) + +Do **not** include passwords, secrets, or API keys. + +## 6. Browser & Access Details + +- **Browser** and version (e.g., Chrome 120, Firefox 121) +- **Access URL** used to reach the UI (redact sensitive parts) +- Whether the issue occurs for **all users or specific roles** (Admin, Internal User, etc.) + +## 7. Screenshots or Screen Recordings + +A screenshot or short screen recording of the issue is extremely helpful. Include any visible error messages, toasts, or unexpected behavior. diff --git a/docs/my-website/docs/tutorials/claude_code_beta_headers.md b/docs/my-website/docs/tutorials/claude_code_beta_headers.md index 9c1645e0277..fab90d15e88 100644 --- a/docs/my-website/docs/tutorials/claude_code_beta_headers.md +++ b/docs/my-website/docs/tutorials/claude_code_beta_headers.md @@ -1,8 +1,8 @@ import Image from '@theme/IdealImage'; -# Claude Code - Fixing Invalid Beta Header Errors +# Claude Code - Managing Anthropic Beta Headers -When using Claude Code with LiteLLM and non-Anthropic providers (Bedrock, Azure AI, Vertex AI), you may encounter "invalid beta header" errors. This guide explains how to fix these errors locally or contribute a fix to LiteLLM. +When using Claude Code with LiteLLM and non-Anthropic providers (Bedrock, Azure AI, Vertex AI), you need to ensure that only supported beta headers are sent to each provider. This guide explains how to add support for new beta headers or fix invalid beta header errors. ## What Are Beta Headers? @@ -12,7 +12,7 @@ Anthropic uses beta headers to enable experimental features in Claude. When you anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20 ``` -However, not all providers support all Anthropic beta features. When an unsupported beta header is sent to a provider, you'll see an error. +However, not all providers support all Anthropic beta features. LiteLLM uses `anthropic_beta_headers_config.json` to manage which beta headers are supported by each provider. ## Common Error Message @@ -22,17 +22,22 @@ Error: The model returned the following errors: invalid beta flag ## How LiteLLM Handles Beta Headers -LiteLLM automatically filters out unsupported beta headers using a configuration file: +LiteLLM uses a strict validation approach with a configuration file: ``` litellm/litellm/anthropic_beta_headers_config.json ``` -This JSON file lists which beta headers are **unsupported** for each provider. Headers not in the unsupported list are passed through to the provider. +This JSON file contains a **mapping** of beta headers for each provider: +- **Keys**: Input beta header names (from Anthropic) +- **Values**: Provider-specific header names (or `null` if unsupported) +- **Validation**: Only headers present in the mapping with non-null values are forwarded -## Quick Fix: Update Config Locally +This enforces stricter validation than just filtering unsupported headers - headers must be explicitly defined to be allowed. -If you encounter an invalid beta header error, you can fix it immediately by updating the config file locally. +## Adding Support for a New Beta Header + +When Anthropic releases a new beta feature, you need to add it to the configuration file for each provider. ### Step 1: Locate the Config File @@ -46,46 +51,75 @@ cd $(python -c "import litellm; import os; print(os.path.dirname(litellm.__file_ # litellm/anthropic_beta_headers_config.json ``` -### Step 2: Add the Unsupported Header +### Step 2: Add the New Beta Header -Open `anthropic_beta_headers_config.json` and add the problematic header to the appropriate provider's list: +Open `anthropic_beta_headers_config.json` and add the new header to each provider's mapping: ```json title="anthropic_beta_headers_config.json" { - "description": "Unsupported Anthropic beta headers for each provider. Headers listed here will be dropped. Headers not listed are passed through as-is.", - "anthropic": [], - "azure_ai": [], - "bedrock_converse": [ - "prompt-caching-scope-2026-01-05", - "bash_20250124", - "bash_20241022", - "text_editor_20250124", - "text_editor_20241022", - "compact-2026-01-12", - "advanced-tool-use-2025-11-20", - "web-fetch-2025-09-10", - "code-execution-2025-08-25", - "skills-2025-10-02", - "files-api-2025-04-14" - ], - "bedrock": [ - "advanced-tool-use-2025-11-20", - "prompt-caching-scope-2026-01-05", - "structured-outputs-2025-11-13", - "web-fetch-2025-09-10", - "code-execution-2025-08-25", - "skills-2025-10-02", - "files-api-2025-04-14" - ], - "vertex_ai": [ - "prompt-caching-scope-2026-01-05" - ] + "description": "Mapping of Anthropic beta headers for each provider. Keys are input header names, values are provider-specific header names (or null if unsupported). Only headers present in mapping keys with non-null values can be forwarded.", + "anthropic": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "new-feature-2026-03-01": "new-feature-2026-03-01", + ... + }, + "azure_ai": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "new-feature-2026-03-01": "new-feature-2026-03-01", + ... + }, + "bedrock_converse": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + }, + "bedrock": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + }, + "vertex_ai": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "new-feature-2026-03-01": null, + ... + } } ``` -### Step 3: Restart Your Application +**Key Points:** +- **Supported headers**: Set the value to the provider-specific header name (often the same as the key) +- **Unsupported headers**: Set the value to `null` +- **Header transformations**: Some providers use different header names (e.g., Bedrock maps `advanced-tool-use-2025-11-20` to `tool-search-tool-2025-10-19`) +- **Alphabetical order**: Keep headers sorted alphabetically for maintainability -After updating the config file, restart your LiteLLM proxy or application: +### Step 3: Reload Configuration (No Restart Required!) + +**Option 1: Dynamic Reload Without Restart** + +Instead of restarting your application, you can dynamically reload the beta headers configuration using environment variables and API endpoints: + +```bash +# Set environment variable to fetch from remote URL (Do this if you want to point it to some other URL) +export LITELLM_ANTHROPIC_BETA_HEADERS_URL="https://raw.githubusercontent.com/BerriAI/litellm/main/litellm/anthropic_beta_headers_config.json" + +# Manually trigger reload via API (no restart needed!) +curl -X POST "https://your-proxy-url/reload/anthropic_beta_headers" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Option 2: Schedule Automatic Reloads** + +Set up automatic reloading to always stay up-to-date with the latest beta headers: + +```bash +# Reload configuration every 24 hours +curl -X POST "https://your-proxy-url/schedule/anthropic_beta_headers_reload?hours=24" \ + -H "Authorization: Bearer YOUR_ADMIN_TOKEN" +``` + +**Option 3: Traditional Restart** + +If you prefer the traditional approach, restart your LiteLLM proxy or application: ```bash # If using LiteLLM proxy @@ -95,11 +129,70 @@ litellm --config config.yaml # Just restart your Python application ``` -The updated configuration will be loaded automatically. +:::tip Zero-Downtime Updates +With dynamic reloading, you can fix invalid beta header errors **without restarting your service**! This is especially useful in production environments where downtime is costly. + +See [Auto Sync Anthropic Beta Headers](../proxy/sync_anthropic_beta_headers.md) for complete documentation. +::: + +## Fixing Invalid Beta Header Errors + +If you encounter an "invalid beta flag" error, it means a beta header is being sent that the provider doesn't support. + +### Step 1: Identify the Problematic Header + +Check your logs to see which header is causing the issue: + +```bash +Error: The model returned the following errors: invalid beta flag: new-feature-2026-03-01 +``` + +### Step 2: Update the Config + +Set the header value to `null` for that provider: + +```json title="anthropic_beta_headers_config.json" +{ + "bedrock_converse": { + "new-feature-2026-03-01": null + } +} +``` + +### Step 3: Restart and Test + +Restart your application and verify the header is now filtered out. ## Contributing a Fix to LiteLLM -Help the community by contributing your fix! If your local changes work, please raise a PR with the addition of the header and we will merge it. +Help the community by contributing your fix! + +### What to Include in Your PR + +1. **Update the config file**: Add the new beta header to `litellm/anthropic_beta_headers_config.json` +2. **Test your changes**: Verify the header is correctly filtered/mapped for each provider +3. **Documentation**: Include provider documentation links showing which headers are supported + +### Example PR Description + +```markdown +## Add support for new-feature-2026-03-01 beta header + +### Changes +- Added `new-feature-2026-03-01` to anthropic_beta_headers_config.json +- Set to `null` for bedrock_converse (unsupported) +- Set to header name for anthropic, azure_ai (supported) + +### Testing +Tested with: +- ✅ Anthropic: Header passed through correctly +- ✅ Azure AI: Header passed through correctly +- ✅ Bedrock Converse: Header filtered out (returns error without fix) + +### References +- Anthropic docs: [link] +- AWS Bedrock docs: [link] +``` ## How Beta Header Filtering Works @@ -116,14 +209,71 @@ sequenceDiagram CC->>LP: Request with beta headers Note over CC,LP: anthropic-beta: header1,header2,header3 - LP->>Config: Load unsupported headers for provider - Config-->>LP: Returns unsupported list + LP->>Config: Load header mapping for provider + Config-->>LP: Returns mapping (header→value or null) - Note over LP: Filter headers:- Remove unsupported- Keep supported + Note over LP: Validate & Transform:1. Check if header exists in mapping2. Filter out null values3. Map to provider-specific names - LP->>Provider: Request with filtered headers - Note over LP,Provider: anthropic-beta: header2(header1, header3 removed) + LP->>Provider: Request with filtered & mapped headers + Note over LP,Provider: anthropic-beta: mapped-header2(header1, header3 filtered out) Provider-->>LP: Success response LP-->>CC: Response -``` \ No newline at end of file +``` + +### Filtering Rules + +1. **Header must exist in mapping**: Unknown headers are filtered out +2. **Header must have non-null value**: Headers with `null` values are filtered out +3. **Header transformation**: Headers are mapped to provider-specific names (e.g., `advanced-tool-use-2025-11-20` → `tool-search-tool-2025-10-19` for Bedrock) + +### Example + +Request with headers: +``` +anthropic-beta: advanced-tool-use-2025-11-20,computer-use-2025-01-24,unknown-header +``` + +For Bedrock Converse: +- ✅ `computer-use-2025-01-24` → `computer-use-2025-01-24` (supported, passed through) +- ❌ `advanced-tool-use-2025-11-20` → filtered out (null value in config) +- ❌ `unknown-header` → filtered out (not in config) + +Result sent to Bedrock: +``` +anthropic-beta: computer-use-2025-01-24 +``` + +## Dynamic Configuration Management (No Restart Required!) + +### Environment Variables + +Control how LiteLLM loads the beta headers configuration: + +| Variable | Description | Default | +|----------|-------------|---------| +| `LITELLM_ANTHROPIC_BETA_HEADERS_URL` | URL to fetch config from | GitHub main branch | +| `LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS` | Set to `True` to use local config only | `False` | + +**Example: Use Custom Config URL** +```bash +export LITELLM_ANTHROPIC_BETA_HEADERS_URL="https://your-company.com/custom-beta-headers.json" +``` + +**Example: Use Local Config Only (No Remote Fetching)** +```bash +export LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS=True +``` +## Provider-Specific Notes + +### Bedrock +- Beta headers appear in both HTTP headers AND request body (`additionalModelRequestFields.anthropic_beta`) +- Some headers are transformed (e.g., `advanced-tool-use` → `tool-search-tool`) + +### Azure AI +- Uses same header names as Anthropic +- Some features not yet supported (check config for null values) + +### Vertex AI +- Some headers are transformed to match Vertex AI's implementation +- Limited beta feature support compared to Anthropic \ No newline at end of file diff --git a/docs/my-website/docs/tutorials/claude_mcp.md b/docs/my-website/docs/tutorials/claude_mcp.md index 07c3cead0be..ab27908c8db 100644 --- a/docs/my-website/docs/tutorials/claude_mcp.md +++ b/docs/my-website/docs/tutorials/claude_mcp.md @@ -9,7 +9,7 @@ Note: LiteLLM supports OAuth for MCP servers as well. [Learn more](https://docs. ## Connecting MCP Servers -You can also connect MCP servers to Claude Code via LiteLLM Proxy. +You can connect MCP servers to Claude Code via LiteLLM Proxy. 1. Add the MCP server to your `config.yaml` @@ -23,6 +23,7 @@ In this example, we'll add the Github MCP server to our `config.yaml` mcp_servers: github_mcp: url: "https://api.githubcopilot.com/mcp" + transport: "http" auth_type: oauth2 client_id: os.environ/GITHUB_OAUTH_CLIENT_ID client_secret: os.environ/GITHUB_OAUTH_CLIENT_SECRET @@ -34,31 +35,70 @@ mcp_servers: In this example, we'll add the Atlassian MCP server to our `config.yaml` ```yaml title="config.yaml" showLineNumbers -atlassian_mcp: - server_id: atlassian_mcp_id - url: "https://mcp.atlassian.com/v1/sse" - transport: "sse" - auth_type: oauth2 +mcp_servers: + atlassian_mcp: + url: "https://mcp.atlassian.com/v1/mcp" + transport: "http" + auth_type: oauth2 ``` +:::important +The server name under `mcp_servers:` (e.g. `atlassian_mcp`, `github_mcp`) **must match** the name used in the Claude Code URL path (`/mcp/`). A mismatch will cause a 404 error during OAuth. +::: + 2. Start LiteLLM Proxy +Since Claude Code needs a publicly accessible URL for the OAuth callback, expose your proxy via ngrok or a similar tool. + ```bash litellm --config /path/to/config.yaml # RUNNING on http://0.0.0.0:4000 ``` -3. Use the MCP server in Claude Code - ```bash -claude mcp add --transport http litellm_proxy http://0.0.0.0:4000/github_mcp/mcp --header "Authorization: Bearer sk-LITELLM_VIRTUAL_KEY" +# In a separate terminal — expose proxy for OAuth callbacks +ngrok http 4000 ``` -For MCP servers that require dynamic client registration (such as Atlassian), please set `x-litellm-api-key: Bearer sk-LITELLM_VIRTUAL_KEY` instead of using `Authorization: Bearer LITELLM_VIRTUAL_KEY`. +3. Add the MCP server to Claude Code + + + + +```bash +claude mcp add --transport http litellm-github https://your-ngrok-url.ngrok-free.dev/mcp/github_mcp \ + --header "x-litellm-api-key: Bearer sk-1234" +``` + + + + +```bash +claude mcp add --transport http litellm-atlassian https://your-ngrok-url.ngrok-free.dev/mcp/atlassian_mcp \ + --header "x-litellm-api-key: Bearer sk-1234" +``` + + + + +**Parameter breakdown:** + +| Parameter | Description | +|-----------|-------------| +| `--transport http` | Use HTTP transport for the MCP connection | +| `litellm-atlassian` | The name for this MCP server **on Claude Code** — can be anything you choose | +| `https://your-ngrok-url.ngrok-free.dev/mcp/atlassian_mcp` | The LiteLLM proxy URL. Format: `/mcp/`. The `atlassian_mcp` part **must match** the key under `mcp_servers:` in your LiteLLM proxy config | +| `--header "x-litellm-api-key: Bearer sk-1234"` | Your LiteLLM virtual key for authentication to the proxy | + +You can also add the MCP server directly to your `~/.claude.json` file instead of using `claude mcp add`. [See Claude Code docs](https://docs.anthropic.com/en/docs/claude-code/mcp). + +:::note +For MCP servers that require OAuth (such as Atlassian), use `x-litellm-api-key` instead of `Authorization` for the LiteLLM virtual key. The `Authorization` header is reserved for the OAuth flow. +::: 4. Authenticate via Claude Code @@ -68,24 +108,20 @@ a. Start Claude Code claude ``` -b. Authenticate via Claude Code +b. Open the MCP menu ```bash /mcp ``` -c. Select the MCP server +c. Select the MCP server (e.g. `litellm-atlassian`) -```bash -> litellm_proxy -``` - -d. Start Oauth flow via Claude Code +d. Start the OAuth flow ```bash > 1. Authenticate 2. Reconnect - 3. Disable + 3. Disable ``` e. Once completed, you should see this success message: diff --git a/docs/my-website/img/policy_team_attach.png b/docs/my-website/img/policy_team_attach.png new file mode 100644 index 00000000000..4e337931ed8 Binary files /dev/null and b/docs/my-website/img/policy_team_attach.png differ diff --git a/docs/my-website/img/policy_test_matching.png b/docs/my-website/img/policy_test_matching.png new file mode 100644 index 00000000000..5d024ae78b4 Binary files /dev/null and b/docs/my-website/img/policy_test_matching.png differ diff --git a/docs/my-website/img/release_notes/guard_actions.png b/docs/my-website/img/release_notes/guard_actions.png new file mode 100644 index 00000000000..ef705828188 Binary files /dev/null and b/docs/my-website/img/release_notes/guard_actions.png differ diff --git a/docs/my-website/img/ui_access_groups.png b/docs/my-website/img/ui_access_groups.png new file mode 100644 index 00000000000..484f6c852fc Binary files /dev/null and b/docs/my-website/img/ui_access_groups.png differ diff --git a/docs/my-website/package-lock.json b/docs/my-website/package-lock.json index 419211cca02..3ba42bc5023 100644 --- a/docs/my-website/package-lock.json +++ b/docs/my-website/package-lock.json @@ -20455,6 +20455,13 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "peer": true + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", diff --git a/docs/my-website/release_notes/v1.81.12.md b/docs/my-website/release_notes/v1.81.12.md new file mode 100644 index 00000000000..c68b23488c0 --- /dev/null +++ b/docs/my-website/release_notes/v1.81.12.md @@ -0,0 +1,433 @@ +--- +title: "[Preview] v1.81.12 - Guardrail Policy Templates & Action Builder" +slug: "v1-81-12" +date: 2026-02-14T00:00:00 +authors: + - name: Krrish Dholakia + title: CEO, LiteLLM + url: https://www.linkedin.com/in/krish-d/ + image_url: https://pbs.twimg.com/profile_images/1298587542745358340/DZv3Oj-h_400x400.jpg + - name: Ishaan Jaff + title: CTO, LiteLLM + url: https://www.linkedin.com/in/reffajnaahsi/ + image_url: https://pbs.twimg.com/profile_images/1613813310264340481/lz54oEiB_400x400.jpg +hide_table_of_contents: false +--- + +## Deploy this version + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Image from '@theme/IdealImage'; + + + + +``` showLineNumbers title="docker run litellm" +docker run \ +-e STORE_MODEL_IN_DB=True \ +-p 4000:4000 \ +ghcr.io/berriai/litellm:main-v1.81.12.rc.1 +``` + + + + +``` showLineNumbers title="pip install litellm" +pip install litellm==1.81.12.rc1 +``` + + + + +## Key Highlights + +- **Policy Templates** - [Pre-configured guardrail policy templates for common safety and compliance use-cases (including NSFW, toxic content, and child safety)](../../docs/proxy/guardrails/policy_templates) +- **Guardrail Action Builder** - [Build and customize guardrail policy flows with the new action-builder UI and conditional execution support](../../docs/proxy/guardrails/policy_templates) +- **MCP OAuth2 M2M + Tracing** - [Add machine-to-machine OAuth2 support for MCP servers and OpenTelemetry tracing for MCP calls through AI Gateway](../../docs/mcp) +- **Responses API `shell` Tool & `context_management` support** - [Server-side context management (compaction) and Shell tool support for the OpenAI Responses API](../../docs/response_api) +- **Access Groups** - [Create access groups to manage model, MCP server, and agent access across teams and keys](../../docs/proxy/access_groups) +- **50+ New Bedrock Regional Model Entries** - DeepSeek V3.2, MiniMax M2.1, Kimi K2.5, Qwen3 Coder Next, and NVIDIA Nemotron Nano across multiple regions +- **Add Semgrep & fix OOMs** - [Static analysis rules and out-of-memory fixes](#add-semgrep--fix-ooms) - [PR #20912](https://github.com/BerriAI/litellm/pull/20912) + +--- + +## Add Semgrep & fix OOMs + +This release fixes out-of-memory (OOM) risks from unbounded `asyncio.Queue()` usage. Log queues (e.g. GCS bucket) and DB spend-update queues were previously unbounded and could grow without limit under load. They now use a configurable max size (`LITELLM_ASYNCIO_QUEUE_MAXSIZE`, default 1000); when full, queues flush immediately to make room instead of growing memory. A Semgrep rule (`.semgrep/rules/python/unbounded-memory.yml`) was added to flag similar unbounded-memory patterns in future code. [PR #20912](https://github.com/BerriAI/litellm/pull/20912) + +--- + +## Guardrail Action Builder + +This release adds a visual action builder for guardrail policies with conditional execution support. You can now chain guardrails into multi-step pipelines — if a simple guardrail fails, route to an advanced one instead of immediately blocking. Each step has configurable ON PASS and ON FAIL actions (Next Step, Block, or Allow), and you can test the full pipeline with a sample message before saving. + + + +### Access Groups + +Access Groups simplify defining resource access across your organization. One group can grant access to models, MCP servers, and agents—simply attach it to a key or team. Create groups in the Admin UI, define which resources each group includes, then assign the group when creating keys or teams. Updates to a group apply automatically to all attached keys and teams. + + + +## New Providers and Endpoints + +### New Providers (2 new providers) + +| Provider | Supported LiteLLM Endpoints | Description | +| -------- | --------------------------- | ----------- | +| [Scaleway](../../docs/providers/scaleway) | `/chat/completions` | Scaleway Generative APIs for chat completions | +| [Sarvam AI](../../docs/providers/sarvam) | `/chat/completions`, `/audio/transcriptions`, `/audio/speech` | Sarvam AI STT and TTS support for Indian languages | + +--- + +## New Models / Updated Models + +#### New Model Support (19 highlighted models) + +| Provider | Model | Context Window | Input ($/1M tokens) | Output ($/1M tokens) | +| -------- | ----- | -------------- | ------------------- | -------------------- | +| AWS Bedrock | `deepseek.v3.2` | 164K | $0.62 | $1.85 | +| AWS Bedrock | `minimax.minimax-m2.1` | 196K | $0.30 | $1.20 | +| AWS Bedrock | `moonshotai.kimi-k2.5` | 262K | $0.60 | $3.00 | +| AWS Bedrock | `moonshotai.kimi-k2-thinking` | 262K | $0.73 | $3.03 | +| AWS Bedrock | `qwen.qwen3-coder-next` | 262K | $0.50 | $1.20 | +| AWS Bedrock | `nvidia.nemotron-nano-3-30b` | 262K | $0.06 | $0.24 | +| Azure AI | `azure_ai/kimi-k2.5` | 262K | $0.60 | $3.00 | +| Vertex AI | `vertex_ai/zai-org/glm-5-maas` | 200K | $1.00 | $3.20 | +| MiniMax | `minimax/MiniMax-M2.5` | 1M | $0.30 | $1.20 | +| MiniMax | `minimax/MiniMax-M2.5-lightning` | 1M | $0.30 | $2.40 | +| Dashscope | `dashscope/qwen3-max` | 258K | Tiered pricing | Tiered pricing | +| Perplexity | `perplexity/preset/pro-search` | - | Per-request | Per-request | +| Perplexity | `perplexity/openai/gpt-4o` | - | Per-request | Per-request | +| Perplexity | `perplexity/openai/gpt-5.2` | - | Per-request | Per-request | +| Vercel AI Gateway | `vercel_ai_gateway/anthropic/claude-opus-4.6` | 200K | $5.00 | $25.00 | +| Vercel AI Gateway | `vercel_ai_gateway/anthropic/claude-sonnet-4` | 200K | $3.00 | $15.00 | +| Vercel AI Gateway | `vercel_ai_gateway/anthropic/claude-haiku-4.5` | 200K | $1.00 | $5.00 | +| Sarvam AI | `sarvam/sarvam-m` | 8K | Free tier | Free tier | +| Anthropic | `fast/claude-opus-4-6` | 1M | $30.00 | $150.00 | + +*Note: AWS Bedrock models are available across multiple regions (us-east-1, us-east-2, us-west-2, eu-central-1, eu-north-1, ap-northeast-1, ap-south-1, ap-southeast-3, sa-east-1). 54 regional model entries were added in total.* + +#### Features + +- **[Anthropic](../../docs/providers/anthropic)** + - Enable non-tool structured outputs on Claude Opus 4.5 and 4.6 using `output_format` param - [PR #20548](https://github.com/BerriAI/litellm/pull/20548) + - Add support for `anthropic_messages` call type in prompt caching - [PR #19233](https://github.com/BerriAI/litellm/pull/19233) + - Managing Anthropic Beta Headers with remote URL fetching - [PR #20935](https://github.com/BerriAI/litellm/pull/20935), [PR #21110](https://github.com/BerriAI/litellm/pull/21110) + - Remove `x-anthropic-billing` block - [PR #20951](https://github.com/BerriAI/litellm/pull/20951) + - Use Authorization Bearer for OAuth tokens instead of x-api-key - [PR #21039](https://github.com/BerriAI/litellm/pull/21039) + - Filter unsupported JSON schema constraints for structured outputs - [PR #20813](https://github.com/BerriAI/litellm/pull/20813) + - New Claude Opus 4.6 features for `/v1/messages` - [PR #20733](https://github.com/BerriAI/litellm/pull/20733) + - Fix `reasoning_effort=None` and `"none"` should return None for Opus 4.6 - [PR #20800](https://github.com/BerriAI/litellm/pull/20800) + +- **[AWS Bedrock](../../docs/providers/bedrock)** + - Extend model support with 4 new beta models - [PR #21035](https://github.com/BerriAI/litellm/pull/21035) + - Add Claude Opus 4.6 to `_supports_tool_search_on_bedrock` - [PR #21017](https://github.com/BerriAI/litellm/pull/21017) + - Correct Bedrock Claude Opus 4.6 model IDs (remove `:0` suffix) - [PR #20564](https://github.com/BerriAI/litellm/pull/20564), [PR #20671](https://github.com/BerriAI/litellm/pull/20671) + - Add `output_config` as supported param - [PR #20748](https://github.com/BerriAI/litellm/pull/20748) + +- **[Vertex AI](../../docs/providers/vertex)** + - Add Vertex GLM-5 model support - [PR #21053](https://github.com/BerriAI/litellm/pull/21053) + - Propagate `extra_headers` anthropic-beta to request body - [PR #20666](https://github.com/BerriAI/litellm/pull/20666) + - Preserve `usageMetadata` in `_hidden_params` - [PR #20559](https://github.com/BerriAI/litellm/pull/20559) + - Map `IMAGE_PROHIBITED_CONTENT` to `content_filter` - [PR #20524](https://github.com/BerriAI/litellm/pull/20524) + - Add RAG ingest for Vertex AI - [PR #21120](https://github.com/BerriAI/litellm/pull/21120) + +- **[OCI / Cohere](../../docs/providers/cohere)** + - OCI Cohere responseFormat/Pydantic support - [PR #20663](https://github.com/BerriAI/litellm/pull/20663) + - Fix OCI Cohere system messages by populating `preambleOverride` - [PR #20958](https://github.com/BerriAI/litellm/pull/20958) + +- **[Perplexity](../../docs/providers/perplexity)** + - Perplexity Research API support with preset search - [PR #20860](https://github.com/BerriAI/litellm/pull/20860) + +- **[MiniMax](../../docs/providers/minimax)** + - Add MiniMax-M2.5 and MiniMax-M2.5-lightning models - [PR #21054](https://github.com/BerriAI/litellm/pull/21054) + +- **[Kimi / Moonshot](../../docs/providers/moonshot)** + - Add Kimi model pricing by region - [PR #20855](https://github.com/BerriAI/litellm/pull/20855) + - Add `moonshotai.kimi-k2.5` - [PR #20863](https://github.com/BerriAI/litellm/pull/20863) + +- **[Dashscope](../../docs/providers/dashscope)** + - Add `dashscope/qwen3-max` model with tiered pricing - [PR #20919](https://github.com/BerriAI/litellm/pull/20919) + +- **[Vercel AI Gateway](../../docs/providers/vercel_ai_gateway)** + - Add new Vercel AI Anthropic models - [PR #20745](https://github.com/BerriAI/litellm/pull/20745) + +- **[Azure AI](../../docs/providers/azure_ai)** + - Add `azure_ai/kimi-k2.5` to Azure model DB - [PR #20896](https://github.com/BerriAI/litellm/pull/20896) + - Support Azure AD token auth for non-Claude azure_ai models - [PR #20981](https://github.com/BerriAI/litellm/pull/20981) + - Fix Azure batches issues - [PR #21092](https://github.com/BerriAI/litellm/pull/21092) + +- **[DeepSeek](../../docs/providers/deepseek)** + - Sync DeepSeek model metadata and add bare-name fallback - [PR #20938](https://github.com/BerriAI/litellm/pull/20938) + +- **[Gemini](../../docs/providers/gemini)** + - Handle image in assistant message for Gemini - [PR #20845](https://github.com/BerriAI/litellm/pull/20845) + - Add missing tpm/rpm for Gemini models - [PR #21175](https://github.com/BerriAI/litellm/pull/21175) + +- **General** + - Add 30 missing models to pricing JSON - [PR #20797](https://github.com/BerriAI/litellm/pull/20797) + - Cleanup 39 deprecated OpenRouter models - [PR #20786](https://github.com/BerriAI/litellm/pull/20786) + - Standardize endpoint `display_name` naming convention - [PR #20791](https://github.com/BerriAI/litellm/pull/20791) + - Fix and stabilize model cost map formatting - [PR #20895](https://github.com/BerriAI/litellm/pull/20895) + - Export `PermissionDeniedError` from `litellm.__init__` - [PR #20960](https://github.com/BerriAI/litellm/pull/20960) + +### Bug Fixes + +- **[Anthropic](../../docs/providers/anthropic)** + - Fix `get_supported_anthropic_messages_params` - [PR #20752](https://github.com/BerriAI/litellm/pull/20752) + - Fix `base_model` name for body and deployment name in URL - [PR #20747](https://github.com/BerriAI/litellm/pull/20747) + +- **[Azure](../../docs/providers/azure/azure)** + - Preserve `content_policy_violation` error details from Azure OpenAI - [PR #20883](https://github.com/BerriAI/litellm/pull/20883) + +- **[Vertex AI](../../docs/providers/vertex)** + - Fix Gemini multi-turn tool calling message formatting (added and reverted) - [PR #20569](https://github.com/BerriAI/litellm/pull/20569), [PR #21051](https://github.com/BerriAI/litellm/pull/21051) + +--- + +## LLM API Endpoints + +#### Features + +- **[Responses API](../../docs/response_api)** + - Add server-side context management (compaction) support - [PR #21058](https://github.com/BerriAI/litellm/pull/21058) + - Add Shell tool support for OpenAI Responses API - [PR #21063](https://github.com/BerriAI/litellm/pull/21063) + - Preserve tool call argument deltas when streaming id is omitted - [PR #20712](https://github.com/BerriAI/litellm/pull/20712) + - Preserve interleaved thinking/redacted_thinking blocks during streaming - [PR #20702](https://github.com/BerriAI/litellm/pull/20702) + +- **[Chat Completions](../../docs/completion/input)** + - Add Web Search support using LiteLLM `/search` (web search interception hook) - [PR #20483](https://github.com/BerriAI/litellm/pull/20483) + - Preserved nullable object fields by carrying schema properties - [PR #19132](https://github.com/BerriAI/litellm/pull/19132) + - Support `prompt_cache_key` for OpenAI and Azure chat completions - [PR #20989](https://github.com/BerriAI/litellm/pull/20989) + +- **[Pass-Through Endpoints](../../docs/pass_through/bedrock)** + - Add support for `langchain_aws` via LiteLLM passthrough - [PR #20843](https://github.com/BerriAI/litellm/pull/20843) + - Add `custom_body` parameter to `endpoint_func` in `create_pass_through_route` - [PR #20849](https://github.com/BerriAI/litellm/pull/20849) + +- **[Vector Stores](../../docs/providers/openai)** + - Add `target_model_names` for vector store endpoints - [PR #21089](https://github.com/BerriAI/litellm/pull/21089) + +- **General** + - Add `output_config` as supported param - [PR #20748](https://github.com/BerriAI/litellm/pull/20748) + - Add managed error file support - [PR #20838](https://github.com/BerriAI/litellm/pull/20838) + +#### Bugs + +- **General** + - Stop leaking Python tracebacks in streaming SSE error responses - [PR #20850](https://github.com/BerriAI/litellm/pull/20850) + - Fix video list pagination cursors not encoded with provider metadata - [PR #20710](https://github.com/BerriAI/litellm/pull/20710) + - Handle `metadata=None` in SDK path retry/error logic - [PR #20873](https://github.com/BerriAI/litellm/pull/20873) + - Fix Spend logs pickle error with Pydantic models and redaction - [PR #20685](https://github.com/BerriAI/litellm/pull/20685) + - Remove duplicate `PerplexityResponsesConfig` from `LLM_CONFIG_NAMES` - [PR #21105](https://github.com/BerriAI/litellm/pull/21105) + +--- + +## Management Endpoints / UI + +#### Features + +- **Access Groups** + - New Access Groups feature for managing model, MCP server, and agent access - [PR #21022](https://github.com/BerriAI/litellm/pull/21022) + - Access Groups table and details page UI - [PR #21165](https://github.com/BerriAI/litellm/pull/21165) + - Refactor `model_ids` to `model_names` for backwards compatibility - [PR #21166](https://github.com/BerriAI/litellm/pull/21166) + +- **Policies** + - Allow connecting Policies to Tags, simulating Policies, viewing key/team counts - [PR #20904](https://github.com/BerriAI/litellm/pull/20904) + - Guardrail pipeline support for conditional sequential execution - [PR #21177](https://github.com/BerriAI/litellm/pull/21177) + - Pipeline flow builder UI for guardrail policies - [PR #21188](https://github.com/BerriAI/litellm/pull/21188) + +- **SSO / Auth** + - New Login With SSO Button - [PR #20908](https://github.com/BerriAI/litellm/pull/20908) + - M2M OAuth2 UI Flow - [PR #20794](https://github.com/BerriAI/litellm/pull/20794) + - Allow Organization and Team Admins to call `/invitation/new` - [PR #20987](https://github.com/BerriAI/litellm/pull/20987) + - Invite User: Email Integration Alert - [PR #20790](https://github.com/BerriAI/litellm/pull/20790) + - Populate identity fields in proxy admin JWT early-return path - [PR #21169](https://github.com/BerriAI/litellm/pull/21169) + +- **Spend Logs** + - Show predefined error codes in filter with user definable fallback - [PR #20773](https://github.com/BerriAI/litellm/pull/20773) + - Paginated searchable model select - [PR #20892](https://github.com/BerriAI/litellm/pull/20892) + - Sorting columns support - [PR #21143](https://github.com/BerriAI/litellm/pull/21143) + - Allow sorting on `/spend/logs/ui` - [PR #20991](https://github.com/BerriAI/litellm/pull/20991) + +- **UI Improvements** + - Navbar: Option to hide Usage Popup - [PR #20910](https://github.com/BerriAI/litellm/pull/20910) + - Model Page: Improve Credentials Messaging - [PR #21076](https://github.com/BerriAI/litellm/pull/21076) + - Fallbacks: Default configurable to 10 models - [PR #21144](https://github.com/BerriAI/litellm/pull/21144) + - Fallback display with arrows and card structure - [PR #20922](https://github.com/BerriAI/litellm/pull/20922) + - Team Info: Migrate to AntD Tabs + Table - [PR #20785](https://github.com/BerriAI/litellm/pull/20785) + - AntD refactoring and 0 cost models fix - [PR #20687](https://github.com/BerriAI/litellm/pull/20687) + - Zscaler AI Guard UI - [PR #21077](https://github.com/BerriAI/litellm/pull/21077) + - Include Config Defined Pass Through Endpoints - [PR #20898](https://github.com/BerriAI/litellm/pull/20898) + - Rename "HTTP" to "Streamable HTTP (Recommended)" in MCP server page - [PR #21000](https://github.com/BerriAI/litellm/pull/21000) + - MCP server discovery UI - [PR #21079](https://github.com/BerriAI/litellm/pull/21079) + +- **Virtual Keys** + - Allow Management keys to access `user/daily/activity` and team - [PR #20124](https://github.com/BerriAI/litellm/pull/20124) + - Skip premium check for empty metadata fields on team/key update - [PR #20598](https://github.com/BerriAI/litellm/pull/20598) + +#### Bugs + +- Logs: Fix Input and Output Copying - [PR #20657](https://github.com/BerriAI/litellm/pull/20657) +- Teams: Fix Available Teams - [PR #20682](https://github.com/BerriAI/litellm/pull/20682) +- Spend Logs: Reset Filters Resets Custom Date Range - [PR #21149](https://github.com/BerriAI/litellm/pull/21149) +- Usage: Request Chart stack variant fix - [PR #20894](https://github.com/BerriAI/litellm/pull/20894) +- Add Auto Router: Description Text Input Focus - [PR #21004](https://github.com/BerriAI/litellm/pull/21004) +- Guardrail Edit: LiteLLM Content Filter Categories - [PR #21002](https://github.com/BerriAI/litellm/pull/21002) +- Add null guard for models in API keys table - [PR #20655](https://github.com/BerriAI/litellm/pull/20655) +- Show error details instead of 'Data Not Available' for failed requests - [PR #20656](https://github.com/BerriAI/litellm/pull/20656) +- Fix Spend Management Tests - [PR #21088](https://github.com/BerriAI/litellm/pull/21088) +- Fix JWT email domain validation error message - [PR #21212](https://github.com/BerriAI/litellm/pull/21212) + +--- + +## AI Integrations + +### Logging + +- **[PostHog](../../docs/observability/posthog_integration)** + - Fix JSON serialization error for non-serializable objects - [PR #20668](https://github.com/BerriAI/litellm/pull/20668) + +- **[Prometheus](../../docs/proxy/logging#prometheus)** + - Sanitize label values to prevent metric scrape failures - [PR #20600](https://github.com/BerriAI/litellm/pull/20600) + +- **[Langfuse](../../docs/proxy/logging#langfuse)** + - Prevent empty proxy request spans from being sent to Langfuse - [PR #19935](https://github.com/BerriAI/litellm/pull/19935) + +- **[OpenTelemetry](../../docs/proxy/logging#otel)** + - Auto-infer `otlp_http` exporter when endpoint is configured - [PR #20438](https://github.com/BerriAI/litellm/pull/20438) + +- **[CloudZero](../../docs/proxy/logging)** + - Update CBF field mappings per LIT-1907 - [PR #20906](https://github.com/BerriAI/litellm/pull/20906) + +- **General** + - Allow `MAX_CALLBACKS` override via env var - [PR #20781](https://github.com/BerriAI/litellm/pull/20781) + - Add `standard_logging_payload_excluded_fields` config option - [PR #20831](https://github.com/BerriAI/litellm/pull/20831) + - Enable `verbose_logger` when `LITELLM_LOG=DEBUG` - [PR #20496](https://github.com/BerriAI/litellm/pull/20496) + - Guard against None `litellm_metadata` in batch logging path - [PR #20832](https://github.com/BerriAI/litellm/pull/20832) + - Propagate model-level tags from config to SpendLogs - [PR #20769](https://github.com/BerriAI/litellm/pull/20769) + +### Guardrails + +- **Policy Templates** + - New Policy Templates: pre-configured guardrail combinations for specific use-cases - [PR #21025](https://github.com/BerriAI/litellm/pull/21025) + - Add NSFW policy template, toxic keywords in multiple languages, child safety content filter, JSON content viewer - [PR #21205](https://github.com/BerriAI/litellm/pull/21205) + - Add toxic/abusive content filter guardrails - [PR #20934](https://github.com/BerriAI/litellm/pull/20934) + +- **Pipeline Execution** + - Add guardrail pipeline support for conditional sequential execution - [PR #21177](https://github.com/BerriAI/litellm/pull/21177) + - Agent Guardrails on streaming output - [PR #21206](https://github.com/BerriAI/litellm/pull/21206) + - Pipeline flow builder UI - [PR #21188](https://github.com/BerriAI/litellm/pull/21188) + +- **[Zscaler AI Guard](../../docs/apply_guardrail)** + - Zscaler AI Guard bug fixes and support during post-call - [PR #20801](https://github.com/BerriAI/litellm/pull/20801) + - Zscaler AI Guard UI - [PR #21077](https://github.com/BerriAI/litellm/pull/21077) + +- **[ZGuard](../../docs/apply_guardrail)** + - Add team policy mapping for ZGuard - [PR #20608](https://github.com/BerriAI/litellm/pull/20608) + +- **General** + - Add logging to all unified guardrails + link to custom code guardrail templates - [PR #20900](https://github.com/BerriAI/litellm/pull/20900) + - Forward request headers + `litellm_version` to generic guardrails - [PR #20729](https://github.com/BerriAI/litellm/pull/20729) + - Empty `guardrails`/`policies` arrays should not trigger enterprise license check - [PR #20567](https://github.com/BerriAI/litellm/pull/20567) + - Fix OpenAI moderation guardrails - [PR #20718](https://github.com/BerriAI/litellm/pull/20718) + - Fix `/v2/guardrails/list` returning sensitive values - [PR #20796](https://github.com/BerriAI/litellm/pull/20796) + - Fix guardrail status error - [PR #20972](https://github.com/BerriAI/litellm/pull/20972) + - Reuse `get_instance_fn` in `initialize_custom_guardrail` - [PR #20917](https://github.com/BerriAI/litellm/pull/20917) + +--- + +## Spend Tracking, Budgets and Rate Limiting + +- **Prevent shared backend model key from being polluted** by per-deployment custom pricing - [PR #20679](https://github.com/BerriAI/litellm/pull/20679) +- **Avoid in-place mutation** in SpendUpdateQueue aggregation - [PR #20876](https://github.com/BerriAI/litellm/pull/20876) + +--- + +## MCP Gateway (12 updates) + +- **MCP M2M OAuth2 Support** - Add support for machine-to-machine OAuth2 for MCP servers - [PR #20788](https://github.com/BerriAI/litellm/pull/20788) +- **MCP Server Discovery UI** - Browse and discover available MCP servers from the UI - [PR #21079](https://github.com/BerriAI/litellm/pull/21079) +- **MCP Tracing** - Add OpenTelemetry tracing for MCP calls running through AI Gateway - [PR #21018](https://github.com/BerriAI/litellm/pull/21018) +- **MCP OAuth2 Debug Headers** - Client-side debug headers for OAuth2 troubleshooting - [PR #21151](https://github.com/BerriAI/litellm/pull/21151) +- **Fix MCP "Session not found" errors** - Resolve session persistence issues - [PR #21040](https://github.com/BerriAI/litellm/pull/21040) +- **Fix MCP OAuth2 root endpoints** returning "MCP server not found" - [PR #20784](https://github.com/BerriAI/litellm/pull/20784) +- **Fix MCP OAuth2 query param merging** when `authorization_url` already contains params - [PR #20968](https://github.com/BerriAI/litellm/pull/20968) +- **Fix MCP SCOPES on Atlassian** issue - [PR #21150](https://github.com/BerriAI/litellm/pull/21150) +- **Fix MCP StreamableHTTP backend** - Use `anyio.fail_after` instead of `asyncio.wait_for` - [PR #20891](https://github.com/BerriAI/litellm/pull/20891) +- **Inject `NPM_CONFIG_CACHE`** into STDIO MCP subprocess env - [PR #21069](https://github.com/BerriAI/litellm/pull/21069) +- **Block spaces and hyphens** in MCP server names and aliases - [PR #21074](https://github.com/BerriAI/litellm/pull/21074) + +--- + +## Performance / Loadbalancing / Reliability improvements (8 improvements) + +- **Remove orphan entries from queue** - Fix memory leak in scheduler queue - [PR #20866](https://github.com/BerriAI/litellm/pull/20866) +- **Remove repeated provider parsing** in budget limiter hot path - [PR #21043](https://github.com/BerriAI/litellm/pull/21043) +- **Use current retry exception** for retry backoff instead of stale exception - [PR #20725](https://github.com/BerriAI/litellm/pull/20725) +- **Add Semgrep & fix OOMs** - Static analysis rules and out-of-memory fixes - [PR #20912](https://github.com/BerriAI/litellm/pull/20912) +- **Add Pyroscope** for continuous profiling and observability - [PR #21167](https://github.com/BerriAI/litellm/pull/21167) +- **Respect `ssl_verify`** with shared aiohttp sessions - [PR #20349](https://github.com/BerriAI/litellm/pull/20349) +- **Fix shared health check serialization** - [PR #21119](https://github.com/BerriAI/litellm/pull/21119) +- **Change model mismatch logs** from WARNING to DEBUG - [PR #20994](https://github.com/BerriAI/litellm/pull/20994) + +--- + +## Database Changes + +### Schema Updates + +| Table | Change Type | Description | PR | Migration | +| ----- | ----------- | ----------- | -- | --------- | +| `LiteLLM_VerificationToken` | New Indexes | Added indexes on `user_id`+`team_id`, `team_id`, and `budget_reset_at`+`expires` | [PR #20736](https://github.com/BerriAI/litellm/pull/20736) | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260209085821_add_verificationtoken_indexes/migration.sql) | +| `LiteLLM_PolicyAttachmentTable` | New Column | Added `tags` text array for policy-to-tag connections | [PR #21061](https://github.com/BerriAI/litellm/pull/21061) | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212103349_adjust_tags_policy_table/migration.sql) | +| `LiteLLM_AccessGroupTable` | New Table | Access groups for managing model, MCP server, and agent access | [PR #21022](https://github.com/BerriAI/litellm/pull/21022) | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql) | +| `LiteLLM_AccessGroupTable` | Column Change | Renamed `access_model_ids` to `access_model_names` | [PR #21166](https://github.com/BerriAI/litellm/pull/21166) | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213170952_access_group_change_to_model_name/migration.sql) | +| `LiteLLM_ManagedVectorStoreTable` | New Table | Managed vector store tracking with model mappings | - | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213105436_add_managed_vector_store_table/migration.sql) | +| `LiteLLM_TeamTable`, `LiteLLM_VerificationToken` | New Column | Added `access_group_ids` text array | [PR #21022](https://github.com/BerriAI/litellm/pull/21022) | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql) | +| `LiteLLM_GuardrailsTable` | New Column | Added `team_id` text column | - | [Migration](https://github.com/BerriAI/litellm/blob/main/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214094754_schema_sync/migration.sql) | + +--- + +## Documentation Updates (14 updates) + +- LiteLLM Observatory section added to v1.81.9 release notes - [PR #20675](https://github.com/BerriAI/litellm/pull/20675) +- Callback registration optimization added to release notes - [PR #20681](https://github.com/BerriAI/litellm/pull/20681) +- Middleware performance blog post - [PR #20677](https://github.com/BerriAI/litellm/pull/20677) +- UI Team Soft Budget documentation - [PR #20669](https://github.com/BerriAI/litellm/pull/20669) +- UI Contributing and Troubleshooting guide - [PR #20674](https://github.com/BerriAI/litellm/pull/20674) +- Reorganize Admin UI subsection - [PR #20676](https://github.com/BerriAI/litellm/pull/20676) +- SDK proxy authentication (OAuth2/JWT auto-refresh) - [PR #20680](https://github.com/BerriAI/litellm/pull/20680) +- Forward client headers to LLM API documentation fix - [PR #20768](https://github.com/BerriAI/litellm/pull/20768) +- Add docs guide for using policies - [PR #20914](https://github.com/BerriAI/litellm/pull/20914) +- Add native thinking param examples for Claude Opus 4.6 - [PR #20799](https://github.com/BerriAI/litellm/pull/20799) +- Fix Claude Code MCP tutorial - [PR #21145](https://github.com/BerriAI/litellm/pull/21145) +- Add API base URLs for Dashscope (International and China/Beijing) - [PR #21083](https://github.com/BerriAI/litellm/pull/21083) +- Fix `DEFAULT_NUM_WORKERS_LITELLM_PROXY` default (1, not 4) - [PR #21127](https://github.com/BerriAI/litellm/pull/21127) +- Correct ElevenLabs support status in README - [PR #20643](https://github.com/BerriAI/litellm/pull/20643) + +--- + +## New Contributors +* @iver56 made their first contribution in [PR #20643](https://github.com/BerriAI/litellm/pull/20643) +* @eliasaronson made their first contribution in [PR #20666](https://github.com/BerriAI/litellm/pull/20666) +* @NirantK made their first contribution in [PR #19656](https://github.com/BerriAI/litellm/pull/19656) +* @looksgood made their first contribution in [PR #20919](https://github.com/BerriAI/litellm/pull/20919) +* @kelvin-tran made their first contribution in [PR #20548](https://github.com/BerriAI/litellm/pull/20548) +* @bluet made their first contribution in [PR #20873](https://github.com/BerriAI/litellm/pull/20873) +* @itayov made their first contribution in [PR #20729](https://github.com/BerriAI/litellm/pull/20729) +* @CSteigstra made their first contribution in [PR #20960](https://github.com/BerriAI/litellm/pull/20960) +* @rahulrd25 made their first contribution in [PR #20569](https://github.com/BerriAI/litellm/pull/20569) +* @muraliavarma made their first contribution in [PR #20598](https://github.com/BerriAI/litellm/pull/20598) +* @joaokopernico made their first contribution in [PR #21039](https://github.com/BerriAI/litellm/pull/21039) +* @datzscaler made their first contribution in [PR #21077](https://github.com/BerriAI/litellm/pull/21077) +* @atapia27 made their first contribution in [PR #20922](https://github.com/BerriAI/litellm/pull/20922) +* @fpagny made their first contribution in [PR #21121](https://github.com/BerriAI/litellm/pull/21121) +* @aidankovacic-8451 made their first contribution in [PR #21119](https://github.com/BerriAI/litellm/pull/21119) +* @luisgallego-aily made their first contribution in [PR #19935](https://github.com/BerriAI/litellm/pull/19935) + +--- + +## Full Changelog +[v1.81.9.rc.1...v1.81.12.rc.1](https://github.com/BerriAI/litellm/compare/v1.81.9.rc.1...v1.81.12.rc.1) diff --git a/docs/my-website/release_notes/v1.81.6.md b/docs/my-website/release_notes/v1.81.6.md index d349afa65f9..1e948aa37b7 100644 --- a/docs/my-website/release_notes/v1.81.6.md +++ b/docs/my-website/release_notes/v1.81.6.md @@ -14,6 +14,14 @@ authors: hide_table_of_contents: false --- +:::danger Known Issue - CPU Usage + +This release had known issues with CPU usage. This has been fixed in [v1.81.9-stable](./v1-81-9). + +**We recommend using v1.81.9-stable instead.** + +::: + ## Deploy this version import Tabs from '@theme/Tabs'; diff --git a/docs/my-website/release_notes/v1.81.9.md b/docs/my-website/release_notes/v1.81.9.md index c34d3056cae..c7659442c4c 100644 --- a/docs/my-website/release_notes/v1.81.9.md +++ b/docs/my-website/release_notes/v1.81.9.md @@ -1,5 +1,5 @@ --- -title: "[Preview] v1.81.9 - Control which MCP Servers are exposed on the Internet" +title: "v1.81.9 - Control which MCP Servers are exposed on the Internet" slug: "v1-81-9" date: 2026-02-07T00:00:00 authors: @@ -14,6 +14,16 @@ authors: hide_table_of_contents: false --- +:::info Stable Release Branch + +For each stable release, we now maintain a dedicated branch with the format `litellm_stable_release_branch_x_xx_xx` for the version. + +This allows easier patching for day 0 model launches. + +**Branch for v1.81.9:** [litellm_stable_release_branch_1_81_9](https://github.com/BerriAI/litellm/tree/litellm_stable_release_branch_1_81_9) + +::: + ## Deploy this version import Tabs from '@theme/Tabs'; @@ -27,7 +37,7 @@ import Image from '@theme/IdealImage'; docker run \ -e STORE_MODEL_IN_DB=True \ -p 4000:4000 \ -ghcr.io/berriai/litellm:main-v1.81.9.rc.1 +ghcr.io/berriai/litellm:main-v1.81.9-stable ``` diff --git a/docs/my-website/sidebars.js b/docs/my-website/sidebars.js index 28e1724ef82..42996d1a3e9 100644 --- a/docs/my-website/sidebars.js +++ b/docs/my-website/sidebars.js @@ -42,49 +42,63 @@ const sidebars = { label: "Guardrails", items: [ "proxy/guardrails/quick_start", - "proxy/guardrails/guardrail_policies", "proxy/guardrails/guardrail_load_balancing", + "proxy/guardrails/test_playground", + "proxy/guardrails/litellm_content_filter", { type: "category", - "label": "Contributing to Guardrails", + label: "Providers", + items: [ + ...[ + "proxy/guardrails/qualifire", + "proxy/guardrails/aim_security", + "proxy/guardrails/onyx_security", + "proxy/guardrails/aporia_api", + "proxy/guardrails/azure_content_guardrail", + "proxy/guardrails/bedrock", + "proxy/guardrails/enkryptai", + "proxy/guardrails/ibm_guardrails", + "proxy/guardrails/grayswan", + "proxy/guardrails/hiddenlayer", + "proxy/guardrails/lasso_security", + "proxy/guardrails/guardrails_ai", + "proxy/guardrails/lakera_ai", + "proxy/guardrails/model_armor", + "proxy/guardrails/noma_security", + "proxy/guardrails/dynamoai", + "proxy/guardrails/openai_moderation", + "proxy/guardrails/pangea", + "proxy/guardrails/pillar_security", + "proxy/guardrails/pii_masking_v2", + "proxy/guardrails/panw_prisma_airs", + "proxy/guardrails/secret_detection", + "proxy/guardrails/custom_guardrail", + "proxy/guardrails/custom_code_guardrail", + "proxy/guardrails/prompt_injection", + "proxy/guardrails/tool_permission", + "proxy/guardrails/zscaler_ai_guard", + "proxy/guardrails/javelin" + ].sort(), + ], + }, + { + type: "category", + label: "Contributing to Guardrails", items: [ "adding_provider/generic_guardrail_api", "adding_provider/simple_guardrail_tutorial", "adding_provider/adding_guardrail_support", ] }, - "proxy/guardrails/test_playground", - "proxy/guardrails/litellm_content_filter", - ...[ - "proxy/guardrails/qualifire", - "proxy/guardrails/aim_security", - "proxy/guardrails/onyx_security", - "proxy/guardrails/aporia_api", - "proxy/guardrails/azure_content_guardrail", - "proxy/guardrails/bedrock", - "proxy/guardrails/enkryptai", - "proxy/guardrails/ibm_guardrails", - "proxy/guardrails/grayswan", - "proxy/guardrails/hiddenlayer", - "proxy/guardrails/lasso_security", - "proxy/guardrails/guardrails_ai", - "proxy/guardrails/lakera_ai", - "proxy/guardrails/model_armor", - "proxy/guardrails/noma_security", - "proxy/guardrails/dynamoai", - "proxy/guardrails/openai_moderation", - "proxy/guardrails/pangea", - "proxy/guardrails/pillar_security", - "proxy/guardrails/pii_masking_v2", - "proxy/guardrails/panw_prisma_airs", - "proxy/guardrails/secret_detection", - "proxy/guardrails/custom_guardrail", - "proxy/guardrails/custom_code_guardrail", - "proxy/guardrails/prompt_injection", - "proxy/guardrails/tool_permission", - "proxy/guardrails/zscaler_ai_guard", - "proxy/guardrails/javelin" - ].sort(), + ], + }, + { + type: "category", + label: "Policies", + items: [ + "proxy/guardrails/guardrail_policies", + "proxy/guardrails/policy_templates", + "proxy/guardrails/policy_tags", ], }, { @@ -93,7 +107,8 @@ const sidebars = { items: [ "proxy/alerting", "proxy/pagerduty", - "proxy/prometheus" + "proxy/prometheus", + "proxy/pyroscope_profiling" ] }, { @@ -161,6 +176,7 @@ const sidebars = { "tutorials/copilotkit_sdk", "tutorials/google_adk", "tutorials/livekit_xai_realtime", + "projects/openai-agents" ] }, @@ -396,6 +412,16 @@ const sidebars = { ], }, "proxy/caching", + { + type: "link", + label: "Guardrails", + href: "https://docs.litellm.ai/docs/proxy/guardrails/quick_start", + }, + { + type: "link", + label: "Policies", + href: "https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies", + }, { type: "category", label: "Create Custom Plugins", @@ -442,6 +468,7 @@ const sidebars = { "proxy/model_access_guide", "proxy/model_access", "proxy/model_access_groups", + "proxy/access_groups", "proxy/team_model_add" ] }, @@ -850,6 +877,7 @@ const sidebars = { }, "providers/sambanova", "providers/sap", + "providers/scaleway", "providers/stability", "providers/synthetic", "providers/snowflake", @@ -979,6 +1007,7 @@ const sidebars = { "tutorials/presidio_pii_masking", "tutorials/elasticsearch_logging", "tutorials/gemini_realtime_with_audio", + "tutorials/claude_code_beta_headers", { type: "category", label: "LiteLLM Python SDK Tutorials", @@ -1073,16 +1102,24 @@ const sidebars = { "proxy_server", ], }, - "troubleshoot", { type: "category", - label: "Issue Reporting", + label: "Troubleshooting", items: [ - "troubleshoot/prisma_migrations", - "troubleshoot/cpu_issues", - "troubleshoot/memory_issues", - "troubleshoot/spend_queue_warnings", - "troubleshoot/max_callbacks", + "troubleshoot/ui_issues", + "mcp_troubleshoot", + { + type: "category", + label: "Performance / Latency", + items: [ + "troubleshoot/cpu_issues", + "troubleshoot/memory_issues", + "troubleshoot/spend_queue_warnings", + "troubleshoot/max_callbacks", + "troubleshoot/prisma_migrations", + ], + }, + "troubleshoot", ], }, { diff --git a/enterprise/dist/litellm_enterprise-0.1.32-py3-none-any.whl b/enterprise/dist/litellm_enterprise-0.1.32-py3-none-any.whl new file mode 100644 index 00000000000..0c87c72c989 Binary files /dev/null and b/enterprise/dist/litellm_enterprise-0.1.32-py3-none-any.whl differ diff --git a/enterprise/dist/litellm_enterprise-0.1.32.tar.gz b/enterprise/dist/litellm_enterprise-0.1.32.tar.gz new file mode 100644 index 00000000000..4f0ac1a9b20 Binary files /dev/null and b/enterprise/dist/litellm_enterprise-0.1.32.tar.gz differ diff --git a/enterprise/enterprise_hooks/__init__.py b/enterprise/enterprise_hooks/__init__.py index 9eb1c8960a6..e93c8c9150a 100644 --- a/enterprise/enterprise_hooks/__init__.py +++ b/enterprise/enterprise_hooks/__init__.py @@ -1,11 +1,15 @@ from typing import Dict, Literal, Type, Union from litellm_enterprise.proxy.hooks.managed_files import _PROXY_LiteLLMManagedFiles +from litellm_enterprise.proxy.hooks.managed_vector_stores import ( + _PROXY_LiteLLMManagedVectorStores, +) from litellm.integrations.custom_logger import CustomLogger ENTERPRISE_PROXY_HOOKS: Dict[str, Type[CustomLogger]] = { "managed_files": _PROXY_LiteLLMManagedFiles, + "managed_vector_stores": _PROXY_LiteLLMManagedVectorStores, } @@ -13,6 +17,7 @@ def get_enterprise_proxy_hook( hook_name: Union[ Literal[ "managed_files", + "managed_vector_stores", "max_parallel_requests", ], str, diff --git a/enterprise/litellm_enterprise/proxy/auth/route_checks.py b/enterprise/litellm_enterprise/proxy/auth/route_checks.py index 6f7cf9143f4..fc57292a8d2 100644 --- a/enterprise/litellm_enterprise/proxy/auth/route_checks.py +++ b/enterprise/litellm_enterprise/proxy/auth/route_checks.py @@ -41,6 +41,10 @@ class EnterpriseRouteChecks: return get_secret_bool("DISABLE_ADMIN_ENDPOINTS") is True + # Routes that should remain accessible even when LLM API endpoints are disabled. + # These are read-only model listing routes needed by the Admin UI. + LLM_API_EXEMPT_ROUTES = ["/models", "/v1/models"] + @staticmethod def should_call_route(route: str): """ @@ -58,6 +62,7 @@ class EnterpriseRouteChecks: ) elif ( RouteChecks.is_llm_api_route(route=route) + and route not in EnterpriseRouteChecks.LLM_API_EXEMPT_ROUTES and EnterpriseRouteChecks.is_llm_api_route_disabled() ): raise HTTPException( diff --git a/enterprise/litellm_enterprise/proxy/common_utils/check_batch_cost.py b/enterprise/litellm_enterprise/proxy/common_utils/check_batch_cost.py index bb25e4f0626..b28b4497e7c 100644 --- a/enterprise/litellm_enterprise/proxy/common_utils/check_batch_cost.py +++ b/enterprise/litellm_enterprise/proxy/common_utils/check_batch_cost.py @@ -4,7 +4,7 @@ Polls LiteLLM_ManagedObjectTable to check if the batch job is complete, and if t from litellm._uuid import uuid from datetime import datetime -from typing import TYPE_CHECKING, Optional, cast +from typing import TYPE_CHECKING, Optional from litellm._logging import verbose_proxy_logger @@ -35,14 +35,11 @@ class CheckBatchCost: - if not, return False - if so, return True """ - from litellm_enterprise.proxy.hooks.managed_files import ( - _PROXY_LiteLLMManagedFiles, - ) - from litellm.batches.batch_utils import ( _get_file_content_as_dictionary, calculate_batch_cost_and_usage, ) + from litellm.files.main import afile_content from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLogging from litellm.proxy.openai_files_endpoints.common_utils import ( @@ -102,27 +99,29 @@ class CheckBatchCost: continue ## RETRIEVE THE BATCH JOB OUTPUT FILE - managed_files_obj = cast( - Optional[_PROXY_LiteLLMManagedFiles], - self.proxy_logging_obj.get_proxy_hook("managed_files"), - ) if ( response.status == "completed" and response.output_file_id is not None - and managed_files_obj is not None ): verbose_proxy_logger.info( f"Batch ID: {batch_id} is complete, tracking cost and usage" ) - # track cost - model_file_id_mapping = { - response.output_file_id: {model_id: response.output_file_id} - } - _file_content = await managed_files_obj.afile_content( - file_id=response.output_file_id, - litellm_parent_otel_span=None, - llm_router=self.llm_router, - model_file_id_mapping=model_file_id_mapping, + + # This background job runs as default_user_id, so going through the HTTP endpoint + # would trigger check_managed_file_id_access and get 403. Instead, extract the raw + # provider file ID and call afile_content directly with deployment credentials. + raw_output_file_id = response.output_file_id + decoded = _is_base64_encoded_unified_file_id(raw_output_file_id) + if decoded: + try: + raw_output_file_id = decoded.split("llm_output_file_id,")[1].split(";")[0] + except (IndexError, AttributeError): + pass + + credentials = self.llm_router.get_deployment_credentials_with_provider(model_id) or {} + _file_content = await afile_content( + file_id=raw_output_file_id, + **credentials, ) file_content_as_dict = _get_file_content_as_dictionary( @@ -143,11 +142,15 @@ class CheckBatchCost: custom_llm_provider=custom_llm_provider, ) + # Pass deployment model_info so custom batch pricing + # (input_cost_per_token_batches etc.) is used for cost calc + deployment_model_info = deployment_info.model_info.model_dump() if deployment_info.model_info else {} batch_cost, batch_usage, batch_models = ( await calculate_batch_cost_and_usage( file_content_dictionary=file_content_as_dict, custom_llm_provider=llm_provider, # type: ignore model_name=model_name, + model_info=deployment_model_info, ) ) logging_obj = LiteLLMLogging( diff --git a/enterprise/litellm_enterprise/proxy/hooks/managed_files.py b/enterprise/litellm_enterprise/proxy/hooks/managed_files.py index a41b3f3bf6f..f341a1e9634 100644 --- a/enterprise/litellm_enterprise/proxy/hooks/managed_files.py +++ b/enterprise/litellm_enterprise/proxy/hooks/managed_files.py @@ -230,12 +230,14 @@ class _PROXY_LiteLLMManagedFiles(CustomLogger, BaseFileEndpoints): if managed_file: return managed_file.created_by == user_id - return False + raise HTTPException( + status_code=404, + detail=f"File not found: {unified_file_id}", + ) async def can_user_call_unified_object_id( self, unified_object_id: str, user_api_key_dict: UserAPIKeyAuth ) -> bool: - ## check if the user has access to the unified object id ## check if the user has access to the unified object id user_id = user_api_key_dict.user_id managed_object = ( @@ -246,7 +248,10 @@ class _PROXY_LiteLLMManagedFiles(CustomLogger, BaseFileEndpoints): if managed_object: return managed_object.created_by == user_id - return True # don't raise error if managed object is not found + raise HTTPException( + status_code=404, + detail=f"Object not found: {unified_object_id}", + ) async def list_user_batches( self, @@ -911,15 +916,22 @@ class _PROXY_LiteLLMManagedFiles(CustomLogger, BaseFileEndpoints): ) setattr(response, file_attr, unified_file_id) - # Fetch the actual file object from the provider + # Use llm_router credentials when available. Without credentials, + # Azure and other auth-required providers return 500/401. file_object = None try: - # Use litellm to retrieve the file object from the provider - from litellm import afile_retrieve - file_object = await afile_retrieve( - custom_llm_provider=model_name.split("/")[0] if model_name and "/" in model_name else "openai", - file_id=original_file_id - ) + from litellm.proxy.proxy_server import llm_router as _llm_router + if _llm_router is not None and model_id: + _creds = _llm_router.get_deployment_credentials_with_provider(model_id) or {} + file_object = await litellm.afile_retrieve( + file_id=original_file_id, + **_creds, + ) + else: + file_object = await litellm.afile_retrieve( + custom_llm_provider=model_name.split("/")[0] if model_name and "/" in model_name else "openai", + file_id=original_file_id, + ) verbose_logger.debug( f"Successfully retrieved file object for {file_attr}={original_file_id}" ) @@ -1004,7 +1016,10 @@ class _PROXY_LiteLLMManagedFiles(CustomLogger, BaseFileEndpoints): raise Exception(f"LiteLLM Managed File object with id={file_id} not found") # Case 2: Managed file and the file object exists in the database + # The stored file_object has the raw provider ID. Replace with the unified ID + # so callers see a consistent ID (matching Case 3 which does response.id = file_id). if stored_file_object and stored_file_object.file_object: + stored_file_object.file_object.id = file_id return stored_file_object.file_object # Case 3: Managed file exists in the database but not the file object (for. e.g the batch task might not have run) diff --git a/enterprise/litellm_enterprise/proxy/hooks/managed_vector_stores.py b/enterprise/litellm_enterprise/proxy/hooks/managed_vector_stores.py new file mode 100644 index 00000000000..254d816039c --- /dev/null +++ b/enterprise/litellm_enterprise/proxy/hooks/managed_vector_stores.py @@ -0,0 +1,464 @@ +# What is this? +## This hook is used to manage vector stores with target_model_names support +## It allows creating vector stores across multiple models and managing them with unified IDs + +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast + +from fastapi import HTTPException + +import litellm +from litellm import Router, verbose_logger +from litellm._uuid import uuid +from litellm.integrations.custom_logger import CustomLogger +from litellm.llms.base_llm.managed_resources import BaseManagedResource +from litellm.llms.base_llm.managed_resources.utils import ( + generate_unified_id_string, + is_base64_encoded_unified_id, +) +from litellm.proxy._types import UserAPIKeyAuth +from litellm.types.vector_stores import ( + VectorStoreCreateOptionalRequestParams, + VectorStoreCreateResponse, +) + +if TYPE_CHECKING: + from opentelemetry.trace import Span as _Span + + from litellm.proxy.utils import InternalUsageCache as _InternalUsageCache + from litellm.proxy.utils import PrismaClient as _PrismaClient + + Span = Union[_Span, Any] + InternalUsageCache = _InternalUsageCache + PrismaClient = _PrismaClient +else: + Span = Any + InternalUsageCache = Any + PrismaClient = Any + + +class _PROXY_LiteLLMManagedVectorStores( + CustomLogger, BaseManagedResource[VectorStoreCreateResponse] +): + """ + Managed vector stores with target_model_names support. + + This class provides functionality to: + - Create vector stores across multiple models + - Retrieve vector stores by unified ID + - Delete vector stores from all models + - List vector stores created by a user + """ + + def __init__( + self, internal_usage_cache: InternalUsageCache, prisma_client: PrismaClient + ): + CustomLogger.__init__(self) + BaseManagedResource.__init__(self, internal_usage_cache, prisma_client) + + # ============================================================================ + # ABSTRACT METHOD IMPLEMENTATIONS + # ============================================================================ + + @property + def resource_type(self) -> str: + """Return the resource type identifier.""" + return "vector_store" + + @property + def table_name(self) -> str: + """Return the database table name for vector stores.""" + # Prisma converts model name LiteLLM_ManagedVectorStoreTable to litellm_managedvectorstoretable + return "litellm_managedvectorstoretable" + + def get_unified_resource_id_format( + self, + resource_object: VectorStoreCreateResponse, + target_model_names_list: List[str], + ) -> str: + """ + Generate the format string for the unified vector store ID. + + Format: + litellm_proxy:vector_store;unified_id,;target_model_names,;resource_id,;model_id, + """ + # VectorStoreCreateResponse is a TypedDict, so resource_object is a dictionary + # Extract provider resource ID from the response + provider_resource_id = resource_object.get("id", "") + + # Model ID is stored in hidden params if the response object supports it + # For TypedDict responses, we need to check if _hidden_params was added + hidden_params: Dict[str, Any] = {} + if hasattr(resource_object, "_hidden_params"): + hidden_params = getattr(resource_object, "_hidden_params", {}) or {} + model_id = hidden_params.get("model_id", "") + + return generate_unified_id_string( + resource_type=self.resource_type, + unified_uuid=str(uuid.uuid4()), + target_model_names=target_model_names_list, + provider_resource_id=provider_resource_id, + model_id=model_id, + ) + + async def create_resource_for_model( + self, + llm_router: Router, + model: str, + request_data: Dict[str, Any], + litellm_parent_otel_span: Span, + ) -> VectorStoreCreateResponse: + """ + Create a vector store for a specific model. + + Args: + llm_router: LiteLLM router instance + model: Model name to create vector store for + request_data: Request data for vector store creation + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + VectorStoreCreateResponse from the provider + """ + # Use the router to create the vector store + response = await llm_router.avector_store_create( + model=model, **request_data + ) + return response + + # ============================================================================ + # VECTOR STORE CRUD OPERATIONS + # ============================================================================ + + async def acreate_vector_store( + self, + create_request: VectorStoreCreateOptionalRequestParams, + llm_router: Router, + target_model_names_list: List[str], + litellm_parent_otel_span: Span, + user_api_key_dict: UserAPIKeyAuth, + ) -> VectorStoreCreateResponse: + """ + Create a vector store across multiple models. + + Args: + create_request: Vector store creation request parameters + llm_router: LiteLLM router instance + target_model_names_list: List of target model names + litellm_parent_otel_span: OpenTelemetry span for tracing + user_api_key_dict: User API key authentication details + + Returns: + VectorStoreCreateResponse with unified ID + """ + verbose_logger.info( + f"Creating managed vector store for models: {target_model_names_list}" + ) + + # Create vector store for each model + # Convert TypedDict to Dict[str, Any] for base class compatibility + request_data_dict: Dict[str, Any] = dict(create_request) + responses = await self.create_resource_for_each_model( + llm_router=llm_router, + request_data=request_data_dict, + target_model_names_list=target_model_names_list, + litellm_parent_otel_span=litellm_parent_otel_span, + ) + + # Generate unified ID + unified_id = self.generate_unified_resource_id( + resource_objects=responses, + target_model_names_list=target_model_names_list, + ) + + # Extract model mappings from responses + model_mappings: Dict[str, str] = {} + for response in responses: + hidden_params = getattr(response, "_hidden_params", {}) or {} + model_id = hidden_params.get("model_id") + if model_id: + # VectorStoreCreateResponse is a TypedDict, use dict access + model_mappings[model_id] = response["id"] + + verbose_logger.debug( + f"Created vector stores with model mappings: {model_mappings}" + ) + + # Store in database + await self.store_unified_resource_id( + unified_resource_id=unified_id, + resource_object=responses[0], # Store first response as template + litellm_parent_otel_span=litellm_parent_otel_span, + model_mappings=model_mappings, + user_api_key_dict=user_api_key_dict, + ) + + # Return response with unified ID + # VectorStoreCreateResponse is a TypedDict, so we need to create a new dict with the unified ID + response = responses[0].copy() + response["id"] = unified_id + + verbose_logger.info( + f"Successfully created managed vector store with unified ID: {unified_id}" + ) + + return response + + async def alist_vector_stores( + self, + user_api_key_dict: UserAPIKeyAuth, + limit: Optional[int] = None, + after: Optional[str] = None, + order: Optional[str] = None, + ) -> Dict[str, Any]: + """ + List vector stores created by a user. + + Args: + user_api_key_dict: User API key authentication details + limit: Maximum number of vector stores to return + after: Cursor for pagination + order: Sort order ('asc' or 'desc') + + Returns: + Dictionary with list of vector stores and pagination info + """ + # Use the base class method + return await self.list_user_resources( + user_api_key_dict=user_api_key_dict, + limit=limit, + after=after, + ) + + # ============================================================================ + # ACCESS CONTROL + # ============================================================================ + + async def check_vector_store_access( + self, vector_store_id: str, user_api_key_dict: UserAPIKeyAuth + ) -> bool: + """ + Check if user has access to a vector store. + + Args: + vector_store_id: The unified vector store ID + user_api_key_dict: User API key authentication details + + Returns: + True if user has access, False otherwise + """ + is_unified_id = is_base64_encoded_unified_id(vector_store_id) + + if is_unified_id: + # Check access for managed vector store + return await self.can_user_access_unified_resource_id( + vector_store_id, + user_api_key_dict, + ) + + # Not a managed vector store, allow access + return True + + async def check_managed_vector_store_access( + self, data: Dict, user_api_key_dict: UserAPIKeyAuth + ) -> bool: + """ + Check if user has access to a managed vector store in request data. + + Args: + data: Request data containing vector_store_id + user_api_key_dict: User API key authentication details + + Returns: + True if this is a managed vector store and user has access + + Raises: + HTTPException: If user doesn't have access + """ + vector_store_id = cast(Optional[str], data.get("vector_store_id")) + is_unified_id = ( + is_base64_encoded_unified_id(vector_store_id) + if vector_store_id + else False + ) + + if is_unified_id and vector_store_id: + if await self.can_user_access_unified_resource_id( + vector_store_id, user_api_key_dict + ): + return True + else: + raise HTTPException( + status_code=403, + detail=f"User {user_api_key_dict.user_id} does not have access to vector store {vector_store_id}", + ) + + return False + + # ============================================================================ + # PRE-CALL HOOK (For Router Integration) + # ============================================================================ + + async def async_pre_call_hook( + self, + user_api_key_dict: UserAPIKeyAuth, + cache: Any, + data: Dict, + call_type: str, + ) -> Union[Exception, str, Dict, None]: + """ + Pre-call hook to handle vector store operations. + + This hook intercepts vector store requests and: + - Validates access for managed vector stores + - Transforms unified IDs to provider-specific IDs + - Adds model routing information + + Args: + user_api_key_dict: User API key authentication details + cache: Cache instance + data: Request data + call_type: Type of call being made + + Returns: + Modified request data or None + """ + from litellm.llms.base_llm.managed_resources.utils import ( + is_base64_encoded_unified_id, + parse_unified_id, + ) + + # Handle vector store search operations + if call_type == "avector_store_search": + vector_store_id = data.get("vector_store_id") + + if vector_store_id: + # Check if it's a managed vector store ID + decoded_id = is_base64_encoded_unified_id(vector_store_id) + + if decoded_id: + verbose_logger.debug( + f"Processing managed vector store search: {vector_store_id}" + ) + + # Check access + has_access = await self.can_user_access_unified_resource_id( + vector_store_id, user_api_key_dict + ) + + if not has_access: + raise HTTPException( + status_code=403, + detail=f"User {user_api_key_dict.user_id} does not have access to vector store {vector_store_id}", + ) + + # Parse the unified ID to extract components + parsed_id = parse_unified_id(vector_store_id) + + if parsed_id: + # Extract the model ID and provider resource ID + model_id = parsed_id.get("model_id") + provider_resource_id = parsed_id.get("provider_resource_id") + target_model_names = parsed_id.get("target_model_names", []) + + verbose_logger.debug( + f"Decoded vector store - model_id: {model_id}, provider_resource_id: {provider_resource_id}, target_model_names: {target_model_names}" + ) + + # Determine which model to use for routing + # Priority: model_id (deployment ID) > first target_model_name + routing_model = None + if model_id: + routing_model = model_id + elif target_model_names and len(target_model_names) > 0: + routing_model = target_model_names[0] + + # Set the model for routing + if routing_model: + data["model"] = routing_model + verbose_logger.info( + f"Routing vector store search to model: {routing_model}" + ) + + # Replace the unified ID with the provider-specific ID + if provider_resource_id: + data["vector_store_id"] = provider_resource_id + verbose_logger.debug( + f"Replaced unified ID with provider resource ID: {provider_resource_id}" + ) + + # Handle vector store retrieve/delete operations + elif call_type in ("avector_store_retrieve", "avector_store_delete"): + await self.check_managed_vector_store_access(data, user_api_key_dict) + + # If it's a managed vector store, we'll handle it in the endpoint + # No need to transform here as the endpoint will route to the hook + + return data + + # ============================================================================ + # POST-CALL HOOK (For Response Transformation) + # ============================================================================ + + async def async_post_call_success_hook( + self, + data: Dict, + user_api_key_dict: UserAPIKeyAuth, + response: Any, + ) -> Any: + """ + Post-call hook to transform responses. + + This hook can be used to transform responses if needed. + For now, it just passes through the response. + + Args: + data: Request data + user_api_key_dict: User API key authentication details + response: Response from the provider + + Returns: + Potentially modified response + """ + # Currently no transformation needed + return response + + # ============================================================================ + # DEPLOYMENT FILTERING + # ============================================================================ + + async def async_filter_deployments( # type: ignore[override] + self, + model: str, + healthy_deployments: List, + messages: Optional[List] = None, + request_kwargs: Optional[Dict] = None, + parent_otel_span: Optional[Span] = None, + ) -> List[Dict]: + """ + Filter deployments based on vector store availability. + + This is used by the router to select only deployments that have + the vector store available. + + Note: This method signature is a compromise between CustomLogger and BaseManagedResource + parent classes which have incompatible signatures. The type: ignore[override] is necessary + due to this multiple inheritance conflict. + + Args: + model: Model name + healthy_deployments: List of healthy deployments + messages: Messages (unused for vector stores, required by CustomLogger interface) + request_kwargs: Request kwargs containing vector_store_id and mappings + parent_otel_span: OpenTelemetry span for tracing + + Returns: + Filtered list of deployments + """ + return await BaseManagedResource.async_filter_deployments( + self, + model=model, + healthy_deployments=healthy_deployments, + request_kwargs=request_kwargs, + parent_otel_span=parent_otel_span, + resource_id_key="vector_store_id", + ) diff --git a/enterprise/pyproject.toml b/enterprise/pyproject.toml index eca5cdb97df..55720934f09 100644 --- a/enterprise/pyproject.toml +++ b/enterprise/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "litellm-enterprise" -version = "0.1.31" +version = "0.1.32" description = "Package for LiteLLM Enterprise features" authors = ["BerriAI"] readme = "README.md" @@ -22,7 +22,7 @@ requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.commitizen] -version = "0.1.31" +version = "0.1.32" version_files = [ "pyproject.toml:version", "../requirements.txt:litellm-enterprise==", diff --git a/litellm-proxy-extras/build_and_publish.md b/litellm-proxy-extras/build_and_publish.md new file mode 100644 index 00000000000..6bf16b99466 --- /dev/null +++ b/litellm-proxy-extras/build_and_publish.md @@ -0,0 +1,127 @@ +# Build & Publish `litellm-proxy-extras` + +This runbook covers building and publishing a new version of the `litellm-proxy-extras` PyPI package. For use by litellm engineers only. + +## Prerequisites + +- All `schema.prisma` files are in sync (see [migration_runbook.md](./migration_runbook.md) Step 0) +- Migration has been generated and committed +- You are in the `litellm-proxy-extras/` directory + +## Step 1: Bump the Version + +### Option A: Automatic Version Bump (Recommended) + +Use commitizen to automatically bump the version across all files: + +```bash +cd litellm-proxy-extras +cz bump --increment patch +``` + +This will automatically: +- Bump the version in `pyproject.toml` (both `[tool.poetry].version` and `[tool.commitizen].version`) +- Update the version in `../requirements.txt` +- Update the version in `../pyproject.toml` (root) +- Create a git commit with the version bump + +Then skip to Step 3 (Install Build Dependencies). + +### Option B: Manual Version Bump + +Update the version in `pyproject.toml`: + +```bash +cd litellm-proxy-extras + +# Check current version +grep 'version' pyproject.toml +``` + +Edit `pyproject.toml` and bump the version (both `[tool.poetry].version` and `[tool.commitizen].version`). + +#### Step 2: Update Version in Root Package Files (Manual Only) + +After bumping the version in `litellm-proxy-extras/pyproject.toml`, you **must** also update the version reference in the root-level files: + +| File | Line to update | +|------|---------------| +| `requirements.txt` | `litellm-proxy-extras==X.Y.Z` | +| `pyproject.toml` (root) | `litellm-proxy-extras = {version = "X.Y.Z", optional = true}` | + +```bash +# From the repo root — replace OLD with NEW version +sed -i '' 's/litellm-proxy-extras==OLD/litellm-proxy-extras==NEW/' requirements.txt +sed -i '' 's/litellm-proxy-extras = {version = "OLD"/litellm-proxy-extras = {version = "NEW"/' pyproject.toml +``` + +> **Do NOT skip this step.** The main `litellm` package pins the extras version — if you don't update these, users will install the old version. + +## Step 3: Install Build Dependencies + +```bash +pip install build twine +``` + +## Step 4: Clean Old Artifacts + +```bash +rm -rf dist/ build/ *.egg-info +``` + +## Step 5: Build the Package + +```bash +python3 -m build +``` + +This creates `.tar.gz` and `.whl` files in the `dist/` directory. + +Verify the build output: + +```bash +ls -la dist/ +``` + +## Step 6: Upload to PyPI + +```bash +twine upload dist/* +``` + +You will be prompted for your PyPI API token: + +``` +Enter your API token: pypi-... +``` + +> Use `__token__` as the username and your PyPI API token as the password. + +## Quick Reference (Copy-Paste) + +```bash +cd litellm-proxy-extras +rm -rf dist/ build/ *.egg-info +python3 -m build +twine upload dist/* +``` + +--- + +## Do you want to build and publish a new `litellm-proxy-extras` package? (y/n) + +If **yes**, run the following commands in order: + +```bash +cd litellm-proxy-extras +pip install build twine +rm -rf dist/ build/ *.egg-info +python3 -m build +twine upload dist/* +``` + +When `twine upload` runs, enter your PyPI credentials: +- **Username:** `__token__` +- **Password:** *(paste your PyPI API key)* + +If **no**, you're done — no package publish needed. diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35-py3-none-any.whl new file mode 100644 index 00000000000..8a443f38ef5 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35-py3-none-any.whl differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35.tar.gz b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35.tar.gz new file mode 100644 index 00000000000..4dde13b32e2 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.35.tar.gz differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl new file mode 100644 index 00000000000..c98d9cfcfac Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36-py3-none-any.whl differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36.tar.gz b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36.tar.gz new file mode 100644 index 00000000000..c8c33404620 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.36.tar.gz differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37-py3-none-any.whl new file mode 100644 index 00000000000..695dc102c72 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37-py3-none-any.whl differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37.tar.gz b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37.tar.gz new file mode 100644 index 00000000000..d3ecef1752e Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.37.tar.gz differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40-py3-none-any.whl new file mode 100644 index 00000000000..9f2ad8fd317 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40-py3-none-any.whl differ diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40.tar.gz b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40.tar.gz new file mode 100644 index 00000000000..fdab43c01a3 Binary files /dev/null and b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.40.tar.gz differ diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260203120000_add_deprecated_verification_token_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260203120000_add_deprecated_verification_token_table/migration.sql new file mode 100644 index 00000000000..51d88444191 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260203120000_add_deprecated_verification_token_table/migration.sql @@ -0,0 +1,19 @@ +-- CreateTable +CREATE TABLE "LiteLLM_DeprecatedVerificationToken" ( + "id" TEXT NOT NULL, + "token" TEXT NOT NULL, + "active_token_id" TEXT NOT NULL, + "revoke_at" TIMESTAMP(3) NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "LiteLLM_DeprecatedVerificationToken_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "LiteLLM_DeprecatedVerificationToken_token_key" ON "LiteLLM_DeprecatedVerificationToken"("token"); + +-- CreateIndex +CREATE INDEX "LiteLLM_DeprecatedVerificationToken_token_revoke_at_idx" ON "LiteLLM_DeprecatedVerificationToken"("token", "revoke_at"); + +-- CreateIndex +CREATE INDEX "LiteLLM_DeprecatedVerificationToken_revoke_at_idx" ON "LiteLLM_DeprecatedVerificationToken"("revoke_at"); diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212103349_adjust_tags_policy_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212103349_adjust_tags_policy_table/migration.sql new file mode 100644 index 00000000000..f3a0821d37f --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212103349_adjust_tags_policy_table/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "LiteLLM_PolicyAttachmentTable" ADD COLUMN "tags" TEXT[] DEFAULT ARRAY[]::TEXT[]; + diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql new file mode 100644 index 00000000000..67e75e84c4a --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260212143306_add_access_group_table/migration.sql @@ -0,0 +1,33 @@ +-- AlterTable +ALTER TABLE "LiteLLM_DeletedTeamTable" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_DeletedVerificationToken" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_TeamTable" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- AlterTable +ALTER TABLE "LiteLLM_VerificationToken" ADD COLUMN "access_group_ids" TEXT[] DEFAULT ARRAY[]::TEXT[]; + +-- CreateTable +CREATE TABLE "LiteLLM_AccessGroupTable" ( + "access_group_id" TEXT NOT NULL, + "access_group_name" TEXT NOT NULL, + "description" TEXT, + "access_model_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "access_mcp_server_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "access_agent_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "assigned_team_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "assigned_key_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT, + "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_by" TEXT, + + CONSTRAINT "LiteLLM_AccessGroupTable_pkey" PRIMARY KEY ("access_group_id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "LiteLLM_AccessGroupTable_access_group_name_key" ON "LiteLLM_AccessGroupTable"("access_group_name"); + diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213105436_add_managed_vector_store_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213105436_add_managed_vector_store_table/migration.sql new file mode 100644 index 00000000000..0835875220f --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213105436_add_managed_vector_store_table/migration.sql @@ -0,0 +1,22 @@ +-- CreateTable +CREATE TABLE "LiteLLM_ManagedVectorStoreTable" ( + "id" TEXT NOT NULL, + "unified_resource_id" TEXT NOT NULL, + "resource_object" JSONB, + "model_mappings" JSONB NOT NULL, + "flat_model_resource_ids" TEXT[] DEFAULT ARRAY[]::TEXT[], + "storage_backend" TEXT, + "storage_url" TEXT, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT, + "updated_at" TIMESTAMP(3) NOT NULL, + "updated_by" TEXT, + + CONSTRAINT "LiteLLM_ManagedVectorStoreTable_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "LiteLLM_ManagedVectorStoreTable_unified_resource_id_key" ON "LiteLLM_ManagedVectorStoreTable"("unified_resource_id"); + +-- CreateIndex +CREATE INDEX "LiteLLM_ManagedVectorStoreTable_unified_resource_id_idx" ON "LiteLLM_ManagedVectorStoreTable"("unified_resource_id"); diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213170952_access_group_change_to_model_name/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213170952_access_group_change_to_model_name/migration.sql new file mode 100644 index 00000000000..c940d3aca8b --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260213170952_access_group_change_to_model_name/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "LiteLLM_AccessGroupTable" DROP COLUMN "access_model_ids", +ADD COLUMN "access_model_names" TEXT[] DEFAULT ARRAY[]::TEXT[]; diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214094754_schema_sync/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214094754_schema_sync/migration.sql new file mode 100644 index 00000000000..b5d5b978580 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214094754_schema_sync/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "LiteLLM_GuardrailsTable" ADD COLUMN "team_id" TEXT; + diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214124140_baseline_diff/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214124140_baseline_diff/migration.sql new file mode 100644 index 00000000000..2f725d83806 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214124140_baseline_diff/migration.sql @@ -0,0 +1,2 @@ +-- This is an empty migration. + diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214163027_add_pipeline_to_policy_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214163027_add_pipeline_to_policy_table/migration.sql new file mode 100644 index 00000000000..e57b9ef29c5 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260214163027_add_pipeline_to_policy_table/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "LiteLLM_PolicyTable" ADD COLUMN "pipeline" JSONB; + diff --git a/litellm-proxy-extras/litellm_proxy_extras/schema.prisma b/litellm-proxy-extras/litellm_proxy_extras/schema.prisma index b1ca1f71c9e..441c2cdf70d 100644 --- a/litellm-proxy-extras/litellm_proxy_extras/schema.prisma +++ b/litellm-proxy-extras/litellm_proxy_extras/schema.prisma @@ -128,6 +128,7 @@ model LiteLLM_TeamTable { model_max_budget Json @default("{}") router_settings Json? @default("{}") team_member_permissions String[] @default([]) + access_group_ids String[] @default([]) policies String[] @default([]) model_id Int? @unique // id for LiteLLM_ModelTable -> stores team-level model aliases allow_team_guardrail_config Boolean @default(false) // if true, team admin can configure guardrails for this team @@ -161,6 +162,7 @@ model LiteLLM_DeletedTeamTable { model_max_budget Json @default("{}") router_settings Json? @default("{}") team_member_permissions String[] @default([]) + access_group_ids String[] @default([]) policies String[] @default([]) model_id Int? // id for LiteLLM_ModelTable -> stores team-level model aliases allow_team_guardrail_config Boolean @default(false) @@ -293,6 +295,7 @@ model LiteLLM_VerificationToken { allowed_cache_controls String[] @default([]) allowed_routes String[] @default([]) policies String[] @default([]) + access_group_ids String[] @default([]) model_spend Json @default("{}") model_max_budget Json @default("{}") budget_id String? @@ -322,6 +325,19 @@ model LiteLLM_VerificationToken { @@index([budget_reset_at, expires]) } +// Deprecated keys during grace period - allows old key to work until revoke_at +model LiteLLM_DeprecatedVerificationToken { + id String @id @default(uuid()) + token String // Hashed old key + active_token_id String // Current token hash in LiteLLM_VerificationToken + revoke_at DateTime // When the old key stops working + created_at DateTime @default(now()) @map("created_at") + + @@unique([token]) + @@index([token, revoke_at]) + @@index([revoke_at]) +} + // Audit table for deleted keys - preserves spend and key information for historical tracking model LiteLLM_DeletedVerificationToken { id String @id @default(uuid()) @@ -348,6 +364,7 @@ model LiteLLM_DeletedVerificationToken { allowed_cache_controls String[] @default([]) allowed_routes String[] @default([]) policies String[] @default([]) + access_group_ids String[] @default([]) model_spend Json @default("{}") model_max_budget Json @default("{}") router_settings Json? @default("{}") @@ -766,6 +783,22 @@ model LiteLLM_ManagedObjectTable { // for batches or finetuning jobs which use t @@index([model_object_id]) } +model LiteLLM_ManagedVectorStoreTable { + id String @id @default(uuid()) + unified_resource_id String @unique // The base64 encoded unified vector store ID + resource_object Json? // Stores the VectorStoreCreateResponse + model_mappings Json // Maps model_id -> provider_vector_store_id + flat_model_resource_ids String[] @default([]) // Flat list of provider vector store IDs for faster querying + storage_backend String? // Storage backend name (if applicable) + storage_url String? // Storage URL (if applicable) + created_at DateTime @default(now()) + created_by String? + updated_at DateTime @updatedAt + updated_by String? + + @@index([unified_resource_id]) +} + model LiteLLM_ManagedVectorStoresTable { vector_store_id String @id custom_llm_provider String @@ -900,6 +933,7 @@ model LiteLLM_PolicyTable { guardrails_add String[] @default([]) guardrails_remove String[] @default([]) condition Json? @default("{}") // Policy conditions (e.g., model matching) + pipeline Json? // Optional guardrail pipeline (mode + steps[]) created_at DateTime @default(now()) created_by String? updated_at DateTime @default(now()) @updatedAt @@ -914,8 +948,29 @@ model LiteLLM_PolicyAttachmentTable { teams String[] @default([]) // Team aliases or patterns keys String[] @default([]) // Key aliases or patterns models String[] @default([]) // Model names or patterns + tags String[] @default([]) // Tag patterns (e.g., ["healthcare", "prod-*"]) created_at DateTime @default(now()) created_by String? updated_at DateTime @default(now()) @updatedAt updated_by String? } + +//Unified Access Groups table for storing unified access groups +model LiteLLM_AccessGroupTable { + access_group_id String @id @default(uuid()) + access_group_name String @unique + description String? + + // Resource memberships - explicit arrays per type + access_model_names String[] @default([]) + access_mcp_server_ids String[] @default([]) + access_agent_ids String[] @default([]) + + assigned_team_ids String[] @default([]) + assigned_key_ids String[] @default([]) + + created_at DateTime @default(now()) + created_by String? + updated_at DateTime @default(now()) @updatedAt + updated_by String? +} \ No newline at end of file diff --git a/litellm-proxy-extras/migration_runbook.md b/litellm-proxy-extras/migration_runbook.md index 93948f24b13..3310b1626a8 100644 --- a/litellm-proxy-extras/migration_runbook.md +++ b/litellm-proxy-extras/migration_runbook.md @@ -2,7 +2,35 @@ This is a runbook for creating and running database migrations for the LiteLLM proxy. For use for litellm engineers only. -## Quick Start +## Step 0: Sync All `schema.prisma` Files + +Before doing anything else, make sure all `schema.prisma` files in the repo are in sync. There are multiple copies that must match: + +| File | Purpose | +|------|---------| +| `schema.prisma` (repo root) | Source of truth | +| `litellm/proxy/schema.prisma` | Used by the proxy server | +| `litellm-proxy-extras/litellm_proxy_extras/schema.prisma` | Used for migration generation | + +**Sync process:** + +```bash +# 1. Diff all schema files against the root source of truth +diff schema.prisma litellm/proxy/schema.prisma +diff schema.prisma litellm-proxy-extras/litellm_proxy_extras/schema.prisma + +# 2. If there are differences, copy the root schema to all locations +cp schema.prisma litellm/proxy/schema.prisma +cp schema.prisma litellm-proxy-extras/litellm_proxy_extras/schema.prisma + +# 3. Verify all files are now identical +diff schema.prisma litellm/proxy/schema.prisma && echo "proxy schema in sync" || echo "MISMATCH" +diff schema.prisma litellm-proxy-extras/litellm_proxy_extras/schema.prisma && echo "extras schema in sync" || echo "MISMATCH" +``` + +> **Do NOT proceed to migration generation until all schema files are identical.** + +## Step 1: Quick Start — Generate Migration ```bash # Install deps (one time) @@ -43,8 +71,13 @@ rm -rf litellm-proxy-extras/litellm_proxy_extras/migrations/[empty_dir] ## Rules -- Update `schema.prisma` first +- Sync all `schema.prisma` files first (Step 0) +- Update `schema.prisma` at the repo root first, then sync copies - Review generated SQL before committing - Use descriptive migration names - Never edit existing migration files - Commit schema + migration together + +--- + +**Done with migration?** See [build_and_publish.md](./build_and_publish.md) to publish a new `litellm-proxy-extras` package. diff --git a/litellm-proxy-extras/pyproject.toml b/litellm-proxy-extras/pyproject.toml index e0a769a5edf..7ef0409b6b8 100644 --- a/litellm-proxy-extras/pyproject.toml +++ b/litellm-proxy-extras/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "litellm-proxy-extras" -version = "0.4.34" +version = "0.4.40" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." authors = ["BerriAI"] readme = "README.md" @@ -22,7 +22,7 @@ requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.commitizen] -version = "0.4.34" +version = "0.4.40" version_files = [ "pyproject.toml:version", "../requirements.txt:litellm-proxy-extras==", diff --git a/litellm/__init__.py b/litellm/__init__.py index dacb928e8a7..4aaddc3da76 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -175,6 +175,7 @@ _async_failure_callback: List[Union[str, Callable, "CustomLogger"]] = ( # Custo pre_call_rules: List[Callable] = [] post_call_rules: List[Callable] = [] turn_off_message_logging: Optional[bool] = False +standard_logging_payload_excluded_fields: Optional[List[str]] = None # Fields to exclude from StandardLoggingPayload before callbacks receive it log_raw_request_response: bool = False redact_messages_in_exceptions: Optional[bool] = False redact_user_api_key_info: Optional[bool] = False @@ -337,6 +338,10 @@ model_cost_map_url: str = os.getenv( "LITELLM_MODEL_COST_MAP_URL", "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json", ) +anthropic_beta_headers_url: str = os.getenv( + "LITELLM_ANTHROPIC_BETA_HEADERS_URL", + "https://raw.githubusercontent.com/BerriAI/litellm/main/litellm/anthropic_beta_headers_config.json", +) suppress_debug_info = False dynamodb_table_name: Optional[str] = None s3_callback_params: Optional[Dict] = None @@ -1155,6 +1160,7 @@ from .exceptions import ( BadRequestError, ImageFetchError, NotFoundError, + PermissionDeniedError, RateLimitError, ServiceUnavailableError, BadGatewayError, diff --git a/litellm/_lazy_imports_registry.py b/litellm/_lazy_imports_registry.py index ebe9af9d85c..2af6ed8f09e 100644 --- a/litellm/_lazy_imports_registry.py +++ b/litellm/_lazy_imports_registry.py @@ -275,7 +275,6 @@ LLM_CONFIG_NAMES = ( "LmStudioEmbeddingConfig", "NscaleConfig", "PerplexityChatConfig", - "PerplexityResponsesConfig", "AzureOpenAIO1Config", "IBMWatsonXAIConfig", "IBMWatsonXChatConfig", diff --git a/litellm/_service_logger.py b/litellm/_service_logger.py index b67d0d86063..8f9a3c5083f 100644 --- a/litellm/_service_logger.py +++ b/litellm/_service_logger.py @@ -312,10 +312,12 @@ class ServiceLogging(CustomLogger): _duration, type(_duration) ) ) # invalid _duration value + # Batch polling callbacks (check_batch_cost) don't include call_type in kwargs. + # Use .get() to avoid KeyError. await self.async_service_success_hook( service=ServiceTypes.LITELLM, duration=_duration, - call_type=kwargs["call_type"], + call_type=kwargs.get("call_type", "unknown") ) except Exception as e: raise e diff --git a/litellm/anthropic_beta_headers_config.json b/litellm/anthropic_beta_headers_config.json index 4ebb5ddb609..5dd8536f4c0 100644 --- a/litellm/anthropic_beta_headers_config.json +++ b/litellm/anthropic_beta_headers_config.json @@ -1,33 +1,152 @@ { - "description": "Unsupported Anthropic beta headers for each provider. Headers listed here will be dropped. Headers not listed are passed through as-is.", - "anthropic": [], - "azure_ai": [], - "bedrock_converse": [ - "prompt-caching-scope-2026-01-05", - "bash_20250124", - "bash_20241022", - "text_editor_20250124", - "text_editor_20241022", - "compact-2026-01-12", - "advanced-tool-use-2025-11-20", - "web-fetch-2025-09-10", - "code-execution-2025-08-25", - "skills-2025-10-02", - "files-api-2025-04-14", - "fast-mode-2026-02-01" - ], - "bedrock": [ - "advanced-tool-use-2025-11-20", - "prompt-caching-scope-2026-01-05", - "structured-outputs-2025-11-13", - "web-fetch-2025-09-10", - "code-execution-2025-08-25", - "skills-2025-10-02", - "files-api-2025-04-14", - "fast-mode-2026-02-01", - "mcp-servers-2025-12-04" - ], - "vertex_ai": [ - "prompt-caching-scope-2026-01-05" - ] -} + "description": "Mapping of Anthropic beta headers for each provider. Keys are input header names, values are provider-specific header names (or null if unsupported). Only headers present in mapping keys with non-null values can be forwarded.", + "anthropic": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "bash_20241022": null, + "bash_20250124": null, + "code-execution-2025-08-25": "code-execution-2025-08-25", + "compact-2026-01-12": "compact-2026-01-12", + "computer-use-2025-01-24": "computer-use-2025-01-24", + "computer-use-2025-11-24": "computer-use-2025-11-24", + "context-1m-2025-08-07": "context-1m-2025-08-07", + "context-management-2025-06-27": "context-management-2025-06-27", + "effort-2025-11-24": "effort-2025-11-24", + "fast-mode-2026-02-01": "fast-mode-2026-02-01", + "files-api-2025-04-14": "files-api-2025-04-14", + "structured-output-2024-03-01": null, + "fine-grained-tool-streaming-2025-05-14": "fine-grained-tool-streaming-2025-05-14", + "interleaved-thinking-2025-05-14": "interleaved-thinking-2025-05-14", + "mcp-client-2025-11-20": "mcp-client-2025-11-20", + "mcp-client-2025-04-04": "mcp-client-2025-04-04", + "mcp-servers-2025-12-04": null, + "oauth-2025-04-20": "oauth-2025-04-20", + "output-128k-2025-02-19": "output-128k-2025-02-19", + "prompt-caching-scope-2026-01-05": "prompt-caching-scope-2026-01-05", + "skills-2025-10-02": "skills-2025-10-02", + "structured-outputs-2025-11-13": "structured-outputs-2025-11-13", + "text_editor_20241022": null, + "text_editor_20250124": null, + "token-efficient-tools-2025-02-19": "token-efficient-tools-2025-02-19", + "web-fetch-2025-09-10": "web-fetch-2025-09-10", + "web-search-2025-03-05": "web-search-2025-03-05" + }, + "azure_ai": { + "advanced-tool-use-2025-11-20": "advanced-tool-use-2025-11-20", + "bash_20241022": null, + "bash_20250124": null, + "code-execution-2025-08-25": "code-execution-2025-08-25", + "compact-2026-01-12": null, + "computer-use-2025-01-24": "computer-use-2025-01-24", + "computer-use-2025-11-24": "computer-use-2025-11-24", + "context-1m-2025-08-07": "context-1m-2025-08-07", + "context-management-2025-06-27": "context-management-2025-06-27", + "effort-2025-11-24": "effort-2025-11-24", + "fast-mode-2026-02-01": null, + "files-api-2025-04-14": "files-api-2025-04-14", + "fine-grained-tool-streaming-2025-05-14": null, + "interleaved-thinking-2025-05-14": "interleaved-thinking-2025-05-14", + "mcp-client-2025-11-20": "mcp-client-2025-11-20", + "mcp-client-2025-04-04": "mcp-client-2025-04-04", + "mcp-servers-2025-12-04": null, + "output-128k-2025-02-19": null, + "structured-output-2024-03-01": null, + "prompt-caching-scope-2026-01-05": "prompt-caching-scope-2026-01-05", + "skills-2025-10-02": "skills-2025-10-02", + "structured-outputs-2025-11-13": "structured-outputs-2025-11-13", + "text_editor_20241022": null, + "text_editor_20250124": null, + "token-efficient-tools-2025-02-19": null, + "web-fetch-2025-09-10": "web-fetch-2025-09-10", + "web-search-2025-03-05": "web-search-2025-03-05" + }, + "bedrock_converse": { + "advanced-tool-use-2025-11-20": null, + "bash_20241022": null, + "bash_20250124": null, + "code-execution-2025-08-25": null, + "compact-2026-01-12": null, + "computer-use-2025-01-24": "computer-use-2025-01-24", + "computer-use-2025-11-24": "computer-use-2025-11-24", + "context-1m-2025-08-07": null, + "context-management-2025-06-27": "context-management-2025-06-27", + "effort-2025-11-24": null, + "fast-mode-2026-02-01": null, + "files-api-2025-04-14": null, + "fine-grained-tool-streaming-2025-05-14": null, + "interleaved-thinking-2025-05-14": "interleaved-thinking-2025-05-14", + "mcp-client-2025-11-20": null, + "mcp-client-2025-04-04": null, + "mcp-servers-2025-12-04": null, + "output-128k-2025-02-19": null, + "structured-output-2024-03-01": null, + "prompt-caching-scope-2026-01-05": null, + "skills-2025-10-02": null, + "structured-outputs-2025-11-13": "structured-outputs-2025-11-13", + "text_editor_20241022": null, + "text_editor_20250124": null, + "token-efficient-tools-2025-02-19": null, + "tool-search-tool-2025-10-19": null, + "web-fetch-2025-09-10": null, + "web-search-2025-03-05": null + }, + "bedrock": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "bash_20241022": null, + "bash_20250124": null, + "code-execution-2025-08-25": null, + "compact-2026-01-12": "compact-2026-01-12", + "computer-use-2025-01-24": "computer-use-2025-01-24", + "computer-use-2025-11-24": "computer-use-2025-11-24", + "context-1m-2025-08-07": "context-1m-2025-08-07", + "context-management-2025-06-27": "context-management-2025-06-27", + "effort-2025-11-24": null, + "fast-mode-2026-02-01": null, + "files-api-2025-04-14": null, + "fine-grained-tool-streaming-2025-05-14": null, + "interleaved-thinking-2025-05-14": "interleaved-thinking-2025-05-14", + "mcp-client-2025-11-20": null, + "mcp-client-2025-04-04": null, + "mcp-servers-2025-12-04": null, + "output-128k-2025-02-19": null, + "structured-output-2024-03-01": null, + "prompt-caching-scope-2026-01-05": null, + "skills-2025-10-02": null, + "structured-outputs-2025-11-13": null, + "text_editor_20241022": null, + "text_editor_20250124": null, + "token-efficient-tools-2025-02-19": null, + "tool-search-tool-2025-10-19": "tool-search-tool-2025-10-19", + "web-fetch-2025-09-10": null, + "web-search-2025-03-05": null + }, + "vertex_ai": { + "advanced-tool-use-2025-11-20": "tool-search-tool-2025-10-19", + "bash_20241022": null, + "bash_20250124": null, + "code-execution-2025-08-25": null, + "compact-2026-01-12": null, + "computer-use-2025-01-24": "computer-use-2025-01-24", + "computer-use-2025-11-24": "computer-use-2025-11-24", + "context-1m-2025-08-07": null, + "context-management-2025-06-27": "context-management-2025-06-27", + "effort-2025-11-24": null, + "fast-mode-2026-02-01": null, + "files-api-2025-04-14": null, + "fine-grained-tool-streaming-2025-05-14": null, + "interleaved-thinking-2025-05-14": "interleaved-thinking-2025-05-14", + "mcp-client-2025-11-20": null, + "mcp-client-2025-04-04": null, + "mcp-servers-2025-12-04": null, + "output-128k-2025-02-19": null, + "structured-output-2024-03-01": null, + "prompt-caching-scope-2026-01-05": null, + "skills-2025-10-02": null, + "structured-outputs-2025-11-13": null, + "text_editor_20241022": null, + "text_editor_20250124": null, + "token-efficient-tools-2025-02-19": null, + "tool-search-tool-2025-10-19": "tool-search-tool-2025-10-19", + "web-fetch-2025-09-10": null, + "web-search-2025-03-05": "web-search-2025-03-05" + } +} \ No newline at end of file diff --git a/litellm/anthropic_beta_headers_manager.py b/litellm/anthropic_beta_headers_manager.py index 2643f4c03fa..24df6296b91 100644 --- a/litellm/anthropic_beta_headers_manager.py +++ b/litellm/anthropic_beta_headers_manager.py @@ -2,30 +2,170 @@ Centralized manager for Anthropic beta headers across different providers. This module provides utilities to: -1. Load beta header configuration from JSON (lists unsupported headers per provider) -2. Filter out unsupported beta headers +1. Load beta header configuration from JSON (mapping of supported headers per provider) +2. Filter and map beta headers based on provider support 3. Handle provider-specific header name mappings (e.g., advanced-tool-use -> tool-search-tool) +4. Support remote fetching and caching similar to model cost map Design: -- JSON config lists UNSUPPORTED headers for each provider -- Headers not in the unsupported list are passed through -- Header mappings allow renaming headers for specific providers +- JSON config contains mapping of beta headers for each provider +- Keys are input header names, values are provider-specific header names (or null if unsupported) +- Only headers present in mapping keys with non-null values can be forwarded +- This enforces stricter validation than the previous unsupported list approach + +Configuration can be loaded from: +- Remote URL (default): Fetches from GitHub repository +- Local file: Set LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS=True to use bundled config only + +Environment Variables: +- LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS: Set to "True" to disable remote fetching +- LITELLM_ANTHROPIC_BETA_HEADERS_URL: Custom URL for remote config (optional) """ import json import os +from importlib.resources import files from typing import Dict, List, Optional, Set +import httpx + from litellm.litellm_core_utils.litellm_logging import verbose_logger # Cache for the loaded configuration _BETA_HEADERS_CONFIG: Optional[Dict] = None +class GetAnthropicBetaHeadersConfig: + """ + Handles fetching, validating, and loading the Anthropic beta headers configuration. + + Similar to GetModelCostMap, this class manages the lifecycle of the beta headers + configuration with support for remote fetching and local fallback. + """ + + @staticmethod + def load_local_beta_headers_config() -> Dict: + """Load the local backup beta headers config bundled with the package.""" + try: + content = json.loads( + files("litellm") + .joinpath("anthropic_beta_headers_config.json") + .read_text(encoding="utf-8") + ) + return content + except Exception as e: + verbose_logger.error(f"Failed to load local beta headers config: {e}") + # Return empty config as fallback + return { + "anthropic": {}, + "azure_ai": {}, + "bedrock": {}, + "bedrock_converse": {}, + "vertex_ai": {}, + "provider_aliases": {} + } + + @staticmethod + def _check_is_valid_dict(fetched_config: dict) -> bool: + """Check if fetched config is a non-empty dict with expected structure.""" + if not isinstance(fetched_config, dict): + verbose_logger.warning( + "LiteLLM: Fetched beta headers config is not a dict (type=%s). " + "Falling back to local backup.", + type(fetched_config).__name__, + ) + return False + + if len(fetched_config) == 0: + verbose_logger.warning( + "LiteLLM: Fetched beta headers config is empty. " + "Falling back to local backup.", + ) + return False + + # Check for at least one provider key + provider_keys = ["anthropic", "azure_ai", "bedrock", "bedrock_converse", "vertex_ai"] + has_provider = any(key in fetched_config for key in provider_keys) + + if not has_provider: + verbose_logger.warning( + "LiteLLM: Fetched beta headers config missing provider keys. " + "Falling back to local backup.", + ) + return False + + return True + + @classmethod + def validate_beta_headers_config(cls, fetched_config: dict) -> bool: + """ + Validate the integrity of a fetched beta headers config. + + Returns True if all checks pass, False otherwise. + """ + return cls._check_is_valid_dict(fetched_config) + + @staticmethod + def fetch_remote_beta_headers_config(url: str, timeout: int = 5) -> dict: + """ + Fetch the beta headers config from a remote URL. + + Returns the parsed JSON dict. Raises on network/parse errors + (caller is expected to handle). + """ + response = httpx.get(url, timeout=timeout) + response.raise_for_status() + return response.json() + + +def get_beta_headers_config(url: str) -> dict: + """ + Public entry point — returns the beta headers config dict. + + 1. If ``LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS`` is set, uses the local backup only. + 2. Otherwise fetches from ``url``, validates integrity, and falls back + to the local backup on any failure. + + Args: + url: URL to fetch the remote beta headers configuration from + + Returns: + Dict containing the beta headers configuration + """ + # Check if local-only mode is enabled + if os.getenv("LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS", "").lower() == "true": + # verbose_logger.debug("Using local Anthropic beta headers config (LITELLM_LOCAL_ANTHROPIC_BETA_HEADERS=True)") + return GetAnthropicBetaHeadersConfig.load_local_beta_headers_config() + + try: + content = GetAnthropicBetaHeadersConfig.fetch_remote_beta_headers_config(url) + except Exception as e: + verbose_logger.warning( + "LiteLLM: Failed to fetch remote beta headers config from %s: %s. " + "Falling back to local backup.", + url, + str(e), + ) + return GetAnthropicBetaHeadersConfig.load_local_beta_headers_config() + + # Validate the fetched config + if not GetAnthropicBetaHeadersConfig.validate_beta_headers_config(fetched_config=content): + verbose_logger.warning( + "LiteLLM: Fetched beta headers config failed integrity check. " + "Using local backup instead. url=%s", + url, + ) + return GetAnthropicBetaHeadersConfig.load_local_beta_headers_config() + + return content + + def _load_beta_headers_config() -> Dict: """ - Load the beta headers configuration from JSON file. - Uses caching to avoid repeated file reads. + Load the beta headers configuration. + Uses caching to avoid repeated fetches/file reads. + + This function is called by all public API functions and manages the global cache. Returns: Dict containing the beta headers configuration @@ -35,26 +175,27 @@ def _load_beta_headers_config() -> Dict: if _BETA_HEADERS_CONFIG is not None: return _BETA_HEADERS_CONFIG - config_path = os.path.join( - os.path.dirname(__file__), - "anthropic_beta_headers_config.json" - ) + # Get the URL from environment or use default + from litellm import anthropic_beta_headers_url - try: - with open(config_path, "r") as f: - _BETA_HEADERS_CONFIG = json.load(f) - verbose_logger.debug(f"Loaded beta headers config from {config_path}") - return _BETA_HEADERS_CONFIG - except Exception as e: - verbose_logger.error(f"Failed to load beta headers config: {e}") - # Return empty config as fallback - return { - "anthropic": [], - "azure_ai": [], - "bedrock": [], - "bedrock_converse": [], - "vertex_ai": [] - } + _BETA_HEADERS_CONFIG = get_beta_headers_config(url=anthropic_beta_headers_url) + verbose_logger.debug("Loaded and cached beta headers config") + + return _BETA_HEADERS_CONFIG + + +def reload_beta_headers_config() -> Dict: + """ + Force reload the beta headers configuration from source (remote or local). + Clears the cache and fetches fresh configuration. + + Returns: + Dict containing the newly loaded beta headers configuration + """ + global _BETA_HEADERS_CONFIG + _BETA_HEADERS_CONFIG = None + verbose_logger.info("Reloading beta headers config (cache cleared)") + return _load_beta_headers_config() def get_provider_name(provider: str) -> str: @@ -77,21 +218,19 @@ def filter_and_transform_beta_headers( provider: str, ) -> List[str]: """ - Filter beta headers based on provider's unsupported list. + Filter and transform beta headers based on provider's mapping configuration. This function: - 1. Removes headers that are in the provider's unsupported list - 2. Passes through all other headers as-is - - Note: Header transformations/mappings (e.g., advanced-tool-use -> tool-search-tool) - are handled in each provider's transformation code, not here. + 1. Only allows headers that are present in the provider's mapping keys + 2. Filters out headers with null values (unsupported) + 3. Maps headers to provider-specific names (e.g., advanced-tool-use -> tool-search-tool) Args: beta_headers: List of Anthropic beta header values provider: Provider name (e.g., "anthropic", "bedrock", "vertex_ai") Returns: - List of filtered beta headers for the provider + List of filtered and transformed beta headers for the provider """ if not beta_headers: return [] @@ -99,23 +238,33 @@ def filter_and_transform_beta_headers( config = _load_beta_headers_config() provider = get_provider_name(provider) - # Get unsupported headers for this provider - unsupported_headers = set(config.get(provider, [])) + # Get the header mapping for this provider + provider_mapping = config.get(provider, {}) filtered_headers: Set[str] = set() for header in beta_headers: header = header.strip() - # Skip if header is unsupported - if header in unsupported_headers: + # Check if header is in the mapping + if header not in provider_mapping: + verbose_logger.debug( + f"Dropping unknown beta header '{header}' for provider '{provider}' (not in mapping)" + ) + continue + + # Get the mapped header value + mapped_header = provider_mapping[header] + + # Skip if header is unsupported (null value) + if mapped_header is None: verbose_logger.debug( f"Dropping unsupported beta header '{header}' for provider '{provider}'" ) continue - # Pass through as-is - filtered_headers.add(header) + # Add the mapped header + filtered_headers.add(mapped_header) return sorted(list(filtered_headers)) @@ -132,12 +281,14 @@ def is_beta_header_supported( provider: Provider name Returns: - True if the header is supported (not in unsupported list), False otherwise + True if the header is in the mapping with a non-null value, False otherwise """ config = _load_beta_headers_config() provider = get_provider_name(provider) - unsupported_headers = set(config.get(provider, [])) - return beta_header not in unsupported_headers + provider_mapping = config.get(provider, {}) + + # Header is supported if it's in the mapping and has a non-null value + return beta_header in provider_mapping and provider_mapping[beta_header] is not None def get_provider_beta_header( @@ -145,27 +296,29 @@ def get_provider_beta_header( provider: str, ) -> Optional[str]: """ - Check if a beta header is supported by a provider. + Get the provider-specific beta header name for a given Anthropic beta header. - Note: This does NOT handle header transformations/mappings. - Those are handled in each provider's transformation code. + This function handles header transformations/mappings (e.g., advanced-tool-use -> tool-search-tool). Args: anthropic_beta_header: The Anthropic beta header value provider: Provider name Returns: - The original header if supported, or None if unsupported + The provider-specific header name if supported, or None if unsupported/unknown """ config = _load_beta_headers_config() provider = get_provider_name(provider) - # Check if unsupported - unsupported_headers = set(config.get(provider, [])) - if anthropic_beta_header in unsupported_headers: + # Get the header mapping for this provider + provider_mapping = config.get(provider, {}) + + # Check if header is in the mapping + if anthropic_beta_header not in provider_mapping: return None - return anthropic_beta_header + # Return the mapped value (could be None if unsupported) + return provider_mapping[anthropic_beta_header] def update_headers_with_filtered_beta( @@ -208,7 +361,7 @@ def update_headers_with_filtered_beta( def get_unsupported_headers(provider: str) -> List[str]: """ - Get all beta headers that are unsupported by a provider. + Get all beta headers that are unsupported by a provider (have null values in mapping). Args: provider: Provider name @@ -218,4 +371,7 @@ def get_unsupported_headers(provider: str) -> List[str]: """ config = _load_beta_headers_config() provider = get_provider_name(provider) - return config.get(provider, []) + provider_mapping = config.get(provider, {}) + + # Return headers with null values + return [header for header, value in provider_mapping.items() if value is None] diff --git a/litellm/batch_completion/main.py b/litellm/batch_completion/main.py index 7100fb004f8..446e3f2f990 100644 --- a/litellm/batch_completion/main.py +++ b/litellm/batch_completion/main.py @@ -237,17 +237,37 @@ def batch_completion_models_all_responses(*args, **kwargs): if "model" in kwargs: kwargs.pop("model") if "models" in kwargs: - models = kwargs["models"] - kwargs.pop("models") + models = kwargs.pop("models") else: raise Exception("'models' param not in kwargs") + if isinstance(models, str): + models = [models] + elif isinstance(models, (list, tuple)): + models = list(models) + else: + raise TypeError("'models' must be a string or list of strings") + + if len(models) == 0: + return [] + responses = [] with concurrent.futures.ThreadPoolExecutor(max_workers=len(models)) as executor: - for idx, model in enumerate(models): - future = executor.submit(litellm.completion, *args, model=model, **kwargs) - if future.result() is not None: - responses.append(future.result()) + futures = [ + executor.submit(litellm.completion, *args, model=model, **kwargs) + for model in models + ] + + for future in futures: + try: + result = future.result() + if result is not None: + responses.append(result) + except Exception as e: + print_verbose( + f"batch_completion_models_all_responses: model request failed: {str(e)}" + ) + continue return responses diff --git a/litellm/batches/batch_utils.py b/litellm/batches/batch_utils.py index f80eae20f3b..29bd99c2a60 100644 --- a/litellm/batches/batch_utils.py +++ b/litellm/batches/batch_utils.py @@ -8,7 +8,7 @@ import litellm from litellm._logging import verbose_logger from litellm._uuid import uuid from litellm.types.llms.openai import Batch -from litellm.types.utils import CallTypes, ModelResponse, Usage +from litellm.types.utils import CallTypes, ModelInfo, ModelResponse, Usage from litellm.utils import token_counter @@ -16,14 +16,22 @@ async def calculate_batch_cost_and_usage( file_content_dictionary: List[dict], custom_llm_provider: Literal["openai", "azure", "vertex_ai", "hosted_vllm", "anthropic"], model_name: Optional[str] = None, + model_info: Optional[ModelInfo] = None, ) -> Tuple[float, Usage, List[str]]: """ - Calculate the cost and usage of a batch + Calculate the cost and usage of a batch. + + Args: + model_info: Optional deployment-level model info with custom batch + pricing. Threaded through to batch_cost_calculator so that + deployment-specific pricing (e.g. input_cost_per_token_batches) + is used instead of the global cost map. """ batch_cost = _batch_cost_calculator( custom_llm_provider=custom_llm_provider, file_content_dictionary=file_content_dictionary, model_name=model_name, + model_info=model_info, ) batch_usage = _get_batch_job_total_usage_from_file_content( file_content_dictionary=file_content_dictionary, @@ -39,11 +47,19 @@ async def _handle_completed_batch( batch: Batch, custom_llm_provider: Literal["openai", "azure", "vertex_ai", "hosted_vllm", "anthropic"], model_name: Optional[str] = None, + litellm_params: Optional[dict] = None, ) -> Tuple[float, Usage, List[str]]: - """Helper function to process a completed batch and handle logging""" + """Helper function to process a completed batch and handle logging + + Args: + batch: The batch object + custom_llm_provider: The LLM provider + model_name: Optional model name + litellm_params: Optional litellm parameters containing credentials (api_key, api_base, etc.) + """ # Get batch results file_content_dictionary = await _get_batch_output_file_content_as_dictionary( - batch, custom_llm_provider + batch, custom_llm_provider, litellm_params=litellm_params ) # Calculate costs and usage @@ -86,6 +102,7 @@ def _batch_cost_calculator( file_content_dictionary: List[dict], custom_llm_provider: Literal["openai", "azure", "vertex_ai", "hosted_vllm", "anthropic"] = "openai", model_name: Optional[str] = None, + model_info: Optional[ModelInfo] = None, ) -> float: """ Calculate the cost of a batch based on the output file id @@ -100,6 +117,7 @@ def _batch_cost_calculator( total_cost = _get_batch_job_cost_from_file_content( file_content_dictionary=file_content_dictionary, custom_llm_provider=custom_llm_provider, + model_info=model_info, ) verbose_logger.debug("total_cost=%s", total_cost) return total_cost @@ -187,9 +205,16 @@ def calculate_vertex_ai_batch_cost_and_usage( async def _get_batch_output_file_content_as_dictionary( batch: Batch, custom_llm_provider: Literal["openai", "azure", "vertex_ai", "hosted_vllm", "anthropic"] = "openai", + litellm_params: Optional[dict] = None, ) -> List[dict]: """ Get the batch output file content as a list of dictionaries + + Args: + batch: The batch object + custom_llm_provider: The LLM provider + litellm_params: Optional litellm parameters containing credentials (api_key, api_base, etc.) + Required for Azure and other providers that need authentication """ from litellm.files.main import afile_content from litellm.proxy.openai_files_endpoints.common_utils import ( @@ -211,13 +236,50 @@ async def _get_batch_output_file_content_as_dictionary( except (IndexError, AttributeError) as e: verbose_logger.error(f"Failed to extract LLM output file ID from unified file ID: {batch.output_file_id}, error: {e}") - _file_content = await afile_content( - file_id=file_id, - custom_llm_provider=custom_llm_provider, - ) + # Build kwargs for afile_content with credentials from litellm_params + file_content_kwargs = { + "file_id": file_id, + "custom_llm_provider": custom_llm_provider, + } + + # Extract and add credentials for file access + credentials = _extract_file_access_credentials(litellm_params) + file_content_kwargs.update(credentials) + + _file_content = await afile_content(**file_content_kwargs) return _get_file_content_as_dictionary(_file_content.content) +def _extract_file_access_credentials(litellm_params: Optional[dict]) -> dict: + """ + Extract credentials from litellm_params for file access operations. + + This method extracts relevant authentication and configuration parameters + needed for accessing files across different providers (Azure, Vertex AI, etc.). + + Args: + litellm_params: Dictionary containing litellm parameters with credentials + + Returns: + Dictionary containing only the credentials needed for file access + """ + credentials = {} + + if litellm_params: + # List of credential keys that should be passed to file operations + credential_keys = [ + "api_key", "api_base", "api_version", "organization", + "azure_ad_token", "azure_ad_token_provider", + "vertex_project", "vertex_location", "vertex_credentials", + "timeout", "max_retries" + ] + for key in credential_keys: + if key in litellm_params: + credentials[key] = litellm_params[key] + + return credentials + + def _get_file_content_as_dictionary(file_content: bytes) -> List[dict]: """ Get the file content as a list of dictionaries from JSON Lines format @@ -238,10 +300,13 @@ def _get_file_content_as_dictionary(file_content: bytes) -> List[dict]: def _get_batch_job_cost_from_file_content( file_content_dictionary: List[dict], custom_llm_provider: Literal["openai", "azure", "vertex_ai", "hosted_vllm", "anthropic"] = "openai", + model_info: Optional[ModelInfo] = None, ) -> float: """ Get the cost of a batch job from the file content """ + from litellm.cost_calculator import batch_cost_calculator + try: total_cost: float = 0.0 # parse the file content as json @@ -251,11 +316,22 @@ def _get_batch_job_cost_from_file_content( for _item in file_content_dictionary: if _batch_response_was_successful(_item): _response_body = _get_response_from_batch_job_output_file(_item) - total_cost += litellm.completion_cost( - completion_response=_response_body, - custom_llm_provider=custom_llm_provider, - call_type=CallTypes.aretrieve_batch.value, - ) + if model_info is not None: + usage = _get_batch_job_usage_from_response_body(_response_body) + model = _response_body.get("model", "") + prompt_cost, completion_cost = batch_cost_calculator( + usage=usage, + model=model, + custom_llm_provider=custom_llm_provider, + model_info=model_info, + ) + total_cost += prompt_cost + completion_cost + else: + total_cost += litellm.completion_cost( + completion_response=_response_body, + custom_llm_provider=custom_llm_provider, + call_type=CallTypes.aretrieve_batch.value, + ) verbose_logger.debug("total_cost=%s", total_cost) return total_cost except Exception as e: diff --git a/litellm/caching/dual_cache.py b/litellm/caching/dual_cache.py index 3edc3f42820..6df570c72b9 100644 --- a/litellm/caching/dual_cache.py +++ b/litellm/caching/dual_cache.py @@ -12,7 +12,8 @@ import asyncio import time import traceback from concurrent.futures import ThreadPoolExecutor -from typing import TYPE_CHECKING, Any, List, Optional, Union +from threading import Lock +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union if TYPE_CHECKING: from litellm.types.caching import RedisPipelineIncrementOperation @@ -71,6 +72,7 @@ class DualCache(BaseCache): self.last_redis_batch_access_time = LimitedSizeOrderedDict( max_size=default_max_redis_batch_cache_size ) + self._last_redis_batch_access_time_lock = Lock() self.redis_batch_cache_expiry = ( default_redis_batch_cache_expiry or litellm.default_redis_batch_cache_expiry @@ -236,22 +238,46 @@ class DualCache(BaseCache): except Exception: verbose_logger.error(traceback.format_exc()) - def get_redis_batch_keys( + def _reserve_redis_batch_keys( self, current_time: float, keys: List[str], result: List[Any], - ) -> List[str]: - sublist_keys = [] - for key, value in zip(keys, result): - if value is None: + ) -> Tuple[List[str], Dict[str, Optional[float]]]: + """ + Atomically choose keys to fetch from Redis and reserve their access time. + This prevents check-then-act races under concurrent async callers. + """ + sublist_keys: List[str] = [] + previous_access_times: Dict[str, Optional[float]] = {} + + with self._last_redis_batch_access_time_lock: + for key, value in zip(keys, result): + if value is not None: + continue + if ( key not in self.last_redis_batch_access_time or current_time - self.last_redis_batch_access_time[key] >= self.redis_batch_cache_expiry ): sublist_keys.append(key) - return sublist_keys + previous_access_times[key] = self.last_redis_batch_access_time.get( + key + ) + self.last_redis_batch_access_time[key] = current_time + + return sublist_keys, previous_access_times + + def _rollback_redis_batch_key_reservations( + self, previous_access_times: Dict[str, Optional[float]] + ) -> None: + with self._last_redis_batch_access_time_lock: + for key, previous_time in previous_access_times.items(): + if previous_time is None: + self.last_redis_batch_access_time.pop(key, None) + else: + self.last_redis_batch_access_time[key] = previous_time async def async_batch_get_cache( self, @@ -276,19 +302,23 @@ class DualCache(BaseCache): - check the redis cache """ current_time = time.time() - sublist_keys = self.get_redis_batch_keys(current_time, keys, result) + sublist_keys, previous_access_times = self._reserve_redis_batch_keys( + current_time, keys, result + ) - # Only hit Redis if the last access time was more than 5 seconds ago + # Only hit Redis if enough time has passed since last access. if len(sublist_keys) > 0: - # If not found in in-memory cache, try fetching from Redis - redis_result = await self.redis_cache.async_batch_get_cache( - sublist_keys, parent_otel_span=parent_otel_span - ) - - # Update the last access time for ALL queried keys - # This includes keys with None values to throttle repeated Redis queries - for key in sublist_keys: - self.last_redis_batch_access_time[key] = current_time + try: + # If not found in in-memory cache, try fetching from Redis + redis_result = await self.redis_cache.async_batch_get_cache( + sublist_keys, parent_otel_span=parent_otel_span + ) + except Exception: + # Do not throttle subsequent callers if the Redis read fails. + self._rollback_redis_batch_key_reservations( + previous_access_times + ) + raise # Short-circuit if redis_result is None or contains only None values if redis_result is None or all(v is None for v in redis_result.values()): diff --git a/litellm/completion_extras/litellm_responses_transformation/transformation.py b/litellm/completion_extras/litellm_responses_transformation/transformation.py index 753a94295b3..e546a0dbb02 100644 --- a/litellm/completion_extras/litellm_responses_transformation/transformation.py +++ b/litellm/completion_extras/litellm_responses_transformation/transformation.py @@ -227,6 +227,84 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): return input_items, instructions + def _map_optional_params_to_responses_api_request( + self, + optional_params: dict, + responses_api_request: "ResponsesAPIOptionalRequestParams", + ) -> None: + """Map optional_params into responses_api_request (mutates in place).""" + for key, value in optional_params.items(): + if value is None: + continue + if key in ("max_tokens", "max_completion_tokens"): + responses_api_request["max_output_tokens"] = value + elif key == "tools" and value is not None: + responses_api_request["tools"] = ( + self._convert_tools_to_responses_format( + cast(List[Dict[str, Any]], value) + ) + ) + elif key == "response_format": + text_format = self._transform_response_format_to_text_format(value) + if text_format: + responses_api_request["text"] = text_format # type: ignore + elif key in ResponsesAPIOptionalRequestParams.__annotations__.keys(): + responses_api_request[key] = value # type: ignore + elif key == "previous_response_id": + responses_api_request["previous_response_id"] = value + elif key == "reasoning_effort": + responses_api_request["reasoning"] = self._map_reasoning_effort(value) + elif key == "web_search_options": + self._add_web_search_tool(responses_api_request, value) + + def _build_sanitized_litellm_params( + self, litellm_params: dict + ) -> Dict[str, Any]: + """Build sanitized litellm_params with merged metadata.""" + responses_optional_param_keys = set( + ResponsesAPIOptionalRequestParams.__annotations__.keys() + ) + sanitized: Dict[str, Any] = { + key: value + for key, value in litellm_params.items() + if key not in responses_optional_param_keys + } + legacy_metadata = litellm_params.get("metadata") + existing_litellm_metadata = litellm_params.get("litellm_metadata") + merged_litellm_metadata: Dict[str, Any] = {} + if isinstance(legacy_metadata, dict): + merged_litellm_metadata.update(legacy_metadata) + if isinstance(existing_litellm_metadata, dict): + merged_litellm_metadata.update(existing_litellm_metadata) + if merged_litellm_metadata: + sanitized["litellm_metadata"] = merged_litellm_metadata + else: + sanitized.pop("litellm_metadata", None) + return sanitized + + def _merge_responses_api_request_into_request_data( + self, + request_data: Dict[str, Any], + responses_api_request: "ResponsesAPIOptionalRequestParams", + instructions: Optional[str], + ) -> None: + """Add non-None values from responses_api_request into request_data.""" + for key, value in responses_api_request.items(): + if value is None: + continue + if key == "instructions" and instructions: + request_data["instructions"] = instructions + elif key == "stream_options" and isinstance(value, dict): + request_data["stream_options"] = value.get("include_obfuscation") + elif key == "user" and isinstance(value, str): + # OpenAI API requires user param to be max 64 chars - truncate if longer + if len(value) <= 64: + request_data["user"] = value + else: + request_data["user"] = value[:64] + else: + request_data[key] = value + def transform_request( self, model: str, @@ -251,36 +329,10 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): if instructions: responses_api_request["instructions"] = instructions - # Map optional parameters - for key, value in optional_params.items(): - if value is None: - continue - if key in ("max_tokens", "max_completion_tokens"): - responses_api_request["max_output_tokens"] = value - elif key == "tools" and value is not None: - # Convert chat completion tools to responses API tools format - responses_api_request["tools"] = ( - self._convert_tools_to_responses_format( - cast(List[Dict[str, Any]], value) - ) - ) - elif key == "response_format": - # Convert response_format to text.format - text_format = self._transform_response_format_to_text_format(value) - if text_format: - responses_api_request["text"] = text_format # type: ignore - elif key in ResponsesAPIOptionalRequestParams.__annotations__.keys(): - responses_api_request[key] = value # type: ignore - elif key == "metadata": - responses_api_request["metadata"] = value - elif key == "previous_response_id": - responses_api_request["previous_response_id"] = value - elif key == "reasoning_effort": - responses_api_request["reasoning"] = self._map_reasoning_effort(value) - elif key == "web_search_options": - self._add_web_search_tool(responses_api_request, value) + self._map_optional_params_to_responses_api_request( + optional_params, responses_api_request + ) - # Get stream parameter from litellm_params if not in optional_params stream = optional_params.get("stream") or litellm_params.get("stream", False) verbose_logger.debug(f"Chat provider: Stream parameter: {stream}") @@ -304,11 +356,15 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): setattr(litellm_logging_obj, "call_type", CallTypes.responses.value) + sanitized_litellm_params = self._build_sanitized_litellm_params( + litellm_params + ) + request_data = { "model": api_model, "input": input_items, "litellm_logging_obj": litellm_logging_obj, - **litellm_params, + **sanitized_litellm_params, "client": client, } @@ -316,18 +372,9 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): f"Chat provider: Final request model={api_model}, input_items={len(input_items)}" ) - # Add non-None values from responses_api_request - for key, value in responses_api_request.items(): - if value is not None: - if key == "instructions" and instructions: - request_data["instructions"] = instructions - elif key == "stream_options" and isinstance(value, dict): - request_data["stream_options"] = value.get("include_obfuscation") - elif key == "user": # string can't be longer than 64 characters - if isinstance(value, str) and len(value) <= 64: - request_data["user"] = value - else: - request_data[key] = value + self._merge_responses_api_request_into_request_data( + request_data, responses_api_request, instructions + ) if headers: request_data["extra_headers"] = headers diff --git a/litellm/constants.py b/litellm/constants.py index 180315ace0e..a4a0e7882ea 100644 --- a/litellm/constants.py +++ b/litellm/constants.py @@ -101,9 +101,12 @@ MCP_OAUTH2_TOKEN_CACHE_MAX_SIZE = int( MCP_OAUTH2_TOKEN_CACHE_DEFAULT_TTL = int( os.getenv("MCP_OAUTH2_TOKEN_CACHE_DEFAULT_TTL", "3600") ) -MCP_OAUTH2_TOKEN_CACHE_MIN_TTL = int( - os.getenv("MCP_OAUTH2_TOKEN_CACHE_MIN_TTL", "10") -) + +# Default npm cache directory for STDIO MCP servers. +# npm/npx needs a writable cache dir; in containers the default (~/.npm) +# may not exist or be read-only. /tmp is always writable. +MCP_NPM_CACHE_DIR = os.getenv("MCP_NPM_CACHE_DIR", "/tmp/.npm_mcp_cache") +MCP_OAUTH2_TOKEN_CACHE_MIN_TTL = int(os.getenv("MCP_OAUTH2_TOKEN_CACHE_MIN_TTL", "10")) LITELLM_UI_ALLOW_HEADERS = [ "x-litellm-semantic-filter", @@ -126,7 +129,7 @@ DEFAULT_REASONING_EFFORT_MINIMAL_THINKING_BUDGET_GEMINI_2_5_FLASH_LITE = int( # Maximum number of callbacks that can be registered # This prevents callbacks from exponentially growing and consuming CPU resources # Override with LITELLM_MAX_CALLBACKS env var for large deployments (e.g., many teams with guardrails) -MAX_CALLBACKS = get_env_int("LITELLM_MAX_CALLBACKS", 30) +MAX_CALLBACKS = get_env_int("LITELLM_MAX_CALLBACKS", 100) # Generic fallback for unknown models DEFAULT_REASONING_EFFORT_MINIMAL_THINKING_BUDGET = int( @@ -162,15 +165,19 @@ _DEFAULT_TTL_FOR_HTTPX_CLIENTS = 3600 # 1 hour, re-use the same httpx client fo # Aiohttp connection pooling - prevents memory leaks from unbounded connection growth # Set to 0 for unlimited (not recommended for production) AIOHTTP_CONNECTOR_LIMIT = int(os.getenv("AIOHTTP_CONNECTOR_LIMIT", 300)) -AIOHTTP_CONNECTOR_LIMIT_PER_HOST = int(os.getenv("AIOHTTP_CONNECTOR_LIMIT_PER_HOST", 50)) +AIOHTTP_CONNECTOR_LIMIT_PER_HOST = int( + os.getenv("AIOHTTP_CONNECTOR_LIMIT_PER_HOST", 50) +) AIOHTTP_KEEPALIVE_TIMEOUT = int(os.getenv("AIOHTTP_KEEPALIVE_TIMEOUT", 120)) AIOHTTP_TTL_DNS_CACHE = int(os.getenv("AIOHTTP_TTL_DNS_CACHE", 300)) # enable_cleanup_closed is only needed for Python versions with the SSL leak bug # Fixed in Python 3.12.7+ and 3.13.1+ (see https://github.com/python/cpython/pull/118960) # Reference: https://github.com/aio-libs/aiohttp/blob/master/aiohttp/connector.py#L74-L78 -AIOHTTP_NEEDS_CLEANUP_CLOSED = ( - (3, 13, 0) <= sys.version_info < (3, 13, 1) or sys.version_info < (3, 12, 7) -) +AIOHTTP_NEEDS_CLEANUP_CLOSED = (3, 13, 0) <= sys.version_info < ( + 3, + 13, + 1, +) or sys.version_info < (3, 12, 7) # WebSocket constants # Default to None (unlimited) to match OpenAI's official agents SDK behavior @@ -208,11 +215,15 @@ REDIS_UPDATE_BUFFER_KEY = "litellm_spend_update_buffer" REDIS_DAILY_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_spend_update_buffer" REDIS_DAILY_TEAM_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_team_spend_update_buffer" REDIS_DAILY_ORG_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_org_spend_update_buffer" -REDIS_DAILY_END_USER_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_end_user_spend_update_buffer" +REDIS_DAILY_END_USER_SPEND_UPDATE_BUFFER_KEY = ( + "litellm_daily_end_user_spend_update_buffer" +) REDIS_DAILY_AGENT_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_agent_spend_update_buffer" REDIS_DAILY_TAG_SPEND_UPDATE_BUFFER_KEY = "litellm_daily_tag_spend_update_buffer" MAX_REDIS_BUFFER_DEQUEUE_COUNT = int(os.getenv("MAX_REDIS_BUFFER_DEQUEUE_COUNT", 100)) MAX_SIZE_IN_MEMORY_QUEUE = int(os.getenv("MAX_SIZE_IN_MEMORY_QUEUE", 2000)) +# Bounds asyncio.Queue() instances (log queues, spend update queues, etc.) to prevent unbounded memory growth +LITELLM_ASYNCIO_QUEUE_MAXSIZE = int(os.getenv("LITELLM_ASYNCIO_QUEUE_MAXSIZE", 1000)) MAX_IN_MEMORY_QUEUE_FLUSH_COUNT = int( os.getenv("MAX_IN_MEMORY_QUEUE_FLUSH_COUNT", 1000) ) @@ -308,6 +319,9 @@ NON_LLM_CONNECTION_TIMEOUT = int( MAX_EXCEPTION_MESSAGE_LENGTH = int(os.getenv("MAX_EXCEPTION_MESSAGE_LENGTH", 2000)) MAX_STRING_LENGTH_PROMPT_IN_DB = int(os.getenv("MAX_STRING_LENGTH_PROMPT_IN_DB", 2048)) BEDROCK_MAX_POLICY_SIZE = int(os.getenv("BEDROCK_MAX_POLICY_SIZE", 75)) +BEDROCK_MIN_THINKING_BUDGET_TOKENS = int( + os.getenv("BEDROCK_MIN_THINKING_BUDGET_TOKENS", 1024) +) REPLICATE_POLLING_DELAY_SECONDS = float( os.getenv("REPLICATE_POLLING_DELAY_SECONDS", 0.5) ) @@ -334,7 +348,9 @@ MAX_SIZE_PER_ITEM_IN_MEMORY_CACHE_IN_KB = int( DEFAULT_MAX_TOKENS_FOR_TRITON = int(os.getenv("DEFAULT_MAX_TOKENS_FOR_TRITON", 2000)) #### Networking settings #### request_timeout: float = float(os.getenv("REQUEST_TIMEOUT", 6000)) # time in seconds -DEFAULT_A2A_AGENT_TIMEOUT: float = float(os.getenv("DEFAULT_A2A_AGENT_TIMEOUT", 6000)) # 10 minutes +DEFAULT_A2A_AGENT_TIMEOUT: float = float( + os.getenv("DEFAULT_A2A_AGENT_TIMEOUT", 6000) +) # 10 minutes # Patterns that indicate a localhost/internal URL in A2A agent cards that should be # replaced with the original base_url. This is a common misconfiguration where # developers deploy agents with development URLs in their agent cards. @@ -386,8 +402,12 @@ DD_TRACER_STREAMING_CHUNK_YIELD_RESOURCE = os.getenv( "DD_TRACER_STREAMING_CHUNK_YIELD_RESOURCE", "streaming.chunk.yield" ) -EMAIL_BUDGET_ALERT_TTL = int(os.getenv("EMAIL_BUDGET_ALERT_TTL", 24 * 60 * 60)) # 24 hours in seconds -EMAIL_BUDGET_ALERT_MAX_SPEND_ALERT_PERCENTAGE = float(os.getenv("EMAIL_BUDGET_ALERT_MAX_SPEND_ALERT_PERCENTAGE", 0.8)) # 80% of max budget +EMAIL_BUDGET_ALERT_TTL = int( + os.getenv("EMAIL_BUDGET_ALERT_TTL", 24 * 60 * 60) +) # 24 hours in seconds +EMAIL_BUDGET_ALERT_MAX_SPEND_ALERT_PERCENTAGE = float( + os.getenv("EMAIL_BUDGET_ALERT_MAX_SPEND_ALERT_PERCENTAGE", 0.8) +) # 80% of max budget ############### LLM Provider Constants ############### ### ANTHROPIC CONSTANTS ### ANTHROPIC_TOKEN_COUNTING_BETA_VERSION = os.getenv( @@ -1007,10 +1027,12 @@ BEDROCK_EMBEDDING_PROVIDERS_LITERAL = Literal[ BEDROCK_CONVERSE_MODELS = [ "qwen.qwen3-coder-480b-a35b-v1:0", + "qwen.qwen3-coder-next", "qwen.qwen3-235b-a22b-2507-v1:0", "qwen.qwen3-coder-30b-a3b-v1:0", "qwen.qwen3-32b-v1:0", "deepseek.v3-v1:0", + "deepseek.v3.2", "openai.gpt-oss-20b-1:0", "openai.gpt-oss-120b-1:0", "anthropic.claude-haiku-4-5-20251001-v1:0", @@ -1053,6 +1075,8 @@ BEDROCK_CONVERSE_MODELS = [ "amazon.nova-pro-v1:0", "writer.palmyra-x4-v1:0", "writer.palmyra-x5-v1:0", + "minimax.minimax-m2.1", + "moonshotai.kimi-k2.5", ] @@ -1137,7 +1161,17 @@ known_tokenizer_config = { } -OPENAI_FINISH_REASONS = ["stop", "length", "function_call", "content_filter", "null", "finish_reason_unspecified", "malformed_function_call", "guardrail_intervened", "eos"] +OPENAI_FINISH_REASONS = [ + "stop", + "length", + "function_call", + "content_filter", + "null", + "finish_reason_unspecified", + "malformed_function_call", + "guardrail_intervened", + "eos", +] HUMANLOOP_PROMPT_CACHE_TTL_SECONDS = int( os.getenv("HUMANLOOP_PROMPT_CACHE_TTL_SECONDS", 60) ) # 1 minute @@ -1227,6 +1261,9 @@ LITELLM_KEY_ROTATION_ENABLED = os.getenv("LITELLM_KEY_ROTATION_ENABLED", "false" LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS = int( os.getenv("LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS", 86400) ) # 24 hours default +LITELLM_KEY_ROTATION_GRACE_PERIOD: str = os.getenv( + "LITELLM_KEY_ROTATION_GRACE_PERIOD", "" +) # Duration to keep old key valid after rotation (e.g. "24h", "2d"); empty = immediate revoke (default) UI_SESSION_TOKEN_TEAM_ID = "litellm-dashboard" LITELLM_PROXY_ADMIN_NAME = "default_user_id" @@ -1237,8 +1274,8 @@ CLI_SSO_SESSION_CACHE_KEY_PREFIX = "cli_sso_session" CLI_JWT_TOKEN_NAME = "cli-jwt-token" # Support both CLI_JWT_EXPIRATION_HOURS and LITELLM_CLI_JWT_EXPIRATION_HOURS for backwards compatibility CLI_JWT_EXPIRATION_HOURS = int( - os.getenv("CLI_JWT_EXPIRATION_HOURS") - or os.getenv("LITELLM_CLI_JWT_EXPIRATION_HOURS") + os.getenv("CLI_JWT_EXPIRATION_HOURS") + or os.getenv("LITELLM_CLI_JWT_EXPIRATION_HOURS") or 24 ) @@ -1306,6 +1343,9 @@ DEFAULT_SLACK_ALERTING_THRESHOLD = int( os.getenv("DEFAULT_SLACK_ALERTING_THRESHOLD", 300) ) MAX_TEAM_LIST_LIMIT = int(os.getenv("MAX_TEAM_LIST_LIMIT", 20)) +MAX_POLICY_ESTIMATE_IMPACT_ROWS = int( + os.getenv("MAX_POLICY_ESTIMATE_IMPACT_ROWS", 1000) +) DEFAULT_PROMPT_INJECTION_SIMILARITY_THRESHOLD = float( os.getenv("DEFAULT_PROMPT_INJECTION_SIMILARITY_THRESHOLD", 0.7) ) @@ -1326,6 +1366,9 @@ SPECIAL_LITELLM_AUTH_TOKEN = ["ui-token"] DEFAULT_MANAGEMENT_OBJECT_IN_MEMORY_CACHE_TTL = int( os.getenv("DEFAULT_MANAGEMENT_OBJECT_IN_MEMORY_CACHE_TTL", 60) ) +DEFAULT_ACCESS_GROUP_CACHE_TTL = int( + os.getenv("DEFAULT_ACCESS_GROUP_CACHE_TTL", 600) +) # Sentry Scrubbing Configuration SENTRY_DENYLIST = [ @@ -1416,9 +1459,7 @@ MICROSOFT_USER_EMAIL_ATTRIBUTE = str( MICROSOFT_USER_DISPLAY_NAME_ATTRIBUTE = str( os.getenv("MICROSOFT_USER_DISPLAY_NAME_ATTRIBUTE", "displayName") ) -MICROSOFT_USER_ID_ATTRIBUTE = str( - os.getenv("MICROSOFT_USER_ID_ATTRIBUTE", "id") -) +MICROSOFT_USER_ID_ATTRIBUTE = str(os.getenv("MICROSOFT_USER_ID_ATTRIBUTE", "id")) MICROSOFT_USER_FIRST_NAME_ATTRIBUTE = str( os.getenv("MICROSOFT_USER_FIRST_NAME_ATTRIBUTE", "givenName") ) diff --git a/litellm/cost_calculator.py b/litellm/cost_calculator.py index 4ea22dbd90f..dae0bb1c2c0 100644 --- a/litellm/cost_calculator.py +++ b/litellm/cost_calculator.py @@ -74,6 +74,7 @@ from litellm.llms.vertex_ai.cost_calculator import ( from litellm.llms.vertex_ai.cost_calculator import cost_router as google_cost_router from litellm.llms.xai.cost_calculator import cost_per_token as xai_cost_per_token from litellm.responses.utils import ResponseAPILoggingUtils +from litellm.types.agents import LiteLLMSendMessageResponse from litellm.types.llms.openai import ( HttpxBinaryResponseContent, ImageGenerationRequestQuality, @@ -150,32 +151,33 @@ def _get_additional_costs( ) -> Optional[dict]: """ Calculate additional costs beyond standard token costs. - + This function delegates to provider-specific config classes to calculate any additional costs like routing fees, infrastructure costs, etc. - + Args: model: The model name custom_llm_provider: The provider name (optional) prompt_tokens: Number of prompt tokens completion_tokens: Number of completion tokens - + Returns: Optional dictionary with cost names and amounts, or None if no additional costs """ if not custom_llm_provider: return None - + try: config_class = None if custom_llm_provider == "azure_ai": from litellm.llms.azure_ai.common_utils import AzureFoundryModelInfo + config_class = AzureFoundryModelInfo.get_azure_ai_config_for_model(model) # Add more providers here as needed # elif custom_llm_provider == "other_provider": # config_class = get_other_provider_config(model) - - if config_class and hasattr(config_class, 'calculate_additional_costs'): + + if config_class and hasattr(config_class, "calculate_additional_costs"): return config_class.calculate_additional_costs( model=model, prompt_tokens=prompt_tokens, @@ -183,7 +185,7 @@ def _get_additional_costs( ) except Exception as e: verbose_logger.debug(f"Error calculating additional costs: {e}") - + return None @@ -748,6 +750,8 @@ def _infer_call_type( return "image_generation" elif isinstance(completion_response, TextCompletionResponse): return "text_completion" + elif isinstance(completion_response, LiteLLMSendMessageResponse): + return "send_message" return call_type @@ -1037,9 +1041,9 @@ def completion_cost( # noqa: PLR0915 or isinstance(completion_response, dict) ): # tts returns a custom class if isinstance(completion_response, dict): - usage_obj: Optional[ - Union[dict, Usage] - ] = completion_response.get("usage", {}) + usage_obj: Optional[Union[dict, Usage]] = ( + completion_response.get("usage", {}) + ) else: usage_obj = getattr(completion_response, "usage", {}) if isinstance(usage_obj, BaseModel) and not _is_known_usage_objects( @@ -1393,7 +1397,7 @@ def completion_cost( # noqa: PLR0915 service_tier=service_tier, response=completion_response, ) - + # Get additional costs from provider (e.g., routing fees, infrastructure costs) additional_costs = _get_additional_costs( model=model, @@ -1401,7 +1405,7 @@ def completion_cost( # noqa: PLR0915 prompt_tokens=prompt_tokens, completion_tokens=completion_tokens, ) - + _final_cost = ( prompt_tokens_cost_usd_dollar + completion_tokens_cost_usd_dollar ) @@ -1892,9 +1896,16 @@ def batch_cost_calculator( usage: Usage, model: str, custom_llm_provider: Optional[str] = None, + model_info: Optional[ModelInfo] = None, ) -> Tuple[float, float]: """ - Calculate the cost of a batch job + Calculate the cost of a batch job. + + Args: + model_info: Optional deployment-level model info containing custom + batch pricing (e.g. input_cost_per_token_batches). When provided, + skips the global litellm.get_model_info() lookup so that + deployment-specific pricing is used. """ _, custom_llm_provider, _, _ = litellm.get_llm_provider( @@ -1907,12 +1918,13 @@ def batch_cost_calculator( custom_llm_provider, ) - try: - model_info: Optional[ModelInfo] = litellm.get_model_info( - model=model, custom_llm_provider=custom_llm_provider - ) - except Exception: - model_info = None + if model_info is None: + try: + model_info = litellm.get_model_info( + model=model, custom_llm_provider=custom_llm_provider + ) + except Exception: + model_info = None if not model_info: return 0.0, 0.0 diff --git a/litellm/integrations/arize/arize.py b/litellm/integrations/arize/arize.py index 9c2f0d95d4d..fe2f9f41f1b 100644 --- a/litellm/integrations/arize/arize.py +++ b/litellm/integrations/arize/arize.py @@ -28,6 +28,41 @@ else: class ArizeLogger(OpenTelemetry): + """ + Arize logger that sends traces to an Arize endpoint. + + Creates its own dedicated TracerProvider so it can coexist with the + generic ``otel`` callback (or any other OTEL-based integration) without + fighting over the global ``opentelemetry.trace`` TracerProvider singleton. + """ + + def _init_tracing(self, tracer_provider): + """ + Override to always create a *private* TracerProvider for Arize. + + See ArizePhoenixLogger._init_tracing for full rationale. + """ + from opentelemetry.sdk.trace import TracerProvider + from opentelemetry.trace import SpanKind + + if tracer_provider is not None: + self.tracer = tracer_provider.get_tracer("litellm") + self.span_kind = SpanKind + return + + provider = TracerProvider(resource=self._get_litellm_resource(self.config)) + provider.add_span_processor(self._get_span_processor()) + self.tracer = provider.get_tracer("litellm") + self.span_kind = SpanKind + + def _init_otel_logger_on_litellm_proxy(self): + """ + Override: Arize should NOT overwrite the proxy's + ``open_telemetry_logger``. That attribute is reserved for the + primary ``otel`` callback which handles proxy-level parent spans. + """ + pass + def set_attributes(self, span: Span, kwargs, response_obj: Optional[Any]): ArizeLogger.set_arize_attributes(span, kwargs, response_obj) return diff --git a/litellm/integrations/arize/arize_phoenix.py b/litellm/integrations/arize/arize_phoenix.py index cd345a7f76d..1b038c098f8 100644 --- a/litellm/integrations/arize/arize_phoenix.py +++ b/litellm/integrations/arize/arize_phoenix.py @@ -5,43 +5,211 @@ from litellm._logging import verbose_logger from litellm.integrations.arize import _utils from litellm.integrations.arize._utils import ArizeOTELAttributes from litellm.types.integrations.arize_phoenix import ArizePhoenixConfig -from litellm.integrations.opentelemetry import OpenTelemetry if TYPE_CHECKING: + from opentelemetry.sdk.trace import TracerProvider from opentelemetry.trace import Span as _Span + from opentelemetry.trace import SpanKind + from litellm.integrations.opentelemetry import OpenTelemetry as _OpenTelemetry from litellm.integrations.opentelemetry import OpenTelemetryConfig as _OpenTelemetryConfig from litellm.types.integrations.arize import Protocol as _Protocol Protocol = _Protocol OpenTelemetryConfig = _OpenTelemetryConfig Span = Union[_Span, Any] + OpenTelemetry = _OpenTelemetry else: Protocol = Any OpenTelemetryConfig = Any Span = Any + TracerProvider = Any + SpanKind = Any + # Import OpenTelemetry at runtime + try: + from litellm.integrations.opentelemetry import OpenTelemetry + except ImportError: + OpenTelemetry = None # type: ignore ARIZE_HOSTED_PHOENIX_ENDPOINT = "https://otlp.arize.com/v1/traces" -class ArizePhoenixLogger(OpenTelemetry): +class ArizePhoenixLogger(OpenTelemetry): # type: ignore + """ + Arize Phoenix logger that sends traces to a Phoenix endpoint. + + Creates its own dedicated TracerProvider so it can coexist with the + generic ``otel`` callback (or any other OTEL-based integration) without + fighting over the global ``opentelemetry.trace`` TracerProvider singleton. + """ + + def _init_tracing(self, tracer_provider): + """ + Override to always create a *private* TracerProvider for Arize Phoenix. + + The base ``OpenTelemetry._init_tracing`` falls back to the global + TracerProvider when one already exists. That causes whichever + integration initialises second to silently reuse the first one's + exporter, so spans only reach one destination. + + By creating our own provider we guarantee Arize Phoenix always gets + its own exporter pipeline, regardless of initialisation order. + """ + from opentelemetry.sdk.trace import TracerProvider + from opentelemetry.trace import SpanKind + + if tracer_provider is not None: + # Explicitly supplied (e.g. in tests) — honour it. + self.tracer = tracer_provider.get_tracer("litellm") + self.span_kind = SpanKind + return + + # Always create a dedicated provider — never touch the global one. + provider = TracerProvider(resource=self._get_litellm_resource(self.config)) + provider.add_span_processor(self._get_span_processor()) + self.tracer = provider.get_tracer("litellm") + self.span_kind = SpanKind + verbose_logger.debug( + "ArizePhoenixLogger: Created dedicated TracerProvider " + "(endpoint=%s, exporter=%s)", + self.config.endpoint, + self.config.exporter, + ) + + def _init_otel_logger_on_litellm_proxy(self): + """ + Override: Arize Phoenix should NOT overwrite the proxy's + ``open_telemetry_logger``. That attribute is reserved for the + primary ``otel`` callback which handles proxy-level parent spans. + """ + pass + def set_attributes(self, span: Span, kwargs, response_obj: Optional[Any]): ArizePhoenixLogger.set_arize_phoenix_attributes(span, kwargs, response_obj) return @staticmethod def set_arize_phoenix_attributes(span: Span, kwargs, response_obj): + from litellm.integrations.opentelemetry_utils.base_otel_llm_obs_attributes import safe_set_attribute + _utils.set_attributes(span, kwargs, response_obj, ArizeOTELAttributes) - - # Set project name on the span for all traces to go to custom Phoenix projects - config = ArizePhoenixLogger.get_arize_phoenix_config() - if config.project_name: - from litellm.integrations.opentelemetry_utils.base_otel_llm_obs_attributes import safe_set_attribute - safe_set_attribute(span, "openinference.project.name", config.project_name) - + + # Dynamic project name: check metadata first, then fall back to env var config + dynamic_project_name = ArizePhoenixLogger._get_dynamic_project_name(kwargs) + if dynamic_project_name: + safe_set_attribute(span, "openinference.project.name", dynamic_project_name) + else: + # Fall back to static config from env var + config = ArizePhoenixLogger.get_arize_phoenix_config() + if config.project_name: + safe_set_attribute(span, "openinference.project.name", config.project_name) + return + @staticmethod + def _get_dynamic_project_name(kwargs) -> Optional[str]: + """ + Retrieve dynamic Phoenix project name from request metadata. + + Users can set `metadata.phoenix_project_name` in their request to route + traces to different Phoenix projects dynamically. + """ + standard_logging_payload = kwargs.get("standard_logging_object") + if isinstance(standard_logging_payload, dict): + metadata = standard_logging_payload.get("metadata") + if isinstance(metadata, dict): + project_name = metadata.get("phoenix_project_name") + if project_name: + return str(project_name) + + # Also check litellm_params.metadata for SDK usage + litellm_params = kwargs.get("litellm_params") + if isinstance(litellm_params, dict): + metadata = litellm_params.get("metadata") or {} + else: + metadata = {} + if isinstance(metadata, dict): + project_name = metadata.get("phoenix_project_name") + if project_name: + return str(project_name) + + return None + + def _handle_success(self, kwargs, response_obj, start_time, end_time): + """ + Override to prevent creating duplicate litellm_request spans when a proxy parent span exists. + + ArizePhoenixLogger should reuse the proxy parent span instead of creating a new litellm_request span, + to maintain a shallow span hierarchy as expected by Arize Phoenix. + """ + from opentelemetry.trace import Status, StatusCode + from litellm.secret_managers.main import get_secret_bool + from litellm.integrations.opentelemetry import LITELLM_PROXY_REQUEST_SPAN_NAME + + verbose_logger.debug( + "ArizePhoenixLogger: Logging kwargs: %s, OTEL config settings=%s", + kwargs, + self.config, + ) + ctx, parent_span = self._get_span_context(kwargs) + + # ArizePhoenixLogger NEVER creates a litellm_request span when a proxy parent span exists + # This is different from the base OpenTelemetry behavior which respects USE_OTEL_LITELLM_REQUEST_SPAN + should_create_primary_span = parent_span is None or ( + parent_span.name != LITELLM_PROXY_REQUEST_SPAN_NAME + and get_secret_bool("USE_OTEL_LITELLM_REQUEST_SPAN") + ) + + if should_create_primary_span: + # Create a new litellm_request span + span = self._start_primary_span( + kwargs, response_obj, start_time, end_time, ctx + ) + # Raw-request sub-span (if enabled) - child of litellm_request span + self._maybe_log_raw_request( + kwargs, response_obj, start_time, end_time, span + ) + # Ensure proxy-request parent span is annotated with the actual operation kind + if ( + parent_span is not None + and parent_span.name == LITELLM_PROXY_REQUEST_SPAN_NAME + ): + self.set_attributes(parent_span, kwargs, response_obj) + else: + # Do not create primary span (keep hierarchy shallow when parent exists) + span = None + # Only set attributes if the span is still recording (not closed) + # Note: parent_span is guaranteed to be not None here + if parent_span.is_recording(): + parent_span.set_status(Status(StatusCode.OK)) + self.set_attributes(parent_span, kwargs, response_obj) + # Raw-request as direct child of parent_span + self._maybe_log_raw_request( + kwargs, response_obj, start_time, end_time, parent_span + ) + + # 3. Guardrail span + self._create_guardrail_span(kwargs=kwargs, context=ctx) + + # 4. Metrics & cost recording + self._record_metrics(kwargs, response_obj, start_time, end_time) + + # 5. Semantic logs. + if self.config.enable_events: + log_span = span if span is not None else parent_span + if log_span is not None: + self._emit_semantic_logs(kwargs, response_obj, log_span) + + # 6. Do NOT end parent span - it should be managed by its creator + # External spans (from Langfuse, user code, HTTP headers, global context) must not be closed by LiteLLM + # However, proxy-created spans should be closed here + if ( + parent_span is not None + and parent_span.name == LITELLM_PROXY_REQUEST_SPAN_NAME + ): + parent_span.end(end_time=self._to_ns(end_time)) + @staticmethod def get_arize_phoenix_config() -> ArizePhoenixConfig: """ diff --git a/litellm/integrations/cloudzero/transform.py b/litellm/integrations/cloudzero/transform.py index e06b944a419..b40a71da1c6 100644 --- a/litellm/integrations/cloudzero/transform.py +++ b/litellm/integrations/cloudzero/transform.py @@ -103,10 +103,15 @@ class CBFTransformer: # Use team_alias if available, otherwise team_id, otherwise fallback to 'unknown' entity_id = str(team_alias) if team_alias else (str(team_id) if team_id else 'unknown') + # Get alias fields if they exist + api_key_alias = row.get('api_key_alias') + organization_alias = row.get('organization_alias') + project_alias = row.get('project_alias') + user_alias = row.get('user_alias') + dimensions = { 'entity_type': CZEntityType.TEAM.value, 'entity_id': entity_id, - 'team_id': str(team_id) if team_id else 'unknown', 'team_alias': str(team_alias) if team_alias else 'unknown', 'model': model, 'model_group': str(row.get('model_group', '')), @@ -119,28 +124,37 @@ class CBFTransformer: 'failed_requests': str(row.get('failed_requests', 0)), 'cache_creation_tokens': str(row.get('cache_creation_input_tokens', 0)), 'cache_read_tokens': str(row.get('cache_read_input_tokens', 0)), + 'organization_alias': str(organization_alias) if organization_alias else '', + 'project_alias': str(project_alias) if project_alias else '', + 'user_alias': str(user_alias) if user_alias else '', } # Extract CZRN components to populate corresponding CBF columns czrn_components = self.czrn_generator.extract_components(resource_id) service_type, provider, region, owner_account_id, resource_type, cloud_local_id = czrn_components + # Build resource/account as concat of api_key_alias and api_key_prefix + resource_account = f"{api_key_alias}|{api_key_hash}" if api_key_alias else api_key_hash + # CloudZero CBF format with proper column names cbf_record = { # Required CBF fields 'time/usage_start': usage_date.isoformat() if usage_date else None, # Required: ISO-formatted UTC datetime 'cost/cost': float(row.get('spend', 0.0)), # Required: billed cost - 'resource/id': resource_id, # Required when resource tags are present + 'resource/id': resource_id, # CZRN (CloudZero Resource Name) # Usage metrics for token consumption 'usage/amount': total_tokens, # Numeric value of tokens consumed 'usage/units': 'tokens', # Description of token units - # CBF fields that correspond to CZRN components - 'resource/service': service_type, # Maps to CZRN service-type (litellm) - 'resource/account': owner_account_id, # Maps to CZRN owner-account-id (entity_id) + # CBF fields - updated per LIT-1907 + 'resource/service': str(row.get('model_group', '')), # Send model_group + 'resource/account': resource_account, # Send api_key_alias|api_key_prefix 'resource/region': region, # Maps to CZRN region (cross-region) - 'resource/usage_family': resource_type, # Maps to CZRN resource-type (llm-usage) + 'resource/usage_family': str(row.get('custom_llm_provider', '')), # Send provider + + # Action field + 'action/operation': str(team_id) if team_id else '', # Send team_id # Line item details 'lineitem/type': 'Usage', # Standard usage line item @@ -155,13 +169,11 @@ class CBFTransformer: if value and value != 'N/A' and value != 'unknown': # Only add meaningful tags cbf_record[f'resource/tag:{key}'] = str(value) - # Add token breakdown as resource tags for analysis + # Add token breakdown as resource tags for analysis (excluding total_tokens per LIT-1907) if prompt_tokens > 0: cbf_record['resource/tag:prompt_tokens'] = str(prompt_tokens) if completion_tokens > 0: cbf_record['resource/tag:completion_tokens'] = str(completion_tokens) - if total_tokens > 0: - cbf_record['resource/tag:total_tokens'] = str(total_tokens) return CBFRecord(cbf_record) diff --git a/litellm/integrations/custom_guardrail.py b/litellm/integrations/custom_guardrail.py index 407bc581f71..0b7b95e7bbc 100644 --- a/litellm/integrations/custom_guardrail.py +++ b/litellm/integrations/custom_guardrail.py @@ -30,6 +30,11 @@ from litellm.types.utils import ( StandardLoggingGuardrailInformation, ) +try: + from fastapi.exceptions import HTTPException +except ImportError: + HTTPException = None # type: ignore + if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj dc = DualCache() @@ -624,7 +629,9 @@ class CustomGuardrail(CustomLogger): This gets logged on downsteam Langfuse, DataDog, etc. """ # Convert None to empty dict to satisfy type requirements - guardrail_response = {} if response is None else response + guardrail_response: Union[Dict[str, Any], str] = ( + {} if response is None else response + ) # For apply_guardrail functions in custom_code_guardrail scenario, # simplify the logged response to "allow", "deny", or "mask" @@ -648,6 +655,27 @@ class CustomGuardrail(CustomLogger): ) return response + @staticmethod + def _is_guardrail_intervention(e: Exception) -> bool: + """ + Returns True if the exception represents an intentional guardrail block + (this was logged previously as an API failure - guardrail_failed_to_respond). + + Guardrails signal intentional blocks by raising: + - HTTPException with status 400 (content policy violation) + - ModifyResponseException (passthrough mode violation) + """ + + if isinstance(e, ModifyResponseException): + return True + if ( + HTTPException is not None + and isinstance(e, HTTPException) + and e.status_code == 400 + ): + return True + return False + def _process_error( self, e: Exception, @@ -662,6 +690,11 @@ class CustomGuardrail(CustomLogger): This gets logged on downsteam Langfuse, DataDog, etc. """ + guardrail_status: GuardrailStatus = ( + "guardrail_intervened" + if self._is_guardrail_intervention(e) + else "guardrail_failed_to_respond" + ) # For custom_code_guardrail scenario, log as "deny" instead of full exception # Check if this is from custom_code_guardrail by checking the class name guardrail_response: Union[Exception, str] = e @@ -671,7 +704,7 @@ class CustomGuardrail(CustomLogger): self.add_standard_logging_guardrail_information_to_request_data( guardrail_json_response=guardrail_response, request_data=request_data, - guardrail_status="guardrail_failed_to_respond", + guardrail_status=guardrail_status, duration=duration, start_time=start_time, end_time=end_time, diff --git a/litellm/integrations/custom_logger.py b/litellm/integrations/custom_logger.py index 4a341863d4b..c244363e389 100644 --- a/litellm/integrations/custom_logger.py +++ b/litellm/integrations/custom_logger.py @@ -774,15 +774,17 @@ class CustomLogger: # https://docs.litellm.ai/docs/observability/custom_callbac self, model_call_details: Dict ) -> Dict: """ - Only redacts messages and responses when self.turn_off_message_logging is True + Redacts or excludes fields from StandardLoggingPayload before callbacks receive it. + This method handles two features: + 1. turn_off_message_logging: When True, redacts messages and responses + 2. standard_logging_payload_excluded_fields: Removes specified fields entirely - By default, self.turn_off_message_logging is False and this does nothing. - - Return a redacted deepcopy of the provided logging payload. + Return a modified copy of the provided logging payload. This is useful for logging payloads that contain sensitive information. """ + import litellm from copy import copy from litellm import Choices, Message, ModelResponse @@ -790,14 +792,17 @@ class CustomLogger: # https://docs.litellm.ai/docs/observability/custom_callbac turn_off_message_logging: bool = getattr( self, "turn_off_message_logging", False ) + excluded_fields: Optional[List[str]] = getattr( + litellm, "standard_logging_payload_excluded_fields", None + ) - if turn_off_message_logging is False: + # Early return if no processing needed + if turn_off_message_logging is False and not excluded_fields: return model_call_details # Only make a shallow copy of the top-level dict to avoid deepcopy issues # with complex objects like AuthenticationError that may be present model_call_details_copy = copy(model_call_details) - redacted_str = "redacted-by-litellm" standard_logging_object = model_call_details.get("standard_logging_object") if standard_logging_object is None: return model_call_details_copy @@ -805,39 +810,58 @@ class CustomLogger: # https://docs.litellm.ai/docs/observability/custom_callbac # Make a copy of just the standard_logging_object to avoid modifying the original standard_logging_object_copy = copy(standard_logging_object) - if standard_logging_object_copy.get("messages") is not None: - standard_logging_object_copy["messages"] = [ - Message(content=redacted_str).model_dump() - ] + # Handle excluded fields - remove them entirely from the payload + if excluded_fields: + for field in excluded_fields: + if field in standard_logging_object_copy: + del standard_logging_object_copy[field] - if standard_logging_object_copy.get("response") is not None: - response = standard_logging_object_copy["response"] - # Check if this is a ResponsesAPIResponse (has "output" field) - if isinstance(response, dict) and "output" in response: - # Make a copy to avoid modifying the original - from copy import deepcopy + # Handle turn_off_message_logging - redact messages and responses (if not already excluded) + if turn_off_message_logging: + redacted_str = "redacted-by-litellm" - response_copy = deepcopy(response) - # Redact content in output array - if isinstance(response_copy.get("output"), list): - for output_item in response_copy["output"]: - if isinstance(output_item, dict) and "content" in output_item: - if isinstance(output_item["content"], list): - # Redact text in content items - for content_item in output_item["content"]: - if ( - isinstance(content_item, dict) - and "text" in content_item - ): - content_item["text"] = redacted_str - standard_logging_object_copy["response"] = response_copy - else: - # Standard ModelResponse format - model_response = ModelResponse( - choices=[Choices(message=Message(content=redacted_str))] - ) - model_response_dict = model_response.model_dump() - standard_logging_object_copy["response"] = model_response_dict + if ( + "messages" not in (excluded_fields or []) + and standard_logging_object_copy.get("messages") is not None + ): + standard_logging_object_copy["messages"] = [ + Message(content=redacted_str).model_dump() + ] + + if ( + "response" not in (excluded_fields or []) + and standard_logging_object_copy.get("response") is not None + ): + response = standard_logging_object_copy["response"] + # Check if this is a ResponsesAPIResponse (has "output" field) + if isinstance(response, dict) and "output" in response: + # Make a copy to avoid modifying the original + from copy import deepcopy + + response_copy = deepcopy(response) + # Redact content in output array + if isinstance(response_copy.get("output"), list): + for output_item in response_copy["output"]: + if ( + isinstance(output_item, dict) + and "content" in output_item + ): + if isinstance(output_item["content"], list): + # Redact text in content items + for content_item in output_item["content"]: + if ( + isinstance(content_item, dict) + and "text" in content_item + ): + content_item["text"] = redacted_str + standard_logging_object_copy["response"] = response_copy + else: + # Standard ModelResponse format + model_response = ModelResponse( + choices=[Choices(message=Message(content=redacted_str))] + ) + model_response_dict = model_response.model_dump() + standard_logging_object_copy["response"] = model_response_dict model_call_details_copy["standard_logging_object"] = ( standard_logging_object_copy diff --git a/litellm/integrations/gcs_bucket/gcs_bucket.py b/litellm/integrations/gcs_bucket/gcs_bucket.py index 3cb62905531..0f1ba4a4093 100644 --- a/litellm/integrations/gcs_bucket/gcs_bucket.py +++ b/litellm/integrations/gcs_bucket/gcs_bucket.py @@ -9,6 +9,7 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple from urllib.parse import quote from litellm._logging import verbose_logger +from litellm.constants import LITELLM_ASYNCIO_QUEUE_MAXSIZE from litellm.integrations.additional_logging_utils import AdditionalLoggingUtils from litellm.integrations.gcs_bucket.gcs_bucket_base import GCSBucketBase from litellm.proxy._types import CommonProxyErrors @@ -41,7 +42,9 @@ class GCSBucketLogger(GCSBucketBase, AdditionalLoggingUtils): batch_size=self.batch_size, flush_interval=self.flush_interval, ) - self.log_queue: asyncio.Queue[GCSLogQueueItem] = asyncio.Queue() # type: ignore[assignment] + self.log_queue: asyncio.Queue[GCSLogQueueItem] = asyncio.Queue( # type: ignore[assignment] + maxsize=LITELLM_ASYNCIO_QUEUE_MAXSIZE + ) asyncio.create_task(self.periodic_flush()) AdditionalLoggingUtils.__init__(self) @@ -69,6 +72,9 @@ class GCSBucketLogger(GCSBucketBase, AdditionalLoggingUtils): ) if logging_payload is None: raise ValueError("standard_logging_object not found in kwargs") + # When queue is at maxsize, flush immediately to make room (no blocking, no data dropped) + if self.log_queue.full(): + await self.flush_queue() await self.log_queue.put( GCSLogQueueItem( payload=logging_payload, kwargs=kwargs, response_obj=response_obj @@ -91,9 +97,9 @@ class GCSBucketLogger(GCSBucketBase, AdditionalLoggingUtils): ) if logging_payload is None: raise ValueError("standard_logging_object not found in kwargs") - # Add to logging queue - this will be flushed periodically - # Use asyncio.Queue.put() for thread-safe concurrent access - # If queue is full, this will block until space is available (backpressure) + # When queue is at maxsize, flush immediately to make room (no blocking, no data dropped) + if self.log_queue.full(): + await self.flush_queue() await self.log_queue.put( GCSLogQueueItem( payload=logging_payload, kwargs=kwargs, response_obj=response_obj diff --git a/litellm/integrations/langfuse/langfuse_otel.py b/litellm/integrations/langfuse/langfuse_otel.py index 8955d3619f7..b96ec72b04e 100644 --- a/litellm/integrations/langfuse/langfuse_otel.py +++ b/litellm/integrations/langfuse/langfuse_otel.py @@ -1,6 +1,7 @@ import base64 import json # <--- NEW import os +from datetime import datetime from typing import TYPE_CHECKING, Any, Optional, Union from litellm._logging import verbose_logger @@ -392,6 +393,22 @@ class LangfuseOtelLogger(OpenTelemetry): return dynamic_headers + def create_litellm_proxy_request_started_span( + self, + start_time: datetime, + headers: dict, + ) -> Optional[Span]: + """ + Override to prevent creating empty proxy request spans. + + Langfuse should only receive spans for actual LLM calls, not for + internal proxy operations (auth, postgres, proxy_pre_call, etc.). + + By returning None, we prevent the parent span from being created, + which in turn prevents empty traces from being sent to Langfuse. + """ + return None + async def async_service_success_hook(self, *args, **kwargs): """ Langfuse should not receive service success logs. diff --git a/litellm/integrations/opentelemetry.py b/litellm/integrations/opentelemetry.py index b847180174a..35362a71ccd 100644 --- a/litellm/integrations/opentelemetry.py +++ b/litellm/integrations/opentelemetry.py @@ -1051,23 +1051,15 @@ class OpenTelemetry(CustomLogger): # See: https://github.com/open-telemetry/opentelemetry-python/pull/4676 # TODO: Refactor to use the proper OTEL Logs API instead of directly creating SDK LogRecords - from opentelemetry._logs import ( - SeverityNumber, - get_logger, - ) - - # MyPy evaluates both branches of try/except imports and can fail when - # newer OTEL stubs remove/relocate symbols. Gate the typing import so - # only the canonical location is type-checked. - if TYPE_CHECKING: - from opentelemetry.sdk._logs._internal import LogRecord as SdkLogRecord - else: - try: - from opentelemetry.sdk._logs import ( - LogRecord as SdkLogRecord, # type: ignore[attr-defined] - ) - except ImportError: - from opentelemetry.sdk._logs._internal import LogRecord as SdkLogRecord + from opentelemetry._logs import SeverityNumber, get_logger + try: + from opentelemetry.sdk._logs import ( # type: ignore[attr-defined] # OTEL < 1.39.0 + LogRecord as SdkLogRecord, + ) + except ImportError: + from opentelemetry.sdk._logs._internal import ( + LogRecord as SdkLogRecord, # type: ignore[attr-defined] # OTEL >= 1.39.0 + ) otel_logger = get_logger(LITELLM_LOGGER_NAME) diff --git a/litellm/integrations/s3_v2.py b/litellm/integrations/s3_v2.py index 534b85e4752..eddc80dbc1f 100644 --- a/litellm/integrations/s3_v2.py +++ b/litellm/integrations/s3_v2.py @@ -51,6 +51,7 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): s3_use_team_prefix: bool = False, s3_strip_base64_files: bool = False, s3_use_key_prefix: bool = False, + s3_use_virtual_hosted_style: bool = False, **kwargs, ): try: @@ -78,7 +79,8 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): s3_path=s3_path, s3_use_team_prefix=s3_use_team_prefix, s3_strip_base64_files=s3_strip_base64_files, - s3_use_key_prefix=s3_use_key_prefix + s3_use_key_prefix=s3_use_key_prefix, + s3_use_virtual_hosted_style=s3_use_virtual_hosted_style ) verbose_logger.debug(f"s3 logger using endpoint url {s3_endpoint_url}") @@ -135,6 +137,7 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): s3_use_team_prefix: bool = False, s3_strip_base64_files: bool = False, s3_use_key_prefix: bool = False, + s3_use_virtual_hosted_style: bool = False, ): """ Initialize the s3 params for this logging callback @@ -217,6 +220,11 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): or s3_strip_base64_files ) + self.s3_use_virtual_hosted_style = ( + bool(litellm.s3_callback_params.get("s3_use_virtual_hosted_style", False)) + or s3_use_virtual_hosted_style + ) + return async def async_log_success_event(self, kwargs, response_obj, start_time, end_time): @@ -247,8 +255,14 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): standard_logging_payload=kwargs.get("standard_logging_object", None), ) + # afile_delete and other non-model call types never produce a standard_logging_object, + # so s3_batch_logging_element is None. Skip gracefully instead of raising ValueError. if s3_batch_logging_element is None: - raise ValueError("s3_batch_logging_element is None") + verbose_logger.debug( + "s3 Logging - skipping event, no standard_logging_object for call_type=%s", + kwargs.get("call_type", "unknown"), + ) + return verbose_logger.debug( "\ns3 Logger - Logging payload = %s", s3_batch_logging_element @@ -302,13 +316,20 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): url = f"https://{self.s3_bucket_name}.s3.{self.s3_region_name}.amazonaws.com/{batch_logging_element.s3_object_key}" if self.s3_endpoint_url and self.s3_bucket_name: - url = ( - self.s3_endpoint_url - + "/" - + self.s3_bucket_name - + "/" - + batch_logging_element.s3_object_key - ) + if self.s3_use_virtual_hosted_style: + # Virtual-hosted-style: bucket.endpoint/key + endpoint_host = self.s3_endpoint_url.replace("https://", "").replace("http://", "") + protocol = "https://" if self.s3_endpoint_url.startswith("https://") else "http://" + url = f"{protocol}{self.s3_bucket_name}.{endpoint_host}/{batch_logging_element.s3_object_key}" + else: + # Path-style: endpoint/bucket/key + url = ( + self.s3_endpoint_url + + "/" + + self.s3_bucket_name + + "/" + + batch_logging_element.s3_object_key + ) # Convert JSON to string json_string = safe_dumps(batch_logging_element.payload) @@ -456,13 +477,20 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): url = f"https://{self.s3_bucket_name}.s3.{self.s3_region_name}.amazonaws.com/{batch_logging_element.s3_object_key}" if self.s3_endpoint_url and self.s3_bucket_name: - url = ( - self.s3_endpoint_url - + "/" - + self.s3_bucket_name - + "/" - + batch_logging_element.s3_object_key - ) + if self.s3_use_virtual_hosted_style: + # Virtual-hosted-style: bucket.endpoint/key + endpoint_host = self.s3_endpoint_url.replace("https://", "").replace("http://", "") + protocol = "https://" if self.s3_endpoint_url.startswith("https://") else "http://" + url = f"{protocol}{self.s3_bucket_name}.{endpoint_host}/{batch_logging_element.s3_object_key}" + else: + # Path-style: endpoint/bucket/key + url = ( + self.s3_endpoint_url + + "/" + + self.s3_bucket_name + + "/" + + batch_logging_element.s3_object_key + ) # Convert JSON to string json_string = safe_dumps(batch_logging_element.payload) @@ -550,13 +578,20 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): url = f"https://{self.s3_bucket_name}.s3.{self.s3_region_name}.amazonaws.com/{s3_object_key}" if self.s3_endpoint_url and self.s3_bucket_name: - url = ( - self.s3_endpoint_url - + "/" - + self.s3_bucket_name - + "/" - + s3_object_key - ) + if self.s3_use_virtual_hosted_style: + # Virtual-hosted-style: bucket.endpoint/key + endpoint_host = self.s3_endpoint_url.replace("https://", "").replace("http://", "") + protocol = "https://" if self.s3_endpoint_url.startswith("https://") else "http://" + url = f"{protocol}{self.s3_bucket_name}.{endpoint_host}/{s3_object_key}" + else: + # Path-style: endpoint/bucket/key + url = ( + self.s3_endpoint_url + + "/" + + self.s3_bucket_name + + "/" + + s3_object_key + ) # Prepare the request for GET operation # For GET requests, we need x-amz-content-sha256 with hash of empty string @@ -618,4 +653,4 @@ class S3Logger(CustomBatchLogger, BaseAWSLLM): verbose_logger.exception( f"Error retrieving object {object_key} from cold storage: {str(e)}" ) - return None + return None \ No newline at end of file diff --git a/litellm/litellm_core_utils/api_route_to_call_types.py b/litellm/litellm_core_utils/api_route_to_call_types.py index 4146ff6d6a6..2ae9986ce94 100644 --- a/litellm/litellm_core_utils/api_route_to_call_types.py +++ b/litellm/litellm_core_utils/api_route_to_call_types.py @@ -3,6 +3,9 @@ Dictionary mapping API routes to their corresponding CallTypes in LiteLLM. This dictionary maps each API endpoint to the CallTypes that can be used for that route. Each route can have both async (prefixed with 'a') and sync call types. + +Route patterns may contain placeholders like {agent_id}, {model}, {batch_id}; these +match a single path segment when resolving call types for a concrete path. """ from typing import List, Optional @@ -10,17 +13,43 @@ from typing import List, Optional from litellm.types.utils import API_ROUTE_TO_CALL_TYPES, CallTypes +def _route_matches_pattern(route: str, pattern: str) -> bool: + """ + Return True if the concrete route matches the pattern. + Pattern segments like {param} match any single path segment. + """ + route_parts = route.strip("/").split("/") + pattern_parts = pattern.strip("/").split("/") + if len(route_parts) != len(pattern_parts): + return False + for r, p in zip(route_parts, pattern_parts): + if p.startswith("{") and p.endswith("}"): + continue + if r != p: + return False + return True + + def get_call_types_for_route(route: str) -> Optional[List[CallTypes]]: """ Get the list of CallTypes for a given API route. + Supports both exact keys and dynamic patterns (e.g. /a2a/my-agent/message/send + matches /a2a/{agent_id}/message/send). + Args: - route: API route path (e.g., "/chat/completions") + route: API route path (e.g., "/chat/completions" or "/a2a/my-pydantic-agent/message/send") Returns: List of CallTypes for that route, or None if route not found """ - return API_ROUTE_TO_CALL_TYPES.get(route, None) + exact = API_ROUTE_TO_CALL_TYPES.get(route, None) + if exact is not None: + return exact + for pattern, call_types in API_ROUTE_TO_CALL_TYPES.items(): + if _route_matches_pattern(route, pattern): + return call_types + return None def get_routes_for_call_type(call_type: CallTypes) -> list: diff --git a/litellm/litellm_core_utils/exception_mapping_utils.py b/litellm/litellm_core_utils/exception_mapping_utils.py index 3ddcae69315..dde44cced36 100644 --- a/litellm/litellm_core_utils/exception_mapping_utils.py +++ b/litellm/litellm_core_utils/exception_mapping_utils.py @@ -70,6 +70,11 @@ class ExceptionCheckers: Check if an error string indicates a context window exceeded error. """ _error_str_lowercase = error_str.lower() + # Exclude param validation errors (e.g. OpenAI "user" param max 64 chars) + if "string_above_max_length" in _error_str_lowercase: + return False + if "invalid 'user'" in _error_str_lowercase and "string too long" in _error_str_lowercase: + return False known_exception_substrings = [ "exceed context limit", "this model's maximum context length is", @@ -98,16 +103,18 @@ class ExceptionCheckers: """ Check if an error string indicates a content policy violation error. """ + _lower = error_str.lower() known_exception_substrings = [ - "invalid_request_error", "content_policy_violation", + "responsibleaipolicyviolation", "the response was filtered due to the prompt triggering azure openai's content management", "your task failed as a result of our safety system", "the model produced invalid content", "content_filter_policy", + "your request was rejected as a result of our safety system", ] for substring in known_exception_substrings: - if substring in error_str.lower(): + if substring in _lower: return True return False @@ -2060,6 +2067,19 @@ def exception_type( # type: ignore # noqa: PLR0915 if isinstance(body_dict, dict): if isinstance(body_dict.get("error"), dict): azure_error_code = body_dict["error"].get("code") # type: ignore[index] + # Also check inner_error for + # ResponsibleAIPolicyViolation which indicates a + # content policy violation even when the top-level + # code is generic (e.g. "invalid_request_error"). + if azure_error_code != "content_policy_violation": + _inner = ( + body_dict["error"].get("inner_error") # type: ignore[index] + or body_dict["error"].get("innererror") # type: ignore[index] + ) + if isinstance(_inner, dict) and _inner.get( + "code" + ) == "ResponsibleAIPolicyViolation": + azure_error_code = "content_policy_violation" else: azure_error_code = body_dict.get("code") except Exception: diff --git a/litellm/litellm_core_utils/get_llm_provider_logic.py b/litellm/litellm_core_utils/get_llm_provider_logic.py index 718773a1b16..8ab4ec15b07 100644 --- a/litellm/litellm_core_utils/get_llm_provider_logic.py +++ b/litellm/litellm_core_utils/get_llm_provider_logic.py @@ -51,7 +51,7 @@ def handle_cohere_chat_model_custom_llm_provider( if custom_llm_provider == "cohere" and model in litellm.cohere_chat_models: return model, "cohere_chat" - if "/" in model: + if model and "/" in model: _custom_llm_provider, _model = model.split("/", 1) if ( _custom_llm_provider @@ -84,7 +84,7 @@ def handle_anthropic_text_model_custom_llm_provider( ): return model, "anthropic_text" - if "/" in model: + if model and "/" in model: _custom_llm_provider, _model = model.split("/", 1) if ( _custom_llm_provider @@ -113,6 +113,12 @@ def get_llm_provider( # noqa: PLR0915 Return model, custom_llm_provider, dynamic_api_key, api_base """ try: + # Early validation - model is required + if model is None: + raise ValueError( + "model parameter is required but was None. Please provide a valid model name." + ) + if litellm.LiteLLMProxyChatConfig._should_use_litellm_proxy_by_default( litellm_params=litellm_params ): diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index 7ae62718af0..bdbbc7579b7 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -2331,7 +2331,7 @@ class Logging(LiteLLMLoggingBaseClass): result, LiteLLMBatch ): litellm_params = self.litellm_params or {} - litellm_metadata = litellm_params.get("litellm_metadata", {}) + litellm_metadata = litellm_params.get("litellm_metadata") or {} if ( litellm_metadata.get("batch_ignore_default_logging", False) is True ): # polling job will query these frequently, don't spam db logs @@ -2369,6 +2369,7 @@ class Logging(LiteLLMLoggingBaseClass): ) = await _handle_completed_batch( batch=result, custom_llm_provider=self.custom_llm_provider, + litellm_params=self.litellm_params, ) result._hidden_params["response_cost"] = response_cost @@ -3127,7 +3128,7 @@ class Logging(LiteLLMLoggingBaseClass): self, dynamic_success_callbacks: Optional[List], global_callbacks: List ) -> List: if dynamic_success_callbacks is None: - return global_callbacks + return list(global_callbacks) return list(set(dynamic_success_callbacks + global_callbacks)) def _remove_internal_litellm_callbacks(self, callbacks: List) -> List: @@ -3764,7 +3765,7 @@ def _init_custom_logger_compatible_class( # noqa: PLR0915 from litellm.integrations.opentelemetry import OpenTelemetry for callback in _in_memory_loggers: - if isinstance(callback, OpenTelemetry): + if type(callback) is OpenTelemetry: return callback # type: ignore otel_logger = OpenTelemetry( **_get_custom_logger_settings_from_proxy_server( diff --git a/litellm/litellm_core_utils/redact_messages.py b/litellm/litellm_core_utils/redact_messages.py index aa763dc9899..5d6d1fbc1c5 100644 --- a/litellm/litellm_core_utils/redact_messages.py +++ b/litellm/litellm_core_utils/redact_messages.py @@ -140,9 +140,14 @@ def should_redact_message_logging(model_call_details: dict) -> bool: metadata_field = get_metadata_variable_name_from_kwargs(litellm_params) metadata = litellm_params.get(metadata_field, {}) - + if not isinstance(metadata, dict): + # Fall back: litellm_metadata was None, try metadata + metadata = litellm_params.get("metadata", {}) + if not isinstance(metadata, dict): + metadata = {} + # Get headers from the metadata - request_headers = metadata.get("headers", {}) if isinstance(metadata, dict) else {} + request_headers = metadata.get("headers", {}) # Check for headers that explicitly control redaction if request_headers and bool( diff --git a/litellm/litellm_core_utils/safe_json_dumps.py b/litellm/litellm_core_utils/safe_json_dumps.py index 8b50e41a795..051aa2f27a5 100644 --- a/litellm/litellm_core_utils/safe_json_dumps.py +++ b/litellm/litellm_core_utils/safe_json_dumps.py @@ -1,6 +1,8 @@ import json from typing import Any, Union +from pydantic import BaseModel + from litellm.constants import DEFAULT_MAX_RECURSE_DEPTH @@ -41,6 +43,11 @@ def safe_dumps(data: Any, max_depth: int = DEFAULT_MAX_RECURSE_DEPTH) -> str: result = sorted([_serialize(item, seen, depth + 1) for item in obj]) seen.remove(id(obj)) return result + elif isinstance(obj, BaseModel): + dumped = obj.model_dump() + result = _serialize(dumped, seen, depth + 1) + seen.remove(id(obj)) + return result else: # Fall back to string conversion for non-serializable objects. try: @@ -49,4 +56,4 @@ def safe_dumps(data: Any, max_depth: int = DEFAULT_MAX_RECURSE_DEPTH) -> str: return "Unserializable Object" safe_data = _serialize(data, set(), 0) - return json.dumps(safe_data, default=str) \ No newline at end of file + return json.dumps(safe_data, default=str) diff --git a/litellm/llms/a2a/chat/guardrail_translation/handler.py b/litellm/llms/a2a/chat/guardrail_translation/handler.py index 770453f2def..fbd1da749c2 100644 --- a/litellm/llms/a2a/chat/guardrail_translation/handler.py +++ b/litellm/llms/a2a/chat/guardrail_translation/handler.py @@ -10,6 +10,7 @@ A2A Protocol Format: - Output: JSON-RPC 2.0 with result containing message/artifact parts """ +import json from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union from litellm._logging import verbose_proxy_logger @@ -206,6 +207,118 @@ class A2AGuardrailHandler(BaseTranslation): response["result"] = result return response + async def process_output_streaming_response( + self, + responses_so_far: List[Any], + guardrail_to_apply: "CustomGuardrail", + litellm_logging_obj: Optional["LiteLLMLoggingObj"] = None, + user_api_key_dict: Optional["UserAPIKeyAuth"] = None, + ) -> List[Any]: + """ + Process A2A streaming output by applying guardrails to accumulated text. + + responses_so_far can be a list of JSON-RPC 2.0 objects (dict or NDJSON str), e.g.: + - task with history, status-update, artifact-update (with result.artifact.parts), + - then status-update (final). Text is extracted from result.artifact.parts, + result.message.parts, result.parts, etc., concatenated in order, guardrailed once, + then the combined guardrailed text is written into the first chunk that had text + and all other text parts in other chunks are cleared (in-place). + """ + from litellm.llms.a2a.common_utils import extract_text_from_a2a_response + + # Parse each item; keep alignment with responses_so_far (None where unparseable) + parsed: List[Optional[Dict[str, Any]]] = [None] * len(responses_so_far) + for i, item in enumerate(responses_so_far): + if isinstance(item, dict): + obj = item + elif isinstance(item, str): + try: + obj = json.loads(item.strip()) + except (json.JSONDecodeError, TypeError): + continue + else: + continue + if isinstance(obj.get("result"), dict): + parsed[i] = obj + + valid_parsed = [(i, obj) for i, obj in enumerate(parsed) if obj is not None] + if not valid_parsed: + return responses_so_far + + # Collect text from each chunk in order (by original index in responses_so_far) + text_parts: List[str] = [] + chunk_indices_with_text: List[int] = [] # indices into valid_parsed + for idx, (orig_i, obj) in enumerate(valid_parsed): + t = extract_text_from_a2a_response(obj) + if t: + text_parts.append(t) + chunk_indices_with_text.append(orig_i) + + combined_text = "".join(text_parts) + if not combined_text: + return responses_so_far + + request_data: dict = {"responses_so_far": responses_so_far} + user_metadata = self.transform_user_api_key_dict_to_metadata(user_api_key_dict) + if user_metadata: + request_data["litellm_metadata"] = user_metadata + + inputs = GenericGuardrailAPIInputs(texts=[combined_text]) + guardrailed_inputs = await guardrail_to_apply.apply_guardrail( + inputs=inputs, + request_data=request_data, + input_type="response", + logging_obj=litellm_logging_obj, + ) + guardrailed_texts = guardrailed_inputs.get("texts", []) + if not guardrailed_texts: + return responses_so_far + guardrailed_text = guardrailed_texts[0] + + # Find first chunk (by original index) that has text; put full guardrailed text there and clear rest + first_chunk_with_text: Optional[int] = ( + chunk_indices_with_text[0] if chunk_indices_with_text else None + ) + + for orig_i, obj in valid_parsed: + result = obj.get("result", {}) + if not isinstance(result, dict): + continue + texts_in_chunk: List[str] = [] + mappings: List[Tuple[Tuple[str, ...], int]] = [] + self._extract_texts_from_result( + result=result, + texts_to_check=texts_in_chunk, + task_mappings=mappings, + ) + if not mappings: + continue + if orig_i == first_chunk_with_text: + # Put full guardrailed text in first text part; clear others + for task_idx, (path, part_idx) in enumerate(mappings): + text = guardrailed_text if task_idx == 0 else "" + self._apply_text_to_path( + result=result, + path=path, + part_idx=part_idx, + text=text, + ) + else: + for path, part_idx in mappings: + self._apply_text_to_path( + result=result, + path=path, + part_idx=part_idx, + text="", + ) + + # Write back to responses_so_far where we had NDJSON strings + for i, item in enumerate(responses_so_far): + if isinstance(item, str) and parsed[i] is not None: + responses_so_far[i] = json.dumps(parsed[i]) + "\n" + + return responses_so_far + def _extract_texts_from_result( self, result: Dict[str, Any], diff --git a/litellm/llms/anthropic/chat/handler.py b/litellm/llms/anthropic/chat/handler.py index e85c0d0d017..f51adf96102 100644 --- a/litellm/llms/anthropic/chat/handler.py +++ b/litellm/llms/anthropic/chat/handler.py @@ -58,6 +58,9 @@ from litellm.types.utils import ( from ...base import BaseLLM from ..common_utils import AnthropicError, process_anthropic_headers +from litellm.anthropic_beta_headers_manager import ( + update_headers_with_filtered_beta, +) from .transformation import AnthropicConfig if TYPE_CHECKING: @@ -333,6 +336,10 @@ class AnthropicChatCompletion(BaseLLM): litellm_params=litellm_params, ) + headers = update_headers_with_filtered_beta( + headers=headers, provider=custom_llm_provider + ) + config = ProviderConfigManager.get_provider_chat_config( model=model, provider=LlmProviders(custom_llm_provider), diff --git a/litellm/llms/anthropic/chat/transformation.py b/litellm/llms/anthropic/chat/transformation.py index 82aa7390188..85a4790a9b9 100644 --- a/litellm/llms/anthropic/chat/transformation.py +++ b/litellm/llms/anthropic/chat/transformation.py @@ -208,29 +208,73 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): Filter out unsupported fields from JSON schema for Anthropic's output_format API. Anthropic's output_format doesn't support certain JSON schema properties: - - maxItems: Not supported for array types - - minItems: Not supported for array types + - maxItems/minItems: Not supported for array types + - minimum/maximum: Not supported for numeric types + - minLength/maxLength: Not supported for string types - This function recursively removes these unsupported fields while preserving - all other valid schema properties. + This mirrors the transformation done by the Anthropic Python SDK. + See: https://platform.claude.com/docs/en/build-with-claude/structured-outputs#how-sdk-transformation-works + + The SDK approach: + 1. Remove unsupported constraints from schema + 2. Add constraint info to description (e.g., "Must be at least 100") + 3. Validate responses against original schema Args: schema: The JSON schema dictionary to filter Returns: - A new dictionary with unsupported fields removed + A new dictionary with unsupported fields removed and descriptions updated - Related issue: https://github.com/BerriAI/litellm/issues/19444 + Related issues: + - https://github.com/BerriAI/litellm/issues/19444 """ if not isinstance(schema, dict): return schema - unsupported_fields = {"maxItems", "minItems"} + # All numeric/string/array constraints not supported by Anthropic + unsupported_fields = { + "maxItems", "minItems", # array constraints + "minimum", "maximum", # numeric constraints + "exclusiveMinimum", "exclusiveMaximum", # numeric constraints + "minLength", "maxLength", # string constraints + } + + # Build description additions from removed constraints + constraint_descriptions: list = [] + constraint_labels = { + "minItems": "minimum number of items: {}", + "maxItems": "maximum number of items: {}", + "minimum": "minimum value: {}", + "maximum": "maximum value: {}", + "exclusiveMinimum": "exclusive minimum value: {}", + "exclusiveMaximum": "exclusive maximum value: {}", + "minLength": "minimum length: {}", + "maxLength": "maximum length: {}", + } + for field in unsupported_fields: + if field in schema: + constraint_descriptions.append( + constraint_labels[field].format(schema[field]) + ) result: Dict[str, Any] = {} + + # Update description with removed constraint info + if constraint_descriptions: + existing_desc = schema.get("description", "") + constraint_note = "Note: " + ", ".join(constraint_descriptions) + "." + if existing_desc: + result["description"] = existing_desc + " " + constraint_note + else: + result["description"] = constraint_note + for key, value in schema.items(): if key in unsupported_fields: continue + if key == "description" and "description" in result: + # Already handled above + continue if key == "properties" and isinstance(value, dict): result[key] = { @@ -664,35 +708,34 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): reasoning_effort: Optional[Union[REASONING_EFFORT, str]], model: str, ) -> Optional[AnthropicThinkingParam]: + if reasoning_effort is None or reasoning_effort == "none": + return None if AnthropicConfig._is_claude_opus_4_6(model): return AnthropicThinkingParam( type="adaptive", ) + elif reasoning_effort == "low": + return AnthropicThinkingParam( + type="enabled", + budget_tokens=DEFAULT_REASONING_EFFORT_LOW_THINKING_BUDGET, + ) + elif reasoning_effort == "medium": + return AnthropicThinkingParam( + type="enabled", + budget_tokens=DEFAULT_REASONING_EFFORT_MEDIUM_THINKING_BUDGET, + ) + elif reasoning_effort == "high": + return AnthropicThinkingParam( + type="enabled", + budget_tokens=DEFAULT_REASONING_EFFORT_HIGH_THINKING_BUDGET, + ) + elif reasoning_effort == "minimal": + return AnthropicThinkingParam( + type="enabled", + budget_tokens=DEFAULT_REASONING_EFFORT_MINIMAL_THINKING_BUDGET, + ) else: - if reasoning_effort is None: - return None - elif reasoning_effort == "low": - return AnthropicThinkingParam( - type="enabled", - budget_tokens=DEFAULT_REASONING_EFFORT_LOW_THINKING_BUDGET, - ) - elif reasoning_effort == "medium": - return AnthropicThinkingParam( - type="enabled", - budget_tokens=DEFAULT_REASONING_EFFORT_MEDIUM_THINKING_BUDGET, - ) - elif reasoning_effort == "high": - return AnthropicThinkingParam( - type="enabled", - budget_tokens=DEFAULT_REASONING_EFFORT_HIGH_THINKING_BUDGET, - ) - elif reasoning_effort == "minimal": - return AnthropicThinkingParam( - type="enabled", - budget_tokens=DEFAULT_REASONING_EFFORT_MINIMAL_THINKING_BUDGET, - ) - else: - raise ValueError(f"Unmapped reasoning effort: {reasoning_effort}") + raise ValueError(f"Unmapped reasoning effort: {reasoning_effort}") def _extract_json_schema_from_response_format( self, value: Optional[dict] @@ -834,6 +877,10 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): "sonnet-4-5", "opus-4.1", "opus-4-1", + "opus-4.5", + "opus-4-5", + "opus-4.6", + "opus-4-6", } ): _output_format = ( @@ -931,6 +978,7 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): Translate system message to anthropic format. Removes system message from the original list and returns a new list of anthropic system message content. + Filters out system messages containing x-anthropic-billing-header metadata. """ system_prompt_indices = [] anthropic_system_message_list: List[AnthropicSystemMessageContent] = [] @@ -942,6 +990,9 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): # Skip empty text blocks - Anthropic API raises errors for empty text if not system_message_block["content"]: continue + # Skip system messages containing x-anthropic-billing-header metadata + if system_message_block["content"].startswith("x-anthropic-billing-header:"): + continue anthropic_system_message_content = AnthropicSystemMessageContent( type="text", text=system_message_block["content"], @@ -960,6 +1011,9 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): text_value = _content.get("text") if _content.get("type") == "text" and not text_value: continue + # Skip system messages containing x-anthropic-billing-header metadata + if _content.get("type") == "text" and text_value and text_value.startswith("x-anthropic-billing-header:"): + continue anthropic_system_message_content = ( AnthropicSystemMessageContent( type=_content.get("type"), @@ -1228,9 +1282,13 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): output_config = optional_params.get("output_config") if output_config and isinstance(output_config, dict): effort = output_config.get("effort") - if effort and effort not in ["high", "medium", "low"]: + if effort and effort not in ["high", "medium", "low", "max"]: raise ValueError( - f"Invalid effort value: {effort}. Must be one of: 'high', 'medium', 'low'" + f"Invalid effort value: {effort}. Must be one of: 'high', 'medium', 'low', 'max'" + ) + if effort == "max" and not self._is_claude_opus_4_6(model): + raise ValueError( + f"effort='max' is only supported by Claude Opus 4.6. Got model: {model}" ) data["output_config"] = output_config diff --git a/litellm/llms/anthropic/common_utils.py b/litellm/llms/anthropic/common_utils.py index cb23d21fbc9..c665e084261 100644 --- a/litellm/llms/anthropic/common_utils.py +++ b/litellm/llms/anthropic/common_utils.py @@ -38,9 +38,18 @@ def optionally_handle_anthropic_oauth( Returns: Tuple of (updated headers, api_key) """ + # Check Authorization header (passthrough / forwarded requests) auth_header = headers.get("authorization", "") if auth_header and auth_header.startswith(f"Bearer {ANTHROPIC_OAUTH_TOKEN_PREFIX}"): api_key = auth_header.replace("Bearer ", "") + headers.pop("x-api-key", None) + headers["anthropic-beta"] = ANTHROPIC_OAUTH_BETA_HEADER + headers["anthropic-dangerous-direct-browser-access"] = "true" + return headers, api_key + # Check api_key directly (standard chat/completion flow) + if api_key and api_key.startswith(ANTHROPIC_OAUTH_TOKEN_PREFIX): + headers.pop("x-api-key", None) + headers["authorization"] = f"Bearer {api_key}" headers["anthropic-beta"] = ANTHROPIC_OAUTH_BETA_HEADER headers["anthropic-dangerous-direct-browser-access"] = "true" return headers, api_key @@ -108,7 +117,9 @@ class AnthropicModelInfo(BaseLLMModelInfo): if tools is None: return False for tool in tools: - if "type" in tool and tool["type"].startswith(ANTHROPIC_HOSTED_TOOLS.WEB_SEARCH.value): + if "type" in tool and tool["type"].startswith( + ANTHROPIC_HOSTED_TOOLS.WEB_SEARCH.value + ): return True return False @@ -134,111 +145,126 @@ class AnthropicModelInfo(BaseLLMModelInfo): """ if not tools: return False - + for tool in tools: tool_type = tool.get("type", "") - if tool_type in ["tool_search_tool_regex_20251119", "tool_search_tool_bm25_20251119"]: + if tool_type in [ + "tool_search_tool_regex_20251119", + "tool_search_tool_bm25_20251119", + ]: return True return False - + def is_programmatic_tool_calling_used(self, tools: Optional[List]) -> bool: """ Check if programmatic tool calling is being used (tools with allowed_callers field). - + Returns True if any tool has allowed_callers containing 'code_execution_20250825'. """ if not tools: return False - + for tool in tools: # Check top-level allowed_callers allowed_callers = tool.get("allowed_callers", None) if allowed_callers and isinstance(allowed_callers, list): if "code_execution_20250825" in allowed_callers: return True - + # Check function.allowed_callers for OpenAI format tools function = tool.get("function", {}) if isinstance(function, dict): function_allowed_callers = function.get("allowed_callers", None) - if function_allowed_callers and isinstance(function_allowed_callers, list): + if function_allowed_callers and isinstance( + function_allowed_callers, list + ): if "code_execution_20250825" in function_allowed_callers: return True - + return False - + def is_input_examples_used(self, tools: Optional[List]) -> bool: """ Check if input_examples is being used in any tools. - + Returns True if any tool has input_examples field. """ if not tools: return False - + for tool in tools: # Check top-level input_examples input_examples = tool.get("input_examples", None) - if input_examples and isinstance(input_examples, list) and len(input_examples) > 0: + if ( + input_examples + and isinstance(input_examples, list) + and len(input_examples) > 0 + ): return True - + # Check function.input_examples for OpenAI format tools function = tool.get("function", {}) if isinstance(function, dict): function_input_examples = function.get("input_examples", None) - if function_input_examples and isinstance(function_input_examples, list) and len(function_input_examples) > 0: + if ( + function_input_examples + and isinstance(function_input_examples, list) + and len(function_input_examples) > 0 + ): return True - + return False - - def is_effort_used(self, optional_params: Optional[dict], model: Optional[str] = None) -> bool: + + def is_effort_used( + self, optional_params: Optional[dict], model: Optional[str] = None + ) -> bool: """ Check if effort parameter is being used. - + Returns True if effort-related parameters are present. """ if not optional_params: return False - + # Check if reasoning_effort is provided for Claude Opus 4.5 if model and ("opus-4-5" in model.lower() or "opus_4_5" in model.lower()): reasoning_effort = optional_params.get("reasoning_effort") if reasoning_effort and isinstance(reasoning_effort, str): return True - + # Check if output_config is directly provided output_config = optional_params.get("output_config") if output_config and isinstance(output_config, dict): effort = output_config.get("effort") if effort and isinstance(effort, str): return True - + return False def is_code_execution_tool_used(self, tools: Optional[List]) -> bool: """ Check if code execution tool is being used. - + Returns True if any tool has type "code_execution_20250825". """ if not tools: return False - + for tool in tools: tool_type = tool.get("type", "") if tool_type == "code_execution_20250825": return True return False - + def is_container_with_skills_used(self, optional_params: Optional[dict]) -> bool: """ Check if container with skills is being used. - + Returns True if optional_params contains container with skills. """ if not optional_params: return False - + container = optional_params.get("container") if container and isinstance(container, dict): skills = container.get("skills") @@ -256,10 +282,10 @@ class AnthropicModelInfo(BaseLLMModelInfo): def get_computer_tool_beta_header(self, computer_tool_version: str) -> str: """ Get the appropriate beta header for a given computer tool version. - + Args: computer_tool_version: The computer tool version (e.g., 'computer_20250124', 'computer_20241022') - + Returns: The corresponding beta header string """ @@ -282,37 +308,37 @@ class AnthropicModelInfo(BaseLLMModelInfo): ) -> List[str]: """ Get list of common beta headers based on the features that are active. - + Returns: List of beta header strings """ from litellm.types.llms.anthropic import ( ANTHROPIC_EFFORT_BETA_HEADER, ) - + betas = [] - + # Detect features effort_used = self.is_effort_used(optional_params, model) - + if effort_used: betas.append(ANTHROPIC_EFFORT_BETA_HEADER) # effort-2025-11-24 - + if computer_tool_used: beta_header = self.get_computer_tool_beta_header(computer_tool_used) betas.append(beta_header) - + # Anthropic no longer requires the prompt-caching beta header # Prompt caching now works automatically when cache_control is used in messages # Reference: https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching - + if file_id_used: betas.append("files-api-2025-04-14") betas.append("code-execution-2025-05-22") - + if mcp_server_used: betas.append("mcp-client-2025-04-04") - + return list(set(betas)) def get_anthropic_headers( @@ -351,27 +377,35 @@ class AnthropicModelInfo(BaseLLMModelInfo): # Tool search, programmatic tool calling, and input_examples all use the same beta header if tool_search_used or programmatic_tool_calling_used or input_examples_used: from litellm.types.llms.anthropic import ANTHROPIC_TOOL_SEARCH_BETA_HEADER + betas.add(ANTHROPIC_TOOL_SEARCH_BETA_HEADER) - + # Effort parameter uses a separate beta header if effort_used: from litellm.types.llms.anthropic import ANTHROPIC_EFFORT_BETA_HEADER + betas.add(ANTHROPIC_EFFORT_BETA_HEADER) - + # Code execution tool uses a separate beta header if code_execution_tool_used: betas.add("code-execution-2025-08-25") - + # Container with skills uses a separate beta header if container_with_skills_used: betas.add("skills-2025-10-02") + _is_oauth = api_key and api_key.startswith(ANTHROPIC_OAUTH_TOKEN_PREFIX) headers = { "anthropic-version": anthropic_version or "2023-06-01", - "x-api-key": api_key, "accept": "application/json", "content-type": "application/json", } + if _is_oauth: + headers["authorization"] = f"Bearer {api_key}" + headers["anthropic-dangerous-direct-browser-access"] = "true" + betas.add(ANTHROPIC_OAUTH_BETA_HEADER) + else: + headers["x-api-key"] = api_key if user_anthropic_beta_headers is not None: betas.update(user_anthropic_beta_headers) @@ -381,7 +415,10 @@ class AnthropicModelInfo(BaseLLMModelInfo): # Vertex AI requires web search beta header for web search to work if web_search_tool_used: from litellm.types.llms.anthropic import ANTHROPIC_BETA_HEADER_VALUES - headers["anthropic-beta"] = ANTHROPIC_BETA_HEADER_VALUES.WEB_SEARCH_2025_03_05.value + + headers[ + "anthropic-beta" + ] = ANTHROPIC_BETA_HEADER_VALUES.WEB_SEARCH_2025_03_05.value elif len(betas) > 0: headers["anthropic-beta"] = ",".join(betas) @@ -398,7 +435,9 @@ class AnthropicModelInfo(BaseLLMModelInfo): api_base: Optional[str] = None, ) -> Dict: # Check for Anthropic OAuth token in headers - headers, api_key = optionally_handle_anthropic_oauth(headers=headers, api_key=api_key) + headers, api_key = optionally_handle_anthropic_oauth( + headers=headers, api_key=api_key + ) if api_key is None: raise litellm.AuthenticationError( message="Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params. Please set `ANTHROPIC_API_KEY` in your environment vars", @@ -416,11 +455,15 @@ class AnthropicModelInfo(BaseLLMModelInfo): file_id_used = self.is_file_id_used(messages=messages) web_search_tool_used = self.is_web_search_tool_used(tools=tools) tool_search_used = self.is_tool_search_used(tools=tools) - programmatic_tool_calling_used = self.is_programmatic_tool_calling_used(tools=tools) + programmatic_tool_calling_used = self.is_programmatic_tool_calling_used( + tools=tools + ) input_examples_used = self.is_input_examples_used(tools=tools) effort_used = self.is_effort_used(optional_params=optional_params, model=model) code_execution_tool_used = self.is_code_execution_tool_used(tools=tools) - container_with_skills_used = self.is_container_with_skills_used(optional_params=optional_params) + container_with_skills_used = self.is_container_with_skills_used( + optional_params=optional_params + ) user_anthropic_beta_headers = self._get_user_anthropic_beta_headers( anthropic_beta_header=headers.get("anthropic-beta") ) @@ -499,7 +542,7 @@ class AnthropicModelInfo(BaseLLMModelInfo): def get_token_counter(self) -> Optional[BaseTokenCounter]: """ Factory method to create an Anthropic token counter. - + Returns: AnthropicTokenCounter instance for this provider. """ diff --git a/litellm/llms/anthropic/experimental_pass_through/adapters/handler.py b/litellm/llms/anthropic/experimental_pass_through/adapters/handler.py index c6caaddf98b..73e74c228ba 100644 --- a/litellm/llms/anthropic/experimental_pass_through/adapters/handler.py +++ b/litellm/llms/anthropic/experimental_pass_through/adapters/handler.py @@ -19,6 +19,7 @@ from litellm.types.llms.anthropic_messages.anthropic_response import ( AnthropicMessagesResponse, ) from litellm.types.utils import ModelResponse +from litellm.utils import get_model_info if TYPE_CHECKING: pass @@ -63,6 +64,14 @@ class LiteLLMMessagesToCompletionTransformationHandler: return model = completion_kwargs.get("model") + try: + model_info = get_model_info(model=cast(str, model), custom_llm_provider=custom_llm_provider) + if model_info and model_info.get("supports_reasoning") is False: + # Model doesn't support reasoning/responses API, don't route + return + except Exception: + pass + if isinstance(model, str) and model and not model.startswith("responses/"): # Prefix model with "responses/" to route to OpenAI Responses API completion_kwargs["model"] = f"responses/{model}" diff --git a/litellm/llms/anthropic/experimental_pass_through/adapters/streaming_iterator.py b/litellm/llms/anthropic/experimental_pass_through/adapters/streaming_iterator.py index a86820f82e8..de634ff9ecf 100644 --- a/litellm/llms/anthropic/experimental_pass_through/adapters/streaming_iterator.py +++ b/litellm/llms/anthropic/experimental_pass_through/adapters/streaming_iterator.py @@ -239,8 +239,13 @@ class AnthropicStreamWrapper(AdapterCompletionStreamWrapper): merged_chunk["delta"] = {} # Add usage to the held chunk + uncached_input_tokens = chunk.usage.prompt_tokens or 0 + if hasattr(chunk.usage, "prompt_tokens_details") and chunk.usage.prompt_tokens_details: + cached_tokens = getattr(chunk.usage.prompt_tokens_details, "cached_tokens", 0) or 0 + uncached_input_tokens -= cached_tokens + usage_dict: UsageDelta = { - "input_tokens": chunk.usage.prompt_tokens or 0, + "input_tokens": uncached_input_tokens, "output_tokens": chunk.usage.completion_tokens or 0, } # Add cache tokens if available (for prompt caching support) @@ -412,6 +417,7 @@ class AnthropicStreamWrapper(AdapterCompletionStreamWrapper): if block_type == "tool_use": # Type narrowing: content_block_start is ToolUseBlock when block_type is "tool_use" from typing import cast + from litellm.types.llms.anthropic import ToolUseBlock tool_block = cast(ToolUseBlock, content_block_start) @@ -430,6 +436,7 @@ class AnthropicStreamWrapper(AdapterCompletionStreamWrapper): # if we get a function name since it signals a new tool call if block_type == "tool_use": from typing import cast + from litellm.types.llms.anthropic import ToolUseBlock tool_block = cast(ToolUseBlock, content_block_start) diff --git a/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py b/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py index 169b138a5f7..efbac13735c 100644 --- a/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py +++ b/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py @@ -1070,8 +1070,13 @@ class LiteLLMAnthropicMessagesAdapter: ) # extract usage usage: Usage = getattr(response, "usage") + uncached_input_tokens = usage.prompt_tokens or 0 + if hasattr(usage, "prompt_tokens_details") and usage.prompt_tokens_details: + cached_tokens = getattr(usage.prompt_tokens_details, "cached_tokens", 0) or 0 + uncached_input_tokens -= cached_tokens + anthropic_usage = AnthropicUsage( - input_tokens=usage.prompt_tokens or 0, + input_tokens=uncached_input_tokens, output_tokens=usage.completion_tokens or 0, ) # Add cache tokens if available (for prompt caching support) @@ -1230,8 +1235,13 @@ class LiteLLMAnthropicMessagesAdapter: else: litellm_usage_chunk = None if litellm_usage_chunk is not None: + uncached_input_tokens = litellm_usage_chunk.prompt_tokens or 0 + if hasattr(litellm_usage_chunk, "prompt_tokens_details") and litellm_usage_chunk.prompt_tokens_details: + cached_tokens = getattr(litellm_usage_chunk.prompt_tokens_details, "cached_tokens", 0) or 0 + uncached_input_tokens -= cached_tokens + usage_delta = UsageDelta( - input_tokens=litellm_usage_chunk.prompt_tokens or 0, + input_tokens=uncached_input_tokens, output_tokens=litellm_usage_chunk.completion_tokens or 0, ) # Add cache tokens if available (for prompt caching support) diff --git a/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py b/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py index 043a70f3c67..8275ba2b3e1 100644 --- a/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py +++ b/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py @@ -2,9 +2,6 @@ from typing import Any, AsyncIterator, Dict, List, Optional, Tuple import httpx -from litellm.anthropic_beta_headers_manager import ( - update_headers_with_filtered_beta, -) from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.litellm_core_utils.litellm_logging import verbose_logger from litellm.llms.base_llm.anthropic_messages.transformation import ( @@ -53,6 +50,42 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): # "metadata", ] + @staticmethod + def _filter_billing_headers_from_system(system_param): + """ + Filter out x-anthropic-billing-header metadata from system parameter. + + Args: + system_param: Can be a string or a list of system message content blocks + + Returns: + Filtered system parameter (string or list), or None if all content was filtered + """ + if isinstance(system_param, str): + # If it's a string and starts with billing header, filter it out + if system_param.startswith("x-anthropic-billing-header:"): + return None + return system_param + elif isinstance(system_param, list): + # Filter list of system content blocks + filtered_list = [] + for content_block in system_param: + if isinstance(content_block, dict): + text = content_block.get("text", "") + content_type = content_block.get("type", "") + # Skip text blocks that start with billing header + if content_type == "text" and text.startswith( + "x-anthropic-billing-header:" + ): + continue + filtered_list.append(content_block) + else: + # Keep non-dict items as-is + filtered_list.append(content_block) + return filtered_list if len(filtered_list) > 0 else None + else: + return system_param + def get_complete_url( self, api_base: Optional[str], @@ -80,11 +113,13 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): import os # Check for Anthropic OAuth token in Authorization header - headers, api_key = optionally_handle_anthropic_oauth(headers=headers, api_key=api_key) + headers, api_key = optionally_handle_anthropic_oauth( + headers=headers, api_key=api_key + ) if api_key is None: api_key = os.getenv("ANTHROPIC_API_KEY") - if "x-api-key" not in headers and api_key: + if "x-api-key" not in headers and "authorization" not in headers and api_key: headers["x-api-key"] = api_key if "anthropic-version" not in headers: headers["anthropic-version"] = DEFAULT_ANTHROPIC_API_VERSION @@ -96,11 +131,6 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): optional_params=optional_params, ) - headers = update_headers_with_filtered_beta( - headers=headers, - provider="anthropic", - ) - return headers, api_base def transform_anthropic_messages_request( @@ -123,6 +153,17 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): message="max_tokens is required for Anthropic /v1/messages API", status_code=400, ) + + # Filter out x-anthropic-billing-header from system messages + system_param = anthropic_messages_optional_request_params.get("system") + if system_param is not None: + filtered_system = self._filter_billing_headers_from_system(system_param) + if filtered_system is not None and len(filtered_system) > 0: + anthropic_messages_optional_request_params["system"] = filtered_system + else: + # Remove system parameter if all content was filtered out + anthropic_messages_optional_request_params.pop("system", None) + ####### get required params for all anthropic messages requests ###### verbose_logger.debug(f"TRANSFORMATION DEBUG - Messages: {messages}") anthropic_messages_request: AnthropicMessagesRequest = AnthropicMessagesRequest( @@ -207,25 +248,29 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): edits = context_management_param.get("edits", []) has_compact = False has_other = False - + for edit in edits: edit_type = edit.get("type", "") if edit_type == "compact_20260112": has_compact = True else: has_other = True - + # Add compact header if any compact edits exist if has_compact: beta_values.add(ANTHROPIC_BETA_HEADER_VALUES.COMPACT_2026_01_12.value) - + # Add context management header if any other edits exist if has_other: - beta_values.add(ANTHROPIC_BETA_HEADER_VALUES.CONTEXT_MANAGEMENT_2025_06_27.value) + beta_values.add( + ANTHROPIC_BETA_HEADER_VALUES.CONTEXT_MANAGEMENT_2025_06_27.value + ) # Check for structured outputs if optional_params.get("output_format") is not None: - beta_values.add(ANTHROPIC_BETA_HEADER_VALUES.STRUCTURED_OUTPUT_2025_09_25.value) + beta_values.add( + ANTHROPIC_BETA_HEADER_VALUES.STRUCTURED_OUTPUT_2025_09_25.value + ) # Check for fast mode if optional_params.get("speed") == "fast": diff --git a/litellm/llms/azure/azure.py b/litellm/llms/azure/azure.py index 76fa713ca8c..44ee51d14ab 100644 --- a/litellm/llms/azure/azure.py +++ b/litellm/llms/azure/azure.py @@ -901,7 +901,20 @@ class AzureChatCompletion(BaseAzureLLM, BaseLLM): if response.json()["status"] == "failed": error_data = response.json() - raise AzureOpenAIError(status_code=400, message=json.dumps(error_data)) + # Preserve Azure error details (e.g. content_policy_violation, + # inner_error, content_filter_results) as structured body so + # exception_type() can route them correctly. + _error_body = error_data.get("error", error_data) + _error_msg = ( + _error_body.get("message", "Image generation failed") + if isinstance(_error_body, dict) + else json.dumps(error_data) + ) + raise AzureOpenAIError( + status_code=400, + message=_error_msg, + body=error_data, + ) result = response.json()["result"] return httpx.Response( @@ -999,7 +1012,20 @@ class AzureChatCompletion(BaseAzureLLM, BaseLLM): if response.json()["status"] == "failed": error_data = response.json() - raise AzureOpenAIError(status_code=400, message=json.dumps(error_data)) + # Preserve Azure error details (e.g. content_policy_violation, + # inner_error, content_filter_results) as structured body so + # exception_type() can route them correctly. + _error_body = error_data.get("error", error_data) + _error_msg = ( + _error_body.get("message", "Image generation failed") + if isinstance(_error_body, dict) + else json.dumps(error_data) + ) + raise AzureOpenAIError( + status_code=400, + message=_error_msg, + body=error_data, + ) result = response.json()["result"] return httpx.Response( diff --git a/litellm/llms/azure/chat/gpt_transformation.py b/litellm/llms/azure/chat/gpt_transformation.py index 0ae6fad7300..18dad503a59 100644 --- a/litellm/llms/azure/chat/gpt_transformation.py +++ b/litellm/llms/azure/chat/gpt_transformation.py @@ -105,6 +105,7 @@ class AzureOpenAIConfig(BaseConfig): "modalities", "audio", "web_search_options", + "prompt_cache_key", ] def _is_response_format_supported_model(self, model: str) -> bool: diff --git a/litellm/llms/azure/responses/transformation.py b/litellm/llms/azure/responses/transformation.py index 44ce368fd49..78631d38005 100644 --- a/litellm/llms/azure/responses/transformation.py +++ b/litellm/llms/azure/responses/transformation.py @@ -1,5 +1,5 @@ -from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Tuple, Union from copy import deepcopy +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Tuple, Union import httpx from openai.types.responses import ResponseReasoningItem @@ -21,10 +21,25 @@ else: class AzureOpenAIResponsesAPIConfig(OpenAIResponsesAPIConfig): + + # Parameters not supported by Azure Responses API + AZURE_UNSUPPORTED_PARAMS = ["context_management"] + @property def custom_llm_provider(self) -> LlmProviders: return LlmProviders.AZURE + def get_supported_openai_params(self, model: str) -> list: + """ + Azure Responses API does not support context_management (compaction). + """ + base_supported_params = super().get_supported_openai_params(model) + return [ + param + for param in base_supported_params + if param not in self.AZURE_UNSUPPORTED_PARAMS + ] + def validate_environment( self, headers: dict, model: str, litellm_params: Optional[GenericLiteLLMParams] ) -> dict: diff --git a/litellm/llms/azure_ai/anthropic/messages_transformation.py b/litellm/llms/azure_ai/anthropic/messages_transformation.py index f86ec7082f2..a4dc88f9c68 100644 --- a/litellm/llms/azure_ai/anthropic/messages_transformation.py +++ b/litellm/llms/azure_ai/anthropic/messages_transformation.py @@ -3,9 +3,6 @@ Azure Anthropic messages transformation config - extends AnthropicMessagesConfig """ from typing import TYPE_CHECKING, Any, List, Optional, Tuple -from litellm.anthropic_beta_headers_manager import ( - update_headers_with_filtered_beta, -) from litellm.llms.anthropic.experimental_pass_through.messages.transformation import ( AnthropicMessagesConfig, ) @@ -65,18 +62,11 @@ class AzureAnthropicMessagesConfig(AnthropicMessagesConfig): if "content-type" not in headers: headers["content-type"] = "application/json" - # Update headers with anthropic beta features (context management, tool search, etc.) headers = self._update_headers_with_anthropic_beta( headers=headers, optional_params=optional_params, ) - # Filter out unsupported beta headers for Azure AI - headers = update_headers_with_filtered_beta( - headers=headers, - provider="azure_ai", - ) - return headers, api_base def get_complete_url( diff --git a/litellm/llms/azure_ai/anthropic/transformation.py b/litellm/llms/azure_ai/anthropic/transformation.py index 753bc9c08eb..c5510db68b1 100644 --- a/litellm/llms/azure_ai/anthropic/transformation.py +++ b/litellm/llms/azure_ai/anthropic/transformation.py @@ -2,10 +2,6 @@ Azure Anthropic transformation config - extends AnthropicConfig with Azure authentication """ from typing import TYPE_CHECKING, Dict, List, Optional, Union - -from litellm.anthropic_beta_headers_manager import ( - update_headers_with_filtered_beta, -) from litellm.llms.anthropic.chat.transformation import AnthropicConfig from litellm.llms.azure.common_utils import BaseAzureLLM from litellm.types.llms.openai import AllMessageValues @@ -90,11 +86,6 @@ class AzureAnthropicConfig(AnthropicConfig): if "anthropic-version" not in headers: headers["anthropic-version"] = "2023-06-01" - # Filter out unsupported beta headers for Azure AI - headers = update_headers_with_filtered_beta( - headers=headers, - provider="azure_ai", - ) return headers diff --git a/litellm/llms/azure_ai/chat/transformation.py b/litellm/llms/azure_ai/chat/transformation.py index 04d2b3a2769..585efd3307d 100644 --- a/litellm/llms/azure_ai/chat/transformation.py +++ b/litellm/llms/azure_ai/chat/transformation.py @@ -11,12 +11,14 @@ from litellm.litellm_core_utils.prompt_templates.common_utils import ( _audio_or_image_in_message_content, convert_content_list_to_str, ) +from litellm.llms.azure.common_utils import BaseAzureLLM from litellm.llms.base_llm.chat.transformation import LiteLLMLoggingObj from litellm.llms.openai.common_utils import drop_params_from_unprocessable_entity_error from litellm.llms.openai.openai import OpenAIConfig from litellm.llms.xai.chat.transformation import XAIChatConfig from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import AllMessageValues +from litellm.types.router import GenericLiteLLMParams from litellm.types.utils import ModelResponse, ProviderField from litellm.utils import _add_path_to_api_base, supports_tool_choice @@ -64,12 +66,21 @@ class AzureAIStudioConfig(OpenAIConfig): api_key: Optional[str] = None, api_base: Optional[str] = None, ) -> dict: - if api_base and self._should_use_api_key_header(api_base): - headers["api-key"] = api_key + if api_key: + if api_base and self._should_use_api_key_header(api_base): + headers["api-key"] = api_key + else: + headers["Authorization"] = f"Bearer {api_key}" else: - headers["Authorization"] = f"Bearer {api_key}" + # No api_key provided — fall back to Azure AD token-based auth + litellm_params_obj = GenericLiteLLMParams( + **(litellm_params if isinstance(litellm_params, dict) else {}) + ) + headers = BaseAzureLLM._base_validate_azure_environment( + headers=headers, litellm_params=litellm_params_obj + ) - headers["Content-Type"] = "application/json" # tell Azure AI Studio to expect JSON + headers["Content-Type"] = "application/json" return headers diff --git a/litellm/llms/base_llm/managed_resources/__init__.py b/litellm/llms/base_llm/managed_resources/__init__.py new file mode 100644 index 00000000000..5eb9b46f89f --- /dev/null +++ b/litellm/llms/base_llm/managed_resources/__init__.py @@ -0,0 +1,41 @@ +""" +Managed Resources Module + +This module provides base classes and utilities for managing resources +(files, vector stores, etc.) with target_model_names support. + +The BaseManagedResource class provides common functionality for: +- Storing unified resource IDs with model mappings +- Retrieving resources by unified ID +- Deleting resources across multiple models +- Creating resources for multiple models +- Filtering deployments based on model mappings +""" + +from .base_managed_resource import BaseManagedResource +from .utils import ( + decode_unified_id, + encode_unified_id, + extract_model_id_from_unified_id, + extract_provider_resource_id_from_unified_id, + extract_resource_type_from_unified_id, + extract_target_model_names_from_unified_id, + extract_unified_uuid_from_unified_id, + generate_unified_id_string, + is_base64_encoded_unified_id, + parse_unified_id, +) + +__all__ = [ + "BaseManagedResource", + "is_base64_encoded_unified_id", + "extract_target_model_names_from_unified_id", + "extract_resource_type_from_unified_id", + "extract_unified_uuid_from_unified_id", + "extract_model_id_from_unified_id", + "extract_provider_resource_id_from_unified_id", + "generate_unified_id_string", + "encode_unified_id", + "decode_unified_id", + "parse_unified_id", +] diff --git a/litellm/llms/base_llm/managed_resources/base_managed_resource.py b/litellm/llms/base_llm/managed_resources/base_managed_resource.py new file mode 100644 index 00000000000..3c8ce748ade --- /dev/null +++ b/litellm/llms/base_llm/managed_resources/base_managed_resource.py @@ -0,0 +1,605 @@ +# What is this? +## Base class for managing resources (files, vector stores, etc.) with target_model_names support +## This provides common functionality for creating, retrieving, and managing resources across multiple models + +import base64 +import json +from abc import ABC, abstractmethod +from typing import ( + TYPE_CHECKING, + Any, + Dict, + Generic, + List, + Optional, + TypeVar, + Union, + cast, +) + +from litellm import verbose_logger +from litellm.proxy._types import UserAPIKeyAuth +from litellm.types.utils import SpecialEnums + +if TYPE_CHECKING: + from opentelemetry.trace import Span as _Span + + from litellm.proxy.utils import InternalUsageCache as _InternalUsageCache + from litellm.proxy.utils import PrismaClient as _PrismaClient + from litellm.router import Router as _Router + + Span = Union[_Span, Any] + InternalUsageCache = _InternalUsageCache + PrismaClient = _PrismaClient + Router = _Router +else: + Span = Any + InternalUsageCache = Any + PrismaClient = Any + Router = Any + +# Generic type for resource objects +ResourceObjectType = TypeVar('ResourceObjectType') + + +class BaseManagedResource(ABC, Generic[ResourceObjectType]): + """ + Base class for managing resources with target_model_names support. + + This class provides common functionality for: + - Storing unified resource IDs with model mappings + - Retrieving resources by unified ID + - Deleting resources across multiple models + - Creating resources for multiple models + - Filtering deployments based on model mappings + + Subclasses should implement: + - resource_type: str property + - table_name: str property + - create_resource_for_model: method to create resource on a specific model + - get_unified_resource_id_format: method to generate unified ID format + """ + + def __init__( + self, + internal_usage_cache: InternalUsageCache, + prisma_client: PrismaClient, + ): + self.internal_usage_cache = internal_usage_cache + self.prisma_client = prisma_client + + # ============================================================================ + # ABSTRACT METHODS + # ============================================================================ + + @property + @abstractmethod + def resource_type(self) -> str: + """ + Return the resource type identifier (e.g., 'file', 'vector_store', 'vector_store_file'). + Used for logging and unified ID generation. + """ + pass + + @property + @abstractmethod + def table_name(self) -> str: + """ + Return the database table name for this resource type. + Example: 'litellm_managedfiletable', 'litellm_managedvectorstoretable' + """ + pass + + @abstractmethod + def get_unified_resource_id_format( + self, + resource_object: ResourceObjectType, + target_model_names_list: List[str], + ) -> str: + """ + Generate the format string for the unified resource ID. + + This should return a string that will be base64 encoded. + Example for files: + "litellm_proxy:application/json;unified_id,{uuid};target_model_names,{models};..." + + Args: + resource_object: The resource object returned from the provider + target_model_names_list: List of target model names + + Returns: + Format string to be base64 encoded + """ + pass + + @abstractmethod + async def create_resource_for_model( + self, + llm_router: Router, + model: str, + request_data: Dict[str, Any], + litellm_parent_otel_span: Span, + ) -> ResourceObjectType: + """ + Create a resource for a specific model. + + Args: + llm_router: LiteLLM router instance + model: Model name to create resource for + request_data: Request data for resource creation + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + Resource object from the provider + """ + pass + + # ============================================================================ + # COMMON STORAGE OPERATIONS + # ============================================================================ + + async def store_unified_resource_id( + self, + unified_resource_id: str, + resource_object: Optional[ResourceObjectType], + litellm_parent_otel_span: Optional[Span], + model_mappings: Dict[str, str], + user_api_key_dict: UserAPIKeyAuth, + additional_db_fields: Optional[Dict[str, Any]] = None, + ) -> None: + """ + Store unified resource ID with model mappings in cache and database. + + Args: + unified_resource_id: The unified resource ID (base64 encoded) + resource_object: The resource object to store (can be None) + litellm_parent_otel_span: OpenTelemetry span for tracing + model_mappings: Dictionary mapping model_id -> provider_resource_id + user_api_key_dict: User API key authentication details + additional_db_fields: Additional fields to store in database + """ + verbose_logger.info( + f"Storing LiteLLM Managed {self.resource_type} with id={unified_resource_id} in cache" + ) + + # Prepare cache data + cache_data = { + "unified_resource_id": unified_resource_id, + "resource_object": resource_object, + "model_mappings": model_mappings, + "flat_model_resource_ids": list(model_mappings.values()), + "created_by": user_api_key_dict.user_id, + "updated_by": user_api_key_dict.user_id, + } + + # Add additional fields if provided + if additional_db_fields: + cache_data.update(additional_db_fields) + + # Store in cache + if resource_object is not None: + await self.internal_usage_cache.async_set_cache( + key=unified_resource_id, + value=cache_data, + litellm_parent_otel_span=litellm_parent_otel_span, + ) + + # Prepare database data + db_data = { + "unified_resource_id": unified_resource_id, + "model_mappings": json.dumps(model_mappings), + "flat_model_resource_ids": list(model_mappings.values()), + "created_by": user_api_key_dict.user_id, + "updated_by": user_api_key_dict.user_id, + } + + # Add resource object if available + if resource_object is not None: + # Handle both dict and Pydantic models + if hasattr(resource_object, "model_dump_json"): + db_data["resource_object"] = resource_object.model_dump_json() # type: ignore + elif isinstance(resource_object, dict): + db_data["resource_object"] = json.dumps(resource_object) + + # Extract storage metadata from hidden params if present + hidden_params = getattr(resource_object, "_hidden_params", {}) or {} + if "storage_backend" in hidden_params: + db_data["storage_backend"] = hidden_params["storage_backend"] + if "storage_url" in hidden_params: + db_data["storage_url"] = hidden_params["storage_url"] + + # Add additional fields to database + if additional_db_fields: + db_data.update(additional_db_fields) + + # Store in database + table = getattr(self.prisma_client.db, self.table_name) + result = await table.create(data=db_data) + + verbose_logger.debug( + f"LiteLLM Managed {self.resource_type} with id={unified_resource_id} stored in db: {result}" + ) + + async def get_unified_resource_id( + self, + unified_resource_id: str, + litellm_parent_otel_span: Optional[Span] = None, + ) -> Optional[Dict[str, Any]]: + """ + Retrieve unified resource by ID from cache or database. + + Args: + unified_resource_id: The unified resource ID to retrieve + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + Dictionary containing resource data or None if not found + """ + # Check cache first + result = cast( + Optional[dict], + await self.internal_usage_cache.async_get_cache( + key=unified_resource_id, + litellm_parent_otel_span=litellm_parent_otel_span, + ), + ) + + if result: + return result + + # Check database + table = getattr(self.prisma_client.db, self.table_name) + db_object = await table.find_first( + where={"unified_resource_id": unified_resource_id} + ) + + if db_object: + return db_object.model_dump() + + return None + + async def delete_unified_resource_id( + self, + unified_resource_id: str, + litellm_parent_otel_span: Optional[Span] = None, + ) -> Optional[ResourceObjectType]: + """ + Delete unified resource from cache and database. + + Args: + unified_resource_id: The unified resource ID to delete + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + The deleted resource object or None if not found + """ + # Get old value from database + table = getattr(self.prisma_client.db, self.table_name) + initial_value = await table.find_first( + where={"unified_resource_id": unified_resource_id} + ) + + if initial_value is None: + raise Exception( + f"LiteLLM Managed {self.resource_type} with id={unified_resource_id} not found" + ) + + # Delete from cache + await self.internal_usage_cache.async_set_cache( + key=unified_resource_id, + value=None, + litellm_parent_otel_span=litellm_parent_otel_span, + ) + + # Delete from database + await table.delete(where={"unified_resource_id": unified_resource_id}) + + return initial_value.resource_object + + async def can_user_access_unified_resource_id( + self, + unified_resource_id: str, + user_api_key_dict: UserAPIKeyAuth, + litellm_parent_otel_span: Optional[Span] = None, + ) -> bool: + """ + Check if user has access to the unified resource ID. + + Uses get_unified_resource_id() which checks cache first before hitting the database, + avoiding direct DB queries in the critical request path. + + Args: + unified_resource_id: The unified resource ID to check + user_api_key_dict: User API key authentication details + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + True if user has access, False otherwise + """ + user_id = user_api_key_dict.user_id + + # Use cached method instead of direct DB query + resource = await self.get_unified_resource_id( + unified_resource_id, litellm_parent_otel_span + ) + + if resource: + return resource.get("created_by") == user_id + + return False + + # ============================================================================ + # MODEL MAPPING OPERATIONS + # ============================================================================ + + async def get_model_resource_id_mapping( + self, + resource_ids: List[str], + litellm_parent_otel_span: Span, + ) -> Dict[str, Dict[str, str]]: + """ + Get model-specific resource IDs for a list of unified resource IDs. + + Args: + resource_ids: List of unified resource IDs + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + Dictionary mapping unified_resource_id -> model_id -> provider_resource_id + + Example: + { + "unified_resource_id_1": { + "model_id_1": "provider_resource_id_1", + "model_id_2": "provider_resource_id_2" + } + } + """ + resource_id_mapping: Dict[str, Dict[str, str]] = {} + + for resource_id in resource_ids: + # Get unified resource from cache/db + unified_resource_object = await self.get_unified_resource_id( + resource_id, litellm_parent_otel_span + ) + + if unified_resource_object: + model_mappings = unified_resource_object.get("model_mappings", {}) + + # Handle both JSON string and dict + if isinstance(model_mappings, str): + model_mappings = json.loads(model_mappings) + + resource_id_mapping[resource_id] = model_mappings + + return resource_id_mapping + + # ============================================================================ + # RESOURCE CREATION OPERATIONS + # ============================================================================ + + async def create_resource_for_each_model( + self, + llm_router: Router, + request_data: Dict[str, Any], + target_model_names_list: List[str], + litellm_parent_otel_span: Span, + ) -> List[ResourceObjectType]: + """ + Create a resource for each model in the target list. + + Args: + llm_router: LiteLLM router instance + request_data: Request data for resource creation + target_model_names_list: List of target model names + litellm_parent_otel_span: OpenTelemetry span for tracing + + Returns: + List of resource objects created for each model + """ + if llm_router is None: + raise Exception("LLM Router not initialized. Ensure models added to proxy.") + + responses = [] + for model in target_model_names_list: + individual_response = await self.create_resource_for_model( + llm_router=llm_router, + model=model, + request_data=request_data, + litellm_parent_otel_span=litellm_parent_otel_span, + ) + responses.append(individual_response) + return responses + + def generate_unified_resource_id( + self, + resource_objects: List[ResourceObjectType], + target_model_names_list: List[str], + ) -> str: + """ + Generate a unified resource ID from multiple resource objects. + + Args: + resource_objects: List of resource objects from different models + target_model_names_list: List of target model names + + Returns: + Base64 encoded unified resource ID + """ + # Use the first resource object to generate the format + unified_id_format = self.get_unified_resource_id_format( + resource_object=resource_objects[0], + target_model_names_list=target_model_names_list, + ) + + # Convert to URL-safe base64 and strip padding + base64_unified_id = ( + base64.urlsafe_b64encode(unified_id_format.encode()).decode().rstrip("=") + ) + + return base64_unified_id + + def extract_model_mappings_from_responses( + self, + resource_objects: List[ResourceObjectType], + ) -> Dict[str, str]: + """ + Extract model mappings from resource objects. + + Args: + resource_objects: List of resource objects from different models + + Returns: + Dictionary mapping model_id -> provider_resource_id + """ + model_mappings: Dict[str, str] = {} + + for resource_object in resource_objects: + # Get hidden params if available + hidden_params = getattr(resource_object, "_hidden_params", {}) or {} + model_resource_id_mapping = hidden_params.get("model_resource_id_mapping") + + if model_resource_id_mapping and isinstance(model_resource_id_mapping, dict): + model_mappings.update(model_resource_id_mapping) + + return model_mappings + + # ============================================================================ + # DEPLOYMENT FILTERING + # ============================================================================ + + async def async_filter_deployments( + self, + model: str, + healthy_deployments: List, + request_kwargs: Optional[Dict] = None, + parent_otel_span: Optional[Span] = None, + resource_id_key: str = "resource_id", + ) -> List[Dict]: + """ + Filter deployments based on model mappings for a resource. + + This is used by the router to select only deployments that have + the resource available. + + Args: + model: Model name + healthy_deployments: List of healthy deployments + request_kwargs: Request kwargs containing resource_id and mappings + parent_otel_span: OpenTelemetry span for tracing + resource_id_key: Key to use for resource ID in request_kwargs + + Returns: + Filtered list of deployments + """ + if request_kwargs is None: + return healthy_deployments + + resource_id = cast(Optional[str], request_kwargs.get(resource_id_key)) + model_resource_id_mapping = cast( + Optional[Dict[str, Dict[str, str]]], + request_kwargs.get("model_resource_id_mapping"), + ) + + allowed_model_ids = [] + if resource_id and model_resource_id_mapping: + model_id_dict = model_resource_id_mapping.get(resource_id, {}) + allowed_model_ids = list(model_id_dict.keys()) + + if len(allowed_model_ids) == 0: + return healthy_deployments + + return [ + deployment + for deployment in healthy_deployments + if deployment.get("model_info", {}).get("id") in allowed_model_ids + ] + + # ============================================================================ + # UTILITY METHODS + # ============================================================================ + + def get_unified_id_prefix(self) -> str: + """ + Get the prefix for unified IDs for this resource type. + + Returns: + Prefix string (e.g., "litellm_proxy:") + """ + return SpecialEnums.LITELM_MANAGED_FILE_ID_PREFIX.value + + async def list_user_resources( + self, + user_api_key_dict: UserAPIKeyAuth, + limit: Optional[int] = None, + after: Optional[str] = None, + additional_filters: Optional[Dict[str, Any]] = None, + ) -> Dict[str, Any]: + """ + List resources created by a user. + + Args: + user_api_key_dict: User API key authentication details + limit: Maximum number of resources to return + after: Cursor for pagination + additional_filters: Additional filters to apply + + Returns: + Dictionary with list of resources and pagination info + """ + where_clause: Dict[str, Any] = {} + + # Filter by user who created the resource + if user_api_key_dict.user_id: + where_clause["created_by"] = user_api_key_dict.user_id + + if after: + where_clause["id"] = {"gt": after} + + # Add additional filters + if additional_filters: + where_clause.update(additional_filters) + + # Fetch resources + fetch_limit = limit or 20 + table = getattr(self.prisma_client.db, self.table_name) + resources = await table.find_many( + where=where_clause, + take=fetch_limit, + order={"created_at": "desc"}, + ) + + resource_objects: List[Any] = [] + for resource in resources: + try: + # Stop once we have enough + if len(resource_objects) >= (limit or 20): + break + + # Parse resource object + resource_data = resource.resource_object + if isinstance(resource_data, str): + resource_data = json.loads(resource_data) + + # Set unified ID + if hasattr(resource_data, "id"): + resource_data.id = resource.unified_resource_id + elif isinstance(resource_data, dict): + resource_data["id"] = resource.unified_resource_id + + resource_objects.append(resource_data) + + except Exception as e: + verbose_logger.warning( + f"Failed to parse {self.resource_type} object " + f"{resource.unified_resource_id}: {e}" + ) + continue + + return { + "object": "list", + "data": resource_objects, + "first_id": resource_objects[0].id if resource_objects else None, + "last_id": resource_objects[-1].id if resource_objects else None, + "has_more": len(resource_objects) == (limit or 20), + } diff --git a/litellm/llms/base_llm/managed_resources/utils.py b/litellm/llms/base_llm/managed_resources/utils.py new file mode 100644 index 00000000000..0d843b6d128 --- /dev/null +++ b/litellm/llms/base_llm/managed_resources/utils.py @@ -0,0 +1,364 @@ +""" +Utility functions for managed resources. + +This module provides common utility functions that can be used across +different managed resource types (files, vector stores, etc.). +""" + +import base64 +import re +from typing import List, Optional, Union, Literal + + +def is_base64_encoded_unified_id( + resource_id: str, + prefix: str = "litellm_proxy:", +) -> Union[str, Literal[False]]: + """ + Check if a resource ID is a base64 encoded unified ID. + + Args: + resource_id: The resource ID to check + prefix: The expected prefix for unified IDs + + Returns: + Decoded string if valid unified ID, False otherwise + """ + # Ensure resource_id is a string + if not isinstance(resource_id, str): + return False + + # Add padding back if needed + padded = resource_id + "=" * (-len(resource_id) % 4) + + # Decode from base64 + try: + decoded = base64.urlsafe_b64decode(padded).decode() + if decoded.startswith(prefix): + return decoded + else: + return False + except Exception: + return False + + +def extract_target_model_names_from_unified_id( + unified_id: str, +) -> List[str]: + """ + Extract target model names from a unified resource ID. + + Args: + unified_id: The unified resource ID (decoded or encoded) + + Returns: + List of target model names + + Example: + unified_id = "litellm_proxy:vector_store;unified_id,uuid;target_model_names,gpt-4,gemini-2.0" + returns: ["gpt-4", "gemini-2.0"] + """ + try: + # Ensure unified_id is a string + if not isinstance(unified_id, str): + return [] + + # Decode if it's base64 encoded + decoded_id = is_base64_encoded_unified_id(unified_id) + if decoded_id: + unified_id = decoded_id + + # Extract model names using regex + match = re.search(r"target_model_names,([^;]+)", unified_id) + if match: + # Split on comma and strip whitespace from each model name + return [model.strip() for model in match.group(1).split(",")] + + return [] + except Exception: + return [] + + +def extract_resource_type_from_unified_id( + unified_id: str, +) -> Optional[str]: + """ + Extract resource type from a unified resource ID. + + Args: + unified_id: The unified resource ID (decoded or encoded) + + Returns: + Resource type string or None + + Example: + unified_id = "litellm_proxy:vector_store;unified_id,uuid;..." + returns: "vector_store" + """ + try: + # Ensure unified_id is a string + if not isinstance(unified_id, str): + return None + + # Decode if it's base64 encoded + decoded_id = is_base64_encoded_unified_id(unified_id) + if decoded_id: + unified_id = decoded_id + + # Extract resource type (comes after prefix and before first semicolon) + match = re.search(r"litellm_proxy:([^;]+)", unified_id) + if match: + return match.group(1).strip() + + return None + except Exception: + return None + + +def extract_unified_uuid_from_unified_id( + unified_id: str, +) -> Optional[str]: + """ + Extract the UUID from a unified resource ID. + + Args: + unified_id: The unified resource ID (decoded or encoded) + + Returns: + UUID string or None + + Example: + unified_id = "litellm_proxy:vector_store;unified_id,abc-123;..." + returns: "abc-123" + """ + try: + # Ensure unified_id is a string + if not isinstance(unified_id, str): + return None + + # Decode if it's base64 encoded + decoded_id = is_base64_encoded_unified_id(unified_id) + if decoded_id: + unified_id = decoded_id + + # Extract UUID + match = re.search(r"unified_id,([^;]+)", unified_id) + if match: + return match.group(1).strip() + + return None + except Exception: + return None + + +def extract_model_id_from_unified_id( + unified_id: str, +) -> Optional[str]: + """ + Extract model ID from a unified resource ID. + + Args: + unified_id: The unified resource ID (decoded or encoded) + + Returns: + Model ID string or None + + Example: + unified_id = "litellm_proxy:vector_store;...;model_id,gpt-4-model-id;..." + returns: "gpt-4-model-id" + """ + try: + # Ensure unified_id is a string + if not isinstance(unified_id, str): + return None + + # Decode if it's base64 encoded + decoded_id = is_base64_encoded_unified_id(unified_id) + if decoded_id: + unified_id = decoded_id + + # Extract model ID + match = re.search(r"model_id,([^;]+)", unified_id) + if match: + return match.group(1).strip() + + return None + except Exception: + return None + + +def extract_provider_resource_id_from_unified_id( + unified_id: str, +) -> Optional[str]: + """ + Extract provider resource ID from a unified resource ID. + + Args: + unified_id: The unified resource ID (decoded or encoded) + + Returns: + Provider resource ID string or None + + Example: + unified_id = "litellm_proxy:vector_store;...;resource_id,vs_abc123;..." + returns: "vs_abc123" + """ + try: + # Ensure unified_id is a string + if not isinstance(unified_id, str): + return None + + # Decode if it's base64 encoded + decoded_id = is_base64_encoded_unified_id(unified_id) + if decoded_id: + unified_id = decoded_id + + # Extract resource ID (try multiple patterns for different resource types) + patterns = [ + r"resource_id,([^;]+)", + r"vector_store_id,([^;]+)", + r"file_id,([^;]+)", + ] + + for pattern in patterns: + match = re.search(pattern, unified_id) + if match: + return match.group(1).strip() + + return None + except Exception: + return None + + +def generate_unified_id_string( + resource_type: str, + unified_uuid: str, + target_model_names: List[str], + provider_resource_id: str, + model_id: str, + additional_fields: Optional[dict] = None, +) -> str: + """ + Generate a unified ID string (before base64 encoding). + + Args: + resource_type: Type of resource (e.g., "vector_store", "file") + unified_uuid: UUID for this unified resource + target_model_names: List of target model names + provider_resource_id: Resource ID from the provider + model_id: Model ID from the router + additional_fields: Additional fields to include in the ID + + Returns: + Unified ID string (not yet base64 encoded) + + Example: + generate_unified_id_string( + resource_type="vector_store", + unified_uuid="abc-123", + target_model_names=["gpt-4", "gemini"], + provider_resource_id="vs_xyz", + model_id="model-id-123", + ) + returns: "litellm_proxy:vector_store;unified_id,abc-123;target_model_names,gpt-4,gemini;resource_id,vs_xyz;model_id,model-id-123" + """ + # Build the unified ID string + parts = [ + f"litellm_proxy:{resource_type}", + f"unified_id,{unified_uuid}", + f"target_model_names,{','.join(target_model_names)}", + f"resource_id,{provider_resource_id}", + f"model_id,{model_id}", + ] + + # Add additional fields if provided + if additional_fields: + for key, value in additional_fields.items(): + parts.append(f"{key},{value}") + + return ";".join(parts) + + +def encode_unified_id(unified_id_string: str) -> str: + """ + Encode a unified ID string to base64. + + Args: + unified_id_string: The unified ID string to encode + + Returns: + Base64 encoded unified ID (URL-safe, padding stripped) + """ + return ( + base64.urlsafe_b64encode(unified_id_string.encode()) + .decode() + .rstrip("=") + ) + + +def decode_unified_id(encoded_unified_id: str) -> Optional[str]: + """ + Decode a base64 encoded unified ID. + + Args: + encoded_unified_id: The base64 encoded unified ID + + Returns: + Decoded unified ID string or None if invalid + """ + try: + # Add padding back if needed + padded = encoded_unified_id + "=" * (-len(encoded_unified_id) % 4) + + # Decode from base64 + decoded = base64.urlsafe_b64decode(padded).decode() + + # Verify it starts with the expected prefix + if decoded.startswith("litellm_proxy:"): + return decoded + + return None + except Exception: + return None + + +def parse_unified_id( + unified_id: str, +) -> Optional[dict]: + """ + Parse a unified ID into its components. + + Args: + unified_id: The unified ID (encoded or decoded) + + Returns: + Dictionary with parsed components or None if invalid + + Example: + { + "resource_type": "vector_store", + "unified_uuid": "abc-123", + "target_model_names": ["gpt-4", "gemini"], + "provider_resource_id": "vs_xyz", + "model_id": "model-id-123" + } + """ + try: + # Decode if needed + decoded_id = decode_unified_id(unified_id) + if not decoded_id: + # Maybe it's already decoded + if unified_id.startswith("litellm_proxy:"): + decoded_id = unified_id + else: + return None + + return { + "resource_type": extract_resource_type_from_unified_id(decoded_id), + "unified_uuid": extract_unified_uuid_from_unified_id(decoded_id), + "target_model_names": extract_target_model_names_from_unified_id(decoded_id), + "provider_resource_id": extract_provider_resource_id_from_unified_id(decoded_id), + "model_id": extract_model_id_from_unified_id(decoded_id), + } + except Exception: + return None diff --git a/litellm/llms/bedrock/base_aws_llm.py b/litellm/llms/bedrock/base_aws_llm.py index 1de1c40c438..304c707fa0b 100644 --- a/litellm/llms/bedrock/base_aws_llm.py +++ b/litellm/llms/bedrock/base_aws_llm.py @@ -211,25 +211,13 @@ class BaseAWSLLM: aws_external_id=aws_external_id, ) elif aws_role_name is not None: - # Check if we're in IRSA and trying to assume the same role we already have - current_role_arn = os.getenv("AWS_ROLE_ARN") - web_identity_token_file = os.getenv("AWS_WEB_IDENTITY_TOKEN_FILE") - - # In IRSA environments, we should skip role assumption if we're already running as the target role - # This is true when: - # 1. We have AWS_ROLE_ARN set (current role) - # 2. We have AWS_WEB_IDENTITY_TOKEN_FILE set (IRSA environment) - # 3. The current role matches the requested role - if ( - current_role_arn - and web_identity_token_file - and current_role_arn == aws_role_name - ): + # Check if we're already running as the target role and can skip assumption + # This handles IRSA (EKS), ECS task roles, and EC2 instance profiles + if self._is_already_running_as_role(aws_role_name, ssl_verify=ssl_verify): verbose_logger.debug( - "Using IRSA same-role optimization: calling _auth_with_env_vars" + "Already running as target role %s, using ambient credentials", + aws_role_name, ) - # We're already running as this role via IRSA, no need to assume it again - # Use the default boto3 credentials (which will use the IRSA credentials) credentials, _cache_ttl = self._auth_with_env_vars() else: verbose_logger.debug( @@ -553,6 +541,107 @@ class BaseAWSLLM: aws_region_name = "us-west-2" return aws_region_name + @staticmethod + def _parse_arn_account_and_role_name( + arn: str, + ) -> Optional[Tuple[str, str, str]]: + """ + Parse an ARN and return (partition, account_id, role_name). + + Handles: + - arn:aws:iam::123456789012:role/MyRole + - arn:aws:iam::123456789012:role/path/to/MyRole + - arn:aws:sts::123456789012:assumed-role/MyRole/session-name + + Returns None if the ARN cannot be parsed. + """ + # ARN format: arn:PARTITION:SERVICE:REGION:ACCOUNT:RESOURCE + parts = arn.split(":") + if len(parts) < 6 or parts[0] != "arn": + return None + + partition = parts[1] # e.g. "aws", "aws-cn", "aws-us-gov" + account_id = parts[4] + resource = ":".join(parts[5:]) # rejoin in case resource contains colons + + if resource.startswith("role/"): + # arn:aws:iam::ACCOUNT:role/[path/]ROLE_NAME + role_name = resource.split("/")[-1] + elif resource.startswith("assumed-role/"): + # arn:aws:sts::ACCOUNT:assumed-role/ROLE_NAME/SESSION + role_parts = resource.split("/") + if len(role_parts) >= 2: + role_name = role_parts[1] + else: + return None + else: + return None + + return partition, account_id, role_name + + def _is_already_running_as_role( + self, + aws_role_name: str, + ssl_verify: Optional[Union[bool, str]] = None, + ) -> bool: + """ + Check if the current environment is already running as the target IAM role. + + This handles multiple AWS environments: + - IRSA (EKS): AWS_ROLE_ARN + AWS_WEB_IDENTITY_TOKEN_FILE are set + - ECS task roles: Uses sts:GetCallerIdentity to check current role ARN + - EC2 instance profiles: Uses sts:GetCallerIdentity to check current role ARN + + Compares partition, account ID, and role name to avoid cross-account + false matches. + + Returns True if the current identity matches the target role, meaning + we can skip sts:AssumeRole and use ambient credentials directly. + """ + target_parsed = self._parse_arn_account_and_role_name(aws_role_name) + if target_parsed is None: + return False + + target_partition, target_account, target_role = target_parsed + + # Fast path: IRSA environment check (no API call needed) + current_role_arn = os.getenv("AWS_ROLE_ARN") + web_identity_token_file = os.getenv("AWS_WEB_IDENTITY_TOKEN_FILE") + if current_role_arn and web_identity_token_file: + return current_role_arn == aws_role_name + + # For ECS/EC2: call sts:GetCallerIdentity to check if already running as the role + try: + import boto3 + + with tracer.trace("boto3.client(sts).get_caller_identity"): + sts_client = boto3.client( + "sts", verify=self._get_ssl_verify(ssl_verify) + ) + identity = sts_client.get_caller_identity() + caller_arn = identity.get("Arn", "") + + caller_parsed = self._parse_arn_account_and_role_name(caller_arn) + if caller_parsed is not None: + caller_partition, caller_account, caller_role = caller_parsed + if ( + caller_partition == target_partition + and caller_account == target_account + and caller_role == target_role + ): + verbose_logger.debug( + "Current identity already matches target role: %s", + aws_role_name, + ) + return True + + except Exception as e: + verbose_logger.debug( + "Could not determine current role identity: %s", str(e) + ) + + return False + @tracer.wrap() def _auth_with_web_identity_token( self, @@ -867,7 +956,35 @@ class BaseAWSLLM: if aws_external_id is not None: assume_role_params["ExternalId"] = aws_external_id - sts_response = sts_client.assume_role(**assume_role_params) + try: + sts_response = sts_client.assume_role(**assume_role_params) + except Exception as e: + error_str = str(e) + if "AccessDenied" in error_str: + # Only fall back to ambient credentials if we can positively + # confirm the caller is already the target role (same account, + # partition, and role name). This avoids silently using the + # wrong identity when there is a genuine trust-policy or + # permission misconfiguration. + if self._is_already_running_as_role( + aws_role_name, ssl_verify=ssl_verify + ): + verbose_logger.warning( + "AssumeRole failed for %s (%s). " + "Caller is already running as this role; " + "falling back to ambient credentials.", + aws_role_name, + error_str, + ) + return self._auth_with_env_vars() + # Genuine permission error — re-raise + verbose_logger.error( + "AssumeRole AccessDenied for %s and caller is NOT " + "the same role. Re-raising. Error: %s", + aws_role_name, + error_str, + ) + raise # Extract the credentials from the response and convert to Session Credentials sts_credentials = sts_response["Credentials"] diff --git a/litellm/llms/bedrock/chat/converse_handler.py b/litellm/llms/bedrock/chat/converse_handler.py index d5bd054118d..25af852e09c 100644 --- a/litellm/llms/bedrock/chat/converse_handler.py +++ b/litellm/llms/bedrock/chat/converse_handler.py @@ -13,7 +13,9 @@ from litellm.llms.custom_httpx.http_handler import ( ) from litellm.types.utils import ModelResponse from litellm.utils import CustomStreamWrapper - +from litellm.anthropic_beta_headers_manager import ( + update_headers_with_filtered_beta, + ) from ..base_aws_llm import BaseAWSLLM, Credentials from ..common_utils import BedrockError from .invoke_handler import AWSEventStreamDecoder, MockResponseIterator, make_call @@ -337,7 +339,11 @@ class BedrockConverseLLM(BaseAWSLLM): headers = {"Content-Type": "application/json"} if extra_headers is not None: headers = {"Content-Type": "application/json", **extra_headers} - + + # Filter beta headers in HTTP headers before making the request + headers = update_headers_with_filtered_beta( + headers=headers, provider="bedrock_converse" + ) ### ROUTING (ASYNC, STREAMING, SYNC) if acompletion: if isinstance(client, HTTPHandler): diff --git a/litellm/llms/bedrock/chat/converse_transformation.py b/litellm/llms/bedrock/chat/converse_transformation.py index 7fc51263ebb..5faae07e2b9 100644 --- a/litellm/llms/bedrock/chat/converse_transformation.py +++ b/litellm/llms/bedrock/chat/converse_transformation.py @@ -11,10 +11,10 @@ import httpx import litellm from litellm._logging import verbose_logger -from litellm.anthropic_beta_headers_manager import ( - filter_and_transform_beta_headers, +from litellm.constants import ( + BEDROCK_MIN_THINKING_BUDGET_TOKENS, + RESPONSE_FORMAT_TOOL_NAME, ) -from litellm.constants import RESPONSE_FORMAT_TOOL_NAME from litellm.litellm_core_utils.core_helpers import ( filter_exceptions_from_params, filter_internal_params, @@ -437,6 +437,25 @@ class AmazonConverseConfig(BaseConfig): reasoning_effort=reasoning_effort, model=model ) + @staticmethod + def _clamp_thinking_budget_tokens(optional_params: dict) -> None: + """ + Clamp thinking.budget_tokens to the Bedrock minimum (1024). + + Bedrock returns a 400 error if budget_tokens < 1024. + """ + thinking = optional_params.get("thinking") + if isinstance(thinking, dict): + budget = thinking.get("budget_tokens") + if isinstance(budget, int) and budget < BEDROCK_MIN_THINKING_BUDGET_TOKENS: + verbose_logger.debug( + "Bedrock requires thinking.budget_tokens >= %d, got %d. " + "Clamping to minimum.", + BEDROCK_MIN_THINKING_BUDGET_TOKENS, + budget, + ) + thinking["budget_tokens"] = BEDROCK_MIN_THINKING_BUDGET_TOKENS + def get_supported_openai_params(self, model: str) -> List[str]: from litellm.utils import supports_function_calling @@ -874,9 +893,14 @@ class AmazonConverseConfig(BaseConfig): Checks 'non_default_params' for 'thinking' and 'max_tokens' if 'thinking' is enabled and 'max_tokens' is not specified, set 'max_tokens' to the thinking token budget + DEFAULT_MAX_TOKENS + + Also clamps thinking.budget_tokens to the Bedrock minimum (1024) to + prevent 400 errors from the Bedrock API. """ from litellm.constants import DEFAULT_MAX_TOKENS + self._clamp_thinking_budget_tokens(optional_params) + is_thinking_enabled = self.is_thinking_enabled(optional_params) is_max_tokens_in_request = self.is_max_tokens_in_request(non_default_params) if is_thinking_enabled and not is_max_tokens_in_request: @@ -1132,24 +1156,9 @@ class AmazonConverseConfig(BaseConfig): # Set anthropic_beta in additional_request_params if we have any beta features # ONLY apply to Anthropic/Claude models - other models (e.g., Qwen, Llama) don't support this field - # and will error with "unknown variant anthropic_beta" if included base_model = BedrockModelInfo.get_base_model(model) if anthropic_beta_list and base_model.startswith("anthropic"): - # Remove duplicates while preserving order - unique_betas = [] - seen = set() - for beta in anthropic_beta_list: - if beta not in seen: - unique_betas.append(beta) - seen.add(beta) - - filtered_betas = filter_and_transform_beta_headers( - beta_headers=unique_betas, - provider="bedrock_converse", - ) - - if filtered_betas: - additional_request_params["anthropic_beta"] = filtered_betas + additional_request_params["anthropic_beta"] = anthropic_beta_list return bedrock_tools, anthropic_beta_list diff --git a/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py b/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py index 31119c73d72..dfab81123fd 100644 --- a/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py +++ b/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py @@ -2,7 +2,6 @@ from typing import TYPE_CHECKING, Any, List, Optional import httpx -from litellm.anthropic_beta_headers_manager import filter_and_transform_beta_headers from litellm.llms.anthropic.chat.transformation import AnthropicConfig from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import ( AmazonInvokeConfig, @@ -136,13 +135,7 @@ class AmazonAnthropicClaudeConfig(AmazonInvokeConfig, AnthropicConfig): # Filter out beta headers that Bedrock Invoke doesn't support # Uses centralized configuration from anthropic_beta_headers_config.json beta_list = list(beta_set) - filtered_beta_list = filter_and_transform_beta_headers( - beta_headers=beta_list, - provider="bedrock", - ) - - if filtered_beta_list: - _anthropic_request["anthropic_beta"] = filtered_beta_list + _anthropic_request["anthropic_beta"] = beta_list return _anthropic_request diff --git a/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py b/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py index 19fe7d8c140..477fa3316d1 100644 --- a/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py +++ b/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py @@ -12,9 +12,6 @@ from typing import ( import httpx -from litellm.anthropic_beta_headers_manager import ( - filter_and_transform_beta_headers, -) from litellm.llms.anthropic.common_utils import AnthropicModelInfo from litellm.llms.anthropic.experimental_pass_through.messages.transformation import ( AnthropicMessagesConfig, @@ -249,75 +246,15 @@ class AmazonAnthropicClaudeMessagesConfig( "sonnet_4.5", "sonnet-4-5", "sonnet_4_5", + # Opus 4.6 + "opus-4.6", + "opus_4.6", + "opus-4-6", + "opus_4_6", ] return any(pattern in model_lower for pattern in supported_patterns) - def _filter_unsupported_beta_headers_for_bedrock( - self, model: str, beta_set: set - ) -> None: - """ - Remove beta headers that are not supported on Bedrock for the given model. - - Extended thinking beta headers are only supported on specific Claude 4+ models. - Advanced tool use headers are not supported on Bedrock Invoke API, but need to be - translated to Bedrock-specific headers for models that support tool search - (Claude Opus 4.5, Sonnet 4.5). - This prevents 400 "invalid beta flag" errors on Bedrock. - - Note: Bedrock Invoke API fails with a 400 error when unsupported beta headers - are sent, returning: {"message":"invalid beta flag"} - - Translation for models supporting tool search (Opus 4.5, Sonnet 4.5): - - advanced-tool-use-2025-11-20 -> tool-search-tool-2025-10-19 + tool-examples-2025-10-29 - - Args: - model: The model name - beta_set: The set of beta headers to filter in-place - """ - # 1. Handle header transformations BEFORE filtering - # (advanced-tool-use -> tool-search-tool) - # This must happen before filtering because advanced-tool-use is in the unsupported list - has_advanced_tool_use = "advanced-tool-use-2025-11-20" in beta_set - if has_advanced_tool_use and self._supports_tool_search_on_bedrock(model): - beta_set.discard("advanced-tool-use-2025-11-20") - beta_set.add("tool-search-tool-2025-10-19") - beta_set.add("tool-examples-2025-10-29") - - # 2. Apply provider-level filtering using centralized JSON config - beta_list = list(beta_set) - filtered_list = filter_and_transform_beta_headers( - beta_headers=beta_list, - provider="bedrock", - ) - - # Update the set with filtered headers - beta_set.clear() - beta_set.update(filtered_list) - - # 2.1. Handle model-specific exceptions: structured-outputs is only supported on Opus 4.6 - # Re-add structured-outputs if it was in the original set and model is Opus 4.6 - model_lower = model.lower() - is_opus_4_6 = any(pattern in model_lower for pattern in ["opus-4.6", "opus_4.6", "opus-4-6", "opus_4_6"]) - if is_opus_4_6 and "structured-outputs-2025-11-13" in beta_list: - beta_set.add("structured-outputs-2025-11-13") - - # 3. Filter out extended thinking headers for models that don't support them - extended_thinking_patterns = [ - "extended-thinking", - "interleaved-thinking", - ] - if not self._supports_extended_thinking_on_bedrock(model): - beta_headers_to_remove = set() - for beta in beta_set: - for pattern in extended_thinking_patterns: - if pattern in beta.lower(): - beta_headers_to_remove.add(beta) - break - - for beta in beta_headers_to_remove: - beta_set.discard(beta) - def _get_tool_search_beta_header_for_bedrock( self, model: str, @@ -483,12 +420,11 @@ class AmazonAnthropicClaudeMessagesConfig( beta_set=beta_set, ) - # Filter out unsupported beta headers for Bedrock (e.g., advanced-tool-use, extended-thinking on non-Opus/Sonnet 4 models) - self._filter_unsupported_beta_headers_for_bedrock( - model=model, - beta_set=beta_set, - ) - + # --- Custom logic: if tool-search-tool-2025-10-19 is present, add tool-examples-2025-10-29 --- + if "tool-search-tool-2025-10-19" in beta_set: + beta_set.add("tool-examples-2025-10-29") + # ------------------------------------------------------------------------------ + if beta_set: anthropic_messages_request["anthropic_beta"] = list(beta_set) diff --git a/litellm/llms/chatgpt/responses/transformation.py b/litellm/llms/chatgpt/responses/transformation.py index 0ce24f63a89..bcb6edd39f9 100644 --- a/litellm/llms/chatgpt/responses/transformation.py +++ b/litellm/llms/chatgpt/responses/transformation.py @@ -73,10 +73,6 @@ class ChatGPTResponsesAPIConfig(OpenAIResponsesAPIConfig): litellm_params, headers, ) - request.pop("max_output_tokens", None) - request.pop("max_tokens", None) - request.pop("max_completion_tokens", None) - request.pop("metadata", None) base_instructions = get_chatgpt_default_instructions() existing_instructions = request.get("instructions") if existing_instructions: @@ -92,7 +88,22 @@ class ChatGPTResponsesAPIConfig(OpenAIResponsesAPIConfig): if "reasoning.encrypted_content" not in include: include.append("reasoning.encrypted_content") request["include"] = include - return request + + allowed_keys = { + "model", + "input", + "instructions", + "stream", + "store", + "include", + "tools", + "tool_choice", + "reasoning", + "previous_response_id", + "truncation", + } + + return {k: v for k, v in request.items() if k in allowed_keys} def transform_response_api_response( self, diff --git a/litellm/llms/custom_httpx/aiohttp_transport.py b/litellm/llms/custom_httpx/aiohttp_transport.py index 1b03ec47643..6cec1f4fe16 100644 --- a/litellm/llms/custom_httpx/aiohttp_transport.py +++ b/litellm/llms/custom_httpx/aiohttp_transport.py @@ -4,7 +4,7 @@ import os import ssl import typing import urllib.request -from typing import Callable, Dict, Optional, Union +from typing import Any, Callable, Dict, Optional, Union import aiohttp import aiohttp.client_exceptions @@ -119,8 +119,13 @@ class AiohttpResponseStream(httpx.AsyncByteStream): class AiohttpTransport(httpx.AsyncBaseTransport): - def __init__(self, client: Union[ClientSession, Callable[[], ClientSession]]) -> None: + def __init__( + self, + client: Union[ClientSession, Callable[[], ClientSession]], + owns_session: bool = True, + ) -> None: self.client = client + self._owns_session = owns_session ######################################################### # Class variables for proxy settings @@ -128,7 +133,7 @@ class AiohttpTransport(httpx.AsyncBaseTransport): self.proxy_cache: Dict[str, Optional[str]] = {} async def aclose(self) -> None: - if isinstance(self.client, ClientSession): + if self._owns_session and isinstance(self.client, ClientSession): await self.client.close() @@ -144,10 +149,11 @@ class LiteLLMAiohttpTransport(AiohttpTransport): self, client: Union[ClientSession, Callable[[], ClientSession]], ssl_verify: Optional[Union[bool, ssl.SSLContext]] = None, + owns_session: bool = True, ): self.client = client self._ssl_verify = ssl_verify # Store for per-request SSL override - super().__init__(client=client) + super().__init__(client=client, owns_session=owns_session) # Store the client factory for recreating sessions when needed if callable(client): self._client_factory = client @@ -248,26 +254,25 @@ class LiteLLMAiohttpTransport(AiohttpTransport): # Only pass ssl kwarg when explicitly configured, to avoid # overriding the session/connector defaults with None (which is # not a valid value for aiohttp's ssl parameter). - ssl_kwargs: Dict[str, Union[bool, ssl.SSLContext]] = {} - if ssl_verify is not None: - ssl_kwargs["ssl"] = ssl_verify - - response = await client_session.request( - method=request.method, - url=YarlURL(str(request.url), encoded=True), - headers=request.headers, - data=data, - allow_redirects=False, - auto_decompress=False, - timeout=ClientTimeout( + request_kwargs: Dict[str, Any] = { + "method": request.method, + "url": YarlURL(str(request.url), encoded=True), + "headers": request.headers, + "data": data, + "allow_redirects": False, + "auto_decompress": False, + "timeout": ClientTimeout( sock_connect=timeout.get("connect"), sock_read=timeout.get("read"), connect=timeout.get("pool"), ), - proxy=proxy, - server_hostname=sni_hostname, - **ssl_kwargs, - ).__aenter__() + "proxy": proxy, + "server_hostname": sni_hostname, + } + if ssl_verify is not None: + request_kwargs["ssl"] = ssl_verify + + response = await client_session.request(**request_kwargs).__aenter__() return response diff --git a/litellm/llms/custom_httpx/http_handler.py b/litellm/llms/custom_httpx/http_handler.py index 95f411c397c..328097639e5 100644 --- a/litellm/llms/custom_httpx/http_handler.py +++ b/litellm/llms/custom_httpx/http_handler.py @@ -866,6 +866,7 @@ class AsyncHTTPHandler: return LiteLLMAiohttpTransport( client=shared_session, ssl_verify=ssl_for_transport, + owns_session=False, ) # Create new session only if none provided or existing one is invalid @@ -1206,7 +1207,28 @@ def get_async_httpx_client( If not present, creates a new client Caches the new client and returns it. + + Note: When shared_session is provided, the cache is bypassed to ensure + the user's session (with its trace_configs, connector settings, etc.) + is used for the request. """ + # When shared_session is provided, bypass cache and create a new handler + # that uses the user's session directly. This preserves the user's + # session configuration including trace_configs for aiohttp tracing. + if shared_session is not None: + verbose_logger.debug( + f"shared_session provided (ID: {id(shared_session)}), bypassing client cache" + ) + if params is not None: + handler_params = {k: v for k, v in params.items() if k != "disable_aiohttp_transport"} + handler_params["shared_session"] = shared_session + return AsyncHTTPHandler(**handler_params) + else: + return AsyncHTTPHandler( + timeout=httpx.Timeout(timeout=600.0, connect=5.0), + shared_session=shared_session, + ) + _params_key_name = "" if params is not None: for key, value in params.items(): @@ -1233,12 +1255,10 @@ def get_async_httpx_client( if params is not None: # Filter out params that are only used for cache key, not for AsyncHTTPHandler.__init__ handler_params = {k: v for k, v in params.items() if k != "disable_aiohttp_transport"} - handler_params["shared_session"] = shared_session _new_client = AsyncHTTPHandler(**handler_params) else: _new_client = AsyncHTTPHandler( timeout=httpx.Timeout(timeout=600.0, connect=5.0), - shared_session=shared_session, ) cache.set_cache( diff --git a/litellm/llms/custom_httpx/llm_http_handler.py b/litellm/llms/custom_httpx/llm_http_handler.py index 95db8ec64b3..a97ebd8e74c 100644 --- a/litellm/llms/custom_httpx/llm_http_handler.py +++ b/litellm/llms/custom_httpx/llm_http_handler.py @@ -81,6 +81,9 @@ from litellm.types.llms.anthropic_skills import ( ListSkillsResponse, Skill, ) +from litellm.anthropic_beta_headers_manager import ( + update_headers_with_filtered_beta, + ) from litellm.types.llms.openai import ( CreateBatchRequest, CreateFileRequest, @@ -1858,6 +1861,10 @@ class BaseLLMHTTPHandler: api_key=api_key, api_base=api_base, ) + + headers = update_headers_with_filtered_beta( + headers=headers, provider=custom_llm_provider + ) logging_obj.update_environment_variables( model=model, diff --git a/litellm/llms/oci/chat/transformation.py b/litellm/llms/oci/chat/transformation.py index e66394ae5f5..1c22602b483 100644 --- a/litellm/llms/oci/chat/transformation.py +++ b/litellm/llms/oci/chat/transformation.py @@ -838,6 +838,15 @@ class OCIChatConfig(BaseConfig): if not user_messages: raise Exception("No user message found for Cohere model") + # Extract system messages into preambleOverride + system_messages = [msg for msg in messages if msg.get("role") == "system"] + preamble_override = None + if system_messages: + preamble = "\n".join( + self._extract_text_content(msg["content"]) for msg in system_messages + ) + if preamble: + preamble_override = preamble # Create Cohere-specific chat request optional_cohere_params = self._get_optional_params(OCIVendors.COHERE, optional_params) @@ -845,6 +854,7 @@ class OCIChatConfig(BaseConfig): apiFormat="COHERE", message=self._extract_text_content(user_messages[-1]["content"]), chatHistory=self.adapt_messages_to_cohere_standard(messages), + preambleOverride=preamble_override, **optional_cohere_params ) diff --git a/litellm/llms/openai/chat/gpt_transformation.py b/litellm/llms/openai/chat/gpt_transformation.py index 6cc09dafc2f..5b9840d95b0 100644 --- a/litellm/llms/openai/chat/gpt_transformation.py +++ b/litellm/llms/openai/chat/gpt_transformation.py @@ -20,12 +20,12 @@ from typing import ( import httpx import litellm +from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response import ( _extract_reasoning_content, _handle_invalid_parallel_tool_calls, _should_convert_tool_call_to_json_mode, ) -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.litellm_core_utils.prompt_templates.common_utils import get_tool_call_names from litellm.litellm_core_utils.prompt_templates.image_handling import ( async_convert_url_to_base64, @@ -161,6 +161,7 @@ class OpenAIGPTConfig(BaseLLMModelInfo, BaseConfig): "web_search_options", "service_tier", "safety_identifier", + "prompt_cache_key", ] # works across all models model_specific_params = [] @@ -771,12 +772,15 @@ class OpenAIGPTConfig(BaseLLMModelInfo, BaseConfig): class OpenAIChatCompletionStreamingHandler(BaseModelResponseIterator): def chunk_parser(self, chunk: dict) -> ModelResponseStream: try: - return ModelResponseStream( - id=chunk["id"], - object="chat.completion.chunk", - created=chunk.get("created"), - model=chunk.get("model"), - choices=chunk.get("choices", []), - ) + kwargs = { + "id": chunk["id"], + "object": "chat.completion.chunk", + "created": chunk.get("created"), + "model": chunk.get("model"), + "choices": chunk.get("choices", []), + } + if "usage" in chunk and chunk["usage"] is not None: + kwargs["usage"] = chunk["usage"] + return ModelResponseStream(**kwargs) except Exception as e: raise e diff --git a/litellm/llms/openai/responses/transformation.py b/litellm/llms/openai/responses/transformation.py index cc2439b431a..3e089682097 100644 --- a/litellm/llms/openai/responses/transformation.py +++ b/litellm/llms/openai/responses/transformation.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, Dict, Optional, Union, cast, get_type_hin import httpx from openai.types.responses import ResponseReasoningItem -from pydantic import BaseModel +from pydantic import BaseModel, ValidationError import litellm from litellm._logging import verbose_logger @@ -240,25 +240,26 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): event_pydantic_model = OpenAIResponsesAPIConfig.get_event_model_class( event_type=event_type ) - # Defensive: Some OpenAI-compatible providers may send `error.code: null`. - # Pydantic will raise a ValidationError when it expects a string but gets None. - # Coalesce a None `error.code` to a stable default string so streaming - # iteration does not crash (see issue report). This keeps behavior similar - # to previous fixes (coalesce before validation) and lets higher-level - # handlers still receive an `ErrorEvent` object. + # Some OpenAI-compatible providers send error.code: null; coalesce so validation succeeds. try: error_obj = parsed_chunk.get("error") if isinstance(error_obj, dict) and error_obj.get("code") is None: - # Preserve other fields, but ensure `code` is a non-null string parsed_chunk = dict(parsed_chunk) parsed_chunk["error"] = dict(error_obj) parsed_chunk["error"]["code"] = "unknown_error" except Exception: - # If anything unexpected happens here, fall back to attempting - # instantiation and let higher-level handlers manage errors. verbose_logger.debug("Failed to coalesce error.code in parsed_chunk") - return event_pydantic_model(**parsed_chunk) + try: + return event_pydantic_model(**parsed_chunk) + except ValidationError: + verbose_logger.debug( + "Pydantic validation failed for %s with chunk %s, " + "falling back to model_construct", + event_pydantic_model.__name__, + parsed_chunk, + ) + return event_pydantic_model.model_construct(**parsed_chunk) @staticmethod def get_event_model_class(event_type: str) -> Any: @@ -307,6 +308,10 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): ResponsesAPIStreamEvents.MCP_CALL_FAILED: MCPCallFailedEvent, ResponsesAPIStreamEvents.IMAGE_GENERATION_PARTIAL_IMAGE: ImageGenerationPartialImageEvent, ResponsesAPIStreamEvents.ERROR: ErrorEvent, + # Shell tool events: passthrough as GenericEvent so payload is preserved + ResponsesAPIStreamEvents.SHELL_CALL_IN_PROGRESS: GenericEvent, + ResponsesAPIStreamEvents.SHELL_CALL_COMPLETED: GenericEvent, + ResponsesAPIStreamEvents.SHELL_CALL_OUTPUT: GenericEvent, } model_class = event_models.get(cast(ResponsesAPIStreamEvents, event_type)) diff --git a/litellm/llms/openai_like/dynamic_config.py b/litellm/llms/openai_like/dynamic_config.py index 1e7866bebbe..a2ce6b9a531 100644 --- a/litellm/llms/openai_like/dynamic_config.py +++ b/litellm/llms/openai_like/dynamic_config.py @@ -4,6 +4,7 @@ Dynamic configuration class generator for JSON-based providers. from typing import Any, Coroutine, List, Literal, Optional, Tuple, Union, overload +from litellm._logging import verbose_logger from litellm.litellm_core_utils.prompt_templates.common_utils import ( handle_messages_with_content_list_to_str_conversion, ) @@ -96,8 +97,27 @@ def create_config_class(provider: SimpleProviderConfig): return api_base def get_supported_openai_params(self, model: str) -> list: - """Get supported OpenAI params from base class""" - return super().get_supported_openai_params(model=model) + """Get supported OpenAI params, excluding tool-related params for models + that don't support function calling.""" + from litellm.utils import supports_function_calling + + supported_params = super().get_supported_openai_params(model=model) + + _supports_fc = supports_function_calling( + model=model, custom_llm_provider=provider.slug + ) + + if not _supports_fc: + tool_params = ["tools", "tool_choice", "function_call", "functions", "parallel_tool_calls"] + for param in tool_params: + if param in supported_params: + supported_params.remove(param) + verbose_logger.debug( + f"Model {model} on provider {provider.slug} does not support " + f"function calling — removed tool-related params from supported params." + ) + + return supported_params def map_openai_params( self, diff --git a/litellm/llms/openai_like/providers.json b/litellm/llms/openai_like/providers.json index b4f9cbe42de..1b1b1c2f8cc 100644 --- a/litellm/llms/openai_like/providers.json +++ b/litellm/llms/openai_like/providers.json @@ -26,6 +26,10 @@ "max_completion_tokens": "max_tokens" } }, + "scaleway": { + "base_url": "https://api.scaleway.ai/v1", + "api_key_env": "SCW_SECRET_KEY" + }, "synthetic": { "base_url": "https://api.synthetic.new/openai/v1", "api_key_env": "SYNTHETIC_API_KEY", diff --git a/litellm/llms/sagemaker/embedding/transformation.py b/litellm/llms/sagemaker/embedding/transformation.py index bd8abc5e01a..04b201380fc 100644 --- a/litellm/llms/sagemaker/embedding/transformation.py +++ b/litellm/llms/sagemaker/embedding/transformation.py @@ -102,11 +102,18 @@ class SagemakerEmbeddingConfig(BaseEmbeddingConfig): status_code=raw_response.status_code ) - if "embedding" not in response_data: + # Handle both raw array format (TEI) and wrapped format (standard HF) + if isinstance(response_data, list): + # TEI and some HF models return raw embedding arrays directly + embeddings = response_data + elif isinstance(response_data, dict) and "embedding" in response_data: + # Standard HF format with "embedding" key + embeddings = response_data["embedding"] + else: raise SagemakerError( - status_code=500, message="HF response missing 'embedding' field" + status_code=500, + message=f"Unexpected response format. Expected list or dict with 'embedding' key, got: {type(response_data).__name__}", ) - embeddings = response_data["embedding"] if not isinstance(embeddings, list): raise SagemakerError( diff --git a/litellm/llms/vertex_ai/gemini/transformation.py b/litellm/llms/vertex_ai/gemini/transformation.py index 00b461dcda0..5d397297891 100644 --- a/litellm/llms/vertex_ai/gemini/transformation.py +++ b/litellm/llms/vertex_ai/gemini/transformation.py @@ -529,6 +529,18 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 raise e +def _pop_and_merge_extra_body(data: RequestBody, optional_params: dict) -> None: + """Pop extra_body from optional_params and shallow-merge into data, deep-merging dict values.""" + extra_body: Optional[dict] = optional_params.pop("extra_body", None) + if extra_body is not None: + data_dict: dict = data # type: ignore[assignment] + for k, v in extra_body.items(): + if k in data_dict and isinstance(data_dict[k], dict) and isinstance(v, dict): + data_dict[k].update(v) + else: + data_dict[k] = v + + def _transform_request_body( messages: List[AllMessageValues], model: str, @@ -619,6 +631,7 @@ def _transform_request_body( # Only add labels for Vertex AI endpoints (not Google GenAI/AI Studio) and only if non-empty if labels and custom_llm_provider != LlmProviders.GEMINI: data["labels"] = labels + _pop_and_merge_extra_body(data, optional_params) except Exception as e: raise e diff --git a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py index 04ae4b6beb8..bef83b6d35e 100644 --- a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py +++ b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py @@ -480,7 +480,10 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): tool = {VertexToolName.COMPUTER_USE.value: computer_use_config} # Handle OpenAI-style web_search and web_search_preview tools # Transform them to Gemini's googleSearch tool - elif "type" in tool and tool["type"] in ("web_search", "web_search_preview"): + elif "type" in tool and tool["type"] in ( + "web_search", + "web_search_preview", + ): verbose_logger.info( f"Gemini: Transforming OpenAI-style '{tool['type']}' tool to googleSearch" ) @@ -1196,6 +1199,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): "PROHIBITED_CONTENT": "The token generation was stopped as the response was flagged for the prohibited contents.", "SPII": "The token generation was stopped as the response was flagged for Sensitive Personally Identifiable Information (SPII) contents.", "IMAGE_SAFETY": "The token generation was stopped as the response was flagged for image safety reasons.", + "IMAGE_PROHIBITED_CONTENT": "The token generation was stopped as the response was flagged for prohibited image content.", } @staticmethod @@ -1218,6 +1222,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): "SPII": "content_filter", "MALFORMED_FUNCTION_CALL": "malformed_function_call", # openai doesn't have a way of representing this "IMAGE_SAFETY": "content_filter", + "IMAGE_PROHIBITED_CONTENT": "content_filter", } def translate_exception_str(self, exception_string: str): @@ -1630,7 +1635,9 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): completion_image_tokens = response_tokens_details.image_tokens or 0 completion_audio_tokens = response_tokens_details.audio_tokens or 0 calculated_text_tokens = ( - candidates_token_count - completion_image_tokens - completion_audio_tokens + candidates_token_count + - completion_image_tokens + - completion_audio_tokens ) response_tokens_details.text_tokens = calculated_text_tokens ######################################################### @@ -2248,6 +2255,13 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): citation_metadata # older approach - maintaining to prevent regressions ) + ## ADD TRAFFIC TYPE ## + traffic_type = completion_response.get("usageMetadata", {}).get( + "trafficType" + ) + if traffic_type: + model_response._hidden_params.setdefault("provider_specific_fields", {})["traffic_type"] = traffic_type + except Exception as e: raise VertexAIError( message="Received={}, Error converting to valid response block={}. File an issue if litellm error - https://github.com/BerriAI/litellm/issues".format( @@ -2906,6 +2920,12 @@ class ModelResponseIterator: PromptTokensDetailsWrapper, usage.prompt_tokens_details ).web_search_requests = web_search_requests + traffic_type = processed_chunk.get("usageMetadata", {}).get( + "trafficType" + ) + if traffic_type: + model_response._hidden_params.setdefault("provider_specific_fields", {})["traffic_type"] = traffic_type + setattr(model_response, "usage", usage) # type: ignore model_response._hidden_params["is_finished"] = False diff --git a/litellm/llms/vertex_ai/vector_stores/rag_api/transformation.py b/litellm/llms/vertex_ai/vector_stores/rag_api/transformation.py index 08b93145e50..1be9cd820a3 100644 --- a/litellm/llms/vertex_ai/vector_stores/rag_api/transformation.py +++ b/litellm/llms/vertex_ai/vector_stores/rag_api/transformation.py @@ -115,8 +115,13 @@ class VertexVectorStoreConfig(BaseVectorStoreConfig, VertexBase): vertex_project = self.get_vertex_ai_project(litellm_params) vertex_location = self.get_vertex_ai_location(litellm_params) - # Construct full rag corpus path - full_rag_corpus = f"projects/{vertex_project}/locations/{vertex_location}/ragCorpora/{vector_store_id}" + # Handle both full corpus path and just corpus ID + if vector_store_id.startswith("projects/"): + # Already a full path + full_rag_corpus = vector_store_id + else: + # Just the corpus ID, construct full path + full_rag_corpus = f"projects/{vertex_project}/locations/{vertex_location}/ragCorpora/{vector_store_id}" # Build the request body for Vertex AI RAG API request_body: Dict[str, Any] = { diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/experimental_pass_through/transformation.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/experimental_pass_through/transformation.py index 5a09168282d..54c3f9e0474 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/experimental_pass_through/transformation.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/experimental_pass_through/transformation.py @@ -1,8 +1,5 @@ from typing import Any, Dict, List, Optional, Tuple -from litellm.anthropic_beta_headers_manager import ( - update_headers_with_filtered_beta, -) from litellm.llms.anthropic.common_utils import AnthropicModelInfo from litellm.llms.anthropic.experimental_pass_through.messages.transformation import ( AnthropicMessagesConfig, @@ -105,12 +102,6 @@ class VertexAIPartnerModelsAnthropicMessagesConfig(AnthropicMessagesConfig, Vert if beta_values: headers["anthropic-beta"] = ",".join(beta_values) - # Filter out unsupported beta headers for Vertex AI - headers = update_headers_with_filtered_beta( - headers=headers, - provider="vertex_ai", - ) - return headers, api_base def get_complete_url( diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py index 748a5f5fb40..51310e4fa85 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py @@ -1,12 +1,21 @@ import types -from typing import Any, List, Optional +from typing import Any, AsyncIterator, Iterator, List, Optional, Union import httpx from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj -from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig +from litellm.llms.openai.chat.gpt_transformation import ( + OpenAIChatCompletionStreamingHandler, + OpenAIGPTConfig, +) from litellm.types.llms.openai import AllMessageValues, OpenAIChatCompletionResponse -from litellm.types.utils import ModelResponse, Usage +from litellm.types.utils import ( + Delta, + ModelResponse, + ModelResponseStream, + StreamingChoices, + Usage, +) from ...common_utils import VertexAIError @@ -79,6 +88,18 @@ class VertexAILlama3Config(OpenAIGPTConfig): drop_params=drop_params, ) + def get_model_response_iterator( + self, + streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse], + sync_stream: bool, + json_mode: Optional[bool] = False, + ) -> Any: + return VertexAILlama3StreamingHandler( + streaming_response=streaming_response, + sync_stream=sync_stream, + json_mode=json_mode, + ) + def transform_response( self, model: str, @@ -124,3 +145,80 @@ class VertexAILlama3Config(OpenAIGPTConfig): ) return model_response + + +class VertexAILlama3StreamingHandler(OpenAIChatCompletionStreamingHandler): + """ + Vertex AI Llama models may not include role in streaming chunk deltas. + This handler ensures the first chunk always has role="assistant". + + When Vertex AI returns a single chunk with both role and finish_reason (empty response), + this handler splits it into two chunks: + 1. First chunk: role="assistant", content="", finish_reason=None + 2. Second chunk: role=None, content=None, finish_reason="stop" + + This matches OpenAI's streaming format where the first chunk has role and + the final chunk has finish_reason but no role. + """ + + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.sent_role = False + self._pending_chunk: Optional[ModelResponseStream] = None + + def chunk_parser(self, chunk: dict) -> ModelResponseStream: + result = super().chunk_parser(chunk) + if not self.sent_role and result.choices: + delta = result.choices[0].delta + finish_reason = result.choices[0].finish_reason + + # If this is both the first chunk AND the final chunk (has finish_reason), + # we need to split it into two chunks to match OpenAI format + if finish_reason is not None: + # Create a pending final chunk with finish_reason but no role + self._pending_chunk = ModelResponseStream( + id=result.id, + object="chat.completion.chunk", + created=result.created, + model=result.model, + choices=[ + StreamingChoices( + index=0, + delta=Delta(content=None, role=None), + finish_reason=finish_reason, + ) + ], + ) + # Modify current chunk to be the first chunk with role but no finish_reason + result.choices[0].finish_reason = None + delta.role = "assistant" + # Ensure content is empty string for first chunk, not None + if delta.content is None: + delta.content = "" + # Prevent downstream stream wrapper from dropping this chunk + # (it drops empty-content chunks unless special fields are present) + if delta.provider_specific_fields is None: + delta.provider_specific_fields = {} + elif delta.role is None: + delta.role = "assistant" + # If the first chunk has empty content, ensure it's still emitted + if (delta.content == "" or delta.content is None) and delta.provider_specific_fields is None: + delta.provider_specific_fields = {} + self.sent_role = True + return result + + def __next__(self): + # First return any pending chunk from a previous split + if self._pending_chunk is not None: + chunk = self._pending_chunk + self._pending_chunk = None + return chunk + return super().__next__() + + async def __anext__(self): + # First return any pending chunk from a previous split + if self._pending_chunk is not None: + chunk = self._pending_chunk + self._pending_chunk = None + return chunk + return await super().__anext__() diff --git a/litellm/main.py b/litellm/main.py index bca023e65ec..80a2f74c571 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -7383,6 +7383,16 @@ def stream_chunk_builder( # noqa: PLR0915 setattr(response, "usage", usage) + # Propagate provider_specific_fields from the last chunk (contains provider + # metadata like traffic_type set during streaming) + for chunk in reversed(chunks): + hidden = getattr(chunk, "_hidden_params", None) + if hidden and "provider_specific_fields" in hidden: + response._hidden_params.setdefault( + "provider_specific_fields", {} + ).update(hidden["provider_specific_fields"]) + break + # Add cost to usage object if include_cost_in_streaming_usage is True if litellm.include_cost_in_streaming_usage and logging_obj is not None: setattr( diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index d794aa50d2e..9ea9f39b1db 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -1083,7 +1083,7 @@ "supports_vision": true, "tool_use_system_prompt_tokens": 346 }, - "apac.anthropic.claude-opus-4-6-v1": { + "au.anthropic.claude-opus-4-6-v1": { "cache_creation_input_token_cost": 6.875e-06, "cache_creation_input_token_cost_above_200k_tokens": 1.375e-05, "cache_read_input_token_cost": 5.5e-07, @@ -5859,6 +5859,7 @@ "source": "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/kimi-k2-5-now-in-microsoft-foundry/4492321", "supports_function_calling": true, "supports_tool_choice": true, + "supports_video_input": true, "supports_vision": true }, "azure_ai/ministral-3b": { @@ -6104,6 +6105,32 @@ "output_cost_per_token": 2.4e-05, "supports_tool_choice": true }, + "bedrock/ap-northeast-1/deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-northeast-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/ap-northeast-1/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 7.3e-07, "litellm_provider": "bedrock", @@ -6115,7 +6142,34 @@ "supports_function_calling": true, "supports_reasoning": true }, - "bedrock/moonshotai.kimi-k2.5": { + "bedrock/ap-northeast-1/moonshotai.kimi-k2.5": { + "input_cost_per_token": 7.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.6e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-northeast-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 7.3e-07, "litellm_provider": "bedrock", "max_input_tokens": 262144, @@ -6126,6 +6180,22 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/moonshotai.kimi-k2.5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.03e-06, + "source": "https://platform.moonshot.ai/docs/guide/kimi-k2-5-quickstart", + "supports_function_calling": true, + "supports_reasoning": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_video_input": true, + "supports_vision": true + }, "bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": { "input_cost_per_token": 3.18e-06, "litellm_provider": "bedrock", @@ -6144,6 +6214,32 @@ "mode": "chat", "output_cost_per_token": 7.2e-07 }, + "bedrock/ap-south-1/deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-south-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/ap-south-1/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 7.1e-07, "litellm_provider": "bedrock", @@ -6155,6 +6251,86 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/ap-south-1/moonshotai.kimi-k2.5": { + "input_cost_per_token": 7.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.6e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-south-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-southeast-3/deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-southeast-3/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-southeast-3/moonshotai.kimi-k2.5": { + "input_cost_per_token": 7.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.6e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/ap-southeast-3/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": { "input_cost_per_token": 3.05e-06, "litellm_provider": "bedrock", @@ -6173,6 +6349,46 @@ "mode": "chat", "output_cost_per_token": 6.9e-07 }, + "bedrock/eu-north-1/deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-north-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-north-1/moonshotai.kimi-k2.5": { + "input_cost_per_token": 7.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.6e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": { "input_cost_per_second": 0.01635, "litellm_provider": "bedrock", @@ -6260,6 +6476,32 @@ "output_cost_per_token": 2.4e-05, "supports_tool_choice": true }, + "bedrock/eu-central-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-central-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": { "input_cost_per_token": 2.86e-06, "litellm_provider": "bedrock", @@ -6278,6 +6520,32 @@ "mode": "chat", "output_cost_per_token": 6.5e-07 }, + "bedrock/eu-west-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-west-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": { "input_cost_per_token": 3.45e-06, "litellm_provider": "bedrock", @@ -6296,6 +6564,32 @@ "mode": "chat", "output_cost_per_token": 7.8e-07 }, + "bedrock/eu-west-2/minimax.minimax-m2.1": { + "input_cost_per_token": 4.7e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.86e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-west-2/qwen.qwen3-coder-next": { + "input_cost_per_token": 7.8e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.86e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": { "input_cost_per_token": 2e-07, "litellm_provider": "bedrock", @@ -6326,6 +6620,32 @@ "output_cost_per_token": 9.1e-07, "supports_tool_choice": true }, + "bedrock/eu-south-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/eu-south-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/invoke/anthropic.claude-3-5-sonnet-20240620-v1:0": { "input_cost_per_token": 3e-06, "litellm_provider": "bedrock", @@ -6360,6 +6680,32 @@ "mode": "chat", "output_cost_per_token": 1.01e-06 }, + "bedrock/sa-east-1/deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/sa-east-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3.6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/sa-east-1/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 7.3e-07, "litellm_provider": "bedrock", @@ -6371,6 +6717,33 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/sa-east-1/moonshotai.kimi-k2.5": { + "input_cost_per_token": 7.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3.6e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/sa-east-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.44e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us-east-1/1-month-commitment/anthropic.claude-instant-v1": { "input_cost_per_second": 0.011, "litellm_provider": "bedrock", @@ -6507,6 +6880,32 @@ "output_cost_per_token": 7e-07, "supports_tool_choice": true }, + "bedrock/us-east-1/deepseek.v3.2": { + "input_cost_per_token": 6.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 1.85e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-east-1/minimax.minimax-m2.1": { + "input_cost_per_token": 3e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us-east-1/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 6e-07, "litellm_provider": "bedrock", @@ -6518,6 +6917,59 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/us-east-1/moonshotai.kimi-k2.5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-east-1/qwen.qwen3-coder-next": { + "input_cost_per_token": 5e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-east-2/deepseek.v3.2": { + "input_cost_per_token": 6.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 1.85e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-east-2/minimax.minimax-m2.1": { + "input_cost_per_token": 3e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us-east-2/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 6e-07, "litellm_provider": "bedrock", @@ -6529,6 +6981,33 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/us-east-2/moonshotai.kimi-k2.5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-east-2/qwen.qwen3-coder-next": { + "input_cost_per_token": 5e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us-gov-east-1/amazon.nova-pro-v1:0": { "input_cost_per_token": 9.6e-07, "litellm_provider": "bedrock", @@ -6935,6 +7414,32 @@ "output_cost_per_token": 7e-07, "supports_tool_choice": true }, + "bedrock/us-west-2/deepseek.v3.2": { + "input_cost_per_token": 6.2e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 1.85e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-west-2/minimax.minimax-m2.1": { + "input_cost_per_token": 3e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us-west-2/moonshotai.kimi-k2-thinking": { "input_cost_per_token": 6e-07, "litellm_provider": "bedrock", @@ -6946,6 +7451,33 @@ "supports_function_calling": true, "supports_reasoning": true }, + "bedrock/us-west-2/moonshotai.kimi-k2.5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, + "bedrock/us-west-2/qwen.qwen3-coder-next": { + "input_cost_per_token": 5e-07, + "litellm_provider": "bedrock", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0": { "cache_creation_input_token_cost": 1e-06, "cache_read_input_token_cost": 8e-08, @@ -9035,6 +9567,43 @@ } ] }, + "dashscope/qwen3-max": { + "litellm_provider": "dashscope", + "max_input_tokens": 258048, + "max_output_tokens": 65536, + "max_tokens": 65536, + "mode": "chat", + "source": "https://www.alibabacloud.com/help/en/model-studio/models", + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "tiered_pricing": [ + { + "input_cost_per_token": 1.2e-06, + "output_cost_per_token": 6e-06, + "range": [ + 0, + 32000.0 + ] + }, + { + "input_cost_per_token": 2.4e-06, + "output_cost_per_token": 1.2e-05, + "range": [ + 32000.0, + 128000.0 + ] + }, + { + "input_cost_per_token": 3e-06, + "output_cost_per_token": 1.5e-05, + "range": [ + 128000.0, + 252000.0 + ] + } + ] + }, "dashscope/qwq-plus": { "input_cost_per_token": 8e-07, "litellm_provider": "dashscope", @@ -10708,14 +11277,22 @@ "input_cost_per_token": 2.8e-07, "input_cost_per_token_cache_hit": 2.8e-08, "litellm_provider": "deepseek", - "max_input_tokens": 128000, + "max_input_tokens": 131072, "max_output_tokens": 8192, "max_tokens": 8192, "mode": "chat", "output_cost_per_token": 4.2e-07, + "source": "https://api-docs.deepseek.com/quick_start/pricing", + "supported_endpoints": [ + "/v1/chat/completions" + ], "supports_assistant_prefill": true, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, "supports_prompt_caching": true, + "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true }, "deepseek/deepseek-coder": { @@ -10752,16 +11329,24 @@ "input_cost_per_token": 2.8e-07, "input_cost_per_token_cache_hit": 2.8e-08, "litellm_provider": "deepseek", - "max_input_tokens": 128000, - "max_output_tokens": 8192, - "max_tokens": 8192, + "max_input_tokens": 131072, + "max_output_tokens": 65536, + "max_tokens": 65536, "mode": "chat", "output_cost_per_token": 4.2e-07, + "source": "https://api-docs.deepseek.com/quick_start/pricing", + "supported_endpoints": [ + "/v1/chat/completions" + ], "supports_assistant_prefill": true, - "supports_function_calling": true, + "supports_function_calling": false, + "supports_native_streaming": true, + "supports_parallel_function_calling": false, "supports_prompt_caching": true, "supports_reasoning": true, - "supports_tool_choice": true + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": false }, "deepseek/deepseek-v3": { "cache_creation_input_token_cost": 0.0, @@ -10806,6 +11391,19 @@ "supports_reasoning": true, "supports_tool_choice": true }, + "deepseek.v3.2": { + "input_cost_per_token": 6.2e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 1.85e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "dolphin": { "input_cost_per_token": 5e-07, "litellm_provider": "nlp_cloud", @@ -11858,6 +12456,19 @@ "supports_tool_choice": true, "supports_web_search": true }, + "fireworks_ai/accounts/fireworks/models/kimi-k2p5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "fireworks_ai", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3e-06, + "source": "https://fireworks.ai/pricing", + "supports_function_calling": true, + "supports_response_schema": true, + "supports_tool_choice": true + }, "fireworks_ai/accounts/fireworks/models/llama-v3p1-405b-instruct": { "input_cost_per_token": 3e-06, "litellm_provider": "fireworks_ai", @@ -14239,7 +14850,9 @@ "supports_tool_choice": true, "supports_url_context": true, "supports_vision": true, - "supports_web_search": true + "supports_web_search": true, + "tpm": 250000, + "rpm": 10 }, "gemini-2.5-computer-use-preview-10-2025": { "input_cost_per_token": 1.25e-06, @@ -15720,44 +16333,16 @@ "tpm": 250000 }, "gemini/gemini-2.5-flash-preview-tts": { - "cache_read_input_token_cost": 3.75e-08, - "input_cost_per_audio_token": 1e-06, - "input_cost_per_token": 1.5e-07, + "input_cost_per_token": 3e-07, "litellm_provider": "gemini", - "max_audio_length_hours": 8.4, - "max_audio_per_prompt": 1, - "max_images_per_prompt": 3000, - "max_input_tokens": 1048576, - "max_output_tokens": 65535, - "max_pdf_size_mb": 30, - "max_tokens": 65535, - "max_video_length": 1, - "max_videos_per_prompt": 10, - "mode": "chat", - "output_cost_per_reasoning_token": 3.5e-06, - "output_cost_per_token": 6e-07, - "rpm": 10, - "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview", + "mode": "audio_speech", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", "supported_endpoints": [ - "/v1/chat/completions", - "/v1/completions" + "/v1/audio/speech" ], - "supported_modalities": [ - "text" - ], - "supported_output_modalities": [ - "audio" - ], - "supports_audio_output": false, - "supports_function_calling": true, - "supports_prompt_caching": true, - "supports_reasoning": true, - "supports_response_schema": true, - "supports_system_messages": true, - "supports_tool_choice": true, - "supports_vision": true, - "supports_web_search": true, - "tpm": 250000 + "tpm": 4000000, + "rpm": 10 }, "gemini/gemini-2.5-pro": { "cache_read_input_token_cost": 1.25e-07, @@ -16255,7 +16840,9 @@ "source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models", "supports_function_calling": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "tpm": 250000, + "rpm": 10 }, "gemini/gemini-gemma-2-9b-it": { "input_cost_per_token": 3.5e-07, @@ -16267,7 +16854,9 @@ "source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#foundation_models", "supports_function_calling": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "tpm": 250000, + "rpm": 10 }, "gemini/gemini-pro": { "input_cost_per_token": 3.5e-07, @@ -21306,6 +21895,19 @@ "output_cost_per_token": 1.2e-06, "supports_system_messages": true }, + "minimax.minimax-m2.1": { + "input_cost_per_token": 3e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 196000, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "minimax/speech-02-hd": { "input_cost_per_character": 0.0001, "litellm_provider": "minimax", @@ -21368,6 +21970,36 @@ "max_input_tokens": 1000000, "max_output_tokens": 8192 }, + "minimax/MiniMax-M2.5": { + "input_cost_per_token": 3e-07, + "output_cost_per_token": 1.2e-06, + "cache_read_input_token_cost": 3e-08, + "cache_creation_input_token_cost": 3.75e-07, + "litellm_provider": "minimax", + "mode": "chat", + "supports_function_calling": true, + "supports_tool_choice": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_system_messages": true, + "max_input_tokens": 1000000, + "max_output_tokens": 8192 + }, + "minimax/MiniMax-M2.5-lightning": { + "input_cost_per_token": 3e-07, + "output_cost_per_token": 2.4e-06, + "cache_read_input_token_cost": 3e-08, + "cache_creation_input_token_cost": 3.75e-07, + "litellm_provider": "minimax", + "mode": "chat", + "supports_function_calling": true, + "supports_tool_choice": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_system_messages": true, + "max_input_tokens": 1000000, + "max_output_tokens": 8192 + }, "minimax/MiniMax-M2": { "input_cost_per_token": 3e-07, "output_cost_per_token": 1.2e-06, @@ -22032,6 +22664,20 @@ "supports_reasoning": true, "supports_system_messages": true }, + "moonshotai.kimi-k2.5": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 3e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "moonshot/kimi-k2-0711-preview": { "cache_read_input_token_cost": 1.5e-07, "input_cost_per_token": 6e-07, @@ -22083,9 +22729,10 @@ "max_tokens": 262144, "mode": "chat", "output_cost_per_token": 3e-06, - "source": "https://platform.moonshot.ai/docs/pricing/chat", + "source": "https://platform.moonshot.ai/docs/guide/kimi-k2-5-quickstart", "supports_function_calling": true, "supports_tool_choice": true, + "supports_video_input": true, "supports_vision": true }, "moonshot/kimi-latest": { @@ -22547,6 +23194,19 @@ "output_cost_per_token": 2.3e-07, "supports_system_messages": true }, + "nvidia.nemotron-nano-3-30b": { + "input_cost_per_token": 6e-08, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.4e-07, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "o1": { "cache_read_input_token_cost": 7.5e-06, "input_cost_per_token": 1.5e-05, @@ -22557,7 +23217,7 @@ "mode": "chat", "output_cost_per_token": 6e-05, "supports_function_calling": true, - "supports_parallel_function_calling": true, + "supports_parallel_function_calling": false, "supports_pdf_input": true, "supports_prompt_caching": true, "supports_reasoning": true, @@ -23112,7 +23772,7 @@ "max_output_tokens": 131072, "max_tokens": 131072, "mode": "chat", - "output_cost_per_token": 1.5e-07, + "output_cost_per_token": 1.5e-05, "source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing", "supports_function_calling": true, "supports_response_schema": false @@ -23160,7 +23820,7 @@ "max_output_tokens": 128000, "max_tokens": 128000, "mode": "chat", - "output_cost_per_token": 1.5e-07, + "output_cost_per_token": 1.5e-05, "source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing", "supports_function_calling": true, "supports_response_schema": false @@ -23552,36 +24212,6 @@ "output_cost_per_token": 2e-07, "supports_system_messages": true }, - "openrouter/anthropic/claude-2": { - "input_cost_per_token": 1.102e-05, - "litellm_provider": "openrouter", - "max_output_tokens": 8191, - "max_tokens": 8191, - "mode": "chat", - "output_cost_per_token": 3.268e-05, - "supports_tool_choice": true - }, - "openrouter/anthropic/claude-3-5-haiku": { - "input_cost_per_token": 1e-06, - "litellm_provider": "openrouter", - "max_tokens": 200000, - "mode": "chat", - "output_cost_per_token": 5e-06, - "supports_function_calling": true, - "supports_tool_choice": true - }, - "openrouter/anthropic/claude-3-5-haiku-20241022": { - "input_cost_per_token": 1e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 200000, - "max_output_tokens": 8192, - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 5e-06, - "supports_function_calling": true, - "supports_tool_choice": true, - "tool_use_system_prompt_tokens": 264 - }, "openrouter/anthropic/claude-3-haiku": { "input_cost_per_image": 0.0004, "input_cost_per_token": 2.5e-07, @@ -23593,43 +24223,6 @@ "supports_tool_choice": true, "supports_vision": true }, - "openrouter/anthropic/claude-3-haiku-20240307": { - "input_cost_per_token": 2.5e-07, - "litellm_provider": "openrouter", - "max_input_tokens": 200000, - "max_output_tokens": 4096, - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 1.25e-06, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true, - "tool_use_system_prompt_tokens": 264 - }, - "openrouter/anthropic/claude-3-opus": { - "input_cost_per_token": 1.5e-05, - "litellm_provider": "openrouter", - "max_input_tokens": 200000, - "max_output_tokens": 4096, - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 7.5e-05, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true, - "tool_use_system_prompt_tokens": 395 - }, - "openrouter/anthropic/claude-3-sonnet": { - "input_cost_per_image": 0.0048, - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_tokens": 200000, - "mode": "chat", - "output_cost_per_token": 1.5e-05, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true - }, "openrouter/anthropic/claude-3.5-sonnet": { "input_cost_per_token": 3e-06, "litellm_provider": "openrouter", @@ -23645,20 +24238,6 @@ "supports_vision": true, "tool_use_system_prompt_tokens": 159 }, - "openrouter/anthropic/claude-3.5-sonnet:beta": { - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 200000, - "max_output_tokens": 8192, - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 1.5e-05, - "supports_computer_use": true, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true, - "tool_use_system_prompt_tokens": 159 - }, "openrouter/anthropic/claude-3.7-sonnet": { "input_cost_per_image": 0.0048, "input_cost_per_token": 3e-06, @@ -23676,31 +24255,6 @@ "supports_vision": true, "tool_use_system_prompt_tokens": 159 }, - "openrouter/anthropic/claude-3.7-sonnet:beta": { - "input_cost_per_image": 0.0048, - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 200000, - "max_output_tokens": 128000, - "max_tokens": 128000, - "mode": "chat", - "output_cost_per_token": 1.5e-05, - "supports_computer_use": true, - "supports_function_calling": true, - "supports_reasoning": true, - "supports_tool_choice": true, - "supports_vision": true, - "tool_use_system_prompt_tokens": 159 - }, - "openrouter/anthropic/claude-instant-v1": { - "input_cost_per_token": 1.63e-06, - "litellm_provider": "openrouter", - "max_output_tokens": 8191, - "max_tokens": 8191, - "mode": "chat", - "output_cost_per_token": 5.51e-06, - "supports_tool_choice": true - }, "openrouter/anthropic/claude-opus-4": { "input_cost_per_image": 0.0048, "cache_creation_input_token_cost": 1.875e-05, @@ -23839,30 +24393,6 @@ "source": "https://openrouter.ai/api/v1/models/bytedance/ui-tars-1.5-7b", "supports_tool_choice": true }, - "openrouter/cognitivecomputations/dolphin-mixtral-8x7b": { - "input_cost_per_token": 5e-07, - "litellm_provider": "openrouter", - "max_tokens": 32769, - "mode": "chat", - "output_cost_per_token": 5e-07, - "supports_tool_choice": true - }, - "openrouter/cohere/command-r-plus": { - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_tokens": 128000, - "mode": "chat", - "output_cost_per_token": 1.5e-05, - "supports_tool_choice": true - }, - "openrouter/databricks/dbrx-instruct": { - "input_cost_per_token": 6e-07, - "litellm_provider": "openrouter", - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 6e-07, - "supports_tool_choice": true - }, "openrouter/deepseek/deepseek-chat": { "input_cost_per_token": 1.4e-07, "litellm_provider": "openrouter", @@ -23930,17 +24460,6 @@ "supports_reasoning": false, "supports_tool_choice": true }, - "openrouter/deepseek/deepseek-coder": { - "input_cost_per_token": 1.4e-07, - "litellm_provider": "openrouter", - "max_input_tokens": 66000, - "max_output_tokens": 4096, - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 2.8e-07, - "supports_prompt_caching": true, - "supports_tool_choice": true - }, "openrouter/deepseek/deepseek-r1": { "input_cost_per_token": 5.5e-07, "input_cost_per_token_cache_hit": 1.4e-07, @@ -23971,14 +24490,6 @@ "supports_reasoning": true, "supports_tool_choice": true }, - "openrouter/fireworks/firellava-13b": { - "input_cost_per_token": 2e-07, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 2e-07, - "supports_tool_choice": true - }, "openrouter/google/gemini-2.0-flash-001": { "deprecation_date": "2026-03-31", "input_cost_per_audio_token": 7e-07, @@ -24140,46 +24651,6 @@ "supports_web_search": true, "tpm": 800000 }, - "openrouter/google/gemini-pro-1.5": { - "input_cost_per_image": 0.00265, - "input_cost_per_token": 2.5e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 1000000, - "max_output_tokens": 8192, - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 7.5e-06, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true - }, - "openrouter/google/gemini-pro-vision": { - "input_cost_per_image": 0.0025, - "input_cost_per_token": 1.25e-07, - "litellm_provider": "openrouter", - "max_tokens": 45875, - "mode": "chat", - "output_cost_per_token": 3.75e-07, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true - }, - "openrouter/google/palm-2-chat-bison": { - "input_cost_per_token": 5e-07, - "litellm_provider": "openrouter", - "max_tokens": 25804, - "mode": "chat", - "output_cost_per_token": 5e-07, - "supports_tool_choice": true - }, - "openrouter/google/palm-2-codechat-bison": { - "input_cost_per_token": 5e-07, - "litellm_provider": "openrouter", - "max_tokens": 20070, - "mode": "chat", - "output_cost_per_token": 5e-07, - "supports_tool_choice": true - }, "openrouter/gryphe/mythomax-l2-13b": { "input_cost_per_token": 1.875e-06, "litellm_provider": "openrouter", @@ -24188,14 +24659,6 @@ "output_cost_per_token": 1.875e-06, "supports_tool_choice": true }, - "openrouter/jondurbin/airoboros-l2-70b-2.1": { - "input_cost_per_token": 1.3875e-05, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 1.3875e-05, - "supports_tool_choice": true - }, "openrouter/mancer/weaver": { "input_cost_per_token": 5.625e-06, "litellm_provider": "openrouter", @@ -24204,30 +24667,6 @@ "output_cost_per_token": 5.625e-06, "supports_tool_choice": true }, - "openrouter/meta-llama/codellama-34b-instruct": { - "input_cost_per_token": 5e-07, - "litellm_provider": "openrouter", - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 5e-07, - "supports_tool_choice": true - }, - "openrouter/meta-llama/llama-2-13b-chat": { - "input_cost_per_token": 2e-07, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 2e-07, - "supports_tool_choice": true - }, - "openrouter/meta-llama/llama-2-70b-chat": { - "input_cost_per_token": 1.5e-06, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 1.5e-06, - "supports_tool_choice": true - }, "openrouter/meta-llama/llama-3-70b-instruct": { "input_cost_per_token": 5.9e-07, "litellm_provider": "openrouter", @@ -24236,38 +24675,6 @@ "output_cost_per_token": 7.9e-07, "supports_tool_choice": true }, - "openrouter/meta-llama/llama-3-70b-instruct:nitro": { - "input_cost_per_token": 9e-07, - "litellm_provider": "openrouter", - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 9e-07, - "supports_tool_choice": true - }, - "openrouter/meta-llama/llama-3-8b-instruct:extended": { - "input_cost_per_token": 2.25e-07, - "litellm_provider": "openrouter", - "max_tokens": 16384, - "mode": "chat", - "output_cost_per_token": 2.25e-06, - "supports_tool_choice": true - }, - "openrouter/meta-llama/llama-3-8b-instruct:free": { - "input_cost_per_token": 0.0, - "litellm_provider": "openrouter", - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 0.0, - "supports_tool_choice": true - }, - "openrouter/microsoft/wizardlm-2-8x22b:nitro": { - "input_cost_per_token": 1e-06, - "litellm_provider": "openrouter", - "max_tokens": 65536, - "mode": "chat", - "output_cost_per_token": 1e-06, - "supports_tool_choice": true - }, "openrouter/minimax/minimax-m2": { "input_cost_per_token": 2.55e-07, "litellm_provider": "openrouter", @@ -24281,20 +24688,6 @@ "supports_reasoning": true, "supports_tool_choice": true }, - "openrouter/mistralai/devstral-2512:free": { - "input_cost_per_image": 0, - "input_cost_per_token": 0, - "litellm_provider": "openrouter", - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "max_tokens": 262144, - "mode": "chat", - "output_cost_per_token": 0, - "supports_function_calling": true, - "supports_prompt_caching": false, - "supports_tool_choice": true, - "supports_vision": false - }, "openrouter/mistralai/devstral-2512": { "input_cost_per_image": 0, "input_cost_per_token": 1.5e-07, @@ -24373,14 +24766,6 @@ "output_cost_per_token": 1.3e-07, "supports_tool_choice": true }, - "openrouter/mistralai/mistral-7b-instruct:free": { - "input_cost_per_token": 0.0, - "litellm_provider": "openrouter", - "max_tokens": 8192, - "mode": "chat", - "output_cost_per_token": 0.0, - "supports_tool_choice": true - }, "openrouter/mistralai/mistral-large": { "input_cost_per_token": 8e-06, "litellm_provider": "openrouter", @@ -24425,16 +24810,9 @@ "source": "https://openrouter.ai/moonshotai/kimi-k2.5", "supports_function_calling": true, "supports_tool_choice": true, + "supports_video_input": true, "supports_vision": true }, - "openrouter/nousresearch/nous-hermes-llama2-13b": { - "input_cost_per_token": 2e-07, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 2e-07, - "supports_tool_choice": true - }, "openrouter/openai/gpt-3.5-turbo": { "input_cost_per_token": 1.5e-06, "litellm_provider": "openrouter", @@ -24459,17 +24837,6 @@ "output_cost_per_token": 6e-05, "supports_tool_choice": true }, - "openrouter/openai/gpt-4-vision-preview": { - "input_cost_per_image": 0.01445, - "input_cost_per_token": 1e-05, - "litellm_provider": "openrouter", - "max_tokens": 130000, - "mode": "chat", - "output_cost_per_token": 3e-05, - "supports_function_calling": true, - "supports_tool_choice": true, - "supports_vision": true - }, "openrouter/openai/gpt-4.1": { "cache_read_input_token_cost": 5e-07, "input_cost_per_token": 2e-06, @@ -24487,23 +24854,6 @@ "supports_tool_choice": true, "supports_vision": true }, - "openrouter/openai/gpt-4.1-2025-04-14": { - "cache_read_input_token_cost": 5e-07, - "input_cost_per_token": 2e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 1047576, - "max_output_tokens": 32768, - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 8e-06, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_prompt_caching": true, - "supports_response_schema": true, - "supports_system_messages": true, - "supports_tool_choice": true, - "supports_vision": true - }, "openrouter/openai/gpt-4.1-mini": { "cache_read_input_token_cost": 1e-07, "input_cost_per_token": 4e-07, @@ -24521,23 +24871,6 @@ "supports_tool_choice": true, "supports_vision": true }, - "openrouter/openai/gpt-4.1-mini-2025-04-14": { - "cache_read_input_token_cost": 1e-07, - "input_cost_per_token": 4e-07, - "litellm_provider": "openrouter", - "max_input_tokens": 1047576, - "max_output_tokens": 32768, - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 1.6e-06, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_prompt_caching": true, - "supports_response_schema": true, - "supports_system_messages": true, - "supports_tool_choice": true, - "supports_vision": true - }, "openrouter/openai/gpt-4.1-nano": { "cache_read_input_token_cost": 2.5e-08, "input_cost_per_token": 1e-07, @@ -24555,23 +24888,6 @@ "supports_tool_choice": true, "supports_vision": true }, - "openrouter/openai/gpt-4.1-nano-2025-04-14": { - "cache_read_input_token_cost": 2.5e-08, - "input_cost_per_token": 1e-07, - "litellm_provider": "openrouter", - "max_input_tokens": 1047576, - "max_output_tokens": 32768, - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 4e-07, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_prompt_caching": true, - "supports_response_schema": true, - "supports_system_messages": true, - "supports_tool_choice": true, - "supports_vision": true - }, "openrouter/openai/gpt-4o": { "input_cost_per_token": 2.5e-06, "litellm_provider": "openrouter", @@ -24643,11 +24959,8 @@ "max_input_tokens": 272000, "max_output_tokens": 128000, "max_tokens": 128000, - "mode": "responses", + "mode": "chat", "output_cost_per_token": 1.4e-05, - "supported_endpoints": [ - "/v1/responses" - ], "supported_modalities": [ "text", "image" @@ -24808,58 +25121,6 @@ "supports_tool_choice": true, "supports_vision": true }, - "openrouter/openai/o1-mini": { - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 128000, - "max_output_tokens": 65536, - "max_tokens": 65536, - "mode": "chat", - "output_cost_per_token": 1.2e-05, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_tool_choice": true, - "supports_vision": false - }, - "openrouter/openai/o1-mini-2024-09-12": { - "input_cost_per_token": 3e-06, - "litellm_provider": "openrouter", - "max_input_tokens": 128000, - "max_output_tokens": 65536, - "max_tokens": 65536, - "mode": "chat", - "output_cost_per_token": 1.2e-05, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_tool_choice": true, - "supports_vision": false - }, - "openrouter/openai/o1-preview": { - "input_cost_per_token": 1.5e-05, - "litellm_provider": "openrouter", - "max_input_tokens": 128000, - "max_output_tokens": 32768, - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 6e-05, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_tool_choice": true, - "supports_vision": false - }, - "openrouter/openai/o1-preview-2024-09-12": { - "input_cost_per_token": 1.5e-05, - "litellm_provider": "openrouter", - "max_input_tokens": 128000, - "max_output_tokens": 32768, - "max_tokens": 32768, - "mode": "chat", - "output_cost_per_token": 6e-05, - "supports_function_calling": true, - "supports_parallel_function_calling": true, - "supports_tool_choice": true, - "supports_vision": false - }, "openrouter/openai/o3-mini": { "input_cost_per_token": 1.1e-06, "litellm_provider": "openrouter", @@ -24888,14 +25149,6 @@ "supports_tool_choice": true, "supports_vision": false }, - "openrouter/pygmalionai/mythalion-13b": { - "input_cost_per_token": 1.875e-06, - "litellm_provider": "openrouter", - "max_tokens": 4096, - "mode": "chat", - "output_cost_per_token": 1.875e-06, - "supports_tool_choice": true - }, "openrouter/qwen/qwen-2.5-coder-32b-instruct": { "input_cost_per_token": 1.8e-07, "litellm_provider": "openrouter", @@ -24987,20 +25240,6 @@ "supports_tool_choice": true, "supports_web_search": true }, - "openrouter/x-ai/grok-4-fast:free": { - "input_cost_per_token": 0, - "litellm_provider": "openrouter", - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "max_tokens": 30000, - "mode": "chat", - "output_cost_per_token": 0, - "source": "https://openrouter.ai/x-ai/grok-4-fast:free", - "supports_function_calling": true, - "supports_reasoning": true, - "supports_tool_choice": true, - "supports_web_search": false - }, "openrouter/z-ai/glm-4.6": { "input_cost_per_token": 4e-07, "litellm_provider": "openrouter", @@ -25873,6 +26112,19 @@ "supports_system_messages": true, "supports_vision": true }, + "qwen.qwen3-coder-next": { + "input_cost_per_token": 5e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 262144, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 1.2e-06, + "supports_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "recraft/recraftv2": { "litellm_provider": "recraft", "mode": "image_generation", @@ -28309,6 +28561,30 @@ "supports_reasoning": true, "supports_tool_choice": false }, + "us.deepseek.v3.2": { + "input_cost_per_token": 6.2e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 1.85e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true + }, + "eu.deepseek.v3.2": { + "input_cost_per_token": 7.4e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "max_tokens": 163840, + "mode": "chat", + "output_cost_per_token": 2.22e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_tool_choice": true + }, "us.meta.llama3-1-405b-instruct-v1:0": { "input_cost_per_token": 5.32e-06, "litellm_provider": "bedrock", @@ -30735,6 +31011,21 @@ "supports_reasoning": true, "supports_tool_choice": true }, + "vertex_ai/zai-org/glm-5-maas": { + "cache_read_input_token_cost": 1e-07, + "input_cost_per_token": 1e-06, + "litellm_provider": "vertex_ai-zai_models", + "max_input_tokens": 200000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 3.2e-06, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#glm-models", + "supports_function_calling": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_tool_choice": true + }, "vertex_ai/mistral-medium-3": { "input_cost_per_token": 4e-07, "litellm_provider": "vertex_ai-mistral_models", @@ -32238,6 +32529,20 @@ "supports_vision": true, "supports_web_search": true }, + "zai.glm-4.7": { + "input_cost_per_token": 6e-07, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 200000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 2.2e-06, + "supports_function_calling": true, + "supports_reasoning": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "source": "https://aws.amazon.com/bedrock/pricing/" + }, "zai/glm-4.7": { "cache_creation_input_token_cost": 0, "cache_read_input_token_cost": 1.1e-07, @@ -32390,6 +32695,23 @@ "1280x720" ] }, + "openai/sora-2-pro-high-res": { + "litellm_provider": "openai", + "mode": "video_generation", + "output_cost_per_video_per_second": 0.5, + "source": "https://platform.openai.com/docs/api-reference/videos", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "video" + ], + "supported_resolutions": [ + "1024x1792", + "1792x1024" + ] + }, "azure/sora-2": { "litellm_provider": "azure", "mode": "video_generation", @@ -35911,5 +36233,723 @@ "mode": "chat", "output_cost_per_token": 0, "supports_reasoning": true + }, + "tts-1-1106": { + "input_cost_per_character": 1.5e-05, + "litellm_provider": "openai", + "mode": "audio_speech", + "supported_endpoints": [ + "/v1/audio/speech" + ] + }, + "tts-1-hd-1106": { + "input_cost_per_character": 3e-05, + "litellm_provider": "openai", + "mode": "audio_speech", + "supported_endpoints": [ + "/v1/audio/speech" + ] + }, + "gpt-4o-mini-tts-2025-03-20": { + "input_cost_per_token": 2.5e-06, + "litellm_provider": "openai", + "mode": "audio_speech", + "output_cost_per_audio_token": 1.2e-05, + "output_cost_per_second": 0.00025, + "output_cost_per_token": 1e-05, + "supported_endpoints": [ + "/v1/audio/speech" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "audio" + ] + }, + "gpt-4o-mini-tts-2025-12-15": { + "input_cost_per_token": 2.5e-06, + "litellm_provider": "openai", + "mode": "audio_speech", + "output_cost_per_audio_token": 1.2e-05, + "output_cost_per_second": 0.00025, + "output_cost_per_token": 1e-05, + "supported_endpoints": [ + "/v1/audio/speech" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "audio" + ] + }, + "gpt-4o-mini-transcribe-2025-03-20": { + "input_cost_per_audio_token": 3e-06, + "input_cost_per_token": 1.25e-06, + "litellm_provider": "openai", + "max_input_tokens": 16000, + "max_output_tokens": 2000, + "mode": "audio_transcription", + "output_cost_per_token": 5e-06, + "supported_endpoints": [ + "/v1/audio/transcriptions" + ] + }, + "gpt-4o-mini-transcribe-2025-12-15": { + "input_cost_per_audio_token": 3e-06, + "input_cost_per_token": 1.25e-06, + "litellm_provider": "openai", + "max_input_tokens": 16000, + "max_output_tokens": 2000, + "mode": "audio_transcription", + "output_cost_per_token": 5e-06, + "supported_endpoints": [ + "/v1/audio/transcriptions" + ] + }, + "gpt-5-search-api": { + "cache_read_input_token_cost": 1.25e-07, + "input_cost_per_token": 1.25e-06, + "litellm_provider": "openai", + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 1e-05, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "supports_web_search": true + }, + "gpt-5-search-api-2025-10-14": { + "cache_read_input_token_cost": 1.25e-07, + "input_cost_per_token": 1.25e-06, + "litellm_provider": "openai", + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 1e-05, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "supports_web_search": true + }, + "gpt-realtime-mini-2025-10-06": { + "cache_creation_input_audio_token_cost": 3e-07, + "cache_read_input_audio_token_cost": 3e-07, + "cache_read_input_token_cost": 6e-08, + "input_cost_per_audio_token": 1e-05, + "input_cost_per_image": 8e-07, + "input_cost_per_token": 6e-07, + "litellm_provider": "openai", + "max_input_tokens": 128000, + "max_output_tokens": 4096, + "max_tokens": 4096, + "mode": "chat", + "output_cost_per_audio_token": 2e-05, + "output_cost_per_token": 2.4e-06, + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "image", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "gpt-realtime-mini-2025-12-15": { + "cache_creation_input_audio_token_cost": 3e-07, + "cache_read_input_audio_token_cost": 3e-07, + "cache_read_input_token_cost": 6e-08, + "input_cost_per_audio_token": 1e-05, + "input_cost_per_image": 8e-07, + "input_cost_per_token": 6e-07, + "litellm_provider": "openai", + "max_input_tokens": 128000, + "max_output_tokens": 4096, + "max_tokens": 4096, + "mode": "chat", + "output_cost_per_audio_token": 2e-05, + "output_cost_per_token": 2.4e-06, + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "image", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "sora-2": { + "litellm_provider": "openai", + "mode": "video_generation", + "output_cost_per_video_per_second": 0.1, + "source": "https://platform.openai.com/docs/api-reference/videos", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "video" + ], + "supported_resolutions": [ + "720x1280", + "1280x720" + ] + }, + "sora-2-pro": { + "litellm_provider": "openai", + "mode": "video_generation", + "output_cost_per_video_per_second": 0.3, + "source": "https://platform.openai.com/docs/api-reference/videos", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "video" + ], + "supported_resolutions": [ + "720x1280", + "1280x720" + ] + }, + "sora-2-pro-high-res": { + "litellm_provider": "openai", + "mode": "video_generation", + "output_cost_per_video_per_second": 0.5, + "source": "https://platform.openai.com/docs/api-reference/videos", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "video" + ], + "supported_resolutions": [ + "1024x1792", + "1792x1024" + ] + }, + "chatgpt-image-latest": { + "cache_read_input_image_token_cost": 2.5e-06, + "cache_read_input_token_cost": 1.25e-06, + "input_cost_per_image_token": 1e-05, + "input_cost_per_token": 5e-06, + "litellm_provider": "openai", + "mode": "image_generation", + "output_cost_per_image_token": 4e-05, + "supported_endpoints": [ + "/v1/images/generations", + "/v1/images/edits" + ] + }, + "gemini-2.0-flash-exp-image-generation": { + "input_cost_per_token": 0.0, + "litellm_provider": "gemini", + "max_images_per_prompt": 3000, + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "max_tokens": 32768, + "mode": "image_generation", + "output_cost_per_image": 0.039, + "output_cost_per_token": 0.0, + "source": "https://ai.google.dev/pricing", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "text", + "image" + ], + "supports_vision": true + }, + "gemini/gemini-2.0-flash-exp-image-generation": { + "input_cost_per_token": 0.0, + "litellm_provider": "gemini", + "max_images_per_prompt": 3000, + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "max_tokens": 32768, + "mode": "image_generation", + "output_cost_per_image": 0.039, + "output_cost_per_token": 0.0, + "source": "https://ai.google.dev/pricing", + "supported_modalities": [ + "text", + "image" + ], + "supported_output_modalities": [ + "text", + "image" + ], + "supports_vision": true, + "tpm": 250000, + "rpm": 10 + }, + "gemini/gemini-2.0-flash-lite-001": { + "cache_read_input_token_cost": 1.875e-08, + "deprecation_date": "2026-03-31", + "input_cost_per_audio_token": 7.5e-08, + "input_cost_per_token": 7.5e-08, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_pdf_size_mb": 50, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_token": 3e-07, + "rpm": 4000, + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.0-flash-lite", + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": true, + "supports_function_calling": true, + "supports_prompt_caching": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 4000000 + }, + "gemini-2.5-flash-native-audio-latest": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true + }, + "gemini-2.5-flash-native-audio-preview-09-2025": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true + }, + "gemini-2.5-flash-native-audio-preview-12-2025": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true + }, + "gemini/gemini-2.5-flash-native-audio-latest": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true, + "tpm": 250000, + "rpm": 10 + }, + "gemini/gemini-2.5-flash-native-audio-preview-09-2025": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true, + "tpm": 250000, + "rpm": 10 + }, + "gemini/gemini-2.5-flash-native-audio-preview-12-2025": { + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_input_tokens": 1048576, + "max_output_tokens": 8192, + "max_tokens": 8192, + "mode": "chat", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/realtime" + ], + "supported_modalities": [ + "text", + "audio" + ], + "supported_output_modalities": [ + "text", + "audio" + ], + "supports_audio_input": true, + "supports_audio_output": true, + "tpm": 250000, + "rpm": 10 + }, + "gemini-2.5-flash-preview-tts": { + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "mode": "audio_speech", + "output_cost_per_token": 2.5e-06, + "source": "https://ai.google.dev/pricing", + "supported_endpoints": [ + "/v1/audio/speech" + ] + }, + "gemini-flash-latest": { + "cache_read_input_token_cost": 3e-08, + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 2.5e-06, + "output_cost_per_token": 2.5e-06, + "rpm": 100000, + "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": false, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 8000000 + }, + "gemini-flash-lite-latest": { + "cache_read_input_token_cost": 1e-08, + "input_cost_per_audio_token": 3e-07, + "input_cost_per_token": 1e-07, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 4e-07, + "output_cost_per_token": 4e-07, + "rpm": 15, + "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": false, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 250000 + }, + "gemini-pro-latest": { + "cache_read_input_token_cost": 1.25e-07, + "cache_read_input_token_cost_above_200k_tokens": 2.5e-07, + "input_cost_per_token": 1.25e-06, + "input_cost_per_token_above_200k_tokens": 2.5e-06, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_token": 1e-05, + "output_cost_per_token_above_200k_tokens": 1.5e-05, + "rpm": 2000, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 800000 + }, + "gemini/gemini-pro-latest": { + "cache_read_input_token_cost": 1.25e-07, + "cache_read_input_token_cost_above_200k_tokens": 2.5e-07, + "input_cost_per_token": 1.25e-06, + "input_cost_per_token_above_200k_tokens": 2.5e-06, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_token": 1e-05, + "output_cost_per_token_above_200k_tokens": 1.5e-05, + "rpm": 2000, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 800000 + }, + "gemini-exp-1206": { + "cache_read_input_token_cost": 3e-08, + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 3e-07, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 2.5e-06, + "output_cost_per_token": 2.5e-06, + "rpm": 100000, + "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": false, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 8000000 } } diff --git a/litellm/policy_templates_backup.json b/litellm/policy_templates_backup.json new file mode 100644 index 00000000000..a0ffd6acd30 --- /dev/null +++ b/litellm/policy_templates_backup.json @@ -0,0 +1,678 @@ +[ + { + "id": "advanced-au-pii-protection", + "title": "Advanced PII Protection (Australia)", + "description": "Protects Australian-specific identifiers, international employee data, financial information, credentials, protected class information, and industry-specific sensitive data.", + "icon": "ShieldCheckIcon", + "iconColor": "text-purple-500", + "iconBg": "bg-purple-50", + "guardrails": [ + "au-pii-tax-identifiers", + "au-pii-passports", + "international-pii-identifiers", + "contact-information-pii", + "financial-pii", + "credentials-api-keys", + "network-infrastructure-pii", + "protected-class-information" + ], + "complexity": "High", + "guardrailDefinitions": [ + { + "guardrail_name": "au-pii-tax-identifiers", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + { + "pattern_type": "prebuilt", + "pattern_name": "au_tfn", + "action": "MASK" + }, + { + "pattern_type": "prebuilt", + "pattern_name": "au_abn", + "action": "MASK" + }, + { + "pattern_type": "prebuilt", + "pattern_name": "au_medicare", + "action": "MASK" + } + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "Masks Australian Tax File Numbers, Business Numbers, and Medicare Numbers" + } + }, + { + "guardrail_name": "au-pii-passports", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + { + "pattern_type": "prebuilt", + "pattern_name": "passport_australia", + "action": "MASK" + } + ], + "pattern_redaction_format": "[PASSPORT_REDACTED]" + }, + "guardrail_info": { + "description": "Masks Australian passport numbers" + } + }, + { + "guardrail_name": "international-pii-identifiers", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "us_ssn", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "us_ssn_no_dash", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_us", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_uk", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_germany", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_france", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_netherlands", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "nl_bsn_contextual", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_china", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_india", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_japan", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "passport_canada", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_cpf", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_cpf_unformatted", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_rg", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_cnpj", "action": "MASK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "Masks international PII identifiers including passports and national IDs" + } + }, + { + "guardrail_name": "contact-information-pii", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "email", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "us_phone", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_phone_landline", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_phone_mobile", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "street_address", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "br_cep", "action": "MASK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "Masks contact information including emails, phone numbers, and addresses" + } + }, + { + "guardrail_name": "financial-pii", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "visa", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "mastercard", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "amex", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "discover", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "credit_card", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "iban", "action": "MASK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "Masks financial information including credit cards and bank account numbers" + } + }, + { + "guardrail_name": "credentials-api-keys", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "aws_access_key", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "aws_secret_key", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "github_token", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "slack_token", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "generic_api_key", "action": "BLOCK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": { + "description": "Blocks requests containing API keys and credentials (AWS, GitHub, Slack)" + } + }, + { + "guardrail_name": "network-infrastructure-pii", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "ipv4", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "ipv6", "action": "MASK"} + ], + "pattern_redaction_format": "[INTERNAL_IP_REDACTED]" + }, + "guardrail_info": { + "description": "Masks IP addresses in requests" + } + }, + { + "guardrail_name": "protected-class-information", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "gender_sexual_orientation", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "race_ethnicity_national_origin", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "religion", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "age_discrimination", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "disability", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "marital_family_status", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "military_status", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "public_assistance", "action": "MASK"} + ], + "pattern_redaction_format": "[PROTECTED_CLASS_INFO_REDACTED]" + }, + "guardrail_info": { + "description": "Masks protected class information for HR compliance and anti-discrimination" + } + } + ], + "templateData": { + "policy_name": "advanced-pii-protection-australia", + "description": "Comprehensive PII detection and masking policy for Australia. Protects Australian-specific identifiers, international employee data, financial information, credentials, protected class information, and industry-specific sensitive data.", + "guardrails_add": [ + "au-pii-tax-identifiers", + "au-pii-passports", + "international-pii-identifiers", + "contact-information-pii", + "financial-pii", + "credentials-api-keys", + "network-infrastructure-pii", + "protected-class-information" + ], + "guardrails_remove": [] + } + }, + { + "id": "baseline-pii-protection", + "title": "Baseline PII Protection", + "description": "Baseline PII protection for internal tools and testing. Focuses on credentials and high-risk identifiers only. Suitable for non-sensitive internal use.", + "icon": "ShieldCheckIcon", + "iconColor": "text-blue-500", + "iconBg": "bg-blue-50", + "guardrails": [ + "au-pii-tax-identifiers", + "credentials-api-keys", + "financial-pii" + ], + "complexity": "Low", + "guardrailDefinitions": [ + { + "guardrail_name": "au-pii-tax-identifiers", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "au_tfn", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "au_abn", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "au_medicare", "action": "MASK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": {"description": "Masks Australian Tax File Numbers, Business Numbers, and Medicare Numbers"} + }, + { + "guardrail_name": "credentials-api-keys", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "aws_access_key", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "aws_secret_key", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "github_token", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "slack_token", "action": "BLOCK"}, + {"pattern_type": "prebuilt", "pattern_name": "generic_api_key", "action": "BLOCK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": {"description": "Blocks requests containing API keys and credentials (AWS, GitHub, Slack)"} + }, + { + "guardrail_name": "financial-pii", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "patterns": [ + {"pattern_type": "prebuilt", "pattern_name": "visa", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "mastercard", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "amex", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "discover", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "credit_card", "action": "MASK"}, + {"pattern_type": "prebuilt", "pattern_name": "iban", "action": "MASK"} + ], + "pattern_redaction_format": "[{pattern_name}_REDACTED]" + }, + "guardrail_info": {"description": "Masks financial information including credit cards and bank account numbers"} + } + ], + "templateData": { + "policy_name": "baseline-pii-protection", + "description": "Baseline PII protection for internal tools and testing. Focuses on credentials and high-risk identifiers only.", + "guardrails_add": [ + "au-pii-tax-identifiers", + "credentials-api-keys", + "financial-pii" + ], + "guardrails_remove": [] + } + }, + { + "id": "nsfw-content-filter-australia", + "title": "NSFW Content Filter (Australia)", + "description": "Blocks profanity, sexual content, NSFW requests, self-harm content, and child safety violations using English and Australian-specific slang. Protects against inappropriate content including sexual solicitation, explicit content, Australian profanity, self-harm, and content involving minors.", + "icon": "ShieldExclamationIcon", + "iconColor": "text-red-500", + "iconBg": "bg-red-50", + "guardrails": [ + "nsfw-content-filter-english", + "nsfw-content-filter-australian", + "nsfw-self-harm-filter", + "nsfw-child-safety-filter", + "nsfw-racial-bias-filter" + ], + "complexity": "Medium", + "guardrailDefinitions": [ + { + "guardrail_name": "nsfw-content-filter-english", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks profanity, sexual content, slurs, and NSFW terms in English" + } + }, + { + "guardrail_name": "nsfw-content-filter-australian", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse_au", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks Australian-specific slang and profanity (root, perv, bogan, wanker, etc.)" + } + }, + { + "guardrail_name": "nsfw-self-harm-filter", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_self_harm", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks content related to self-harm, suicide, and eating disorders" + } + }, + { + "guardrail_name": "nsfw-child-safety-filter", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_child_safety", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks inappropriate content involving minors using identifier + block word combinations" + } + }, + { + "guardrail_name": "nsfw-racial-bias-filter", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "bias_racial", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks racial and ethnic discrimination, hate speech, and supremacist content" + } + } + ], + "templateData": { + "policy_name": "nsfw-content-filter-australia", + "description": "NSFW content filter for Australia. Blocks profanity, sexual content, inappropriate requests, self-harm content, child safety violations, and racial bias in English and Australian slang.", + "guardrails_add": [ + "nsfw-content-filter-english", + "nsfw-content-filter-australian", + "nsfw-self-harm-filter", + "nsfw-child-safety-filter", + "nsfw-racial-bias-filter" + ], + "guardrails_remove": [] + } + }, + { + "id": "nsfw-content-filter-basic", + "title": "NSFW Content Filter (Basic)", + "description": "Basic NSFW content filtering for English only. Blocks profanity, sexual content, slurs, solicitation, explicit requests, self-harm content, and child safety violations. Suitable for most applications requiring content moderation.", + "icon": "ShieldExclamationIcon", + "iconColor": "text-orange-500", + "iconBg": "bg-orange-50", + "guardrails": [ + "nsfw-content-filter-english-only", + "nsfw-self-harm-filter-basic", + "nsfw-child-safety-filter-basic", + "nsfw-racial-bias-filter-basic" + ], + "complexity": "Low", + "guardrailDefinitions": [ + { + "guardrail_name": "nsfw-content-filter-english-only", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks profanity, sexual content, slurs, and NSFW terms. Includes 485+ keywords covering explicit content, solicitation, sexual behavior, and exploitation." + } + }, + { + "guardrail_name": "nsfw-self-harm-filter-basic", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_self_harm", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks content related to self-harm, suicide, and eating disorders" + } + }, + { + "guardrail_name": "nsfw-child-safety-filter-basic", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_child_safety", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks inappropriate content involving minors using identifier + block word combinations" + } + }, + { + "guardrail_name": "nsfw-racial-bias-filter-basic", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "bias_racial", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks racial and ethnic discrimination, hate speech, and supremacist content" + } + } + ], + "templateData": { + "policy_name": "nsfw-content-filter-basic", + "description": "Basic NSFW content filter. Blocks profanity, sexual content, inappropriate requests, self-harm content, child safety violations, and racial bias in English.", + "guardrails_add": [ + "nsfw-content-filter-english-only", + "nsfw-self-harm-filter-basic", + "nsfw-child-safety-filter-basic", + "nsfw-racial-bias-filter-basic" + ], + "guardrails_remove": [] + } + }, + { + "id": "nsfw-content-filter-all-regions", + "title": "NSFW Content Filter (All Regions)", + "description": "Comprehensive multi-language NSFW content filtering. Blocks profanity, sexual content, inappropriate requests, self-harm content, and child safety violations in English, Spanish, French, German, and Australian. Best for global applications.", + "icon": "ShieldExclamationIcon", + "iconColor": "text-purple-500", + "iconBg": "bg-purple-50", + "guardrails": [ + "nsfw-filter-english", + "nsfw-filter-spanish", + "nsfw-filter-french", + "nsfw-filter-german", + "nsfw-filter-australian", + "nsfw-self-harm-filter-global", + "nsfw-child-safety-filter-global", + "nsfw-racial-bias-filter-global" + ], + "complexity": "High", + "guardrailDefinitions": [ + { + "guardrail_name": "nsfw-filter-english", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "English profanity, sexual content, slurs, and NSFW terms (485+ keywords)" + } + }, + { + "guardrail_name": "nsfw-filter-spanish", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse_es", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Spanish profanity and offensive terms (68 keywords)" + } + }, + { + "guardrail_name": "nsfw-filter-french", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse_fr", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "French profanity and offensive terms (91 keywords)" + } + }, + { + "guardrail_name": "nsfw-filter-german", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse_de", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "German profanity and offensive terms (65 keywords)" + } + }, + { + "guardrail_name": "nsfw-filter-australian", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harm_toxic_abuse_au", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Australian slang and profanity (32 keywords: root, perv, bogan, wanker, etc.)" + } + }, + { + "guardrail_name": "nsfw-self-harm-filter-global", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_self_harm", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks content related to self-harm, suicide, and eating disorders" + } + }, + { + "guardrail_name": "nsfw-child-safety-filter-global", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "harmful_child_safety", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks inappropriate content involving minors using identifier + block word combinations" + } + }, + { + "guardrail_name": "nsfw-racial-bias-filter-global", + "litellm_params": { + "guardrail": "litellm_content_filter", + "mode": "pre_call", + "categories": [ + { + "category": "bias_racial", + "enabled": true, + "action": "BLOCK", + "severity_threshold": "medium" + } + ] + }, + "guardrail_info": { + "description": "Blocks racial and ethnic discrimination, hate speech, and supremacist content" + } + } + ], + "templateData": { + "policy_name": "nsfw-content-filter-all-regions", + "description": "Comprehensive multi-language NSFW content filter. Blocks profanity, inappropriate content, self-harm, child safety violations, and racial bias in English, Spanish, French, German, and Australian. Total coverage: 741+ keywords across all languages plus self-harm, child safety, and racial bias protection.", + "guardrails_add": [ + "nsfw-filter-english", + "nsfw-filter-spanish", + "nsfw-filter-french", + "nsfw-filter-german", + "nsfw-filter-australian", + "nsfw-self-harm-filter-global", + "nsfw-child-safety-filter-global", + "nsfw-racial-bias-filter-global" + ], + "guardrails_remove": [] + } + } +] diff --git a/litellm/proxy/_experimental/mcp_server/auth/user_api_key_auth_mcp.py b/litellm/proxy/_experimental/mcp_server/auth/user_api_key_auth_mcp.py index 786cfbfb008..ed4fb133478 100644 --- a/litellm/proxy/_experimental/mcp_server/auth/user_api_key_auth_mcp.py +++ b/litellm/proxy/_experimental/mcp_server/auth/user_api_key_auth_mcp.py @@ -6,7 +6,12 @@ from starlette.requests import Request from starlette.types import Scope from litellm._logging import verbose_logger -from litellm.proxy._types import LiteLLM_TeamTable, ProxyException, SpecialHeaders, UserAPIKeyAuth +from litellm.proxy._types import ( + LiteLLM_TeamTable, + ProxyException, + SpecialHeaders, + UserAPIKeyAuth, +) from litellm.proxy.auth.user_api_key_auth import user_api_key_auth @@ -372,45 +377,31 @@ class MCPRequestHandler: return [] @staticmethod - async def _get_key_object_permission( + def _get_key_object_permission( user_api_key_auth: Optional[UserAPIKeyAuth] = None, ): - """Helper to get key object_permission from cache or DB.""" - from litellm.proxy.auth.auth_checks import get_object_permission - from litellm.proxy.proxy_server import ( - prisma_client, - proxy_logging_obj, - user_api_key_cache, - ) + """ + Get key object_permission - already loaded by get_key_object() in main auth flow. + Note: object_permission is automatically populated when the key is fetched via + get_key_object() in litellm/proxy/auth/auth_checks.py + """ if not user_api_key_auth: return None - # Already loaded - if user_api_key_auth.object_permission: - return user_api_key_auth.object_permission - - # Need to fetch from DB - if user_api_key_auth.object_permission_id and prisma_client: - return await get_object_permission( - object_permission_id=user_api_key_auth.object_permission_id, - prisma_client=prisma_client, - user_api_key_cache=user_api_key_cache, - parent_otel_span=user_api_key_auth.parent_otel_span, - proxy_logging_obj=proxy_logging_obj, - ) - - return None + return user_api_key_auth.object_permission @staticmethod async def _get_team_object_permission( user_api_key_auth: Optional[UserAPIKeyAuth] = None, ): - """Helper to get team object_permission from cache or DB.""" - from litellm.proxy.auth.auth_checks import ( - get_object_permission, - get_team_object, - ) + """ + Get team object_permission - automatically loaded by get_team_object() in main auth flow. + + Note: object_permission is automatically populated when the team is fetched via + get_team_object() in litellm/proxy/auth/auth_checks.py + """ + from litellm.proxy.auth.auth_checks import get_team_object from litellm.proxy.proxy_server import ( prisma_client, proxy_logging_obj, @@ -423,7 +414,7 @@ class MCPRequestHandler: if not user_api_key_auth or not user_api_key_auth.team_id or not prisma_client: return None - # First get the team object (which may have object_permission already loaded) + # Get the team object (which has object_permission already loaded) team_obj: Optional[LiteLLM_TeamTable] = await get_team_object( team_id=user_api_key_auth.team_id, prisma_client=prisma_client, @@ -435,21 +426,7 @@ class MCPRequestHandler: if not team_obj: return None - # Already loaded - if team_obj.object_permission: - return team_obj.object_permission - - # Need to fetch from DB using object_permission_id - if team_obj.object_permission_id: - return await get_object_permission( - object_permission_id=team_obj.object_permission_id, - prisma_client=prisma_client, - user_api_key_cache=user_api_key_cache, - parent_otel_span=user_api_key_auth.parent_otel_span, - proxy_logging_obj=proxy_logging_obj, - ) - - return None + return team_obj.object_permission @staticmethod async def get_allowed_tools_for_server( @@ -471,8 +448,8 @@ class MCPRequestHandler: return None try: - # Get key and team object permissions - key_obj_perm = await MCPRequestHandler._get_key_object_permission( + # Get key and team object permissions (already loaded in main auth flow) + key_obj_perm = MCPRequestHandler._get_key_object_permission( user_api_key_auth ) team_obj_perm = await MCPRequestHandler._get_team_object_permission( @@ -559,9 +536,25 @@ class MCPRequestHandler: user_api_key_auth: Optional[UserAPIKeyAuth] = None, ) -> List[str]: try: - key_object_permission = await MCPRequestHandler._get_key_object_permission( + # Get key object permission (already loaded in main auth flow, or fetch from DB) + key_object_permission = MCPRequestHandler._get_key_object_permission( user_api_key_auth ) + if key_object_permission is None and user_api_key_auth and user_api_key_auth.object_permission_id: + from litellm.proxy.auth.auth_checks import get_object_permission + from litellm.proxy.proxy_server import ( + prisma_client, + proxy_logging_obj, + user_api_key_cache, + ) + if prisma_client is not None: + key_object_permission = await get_object_permission( + object_permission_id=user_api_key_auth.object_permission_id, + prisma_client=prisma_client, + user_api_key_cache=user_api_key_cache, + parent_otel_span=user_api_key_auth.parent_otel_span, + proxy_logging_obj=proxy_logging_obj, + ) if key_object_permission is None: return [] @@ -591,12 +584,10 @@ class MCPRequestHandler: """ Get allowed MCP servers for a team. - Uses the helper _get_team_object_permission which: - 1. First checks if object_permission is already loaded on the team - 2. If not, fetches from DB using object_permission_id if it exists + Note: object_permission is automatically loaded by get_team_object() in main auth flow. """ try: - # Use the helper method that properly handles fetching from DB if needed + # Get team object permission (already loaded in main auth flow) object_permissions = await MCPRequestHandler._get_team_object_permission( user_api_key_auth ) diff --git a/litellm/proxy/_experimental/mcp_server/discoverable_endpoints.py b/litellm/proxy/_experimental/mcp_server/discoverable_endpoints.py index bdf4cc312d9..b731bc7bc2f 100644 --- a/litellm/proxy/_experimental/mcp_server/discoverable_endpoints.py +++ b/litellm/proxy/_experimental/mcp_server/discoverable_endpoints.py @@ -1,6 +1,6 @@ import json from typing import Optional -from urllib.parse import urlencode, urlparse, urlunparse +from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse from fastapi import APIRouter, Form, HTTPException, Request from fastapi.responses import HTMLResponse, JSONResponse, RedirectResponse @@ -194,7 +194,13 @@ async def authorize_with_server( if code_challenge_method: params["code_challenge_method"] = code_challenge_method - return RedirectResponse(f"{mcp_server.authorization_url}?{urlencode(params)}") + parsed_auth_url = urlparse(mcp_server.authorization_url) + existing_params = dict(parse_qsl(parsed_auth_url.query)) + existing_params.update(params) + final_url = urlunparse( + parsed_auth_url._replace(query=urlencode(existing_params)) + ) + return RedirectResponse(final_url) async def exchange_token_with_server( @@ -492,7 +498,7 @@ def _build_oauth_protected_resource_response( ) ], "resource": resource_url, - "scopes_supported": mcp_server.scopes if mcp_server else [], + "scopes_supported": mcp_server.scopes if mcp_server and mcp_server.scopes else [], } @@ -599,7 +605,7 @@ def _build_oauth_authorization_server_response( "authorization_endpoint": authorization_endpoint, "token_endpoint": token_endpoint, "response_types_supported": ["code"], - "scopes_supported": mcp_server.scopes if mcp_server else [], + "scopes_supported": mcp_server.scopes if mcp_server and mcp_server.scopes else [], "grant_types_supported": ["authorization_code", "refresh_token"], "code_challenge_methods_supported": ["S256"], "token_endpoint_auth_methods_supported": ["client_secret_post"], diff --git a/litellm/proxy/_experimental/mcp_server/mcp_debug.py b/litellm/proxy/_experimental/mcp_server/mcp_debug.py new file mode 100644 index 00000000000..46741a9df98 --- /dev/null +++ b/litellm/proxy/_experimental/mcp_server/mcp_debug.py @@ -0,0 +1,329 @@ +""" +MCP OAuth2 Debug Headers +======================== + +Client-side debugging for MCP authentication flows. + +When a client sends the ``x-litellm-mcp-debug: true`` header, LiteLLM +returns masked diagnostic headers in the response so operators can +troubleshoot OAuth2 issues without SSH access to the gateway. + +Response headers returned (all values are masked for safety): + + x-mcp-debug-inbound-auth + Which inbound auth headers were present and how they were classified. + Example: ``x-litellm-api-key=Bearer sk-12****1234`` + + x-mcp-debug-oauth2-token + The OAuth2 token extracted from the Authorization header (masked). + Shows ``(none)`` if absent, or flags ``SAME_AS_LITELLM_KEY`` when + the LiteLLM API key is accidentally leaking to the MCP server. + + x-mcp-debug-auth-resolution + Which auth priority was used for the outbound MCP call: + ``per-request-header``, ``m2m-client-credentials``, ``static-token``, + ``oauth2-passthrough``, or ``no-auth``. + + x-mcp-debug-outbound-url + The upstream MCP server URL that will receive the request. + + x-mcp-debug-server-auth-type + The ``auth_type`` configured on the MCP server (e.g. ``oauth2``, + ``bearer_token``, ``none``). + +Debugging Guide +--------------- + +**Common issue: LiteLLM API key leaking to the MCP server** + +Symptom: ``x-mcp-debug-oauth2-token`` shows ``SAME_AS_LITELLM_KEY``. + +This means the ``Authorization`` header carries the LiteLLM API key and +it's being forwarded to the upstream MCP server instead of an OAuth2 token. + +Fix: Move the LiteLLM key to ``x-litellm-api-key`` so the ``Authorization`` +header is free for OAuth2 discovery:: + + # WRONG — blocks OAuth2 discovery + claude mcp add --transport http my_server http://proxy/mcp/server \\ + --header "Authorization: Bearer sk-..." + + # CORRECT — LiteLLM key in dedicated header, Authorization free for OAuth2 + claude mcp add --transport http my_server http://proxy/mcp/server \\ + --header "x-litellm-api-key: Bearer sk-..." \\ + --header "x-litellm-mcp-debug: true" + +**Common issue: No OAuth2 token present** + +Symptom: ``x-mcp-debug-oauth2-token`` shows ``(none)`` and +``x-mcp-debug-auth-resolution`` shows ``no-auth``. + +This means the client didn't go through the OAuth2 flow. Check that: +1. The ``Authorization`` header is NOT set as a static header in the client config. +2. The ``.well-known/oauth-protected-resource`` endpoint returns valid metadata. +3. The MCP server in LiteLLM config has ``auth_type: oauth2``. + +**Common issue: M2M token used instead of user token** + +Symptom: ``x-mcp-debug-auth-resolution`` shows ``m2m-client-credentials``. + +This means the server has ``client_id``/``client_secret``/``token_url`` +configured and LiteLLM is fetching a machine-to-machine token instead of +using the per-user OAuth2 token. If you want per-user tokens, remove the +client credentials from the server config. + +Usage from Claude Code:: + + claude mcp add --transport http my_server http://proxy/mcp/server \\ + --header "x-litellm-api-key: Bearer sk-..." \\ + --header "x-litellm-mcp-debug: true" + +Usage with curl:: + + curl -H "x-litellm-mcp-debug: true" \\ + -H "x-litellm-api-key: Bearer sk-..." \\ + http://localhost:4000/mcp/atlassian_mcp +""" + +from typing import TYPE_CHECKING, Dict, List, Optional + +from starlette.types import Message, Send + +from litellm.litellm_core_utils.sensitive_data_masker import SensitiveDataMasker + +if TYPE_CHECKING: + from litellm.types.mcp_server.mcp_server_manager import MCPServer + +# Header the client sends to opt into debug mode +MCP_DEBUG_REQUEST_HEADER = "x-litellm-mcp-debug" + +# Prefix for all debug response headers +_RESPONSE_HEADER_PREFIX = "x-mcp-debug" + + +class MCPDebug: + """ + Static helper class for MCP OAuth2 debug headers. + + Provides opt-in client-side diagnostics by injecting masked + authentication info into HTTP response headers. + """ + + # Masker: show first 6 and last 4 chars so you can distinguish token types + # e.g. "Bearer****ef01" vs "sk-123****cdef" + _masker = SensitiveDataMasker( + sensitive_patterns={ + "authorization", + "token", + "key", + "secret", + "auth", + "bearer", + }, + visible_prefix=6, + visible_suffix=4, + ) + + @staticmethod + def _mask(value: Optional[str]) -> str: + """Mask a single value for safe display in headers.""" + if not value: + return "(none)" + return MCPDebug._masker._mask_value(value) + + @staticmethod + def is_debug_enabled(headers: Dict[str, str]) -> bool: + """ + Check if the client opted into MCP debug mode. + + Looks for ``x-litellm-mcp-debug: true`` (case-insensitive) in the + request headers. + """ + for key, val in headers.items(): + if key.lower() == MCP_DEBUG_REQUEST_HEADER: + return val.strip().lower() in ("true", "1", "yes") + return False + + @staticmethod + def resolve_auth_resolution( + server: "MCPServer", + mcp_auth_header: Optional[str], + mcp_server_auth_headers: Optional[Dict[str, Dict[str, str]]], + oauth2_headers: Optional[Dict[str, str]], + ) -> str: + """ + Determine which auth priority will be used for the outbound MCP call. + + Returns one of: ``per-request-header``, ``m2m-client-credentials``, + ``static-token``, ``oauth2-passthrough``, or ``no-auth``. + """ + from litellm.types.mcp import MCPAuth + + has_server_specific = bool( + mcp_server_auth_headers + and ( + mcp_server_auth_headers.get(server.alias or "") + or mcp_server_auth_headers.get(server.server_name or "") + ) + ) + if has_server_specific or mcp_auth_header: + return "per-request-header" + if server.has_client_credentials: + return "m2m-client-credentials" + if server.authentication_token: + return "static-token" + if oauth2_headers and server.auth_type == MCPAuth.oauth2: + return "oauth2-passthrough" + return "no-auth" + + @staticmethod + def build_debug_headers( + *, + inbound_headers: Dict[str, str], + oauth2_headers: Optional[Dict[str, str]], + litellm_api_key: Optional[str], + auth_resolution: str, + server_url: Optional[str], + server_auth_type: Optional[str], + ) -> Dict[str, str]: + """ + Build masked debug response headers. + + Parameters + ---------- + inbound_headers : dict + Raw headers received from the MCP client. + oauth2_headers : dict or None + Extracted OAuth2 headers (``{"Authorization": "Bearer ..."}``). + litellm_api_key : str or None + The LiteLLM API key extracted from ``x-litellm-api-key`` or + ``Authorization`` header. + auth_resolution : str + Which auth priority was selected for the outbound call. + server_url : str or None + Upstream MCP server URL. + server_auth_type : str or None + The ``auth_type`` configured on the server (e.g. ``oauth2``). + + Returns + ------- + dict + Headers to include in the response (all values masked). + """ + debug: Dict[str, str] = {} + + # --- Inbound auth summary --- + inbound_parts = [] + for hdr_name in ("x-litellm-api-key", "authorization", "x-mcp-auth"): + for k, v in inbound_headers.items(): + if k.lower() == hdr_name: + inbound_parts.append(f"{hdr_name}={MCPDebug._mask(v)}") + break + debug[f"{_RESPONSE_HEADER_PREFIX}-inbound-auth"] = ( + "; ".join(inbound_parts) if inbound_parts else "(none)" + ) + + # --- OAuth2 token --- + oauth2_token = (oauth2_headers or {}).get("Authorization") + if oauth2_token and litellm_api_key: + oauth2_raw = oauth2_token.removeprefix("Bearer ").strip() + litellm_raw = litellm_api_key.removeprefix("Bearer ").strip() + if oauth2_raw == litellm_raw: + debug[f"{_RESPONSE_HEADER_PREFIX}-oauth2-token"] = ( + f"{MCPDebug._mask(oauth2_token)} " + f"(SAME_AS_LITELLM_KEY - likely misconfigured)" + ) + else: + debug[f"{_RESPONSE_HEADER_PREFIX}-oauth2-token"] = MCPDebug._mask( + oauth2_token + ) + else: + debug[f"{_RESPONSE_HEADER_PREFIX}-oauth2-token"] = MCPDebug._mask( + oauth2_token + ) + + # --- Auth resolution --- + debug[f"{_RESPONSE_HEADER_PREFIX}-auth-resolution"] = auth_resolution + + # --- Server info --- + debug[f"{_RESPONSE_HEADER_PREFIX}-outbound-url"] = server_url or "(unknown)" + debug[f"{_RESPONSE_HEADER_PREFIX}-server-auth-type"] = ( + server_auth_type or "(none)" + ) + + return debug + + @staticmethod + def wrap_send_with_debug_headers( + send: Send, debug_headers: Dict[str, str] + ) -> Send: + """ + Return a new ASGI ``send`` callable that injects *debug_headers* + into the ``http.response.start`` message. + """ + + async def _send_with_debug(message: Message) -> None: + if message["type"] == "http.response.start": + headers = list(message.get("headers", [])) + for k, v in debug_headers.items(): + headers.append((k.encode(), v.encode())) + message = {**message, "headers": headers} + await send(message) + + return _send_with_debug + + @staticmethod + def maybe_build_debug_headers( + *, + raw_headers: Optional[Dict[str, str]], + scope: Dict, + mcp_servers: Optional[List[str]], + mcp_auth_header: Optional[str], + mcp_server_auth_headers: Optional[Dict[str, Dict[str, str]]], + oauth2_headers: Optional[Dict[str, str]], + client_ip: Optional[str], + ) -> Dict[str, str]: + """ + Build debug headers if debug mode is enabled, otherwise return empty dict. + + This is the single entry point called from the MCP request handler. + """ + if not raw_headers or not MCPDebug.is_debug_enabled(raw_headers): + return {} + + from litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp import ( + MCPRequestHandler, + ) + from litellm.proxy._experimental.mcp_server.mcp_server_manager import ( + global_mcp_server_manager, + ) + + server_url: Optional[str] = None + server_auth_type: Optional[str] = None + auth_resolution = "no-auth" + + for server_name in mcp_servers or []: + server = global_mcp_server_manager.get_mcp_server_by_name( + server_name, client_ip=client_ip + ) + if server: + server_url = server.url + server_auth_type = server.auth_type + auth_resolution = MCPDebug.resolve_auth_resolution( + server, mcp_auth_header, mcp_server_auth_headers, oauth2_headers + ) + break + + scope_headers = MCPRequestHandler._safe_get_headers_from_scope(scope) + litellm_key = MCPRequestHandler.get_litellm_api_key_from_headers( + scope_headers + ) + + return MCPDebug.build_debug_headers( + inbound_headers=raw_headers, + oauth2_headers=oauth2_headers, + litellm_api_key=litellm_key, + auth_resolution=auth_resolution, + server_url=server_url, + server_auth_type=server_auth_type, + ) diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index 24eae430d85..49c4a0ce681 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -14,6 +14,7 @@ import re from typing import Any, Callable, Dict, List, Literal, Optional, Set, Tuple, Union, cast from urllib.parse import urlparse +import anyio from fastapi import HTTPException from httpx import HTTPStatusError from mcp import ReadResourceResult, Resource @@ -70,9 +71,7 @@ try: from mcp.shared.tool_name_validation import ( validate_tool_name, # pyright: ignore[reportAssignmentType] ) - from mcp.shared.tool_name_validation import ( - SEP_986_URL, - ) + from mcp.shared.tool_name_validation import SEP_986_URL except ImportError: from pydantic import BaseModel @@ -157,13 +156,13 @@ class MCPServerManager: [ "server-1": { "name": "zapier_mcp_server", - "url": "https://actions.zapier.com/mcp/sk-ak-2ew3bofIeQIkNoeKIdXrF1Hhhp/sse" + "url": "https://actions.zapier.com/mcp//sse" "transport": "sse", "auth_type": "api_key" }, "uuid-2": { "name": "google_drive_mcp_server", - "url": "https://actions.zapier.com/mcp/sk-ak-2ew3bofIeQIkNoeKIdXrF1Hhhp/sse" + "url": "https://actions.zapier.com/mcp//sse" } ] """ @@ -673,24 +672,47 @@ class MCPServerManager: return [ server.server_id for server in self.get_registry().values() - if server.allow_all_keys + if server.allow_all_keys is True ] async def get_allowed_mcp_servers( self, user_api_key_auth: Optional[UserAPIKeyAuth] = None ) -> List[str]: """ - Get the allowed MCP Servers for the user + Get the allowed MCP Servers for the user. + + Priority: + 1. If object_permission.mcp_servers is explicitly set, use it (even for admins) + 2. If admin and no object_permission, return all servers + 3. Otherwise, use standard permission checks """ from litellm.proxy.management_endpoints.common_utils import _user_has_admin_view - # If admin, get all servers - if user_api_key_auth and _user_has_admin_view(user_api_key_auth): - return list(self.get_registry().keys()) - allow_all_server_ids = self.get_allow_all_keys_server_ids() try: + # Check if object_permission.mcp_servers is explicitly set + has_explicit_object_permission = False + if user_api_key_auth and user_api_key_auth.object_permission: + # Check if mcp_servers is explicitly set (not None, empty list is valid) + if user_api_key_auth.object_permission.mcp_servers is not None: + has_explicit_object_permission = True + verbose_logger.debug( + f"Object permission mcp_servers explicitly set: {user_api_key_auth.object_permission.mcp_servers}" + ) + + # If admin but NO explicit object permission, get all servers + if ( + user_api_key_auth + and _user_has_admin_view(user_api_key_auth) + and not has_explicit_object_permission + ): + verbose_logger.debug( + "Admin user without explicit object_permission - returning all servers" + ) + return list(self.get_registry().keys()) + + # Get allowed servers from object permissions (respects object_permission even for admins) allowed_mcp_servers = await MCPRequestHandler.get_allowed_mcp_servers( user_api_key_auth ) @@ -866,8 +888,15 @@ class MCPServerManager: # Handle stdio transport if transport == MCPTransport.stdio: - # For stdio, we need to get the stdio config from the server - resolved_env = stdio_env if stdio_env is not None else server.env or {} + resolved_env = stdio_env if stdio_env is not None else dict(server.env or {}) + + # Ensure npm-based STDIO MCP servers have a writable cache dir. + # In containers the default (~/.npm or /app/.npm) may not exist + # or be read-only, causing npx to fail with ENOENT. + if "NPM_CONFIG_CACHE" not in resolved_env: + from litellm.constants import MCP_NPM_CACHE_DIR + + resolved_env["NPM_CONFIG_CACHE"] = MCP_NPM_CACHE_DIR stdio_config: Optional[MCPStdioConfig] = None if server.command and server.args is not None: stdio_config = MCPStdioConfig( @@ -1416,6 +1445,9 @@ class MCPServerManager: """ Fetch tools from MCP client with timeout and error handling. + Uses anyio.fail_after() instead of asyncio.wait_for() to avoid conflicts + with the MCP SDK's anyio TaskGroup. See GitHub issue #20715 for details. + Args: client: MCP client instance server_name: Name of the server for logging @@ -1423,24 +1455,12 @@ class MCPServerManager: Returns: List of tools from the server """ - - async def _list_tools_task(): - try: + try: + with anyio.fail_after(30.0): tools = await client.list_tools() verbose_logger.debug(f"Tools from {server_name}: {tools}") return tools - except asyncio.CancelledError: - verbose_logger.warning(f"Client operation cancelled for {server_name}") - return [] - except Exception as e: - verbose_logger.warning( - f"Client operation failed for {server_name}: {str(e)}" - ) - return [] - - try: - return await asyncio.wait_for(_list_tools_task(), timeout=30.0) - except asyncio.TimeoutError: + except TimeoutError: verbose_logger.warning(f"Timeout while listing tools from {server_name}") return [] except asyncio.CancelledError: @@ -2246,6 +2266,7 @@ class MCPServerManager: from litellm.proxy.proxy_server import ( general_settings as proxy_general_settings, ) + return proxy_general_settings except ImportError: # Fallback if proxy_server not available @@ -2459,6 +2480,9 @@ class MCPServerManager: except asyncio.TimeoutError: health_check_error = "Health check timed out after 10 seconds" status = "unhealthy" + except asyncio.CancelledError: + health_check_error = "Health check was cancelled" + status = "unknown" except Exception as e: health_check_error = str(e) status = "unhealthy" diff --git a/litellm/proxy/_experimental/mcp_server/rest_endpoints.py b/litellm/proxy/_experimental/mcp_server/rest_endpoints.py index 43b388993d9..aed81afd254 100644 --- a/litellm/proxy/_experimental/mcp_server/rest_endpoints.py +++ b/litellm/proxy/_experimental/mcp_server/rest_endpoints.py @@ -37,6 +37,7 @@ if MCP_AVAILABLE: from litellm.proxy._experimental.mcp_server.server import ( ListMCPToolsRestAPIResponseObject, MCPServer, + _tool_name_matches, execute_mcp_tool, filter_tools_by_allowed_tools, ) @@ -159,6 +160,7 @@ if MCP_AVAILABLE: server, server_auth_header, raw_headers: Optional[Dict[str, str]] = None, + user_api_key_auth: Optional[UserAPIKeyAuth] = None, ): """Helper function to get tools for a single server.""" tools = await global_mcp_server_manager._get_tools_from_server( @@ -173,6 +175,29 @@ if MCP_AVAILABLE: if server.allowed_tools is not None and len(server.allowed_tools) > 0: tools = filter_tools_by_allowed_tools(tools, server) + # Filter tools based on user_api_key_auth.object_permission.mcp_tool_permissions + # This provides per-key/team/org control over which tools can be accessed + if ( + user_api_key_auth + and user_api_key_auth.object_permission + and user_api_key_auth.object_permission.mcp_tool_permissions + ): + allowed_tools_for_server = ( + user_api_key_auth.object_permission.mcp_tool_permissions.get( + server.server_id + ) + ) + if ( + allowed_tools_for_server is not None + and len(allowed_tools_for_server) > 0 + ): + # Filter tools to only include those in the allowed list + tools = [ + tool + for tool in tools + if _tool_name_matches(tool.name, allowed_tools_for_server) + ] + return _create_tool_response_objects(tools, server.mcp_info) async def _resolve_allowed_mcp_servers_for_tool_call( @@ -197,9 +222,7 @@ if MCP_AVAILABLE: ) allowed_mcp_servers: List[MCPServer] = [] for allowed_server_id in allowed_server_ids_set: - server = global_mcp_server_manager.get_mcp_server_by_id( - allowed_server_id - ) + server = global_mcp_server_manager.get_mcp_server_by_id(allowed_server_id) if server is not None: allowed_mcp_servers.append(server) return allowed_mcp_servers @@ -276,9 +299,7 @@ if MCP_AVAILABLE: "message": f"The key is not allowed to access server {server_id}", }, ) - server = global_mcp_server_manager.get_mcp_server_by_id( - server_id - ) + server = global_mcp_server_manager.get_mcp_server_by_id(server_id) if server is None: return { "tools": [], @@ -292,7 +313,10 @@ if MCP_AVAILABLE: try: list_tools_result = await _get_tools_for_single_server( - server, server_auth_header, raw_headers_from_request + server, + server_auth_header, + raw_headers_from_request, + user_api_key_dict, ) except Exception as e: verbose_logger.exception( @@ -328,7 +352,10 @@ if MCP_AVAILABLE: try: tools_result = await _get_tools_for_single_server( - server, server_auth_header, raw_headers_from_request + server, + server_auth_header, + raw_headers_from_request, + user_api_key_dict, ) list_tools_result.extend(tools_result) except Exception as e: diff --git a/litellm/proxy/_experimental/mcp_server/server.py b/litellm/proxy/_experimental/mcp_server/server.py index 58cd8c99e7b..31836a27509 100644 --- a/litellm/proxy/_experimental/mcp_server/server.py +++ b/litellm/proxy/_experimental/mcp_server/server.py @@ -23,6 +23,7 @@ from typing import ( from fastapi import FastAPI, HTTPException from pydantic import AnyUrl, ConfigDict from starlette.requests import Request as StarletteRequest +from starlette.responses import JSONResponse from starlette.types import Receive, Scope, Send from litellm._logging import verbose_logger @@ -34,6 +35,7 @@ from litellm.proxy._experimental.mcp_server.auth.user_api_key_auth_mcp import ( from litellm.proxy._experimental.mcp_server.discoverable_endpoints import ( get_request_base_url, ) +from litellm.proxy._experimental.mcp_server.mcp_debug import MCPDebug from litellm.proxy._experimental.mcp_server.utils import ( LITELLM_MCP_SERVER_DESCRIPTION, LITELLM_MCP_SERVER_NAME, @@ -41,6 +43,9 @@ from litellm.proxy._experimental.mcp_server.utils import ( ) from litellm.proxy._types import UserAPIKeyAuth from litellm.proxy.auth.ip_address_utils import IPAddressUtils +from litellm.proxy.litellm_pre_call_utils import ( + LiteLLMProxyRequestSetup, +) from litellm.types.mcp import MCPAuth from litellm.types.mcp_server.mcp_server_manager import MCPInfo, MCPServer from litellm.types.utils import CallTypes, StandardLoggingMCPToolCall @@ -144,7 +149,7 @@ if MCP_AVAILABLE: app=server, event_store=None, json_response=False, # enables SSE streaming - stateless=False, # enables session state + stateless=True, ) # Create SSE session manager @@ -842,6 +847,7 @@ if MCP_AVAILABLE: raw_headers: Optional[Dict[str, str]] = None, log_list_tools_to_spendlogs: bool = False, list_tools_log_source: Optional[str] = None, + litellm_trace_id: Optional[str] = None, ) -> List[MCPTool]: """ Helper method to fetch tools from MCP servers based on server filtering criteria. @@ -879,6 +885,7 @@ if MCP_AVAILABLE: "model": "MCP: list_tools", "call_type": CallTypes.list_mcp_tools.value, "litellm_call_id": list_tools_call_id, + "litellm_trace_id": litellm_trace_id, "metadata": { "spend_logs_metadata": spend_logs_metadata, }, @@ -894,13 +901,14 @@ if MCP_AVAILABLE: ], } - # Attach user identifiers when available (matches call_mcp_tool style) + # Attach user identifiers using the standard helper if user_api_key_auth is not None: - user_api_key = getattr(user_api_key_auth, "api_key", None) - if user_api_key: - cast(dict, list_tools_request_data["metadata"])[ - "user_api_key" - ] = user_api_key + + LiteLLMProxyRequestSetup.add_user_api_key_auth_to_request_metadata( + data=list_tools_request_data, + user_api_key_dict=user_api_key_auth, + _metadata_variable_name="metadata", + ) user_identifier = getattr( user_api_key_auth, "end_user_id", None @@ -1907,18 +1915,27 @@ if MCP_AVAILABLE: raw_headers, ) - def _strip_stale_mcp_session_header( + async def _handle_stale_mcp_session( scope: Scope, + receive: Receive, + send: Send, mgr: "StreamableHTTPSessionManager", - ) -> None: + ) -> bool: """ - Strip stale ``mcp-session-id`` headers so the session manager - creates a fresh session instead of returning 404 "Session not found". + Handle stale MCP session IDs to prevent "Session not found" errors. - When clients like VSCode reconnect after a reload they may resend a - session id that has already been cleaned up. Rather than letting the - SDK return a 404 error loop, we detect the stale id and remove the - header so a brand-new session is created transparently. + When clients reconnect after a server restart or session cleanup, they may + send a session ID that no longer exists. This function handles two scenarios: + + 1. Non-DELETE requests: Strip the stale session ID header so the session + manager creates a fresh session transparently. + + 2. DELETE requests: Return success (200) immediately for idempotent behavior, + since the desired state (session doesn't exist) is already achieved. + + Returns: + True if the request was handled (DELETE on non-existent session) + False if the request should continue to the session manager Fixes https://github.com/BerriAI/litellm/issues/20292 """ @@ -1930,10 +1947,30 @@ if MCP_AVAILABLE: break if _session_id is None: - return + return False known_sessions = getattr(mgr, "_server_instances", None) - if known_sessions is not None and _session_id not in known_sessions: + if known_sessions is None or _session_id in known_sessions: + # Session exists or we can't check - let the session manager handle it + return False + + # Session doesn't exist - handle based on request method + method = scope.get("method", "").upper() + + if method == "DELETE": + # Idempotent DELETE: session doesn't exist, return success + verbose_logger.info( + f"DELETE request for non-existent MCP session '{_session_id}'. " + "Returning success (idempotent DELETE)." + ) + success_response = JSONResponse( + status_code=200, + content={"message": "Session terminated successfully"} + ) + await success_response(scope, receive, send) + return True + else: + # Non-DELETE: strip stale session ID to allow new session creation verbose_logger.warning( "MCP session ID '%s' not found in active sessions. " "Stripping stale header to force new session creation.", @@ -1943,6 +1980,7 @@ if MCP_AVAILABLE: (k, v) for k, v in scope["headers"] if k != _mcp_session_header ] + return False async def handle_streamable_http_mcp( scope: Scope, receive: Receive, send: Send @@ -1988,6 +2026,19 @@ if MCP_AVAILABLE: headers={"www-authenticate": authorization_uri}, ) + # Inject masked debug headers when client sends x-litellm-mcp-debug: true + _debug_headers = MCPDebug.maybe_build_debug_headers( + raw_headers=raw_headers, + scope=dict(scope), + mcp_servers=mcp_servers, + mcp_auth_header=mcp_auth_header, + mcp_server_auth_headers=mcp_server_auth_headers, + oauth2_headers=oauth2_headers, + client_ip=_client_ip, + ) + if _debug_headers: + send = MCPDebug.wrap_send_with_debug_headers(send, _debug_headers) + # Set the auth context variable for easy access in MCP functions set_auth_context( user_api_key_auth=user_api_key_auth, @@ -2005,7 +2056,12 @@ if MCP_AVAILABLE: # Give it a moment to start up await asyncio.sleep(0.1) - _strip_stale_mcp_session_header(scope, session_manager) + # Handle stale session IDs - either strip them for reconnection + # or return success for idempotent DELETE operations + handled = await _handle_stale_mcp_session(scope, receive, send, session_manager) + if handled: + # Request was fully handled (e.g., DELETE on non-existent session) + return await session_manager.handle_request(scope, receive, send) except HTTPException: diff --git a/litellm/proxy/_experimental/out/404/index.html b/litellm/proxy/_experimental/out/404.html similarity index 96% rename from litellm/proxy/_experimental/out/404/index.html rename to litellm/proxy/_experimental/out/404.html index 63f46b9c025..c73aba563bc 100644 --- a/litellm/proxy/_experimental/out/404/index.html +++ b/litellm/proxy/_experimental/out/404.html @@ -1 +1 @@ -404: This page could not be found.LiteLLM Dashboard404This page could not be found. \ No newline at end of file +404: This page could not be found.LiteLLM Dashboard404This page could not be found. \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/__next.__PAGE__.txt b/litellm/proxy/_experimental/out/__next.__PAGE__.txt index 797e7a44c06..fd00b7dc97f 100644 --- a/litellm/proxy/_experimental/out/__next.__PAGE__.txt +++ b/litellm/proxy/_experimental/out/__next.__PAGE__.txt @@ -1,30 +1,31 @@ 1:"$Sreact.fragment" 2:I[347257,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"ClientPageRoot"] -3:I[952683,["/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","/litellm-asset-prefix/_next/static/chunks/0a6c418370a8c183.js","/litellm-asset-prefix/_next/static/chunks/4cd6ff0dfce62b8e.js","/litellm-asset-prefix/_next/static/chunks/4a4dedb94a06b61d.js","/litellm-asset-prefix/_next/static/chunks/1b1b0930772e484a.js","/litellm-asset-prefix/_next/static/chunks/fbc296c4562eeddc.js","/litellm-asset-prefix/_next/static/chunks/e99e2eb6c969ac42.js","/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","/litellm-asset-prefix/_next/static/chunks/e04f5de552319954.js","/litellm-asset-prefix/_next/static/chunks/f56edde1dfbfa5c2.js","/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","/litellm-asset-prefix/_next/static/chunks/4a74699f9b25ffd8.js","/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","/litellm-asset-prefix/_next/static/chunks/6930557cf99ba2ed.js","/litellm-asset-prefix/_next/static/chunks/95015f87c824f421.js","/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","/litellm-asset-prefix/_next/static/chunks/87a251aeda49f573.js","/litellm-asset-prefix/_next/static/chunks/33b32c9f63756046.js","/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","/litellm-asset-prefix/_next/static/chunks/c52ccee83fcf13d9.js","/litellm-asset-prefix/_next/static/chunks/acb2890475c0e12c.js","/litellm-asset-prefix/_next/static/chunks/18268b188d85d0d8.js","/litellm-asset-prefix/_next/static/chunks/b720ff808b5789ef.js","/litellm-asset-prefix/_next/static/chunks/008c46047ca6ae0a.js","/litellm-asset-prefix/_next/static/chunks/3754e5316d782fdf.js","/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","/litellm-asset-prefix/_next/static/chunks/e9a81ef6cd35a613.js","/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","/litellm-asset-prefix/_next/static/chunks/ba3f0517ce70ce68.js","/litellm-asset-prefix/_next/static/chunks/79738bf720f4be4d.js","/litellm-asset-prefix/_next/static/chunks/a5b66d8611aefbcd.js","/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","/litellm-asset-prefix/_next/static/chunks/554b4994eea1cb97.js","/litellm-asset-prefix/_next/static/chunks/b32c07bb80491ab6.js","/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","/litellm-asset-prefix/_next/static/chunks/0b27adb95e5b531e.js","/litellm-asset-prefix/_next/static/chunks/df9bbd7990a5fafe.js","/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","/litellm-asset-prefix/_next/static/chunks/8e1e9d99970e681d.js","/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","/litellm-asset-prefix/_next/static/chunks/8927d9c0b6434f68.js","/litellm-asset-prefix/_next/static/chunks/368fa3a0a47b3cb5.js","/litellm-asset-prefix/_next/static/chunks/8fb6b3333e6465c3.js","/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","/litellm-asset-prefix/_next/static/chunks/e8aec000aaa33bd3.js"],"default"] -1a:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"OutletBoundary"] -1b:"$Sreact.suspense" +3:I[952683,["/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","/litellm-asset-prefix/_next/static/chunks/9f5ccd929375c1d6.js","/litellm-asset-prefix/_next/static/chunks/e3bc795c751bb99a.js","/litellm-asset-prefix/_next/static/chunks/1fe0596a309ad6cf.js","/litellm-asset-prefix/_next/static/chunks/c93c5c533dba84d1.js","/litellm-asset-prefix/_next/static/chunks/47ed25bb99ff8a39.js","/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","/litellm-asset-prefix/_next/static/chunks/58b9eb1766fba8e0.js","/litellm-asset-prefix/_next/static/chunks/5eb6648cefff2d8a.js","/litellm-asset-prefix/_next/static/chunks/4188d520ca4e5f2b.js","/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","/litellm-asset-prefix/_next/static/chunks/134f728fa7099e3e.js","/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","/litellm-asset-prefix/_next/static/chunks/81bf20526995284e.js","/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","/litellm-asset-prefix/_next/static/chunks/c91982ee39ef0f77.js","/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","/litellm-asset-prefix/_next/static/chunks/457923c551f21385.js","/litellm-asset-prefix/_next/static/chunks/82a6c2af12705c46.js","/litellm-asset-prefix/_next/static/chunks/2f04fe05bcb1c150.js","/litellm-asset-prefix/_next/static/chunks/72250192fd3153b7.js","/litellm-asset-prefix/_next/static/chunks/a9ebedc318fa36dc.js","/litellm-asset-prefix/_next/static/chunks/3f369c603677cd7a.js","/litellm-asset-prefix/_next/static/chunks/66a190706fc6c35a.js","/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","/litellm-asset-prefix/_next/static/chunks/99cf9cf99df5ccfc.js","/litellm-asset-prefix/_next/static/chunks/a7aecb91c09b0e9a.js","/litellm-asset-prefix/_next/static/chunks/e007904603a33bc5.js","/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","/litellm-asset-prefix/_next/static/chunks/8e12212d7a0aeaee.js","/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","/litellm-asset-prefix/_next/static/chunks/bf880fd979d4a2e6.js","/litellm-asset-prefix/_next/static/chunks/7ad0165018dc89ce.js","/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","/litellm-asset-prefix/_next/static/chunks/3d2a01213eb1cc87.js","/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","/litellm-asset-prefix/_next/static/chunks/bdf355b41816a002.js","/litellm-asset-prefix/_next/static/chunks/1ab4ccc7c0ba9eff.js","/litellm-asset-prefix/_next/static/chunks/8992001a9a91bc67.js","/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","/litellm-asset-prefix/_next/static/chunks/a21582fe1f52b973.js","/litellm-asset-prefix/_next/static/chunks/5d3e07ae5afa6fa6.js","/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","/litellm-asset-prefix/_next/static/chunks/511809a345b510d8.js","/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","/litellm-asset-prefix/_next/static/chunks/6367dd1d1cf7eeef.js","/litellm-asset-prefix/_next/static/chunks/69aeba649b0dc90f.js"],"default"] +1b:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"OutletBoundary"] +1c:"$Sreact.suspense" :HL["/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","style"] -0:{"buildId":"5d4yNl8wNnid2iuIZ_SiS","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0a6c418370a8c183.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/4cd6ff0dfce62b8e.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/4a4dedb94a06b61d.js","async":true}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/1b1b0930772e484a.js","async":true}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/fbc296c4562eeddc.js","async":true}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/e99e2eb6c969ac42.js","async":true}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","async":true}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/e04f5de552319954.js","async":true}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/f56edde1dfbfa5c2.js","async":true}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","async":true}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/4a74699f9b25ffd8.js","async":true}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","async":true}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","async":true}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","async":true}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","async":true}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","async":true}],["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/6930557cf99ba2ed.js","async":true}],["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/95015f87c824f421.js","async":true}],["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","async":true}],["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/87a251aeda49f573.js","async":true}],["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/33b32c9f63756046.js","async":true}],["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","async":true}],["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/c52ccee83fcf13d9.js","async":true}],["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/acb2890475c0e12c.js","async":true}],["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/18268b188d85d0d8.js","async":true}],["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/b720ff808b5789ef.js","async":true}],["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/008c46047ca6ae0a.js","async":true}],["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/3754e5316d782fdf.js","async":true}],["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","async":true}],["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","async":true}],["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","async":true}],["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/e9a81ef6cd35a613.js","async":true}],["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","async":true}],["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/ba3f0517ce70ce68.js","async":true}],"$L6","$L7","$L8","$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18"],"$L19"]}],"loading":null,"isPartial":false} +0:{"buildId":"C_XKHLw43nx5HaPfGD7XZ","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/9f5ccd929375c1d6.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e3bc795c751bb99a.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/1fe0596a309ad6cf.js","async":true}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/c93c5c533dba84d1.js","async":true}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/47ed25bb99ff8a39.js","async":true}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","async":true}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/58b9eb1766fba8e0.js","async":true}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/5eb6648cefff2d8a.js","async":true}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/4188d520ca4e5f2b.js","async":true}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","async":true}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","async":true}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","async":true}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/134f728fa7099e3e.js","async":true}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","async":true}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","async":true}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/81bf20526995284e.js","async":true}],["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","async":true}],["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/c91982ee39ef0f77.js","async":true}],["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","async":true}],["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/457923c551f21385.js","async":true}],["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/82a6c2af12705c46.js","async":true}],["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/2f04fe05bcb1c150.js","async":true}],["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/72250192fd3153b7.js","async":true}],["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/a9ebedc318fa36dc.js","async":true}],["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/3f369c603677cd7a.js","async":true}],["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/66a190706fc6c35a.js","async":true}],["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","async":true}],["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/99cf9cf99df5ccfc.js","async":true}],["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/a7aecb91c09b0e9a.js","async":true}],["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/e007904603a33bc5.js","async":true}],["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","async":true}],["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/8e12212d7a0aeaee.js","async":true}],["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","async":true}],["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/bf880fd979d4a2e6.js","async":true}],"$L6","$L7","$L8","$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18","$L19"],"$L1a"]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" -6:["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/79738bf720f4be4d.js","async":true}] -7:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/a5b66d8611aefbcd.js","async":true}] +6:["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/7ad0165018dc89ce.js","async":true}] +7:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","async":true}] 8:["$","script","script-36",{"src":"/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","async":true}] 9:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","async":true}] -a:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/554b4994eea1cb97.js","async":true}] -b:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/b32c07bb80491ab6.js","async":true}] +a:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/3d2a01213eb1cc87.js","async":true}] +b:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","async":true}] c:["$","script","script-40",{"src":"/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","async":true}] -d:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/0b27adb95e5b531e.js","async":true}] -e:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/df9bbd7990a5fafe.js","async":true}] -f:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","async":true}] +d:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/bdf355b41816a002.js","async":true}] +e:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/1ab4ccc7c0ba9eff.js","async":true}] +f:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/8992001a9a91bc67.js","async":true}] 10:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","async":true}] 11:["$","script","script-45",{"src":"/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","async":true}] -12:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/8e1e9d99970e681d.js","async":true}] -13:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","async":true}] -14:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/8927d9c0b6434f68.js","async":true}] -15:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/368fa3a0a47b3cb5.js","async":true}] -16:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/8fb6b3333e6465c3.js","async":true}] +12:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/a21582fe1f52b973.js","async":true}] +13:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/5d3e07ae5afa6fa6.js","async":true}] +14:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","async":true}] +15:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","async":true}] +16:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/511809a345b510d8.js","async":true}] 17:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","async":true}] -18:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/e8aec000aaa33bd3.js","async":true}] -19:["$","$L1a",null,{"children":["$","$1b",null,{"name":"Next.MetadataOutlet","children":"$@1c"}]}] -1c:null +18:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/6367dd1d1cf7eeef.js","async":true}] +19:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/69aeba649b0dc90f.js","async":true}] +1a:["$","$L1b",null,{"children":["$","$1c",null,{"name":"Next.MetadataOutlet","children":"$@1d"}]}] +1d:null diff --git a/litellm/proxy/_experimental/out/__next._full.txt b/litellm/proxy/_experimental/out/__next._full.txt index 1616c04ef15..413f698d31f 100644 --- a/litellm/proxy/_experimental/out/__next._full.txt +++ b/litellm/proxy/_experimental/out/__next._full.txt @@ -3,59 +3,60 @@ 3:I[339756,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"default"] 4:I[837457,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"default"] 5:I[347257,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"ClientPageRoot"] -6:I[952683,["/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","/litellm-asset-prefix/_next/static/chunks/0a6c418370a8c183.js","/litellm-asset-prefix/_next/static/chunks/4cd6ff0dfce62b8e.js","/litellm-asset-prefix/_next/static/chunks/4a4dedb94a06b61d.js","/litellm-asset-prefix/_next/static/chunks/1b1b0930772e484a.js","/litellm-asset-prefix/_next/static/chunks/fbc296c4562eeddc.js","/litellm-asset-prefix/_next/static/chunks/e99e2eb6c969ac42.js","/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","/litellm-asset-prefix/_next/static/chunks/e04f5de552319954.js","/litellm-asset-prefix/_next/static/chunks/f56edde1dfbfa5c2.js","/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","/litellm-asset-prefix/_next/static/chunks/4a74699f9b25ffd8.js","/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","/litellm-asset-prefix/_next/static/chunks/6930557cf99ba2ed.js","/litellm-asset-prefix/_next/static/chunks/95015f87c824f421.js","/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","/litellm-asset-prefix/_next/static/chunks/87a251aeda49f573.js","/litellm-asset-prefix/_next/static/chunks/33b32c9f63756046.js","/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","/litellm-asset-prefix/_next/static/chunks/c52ccee83fcf13d9.js","/litellm-asset-prefix/_next/static/chunks/acb2890475c0e12c.js","/litellm-asset-prefix/_next/static/chunks/18268b188d85d0d8.js","/litellm-asset-prefix/_next/static/chunks/b720ff808b5789ef.js","/litellm-asset-prefix/_next/static/chunks/008c46047ca6ae0a.js","/litellm-asset-prefix/_next/static/chunks/3754e5316d782fdf.js","/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","/litellm-asset-prefix/_next/static/chunks/e9a81ef6cd35a613.js","/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","/litellm-asset-prefix/_next/static/chunks/ba3f0517ce70ce68.js","/litellm-asset-prefix/_next/static/chunks/79738bf720f4be4d.js","/litellm-asset-prefix/_next/static/chunks/a5b66d8611aefbcd.js","/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","/litellm-asset-prefix/_next/static/chunks/554b4994eea1cb97.js","/litellm-asset-prefix/_next/static/chunks/b32c07bb80491ab6.js","/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","/litellm-asset-prefix/_next/static/chunks/0b27adb95e5b531e.js","/litellm-asset-prefix/_next/static/chunks/df9bbd7990a5fafe.js","/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","/litellm-asset-prefix/_next/static/chunks/8e1e9d99970e681d.js","/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","/litellm-asset-prefix/_next/static/chunks/8927d9c0b6434f68.js","/litellm-asset-prefix/_next/static/chunks/368fa3a0a47b3cb5.js","/litellm-asset-prefix/_next/static/chunks/8fb6b3333e6465c3.js","/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","/litellm-asset-prefix/_next/static/chunks/e8aec000aaa33bd3.js"],"default"] -30:I[168027,[],"default"] +6:I[952683,["/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","/litellm-asset-prefix/_next/static/chunks/9f5ccd929375c1d6.js","/litellm-asset-prefix/_next/static/chunks/e3bc795c751bb99a.js","/litellm-asset-prefix/_next/static/chunks/1fe0596a309ad6cf.js","/litellm-asset-prefix/_next/static/chunks/c93c5c533dba84d1.js","/litellm-asset-prefix/_next/static/chunks/47ed25bb99ff8a39.js","/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","/litellm-asset-prefix/_next/static/chunks/58b9eb1766fba8e0.js","/litellm-asset-prefix/_next/static/chunks/5eb6648cefff2d8a.js","/litellm-asset-prefix/_next/static/chunks/4188d520ca4e5f2b.js","/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","/litellm-asset-prefix/_next/static/chunks/134f728fa7099e3e.js","/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","/litellm-asset-prefix/_next/static/chunks/81bf20526995284e.js","/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","/litellm-asset-prefix/_next/static/chunks/c91982ee39ef0f77.js","/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","/litellm-asset-prefix/_next/static/chunks/457923c551f21385.js","/litellm-asset-prefix/_next/static/chunks/82a6c2af12705c46.js","/litellm-asset-prefix/_next/static/chunks/2f04fe05bcb1c150.js","/litellm-asset-prefix/_next/static/chunks/72250192fd3153b7.js","/litellm-asset-prefix/_next/static/chunks/a9ebedc318fa36dc.js","/litellm-asset-prefix/_next/static/chunks/3f369c603677cd7a.js","/litellm-asset-prefix/_next/static/chunks/66a190706fc6c35a.js","/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","/litellm-asset-prefix/_next/static/chunks/99cf9cf99df5ccfc.js","/litellm-asset-prefix/_next/static/chunks/a7aecb91c09b0e9a.js","/litellm-asset-prefix/_next/static/chunks/e007904603a33bc5.js","/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","/litellm-asset-prefix/_next/static/chunks/8e12212d7a0aeaee.js","/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","/litellm-asset-prefix/_next/static/chunks/bf880fd979d4a2e6.js","/litellm-asset-prefix/_next/static/chunks/7ad0165018dc89ce.js","/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","/litellm-asset-prefix/_next/static/chunks/3d2a01213eb1cc87.js","/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","/litellm-asset-prefix/_next/static/chunks/bdf355b41816a002.js","/litellm-asset-prefix/_next/static/chunks/1ab4ccc7c0ba9eff.js","/litellm-asset-prefix/_next/static/chunks/8992001a9a91bc67.js","/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","/litellm-asset-prefix/_next/static/chunks/a21582fe1f52b973.js","/litellm-asset-prefix/_next/static/chunks/5d3e07ae5afa6fa6.js","/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","/litellm-asset-prefix/_next/static/chunks/511809a345b510d8.js","/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","/litellm-asset-prefix/_next/static/chunks/6367dd1d1cf7eeef.js","/litellm-asset-prefix/_next/static/chunks/69aeba649b0dc90f.js"],"default"] +31:I[168027,[],"default"] :HL["/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","style"] -:HL["/litellm-asset-prefix/_next/static/chunks/da873dd93f7630eb.css","style"] +:HL["/litellm-asset-prefix/_next/static/chunks/d682c064a60ae3d6.css","style"] :HL["/litellm-asset-prefix/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","style"] -0:{"P":null,"b":"5d4yNl8wNnid2iuIZ_SiS","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/da873dd93f7630eb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0a6c418370a8c183.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/4cd6ff0dfce62b8e.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/4a4dedb94a06b61d.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/1b1b0930772e484a.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/fbc296c4562eeddc.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/e99e2eb6c969ac42.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/e04f5de552319954.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/f56edde1dfbfa5c2.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/4a74699f9b25ffd8.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","async":true,"nonce":"$undefined"}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","async":true,"nonce":"$undefined"}],"$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24","$L25","$L26","$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d"],"$L2e"]}],{},null,false,false]},null,false,false],"$L2f",false]],"m":"$undefined","G":["$30",[]],"S":true} -31:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"OutletBoundary"] -32:"$Sreact.suspense" -34:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"ViewportBoundary"] -36:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"MetadataBoundary"] -9:["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/6930557cf99ba2ed.js","async":true,"nonce":"$undefined"}] -a:["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/95015f87c824f421.js","async":true,"nonce":"$undefined"}] +0:{"P":null,"b":"C_XKHLw43nx5HaPfGD7XZ","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/d682c064a60ae3d6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/9f5ccd929375c1d6.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e3bc795c751bb99a.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/1fe0596a309ad6cf.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/c93c5c533dba84d1.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/47ed25bb99ff8a39.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/5f9c3b92a016f382.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/58b9eb1766fba8e0.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/5eb6648cefff2d8a.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/4188d520ca4e5f2b.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/403c4d96324c23a6.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0a671fedee641c02.js","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/134f728fa7099e3e.js","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/fe750aa0bf04912c.js","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/7b788dd93ad868b3.js","async":true,"nonce":"$undefined"}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/81bf20526995284e.js","async":true,"nonce":"$undefined"}],"$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24","$L25","$L26","$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d","$L2e"],"$L2f"]}],{},null,false,false]},null,false,false],"$L30",false]],"m":"$undefined","G":["$31",[]],"S":true} +32:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"OutletBoundary"] +33:"$Sreact.suspense" +35:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"ViewportBoundary"] +37:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"MetadataBoundary"] +9:["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/d64d74932cb225a3.js","async":true,"nonce":"$undefined"}] +a:["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/c91982ee39ef0f77.js","async":true,"nonce":"$undefined"}] b:["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/64f1a2ef9113d86f.js","async":true,"nonce":"$undefined"}] -c:["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/87a251aeda49f573.js","async":true,"nonce":"$undefined"}] -d:["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/33b32c9f63756046.js","async":true,"nonce":"$undefined"}] -e:["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/88c74f8b4b20d25a.js","async":true,"nonce":"$undefined"}] -f:["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/c52ccee83fcf13d9.js","async":true,"nonce":"$undefined"}] -10:["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/acb2890475c0e12c.js","async":true,"nonce":"$undefined"}] -11:["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/18268b188d85d0d8.js","async":true,"nonce":"$undefined"}] -12:["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/b720ff808b5789ef.js","async":true,"nonce":"$undefined"}] -13:["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/008c46047ca6ae0a.js","async":true,"nonce":"$undefined"}] -14:["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/3754e5316d782fdf.js","async":true,"nonce":"$undefined"}] -15:["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","async":true,"nonce":"$undefined"}] -16:["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","async":true,"nonce":"$undefined"}] +c:["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/457923c551f21385.js","async":true,"nonce":"$undefined"}] +d:["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/82a6c2af12705c46.js","async":true,"nonce":"$undefined"}] +e:["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/2f04fe05bcb1c150.js","async":true,"nonce":"$undefined"}] +f:["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/72250192fd3153b7.js","async":true,"nonce":"$undefined"}] +10:["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/a9ebedc318fa36dc.js","async":true,"nonce":"$undefined"}] +11:["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/3f369c603677cd7a.js","async":true,"nonce":"$undefined"}] +12:["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/66a190706fc6c35a.js","async":true,"nonce":"$undefined"}] +13:["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/3b30ab8eaa03bc21.js","async":true,"nonce":"$undefined"}] +14:["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/99cf9cf99df5ccfc.js","async":true,"nonce":"$undefined"}] +15:["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/a7aecb91c09b0e9a.js","async":true,"nonce":"$undefined"}] +16:["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/e007904603a33bc5.js","async":true,"nonce":"$undefined"}] 17:["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/c7b74067c01ee971.js","async":true,"nonce":"$undefined"}] -18:["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/e9a81ef6cd35a613.js","async":true,"nonce":"$undefined"}] +18:["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/8e12212d7a0aeaee.js","async":true,"nonce":"$undefined"}] 19:["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/4980372eaa37b78b.js","async":true,"nonce":"$undefined"}] -1a:["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/ba3f0517ce70ce68.js","async":true,"nonce":"$undefined"}] -1b:["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/79738bf720f4be4d.js","async":true,"nonce":"$undefined"}] -1c:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/a5b66d8611aefbcd.js","async":true,"nonce":"$undefined"}] +1a:["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/bf880fd979d4a2e6.js","async":true,"nonce":"$undefined"}] +1b:["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/7ad0165018dc89ce.js","async":true,"nonce":"$undefined"}] +1c:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","async":true,"nonce":"$undefined"}] 1d:["$","script","script-36",{"src":"/litellm-asset-prefix/_next/static/chunks/00ff280cdb7d7ee5.js","async":true,"nonce":"$undefined"}] 1e:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0a65da2cd24e2ab6.js","async":true,"nonce":"$undefined"}] -1f:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/554b4994eea1cb97.js","async":true,"nonce":"$undefined"}] -20:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/b32c07bb80491ab6.js","async":true,"nonce":"$undefined"}] +1f:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/3d2a01213eb1cc87.js","async":true,"nonce":"$undefined"}] +20:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/7e417dd24c8becd0.js","async":true,"nonce":"$undefined"}] 21:["$","script","script-40",{"src":"/litellm-asset-prefix/_next/static/chunks/a382857dbbcea5d1.js","async":true,"nonce":"$undefined"}] -22:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/0b27adb95e5b531e.js","async":true,"nonce":"$undefined"}] -23:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/df9bbd7990a5fafe.js","async":true,"nonce":"$undefined"}] -24:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","async":true,"nonce":"$undefined"}] +22:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/bdf355b41816a002.js","async":true,"nonce":"$undefined"}] +23:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/1ab4ccc7c0ba9eff.js","async":true,"nonce":"$undefined"}] +24:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/8992001a9a91bc67.js","async":true,"nonce":"$undefined"}] 25:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/2971c4658f1bcd7d.js","async":true,"nonce":"$undefined"}] 26:["$","script","script-45",{"src":"/litellm-asset-prefix/_next/static/chunks/6c4c97f1ea6e7d77.js","async":true,"nonce":"$undefined"}] -27:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/8e1e9d99970e681d.js","async":true,"nonce":"$undefined"}] -28:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/8354d717e34ebd6f.js","async":true,"nonce":"$undefined"}] -29:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/8927d9c0b6434f68.js","async":true,"nonce":"$undefined"}] -2a:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/368fa3a0a47b3cb5.js","async":true,"nonce":"$undefined"}] -2b:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/8fb6b3333e6465c3.js","async":true,"nonce":"$undefined"}] +27:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/a21582fe1f52b973.js","async":true,"nonce":"$undefined"}] +28:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/5d3e07ae5afa6fa6.js","async":true,"nonce":"$undefined"}] +29:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/c4452a79c69324a6.js","async":true,"nonce":"$undefined"}] +2a:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/496b84010c33cf69.js","async":true,"nonce":"$undefined"}] +2b:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/511809a345b510d8.js","async":true,"nonce":"$undefined"}] 2c:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/450ebd094f4fa24d.js","async":true,"nonce":"$undefined"}] -2d:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/e8aec000aaa33bd3.js","async":true,"nonce":"$undefined"}] -2e:["$","$L31",null,{"children":["$","$32",null,{"name":"Next.MetadataOutlet","children":"$@33"}]}] -2f:["$","$1","h",{"children":[null,["$","$L34",null,{"children":"$L35"}],["$","div",null,{"hidden":true,"children":["$","$L36",null,{"children":["$","$32",null,{"name":"Next.Metadata","children":"$L37"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] +2d:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/6367dd1d1cf7eeef.js","async":true,"nonce":"$undefined"}] +2e:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/69aeba649b0dc90f.js","async":true,"nonce":"$undefined"}] +2f:["$","$L32",null,{"children":["$","$33",null,{"name":"Next.MetadataOutlet","children":"$@34"}]}] +30:["$","$1","h",{"children":[null,["$","$L35",null,{"children":"$L36"}],["$","div",null,{"hidden":true,"children":["$","$L37",null,{"children":["$","$33",null,{"name":"Next.Metadata","children":"$L38"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] 7:{} 8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" -35:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -38:I[27201,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"IconMark"] -33:null -37:[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.1d32c690.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L38","4",{}]] +36:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +39:I[27201,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"IconMark"] +34:null +38:[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.1d32c690.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L39","4",{}]] diff --git a/litellm/proxy/_experimental/out/__next._head.txt b/litellm/proxy/_experimental/out/__next._head.txt index 1584b554081..f2ba0bdb797 100644 --- a/litellm/proxy/_experimental/out/__next._head.txt +++ b/litellm/proxy/_experimental/out/__next._head.txt @@ -3,4 +3,4 @@ 3:I[897367,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"MetadataBoundary"] 4:"$Sreact.suspense" 5:I[27201,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"IconMark"] -0:{"buildId":"5d4yNl8wNnid2iuIZ_SiS","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.1d32c690.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} +0:{"buildId":"C_XKHLw43nx5HaPfGD7XZ","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.1d32c690.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} diff --git a/litellm/proxy/_experimental/out/__next._index.txt b/litellm/proxy/_experimental/out/__next._index.txt index 3962191aa52..26eddbacdff 100644 --- a/litellm/proxy/_experimental/out/__next._index.txt +++ b/litellm/proxy/_experimental/out/__next._index.txt @@ -3,5 +3,5 @@ 3:I[339756,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"default"] 4:I[837457,["/litellm-asset-prefix/_next/static/chunks/d96012bcfc98706a.js","/litellm-asset-prefix/_next/static/chunks/dbca964212122d58.js"],"default"] :HL["/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","style"] -:HL["/litellm-asset-prefix/_next/static/chunks/da873dd93f7630eb.css","style"] -0:{"buildId":"5d4yNl8wNnid2iuIZ_SiS","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/da873dd93f7630eb.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false} +:HL["/litellm-asset-prefix/_next/static/chunks/d682c064a60ae3d6.css","style"] +0:{"buildId":"C_XKHLw43nx5HaPfGD7XZ","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/d682c064a60ae3d6.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/26adfa4e8ffc85c7.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/e8ed72789c2b42ff.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/litellm/proxy/_experimental/out/__next._tree.txt b/litellm/proxy/_experimental/out/__next._tree.txt index c7254dbd6b0..47ef19cda42 100644 --- a/litellm/proxy/_experimental/out/__next._tree.txt +++ b/litellm/proxy/_experimental/out/__next._tree.txt @@ -1,5 +1,5 @@ :HL["/litellm-asset-prefix/_next/static/chunks/4e20891f2fd03463.css","style"] -:HL["/litellm-asset-prefix/_next/static/chunks/da873dd93f7630eb.css","style"] +:HL["/litellm-asset-prefix/_next/static/chunks/d682c064a60ae3d6.css","style"] :HL["/litellm-asset-prefix/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/litellm-asset-prefix/_next/static/chunks/3f3fa56b5786d58c.css","style"] -0:{"buildId":"5d4yNl8wNnid2iuIZ_SiS","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"C_XKHLw43nx5HaPfGD7XZ","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_buildManifest.js b/litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_buildManifest.js similarity index 100% rename from litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_buildManifest.js rename to litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_buildManifest.js diff --git a/litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_clientMiddlewareManifest.json b/litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_clientMiddlewareManifest.json similarity index 100% rename from litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_clientMiddlewareManifest.json rename to litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_clientMiddlewareManifest.json diff --git a/litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_ssgManifest.js b/litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_ssgManifest.js similarity index 100% rename from litellm/proxy/_experimental/out/_next/static/5d4yNl8wNnid2iuIZ_SiS/_ssgManifest.js rename to litellm/proxy/_experimental/out/_next/static/C_XKHLw43nx5HaPfGD7XZ/_ssgManifest.js diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/008c46047ca6ae0a.js b/litellm/proxy/_experimental/out/_next/static/chunks/008c46047ca6ae0a.js deleted file mode 100644 index 79342f7a52d..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/008c46047ca6ae0a.js +++ /dev/null @@ -1,55 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,38243,908286,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(343794),n=e.i(876556);function i(e){return["small","middle","large"].includes(e)}function r(e){return!!e&&"number"==typeof e&&!Number.isNaN(e)}e.s(["isPresetSize",()=>i,"isValidGapNumber",()=>r],908286);var l=e.i(242064),a=e.i(249616),d=e.i(372409),s=e.i(246422);let c=(0,s.genStyleHooks)(["Space","Addon"],e=>[(e=>{let{componentCls:t,borderRadius:o,paddingSM:n,colorBorder:i,paddingXS:r,fontSizeLG:l,fontSizeSM:a,borderRadiusLG:s,borderRadiusSM:c,colorBgContainerDisabled:u,lineWidth:m}=e;return{[t]:[{display:"inline-flex",alignItems:"center",gap:0,paddingInline:n,margin:0,background:u,borderWidth:m,borderStyle:"solid",borderColor:i,borderRadius:o,"&-large":{fontSize:l,borderRadius:s},"&-small":{paddingInline:r,borderRadius:c,fontSize:a},"&-compact-last-item":{borderEndStartRadius:0,borderStartStartRadius:0},"&-compact-first-item":{borderEndEndRadius:0,borderStartEndRadius:0},"&-compact-item:not(:first-child):not(:last-child)":{borderRadius:0},"&-compact-item:not(:last-child)":{borderInlineEndWidth:0}},(0,d.genCompactItemStyle)(e,{focus:!1})]}})(e)]);var u=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let m=t.default.forwardRef((e,n)=>{let{className:i,children:r,style:d,prefixCls:s}=e,m=u(e,["className","children","style","prefixCls"]),{getPrefixCls:p,direction:g}=t.default.useContext(l.ConfigContext),b=p("space-addon",s),[$,f,v]=c(b),{compactItemClassnames:h,compactSize:y}=(0,a.useCompactItemContext)(b,g),x=(0,o.default)(b,f,h,v,{[`${b}-${y}`]:y},i);return $(t.default.createElement("div",Object.assign({ref:n,className:x,style:d},m),r))}),p=t.default.createContext({latestIndex:0}),g=p.Provider,b=({className:e,index:o,children:n,split:i,style:r})=>{let{latestIndex:l}=t.useContext(p);return null==n?null:t.createElement(t.Fragment,null,t.createElement("div",{className:e,style:r},n),o{let t=(0,$.mergeToken)(e,{spaceGapSmallSize:e.paddingXS,spaceGapMiddleSize:e.padding,spaceGapLargeSize:e.paddingLG});return[(e=>{let{componentCls:t,antCls:o}=e;return{[t]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${t}-item:empty`]:{display:"none"},[`${t}-item > ${o}-badge-not-a-wrapper:only-child`]:{display:"block"}}}})(t),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-row-small":{rowGap:e.spaceGapSmallSize},"&-gap-row-middle":{rowGap:e.spaceGapMiddleSize},"&-gap-row-large":{rowGap:e.spaceGapLargeSize},"&-gap-col-small":{columnGap:e.spaceGapSmallSize},"&-gap-col-middle":{columnGap:e.spaceGapMiddleSize},"&-gap-col-large":{columnGap:e.spaceGapLargeSize}}}})(t)]},()=>({}),{resetStyle:!1});var v=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let h=t.forwardRef((e,a)=>{var d;let{getPrefixCls:s,direction:c,size:u,className:m,style:p,classNames:$,styles:h}=(0,l.useComponentConfig)("space"),{size:y=null!=u?u:"small",align:x,className:C,rootClassName:I,children:S,direction:w="horizontal",prefixCls:O,split:B,style:k,wrap:E=!1,classNames:z,styles:j}=e,H=v(e,["size","align","className","rootClassName","children","direction","prefixCls","split","style","wrap","classNames","styles"]),[N,T]=Array.isArray(y)?y:[y,y],R=i(T),P=i(N),M=r(T),A=r(N),D=(0,n.default)(S,{keepEmpty:!0}),L=void 0===x&&"horizontal"===w?"center":x,W=s("space",O),[G,q,X]=f(W),F=(0,o.default)(W,m,q,`${W}-${w}`,{[`${W}-rtl`]:"rtl"===c,[`${W}-align-${L}`]:L,[`${W}-gap-row-${T}`]:R,[`${W}-gap-col-${N}`]:P},C,I,X),Y=(0,o.default)(`${W}-item`,null!=(d=null==z?void 0:z.item)?d:$.item),_=Object.assign(Object.assign({},h.item),null==j?void 0:j.item),V=D.map((e,o)=>{let n=(null==e?void 0:e.key)||`${Y}-${o}`;return t.createElement(b,{className:Y,key:n,index:o,split:B,style:_},e)}),U=t.useMemo(()=>({latestIndex:D.reduce((e,t,o)=>null!=t?o:e,0)}),[D]);if(0===D.length)return null;let Z={};return E&&(Z.flexWrap="wrap"),!P&&A&&(Z.columnGap=N),!R&&M&&(Z.rowGap=T),G(t.createElement("div",Object.assign({ref:a,className:F,style:Object.assign(Object.assign(Object.assign({},Z),p),k)},H),t.createElement(g,{value:U},V)))});h.Compact=a.default,h.Addon=m,e.s(["default",0,h],38243)},801312,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"};var i=e.i(9583),r=o.forwardRef(function(e,r){return o.createElement(i.default,(0,t.default)({},e,{ref:r,icon:n}))});e.s(["default",0,r],801312)},704914,e=>{"use strict";let t=e.i(271645).createContext({siderHook:{addSider:()=>null,removeSider:()=>null}});e.s(["LayoutContext",0,t])},741273,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"};var i=e.i(9583),r=o.forwardRef(function(e,r){return o.createElement(i.default,(0,t.default)({},e,{ref:r,icon:n}))});e.s(["default",0,r],741273)},290224,251224,e=>{"use strict";let t;e.i(247167);var o=e.i(271645),n=e.i(741273),i=e.i(801312),r=e.i(286612),l=e.i(343794),a=e.i(529681),d=e.i(958503),s=e.i(242064),c=e.i(704914);e.i(296059);var u=e.i(915654),m=e.i(246422);let p=e=>{let{colorBgLayout:t,controlHeight:o,controlHeightLG:n,colorText:i,controlHeightSM:r,marginXXS:l,colorTextLightSolid:a,colorBgContainer:d}=e,s=1.25*n;return{colorBgHeader:"#001529",colorBgBody:t,colorBgTrigger:"#002140",bodyBg:t,headerBg:"#001529",headerHeight:2*o,headerPadding:`0 ${s}px`,headerColor:i,footerPadding:`${r}px ${s}px`,footerBg:t,siderBg:"#001529",triggerHeight:n+2*l,triggerBg:"#002140",triggerColor:a,zeroTriggerWidth:n,zeroTriggerHeight:n,lightSiderBg:d,lightTriggerBg:d,lightTriggerColor:i}},g=[["colorBgBody","bodyBg"],["colorBgHeader","headerBg"],["colorBgTrigger","triggerBg"]],b=(0,m.genStyleHooks)("Layout",e=>{let{antCls:t,componentCls:o,colorText:n,footerBg:i,headerHeight:r,headerPadding:l,headerColor:a,footerPadding:d,fontSize:s,bodyBg:c,headerBg:m}=e;return{[o]:{display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:c,"&, *":{boxSizing:"border-box"},[`&${o}-has-sider`]:{flexDirection:"row",[`> ${o}, > ${o}-content`]:{width:0}},[`${o}-header, &${o}-footer`]:{flex:"0 0 auto"},"&-rtl":{direction:"rtl"}},[`${o}-header`]:{height:r,padding:l,color:a,lineHeight:(0,u.unit)(r),background:m,[`${t}-menu`]:{lineHeight:"inherit"}},[`${o}-footer`]:{padding:d,color:n,fontSize:s,background:i},[`${o}-content`]:{flex:"auto",color:n,minHeight:0}}},p,{deprecatedTokens:g});e.s(["DEPRECATED_TOKENS",0,g,"default",0,b,"prepareComponentToken",0,p],251224);let $=(0,m.genStyleHooks)(["Layout","Sider"],e=>{let{componentCls:t,siderBg:o,motionDurationMid:n,motionDurationSlow:i,antCls:r,triggerHeight:l,triggerColor:a,triggerBg:d,headerHeight:s,zeroTriggerWidth:c,zeroTriggerHeight:m,borderRadiusLG:p,lightSiderBg:g,lightTriggerColor:b,lightTriggerBg:$,bodyBg:f}=e;return{[t]:{position:"relative",minWidth:0,background:o,transition:`all ${n}, background 0s`,"&-has-trigger":{paddingBottom:l},"&-right":{order:1},[`${t}-children`]:{height:"100%",marginTop:-.1,paddingTop:.1,[`${r}-menu${r}-menu-inline-collapsed`]:{width:"auto"}},[`&-zero-width ${t}-children`]:{overflow:"hidden"},[`${t}-trigger`]:{position:"fixed",bottom:0,zIndex:1,height:l,color:a,lineHeight:(0,u.unit)(l),textAlign:"center",background:d,cursor:"pointer",transition:`all ${n}`},[`${t}-zero-width-trigger`]:{position:"absolute",top:s,insetInlineEnd:e.calc(c).mul(-1).equal(),zIndex:1,width:c,height:m,color:a,fontSize:e.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:o,borderRadius:`0 ${(0,u.unit)(p)} ${(0,u.unit)(p)} 0`,cursor:"pointer",transition:`background ${i} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${i}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:e.calc(c).mul(-1).equal(),borderRadius:`${(0,u.unit)(p)} 0 0 ${(0,u.unit)(p)}`}},"&-light":{background:g,[`${t}-trigger`]:{color:b,background:$},[`${t}-zero-width-trigger`]:{color:b,background:$,border:`1px solid ${f}`,borderInlineStart:0}}}}},p,{deprecatedTokens:g});var f=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let v={xs:"479.98px",sm:"575.98px",md:"767.98px",lg:"991.98px",xl:"1199.98px",xxl:"1599.98px"},h=o.createContext({}),y=(t=0,(e="")=>(t+=1,`${e}${t}`)),x=o.forwardRef((e,t)=>{let{prefixCls:u,className:m,trigger:p,children:g,defaultCollapsed:b=!1,theme:x="dark",style:C={},collapsible:I=!1,reverseArrow:S=!1,width:w=200,collapsedWidth:O=80,zeroWidthTriggerStyle:B,breakpoint:k,onCollapse:E,onBreakpoint:z}=e,j=f(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:H}=(0,o.useContext)(c.LayoutContext),[N,T]=(0,o.useState)("collapsed"in e?e.collapsed:b),[R,P]=(0,o.useState)(!1);(0,o.useEffect)(()=>{"collapsed"in e&&T(e.collapsed)},[e.collapsed]);let M=(t,o)=>{"collapsed"in e||T(t),null==E||E(t,o)},{getPrefixCls:A,direction:D}=(0,o.useContext)(s.ConfigContext),L=A("layout-sider",u),[W,G,q]=$(L),X=(0,o.useRef)(null);X.current=e=>{P(e.matches),null==z||z(e.matches),N!==e.matches&&M(e.matches,"responsive")},(0,o.useEffect)(()=>{let e;function t(e){var t;return null==(t=X.current)?void 0:t.call(X,e)}return void 0!==(null==window?void 0:window.matchMedia)&&k&&k in v&&(e=window.matchMedia(`screen and (max-width: ${v[k]})`),(0,d.addMediaQueryListener)(e,t),t(e)),()=>{(0,d.removeMediaQueryListener)(e,t)}},[k]),(0,o.useEffect)(()=>{let e=y("ant-sider-");return H.addSider(e),()=>H.removeSider(e)},[]);let F=()=>{M(!N,"clickTrigger")},Y=(0,a.default)(j,["collapsed"]),_=N?O:w,V=!Number.isNaN(Number.parseFloat(_))&&Number.isFinite(Number(_))?`${_}px`:String(_),U=0===Number.parseFloat(String(O||0))?o.createElement("span",{onClick:F,className:(0,l.default)(`${L}-zero-width-trigger`,`${L}-zero-width-trigger-${S?"right":"left"}`),style:B},p||o.createElement(n.default,null)):null,Z="rtl"===D==!S,K={expanded:Z?o.createElement(r.default,null):o.createElement(i.default,null),collapsed:Z?o.createElement(i.default,null):o.createElement(r.default,null)}[N?"collapsed":"expanded"],Q=null!==p?U||o.createElement("div",{className:`${L}-trigger`,onClick:F,style:{width:V}},p||K):null,J=Object.assign(Object.assign({},C),{flex:`0 0 ${V}`,maxWidth:V,minWidth:V,width:V}),ee=(0,l.default)(L,`${L}-${x}`,{[`${L}-collapsed`]:!!N,[`${L}-has-trigger`]:I&&null!==p&&!U,[`${L}-below`]:!!R,[`${L}-zero-width`]:0===Number.parseFloat(V)},m,G,q),et=o.useMemo(()=>({siderCollapsed:N}),[N]);return W(o.createElement(h.Provider,{value:et},o.createElement("aside",Object.assign({className:ee},Y,{style:J,ref:t}),o.createElement("div",{className:`${L}-children`},g),I||R&&U?Q:null)))});e.s(["SiderContext",0,h,"default",0,x],290224)},356061,e=>{"use strict";var t=e.i(983409);e.s(["ItemGroup",()=>t.default])},60699,652199,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(375565),n=e.i(356061),i=e.i(290224),r=e.i(867384),l=e.i(343794),a=e.i(175066),d=e.i(529681),s=e.i(613541),c=e.i(763731),u=e.i(242064),m=e.i(321883);let p=(0,t.createContext)({prefixCls:"",firstLevel:!0,inlineCollapsed:!1});var g=e.i(259792),g=g,b=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let $=e=>{let{prefixCls:o,className:n,dashed:i}=e,r=b(e,["prefixCls","className","dashed"]),{getPrefixCls:a}=t.useContext(u.ConfigContext),d=a("menu",o),s=(0,l.default)({[`${d}-item-divider-dashed`]:!!i},n);return t.createElement(g.default,Object.assign({className:s},r))};var f=e.i(452741),f=f,v=e.i(876556),h=e.i(491816);let y=e=>{var o;let n,r,{className:a,children:s,icon:u,title:m,danger:g,extra:b}=e,{prefixCls:$,firstLevel:y,direction:x,disableMenuItemTitleTooltip:C,inlineCollapsed:I}=t.useContext(p),{siderCollapsed:S}=t.useContext(i.SiderContext),w=m;void 0===m?w=y?s:"":!1===m&&(w="");let O={title:w};S||I||(O.title=null,O.open=!1);let B=(0,v.default)(s).length,k=t.createElement(f.default,Object.assign({},(0,d.default)(e,["title","icon","danger"]),{className:(0,l.default)({[`${$}-item-danger`]:g,[`${$}-item-only-child`]:(u?B+1:B)===1},a),title:"string"==typeof m?m:void 0}),(0,c.cloneElement)(u,{className:(0,l.default)(t.isValidElement(u)?null==(o=u.props)?void 0:o.className:void 0,`${$}-item-icon`)}),(n=null==s?void 0:s[0],r=t.createElement("span",{className:(0,l.default)(`${$}-title-content`,{[`${$}-title-content-with-extra`]:!!b||0===b})},s),(!u||t.isValidElement(s)&&"span"===s.type)&&s&&I&&y&&"string"==typeof n?t.createElement("div",{className:`${$}-inline-collapsed-noicon`},n.charAt(0)):r));return C||(k=t.createElement(h.default,Object.assign({},O,{placement:"rtl"===x?"left":"right",classNames:{root:`${$}-inline-collapsed-tooltip`}}),k)),k};var x=e.i(611935),C=e.i(617206),I=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let S=t.createContext(null),w=t.forwardRef((e,o)=>{let{children:n}=e,i=I(e,["children"]),r=t.useContext(S),l=t.useMemo(()=>Object.assign(Object.assign({},r),i),[r,i.prefixCls,i.mode,i.selectable,i.rootClassName]),a=(0,x.supportNodeRef)(n),d=(0,x.useComposeRef)(o,a?(0,x.getNodeRef)(n):null);return t.createElement(S.Provider,{value:l},t.createElement(C.default,{space:!0},a?t.cloneElement(n,{ref:d}):n))});e.s(["OverrideProvider",0,w,"default",0,S],652199),e.i(296059);var O=e.i(915654);e.i(262370);var B=e.i(135551),k=e.i(183293),E=e.i(447580),z=e.i(664142),j=e.i(717356),H=e.i(246422),N=e.i(838378);let T=e=>(0,k.genFocusOutline)(e),R=(e,t)=>{let{componentCls:o,itemColor:n,itemSelectedColor:i,subMenuItemSelectedColor:r,groupTitleColor:l,itemBg:a,subMenuItemBg:d,itemSelectedBg:s,activeBarHeight:c,activeBarWidth:u,activeBarBorderWidth:m,motionDurationSlow:p,motionEaseInOut:g,motionEaseOut:b,itemPaddingInline:$,motionDurationMid:f,itemHoverColor:v,lineType:h,colorSplit:y,itemDisabledColor:x,dangerItemColor:C,dangerItemHoverColor:I,dangerItemSelectedColor:S,dangerItemActiveBg:w,dangerItemSelectedBg:B,popupBg:k,itemHoverBg:E,itemActiveBg:z,menuSubMenuBg:j,horizontalItemSelectedColor:H,horizontalItemSelectedBg:N,horizontalItemBorderRadius:R,horizontalItemHoverBg:P}=e;return{[`${o}-${t}, ${o}-${t} > ${o}`]:{color:n,background:a,[`&${o}-root:focus-visible`]:Object.assign({},T(e)),[`${o}-item`]:{"&-group-title, &-extra":{color:l}},[`${o}-submenu-selected > ${o}-submenu-title`]:{color:r},[`${o}-item, ${o}-submenu-title`]:{color:n,[`&:not(${o}-item-disabled):focus-visible`]:Object.assign({},T(e))},[`${o}-item-disabled, ${o}-submenu-disabled`]:{color:`${x} !important`},[`${o}-item:not(${o}-item-selected):not(${o}-submenu-selected)`]:{[`&:hover, > ${o}-submenu-title:hover`]:{color:v}},[`&:not(${o}-horizontal)`]:{[`${o}-item:not(${o}-item-selected)`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:z}},[`${o}-submenu-title`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:z}}},[`${o}-item-danger`]:{color:C,[`&${o}-item:hover`]:{[`&:not(${o}-item-selected):not(${o}-submenu-selected)`]:{color:I}},[`&${o}-item:active`]:{background:w}},[`${o}-item a`]:{"&, &:hover":{color:"inherit"}},[`${o}-item-selected`]:{color:i,[`&${o}-item-danger`]:{color:S},"a, a:hover":{color:"inherit"}},[`& ${o}-item-selected`]:{backgroundColor:s,[`&${o}-item-danger`]:{backgroundColor:B}},[`&${o}-submenu > ${o}`]:{backgroundColor:j},[`&${o}-popup > ${o}`]:{backgroundColor:k},[`&${o}-submenu-popup > ${o}`]:{backgroundColor:k},[`&${o}-horizontal`]:Object.assign(Object.assign({},"dark"===t?{borderBottom:0}:{}),{[`> ${o}-item, > ${o}-submenu`]:{top:m,marginTop:e.calc(m).mul(-1).equal(),marginBottom:0,borderRadius:R,"&::after":{position:"absolute",insetInline:$,bottom:0,borderBottom:`${(0,O.unit)(c)} solid transparent`,transition:`border-color ${p} ${g}`,content:'""'},"&:hover, &-active, &-open":{background:P,"&::after":{borderBottomWidth:c,borderBottomColor:H}},"&-selected":{color:H,backgroundColor:N,"&:hover":{backgroundColor:N},"&::after":{borderBottomWidth:c,borderBottomColor:H}}}}),[`&${o}-root`]:{[`&${o}-inline, &${o}-vertical`]:{borderInlineEnd:`${(0,O.unit)(m)} ${h} ${y}`}},[`&${o}-inline`]:{[`${o}-sub${o}-inline`]:{background:d},[`${o}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${(0,O.unit)(u)} solid ${i}`,transform:"scaleY(0.0001)",opacity:0,transition:`transform ${f} ${b},opacity ${f} ${b}`,content:'""'},[`&${o}-item-danger`]:{"&::after":{borderInlineEndColor:S}}},[`${o}-selected, ${o}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:`transform ${f} ${g},opacity ${f} ${g}`}}}}}},P=e=>{let{componentCls:t,itemHeight:o,itemMarginInline:n,padding:i,menuArrowSize:r,marginXS:l,itemMarginBlock:a,itemWidth:d,itemPaddingInline:s}=e,c=e.calc(r).add(i).add(l).equal();return{[`${t}-item`]:{position:"relative",overflow:"hidden"},[`${t}-item, ${t}-submenu-title`]:{height:o,lineHeight:(0,O.unit)(o),paddingInline:s,overflow:"hidden",textOverflow:"ellipsis",marginInline:n,marginBlock:a,width:d},[`> ${t}-item, - > ${t}-submenu > ${t}-submenu-title`]:{height:o,lineHeight:(0,O.unit)(o)},[`${t}-item-group-list ${t}-submenu-title, - ${t}-submenu-title`]:{paddingInlineEnd:c}}},M=e=>{let{componentCls:t,motionDurationSlow:o,motionDurationMid:n,motionEaseInOut:i,motionEaseOut:r,iconCls:l,iconSize:a,iconMarginInlineEnd:d}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:`border-color ${o},background ${o},padding calc(${o} + 0.1s) ${i}`,[`${t}-item-icon, ${l}`]:{minWidth:a,fontSize:a,transition:`font-size ${n} ${r},margin ${o} ${i},color ${o}`,"+ span":{marginInlineStart:d,opacity:1,transition:`opacity ${o} ${i},margin ${o},color ${o}`}},[`${t}-item-icon`]:Object.assign({},(0,k.resetIcon)()),[`&${t}-item-only-child`]:{[`> ${l}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important",cursor:"not-allowed",pointerEvents:"none"},[`> ${t}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},A=e=>{let{componentCls:t,motionDurationSlow:o,motionEaseInOut:n,borderRadius:i,menuArrowSize:r,menuArrowOffset:l}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:"absolute",top:"50%",insetInlineEnd:e.margin,width:r,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${o} ${n}, opacity ${o}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:e.calc(r).mul(.6).equal(),height:e.calc(r).mul(.15).equal(),backgroundColor:"currentcolor",borderRadius:i,transition:`background ${o} ${n},transform ${o} ${n},top ${o} ${n},color ${o} ${n}`,content:'""'},"&::before":{transform:`rotate(45deg) translateY(${(0,O.unit)(e.calc(l).mul(-1).equal())})`},"&::after":{transform:`rotate(-45deg) translateY(${(0,O.unit)(l)})`}}}}},D=e=>{var t,o,n;let{colorPrimary:i,colorError:r,colorTextDisabled:l,colorErrorBg:a,colorText:d,colorTextDescription:s,colorBgContainer:c,colorFillAlter:u,colorFillContent:m,lineWidth:p,lineWidthBold:g,controlItemBgActive:b,colorBgTextHover:$,controlHeightLG:f,lineHeight:v,colorBgElevated:h,marginXXS:y,padding:x,fontSize:C,controlHeightSM:I,fontSizeLG:S,colorTextLightSolid:w,colorErrorHover:O}=e,k=null!=(t=e.activeBarWidth)?t:0,E=null!=(o=e.activeBarBorderWidth)?o:p,z=null!=(n=e.itemMarginInline)?n:e.marginXXS,j=new B.FastColor(w).setA(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,itemBorderRadius:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,subMenuItemBorderRadius:e.borderRadiusSM,colorItemText:d,itemColor:d,colorItemTextHover:d,itemHoverColor:d,colorItemTextHoverHorizontal:i,horizontalItemHoverColor:i,colorGroupTitle:s,groupTitleColor:s,colorItemTextSelected:i,itemSelectedColor:i,subMenuItemSelectedColor:i,colorItemTextSelectedHorizontal:i,horizontalItemSelectedColor:i,colorItemBg:c,itemBg:c,colorItemBgHover:$,itemHoverBg:$,colorItemBgActive:m,itemActiveBg:b,colorSubItemBg:u,subMenuItemBg:u,colorItemBgSelected:b,itemSelectedBg:b,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:k,colorActiveBarHeight:g,activeBarHeight:g,colorActiveBarBorderSize:p,activeBarBorderWidth:E,colorItemTextDisabled:l,itemDisabledColor:l,colorDangerItemText:r,dangerItemColor:r,colorDangerItemTextHover:r,dangerItemHoverColor:r,colorDangerItemTextSelected:r,dangerItemSelectedColor:r,colorDangerItemBgActive:a,dangerItemActiveBg:a,colorDangerItemBgSelected:a,dangerItemSelectedBg:a,itemMarginInline:z,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:f,groupTitleLineHeight:v,collapsedWidth:2*f,popupBg:h,itemMarginBlock:y,itemPaddingInline:x,horizontalLineHeight:`${1.15*f}px`,iconSize:C,iconMarginInlineEnd:I-C,collapsedIconSize:S,groupTitleFontSize:C,darkItemDisabledColor:new B.FastColor(w).setA(.25).toRgbString(),darkItemColor:j,darkDangerItemColor:r,darkItemBg:"#001529",darkPopupBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:w,darkItemSelectedBg:i,darkDangerItemSelectedBg:r,darkItemHoverBg:"transparent",darkGroupTitleColor:j,darkItemHoverColor:w,darkDangerItemHoverColor:O,darkDangerItemSelectedColor:w,darkDangerItemActiveBg:r,itemWidth:k?`calc(100% + ${E}px)`:`calc(100% - ${2*z}px)`}};var L=e.i(905054),L=L,W=e.i(465394),G=e.i(122767);let q=e=>{var o;let n,{popupClassName:i,icon:r,title:a,theme:s}=e,u=t.useContext(p),{prefixCls:m,inlineCollapsed:g,theme:b}=u,$=(0,W.useFullPath)();if(r){let e=t.isValidElement(a)&&"span"===a.type;n=t.createElement(t.Fragment,null,(0,c.cloneElement)(r,{className:(0,l.default)(t.isValidElement(r)?null==(o=r.props)?void 0:o.className:void 0,`${m}-item-icon`)}),e?a:t.createElement("span",{className:`${m}-title-content`},a))}else n=g&&!$.length&&a&&"string"==typeof a?t.createElement("div",{className:`${m}-inline-collapsed-noicon`},a.charAt(0)):t.createElement("span",{className:`${m}-title-content`},a);let f=t.useMemo(()=>Object.assign(Object.assign({},u),{firstLevel:!1}),[u]),[v]=(0,G.useZIndex)("Menu");return t.createElement(p.Provider,{value:f},t.createElement(L.default,Object.assign({},(0,d.default)(e,["icon"]),{title:n,popupClassName:(0,l.default)(m,i,`${m}-${s||b}`),popupStyle:Object.assign({zIndex:v},e.popupStyle)})))};var X=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};function F(e){return null===e||!1===e}let Y={item:y,submenu:q,divider:$},_=(0,t.forwardRef)((e,n)=>{var i;let g=t.useContext(S),b=g||{},{getPrefixCls:$,getPopupContainer:f,direction:v,menu:h}=t.useContext(u.ConfigContext),y=$(),{prefixCls:x,className:C,style:I,theme:w="light",expandIcon:B,_internalDisableMenuItemTitleTooltip:T,inlineCollapsed:L,siderCollapsed:W,rootClassName:G,mode:q,selectable:_,onClick:V,overflowedIndicatorPopupClassName:U}=e,Z=X(e,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),K=(0,d.default)(Z,["collapsedWidth"]);null==(i=b.validator)||i.call(b,{mode:q});let Q=(0,a.default)((...e)=>{var t;null==V||V.apply(void 0,e),null==(t=b.onClick)||t.call(b)}),J=b.mode||q,ee=null!=_?_:b.selectable,et=null!=L?L:W,eo={horizontal:{motionName:`${y}-slide-up`},inline:(0,s.default)(y),other:{motionName:`${y}-zoom-big`}},en=$("menu",x||b.prefixCls),ei=(0,m.default)(en),[er,el,ea]=((e,t=e,o=!0)=>(0,H.genStyleHooks)("Menu",e=>{let{colorBgElevated:t,controlHeightLG:o,fontSize:n,darkItemColor:i,darkDangerItemColor:r,darkItemBg:l,darkSubMenuItemBg:a,darkItemSelectedColor:d,darkItemSelectedBg:s,darkDangerItemSelectedBg:c,darkItemHoverBg:u,darkGroupTitleColor:m,darkItemHoverColor:p,darkItemDisabledColor:g,darkDangerItemHoverColor:b,darkDangerItemSelectedColor:$,darkDangerItemActiveBg:f,popupBg:v,darkPopupBg:h}=e,y=e.calc(n).div(7).mul(5).equal(),x=(0,N.mergeToken)(e,{menuArrowSize:y,menuHorizontalHeight:e.calc(o).mul(1.15).equal(),menuArrowOffset:e.calc(y).mul(.25).equal(),menuSubMenuBg:t,calc:e.calc,popupBg:v}),C=(0,N.mergeToken)(x,{itemColor:i,itemHoverColor:p,groupTitleColor:m,itemSelectedColor:d,subMenuItemSelectedColor:d,itemBg:l,popupBg:h,subMenuItemBg:a,itemActiveBg:"transparent",itemSelectedBg:s,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:u,itemDisabledColor:g,dangerItemColor:r,dangerItemHoverColor:b,dangerItemSelectedColor:$,dangerItemActiveBg:f,dangerItemSelectedBg:c,menuSubMenuBg:a,horizontalItemSelectedColor:d,horizontalItemSelectedBg:s});return[(e=>{let{antCls:t,componentCls:o,fontSize:n,motionDurationSlow:i,motionDurationMid:r,motionEaseInOut:l,paddingXS:a,padding:d,colorSplit:s,lineWidth:c,zIndexPopup:u,borderRadiusLG:m,subMenuItemBorderRadius:p,menuArrowSize:g,menuArrowOffset:b,lineType:$,groupTitleLineHeight:f,groupTitleFontSize:v}=e;return[{"":{[o]:Object.assign(Object.assign({},(0,k.clearFix)()),{"&-hidden":{display:"none"}})},[`${o}-submenu-hidden`]:{display:"none"}},{[o]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,k.resetComponent)(e)),(0,k.clearFix)()),{marginBottom:0,paddingInlineStart:0,fontSize:n,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${i} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:"none"},"&-overflow":{display:"flex",[`${o}-item`]:{flex:"none"}},[`${o}-item, ${o}-submenu, ${o}-submenu-title`]:{borderRadius:e.itemBorderRadius},[`${o}-item-group-title`]:{padding:`${(0,O.unit)(a)} ${(0,O.unit)(d)}`,fontSize:v,lineHeight:f,transition:`all ${i}`},[`&-horizontal ${o}-submenu`]:{transition:`border-color ${i} ${l},background ${i} ${l}`},[`${o}-submenu, ${o}-submenu-inline`]:{transition:`border-color ${i} ${l},background ${i} ${l},padding ${r} ${l}`},[`${o}-submenu ${o}-sub`]:{cursor:"initial",transition:`background ${i} ${l},padding ${i} ${l}`},[`${o}-title-content`]:{transition:`color ${i}`,"&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},[`> ${t}-typography-ellipsis-single-line`]:{display:"inline",verticalAlign:"unset"},[`${o}-item-extra`]:{marginInlineStart:"auto",paddingInlineStart:e.padding}},[`${o}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${o}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:s,borderStyle:$,borderWidth:0,borderTopWidth:c,marginBlock:c,padding:0,"&-dashed":{borderStyle:"dashed"}}}),M(e)),{[`${o}-item-group`]:{[`${o}-item-group-list`]:{margin:0,padding:0,[`${o}-item, ${o}-submenu-title`]:{paddingInline:`${(0,O.unit)(e.calc(n).mul(2).equal())} ${(0,O.unit)(d)}`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:u,borderRadius:m,boxShadow:"none",transformOrigin:"0 0",[`&${o}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:0,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'},[`> ${o}`]:Object.assign(Object.assign(Object.assign({borderRadius:m},M(e)),A(e)),{[`${o}-item, ${o}-submenu > ${o}-submenu-title`]:{borderRadius:p},[`${o}-submenu-title::after`]:{transition:`transform ${i} ${l}`}})},[` - &-placement-leftTop, - &-placement-bottomRight, - `]:{transformOrigin:"100% 0"},[` - &-placement-leftBottom, - &-placement-topRight, - `]:{transformOrigin:"100% 100%"},[` - &-placement-rightBottom, - &-placement-topLeft, - `]:{transformOrigin:"0 100%"},[` - &-placement-bottomLeft, - &-placement-rightTop, - `]:{transformOrigin:"0 0"},[` - &-placement-leftTop, - &-placement-leftBottom - `]:{paddingInlineEnd:e.paddingXS},[` - &-placement-rightTop, - &-placement-rightBottom - `]:{paddingInlineStart:e.paddingXS},[` - &-placement-topRight, - &-placement-topLeft - `]:{paddingBottom:e.paddingXS},[` - &-placement-bottomRight, - &-placement-bottomLeft - `]:{paddingTop:e.paddingXS}}}),A(e)),{[`&-inline-collapsed ${o}-submenu-arrow, - &-inline ${o}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${(0,O.unit)(b)})`},"&::after":{transform:`rotate(45deg) translateX(${(0,O.unit)(e.calc(b).mul(-1).equal())})`}},[`${o}-submenu-open${o}-submenu-inline > ${o}-submenu-title > ${o}-submenu-arrow`]:{transform:`translateY(${(0,O.unit)(e.calc(g).mul(.2).mul(-1).equal())})`,"&::after":{transform:`rotate(-45deg) translateX(${(0,O.unit)(e.calc(b).mul(-1).equal())})`},"&::before":{transform:`rotate(45deg) translateX(${(0,O.unit)(b)})`}}})},{[`${t}-layout-header`]:{[o]:{lineHeight:"inherit"}}}]})(x),(e=>{let{componentCls:t,motionDurationSlow:o,horizontalLineHeight:n,colorSplit:i,lineWidth:r,lineType:l,itemPaddingInline:a}=e;return{[`${t}-horizontal`]:{lineHeight:n,border:0,borderBottom:`${(0,O.unit)(r)} ${l} ${i}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${t}-item, ${t}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:a},[`> ${t}-item:hover, - > ${t}-item-active, - > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${t}-item, ${t}-submenu-title`]:{transition:`border-color ${o},background ${o}`},[`${t}-submenu-arrow`]:{display:"none"}}}})(x),(e=>{let{componentCls:t,iconCls:o,itemHeight:n,colorTextLightSolid:i,dropdownWidth:r,controlHeightLG:l,motionEaseOut:a,paddingXL:d,itemMarginInline:s,fontSizeLG:c,motionDurationFast:u,motionDurationSlow:m,paddingXS:p,boxShadowSecondary:g,collapsedWidth:b,collapsedIconSize:$}=e,f={height:n,lineHeight:(0,O.unit)(n),listStylePosition:"inside",listStyleType:"disc"};return[{[t]:{"&-inline, &-vertical":Object.assign({[`&${t}-root`]:{boxShadow:"none"}},P(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:Object.assign(Object.assign({},P(e)),{boxShadow:g})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:r,maxHeight:`calc(100vh - ${(0,O.unit)(e.calc(l).mul(2.5).equal())})`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${t}-inline`]:{width:"100%",[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:"flex",alignItems:"center",transition:`border-color ${m},background ${m},padding ${u} ${a}`,[`> ${t}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${t}-submenu > ${t}-submenu-title`]:f,[`& ${t}-item-group-title`]:{paddingInlineStart:d}},[`${t}-item`]:f}},{[`${t}-inline-collapsed`]:{width:b,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:c,textAlign:"center"}}},[`> ${t}-item, - > ${t}-item-group > ${t}-item-group-list > ${t}-item, - > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title, - > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${(0,O.unit)(e.calc($).div(2).equal())} - ${(0,O.unit)(s)})`,textOverflow:"clip",[` - ${t}-submenu-arrow, - ${t}-submenu-expand-icon - `]:{opacity:0},[`${t}-item-icon, ${o}`]:{margin:0,fontSize:$,lineHeight:(0,O.unit)(n),"+ span":{display:"inline-block",opacity:0}}},[`${t}-item-icon, ${o}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${t}-item-icon, ${o}`]:{display:"none"},"a, a:hover":{color:i}},[`${t}-item-group-title`]:Object.assign(Object.assign({},k.textEllipsis),{paddingInline:p})}}]})(x),R(x,"light"),R(C,"dark"),(({componentCls:e,menuArrowOffset:t,calc:o})=>({[`${e}-rtl`]:{direction:"rtl"},[`${e}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${e}-rtl${e}-vertical, - ${e}-submenu-rtl ${e}-vertical`]:{[`${e}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(${(0,O.unit)(o(t).mul(-1).equal())})`},"&::after":{transform:`rotate(45deg) translateY(${(0,O.unit)(t)})`}}}}))(x),(0,E.genCollapseMotion)(x),(0,z.initSlideMotion)(x,"slide-up"),(0,z.initSlideMotion)(x,"slide-down"),(0,j.initZoomMotion)(x,"zoom-big")]},D,{deprecatedTokens:[["colorGroupTitle","groupTitleColor"],["radiusItem","itemBorderRadius"],["radiusSubMenuItem","subMenuItemBorderRadius"],["colorItemText","itemColor"],["colorItemTextHover","itemHoverColor"],["colorItemTextHoverHorizontal","horizontalItemHoverColor"],["colorItemTextSelected","itemSelectedColor"],["colorItemTextSelectedHorizontal","horizontalItemSelectedColor"],["colorItemTextDisabled","itemDisabledColor"],["colorDangerItemText","dangerItemColor"],["colorDangerItemTextHover","dangerItemHoverColor"],["colorDangerItemTextSelected","dangerItemSelectedColor"],["colorDangerItemBgActive","dangerItemActiveBg"],["colorDangerItemBgSelected","dangerItemSelectedBg"],["colorItemBg","itemBg"],["colorItemBgHover","itemHoverBg"],["colorSubItemBg","subMenuItemBg"],["colorItemBgActive","itemActiveBg"],["colorItemBgSelectedHorizontal","horizontalItemSelectedBg"],["colorActiveBarWidth","activeBarWidth"],["colorActiveBarHeight","activeBarHeight"],["colorActiveBarBorderSize","activeBarBorderWidth"],["colorItemBgSelected","itemSelectedBg"]],injectStyle:o,unitless:{groupTitleLineHeight:!0}})(e,t))(en,ei,!g),ed=(0,l.default)(`${en}-${w}`,null==h?void 0:h.className,C),es=t.useMemo(()=>{var e,o;if("function"==typeof B||F(B))return B||null;if("function"==typeof b.expandIcon||F(b.expandIcon))return b.expandIcon||null;if("function"==typeof(null==h?void 0:h.expandIcon)||F(null==h?void 0:h.expandIcon))return(null==h?void 0:h.expandIcon)||null;let n=null!=(e=null!=B?B:null==b?void 0:b.expandIcon)?e:null==h?void 0:h.expandIcon;return(0,c.cloneElement)(n,{className:(0,l.default)(`${en}-submenu-expand-icon`,t.isValidElement(n)?null==(o=n.props)?void 0:o.className:void 0)})},[B,null==b?void 0:b.expandIcon,null==h?void 0:h.expandIcon,en]),ec=t.useMemo(()=>({prefixCls:en,inlineCollapsed:et||!1,direction:v,firstLevel:!0,theme:w,mode:J,disableMenuItemTitleTooltip:T}),[en,et,v,T,w]);return er(t.createElement(S.Provider,{value:null},t.createElement(p.Provider,{value:ec},t.createElement(o.default,Object.assign({getPopupContainer:f,overflowedIndicator:t.createElement(r.default,null),overflowedIndicatorPopupClassName:(0,l.default)(en,`${en}-${w}`,U),mode:J,selectable:ee,onClick:Q},K,{inlineCollapsed:et,style:Object.assign(Object.assign({},null==h?void 0:h.style),I),className:ed,prefixCls:en,direction:v,defaultMotions:eo,expandIcon:es,ref:n,rootClassName:(0,l.default)(G,el,b.rootClassName,ea,ei),_internalComponents:Y})))))}),V=(0,t.forwardRef)((e,o)=>{let n=(0,t.useRef)(null),r=t.useContext(i.SiderContext);return(0,t.useImperativeHandle)(o,()=>({menu:n.current,focus:e=>{var t;null==(t=n.current)||t.focus(e)}})),t.createElement(_,Object.assign({ref:n},e,r))});V.Item=y,V.SubMenu=q,V.Divider=$,V.ItemGroup=n.ItemGroup,e.s(["default",0,V],60699)},138540,e=>{"use strict";e.s(["default",0,e=>"object"!=typeof e&&"function"!=typeof e||null===e])},21539,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(801312),n=e.i(286612),i=e.i(343794),r=e.i(878081),l=e.i(175066),a=e.i(914949),d=e.i(529681),s=e.i(122767),c=e.i(138540),u=e.i(805984),m=e.i(805484),p=e.i(763731),g=e.i(747656),b=e.i(340010),$=e.i(242064),f=e.i(321883),v=e.i(60699),h=e.i(652199),y=e.i(104458);e.i(296059);var x=e.i(915654),C=e.i(183293),I=e.i(777489),S=e.i(664142),w=e.i(717356),O=e.i(320560),B=e.i(307358),k=e.i(246422),E=e.i(838378);let z=(0,k.genStyleHooks)("Dropdown",e=>{let{marginXXS:t,sizePopupArrow:o,paddingXXS:n,componentCls:i}=e,r=(0,E.mergeToken)(e,{menuCls:`${i}-menu`,dropdownArrowDistance:e.calc(o).div(2).add(t).equal(),dropdownEdgeChildPadding:n});return[(e=>{let{componentCls:t,menuCls:o,zIndexPopup:n,dropdownArrowDistance:i,sizePopupArrow:r,antCls:l,iconCls:a,motionDurationMid:d,paddingBlock:s,fontSize:c,dropdownEdgeChildPadding:u,colorTextDisabled:m,fontSizeIcon:p,controlPaddingHorizontal:g,colorBgElevated:b}=e;return[{[t]:{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:n,display:"block","&::before":{position:"absolute",insetBlock:e.calc(r).div(2).sub(i).equal(),zIndex:-9999,opacity:1e-4,content:'""'},"&-menu-vertical":{maxHeight:"100vh",overflowY:"auto"},[`&-trigger${l}-btn`]:{[`& > ${a}-down, & > ${l}-btn-icon > ${a}-down`]:{fontSize:p}},[`${t}-wrap`]:{position:"relative",[`${l}-btn > ${a}-down`]:{fontSize:p},[`${a}-down::before`]:{transition:`transform ${d}`}},[`${t}-wrap-open`]:{[`${a}-down::before`]:{transform:"rotate(180deg)"}},[` - &-hidden, - &-menu-hidden, - &-menu-submenu-hidden - `]:{display:"none"},[`&${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottomLeft, - &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottomLeft, - &${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottom, - &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottom, - &${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottomRight, - &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:S.slideUpIn},[`&${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-topLeft, - &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-topLeft, - &${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-top, - &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-top, - &${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-topRight, - &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-topRight`]:{animationName:S.slideDownIn},[`&${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottomLeft, - &${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottom, - &${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:S.slideUpOut},[`&${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-topLeft, - &${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-top, - &${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-topRight`]:{animationName:S.slideDownOut}}},(0,O.default)(e,b,{arrowPlacement:{top:!0,bottom:!0}}),{[`${t} ${o}`]:{position:"relative",margin:0},[`${o}-submenu-popup`]:{position:"absolute",zIndex:n,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${t}, ${t}-menu-submenu`]:Object.assign(Object.assign({},(0,C.resetComponent)(e)),{[o]:Object.assign(Object.assign({padding:u,listStyleType:"none",backgroundColor:b,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary},(0,C.genFocusStyle)(e)),{"&:empty":{padding:0,boxShadow:"none"},[`${o}-item-group-title`]:{padding:`${(0,x.unit)(s)} ${(0,x.unit)(g)}`,color:e.colorTextDescription,transition:`all ${d}`},[`${o}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${o}-item-icon`]:{minWidth:c,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${o}-title-content`]:{flex:"auto","&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},"> a":{color:"inherit",transition:`all ${d}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}},[`${o}-item-extra`]:{paddingInlineStart:e.padding,marginInlineStart:"auto",fontSize:e.fontSizeSM,color:e.colorTextDescription}},[`${o}-item, ${o}-submenu-title`]:Object.assign(Object.assign({display:"flex",margin:0,padding:`${(0,x.unit)(s)} ${(0,x.unit)(g)}`,color:e.colorText,fontWeight:"normal",fontSize:c,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${d}`,borderRadius:e.borderRadiusSM,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},(0,C.genFocusStyle)(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:m,cursor:"not-allowed","&:hover":{color:m,backgroundColor:b,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${(0,x.unit)(e.marginXXS)} 0`,overflow:"hidden",lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:e.colorIcon,fontSize:p,fontStyle:"normal"}}}),[`${o}-item-group-list`]:{margin:`0 ${(0,x.unit)(e.marginXS)}`,padding:0,listStyle:"none"},[`${o}-submenu-title`]:{paddingInlineEnd:e.calc(g).add(e.fontSizeSM).equal()},[`${o}-submenu-vertical`]:{position:"relative"},[`${o}-submenu${o}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:m,backgroundColor:b,cursor:"not-allowed"}},[`${o}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})})},[(0,S.initSlideMotion)(e,"slide-up"),(0,S.initSlideMotion)(e,"slide-down"),(0,I.initMoveMotion)(e,"move-up"),(0,I.initMoveMotion)(e,"move-down"),(0,w.initZoomMotion)(e,"zoom-big")]]})(r),(e=>{let{componentCls:t,menuCls:o,colorError:n,colorTextLightSolid:i}=e,r=`${o}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${o} ${r}`]:{[`&${r}-danger:not(${r}-disabled)`]:{color:n,"&:hover":{color:i,backgroundColor:n}}}}}})(r)]},e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+50,paddingBlock:(e.controlHeight-e.fontSize*e.lineHeight)/2},(0,O.getArrowOffsetToken)({contentRadius:e.borderRadiusLG,limitVerticalRadius:!0})),(0,B.getArrowToken)(e)),{resetStyle:!1}),j=e=>{var m;let{menu:x,arrow:C,prefixCls:I,children:S,trigger:w,disabled:O,dropdownRender:B,popupRender:k,getPopupContainer:E,overlayClassName:j,rootClassName:H,overlayStyle:N,open:T,onOpenChange:R,visible:P,onVisibleChange:M,mouseEnterDelay:A=.15,mouseLeaveDelay:D=.1,autoAdjustOverflow:L=!0,placement:W="",overlay:G,transitionName:q,destroyOnHidden:X,destroyPopupOnHide:F}=e,{getPopupContainer:Y,getPrefixCls:_,direction:V,dropdown:U}=t.useContext($.ConfigContext),Z=k||B;(0,g.devUseWarning)("Dropdown");let K=t.useMemo(()=>{let e=_();return void 0!==q?q:W.includes("top")?`${e}-slide-down`:`${e}-slide-up`},[_,W,q]),Q=t.useMemo(()=>W?W.includes("Center")?W.slice(0,W.indexOf("Center")):W:"rtl"===V?"bottomRight":"bottomLeft",[W,V]),J=_("dropdown",I),ee=(0,f.default)(J),[et,eo,en]=z(J,ee),[,ei]=(0,y.useToken)(),er=t.Children.only((0,c.default)(S)?t.createElement("span",null,S):S),el=(0,p.cloneElement)(er,{className:(0,i.default)(`${J}-trigger`,{[`${J}-rtl`]:"rtl"===V},er.props.className),disabled:null!=(m=er.props.disabled)?m:O}),ea=O?[]:w,ed=!!(null==ea?void 0:ea.includes("contextMenu")),[es,ec]=(0,a.default)(!1,{value:null!=T?T:P}),eu=(0,l.default)(e=>{null==R||R(e,{source:"trigger"}),null==M||M(e),ec(e)}),em=(0,i.default)(j,H,eo,en,ee,null==U?void 0:U.className,{[`${J}-rtl`]:"rtl"===V}),ep=(0,u.default)({arrowPointAtCenter:"object"==typeof C&&C.pointAtCenter,autoAdjustOverflow:L,offset:ei.marginXXS,arrowWidth:C?ei.sizePopupArrow:0,borderRadius:ei.borderRadius}),eg=(0,l.default)(()=>{null!=x&&x.selectable&&null!=x&&x.multiple||(null==R||R(!1,{source:"menu"}),ec(!1))}),[eb,e$]=(0,s.useZIndex)("Dropdown",null==N?void 0:N.zIndex),ef=t.createElement(r.default,Object.assign({alignPoint:ed},(0,d.default)(e,["rootClassName"]),{mouseEnterDelay:A,mouseLeaveDelay:D,visible:es,builtinPlacements:ep,arrow:!!C,overlayClassName:em,prefixCls:J,getPopupContainer:E||Y,transitionName:K,trigger:ea,overlay:()=>{let e;return e=(null==x?void 0:x.items)?t.createElement(v.default,Object.assign({},x)):"function"==typeof G?G():G,Z&&(e=Z(e)),e=t.Children.only("string"==typeof e?t.createElement("span",null,e):e),t.createElement(h.OverrideProvider,{prefixCls:`${J}-menu`,rootClassName:(0,i.default)(en,ee),expandIcon:t.createElement("span",{className:`${J}-menu-submenu-arrow`},"rtl"===V?t.createElement(o.default,{className:`${J}-menu-submenu-arrow-icon`}):t.createElement(n.default,{className:`${J}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:eg,validator:({mode:e})=>{}},e)},placement:Q,onVisibleChange:eu,overlayStyle:Object.assign(Object.assign(Object.assign({},null==U?void 0:U.style),N),{zIndex:eb}),autoDestroy:null!=X?X:F}),el);return eb&&(ef=t.createElement(b.default.Provider,{value:e$},ef)),et(ef)},H=(0,m.default)(j,"align",void 0,"dropdown",e=>e);j._InternalPanelDoNotUseOrYouWillBeFired=e=>t.createElement(H,Object.assign({},e),t.createElement("span",null));var N=e.i(867384),T=e.i(920228),R=e.i(38243),P=e.i(249616),M=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let A=e=>{let{getPopupContainer:o,getPrefixCls:n,direction:r}=t.useContext($.ConfigContext),{prefixCls:l,type:a="default",danger:d,disabled:s,loading:c,onClick:u,htmlType:m,children:p,className:g,menu:b,arrow:f,autoFocus:v,overlay:h,trigger:y,align:x,open:C,onOpenChange:I,placement:S,getPopupContainer:w,href:O,icon:B=t.createElement(N.default,null),title:k,buttonsRender:E=e=>e,mouseEnterDelay:z,mouseLeaveDelay:H,overlayClassName:A,overlayStyle:D,destroyOnHidden:L,destroyPopupOnHide:W,dropdownRender:G,popupRender:q}=e,X=M(e,["prefixCls","type","danger","disabled","loading","onClick","htmlType","children","className","menu","arrow","autoFocus","overlay","trigger","align","open","onOpenChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyOnHidden","destroyPopupOnHide","dropdownRender","popupRender"]),F=n("dropdown",l),Y=`${F}-button`,_={menu:b,arrow:f,autoFocus:v,align:x,disabled:s,trigger:s?[]:y,onOpenChange:I,getPopupContainer:w||o,mouseEnterDelay:z,mouseLeaveDelay:H,overlayClassName:A,overlayStyle:D,destroyOnHidden:L,popupRender:q||G},{compactSize:V,compactItemClassnames:U}=(0,P.useCompactItemContext)(F,r),Z=(0,i.default)(Y,U,g);"destroyPopupOnHide"in e&&(_.destroyPopupOnHide=W),"overlay"in e&&(_.overlay=h),"open"in e&&(_.open=C),"placement"in e?_.placement=S:_.placement="rtl"===r?"bottomLeft":"bottomRight";let[K,Q]=E([t.createElement(T.default,{type:a,danger:d,disabled:s,loading:c,onClick:u,htmlType:m,href:O,title:k},p),t.createElement(T.default,{type:a,danger:d,icon:B})]);return t.createElement(R.default.Compact,Object.assign({className:Z,size:V,block:!0},X),K,t.createElement(j,Object.assign({},_),Q))};A.__ANT_BUTTON=!0,j.Button=A,e.s(["default",0,j],21539)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/00bcc8d30dd19793.js b/litellm/proxy/_experimental/out/_next/static/chunks/00bcc8d30dd19793.js new file mode 100644 index 00000000000..6ad60ffa7fc --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/00bcc8d30dd19793.js @@ -0,0 +1,9 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});l.displayName="Table",e.s(["Table",()=>l],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});l.displayName="TableBody",e.s(["TableBody",()=>l],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});l.displayName="TableCell",e.s(["TableCell",()=>l],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});l.displayName="TableHead",e.s(["TableHead",()=>l],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});l.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>l],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("row"),i)},s),n))});l.displayName="TableRow",e.s(["TableRow",()=>l],496020)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let o=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],l=e=>({_s:e,status:o[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),n=e=>e?6:5,i=(e,t,r,a,o)=>{clearTimeout(a.current);let n=l(e);t(n),r.current=n,o&&o({current:n})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var g=e.i(95779);let m={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},b=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,g.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,g.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},p=(0,c.makeClassName)("Button"),f=({loading:e,iconSize:t,iconPosition:r,Icon:o,needMargin:l,transitionStatus:n})=>{let i=l?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),g={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(p("icon"),"animate-spin shrink-0",i,g.default,g[n]),style:{transition:"width 150ms"}}):a.default.createElement(o,{className:(0,d.tremorTwMerge)(p("icon"),"shrink-0",t,i)})},h=a.default.forwardRef((e,o)=>{let{icon:u,iconPosition:g=s.HorizontalPositions.Left,size:h=s.Sizes.SM,color:C,variant:k="primary",disabled:v,loading:x=!1,loadingText:w,children:$,tooltip:y,className:E}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),N=x||v,j=void 0!==u||x,S=x&&w,T=!(!$&&!S),R=(0,d.tremorTwMerge)(m[h].height,m[h].width),B="light"!==k?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",z=b(k,C),M=("light"!==k?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[h],{tooltipProps:I,getReferenceProps:q}=(0,r.useTooltip)(300),[P,H]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:o,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:g}={})=>{let[m,b]=(0,a.useState)(()=>l(d?2:n(c))),p=(0,a.useRef)(m),f=(0,a.useRef)(0),[h,C]="object"==typeof s?[s.enter,s.exit]:[s,s],k=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return n(t)}})(p.current._s,u);e&&i(e,b,p,f,g)},[g,u]);return[m,(0,a.useCallback)(a=>{let l=e=>{switch(i(e,b,p,f,g),e){case 1:h>=0&&(f.current=((...e)=>setTimeout(...e))(k,h));break;case 4:C>=0&&(f.current=((...e)=>setTimeout(...e))(k,C));break;case 0:case 3:f.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||l(e+1)},0)}},s=p.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||l(e?+!r:2):s&&l(t?o?3:4:n(u))},[k,g,e,t,r,o,h,C,u]),k]})({timeout:50});return(0,a.useEffect)(()=>{H(x)},[x]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([o,I.refs.setReference]),className:(0,d.tremorTwMerge)(p("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",B,M.paddingX,M.paddingY,M.fontSize,z.textColor,z.bgColor,z.borderColor,z.hoverBorderColor,N?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(b(k,C).hoverTextColor,b(k,C).hoverBgColor,b(k,C).hoverBorderColor),E),disabled:N},q,O),a.default.createElement(r.default,Object.assign({text:y},I)),j&&g!==s.HorizontalPositions.Right?a.default.createElement(f,{loading:x,iconSize:R,iconPosition:g,Icon:u,transitionStatus:P.status,needMargin:T}):null,S||$?a.default.createElement("span",{className:(0,d.tremorTwMerge)(p("text"),"text-tremor-default whitespace-nowrap")},S?w:$):null,j&&g===s.HorizontalPositions.Right?a.default.createElement(f,{loading:x,iconSize:R,iconPosition:g,Icon:u,transitionStatus:P.status,needMargin:T}):null)});h.displayName="Button",e.s(["Button",()=>h],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),o=e.i(95779),l=e.i(444755),n=e.i(673706);let i=(0,n.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:u,className:g}=e,m=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,l.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,n.getColorClassNames)(c,o.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),g)},m),u)});s.displayName="Card",e.s(["Card",()=>s],304967)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),o=e.i(529681);let l=e=>{let{prefixCls:a,className:o,style:l,size:n,shape:i}=e,s=(0,r.default)({[`${a}-lg`]:"large"===n,[`${a}-sm`]:"small"===n}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,r.default)(a,s,d,o),style:Object.assign(Object.assign({},c),l)})};e.i(296059);var n=e.i(694758),i=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),g=e=>Object.assign({width:e},u(e)),m=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),b=e=>Object.assign({width:e},u(e)),p=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},f=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),h=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:o,skeletonButtonCls:l,skeletonInputCls:n,skeletonImageCls:i,controlHeight:s,controlHeightLG:d,controlHeightSM:u,gradientFromColor:h,padding:C,marginSM:k,borderRadius:v,titleHeight:x,blockRadius:w,paragraphLiHeight:$,controlHeightXS:y,paragraphMarginTop:E}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:h},g(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},g(d)),[`${r}-sm`]:Object.assign({},g(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:x,background:h,borderRadius:w,[`+ ${o}`]:{marginBlockStart:u}},[o]:{padding:0,"> li":{width:"100%",height:$,listStyle:"none",background:h,borderRadius:w,"+ li":{marginBlockStart:y}}},[`${o}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${o} > li`]:{borderRadius:v}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:k,[`+ ${o}`]:{marginBlockStart:E}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:o,controlHeightSM:l,gradientFromColor:n,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},f(a,i))},p(e,a,r)),{[`${r}-lg`]:Object.assign({},f(o,i))}),p(e,o,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},f(l,i))}),p(e,l,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:o,controlHeightSM:l}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},g(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},g(o)),[`${t}${t}-sm`]:Object.assign({},g(l))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:o,controlHeightSM:l,gradientFromColor:n,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:r},m(t,i)),[`${a}-lg`]:Object.assign({},m(o,i)),[`${a}-sm`]:Object.assign({},m(l,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:o,calc:l}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:o},b(l(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},b(r)),{maxWidth:l(r).mul(4).equal(),maxHeight:l(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[l]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${a}, + ${o} > li, + ${r}, + ${l}, + ${n}, + ${i} + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:o,style:l,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:l},i)},k=({prefixCls:e,className:a,width:o,style:l})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},l)});function v(e){return e&&"object"==typeof e?e:{}}let x=e=>{let{prefixCls:o,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:u=!1,title:g=!0,paragraph:m=!0,active:b,round:p}=e,{getPrefixCls:f,direction:x,className:w,style:$}=(0,a.useComponentConfig)("skeleton"),y=f("skeleton",o),[E,O,N]=h(y);if(n||!("loading"in e)){let e,a,o=!!u,n=!!g,c=!!m;if(o){let r=Object.assign(Object.assign({prefixCls:`${y}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),v(u));e=t.createElement("div",{className:`${y}-header`},t.createElement(l,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${y}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),v(g));e=t.createElement(k,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${y}-paragraph`},(e={},o&&n||(e.width="61%"),!o&&n?e.rows=3:e.rows=2,e)),v(m));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${y}-content`},e,r)}let f=(0,r.default)(y,{[`${y}-with-avatar`]:o,[`${y}-active`]:b,[`${y}-rtl`]:"rtl"===x,[`${y}-round`]:p},w,i,s,O,N);return E(t.createElement("div",{className:f,style:Object.assign(Object.assign({},$),d)},e,a))}return null!=c?c:null};x.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),m=g("skeleton",n),[b,p,f]=h(m),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:d,[`${m}-block`]:c},i,s,p,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${m}-button`,size:u},C))))},x.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),m=g("skeleton",n),[b,p,f]=h(m),C=(0,o.default)(e,["prefixCls","className"]),k=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:d},i,s,p,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${m}-avatar`,shape:c,size:u},C))))},x.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),m=g("skeleton",n),[b,p,f]=h(m),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:d,[`${m}-block`]:c},i,s,p,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${m}-input`,size:u},C))))},x.Image=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[u,g,m]=h(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},l,n,g,m);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,l),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},x.Node=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",o),[g,m,b]=h(u),p=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},m,l,n,b);return g(t.createElement("div",{className:p},t.createElement("div",{className:(0,r.default)(`${u}-image`,l),style:i},d)))},e.s(["default",0,x],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(o.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["default",0,l],959013)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},544195,e=>{"use strict";var t=e.i(271645),r=e.i(343794),a=e.i(981444),o=e.i(914949),l=e.i(244009),n=e.i(242064),i=e.i(321883),s=e.i(517455);let d=t.createContext(null),c=d.Provider,u=t.createContext(null),g=u.Provider;e.i(247167);var m=e.i(91874),b=e.i(611935),p=e.i(121872),f=e.i(26905),h=e.i(681216),C=e.i(937328),k=e.i(62139);e.i(296059);var v=e.i(915654),x=e.i(183293),w=e.i(246422),$=e.i(838378);let y=(0,w.genStyleHooks)("Radio",e=>{let{controlOutline:t,controlOutlineWidth:r}=e,a=`0 0 0 ${(0,v.unit)(r)} ${t}`,o=(0,$.mergeToken)(e,{radioFocusShadow:a,radioButtonFocusShadow:a});return[(e=>{let{componentCls:t,antCls:r}=e,a=`${t}-group`;return{[a]:Object.assign(Object.assign({},(0,x.resetComponent)(e)),{display:"inline-block",fontSize:0,[`&${a}-rtl`]:{direction:"rtl"},[`&${a}-block`]:{display:"flex"},[`${r}-badge ${r}-badge-count`]:{zIndex:1},[`> ${r}-badge:not(:first-child) > ${r}-button-wrapper`]:{borderInlineStart:"none"}})}})(o),(e=>{let{componentCls:t,wrapperMarginInlineEnd:r,colorPrimary:a,radioSize:o,motionDurationSlow:l,motionDurationMid:n,motionEaseInOutCirc:i,colorBgContainer:s,colorBorder:d,lineWidth:c,colorBgContainerDisabled:u,colorTextDisabled:g,paddingXS:m,dotColorDisabled:b,lineType:p,radioColor:f,radioBgColor:h,calc:C}=e,k=`${t}-inner`,w=C(o).sub(C(4).mul(2)),$=C(1).mul(o).equal({unit:!0});return{[`${t}-wrapper`]:Object.assign(Object.assign({},(0,x.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:r,cursor:"pointer","&:last-child":{marginInlineEnd:0},[`&${t}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:e.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},"&-block":{flex:1,justifyContent:"center"},[`${t}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${(0,v.unit)(c)} ${p} ${a}`,borderRadius:"50%",visibility:"hidden",opacity:0,content:'""'},[t]:Object.assign(Object.assign({},(0,x.resetComponent)(e)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${t}-wrapper:hover &, + &:hover ${k}`]:{borderColor:a},[`${t}-input:focus-visible + ${k}`]:(0,x.genFocusOutline)(e),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:"visible"},[`${t}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:$,height:$,marginBlockStart:C(1).mul(o).div(-2).equal({unit:!0}),marginInlineStart:C(1).mul(o).div(-2).equal({unit:!0}),backgroundColor:f,borderBlockStart:0,borderInlineStart:0,borderRadius:$,transform:"scale(0)",opacity:0,transition:`all ${l} ${i}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:$,height:$,backgroundColor:s,borderColor:d,borderStyle:"solid",borderWidth:c,borderRadius:"50%",transition:`all ${n}`},[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${t}-checked`]:{[k]:{borderColor:a,backgroundColor:h,"&::after":{transform:`scale(${e.calc(e.dotSize).div(o).equal()})`,opacity:1,transition:`all ${l} ${i}`}}},[`${t}-disabled`]:{cursor:"not-allowed",[k]:{backgroundColor:u,borderColor:d,cursor:"not-allowed","&::after":{backgroundColor:b}},[`${t}-input`]:{cursor:"not-allowed"},[`${t}-disabled + span`]:{color:g,cursor:"not-allowed"},[`&${t}-checked`]:{[k]:{"&::after":{transform:`scale(${C(w).div(o).equal()})`}}}},[`span${t} + *`]:{paddingInlineStart:m,paddingInlineEnd:m}})}})(o),(e=>{let{buttonColor:t,controlHeight:r,componentCls:a,lineWidth:o,lineType:l,colorBorder:n,motionDurationMid:i,buttonPaddingInline:s,fontSize:d,buttonBg:c,fontSizeLG:u,controlHeightLG:g,controlHeightSM:m,paddingXS:b,borderRadius:p,borderRadiusSM:f,borderRadiusLG:h,buttonCheckedBg:C,buttonSolidCheckedColor:k,colorTextDisabled:w,colorBgContainerDisabled:$,buttonCheckedBgDisabled:y,buttonCheckedColorDisabled:E,colorPrimary:O,colorPrimaryHover:N,colorPrimaryActive:j,buttonSolidCheckedBg:S,buttonSolidCheckedHoverBg:T,buttonSolidCheckedActiveBg:R,calc:B}=e;return{[`${a}-button-wrapper`]:{position:"relative",display:"inline-block",height:r,margin:0,paddingInline:s,paddingBlock:0,color:t,fontSize:d,lineHeight:(0,v.unit)(B(r).sub(B(o).mul(2)).equal()),background:c,border:`${(0,v.unit)(o)} ${l} ${n}`,borderBlockStartWidth:B(o).add(.02).equal(),borderInlineEndWidth:o,cursor:"pointer",transition:`color ${i},background ${i},box-shadow ${i}`,a:{color:t},[`> ${a}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:last-child)":{marginInlineEnd:B(o).mul(-1).equal()},"&:first-child":{borderInlineStart:`${(0,v.unit)(o)} ${l} ${n}`,borderStartStartRadius:p,borderEndStartRadius:p},"&:last-child":{borderStartEndRadius:p,borderEndEndRadius:p},"&:first-child:last-child":{borderRadius:p},[`${a}-group-large &`]:{height:g,fontSize:u,lineHeight:(0,v.unit)(B(g).sub(B(o).mul(2)).equal()),"&:first-child":{borderStartStartRadius:h,borderEndStartRadius:h},"&:last-child":{borderStartEndRadius:h,borderEndEndRadius:h}},[`${a}-group-small &`]:{height:m,paddingInline:B(b).sub(o).equal(),paddingBlock:0,lineHeight:(0,v.unit)(B(m).sub(B(o).mul(2)).equal()),"&:first-child":{borderStartStartRadius:f,borderEndStartRadius:f},"&:last-child":{borderStartEndRadius:f,borderEndEndRadius:f}},"&:hover":{position:"relative",color:O},"&:has(:focus-visible)":(0,x.genFocusOutline)(e),[`${a}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${a}-button-wrapper-disabled)`]:{zIndex:1,color:O,background:C,borderColor:O,"&::before":{backgroundColor:O},"&:first-child":{borderColor:O},"&:hover":{color:N,borderColor:N,"&::before":{backgroundColor:N}},"&:active":{color:j,borderColor:j,"&::before":{backgroundColor:j}}},[`${a}-group-solid &-checked:not(${a}-button-wrapper-disabled)`]:{color:k,background:S,borderColor:S,"&:hover":{color:k,background:T,borderColor:T},"&:active":{color:k,background:R,borderColor:R}},"&-disabled":{color:w,backgroundColor:$,borderColor:n,cursor:"not-allowed","&:first-child, &:hover":{color:w,backgroundColor:$,borderColor:n}},[`&-disabled${a}-button-wrapper-checked`]:{color:E,backgroundColor:y,borderColor:n,boxShadow:"none"},"&-block":{flex:1,textAlign:"center"}}}})(o)]},e=>{let{wireframe:t,padding:r,marginXS:a,lineWidth:o,fontSizeLG:l,colorText:n,colorBgContainer:i,colorTextDisabled:s,controlItemBgActiveDisabled:d,colorTextLightSolid:c,colorPrimary:u,colorPrimaryHover:g,colorPrimaryActive:m,colorWhite:b}=e;return{radioSize:l,dotSize:t?l-8:l-(4+o)*2,dotColorDisabled:s,buttonSolidCheckedColor:c,buttonSolidCheckedBg:u,buttonSolidCheckedHoverBg:g,buttonSolidCheckedActiveBg:m,buttonBg:i,buttonCheckedBg:i,buttonColor:n,buttonCheckedBgDisabled:d,buttonCheckedColorDisabled:s,buttonPaddingInline:r-o,wrapperMarginInlineEnd:a,radioColor:t?u:b,radioBgColor:t?i:u}},{unitless:{radioSize:!0,dotSize:!0}});var E=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let O=t.forwardRef((e,a)=>{var o,l;let s=t.useContext(d),c=t.useContext(u),{getPrefixCls:g,direction:v,radio:x}=t.useContext(n.ConfigContext),w=t.useRef(null),$=(0,b.composeRef)(a,w),{isFormItemInput:O}=t.useContext(k.FormItemInputContext),{prefixCls:N,className:j,rootClassName:S,children:T,style:R,title:B}=e,z=E(e,["prefixCls","className","rootClassName","children","style","title"]),M=g("radio",N),I="button"===((null==s?void 0:s.optionType)||c),q=I?`${M}-button`:M,P=(0,i.default)(M),[H,_,A]=y(M,P),L=Object.assign({},z),F=t.useContext(C.default);s&&(L.name=s.name,L.onChange=t=>{var r,a;null==(r=e.onChange)||r.call(e,t),null==(a=null==s?void 0:s.onChange)||a.call(s,t)},L.checked=e.value===s.value,L.disabled=null!=(o=L.disabled)?o:s.disabled),L.disabled=null!=(l=L.disabled)?l:F;let X=(0,r.default)(`${q}-wrapper`,{[`${q}-wrapper-checked`]:L.checked,[`${q}-wrapper-disabled`]:L.disabled,[`${q}-wrapper-rtl`]:"rtl"===v,[`${q}-wrapper-in-form-item`]:O,[`${q}-wrapper-block`]:!!(null==s?void 0:s.block)},null==x?void 0:x.className,j,S,_,A,P),[W,Y]=(0,h.default)(L.onClick);return H(t.createElement(p.default,{component:"Radio",disabled:L.disabled},t.createElement("label",{className:X,style:Object.assign(Object.assign({},null==x?void 0:x.style),R),onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,title:B,onClick:W},t.createElement(m.default,Object.assign({},L,{className:(0,r.default)(L.className,{[f.TARGET_CLS]:!I}),type:"radio",prefixCls:q,ref:$,onClick:Y})),void 0!==T?t.createElement("span",{className:`${q}-label`},T):null)))});var N=e.i(286039);let j=t.forwardRef((e,d)=>{let{getPrefixCls:u,direction:g}=t.useContext(n.ConfigContext),{name:m}=t.useContext(k.FormItemInputContext),b=(0,a.default)((0,N.toNamePathStr)(m)),{prefixCls:p,className:f,rootClassName:h,options:C,buttonStyle:v="outline",disabled:x,children:w,size:$,style:E,id:j,optionType:S,name:T=b,defaultValue:R,value:B,block:z=!1,onChange:M,onMouseEnter:I,onMouseLeave:q,onFocus:P,onBlur:H}=e,[_,A]=(0,o.default)(R,{value:B}),L=t.useCallback(t=>{let r=t.target.value;"value"in e||A(r),r!==_&&(null==M||M(t))},[_,A,M]),F=u("radio",p),X=`${F}-group`,W=(0,i.default)(F),[Y,D,G]=y(F,W),V=w;C&&C.length>0&&(V=C.map(e=>"string"==typeof e||"number"==typeof e?t.createElement(O,{key:e.toString(),prefixCls:F,disabled:x,value:e,checked:_===e},e):t.createElement(O,{key:`radio-group-value-options-${e.value}`,prefixCls:F,disabled:e.disabled||x,value:e.value,checked:_===e.value,title:e.title,style:e.style,className:e.className,id:e.id,required:e.required},e.label)));let K=(0,s.default)($),U=(0,r.default)(X,`${X}-${v}`,{[`${X}-${K}`]:K,[`${X}-rtl`]:"rtl"===g,[`${X}-block`]:z},f,h,D,G,W),J=t.useMemo(()=>({onChange:L,value:_,disabled:x,name:T,optionType:S,block:z}),[L,_,x,T,S,z]);return Y(t.createElement("div",Object.assign({},(0,l.default)(e,{aria:!0,data:!0}),{className:U,style:E,onMouseEnter:I,onMouseLeave:q,onFocus:P,onBlur:H,id:j,ref:d}),t.createElement(c,{value:J},V)))}),S=t.memo(j);var T=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let R=t.forwardRef((e,r)=>{let{getPrefixCls:a}=t.useContext(n.ConfigContext),{prefixCls:o}=e,l=T(e,["prefixCls"]),i=a("radio",o);return t.createElement(g,{value:"button"},t.createElement(O,Object.assign({prefixCls:i},l,{type:"radio",ref:r})))});O.Button=R,O.Group=S,O.__ANT_RADIO=!0,e.s(["default",0,O],544195)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/01d07594f3f5250a.js b/litellm/proxy/_experimental/out/_next/static/chunks/01d07594f3f5250a.js deleted file mode 100644 index 86b6f94a57a..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/01d07594f3f5250a.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,582458,e=>{"use strict";let t=(0,e.i(475254).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["default",()=>t])},788191,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["PlayCircleOutlined",0,i],788191)},19732,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"}}]},name:"experiment",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ExperimentOutlined",0,i],19732)},153702,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z"}}]},name:"bar-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BarChartOutlined",0,i],153702)},645526,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z"}}]},name:"team",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TeamOutlined",0,i],645526)},299251,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z"}}]},name:"bank",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BankOutlined",0,i],299251)},777579,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"}}]},name:"line-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["LineChartOutlined",0,i],777579)},438957,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z"}}]},name:"key",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["KeyOutlined",0,i],438957)},232164,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z"}}]},name:"tags",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TagsOutlined",0,i],232164)},210612,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["DatabaseOutlined",0,i],210612)},218129,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ApiOutlined",0,i],218129)},366308,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ToolOutlined",0,i],366308)},313603,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["SettingOutlined",0,i],313603)},531278,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],531278)},372943,899268,e=>{"use strict";e.i(247167);var t=e.i(8211),a=e.i(271645),s=e.i(343794),r=e.i(529681),i=e.i(242064),l=e.i(704914),c=e.i(876556),n=e.i(290224),d=e.i(251224),o=function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&0>t.indexOf(s)&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,s=Object.getOwnPropertySymbols(e);rt.indexOf(s[r])&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(a[s[r]]=e[s[r]]);return a};function m({suffixCls:e,tagName:t,displayName:s}){return s=>a.forwardRef((r,i)=>a.createElement(s,Object.assign({ref:i,suffixCls:e,tagName:t},r)))}let u=a.forwardRef((e,t)=>{let{prefixCls:r,suffixCls:l,className:c,tagName:n}=e,m=o(e,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:u}=a.useContext(i.ConfigContext),f=u("layout",r),[h,g,v]=(0,d.default)(f),x=l?`${f}-${l}`:f;return h(a.createElement(n,Object.assign({className:(0,s.default)(r||x,c,g,v),ref:t},m)))}),f=a.forwardRef((e,m)=>{let{direction:u}=a.useContext(i.ConfigContext),[f,h]=a.useState([]),{prefixCls:g,className:v,rootClassName:x,children:p,hasSider:y,tagName:b,style:N}=e,w=o(e,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),j=(0,r.default)(w,["suffixCls"]),{getPrefixCls:L,className:z,style:M}=(0,i.useComponentConfig)("layout"),O=L("layout",g),C="boolean"==typeof y?y:!!f.length||(0,c.default)(p).some(e=>e.type===n.default),[k,H,V]=(0,d.default)(O),_=(0,s.default)(O,{[`${O}-has-sider`]:C,[`${O}-rtl`]:"rtl"===u},z,v,x,H,V),R=a.useMemo(()=>({siderHook:{addSider:e=>{h(a=>[].concat((0,t.default)(a),[e]))},removeSider:e=>{h(t=>t.filter(t=>t!==e))}}}),[]);return k(a.createElement(l.LayoutContext.Provider,{value:R},a.createElement(b,Object.assign({ref:m,className:_,style:Object.assign(Object.assign({},M),N)},j),p)))}),h=m({tagName:"div",displayName:"Layout"})(f),g=m({suffixCls:"header",tagName:"header",displayName:"Header"})(u),v=m({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(u),x=m({suffixCls:"content",tagName:"main",displayName:"Content"})(u);h.Header=g,h.Footer=v,h.Content=x,h.Sider=n.default,h._InternalSiderContext=n.SiderContext,e.s(["Layout",0,h],372943);var p=e.i(60699);e.s(["Menu",()=>p.default],899268)},592143,e=>{"use strict";var t=e.i(609587);e.s(["ConfigProvider",()=>t.default])},182399,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z"}}]},name:"block",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BlockOutlined",0,i],182399)},477189,457202,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["AppstoreOutlined",0,i],477189);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z"}}]},name:"audit",theme:"outlined"};var c=a.forwardRef(function(e,s){return a.createElement(r.default,(0,t.default)({},e,{ref:s,icon:l}))});e.s(["AuditOutlined",0,c],457202)},878894,664659,655900,299023,25652,882293,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default],878894);var a=e.i(475254);let s=(0,a.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>s],664659);let r=(0,a.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",()=>r],655900);let i=(0,a.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["Minus",()=>i],299023);let l=(0,a.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>l],25652);let c=(0,a.default)("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["UserCheck",()=>c],882293)},761911,e=>{"use strict";let t=(0,e.i(475254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],761911)},297178,e=>{"use strict";var t=e.i(843476);e.i(389083);var a=e.i(878894);e.i(664659),e.i(655900);var s=e.i(531278),r=e.i(299023),i=e.i(25652),l=e.i(882293),c=e.i(761911),n=e.i(271645),d=e.i(764205);let o=(...e)=>e.filter(Boolean).join(" ");function m({accessToken:e,width:m=220}){let[u,f]=(0,n.useState)(!1),[h,g]=(0,n.useState)(!1),[v,x]=(0,n.useState)(null),[p,y]=(0,n.useState)(!1),[b,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{(async()=>{if(e){y(!0),N(null);try{let t=await (0,d.getRemainingUsers)(e);x(t)}catch(e){console.error("Failed to fetch usage data:",e),N("Failed to load usage data")}finally{y(!1)}}})()},[e]);let{isOverLimit:w,isNearLimit:j,usagePercentage:L,userMetrics:z,teamMetrics:M}=(e=>{if(!e)return{isOverLimit:!1,isNearLimit:!1,usagePercentage:0,userMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0},teamMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0}};let t=e.total_users?e.total_users_used/e.total_users*100:0,a=t>100,s=t>=80&&t<=100,r=e.total_teams?e.total_teams_used/e.total_teams*100:0,i=r>100,l=r>=80&&r<=100,c=a||i;return{isOverLimit:c,isNearLimit:(s||l)&&!c,usagePercentage:Math.max(t,r),userMetrics:{isOverLimit:a,isNearLimit:s,usagePercentage:t},teamMetrics:{isOverLimit:i,isNearLimit:l,usagePercentage:r}}})(v);return e&&(v?.total_users!==null||v?.total_teams!==null)?(0,t.jsx)("div",{className:"fixed bottom-4 left-4 z-50",style:{width:`${Math.min(m,220)}px`},children:(0,t.jsx)(()=>h?(0,t.jsx)("button",{onClick:()=>g(!1),className:o("bg-white border border-gray-200 rounded-lg shadow-sm p-3 hover:shadow-md transition-all w-full"),title:"Show usage details",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(c.Users,{className:"h-4 w-4 flex-shrink-0"}),(w||j)&&(0,t.jsx)("span",{className:"flex-shrink-0",children:w?(0,t.jsx)(a.AlertTriangle,{className:"h-3 w-3"}):j?(0,t.jsx)(i.TrendingUp,{className:"h-3 w-3"}):null}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium truncate",children:[v&&null!==v.total_users&&(0,t.jsxs)("span",{className:o("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",z.isOverLimit&&"bg-red-50 text-red-700 border-red-200",z.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!z.isOverLimit&&!z.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["U: ",v.total_users_used,"/",v.total_users]}),v&&null!==v.total_teams&&(0,t.jsxs)("span",{className:o("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",M.isOverLimit&&"bg-red-50 text-red-700 border-red-200",M.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!M.isOverLimit&&!M.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["T: ",v.total_teams_used,"/",v.total_teams]}),!v||null===v.total_users&&null===v.total_teams&&(0,t.jsx)("span",{className:"truncate",children:"Usage"})]})]})}):p?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2",children:[(0,t.jsx)(s.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate",children:"Loading..."})]})}):b||!v?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 group w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate block",children:b||"No data"})}),(0,t.jsx)("button",{onClick:()=>g(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(r.Minus,{className:"h-3 w-3 text-gray-400"})})]})}):(0,t.jsxs)("div",{className:o("bg-white border rounded-lg shadow-sm p-3 transition-all duration-200 group w-full"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[(0,t.jsx)(c.Users,{className:"h-4 w-4 flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-sm truncate",children:"Usage"})]}),(0,t.jsx)("button",{onClick:()=>g(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(r.Minus,{className:"h-3 w-3 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"space-y-3 text-sm",children:[null!==v.total_users&&(0,t.jsxs)("div",{className:o("space-y-1 border rounded-md p-2",z.isOverLimit&&"border-red-200 bg-red-50",z.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(c.Users,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Users"}),(0,t.jsx)("span",{className:o("ml-1 px-1.5 py-0.5 rounded border",z.isOverLimit&&"bg-red-50 text-red-700 border-red-200",z.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!z.isOverLimit&&!z.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:z.isOverLimit?"Over limit":z.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[v.total_users_used,"/",v.total_users]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:o("font-medium text-right",z.isOverLimit&&"text-red-600",z.isNearLimit&&"text-yellow-600"),children:v.total_users_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(z.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:o("h-2 rounded-full transition-all duration-300",z.isOverLimit&&"bg-red-500",z.isNearLimit&&"bg-yellow-500",!z.isOverLimit&&!z.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(z.usagePercentage,100)}%`}})})]}),null!==v.total_teams&&(0,t.jsxs)("div",{className:o("space-y-1 border rounded-md p-2",M.isOverLimit&&"border-red-200 bg-red-50",M.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(l.UserCheck,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Teams"}),(0,t.jsx)("span",{className:o("ml-1 px-1.5 py-0.5 rounded border",M.isOverLimit&&"bg-red-50 text-red-700 border-red-200",M.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!M.isOverLimit&&!M.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:M.isOverLimit?"Over limit":M.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[v.total_teams_used,"/",v.total_teams]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:o("font-medium text-right",M.isOverLimit&&"text-red-600",M.isNearLimit&&"text-yellow-600"),children:v.total_teams_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(M.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:o("h-2 rounded-full transition-all duration-300",M.isOverLimit&&"bg-red-500",M.isNearLimit&&"bg-yellow-500",!M.isOverLimit&&!M.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(M.usagePercentage,100)}%`}})})]})]})]}),{})}):null}e.s(["default",()=>m])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/023ea71d56024e51.js b/litellm/proxy/_experimental/out/_next/static/chunks/023ea71d56024e51.js deleted file mode 100644 index 6545cebed4c..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/023ea71d56024e51.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,596115,e=>{"use strict";var s=e.i(843476),l=e.i(271645),a=e.i(764205),t=e.i(584578),r=e.i(808613),i=e.i(774197),o=e.i(468133),n=e.i(708347),d=e.i(304967),c=e.i(994388),m=e.i(309426),h=e.i(599724),u=e.i(350967),x=e.i(404206),p=e.i(747871),g=e.i(500330),_=e.i(752978),j=e.i(197647),f=e.i(653824),b=e.i(881073),y=e.i(723731),v=e.i(278587);let w=({lastRefreshed:e,onRefresh:l,userRole:a,children:t})=>(0,s.jsxs)(f.TabGroup,{className:"gap-2 h-[75vh] w-full",children:[(0,s.jsxs)(b.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,s.jsxs)("div",{className:"flex",children:[(0,s.jsx)(j.Tab,{children:"Your Teams"}),(0,s.jsx)(j.Tab,{children:"Available Teams"}),(0,n.isAdminRole)(a||"")&&(0,s.jsx)(j.Tab,{children:"Default Team Settings"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[e&&(0,s.jsxs)(h.Text,{children:["Last Refreshed: ",e]}),(0,s.jsx)(_.Icon,{icon:v.RefreshIcon,variant:"shadow",size:"xs",className:"self-center",onClick:l})]})]}),(0,s.jsx)(y.TabPanels,{children:t})]});var T=e.i(206929),C=e.i(35983);let N=({filters:e,organizations:l,showFilters:a,onToggleFilters:t,onChange:r,onReset:i})=>(0,s.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,s.jsxs)("div",{className:"relative w-64",children:[(0,s.jsx)("input",{type:"text",placeholder:"Search by Team Name...",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:e.team_alias,onChange:e=>r("team_alias",e.target.value)}),(0,s.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,s.jsxs)("button",{className:`px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2 ${a?"bg-gray-100":""}`,onClick:()=>t(!a),children:[(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filters",(e.team_id||e.team_alias||e.organization_id)&&(0,s.jsx)("span",{className:"w-2 h-2 rounded-full bg-blue-500"})]}),(0,s.jsxs)("button",{className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",onClick:i,children:[(0,s.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),"Reset Filters"]})]}),a&&(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[(0,s.jsxs)("div",{className:"relative w-64",children:[(0,s.jsx)("input",{type:"text",placeholder:"Enter Team ID",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:e.team_id,onChange:e=>r("team_id",e.target.value)}),(0,s.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z"})})]}),(0,s.jsx)("div",{className:"w-64",children:(0,s.jsx)(T.Select,{value:e.organization_id||"",onValueChange:e=>r("organization_id",e),placeholder:"Select Organization",children:l?.map(e=>(0,s.jsx)(C.SelectItem,{value:e.organization_id||"",children:e.organization_alias||e.organization_id},e.organization_id))})})]})]});var S=e.i(135214),k=e.i(269200),I=e.i(942232),F=e.i(977572),A=e.i(427612),z=e.i(64848),M=e.i(496020),O=e.i(592968),P=e.i(591935),L=e.i(68155),D=e.i(389083),B=e.i(871943),E=e.i(502547),R=e.i(355619);let V=({team:e})=>{let[a,t]=(0,l.useState)(!1);return(0,s.jsx)(F.TableCell,{style:{maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:e.models.length>3?"px-0":"",children:(0,s.jsx)("div",{className:"flex flex-col",children:Array.isArray(e.models)?(0,s.jsx)("div",{className:"flex flex-col",children:0===e.models.length?(0,s.jsx)(D.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,s.jsx)(h.Text,{children:"All Proxy Models"})}):(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"flex items-start",children:[e.models.length>3&&(0,s.jsx)("div",{children:(0,s.jsx)(_.Icon,{icon:a?B.ChevronDownIcon:E.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>{t(e=>!e)}})}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.models.slice(0,3).map((e,l)=>"all-proxy-models"===e?(0,s.jsx)(D.Badge,{size:"xs",color:"red",children:(0,s.jsx)(h.Text,{children:"All Proxy Models"})},l):(0,s.jsx)(D.Badge,{size:"xs",color:"blue",children:(0,s.jsx)(h.Text,{children:e.length>30?`${(0,R.getModelDisplayName)(e).slice(0,30)}...`:(0,R.getModelDisplayName)(e)})},l)),e.models.length>3&&!a&&(0,s.jsx)(D.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,s.jsxs)(h.Text,{children:["+",e.models.length-3," ",e.models.length-3==1?"more model":"more models"]})}),a&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:e.models.slice(3).map((e,l)=>"all-proxy-models"===e?(0,s.jsx)(D.Badge,{size:"xs",color:"red",children:(0,s.jsx)(h.Text,{children:"All Proxy Models"})},l+3):(0,s.jsx)(D.Badge,{size:"xs",color:"blue",children:(0,s.jsx)(h.Text,{children:e.length>30?`${(0,R.getModelDisplayName)(e).slice(0,30)}...`:(0,R.getModelDisplayName)(e)})},l+3))})]})]})})}):null})})};var H=e.i(918549),H=H,W=e.i(846753),W=W;let U=({team:e,userId:l})=>{var a;let t,r=(a=((e,s)=>{if(!s)return null;let l=e.members_with_roles?.find(e=>e.user_id===s);return l?.role??null})(e,l),t="inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium border","admin"===a?(0,s.jsxs)("span",{className:t,style:{backgroundColor:"#EEF2FF",color:"#3730A3",borderColor:"#C7D2FE"},children:[(0,s.jsx)(H.default,{className:"h-3 w-3 mr-1"}),"Admin"]}):(0,s.jsxs)("span",{className:t,style:{backgroundColor:"#F3F4F6",color:"#4B5563",borderColor:"#E5E7EB"},children:[(0,s.jsx)(W.default,{className:"h-3 w-3 mr-1"}),"Member"]}));return(0,s.jsx)(F.TableCell,{children:r})},$=({teams:e,currentOrg:l,setSelectedTeamId:a,perTeamInfo:t,userRole:r,userId:i,setEditTeam:o,onDeleteTeam:n})=>(0,s.jsxs)(k.Table,{children:[(0,s.jsx)(A.TableHead,{children:(0,s.jsxs)(M.TableRow,{children:[(0,s.jsx)(z.TableHeaderCell,{children:"Team Name"}),(0,s.jsx)(z.TableHeaderCell,{children:"Team ID"}),(0,s.jsx)(z.TableHeaderCell,{children:"Created"}),(0,s.jsx)(z.TableHeaderCell,{children:"Spend (USD)"}),(0,s.jsx)(z.TableHeaderCell,{children:"Budget (USD)"}),(0,s.jsx)(z.TableHeaderCell,{children:"Models"}),(0,s.jsx)(z.TableHeaderCell,{children:"Organization"}),(0,s.jsx)(z.TableHeaderCell,{children:"Your Role"}),(0,s.jsx)(z.TableHeaderCell,{children:"Info"})]})}),(0,s.jsx)(I.TableBody,{children:e&&e.length>0?e.filter(e=>!l||e.organization_id===l.organization_id).sort((e,s)=>new Date(s.created_at).getTime()-new Date(e.created_at).getTime()).map(e=>(0,s.jsxs)(M.TableRow,{children:[(0,s.jsx)(F.TableCell,{style:{maxWidth:"4px",whiteSpace:"pre-wrap",overflow:"hidden"},children:e.team_alias}),(0,s.jsx)(F.TableCell,{children:(0,s.jsx)("div",{className:"overflow-hidden",children:(0,s.jsx)(O.Tooltip,{title:e.team_id,children:(0,s.jsxs)(c.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate max-w-[200px]",onClick:()=>{a(e.team_id)},children:[e.team_id.slice(0,7),"..."]})})})}),(0,s.jsx)(F.TableCell,{style:{maxWidth:"4px",whiteSpace:"pre-wrap",overflow:"hidden"},children:e.created_at?new Date(e.created_at).toLocaleDateString():"N/A"}),(0,s.jsx)(F.TableCell,{style:{maxWidth:"4px",whiteSpace:"pre-wrap",overflow:"hidden"},children:(0,g.formatNumberWithCommas)(e.spend,4)}),(0,s.jsx)(F.TableCell,{style:{maxWidth:"4px",whiteSpace:"pre-wrap",overflow:"hidden"},children:null!==e.max_budget&&void 0!==e.max_budget?e.max_budget:"No limit"}),(0,s.jsx)(V,{team:e}),(0,s.jsx)(F.TableCell,{children:e.organization_id}),(0,s.jsx)(U,{team:e,userId:i}),(0,s.jsxs)(F.TableCell,{children:[(0,s.jsxs)(h.Text,{children:[t&&e.team_id&&t[e.team_id]&&t[e.team_id].keys&&t[e.team_id].keys.length," ","Keys"]}),(0,s.jsxs)(h.Text,{children:[t&&e.team_id&&t[e.team_id]&&t[e.team_id].team_info&&t[e.team_id].team_info.members_with_roles&&t[e.team_id].team_info.members_with_roles.length," ","Members"]})]}),(0,s.jsx)(F.TableCell,{children:"Admin"==r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(_.Icon,{icon:P.PencilAltIcon,size:"sm",onClick:()=>{a(e.team_id),o(!0)}}),(0,s.jsx)(_.Icon,{onClick:()=>n(e.team_id),icon:L.TrashIcon,size:"sm"})]}):null})]},e.team_id)):null})]});var G=e.i(582458),G=G,J=e.i(995926);let K=({teams:e,teamToDelete:a,onCancel:t,onConfirm:r})=>{let[i,o]=(0,l.useState)(""),n=e?.find(e=>e.team_id===a),d=n?.team_alias||"",c=n?.keys?.length||0,m=i===d;return(0,s.jsx)("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow-xl w-full max-w-2xl min-h-[380px] py-6 overflow-hidden transform transition-all flex flex-col justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200",children:[(0,s.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Delete Team"}),(0,s.jsx)("button",{onClick:()=>{t(),o("")},className:"text-gray-400 hover:text-gray-500 focus:outline-none",children:(0,s.jsx)(J.XIcon,{size:20})})]}),(0,s.jsxs)("div",{className:"px-6 py-4",children:[c>0&&(0,s.jsxs)("div",{className:"flex items-start gap-3 p-4 bg-red-50 border border-red-100 rounded-md mb-5",children:[(0,s.jsx)("div",{className:"text-red-500 mt-0.5",children:(0,s.jsx)(G.default,{size:20})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-base font-medium text-red-600",children:["Warning: This team has ",c," associated key",c>1?"s":"","."]}),(0,s.jsx)("p",{className:"text-base text-red-600 mt-2",children:"Deleting the team will also delete all associated keys. This action is irreversible."})]})]}),(0,s.jsx)("p",{className:"text-base text-gray-600 mb-5",children:"Are you sure you want to force delete this team and all its keys?"}),(0,s.jsxs)("div",{className:"mb-5",children:[(0,s.jsxs)("label",{className:"block text-base font-medium text-gray-700 mb-2",children:["Type ",(0,s.jsx)("span",{className:"underline",children:d})," to confirm deletion:"]}),(0,s.jsx)("input",{type:"text",value:i,onChange:e=>o(e.target.value),placeholder:"Enter team name exactly",className:"w-full px-4 py-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-base",autoFocus:!0})]})]})]}),(0,s.jsxs)("div",{className:"px-6 py-4 bg-gray-50 flex justify-end gap-4",children:[(0,s.jsx)("button",{onClick:()=>{t(),o("")},className:"px-5 py-3 bg-white border border-gray-300 rounded-md text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500",children:"Cancel"}),(0,s.jsx)("button",{onClick:r,disabled:!m,className:`px-5 py-3 rounded-md text-base font-medium text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 ${m?"bg-red-600 hover:bg-red-700":"bg-red-300 cursor-not-allowed"}`,children:"Force Delete"})]})]})})};var q=e.i(464571),Y=e.i(311451),X=e.i(212931),Q=e.i(199133),Z=e.i(790848),ee=e.i(677667),es=e.i(130643),el=e.i(898667),ea=e.i(779241),et=e.i(827252),er=e.i(435451),ei=e.i(916940),eo=e.i(75921),en=e.i(552130),ed=e.i(651904),ec=e.i(533882),em=e.i(727749),eh=e.i(390605);let eu=({isTeamModalVisible:e,handleOk:t,handleCancel:i,currentOrg:o,organizations:n,teams:d,setTeams:c,modelAliases:m,setModelAliases:u,loggingSettings:x,setLoggingSettings:p,setIsTeamModalVisible:g})=>{let{userId:_,userRole:j,accessToken:f,premiumUser:b}=(0,S.default)(),[y]=r.Form.useForm(),[v,w]=(0,l.useState)([]),[T,C]=(0,l.useState)(null),[N,k]=(0,l.useState)([]),[I,F]=(0,l.useState)([]),[A,z]=(0,l.useState)([]),[M,P]=(0,l.useState)([]),[L,D]=(0,l.useState)(!1);(0,l.useEffect)(()=>{(async()=>{try{if(null===_||null===j||null===f)return;let e=await (0,R.fetchAvailableModelsForTeamOrKey)(_,j,f);e&&w(e)}catch(e){console.error("Error fetching user models:",e)}})()},[f,_,j,d]),(0,l.useEffect)(()=>{let e;console.log(`currentOrgForCreateTeam: ${T}`);let s=(e=[],T&&T.models.length>0?(console.log(`organization.models: ${T.models}`),e=T.models):e=v,(0,R.unfurlWildcardModelsInList)(e,v));console.log(`models: ${s}`),k(s),y.setFieldValue("models",[])},[T,v,y]);let B=async()=>{try{if(null==f)return;let e=await (0,a.fetchMCPAccessGroups)(f);P(e)}catch(e){console.error("Failed to fetch MCP access groups:",e)}};(0,l.useEffect)(()=>{B()},[f,B]),(0,l.useEffect)(()=>{let e=async()=>{try{if(null==f)return;let e=(await (0,a.getPoliciesList)(f)).policies.map(e=>e.policy_name);z(e)}catch(e){console.error("Failed to fetch policies:",e)}};(async()=>{try{if(null==f)return;let e=(await (0,a.getGuardrailsList)(f)).guardrails.map(e=>e.guardrail_name);F(e)}catch(e){console.error("Failed to fetch guardrails:",e)}})(),e()},[f]);let E=async e=>{try{if(console.log(`formValues: ${JSON.stringify(e)}`),null!=f){let s=e?.team_alias,l=d?.map(e=>e.team_alias)??[],t=e?.organization_id||o?.organization_id;if(""===t||"string"!=typeof t?e.organization_id=null:e.organization_id=t.trim(),l.includes(s))throw Error(`Team alias ${s} already exists, please pick another alias`);if(em.default.info("Creating Team"),x.length>0){let s={};if(e.metadata)try{s=JSON.parse(e.metadata)}catch(e){console.warn("Invalid JSON in metadata field, starting with empty object")}s={...s,logging:x.filter(e=>e.callback_name)},e.metadata=JSON.stringify(s)}if(e.secret_manager_settings&&"string"==typeof e.secret_manager_settings)if(""===e.secret_manager_settings.trim())delete e.secret_manager_settings;else try{e.secret_manager_settings=JSON.parse(e.secret_manager_settings)}catch(e){throw Error("Failed to parse secret manager settings: "+e)}if(e.allowed_vector_store_ids&&e.allowed_vector_store_ids.length>0||e.allowed_mcp_servers_and_groups&&(e.allowed_mcp_servers_and_groups.servers?.length>0||e.allowed_mcp_servers_and_groups.accessGroups?.length>0||e.allowed_mcp_servers_and_groups.toolPermissions)){if(e.object_permission={},e.allowed_vector_store_ids&&e.allowed_vector_store_ids.length>0&&(e.object_permission.vector_stores=e.allowed_vector_store_ids,delete e.allowed_vector_store_ids),e.allowed_mcp_servers_and_groups){let{servers:s,accessGroups:l}=e.allowed_mcp_servers_and_groups;s&&s.length>0&&(e.object_permission.mcp_servers=s),l&&l.length>0&&(e.object_permission.mcp_access_groups=l),delete e.allowed_mcp_servers_and_groups}if(e.mcp_tool_permissions&&Object.keys(e.mcp_tool_permissions).length>0&&(e.object_permission||(e.object_permission={}),e.object_permission.mcp_tool_permissions=e.mcp_tool_permissions,delete e.mcp_tool_permissions),e.allowed_agents_and_groups){let{agents:s,accessGroups:l}=e.allowed_agents_and_groups;e.object_permission||(e.object_permission={}),s&&s.length>0&&(e.object_permission.agents=s),l&&l.length>0&&(e.object_permission.agent_access_groups=l),delete e.allowed_agents_and_groups}}e.allowed_mcp_access_groups&&e.allowed_mcp_access_groups.length>0&&(e.object_permission||(e.object_permission={}),e.object_permission.mcp_access_groups=e.allowed_mcp_access_groups,delete e.allowed_mcp_access_groups),Object.keys(m).length>0&&(e.model_aliases=m);let r=await (0,a.teamCreateCall)(f,e);null!==d?c([...d,r]):c([r]),console.log(`response for team create call: ${r}`),em.default.success("Team created"),y.resetFields(),p([]),u({}),g(!1)}}catch(e){console.error("Error creating the team:",e),em.default.fromBackend("Error creating the team: "+e)}};return(0,s.jsx)(X.Modal,{title:"Create Team",open:e,width:1e3,footer:null,onOk:t,onCancel:i,children:(0,s.jsxs)(r.Form,{form:y,onFinish:E,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,s.jsx)(ea.TextInput,{placeholder:""})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Organization"," ",(0,s.jsx)(O.Tooltip,{title:(0,s.jsxs)("span",{children:["Organizations can have multiple teams. Learn more about"," ",(0,s.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/user_management_heirarchy",target:"_blank",rel:"noopener noreferrer",style:{color:"#1890ff",textDecoration:"underline"},onClick:e=>e.stopPropagation(),children:"user management hierarchy"})]}),children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"organization_id",initialValue:o?o.organization_id:null,className:"mt-8",children:(0,s.jsx)(Q.Select,{showSearch:!0,allowClear:!0,placeholder:"Search or select an Organization",onChange:e=>{y.setFieldValue("organization_id",e),C(n?.find(s=>s.organization_id===e)||null)},filterOption:(e,s)=>!!s&&(s.children?.toString()||"").toLowerCase().includes(e.toLowerCase()),optionFilterProp:"children",children:n?.map(e=>(0,s.jsxs)(Q.Select.Option,{value:e.organization_id,children:[(0,s.jsx)("span",{className:"font-medium",children:e.organization_alias})," ",(0,s.jsxs)("span",{className:"text-gray-500",children:["(",e.organization_id,")"]})]},e.organization_id))})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Models"," ",(0,s.jsx)(O.Tooltip,{title:"These are the models that your selected team has access to",children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"models",children:(0,s.jsxs)(Q.Select,{mode:"multiple",placeholder:"Select models",style:{width:"100%"},children:[(0,s.jsx)(Q.Select.Option,{value:"all-proxy-models",children:"All Proxy Models"},"all-proxy-models"),N.map(e=>(0,s.jsx)(Q.Select.Option,{value:e,children:(0,R.getModelDisplayName)(e)},e))]})}),(0,s.jsx)(r.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,s.jsx)(er.default,{step:.01,precision:2,width:200})}),(0,s.jsx)(r.Form.Item,{className:"mt-8",label:"Reset Budget",name:"budget_duration",children:(0,s.jsxs)(Q.Select,{defaultValue:null,placeholder:"n/a",children:[(0,s.jsx)(Q.Select.Option,{value:"24h",children:"daily"}),(0,s.jsx)(Q.Select.Option,{value:"7d",children:"weekly"}),(0,s.jsx)(Q.Select.Option,{value:"30d",children:"monthly"})]})}),(0,s.jsx)(r.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,s.jsx)(er.default,{step:1,width:400})}),(0,s.jsx)(r.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,s.jsx)(er.default,{step:1,width:400})}),(0,s.jsxs)(ee.Accordion,{className:"mt-20 mb-8",onClick:()=>{L||(B(),D(!0))},children:[(0,s.jsx)(el.AccordionHeader,{children:(0,s.jsx)("b",{children:"Additional Settings"})}),(0,s.jsxs)(es.AccordionBody,{children:[(0,s.jsx)(r.Form.Item,{label:"Team ID",name:"team_id",help:"ID of the team you want to create. If not provided, it will be generated automatically.",children:(0,s.jsx)(ea.TextInput,{onChange:e=>{e.target.value=e.target.value.trim()}})}),(0,s.jsx)(r.Form.Item,{label:"Team Member Budget (USD)",name:"team_member_budget",normalize:e=>e?Number(e):void 0,tooltip:"This is the individual budget for a user in the team.",children:(0,s.jsx)(er.default,{step:.01,precision:2,width:200})}),(0,s.jsx)(r.Form.Item,{label:"Team Member Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,s.jsx)(ea.TextInput,{placeholder:"e.g., 30d"})}),(0,s.jsx)(r.Form.Item,{label:"Team Member RPM Limit",name:"team_member_rpm_limit",tooltip:"The RPM (Requests Per Minute) limit for individual team members",children:(0,s.jsx)(er.default,{step:1,width:400})}),(0,s.jsx)(r.Form.Item,{label:"Team Member TPM Limit",name:"team_member_tpm_limit",tooltip:"The TPM (Tokens Per Minute) limit for individual team members",children:(0,s.jsx)(er.default,{step:1,width:400})}),(0,s.jsx)(r.Form.Item,{label:"Metadata",name:"metadata",help:"Additional team metadata. Enter metadata as JSON object.",children:(0,s.jsx)(Y.Input.TextArea,{rows:4})}),(0,s.jsx)(r.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:b?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,s)=>{if(!s)return Promise.resolve();try{return JSON.parse(s),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,s.jsx)(Y.Input.TextArea,{rows:4,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!b})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Guardrails"," ",(0,s.jsx)(O.Tooltip,{title:"Setup your first guardrail",children:(0,s.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",className:"mt-8",help:"Select existing guardrails or enter new ones",children:(0,s.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:I.map(e=>({value:e,label:e}))})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Disable Global Guardrails"," ",(0,s.jsx)(O.Tooltip,{title:"When enabled, this team will bypass any guardrails configured to run on every request (global guardrails)",children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",className:"mt-4",valuePropName:"checked",help:"Bypass global guardrails for this team",children:(0,s.jsx)(Z.Switch,{checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Policies"," ",(0,s.jsx)(O.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,s.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",className:"mt-8",help:"Select existing policies or enter new ones",children:(0,s.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter policies",options:A.map(e=>({value:e,label:e}))})}),(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Allowed Vector Stores"," ",(0,s.jsx)(O.Tooltip,{title:"Select which vector stores this team can access by default. Leave empty for access to all vector stores",children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_vector_store_ids",className:"mt-8",help:"Select vector stores this team can access. Leave empty for access to all vector stores",children:(0,s.jsx)(ei.default,{onChange:e=>y.setFieldValue("allowed_vector_store_ids",e),value:y.getFieldValue("allowed_vector_store_ids"),accessToken:f||"",placeholder:"Select vector stores (optional)"})})]})]}),(0,s.jsxs)(ee.Accordion,{className:"mt-8 mb-8",children:[(0,s.jsx)(el.AccordionHeader,{children:(0,s.jsx)("b",{children:"MCP Settings"})}),(0,s.jsxs)(es.AccordionBody,{children:[(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Allowed MCP Servers"," ",(0,s.jsx)(O.Tooltip,{title:"Select which MCP servers or access groups this team can access",children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_mcp_servers_and_groups",className:"mt-4",help:"Select MCP servers or access groups this team can access",children:(0,s.jsx)(eo.default,{onChange:e=>y.setFieldValue("allowed_mcp_servers_and_groups",e),value:y.getFieldValue("allowed_mcp_servers_and_groups"),accessToken:f||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,s.jsx)(r.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,s.jsx)(Y.Input,{type:"hidden"})}),(0,s.jsx)(r.Form.Item,{noStyle:!0,shouldUpdate:(e,s)=>e.allowed_mcp_servers_and_groups!==s.allowed_mcp_servers_and_groups||e.mcp_tool_permissions!==s.mcp_tool_permissions,children:()=>(0,s.jsx)("div",{className:"mt-6",children:(0,s.jsx)(eh.default,{accessToken:f||"",selectedServers:y.getFieldValue("allowed_mcp_servers_and_groups")?.servers||[],toolPermissions:y.getFieldValue("mcp_tool_permissions")||{},onChange:e=>y.setFieldsValue({mcp_tool_permissions:e})})})})]})]}),(0,s.jsxs)(ee.Accordion,{className:"mt-8 mb-8",children:[(0,s.jsx)(el.AccordionHeader,{children:(0,s.jsx)("b",{children:"Agent Settings"})}),(0,s.jsx)(es.AccordionBody,{children:(0,s.jsx)(r.Form.Item,{label:(0,s.jsxs)("span",{children:["Allowed Agents"," ",(0,s.jsx)(O.Tooltip,{title:"Select which agents or access groups this team can access",children:(0,s.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_agents_and_groups",className:"mt-4",help:"Select agents or access groups this team can access",children:(0,s.jsx)(en.default,{onChange:e=>y.setFieldValue("allowed_agents_and_groups",e),value:y.getFieldValue("allowed_agents_and_groups"),accessToken:f||"",placeholder:"Select agents or access groups (optional)"})})})]}),(0,s.jsxs)(ee.Accordion,{className:"mt-8 mb-8",children:[(0,s.jsx)(el.AccordionHeader,{children:(0,s.jsx)("b",{children:"Logging Settings"})}),(0,s.jsx)(es.AccordionBody,{children:(0,s.jsx)("div",{className:"mt-4",children:(0,s.jsx)(ed.default,{value:x,onChange:p,premiumUser:b})})})]}),(0,s.jsxs)(ee.Accordion,{className:"mt-8 mb-8",children:[(0,s.jsx)(el.AccordionHeader,{children:(0,s.jsx)("b",{children:"Model Aliases"})}),(0,s.jsx)(es.AccordionBody,{children:(0,s.jsxs)("div",{className:"mt-4",children:[(0,s.jsx)(h.Text,{className:"text-sm text-gray-600 mb-4",children:"Create custom aliases for models that can be used by team members in API calls. This allows you to create shortcuts for specific models."}),(0,s.jsx)(ec.default,{accessToken:f||"",initialModelAliases:m,onAliasUpdate:u,showExampleConfig:!1})]})})]})]}),(0,s.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,s.jsx)(q.Button,{htmlType:"submit",children:"Create Team"})})]})})},ex=({teams:e,accessToken:_,setTeams:j,userID:f,userRole:b,organizations:y,premiumUser:v=!1})=>{let[T,C]=(0,l.useState)(null),[k,I]=(0,l.useState)(!1),[F,A]=(0,l.useState)({team_id:"",team_alias:"",organization_id:"",sort_by:"created_at",sort_order:"desc"}),[z]=r.Form.useForm(),[M]=r.Form.useForm(),[O,P]=(0,l.useState)(null),[L,D]=(0,l.useState)(!1),[B,E]=(0,l.useState)(!1),[R,V]=(0,l.useState)(!1),[H,W]=(0,l.useState)(!1),[U,G]=(0,l.useState)([]),[J,q]=(0,l.useState)(!1),[Y,X]=(0,l.useState)(null),[Q,Z]=(0,l.useState)({}),[ee,es]=(0,l.useState)([]),[el,ea]=(0,l.useState)({}),{lastRefreshed:et,onRefreshClick:er}=(({currentOrg:e,setTeams:s})=>{let[a,r]=(0,l.useState)(""),{accessToken:i,userId:o,userRole:n}=(0,S.default)(),d=(0,l.useCallback)(()=>{r(new Date().toLocaleString())},[]);return(0,l.useEffect)(()=>{i&&(0,t.fetchTeams)(i,o,n,e,s).then(),d()},[i,e,a,d,s,o,n]),{lastRefreshed:a,setLastRefreshed:r,onRefreshClick:d}})({currentOrg:T,setTeams:j});(0,l.useEffect)(()=>{e&&Z(e.reduce((e,s)=>(e[s.team_id]={keys:s.keys||[],team_info:{members_with_roles:s.members_with_roles||[]}},e),{}))},[e]);let ei=async e=>{X(e),q(!0)},eo=async()=>{if(null!=Y&&null!=e&&null!=_){try{await (0,a.teamDeleteCall)(_,Y),(0,t.fetchTeams)(_,f,b,T,j)}catch(e){console.error("Error deleting the team:",e)}q(!1),X(null)}};return(0,s.jsx)("div",{className:"w-full mx-4 h-[75vh]",children:(0,s.jsx)(u.Grid,{numItems:1,className:"gap-2 p-8 w-full mt-2",children:(0,s.jsxs)(m.Col,{numColSpan:1,className:"flex flex-col gap-2",children:[("Admin"==b||"Org Admin"==b)&&(0,s.jsx)(c.Button,{className:"w-fit",onClick:()=>E(!0),children:"+ Create New Team"}),O?(0,s.jsx)(i.default,{teamId:O,onUpdate:e=>{j(s=>{if(null==s)return s;let l=s.map(s=>e.team_id===s.team_id?(0,g.updateExistingKeys)(s,e):s);return _&&(0,t.fetchTeams)(_,f,b,T,j),l})},onClose:()=>{P(null),D(!1)},accessToken:_,is_team_admin:(e=>{if(null==e||null==e.members_with_roles)return!1;for(let s=0;se.team_id===O)),is_proxy_admin:"Admin"==b,userModels:U,editTeam:L,premiumUser:v}):(0,s.jsxs)(w,{lastRefreshed:et,onRefresh:er,userRole:b,children:[(0,s.jsxs)(x.TabPanel,{children:[(0,s.jsxs)(h.Text,{children:["Click on “Team ID” to view team details ",(0,s.jsx)("b",{children:"and"})," manage team members."]}),(0,s.jsx)(u.Grid,{numItems:1,className:"gap-2 pt-2 pb-2 h-[75vh] w-full mt-2",children:(0,s.jsx)(m.Col,{numColSpan:1,children:(0,s.jsxs)(d.Card,{className:"w-full mx-auto flex-auto overflow-hidden overflow-y-auto max-h-[50vh]",children:[(0,s.jsx)("div",{className:"border-b px-6 py-4",children:(0,s.jsx)("div",{className:"flex flex-col space-y-4",children:(0,s.jsx)(N,{filters:F,organizations:y,showFilters:k,onToggleFilters:I,onChange:(e,s)=>{let l={...F,[e]:s};A(l),_&&(0,a.v2TeamListCall)(_,l.organization_id||null,null,l.team_id||null,l.team_alias||null).then(e=>{e&&e.teams&&j(e.teams)}).catch(e=>{console.error("Error fetching teams:",e)})},onReset:()=>{A({team_id:"",team_alias:"",organization_id:"",sort_by:"created_at",sort_order:"desc"}),_&&(0,a.v2TeamListCall)(_,null,f||null,null,null).then(e=>{e&&e.teams&&j(e.teams)}).catch(e=>{console.error("Error fetching teams:",e)})}})})}),(0,s.jsx)($,{teams:e,currentOrg:T,perTeamInfo:Q,userRole:b,userId:f,setSelectedTeamId:P,setEditTeam:D,onDeleteTeam:ei}),J&&(0,s.jsx)(K,{teams:e,teamToDelete:Y,onCancel:()=>{q(!1),X(null)},onConfirm:eo})]})})})]}),(0,s.jsx)(x.TabPanel,{children:(0,s.jsx)(p.default,{accessToken:_,userID:f})}),(0,n.isAdminRole)(b||"")&&(0,s.jsx)(x.TabPanel,{children:(0,s.jsx)(o.default,{accessToken:_,userID:f||"",userRole:b||""})})]}),("Admin"==b||"Org Admin"==b)&&(0,s.jsx)(eu,{isTeamModalVisible:B,handleOk:()=>{E(!1),z.resetFields(),es([]),ea({})},handleCancel:()=>{E(!1),z.resetFields(),es([]),ea({})},currentOrg:T,organizations:y,teams:e,setTeams:j,modelAliases:el,setModelAliases:ea,loggingSettings:ee,setLoggingSettings:es,setIsTeamModalVisible:E})]})})})};var ep=e.i(214541),eg=e.i(846835);e.s(["default",0,()=>{let{accessToken:e,userId:a,userRole:t}=(0,S.default)(),{teams:r,setTeams:i}=(0,ep.default)(),[o,n]=(0,l.useState)([]);return(0,l.useEffect)(()=>{(0,eg.fetchOrganizations)(e,n).then(()=>{})},[e]),(0,s.jsx)(ex,{teams:r,accessToken:e,setTeams:i,userID:a,userRole:t,organizations:o})}],596115)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/02ae0dc9a2dbf6b9.js b/litellm/proxy/_experimental/out/_next/static/chunks/02ae0dc9a2dbf6b9.js deleted file mode 100644 index fc8dffd1511..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/02ae0dc9a2dbf6b9.js +++ /dev/null @@ -1,8 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94629,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,r],94629)},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),l=e.i(480731),s=e.i(444755),o=e.i(673706),i=e.i(95779);let n={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},m=(0,o.makeClassName)("Icon"),g=r.default.forwardRef((e,g)=>{let{icon:u,variant:h="simple",tooltip:x,size:b=l.Sizes.SM,color:p,className:f}=e,j=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),C=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,s.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,o.getColorClassNames)(t,i.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,s.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(h,p),{tooltipProps:w,getReferenceProps:v}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,o.mergeRefs)([g,w.refs.setReference]),className:(0,s.tremorTwMerge)(m("root"),"inline-flex shrink-0 items-center justify-center",C.bgColor,C.textColor,C.borderColor,C.ringColor,c[h].rounded,c[h].border,c[h].shadow,c[h].ring,n[b].paddingX,n[b].paddingY,f)},v,j),r.default.createElement(a.default,Object.assign({text:x},w)),r.default.createElement(u,{className:(0,s.tremorTwMerge)(m("icon"),"shrink-0",d[b].height,d[b].width)}))});g.displayName="Icon",e.s(["default",()=>g],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let s=l.default.forwardRef((e,s)=>{let{color:o,className:i,children:n}=e;return l.default.createElement("p",{ref:s,className:(0,r.tremorTwMerge)("text-tremor-default",o?(0,a.getColorClassNames)(o,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},n)});s.displayName="Text",e.s(["default",()=>s],936325),e.s(["Text",()=>s],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],s=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),o=e=>e?6:5,i=(e,t,r,a,l)=>{clearTimeout(a.current);let o=s(e);t(o),r.current=o,l&&l({current:o})};var n=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var g=e.i(95779);let u={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},h=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,g.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,g.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,g.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},x=(0,c.makeClassName)("Button"),b=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:s,transitionStatus:o})=>{let i=s?r===n.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),g={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(m,{className:(0,d.tremorTwMerge)(x("icon"),"animate-spin shrink-0",i,g.default,g[o]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(x("icon"),"shrink-0",t,i)})},p=a.default.forwardRef((e,l)=>{let{icon:m,iconPosition:g=n.HorizontalPositions.Left,size:p=n.Sizes.SM,color:f,variant:j="primary",disabled:C,loading:w=!1,loadingText:v,children:k,tooltip:N,className:y}=e,T=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),_=w||C,$=void 0!==m||w,E=w&&v,M=!(!k&&!E),S=(0,d.tremorTwMerge)(u[p].height,u[p].width),O="light"!==j?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",B=h(j,f),R=("light"!==j?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[p],{tooltipProps:I,getReferenceProps:P}=(0,r.useTooltip)(300),[z,L]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:n,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:g}={})=>{let[u,h]=(0,a.useState)(()=>s(d?2:o(c))),x=(0,a.useRef)(u),b=(0,a.useRef)(0),[p,f]="object"==typeof n?[n.enter,n.exit]:[n,n],j=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return o(t)}})(x.current._s,m);e&&i(e,h,x,b,g)},[g,m]);return[u,(0,a.useCallback)(a=>{let s=e=>{switch(i(e,h,x,b,g),e){case 1:p>=0&&(b.current=((...e)=>setTimeout(...e))(j,p));break;case 4:f>=0&&(b.current=((...e)=>setTimeout(...e))(j,f));break;case 0:case 3:b.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||s(e+1)},0)}},n=x.current.isEnter;"boolean"!=typeof a&&(a=!n),a?n||s(e?+!r:2):n&&s(t?l?3:4:o(m))},[j,g,e,t,r,l,p,f,m]),j]})({timeout:50});return(0,a.useEffect)(()=>{L(w)},[w]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,I.refs.setReference]),className:(0,d.tremorTwMerge)(x("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",O,R.paddingX,R.paddingY,R.fontSize,B.textColor,B.bgColor,B.borderColor,B.hoverBorderColor,_?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(h(j,f).hoverTextColor,h(j,f).hoverBgColor,h(j,f).hoverBorderColor),y),disabled:_},P,T),a.default.createElement(r.default,Object.assign({text:N},I)),$&&g!==n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:S,iconPosition:g,Icon:m,transitionStatus:z.status,needMargin:M}):null,E||k?a.default.createElement("span",{className:(0,d.tremorTwMerge)(x("text"),"text-tremor-default whitespace-nowrap")},E?v:k):null,$&&g===n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:S,iconPosition:g,Icon:m,transitionStatus:z.status,needMargin:M}):null)});p.displayName="Button",e.s(["Button",()=>p],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),s=e.i(444755),o=e.i(673706);let i=(0,o.makeClassName)("Card"),n=r.default.forwardRef((e,n)=>{let{decoration:d="",decorationColor:c,children:m,className:g}=e,u=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:n,className:(0,s.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,o.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),g)},u),m)});n.displayName="Card",e.s(["Card",()=>n],304967)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let s=e=>{let{prefixCls:a,className:l,style:s,size:o,shape:i}=e,n=(0,r.default)({[`${a}-lg`]:"large"===o,[`${a}-sm`]:"small"===o}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof o?{width:o,height:o,lineHeight:`${o}px`}:{},[o]);return t.createElement("span",{className:(0,r.default)(a,n,d,l),style:Object.assign(Object.assign({},c),s)})};e.i(296059);var o=e.i(694758),i=e.i(915654),n=e.i(246422),d=e.i(838378);let c=new o.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,i.unit)(e)}),g=e=>Object.assign({width:e},m(e)),u=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),h=e=>Object.assign({width:e},m(e)),x=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),p=(0,n.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:s,skeletonInputCls:o,skeletonImageCls:i,controlHeight:n,controlHeightLG:d,controlHeightSM:m,gradientFromColor:p,padding:f,marginSM:j,borderRadius:C,titleHeight:w,blockRadius:v,paragraphLiHeight:k,controlHeightXS:N,paragraphMarginTop:y}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:f,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:p},g(n)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},g(d)),[`${r}-sm`]:Object.assign({},g(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:w,background:p,borderRadius:v,[`+ ${l}`]:{marginBlockStart:m}},[l]:{padding:0,"> li":{width:"100%",height:k,listStyle:"none",background:p,borderRadius:v,"+ li":{marginBlockStart:N}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:j,[`+ ${l}`]:{marginBlockStart:y}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:s,gradientFromColor:o,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},b(a,i))},x(e,a,r)),{[`${r}-lg`]:Object.assign({},b(l,i))}),x(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},b(s,i))}),x(e,s,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:s}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},g(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},g(l)),[`${t}${t}-sm`]:Object.assign({},g(s))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:s,gradientFromColor:o,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:r},u(t,i)),[`${a}-lg`]:Object.assign({},u(l,i)),[`${a}-sm`]:Object.assign({},u(s,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:s}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},h(s(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},h(r)),{maxWidth:s(r).mul(4).equal(),maxHeight:s(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[s]:{width:"100%"},[o]:{width:"100%"}},[`${t}${t}-active`]:{[` - ${a}, - ${l} > li, - ${r}, - ${s}, - ${o}, - ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),f=e=>{let{prefixCls:a,className:l,style:s,rows:o=0}=e,i=Array.from({length:o}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:s},i)},j=({prefixCls:e,className:a,width:l,style:s})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},s)});function C(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:l,loading:o,className:i,rootClassName:n,style:d,children:c,avatar:m=!1,title:g=!0,paragraph:u=!0,active:h,round:x}=e,{getPrefixCls:b,direction:w,className:v,style:k}=(0,a.useComponentConfig)("skeleton"),N=b("skeleton",l),[y,T,_]=p(N);if(o||!("loading"in e)){let e,a,l=!!m,o=!!g,c=!!u;if(l){let r=Object.assign(Object.assign({prefixCls:`${N}-avatar`},o&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(m));e=t.createElement("div",{className:`${N}-header`},t.createElement(s,Object.assign({},r)))}if(o||c){let e,r;if(o){let r=Object.assign(Object.assign({prefixCls:`${N}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),C(g));e=t.createElement(j,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${N}-paragraph`},(e={},l&&o||(e.width="61%"),!l&&o?e.rows=3:e.rows=2,e)),C(u));r=t.createElement(f,Object.assign({},a))}a=t.createElement("div",{className:`${N}-content`},e,r)}let b=(0,r.default)(N,{[`${N}-with-avatar`]:l,[`${N}-active`]:h,[`${N}-rtl`]:"rtl"===w,[`${N}-round`]:x},v,i,n,T,_);return y(t.createElement("div",{className:b,style:Object.assign(Object.assign({},k),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",o),[h,x,b]=p(u),f=(0,l.default)(e,["prefixCls"]),j=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,n,x,b);return h(t.createElement("div",{className:j},t.createElement(s,Object.assign({prefixCls:`${u}-button`,size:m},f))))},w.Avatar=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",o),[h,x,b]=p(u),f=(0,l.default)(e,["prefixCls","className"]),j=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d},i,n,x,b);return h(t.createElement("div",{className:j},t.createElement(s,Object.assign({prefixCls:`${u}-avatar`,shape:c,size:m},f))))},w.Input=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",o),[h,x,b]=p(u),f=(0,l.default)(e,["prefixCls"]),j=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,n,x,b);return h(t.createElement("div",{className:j},t.createElement(s,Object.assign({prefixCls:`${u}-input`,size:m},f))))},w.Image=e=>{let{prefixCls:l,className:s,rootClassName:o,style:i,active:n}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[m,g,u]=p(c),h=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:n},s,o,g,u);return m(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${c}-image`,s),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:l,className:s,rootClassName:o,style:i,active:n,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),m=c("skeleton",l),[g,u,h]=p(m),x=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:n},u,s,o,h);return g(t.createElement("div",{className:x},t.createElement("div",{className:(0,r.default)(`${m}-image`,s),style:i},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["default",0,s],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},n),o))});s.displayName="Table",e.s(["Table",()=>s],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},n),o))});s.displayName="TableHead",e.s(["TableHead",()=>s],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},n),o))});s.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>s],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},n),o))});s.displayName="TableBody",e.s(["TableBody",()=>s],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("row"),i)},n),o))});s.displayName="TableRow",e.s(["TableRow",()=>s],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),s=r.default.forwardRef((e,s)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:s,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",i)},n),o))});s.displayName="TableCell",e.s(["TableCell",()=>s],977572)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},278587,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,r],278587)},345244,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(752978),l=e.i(994388),s=e.i(309426),o=e.i(599724),i=e.i(350967),n=e.i(278587),d=e.i(304967),c=e.i(629569),m=e.i(389083),g=e.i(677667),u=e.i(898667),h=e.i(130643),x=e.i(808613),b=e.i(311451),p=e.i(199133),f=e.i(592968),j=e.i(827252),C=e.i(702597),w=e.i(355619),v=e.i(764205),k=e.i(727749),N=e.i(435451),y=e.i(860585),T=e.i(500330),_=e.i(678784),$=e.i(118366),E=e.i(464571);let M=({tagId:e,onClose:a,accessToken:s,is_admin:i,editTag:n})=>{let[M]=x.Form.useForm(),[S,O]=(0,r.useState)(null),[B,R]=(0,r.useState)(n),[I,P]=(0,r.useState)([]),[z,L]=(0,r.useState)({}),A=async(e,t)=>{await (0,T.copyToClipboard)(e)&&(L(e=>({...e,[t]:!0})),setTimeout(()=>{L(e=>({...e,[t]:!1}))},2e3))},H=async()=>{if(s)try{let t=(await (0,v.tagInfoCall)(s,[e]))[e];t&&(O(t),n&&M.setFieldsValue({name:t.name,description:t.description,models:t.models,max_budget:t.litellm_budget_table?.max_budget,budget_duration:t.litellm_budget_table?.budget_duration}))}catch(e){console.error("Error fetching tag details:",e),k.default.fromBackend("Error fetching tag details: "+e)}};(0,r.useEffect)(()=>{H()},[e,s]),(0,r.useEffect)(()=>{s&&(0,C.fetchUserModels)("dummy-user","Admin",s,P)},[s]);let q=async e=>{if(s)try{await (0,v.tagUpdateCall)(s,{name:e.name,description:e.description,models:e.models,max_budget:e.max_budget,tpm_limit:e.tpm_limit,rpm_limit:e.rpm_limit,budget_duration:e.budget_duration}),k.default.success("Tag updated successfully"),R(!1),H()}catch(e){console.error("Error updating tag:",e),k.default.fromBackend("Error updating tag: "+e)}};return S?(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(l.Button,{onClick:a,className:"mb-4",children:"← Back to Tags"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Tag Name:"}),(0,t.jsx)("span",{className:"font-mono px-2 py-1 bg-gray-100 rounded text-sm border border-gray-200",children:S.name}),(0,t.jsx)(E.Button,{type:"text",size:"small",icon:z["tag-name"]?(0,t.jsx)(_.CheckIcon,{size:12}):(0,t.jsx)($.CopyIcon,{size:12}),onClick:()=>A(S.name,"tag-name"),className:`transition-all duration-200 ${z["tag-name"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]}),(0,t.jsx)(o.Text,{className:"text-gray-500",children:S.description||"No description"})]}),i&&!B&&(0,t.jsx)(l.Button,{onClick:()=>R(!0),children:"Edit Tag"})]}),B?(0,t.jsx)(d.Card,{children:(0,t.jsxs)(x.Form,{form:M,onFinish:q,layout:"vertical",initialValues:S,children:[(0,t.jsx)(x.Form.Item,{label:"Tag Name",name:"name",rules:[{required:!0,message:"Please input a tag name"}],children:(0,t.jsx)(b.Input,{className:"rounded-md border-gray-300"})}),(0,t.jsx)(x.Form.Item,{label:"Description",name:"description",children:(0,t.jsx)(b.Input.TextArea,{rows:4})}),(0,t.jsx)(x.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Models",(0,t.jsx)(f.Tooltip,{title:"Select which models are allowed to process this type of data",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"models",children:(0,t.jsx)(p.Select,{mode:"multiple",placeholder:"Select Models",children:I.map(e=>(0,t.jsx)(p.Select.Option,{value:e,children:(0,w.getModelDisplayName)(e)},e))})}),(0,t.jsxs)(g.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(u.AccordionHeader,{children:(0,t.jsx)(c.Title,{className:"m-0",children:"Budget & Rate Limits"})}),(0,t.jsxs)(h.AccordionBody,{children:[(0,t.jsx)(x.Form.Item,{label:(0,t.jsxs)("span",{children:["Max Budget (USD)"," ",(0,t.jsx)(f.Tooltip,{title:"Maximum amount in USD this tag can spend",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"max_budget",children:(0,t.jsx)(N.default,{step:.01,precision:2,width:200})}),(0,t.jsx)(x.Form.Item,{label:(0,t.jsxs)("span",{children:["Reset Budget"," ",(0,t.jsx)(f.Tooltip,{title:"How often the budget should reset",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"budget_duration",children:(0,t.jsx)(y.default,{onChange:e=>M.setFieldValue("budget_duration",e)})}),(0,t.jsx)("div",{className:"mt-4 p-3 bg-gray-50 rounded-md border border-gray-200",children:(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["TPM/RPM limits for tags are not currently supported. If you need this feature, please"," ",(0,t.jsx)("a",{href:"https://github.com/BerriAI/litellm/issues/new",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"create a GitHub issue"}),"."]})})]})]}),(0,t.jsxs)("div",{className:"flex justify-end space-x-2",children:[(0,t.jsx)(l.Button,{onClick:()=>R(!1),children:"Cancel"}),(0,t.jsx)(l.Button,{type:"submit",children:"Save Changes"})]})]})}):(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)(d.Card,{children:[(0,t.jsx)(c.Title,{children:"Tag Details"}),(0,t.jsxs)("div",{className:"space-y-4 mt-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Name"}),(0,t.jsx)(o.Text,{children:S.name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Description"}),(0,t.jsx)(o.Text,{children:S.description||"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Allowed Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:S.models&&0!==S.models.length?S.models.map(e=>(0,t.jsx)(m.Badge,{color:"blue",children:(0,t.jsx)(f.Tooltip,{title:`ID: ${e}`,children:S.model_info?.[e]||e})},e)):(0,t.jsx)(m.Badge,{color:"red",children:"All Models"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Created"}),(0,t.jsx)(o.Text,{children:S.created_at?new Date(S.created_at).toLocaleString():"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Last Updated"}),(0,t.jsx)(o.Text,{children:S.updated_at?new Date(S.updated_at).toLocaleString():"-"})]})]})]}),S.litellm_budget_table&&(0,t.jsxs)(d.Card,{children:[(0,t.jsx)(c.Title,{children:"Budget & Rate Limits"}),(0,t.jsxs)("div",{className:"space-y-4 mt-4",children:[void 0!==S.litellm_budget_table.max_budget&&null!==S.litellm_budget_table.max_budget&&(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Max Budget"}),(0,t.jsxs)(o.Text,{children:["$",S.litellm_budget_table.max_budget]})]}),S.litellm_budget_table.budget_duration&&(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"Budget Duration"}),(0,t.jsx)(o.Text,{children:S.litellm_budget_table.budget_duration})]}),void 0!==S.litellm_budget_table.tpm_limit&&null!==S.litellm_budget_table.tpm_limit&&(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"TPM Limit"}),(0,t.jsx)(o.Text,{children:S.litellm_budget_table.tpm_limit.toLocaleString()})]}),void 0!==S.litellm_budget_table.rpm_limit&&null!==S.litellm_budget_table.rpm_limit&&(0,t.jsxs)("div",{children:[(0,t.jsx)(o.Text,{className:"font-medium",children:"RPM Limit"}),(0,t.jsx)(o.Text,{children:S.litellm_budget_table.rpm_limit.toLocaleString()})]})]})]})]})]}):(0,t.jsx)("div",{children:"Loading..."})};var S=e.i(871943),O=e.i(360820),B=e.i(591935),R=e.i(94629),I=e.i(68155),P=e.i(152990),z=e.i(682830),L=e.i(269200),A=e.i(942232),H=e.i(977572),q=e.i(427612),D=e.i(64848),F=e.i(496020);let X="This is just a spend tag that was passed dynamically in a request. It does not control any LLM models.",Y=({data:e,onEdit:s,onDelete:i,onSelectTag:n})=>{let[d,c]=r.default.useState([{id:"created_at",desc:!0}]),g=[{header:"Tag Name",accessorKey:"name",cell:({row:e})=>{let r=e.original,a=r.description===X;return(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(f.Tooltip,{title:a?"You cannot view the information of a dynamically generated spend tag":r.name,children:(0,t.jsx)(l.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5",onClick:()=>n(r.name),disabled:a,children:r.name})})})}},{header:"Description",accessorKey:"description",cell:({row:e})=>{let r=e.original;return(0,t.jsx)(f.Tooltip,{title:r.description,children:(0,t.jsx)("span",{className:"text-xs",children:r.description||"-"})})}},{header:"Allowed Models",accessorKey:"models",cell:({row:e})=>{let r=e.original;return(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column"},children:r?.models?.length===0?(0,t.jsx)(m.Badge,{size:"xs",className:"mb-1",color:"red",children:"All Models"}):r?.models?.map(e=>(0,t.jsx)(m.Badge,{size:"xs",className:"mb-1",color:"blue",children:(0,t.jsx)(f.Tooltip,{title:`ID: ${e}`,children:(0,t.jsx)(o.Text,{children:r.model_info?.[e]||e})})},e))})}},{header:"Created",accessorKey:"created_at",sortingFn:"datetime",cell:({row:e})=>{let r=e.original;return(0,t.jsx)("span",{className:"text-xs",children:new Date(r.created_at).toLocaleDateString()})}},{id:"actions",header:"Actions",cell:({row:e})=>{let r=e.original,l=r.description===X;return(0,t.jsxs)("div",{className:"flex space-x-2",children:[l?(0,t.jsx)(f.Tooltip,{title:"Dynamically generated spend tags cannot be edited",children:(0,t.jsx)(a.Icon,{icon:B.PencilAltIcon,size:"sm",className:"opacity-50 cursor-not-allowed","aria-label":"Edit tag (disabled)"})}):(0,t.jsx)(f.Tooltip,{title:"Edit tag",children:(0,t.jsx)(a.Icon,{icon:B.PencilAltIcon,size:"sm",onClick:()=>s(r),className:"cursor-pointer hover:text-blue-500"})}),l?(0,t.jsx)(f.Tooltip,{title:"Dynamically generated spend tags cannot be deleted",children:(0,t.jsx)(a.Icon,{icon:I.TrashIcon,size:"sm",className:"opacity-50 cursor-not-allowed","aria-label":"Delete tag (disabled)"})}):(0,t.jsx)(f.Tooltip,{title:"Delete tag",children:(0,t.jsx)(a.Icon,{icon:I.TrashIcon,size:"sm",onClick:()=>i(r.name),className:"cursor-pointer hover:text-red-500"})})]})}}],u=(0,P.useReactTable)({data:e,columns:g,state:{sorting:d},onSortingChange:c,getCoreRowModel:(0,z.getCoreRowModel)(),getSortedRowModel:(0,z.getSortedRowModel)(),enableSorting:!0});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(L.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(q.TableHead,{children:u.getHeaderGroups().map(e=>(0,t.jsx)(F.TableRow,{children:e.headers.map(e=>(0,t.jsx)(D.TableHeaderCell,{className:`py-1 h-8 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,P.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(O.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(S.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(R.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,t.jsx)(A.TableBody,{children:u.getRowModel().rows.length>0?u.getRowModel().rows.map(e=>(0,t.jsx)(F.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(H.TableCell,{className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,children:(0,P.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(F.TableRow,{children:(0,t.jsx)(H.TableCell,{colSpan:g.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No tags found"})})})})})]})})})};var V=e.i(779241),W=e.i(212931);let U=({visible:e,onCancel:r,onSubmit:a,availableModels:s})=>{let[o]=x.Form.useForm();return(0,t.jsx)(W.Modal,{title:"Create New Tag",open:e,width:800,footer:null,onCancel:()=>{o.resetFields(),r()},children:(0,t.jsxs)(x.Form,{form:o,onFinish:e=>{a(e),o.resetFields()},labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsx)(x.Form.Item,{label:"Tag Name",name:"tag_name",rules:[{required:!0,message:"Please input a tag name"}],children:(0,t.jsx)(V.TextInput,{})}),(0,t.jsx)(x.Form.Item,{label:"Description",name:"description",children:(0,t.jsx)(b.Input.TextArea,{rows:4})}),(0,t.jsx)(x.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Models",(0,t.jsx)(f.Tooltip,{title:"Select which models are allowed to process requests from this tag",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_llms",children:(0,t.jsx)(p.Select,{mode:"multiple",placeholder:"Select Models",children:s.map(e=>(0,t.jsx)(p.Select.Option,{value:e.model_info.id,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{children:e.model_name}),(0,t.jsxs)("span",{className:"text-gray-400 ml-2",children:["(",e.model_info.id,")"]})]})},e.model_info.id))})}),(0,t.jsxs)(g.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(u.AccordionHeader,{children:(0,t.jsx)(c.Title,{className:"m-0",children:"Budget & Rate Limits (Optional)"})}),(0,t.jsxs)(h.AccordionBody,{children:[(0,t.jsx)(x.Form.Item,{className:"mt-4",label:(0,t.jsxs)("span",{children:["Max Budget (USD)"," ",(0,t.jsx)(f.Tooltip,{title:"Maximum amount in USD this tag can spend. When reached, requests with this tag will be blocked",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"max_budget",children:(0,t.jsx)(N.default,{step:.01,precision:2,width:200})}),(0,t.jsx)(x.Form.Item,{className:"mt-4",label:(0,t.jsxs)("span",{children:["Reset Budget"," ",(0,t.jsx)(f.Tooltip,{title:"How often the budget should reset. For example, setting 'daily' will reset the budget every 24 hours",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"budget_duration",children:(0,t.jsx)(y.default,{onChange:e=>o.setFieldValue("budget_duration",e)})}),(0,t.jsx)("div",{className:"mt-4 p-3 bg-gray-50 rounded-md border border-gray-200",children:(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["TPM/RPM limits for tags are not currently supported. If you need this feature, please"," ",(0,t.jsx)("a",{href:"https://github.com/BerriAI/litellm/issues/new",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"create a GitHub issue"}),"."]})})]})]}),(0,t.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,t.jsx)(l.Button,{type:"submit",children:"Create Tag"})})]})})};e.s(["default",0,({accessToken:e,userID:d,userRole:c})=>{let[m,g]=(0,r.useState)([]),[u,h]=(0,r.useState)(!1),[x,b]=(0,r.useState)(null),[p,f]=(0,r.useState)(!1),[j,C]=(0,r.useState)(!1),[w,N]=(0,r.useState)(null),[y,T]=(0,r.useState)(""),[_,$]=(0,r.useState)([]),E=async()=>{if(e)try{let t=await (0,v.tagListCall)(e);console.log("List tags response:",t),g(Object.values(t))}catch(e){console.error("Error fetching tags:",e),k.default.fromBackend("Error fetching tags: "+e)}},S=async t=>{if(e)try{await (0,v.tagCreateCall)(e,{name:t.tag_name,description:t.description,models:t.allowed_llms,max_budget:t.max_budget,soft_budget:t.soft_budget,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,budget_duration:t.budget_duration}),k.default.success("Tag created successfully"),h(!1),E()}catch(e){console.error("Error creating tag:",e),k.default.fromBackend("Error creating tag: "+e)}},O=async e=>{N(e),C(!0)},B=async()=>{if(e&&w){try{await (0,v.tagDeleteCall)(e,w),k.default.success("Tag deleted successfully"),E()}catch(e){console.error("Error deleting tag:",e),k.default.fromBackend("Error deleting tag: "+e)}C(!1),N(null)}};return(0,r.useEffect)(()=>{d&&c&&e&&(async()=>{try{let t=await (0,v.modelInfoCall)(e,d,c);t&&t.data&&$(t.data)}catch(e){console.error("Error fetching models:",e),k.default.fromBackend("Error fetching models: "+e)}})()},[e,d,c]),(0,r.useEffect)(()=>{E()},[e]),(0,t.jsx)("div",{className:"w-full mx-4 h-[75vh]",children:x?(0,t.jsx)(M,{tagId:x,onClose:()=>{b(null),f(!1)},accessToken:e,is_admin:"Admin"===c,editTag:p}):(0,t.jsxs)("div",{className:"gap-2 p-8 h-[75vh] w-full mt-2",children:[(0,t.jsxs)("div",{className:"flex justify-between mt-2 w-full items-center mb-4",children:[(0,t.jsx)("h1",{children:"Tag Management"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[y&&(0,t.jsxs)(o.Text,{children:["Last Refreshed: ",y]}),(0,t.jsx)(a.Icon,{icon:n.RefreshIcon,variant:"shadow",size:"xs",className:"self-center cursor-pointer",onClick:()=>{E(),T(new Date().toLocaleString())}})]})]}),(0,t.jsxs)(o.Text,{className:"mb-4",children:["Click on a tag name to view and edit its details.",(0,t.jsxs)("p",{children:["You can use tags to restrict the usage of certain LLMs based on tags passed in the request. Read more about tag routing"," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/tag_routing",target:"_blank",rel:"noopener noreferrer",children:"here"}),"."]})]}),(0,t.jsx)(l.Button,{className:"mb-4",onClick:()=>h(!0),children:"+ Create New Tag"}),(0,t.jsx)(i.Grid,{numItems:1,className:"gap-2 pt-2 pb-2 h-[75vh] w-full mt-2",children:(0,t.jsx)(s.Col,{numColSpan:1,children:(0,t.jsx)(Y,{data:m,onEdit:e=>{b(e.name),f(!0)},onDelete:O,onSelectTag:b})})}),(0,t.jsx)(U,{visible:u,onCancel:()=>h(!1),onSubmit:S,availableModels:_}),j&&(0,t.jsx)("div",{className:"fixed z-10 inset-0 overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,t.jsx)("div",{className:"fixed inset-0 transition-opacity","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute inset-0 bg-gray-500 opacity-75"})}),(0,t.jsxs)("div",{className:"inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full",children:[(0,t.jsx)("div",{className:"bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4",children:(0,t.jsx)("div",{className:"sm:flex sm:items-start",children:(0,t.jsxs)("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left",children:[(0,t.jsx)("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:"Delete Tag"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Are you sure you want to delete this tag?"})})]})})}),(0,t.jsxs)("div",{className:"bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse",children:[(0,t.jsx)(l.Button,{onClick:B,color:"red",className:"ml-2",children:"Delete"}),(0,t.jsx)(l.Button,{onClick:()=>{C(!1),N(null)},children:"Cancel"})]})]})]})})]})})}],345244)},954210,e=>{"use strict";var t=e.i(843476),r=e.i(345244),a=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userId:l,userRole:s}=(0,a.default)();return(0,t.jsx)(r.default,{accessToken:e,userID:l,userRole:s})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/033a61668f263790.js b/litellm/proxy/_experimental/out/_next/static/chunks/033a61668f263790.js deleted file mode 100644 index 0fbdb89dfca..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/033a61668f263790.js +++ /dev/null @@ -1,8 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,618566,(e,t,r)=>{t.exports=e.r(976562)},947293,e=>{"use strict";class t extends Error{}function r(e,r){let i;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let s=+(!0!==r.header),n=e.split(".")[s];if("string"!=typeof n)throw new t(`Invalid token specified: missing part #${s+1}`);try{i=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(n)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${s+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new t(`Invalid token specified: invalid json for part #${s+1} (${e.message})`)}}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",()=>r])},180166,e=>{"use strict";var t={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},r=new class{#e=t;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function i(e){setTimeout(e,0)}e.s(["systemSetTimeoutZero",()=>i,"timeoutManager",()=>r])},540143,e=>{"use strict";let t,r,i,s,n,a;var o=e.i(180166).systemSetTimeoutZero,l=(t=[],r=0,i=e=>{e()},s=e=>{e()},n=o,{batch:e=>{let a;r++;try{a=e()}finally{let e;--r||(e=t,t=[],e.length&&n(()=>{s(()=>{e.forEach(e=>{i(e)})})}))}return a},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a=e=>{r?t.push(e):n(()=>{i(e)})},setNotifyFunction:e=>{i=e},setBatchNotifyFunction:e=>{s=e},setScheduler:e=>{n=e}});e.s(["notifyManager",()=>l])},619273,e=>{"use strict";var t=e.i(180166),r="u"=0&&e!==1/0}function a(e,t){return Math.max(e+(t||0)-Date.now(),0)}function o(e,t){return"function"==typeof e?e(t):e}function l(e,t){return"function"==typeof e?e(t):e}function u(e,t){let{type:r="all",exact:i,fetchStatus:s,predicate:n,queryKey:a,stale:o}=e;if(a){if(i){if(t.queryHash!==h(a,t.options))return!1}else if(!p(t.queryKey,a))return!1}if("all"!==r){let e=t.isActive();if("active"===r&&!e||"inactive"===r&&e)return!1}return("boolean"!=typeof o||t.isStale()===o)&&(!s||s===t.state.fetchStatus)&&(!n||!!n(t))}function c(e,t){let{exact:r,status:i,predicate:s,mutationKey:n}=e;if(n){if(!t.options.mutationKey)return!1;if(r){if(d(t.options.mutationKey)!==d(n))return!1}else if(!p(t.options.mutationKey,n))return!1}return(!i||t.state.status===i)&&(!s||!!s(t))}function h(e,t){return(t?.queryKeyHashFn||d)(e)}function d(e){return JSON.stringify(e,(e,t)=>g(t)?Object.keys(t).sort().reduce((e,r)=>(e[r]=t[r],e),{}):t)}function p(e,t){return e===t||typeof e==typeof t&&!!e&&!!t&&"object"==typeof e&&"object"==typeof t&&Object.keys(t).every(r=>p(e[r],t[r]))}var f=Object.prototype.hasOwnProperty;function y(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}function m(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function g(e){if(!b(e))return!1;let t=e.constructor;if(void 0===t)return!0;let r=t.prototype;return!!b(r)&&!!r.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(e)===Object.prototype}function b(e){return"[object Object]"===Object.prototype.toString.call(e)}function v(e){return new Promise(r=>{t.timeoutManager.setTimeout(r,e)})}function O(e,t,r){return"function"==typeof r.structuralSharing?r.structuralSharing(e,t):!1!==r.structuralSharing?function e(t,r,i=0){if(t===r)return t;if(i>500)return r;let s=m(t)&&m(r);if(!s&&!(g(t)&&g(r)))return r;let n=(s?t:Object.keys(t)).length,a=s?r:Object.keys(r),o=a.length,l=s?Array(o):{},u=0;for(let c=0;cr?i.slice(1):i}function S(e,t,r=0){let i=[t,...e];return r&&i.length>r?i.slice(0,-1):i}var w=Symbol();function E(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:e.queryFn&&e.queryFn!==w?e.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`))}function T(e,t){return"function"==typeof e?e(...t):!!e}function $(e,t,r){let i,s=!1;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),s||(s=!0,i.aborted?r():i.addEventListener("abort",r,{once:!0})),i)}),e}e.s(["addConsumeAwareSignal",()=>$,"addToEnd",()=>R,"addToStart",()=>S,"ensureQueryFn",()=>E,"functionalUpdate",()=>s,"hashKey",()=>d,"hashQueryKeyByOptions",()=>h,"isServer",()=>r,"isValidTimeout",()=>n,"keepPreviousData",()=>C,"matchMutation",()=>c,"matchQuery",()=>u,"noop",()=>i,"partialMatchKey",()=>p,"replaceData",()=>O,"resolveEnabled",()=>l,"resolveStaleTime",()=>o,"shallowEqualObjects",()=>y,"shouldThrowError",()=>T,"skipToken",()=>w,"sleep",()=>v,"timeUntilStale",()=>a])},88587,e=>{"use strict";var t=e.i(180166),r=e.i(619273),i=class{#r;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,r.isValidTimeout)(this.gcTime)&&(this.#r=t.timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(r.isServer?1/0:3e5))}clearGcTimeout(){this.#r&&(t.timeoutManager.clearTimeout(this.#r),this.#r=void 0)}};e.s(["Removable",()=>i])},915823,e=>{"use strict";var t=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};e.s(["Subscribable",()=>t])},175555,e=>{"use strict";var t=e.i(915823),r=e.i(619273),i=new class extends t.Subscribable{#i;#s;#n;constructor(){super(),this.#n=e=>{if(!r.isServer&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#s||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#s?.(),this.#s=void 0)}setEventListener(e){this.#n=e,this.#s?.(),this.#s=e(e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()})}setFocused(e){this.#i!==e&&(this.#i=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return"boolean"==typeof this.#i?this.#i:globalThis.document?.visibilityState!=="hidden"}};e.s(["focusManager",()=>i])},936553,814448,793803,e=>{"use strict";var t=e.i(175555),r=e.i(915823),i=e.i(619273),s=new class extends r.Subscribable{#a=!0;#s;#n;constructor(){super(),this.#n=e=>{if(!i.isServer&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#s||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#s?.(),this.#s=void 0)}setEventListener(e){this.#n=e,this.#s?.(),this.#s=e(this.setOnline.bind(this))}setOnline(e){this.#a!==e&&(this.#a=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#a}};function n(){let e,t,r=new Promise((r,i)=>{e=r,t=i});function i(e){Object.assign(r,e),delete r.resolve,delete r.reject}return r.status="pending",r.catch(()=>{}),r.resolve=t=>{i({status:"fulfilled",value:t}),e(t)},r.reject=e=>{i({status:"rejected",reason:e}),t(e)},r}function a(e){return Math.min(1e3*2**e,3e4)}function o(e){return(e??"online")!=="online"||s.isOnline()}e.s(["onlineManager",()=>s],814448),e.s(["pendingThenable",()=>n],793803);var l=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function u(e){let r,u=!1,c=0,h=n(),d=()=>t.focusManager.isFocused()&&("always"===e.networkMode||s.isOnline())&&e.canRun(),p=()=>o(e.networkMode)&&e.canRun(),f=e=>{"pending"===h.status&&(r?.(),h.resolve(e))},y=e=>{"pending"===h.status&&(r?.(),h.reject(e))},m=()=>new Promise(t=>{r=e=>{("pending"!==h.status||d())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,"pending"===h.status&&e.onContinue?.()}),g=()=>{let t;if("pending"!==h.status)return;let r=0===c?e.initialPromise:void 0;try{t=r??e.fn()}catch(e){t=Promise.reject(e)}Promise.resolve(t).then(f).catch(t=>{if("pending"!==h.status)return;let r=e.retry??3*!i.isServer,s=e.retryDelay??a,n="function"==typeof s?s(c,t):s,o=!0===r||"number"==typeof r&&cd()?void 0:m()).then(()=>{u?y(t):g()}))})};return{promise:h,status:()=>h.status,cancel:t=>{if("pending"===h.status){let r=new l(t);y(r),e.onCancel?.(r)}},continue:()=>(r?.(),h),cancelRetry:()=>{u=!0},continueRetry:()=>{u=!1},canStart:p,start:()=>(p()?g():m().then(g),h)}}e.s(["CancelledError",()=>l,"canFetch",()=>o,"createRetryer",()=>u],936553)},912598,e=>{"use strict";var t=e.i(271645),r=e.i(843476),i=t.createContext(void 0),s=e=>{let r=t.useContext(i);if(e)return e;if(!r)throw Error("No QueryClient set, use QueryClientProvider to set one");return r},n=({client:e,children:s})=>(t.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,r.jsx)(i.Provider,{value:e,children:s}));e.s(["QueryClientProvider",()=>n,"useQueryClient",()=>s])},286491,e=>{"use strict";var t=e.i(619273),r=e.i(540143),i=e.i(936553),s=e.i(88587),n=class extends s.Removable{#o;#l;#u;#c;#h;#d;#p;constructor(e){super(),this.#p=!1,this.#d=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#c=e.client,this.#u=this.#c.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#o=l(this.options),this.state=e.state??this.#o,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#h?.promise}setOptions(e){if(this.options={...this.#d,...e},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let e=l(this.options);void 0!==e.data&&(this.setState(o(e.data,e.dataUpdatedAt)),this.#o=e)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#u.remove(this)}setData(e,r){let i=(0,t.replaceData)(this.state.data,e,this.options);return this.#f({data:i,type:"success",dataUpdatedAt:r?.updatedAt,manual:r?.manual}),i}setState(e,t){this.#f({type:"setState",state:e,setStateOptions:t})}cancel(e){let r=this.#h?.promise;return this.#h?.cancel(e),r?r.then(t.noop).catch(t.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#o)}isActive(){return this.observers.some(e=>!1!==(0,t.resolveEnabled)(e.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===t.skipToken||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>"static"===(0,t.resolveStaleTime)(e.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(e=0){return void 0===this.state.data||"static"!==e&&(!!this.state.isInvalidated||!(0,t.timeUntilStale)(this.state.dataUpdatedAt,e))}onFocus(){let e=this.observers.find(e=>e.shouldFetchOnWindowFocus());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}onOnline(){let e=this.observers.find(e=>e.shouldFetchOnReconnect());e?.refetch({cancelRefetch:!1}),this.#h?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#u.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#h&&(this.#p?this.#h.cancel({revert:!0}):this.#h.cancelRetry()),this.scheduleGc()),this.#u.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#f({type:"invalidate"})}async fetch(e,r){let s;if("idle"!==this.state.fetchStatus&&this.#h?.status()!=="rejected"){if(void 0!==this.state.data&&r?.cancelRefetch)this.cancel({silent:!0});else if(this.#h)return this.#h.continueRetry(),this.#h.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,a=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#p=!0,n.signal)})},o=()=>{let e,i=(0,t.ensureQueryFn)(this.options,r),s=(a(e={client:this.#c,queryKey:this.queryKey,meta:this.meta}),e);return(this.#p=!1,this.options.persister)?this.options.persister(i,s,this):i(s)},l=(a(s={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:this.#c,state:this.state,fetchFn:o}),s);this.options.behavior?.onFetch(l,this),this.#l=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==l.fetchOptions?.meta)&&this.#f({type:"fetch",meta:l.fetchOptions?.meta}),this.#h=(0,i.createRetryer)({initialPromise:r?.initialPromise,fn:l.fetchFn,onCancel:e=>{e instanceof i.CancelledError&&e.revert&&this.setState({...this.#l,fetchStatus:"idle"}),n.abort()},onFail:(e,t)=>{this.#f({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#f({type:"pause"})},onContinue:()=>{this.#f({type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0});try{let e=await this.#h.start();if(void 0===e)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#u.config.onSuccess?.(e,this),this.#u.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof i.CancelledError){if(e.silent)return this.#h.promise;else if(e.revert){if(void 0===this.state.data)throw e;return this.state.data}}throw this.#f({type:"error",error:e}),this.#u.config.onError?.(e,this),this.#u.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#f(e){let t=t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,...a(t.data,this.options),fetchMeta:e.meta??null};case"success":let r={...t,...o(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#l=e.manual?r:void 0,r;case"error":let i=e.error;return{...t,error:i,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}};this.state=t(this.state),r.notifyManager.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#u.notify({query:this,type:"updated",action:e})})}};function a(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,i.canFetch)(t.networkMode)?"fetching":"paused",...void 0===e&&{error:null,status:"pending"}}}function o(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function l(e){let t="function"==typeof e.initialData?e.initialData():e.initialData,r=void 0!==t,i=r?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}e.s(["Query",()=>n,"fetchState",()=>a])},869230,e=>{"use strict";var t=e.i(175555),r=e.i(540143),i=e.i(286491),s=e.i(915823),n=e.i(793803),a=e.i(619273),o=e.i(180166),l=class extends s.Subscribable{constructor(e,t){super(),this.options=t,this.#c=e,this.#y=null,this.#m=(0,n.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#c;#g=void 0;#b=void 0;#v=void 0;#O;#C;#m;#y;#R;#S;#w;#E;#T;#$;#k=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#g.addObserver(this),u(this.#g,this.options)?this.#j():this.updateResult(),this.#I())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return c(this.#g,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return c(this.#g,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#Q(),this.#x(),this.#g.removeObserver(this)}setOptions(e){let t=this.options,r=this.#g;if(this.options=this.#c.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,a.resolveEnabled)(this.options.enabled,this.#g))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#F(),this.#g.setOptions(this.options),t._defaulted&&!(0,a.shallowEqualObjects)(this.options,t)&&this.#c.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#g,observer:this});let i=this.hasListeners();i&&h(this.#g,r,this.options,t)&&this.#j(),this.updateResult(),i&&(this.#g!==r||(0,a.resolveEnabled)(this.options.enabled,this.#g)!==(0,a.resolveEnabled)(t.enabled,this.#g)||(0,a.resolveStaleTime)(this.options.staleTime,this.#g)!==(0,a.resolveStaleTime)(t.staleTime,this.#g))&&this.#q();let s=this.#M();i&&(this.#g!==r||(0,a.resolveEnabled)(this.options.enabled,this.#g)!==(0,a.resolveEnabled)(t.enabled,this.#g)||s!==this.#$)&&this.#U(s)}getOptimisticResult(e){var t,r;let i=this.#c.getQueryCache().build(this.#c,e),s=this.createResult(i,e);return t=this,r=s,(0,a.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#v=s,this.#C=this.options,this.#O=this.#g.state),s}getCurrentResult(){return this.#v}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#m.status||this.#m.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#k.add(e)}getCurrentQuery(){return this.#g}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#c.defaultQueryOptions(e),r=this.#c.getQueryCache().build(this.#c,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#j({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#v))}#j(e){this.#F();let t=this.#g.fetch(this.options,e);return e?.throwOnError||(t=t.catch(a.noop)),t}#q(){this.#Q();let e=(0,a.resolveStaleTime)(this.options.staleTime,this.#g);if(a.isServer||this.#v.isStale||!(0,a.isValidTimeout)(e))return;let t=(0,a.timeUntilStale)(this.#v.dataUpdatedAt,e);this.#E=o.timeoutManager.setTimeout(()=>{this.#v.isStale||this.updateResult()},t+1)}#M(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#g):this.options.refetchInterval)??!1}#U(e){this.#x(),this.#$=e,!a.isServer&&!1!==(0,a.resolveEnabled)(this.options.enabled,this.#g)&&(0,a.isValidTimeout)(this.#$)&&0!==this.#$&&(this.#T=o.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||t.focusManager.isFocused())&&this.#j()},this.#$))}#I(){this.#q(),this.#U(this.#M())}#Q(){this.#E&&(o.timeoutManager.clearTimeout(this.#E),this.#E=void 0)}#x(){this.#T&&(o.timeoutManager.clearInterval(this.#T),this.#T=void 0)}createResult(e,t){let r,s=this.#g,o=this.options,l=this.#v,c=this.#O,p=this.#C,f=e!==s?e.state:this.#b,{state:y}=e,m={...y},g=!1;if(t._optimisticResults){let r=this.hasListeners(),n=!r&&u(e,t),a=r&&h(e,s,t,o);(n||a)&&(m={...m,...(0,i.fetchState)(y.data,e.options)}),"isRestoring"===t._optimisticResults&&(m.fetchStatus="idle")}let{error:b,errorUpdatedAt:v,status:O}=m;r=m.data;let C=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===O){let e;l?.isPlaceholderData&&t.placeholderData===p?.placeholderData?(e=l.data,C=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#w?.state.data,this.#w):t.placeholderData,void 0!==e&&(O="success",r=(0,a.replaceData)(l?.data,e,t),g=!0)}if(t.select&&void 0!==r&&!C)if(l&&r===c?.data&&t.select===this.#R)r=this.#S;else try{this.#R=t.select,r=t.select(r),r=(0,a.replaceData)(l?.data,r,t),this.#S=r,this.#y=null}catch(e){this.#y=e}this.#y&&(b=this.#y,r=this.#S,v=Date.now(),O="error");let R="fetching"===m.fetchStatus,S="pending"===O,w="error"===O,E=S&&R,T=void 0!==r,$={status:O,fetchStatus:m.fetchStatus,isPending:S,isSuccess:"success"===O,isError:w,isInitialLoading:E,isLoading:E,data:r,dataUpdatedAt:m.dataUpdatedAt,error:b,errorUpdatedAt:v,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:m.dataUpdateCount>0||m.errorUpdateCount>0,isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:R,isRefetching:R&&!S,isLoadingError:w&&!T,isPaused:"paused"===m.fetchStatus,isPlaceholderData:g,isRefetchError:w&&T,isStale:d(e,t),refetch:this.refetch,promise:this.#m,isEnabled:!1!==(0,a.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==$.data,r="error"===$.status&&!t,i=e=>{r?e.reject($.error):t&&e.resolve($.data)},a=()=>{i(this.#m=$.promise=(0,n.pendingThenable)())},o=this.#m;switch(o.status){case"pending":e.queryHash===s.queryHash&&i(o);break;case"fulfilled":(r||$.data!==o.value)&&a();break;case"rejected":r&&$.error===o.reason||a()}}return $}updateResult(){let e=this.#v,t=this.createResult(this.#g,this.options);if(this.#O=this.#g.state,this.#C=this.options,void 0!==this.#O.data&&(this.#w=this.#g),(0,a.shallowEqualObjects)(t,e))return;this.#v=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#k.size)return!0;let i=new Set(r??this.#k);return this.options.throwOnError&&i.add("error"),Object.keys(this.#v).some(t=>this.#v[t]!==e[t]&&i.has(t))};this.#D({listeners:r()})}#F(){let e=this.#c.getQueryCache().build(this.#c,this.options);if(e===this.#g)return;let t=this.#g;this.#g=e,this.#b=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#I()}#D(e){r.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#v)}),this.#c.getQueryCache().notify({query:this.#g,type:"observerResultsUpdated"})})}};function u(e,t){return!1!==(0,a.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&c(e,t,t.refetchOnMount)}function c(e,t,r){if(!1!==(0,a.resolveEnabled)(t.enabled,e)&&"static"!==(0,a.resolveStaleTime)(t.staleTime,e)){let i="function"==typeof r?r(e):r;return"always"===i||!1!==i&&d(e,t)}return!1}function h(e,t,r,i){return(e!==t||!1===(0,a.resolveEnabled)(i.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&d(e,r)}function d(e,t){return!1!==(0,a.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,a.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",()=>l])},266027,e=>{"use strict";let t;var r=e.i(869230);e.i(247167);var i=e.i(271645),s=e.i(619273),n=e.i(540143),a=e.i(912598);e.i(843476);var o=i.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),l=i.createContext(!1);l.Provider;var u=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function c(e,t){return function(e,t,r){let c,h=i.useContext(l),d=i.useContext(o),p=(0,a.useQueryClient)(r),f=p.defaultQueryOptions(e);p.getDefaultOptions().queries?._experimental_beforeQuery?.(f);let y=p.getQueryCache().get(f.queryHash);if(f._optimisticResults=h?"isRestoring":"optimistic",f.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=f.staleTime;f.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof f.gcTime&&(f.gcTime=Math.max(f.gcTime,1e3))}c=y?.state.error&&"function"==typeof f.throwOnError?(0,s.shouldThrowError)(f.throwOnError,[y.state.error,y]):f.throwOnError,(f.suspense||f.experimental_prefetchInRender||c)&&!d.isReset()&&(f.retryOnMount=!1),i.useEffect(()=>{d.clearReset()},[d]);let m=!p.getQueryCache().get(f.queryHash),[g]=i.useState(()=>new t(p,f)),b=g.getOptimisticResult(f),v=!h&&!1!==e.subscribed;if(i.useSyncExternalStore(i.useCallback(e=>{let t=v?g.subscribe(n.notifyManager.batchCalls(e)):s.noop;return g.updateResult(),t},[g,v]),()=>g.getCurrentResult(),()=>g.getCurrentResult()),i.useEffect(()=>{g.setOptions(f)},[f,g]),f?.suspense&&b.isPending)throw u(f,g,d);if((({result:e,errorResetBoundary:t,throwOnError:r,query:i,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&i&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,i])))({result:b,errorResetBoundary:d,throwOnError:f.throwOnError,query:y,suspense:f.suspense}))throw b.error;if(p.getDefaultOptions().queries?._experimental_afterQuery?.(f,b),f.experimental_prefetchInRender&&!s.isServer&&b.isLoading&&b.isFetching&&!h){let e=m?u(f,g,d):y?.promise;e?.catch(s.noop).finally(()=>{g.updateResult()})}return f.notifyOnChangeProps?b:g.trackResult(b)}(e,r.QueryObserver,t)}e.s(["useQuery",()=>c],266027)},243652,e=>{"use strict";function t(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}e.s(["createQueryKeys",()=>t])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let i=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])},161281,e=>{"use strict";var t=e.i(947293);function r(e){try{let r=(0,t.jwtDecode)(e);if(r&&"number"==typeof r.exp)return 1e3*r.exp<=Date.now();return!1}catch{return!0}}function i(e){if(!e)return null;try{return(0,t.jwtDecode)(e)}catch{return null}}function s(e){return!!e&&null!==i(e)&&!r(e)}e.s(["checkTokenValidity",()=>s,"decodeToken",()=>i,"isJwtExpired",()=>r])},190144,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"};var s=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(s.default,(0,t.default)({},e,{ref:n,icon:i}))});e.s(["default",0,n],190144)},735049,e=>{"use strict";var t=e.i(654310),r=function(e){if((0,t.default)()&&window.document.documentElement){var r=Array.isArray(e)?e:[e],i=window.document.documentElement;return r.some(function(e){return e in i.style})}return!1},i=function(e,t){if(!r(e))return!1;var i=document.createElement("div"),s=i.style[e];return i.style[e]=t,i.style[e]!==s};function s(e,t){return Array.isArray(e)||void 0===t?r(e):i(e,t)}e.s(["isStyleSupport",()=>s])},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),i=e.i(242064),s=e.i(529681);let n=e=>{let{prefixCls:i,className:s,style:n,size:a,shape:o}=e,l=(0,r.default)({[`${i}-lg`]:"large"===a,[`${i}-sm`]:"small"===a}),u=(0,r.default)({[`${i}-circle`]:"circle"===o,[`${i}-square`]:"square"===o,[`${i}-round`]:"round"===o}),c=t.useMemo(()=>"number"==typeof a?{width:a,height:a,lineHeight:`${a}px`}:{},[a]);return t.createElement("span",{className:(0,r.default)(i,l,u,s),style:Object.assign(Object.assign({},c),n)})};e.i(296059);var a=e.i(694758),o=e.i(915654),l=e.i(246422),u=e.i(838378);let c=new a.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),h=e=>({height:e,lineHeight:(0,o.unit)(e)}),d=e=>Object.assign({width:e},h(e)),p=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},h(e)),f=e=>Object.assign({width:e},h(e)),y=(e,t,r)=>{let{skeletonButtonCls:i}=e;return{[`${r}${i}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${i}-round`]:{borderRadius:t}}},m=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},h(e)),g=(0,l.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:i,skeletonParagraphCls:s,skeletonButtonCls:n,skeletonInputCls:a,skeletonImageCls:o,controlHeight:l,controlHeightLG:u,controlHeightSM:h,gradientFromColor:g,padding:b,marginSM:v,borderRadius:O,titleHeight:C,blockRadius:R,paragraphLiHeight:S,controlHeightXS:w,paragraphMarginTop:E}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:b,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:g},d(l)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},d(u)),[`${r}-sm`]:Object.assign({},d(h))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[i]:{width:"100%",height:C,background:g,borderRadius:R,[`+ ${s}`]:{marginBlockStart:h}},[s]:{padding:0,"> li":{width:"100%",height:S,listStyle:"none",background:g,borderRadius:R,"+ li":{marginBlockStart:w}}},[`${s}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${i}, ${s} > li`]:{borderRadius:O}}},[`${t}-with-avatar ${t}-content`]:{[i]:{marginBlockStart:v,[`+ ${s}`]:{marginBlockStart:E}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:i,controlHeightLG:s,controlHeightSM:n,gradientFromColor:a,calc:o}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:a,borderRadius:t,width:o(i).mul(2).equal(),minWidth:o(i).mul(2).equal()},m(i,o))},y(e,i,r)),{[`${r}-lg`]:Object.assign({},m(s,o))}),y(e,s,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},m(n,o))}),y(e,n,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:i,controlHeightLG:s,controlHeightSM:n}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},d(i)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},d(s)),[`${t}${t}-sm`]:Object.assign({},d(n))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:i,controlHeightLG:s,controlHeightSM:n,gradientFromColor:a,calc:o}=e;return{[i]:Object.assign({display:"inline-block",verticalAlign:"top",background:a,borderRadius:r},p(t,o)),[`${i}-lg`]:Object.assign({},p(s,o)),[`${i}-sm`]:Object.assign({},p(n,o))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:i,borderRadiusSM:s,calc:n}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:i,borderRadius:s},f(n(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},f(r)),{maxWidth:n(r).mul(4).equal(),maxHeight:n(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[n]:{width:"100%"},[a]:{width:"100%"}},[`${t}${t}-active`]:{[` - ${i}, - ${s} > li, - ${r}, - ${n}, - ${a}, - ${o} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,u.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),b=e=>{let{prefixCls:i,className:s,style:n,rows:a=0}=e,o=Array.from({length:a}).map((r,i)=>t.createElement("li",{key:i,style:{width:((e,t)=>{let{width:r,rows:i=2}=t;return Array.isArray(r)?r[e]:i-1===e?r:void 0})(i,e)}}));return t.createElement("ul",{className:(0,r.default)(i,s),style:n},o)},v=({prefixCls:e,className:i,width:s,style:n})=>t.createElement("h3",{className:(0,r.default)(e,i),style:Object.assign({width:s},n)});function O(e){return e&&"object"==typeof e?e:{}}let C=e=>{let{prefixCls:s,loading:a,className:o,rootClassName:l,style:u,children:c,avatar:h=!1,title:d=!0,paragraph:p=!0,active:f,round:y}=e,{getPrefixCls:m,direction:C,className:R,style:S}=(0,i.useComponentConfig)("skeleton"),w=m("skeleton",s),[E,T,$]=g(w);if(a||!("loading"in e)){let e,i,s=!!h,a=!!d,c=!!p;if(s){let r=Object.assign(Object.assign({prefixCls:`${w}-avatar`},a&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),O(h));e=t.createElement("div",{className:`${w}-header`},t.createElement(n,Object.assign({},r)))}if(a||c){let e,r;if(a){let r=Object.assign(Object.assign({prefixCls:`${w}-title`},!s&&c?{width:"38%"}:s&&c?{width:"50%"}:{}),O(d));e=t.createElement(v,Object.assign({},r))}if(c){let e,i=Object.assign(Object.assign({prefixCls:`${w}-paragraph`},(e={},s&&a||(e.width="61%"),!s&&a?e.rows=3:e.rows=2,e)),O(p));r=t.createElement(b,Object.assign({},i))}i=t.createElement("div",{className:`${w}-content`},e,r)}let m=(0,r.default)(w,{[`${w}-with-avatar`]:s,[`${w}-active`]:f,[`${w}-rtl`]:"rtl"===C,[`${w}-round`]:y},R,o,l,T,$);return E(t.createElement("div",{className:m,style:Object.assign(Object.assign({},S),u)},e,i))}return null!=c?c:null};C.Button=e=>{let{prefixCls:a,className:o,rootClassName:l,active:u,block:c=!1,size:h="default"}=e,{getPrefixCls:d}=t.useContext(i.ConfigContext),p=d("skeleton",a),[f,y,m]=g(p),b=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(p,`${p}-element`,{[`${p}-active`]:u,[`${p}-block`]:c},o,l,y,m);return f(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${p}-button`,size:h},b))))},C.Avatar=e=>{let{prefixCls:a,className:o,rootClassName:l,active:u,shape:c="circle",size:h="default"}=e,{getPrefixCls:d}=t.useContext(i.ConfigContext),p=d("skeleton",a),[f,y,m]=g(p),b=(0,s.default)(e,["prefixCls","className"]),v=(0,r.default)(p,`${p}-element`,{[`${p}-active`]:u},o,l,y,m);return f(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${p}-avatar`,shape:c,size:h},b))))},C.Input=e=>{let{prefixCls:a,className:o,rootClassName:l,active:u,block:c,size:h="default"}=e,{getPrefixCls:d}=t.useContext(i.ConfigContext),p=d("skeleton",a),[f,y,m]=g(p),b=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(p,`${p}-element`,{[`${p}-active`]:u,[`${p}-block`]:c},o,l,y,m);return f(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${p}-input`,size:h},b))))},C.Image=e=>{let{prefixCls:s,className:n,rootClassName:a,style:o,active:l}=e,{getPrefixCls:u}=t.useContext(i.ConfigContext),c=u("skeleton",s),[h,d,p]=g(c),f=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:l},n,a,d,p);return h(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${c}-image`,n),style:o},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},C.Node=e=>{let{prefixCls:s,className:n,rootClassName:a,style:o,active:l,children:u}=e,{getPrefixCls:c}=t.useContext(i.ConfigContext),h=c("skeleton",s),[d,p,f]=g(h),y=(0,r.default)(h,`${h}-element`,{[`${h}-active`]:l},p,n,a,f);return d(t.createElement("div",{className:y},t.createElement("div",{className:(0,r.default)(`${h}-image`,n),style:o},u)))},e.s(["default",0,C],185793)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/04b9c7b5c33ea26c.js b/litellm/proxy/_experimental/out/_next/static/chunks/04b9c7b5c33ea26c.js new file mode 100644 index 00000000000..7810bf6334d --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/04b9c7b5c33ea26c.js @@ -0,0 +1,14 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91874,e=>{"use strict";var t=e.i(931067),r=e.i(209428),a=e.i(211577),l=e.i(392221),o=e.i(703923),n=e.i(343794),i=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,g=e.className,b=e.style,f=e.checked,p=e.disabled,h=e.defaultChecked,C=e.type,v=void 0===C?"checkbox":C,k=e.title,x=e.onChange,$=(0,o.default)(e,d),w=(0,s.useRef)(null),y=(0,s.useRef)(null),N=(0,i.default)(void 0!==h&&h,{value:f}),O=(0,l.default)(N,2),E=O[0],j=O[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=w.current)||t.focus(e)},blur:function(){var e;null==(e=w.current)||e.blur()},input:w.current,nativeElement:y.current}});var T=(0,n.default)(m,g,(0,a.default)((0,a.default)({},"".concat(m,"-checked"),E),"".concat(m,"-disabled"),p));return s.createElement("span",{className:T,title:k,style:b,ref:y},s.createElement("input",(0,t.default)({},$,{className:"".concat(m,"-input"),ref:w,onChange:function(t){p||("checked"in e||j(t.target.checked),null==x||x({target:(0,r.default)((0,r.default)({},e),{},{type:v,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:p,checked:!!E,type:v})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c])},421512,236836,e=>{"use strict";let t=e.i(271645).default.createContext(null);e.s(["default",0,t],421512),e.i(296059);var r=e.i(915654),a=e.i(183293),l=e.i(246422),o=e.i(838378);function n(e,t){return(e=>{let{checkboxCls:t}=e,l=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[l]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${l}`]:{marginInlineStart:0},[`&${l}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,a.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,r.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` + ${l}:not(${l}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${l}:not(${l}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` + ${l}-checked:not(${l}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${l}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,o.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let i=(0,l.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[n(t,e)]);e.s(["default",0,i,"getStyle",()=>n],236836)},681216,e=>{"use strict";var t=e.i(271645),r=e.i(963188);function a(e){let a=t.default.useRef(null),l=()=>{r.default.cancel(a.current),a.current=null};return[()=>{l(),a.current=(0,r.default)(()=>{a.current=null})},t=>{a.current&&(t.stopPropagation(),l()),null==e||e(t)}]}e.s(["default",()=>a])},374276,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(91874),l=e.i(611935),o=e.i(121872),n=e.i(26905),i=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139),u=e.i(421512),m=e.i(236836),g=e.i(681216),b=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let f=t.forwardRef((e,f)=>{var p;let{prefixCls:h,className:C,rootClassName:v,children:k,indeterminate:x=!1,style:$,onMouseEnter:w,onMouseLeave:y,skipGroup:N=!1,disabled:O}=e,E=b(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:j,direction:T,checkbox:S}=t.useContext(i.ConfigContext),R=t.useContext(u.default),{isFormItemInput:M}=t.useContext(c.FormItemInputContext),z=t.useContext(s.default),P=null!=(p=(null==R?void 0:R.disabled)||O)?p:z,B=t.useRef(E.value),q=t.useRef(null),H=(0,l.composeRef)(f,q);t.useEffect(()=>{null==R||R.registerValue(E.value)},[]),t.useEffect(()=>{if(!N)return E.value!==B.current&&(null==R||R.cancelValue(B.current),null==R||R.registerValue(E.value),B.current=E.value),()=>null==R?void 0:R.cancelValue(E.value)},[E.value]),t.useEffect(()=>{var e;(null==(e=q.current)?void 0:e.input)&&(q.current.input.indeterminate=x)},[x]);let I=j("checkbox",h),_=(0,d.default)(I),[A,L,X]=(0,m.default)(I,_),F=Object.assign({},E);R&&!N&&(F.onChange=(...e)=>{E.onChange&&E.onChange.apply(E,e),R.toggleOption&&R.toggleOption({label:k,value:E.value})},F.name=R.name,F.checked=R.value.includes(E.value));let D=(0,r.default)(`${I}-wrapper`,{[`${I}-rtl`]:"rtl"===T,[`${I}-wrapper-checked`]:F.checked,[`${I}-wrapper-disabled`]:P,[`${I}-wrapper-in-form-item`]:M},null==S?void 0:S.className,C,v,X,_,L),Y=(0,r.default)({[`${I}-indeterminate`]:x},n.TARGET_CLS,L),[V,W]=(0,g.default)(F.onClick);return A(t.createElement(o.default,{component:"Checkbox",disabled:P},t.createElement("label",{className:D,style:Object.assign(Object.assign({},null==S?void 0:S.style),$),onMouseEnter:w,onMouseLeave:y,onClick:V},t.createElement(a.default,Object.assign({},F,{onClick:W,prefixCls:I,className:Y,disabled:P,ref:H})),null!=k&&t.createElement("span",{className:`${I}-label`},k))))});var p=e.i(8211),h=e.i(529681),C=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let v=t.forwardRef((e,a)=>{let{defaultValue:l,children:o,options:n=[],prefixCls:s,className:c,rootClassName:g,style:b,onChange:v}=e,k=C(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:x,direction:$}=t.useContext(i.ConfigContext),[w,y]=t.useState(k.value||l||[]),[N,O]=t.useState([]);t.useEffect(()=>{"value"in k&&y(k.value||[])},[k.value]);let E=t.useMemo(()=>n.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[n]),j=e=>{O(t=>t.filter(t=>t!==e))},T=e=>{O(t=>[].concat((0,p.default)(t),[e]))},S=e=>{let t=w.indexOf(e.value),r=(0,p.default)(w);-1===t?r.push(e.value):r.splice(t,1),"value"in k||y(r),null==v||v(r.filter(e=>N.includes(e)).sort((e,t)=>E.findIndex(t=>t.value===e)-E.findIndex(e=>e.value===t)))},R=x("checkbox",s),M=`${R}-group`,z=(0,d.default)(R),[P,B,q]=(0,m.default)(R,z),H=(0,h.default)(k,["value","disabled"]),I=n.length?E.map(e=>t.createElement(f,{prefixCls:R,key:e.value.toString(),disabled:"disabled"in e?e.disabled:k.disabled,value:e.value,checked:w.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${M}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):o,_=t.useMemo(()=>({toggleOption:S,value:w,disabled:k.disabled,name:k.name,registerValue:T,cancelValue:j}),[S,w,k.disabled,k.name,T,j]),A=(0,r.default)(M,{[`${M}-rtl`]:"rtl"===$},c,g,q,z,B);return P(t.createElement("div",Object.assign({className:A,style:b},H,{ref:a}),t.createElement(u.default.Provider,{value:_},I)))});f.Group=v,f.__ANT_CHECKBOX=!0,e.s(["default",0,f],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:n,className:i,children:s}=e;return l.default.createElement("p",{ref:o,className:(0,r.tremorTwMerge)("text-tremor-default",n?(0,a.getColorClassNames)(n,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},s)});o.displayName="Text",e.s(["default",()=>o],936325),e.s(["Text",()=>o],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],o=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),n=e=>e?6:5,i=(e,t,r,a,l)=>{clearTimeout(a.current);let n=o(e);t(n),r.current=n,l&&l({current:n})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},b=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,c.makeClassName)("Button"),p=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:o,transitionStatus:n})=>{let i=o?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(f("icon"),"animate-spin shrink-0",i,m.default,m[n]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(f("icon"),"shrink-0",t,i)})},h=a.default.forwardRef((e,l)=>{let{icon:u,iconPosition:m=s.HorizontalPositions.Left,size:h=s.Sizes.SM,color:C,variant:v="primary",disabled:k,loading:x=!1,loadingText:$,children:w,tooltip:y,className:N}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),E=x||k,j=void 0!==u||x,T=x&&$,S=!(!w&&!T),R=(0,d.tremorTwMerge)(g[h].height,g[h].width),M="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",z=b(v,C),P=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[h],{tooltipProps:B,getReferenceProps:q}=(0,r.useTooltip)(300),[H,I]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,b]=(0,a.useState)(()=>o(d?2:n(c))),f=(0,a.useRef)(g),p=(0,a.useRef)(0),[h,C]="object"==typeof s?[s.enter,s.exit]:[s,s],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return n(t)}})(f.current._s,u);e&&i(e,b,f,p,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let o=e=>{switch(i(e,b,f,p,m),e){case 1:h>=0&&(p.current=((...e)=>setTimeout(...e))(v,h));break;case 4:C>=0&&(p.current=((...e)=>setTimeout(...e))(v,C));break;case 0:case 3:p.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||o(e+1)},0)}},s=f.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||o(e?+!r:2):s&&o(t?l?3:4:n(u))},[v,m,e,t,r,l,h,C,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{I(x)},[x]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,B.refs.setReference]),className:(0,d.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",M,P.paddingX,P.paddingY,P.fontSize,z.textColor,z.bgColor,z.borderColor,z.hoverBorderColor,E?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(b(v,C).hoverTextColor,b(v,C).hoverBgColor,b(v,C).hoverBorderColor),N),disabled:E},q,O),a.default.createElement(r.default,Object.assign({text:y},B)),j&&m!==s.HorizontalPositions.Right?a.default.createElement(p,{loading:x,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null,T||w?a.default.createElement("span",{className:(0,d.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},T?$:w):null,j&&m===s.HorizontalPositions.Right?a.default.createElement(p,{loading:x,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null)});h.displayName="Button",e.s(["Button",()=>h],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),o=e.i(444755),n=e.i(673706);let i=(0,n.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,n.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});s.displayName="Card",e.s(["Card",()=>s],304967)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let o=e=>{let{prefixCls:a,className:l,style:o,size:n,shape:i}=e,s=(0,r.default)({[`${a}-lg`]:"large"===n,[`${a}-sm`]:"small"===n}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,r.default)(a,s,d,l),style:Object.assign(Object.assign({},c),o)})};e.i(296059);var n=e.i(694758),i=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),b=e=>Object.assign({width:e},u(e)),f=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},p=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),h=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:o,skeletonInputCls:n,skeletonImageCls:i,controlHeight:s,controlHeightLG:d,controlHeightSM:u,gradientFromColor:h,padding:C,marginSM:v,borderRadius:k,titleHeight:x,blockRadius:$,paragraphLiHeight:w,controlHeightXS:y,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:h},m(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:x,background:h,borderRadius:$,[`+ ${l}`]:{marginBlockStart:u}},[l]:{padding:0,"> li":{width:"100%",height:w,listStyle:"none",background:h,borderRadius:$,"+ li":{marginBlockStart:y}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:k}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${l}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},p(a,i))},f(e,a,r)),{[`${r}-lg`]:Object.assign({},p(l,i))}),f(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},p(o,i))}),f(e,o,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(l)),[`${t}${t}-sm`]:Object.assign({},m(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:r},g(t,i)),[`${a}-lg`]:Object.assign({},g(l,i)),[`${a}-sm`]:Object.assign({},g(o,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},b(o(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},b(r)),{maxWidth:o(r).mul(4).equal(),maxHeight:o(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${a}, + ${l} > li, + ${r}, + ${o}, + ${n}, + ${i} + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:l,style:o,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:o},i)},v=({prefixCls:e,className:a,width:l,style:o})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},o)});function k(e){return e&&"object"==typeof e?e:{}}let x=e=>{let{prefixCls:l,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:b,round:f}=e,{getPrefixCls:p,direction:x,className:$,style:w}=(0,a.useComponentConfig)("skeleton"),y=p("skeleton",l),[N,O,E]=h(y);if(n||!("loading"in e)){let e,a,l=!!u,n=!!m,c=!!g;if(l){let r=Object.assign(Object.assign({prefixCls:`${y}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),k(u));e=t.createElement("div",{className:`${y}-header`},t.createElement(o,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${y}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),k(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${y}-paragraph`},(e={},l&&n||(e.width="61%"),!l&&n?e.rows=3:e.rows=2,e)),k(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${y}-content`},e,r)}let p=(0,r.default)(y,{[`${y}-with-avatar`]:l,[`${y}-active`]:b,[`${y}-rtl`]:"rtl"===x,[`${y}-round`]:f},$,i,s,O,E);return N(t.createElement("div",{className:p,style:Object.assign(Object.assign({},w),d)},e,a))}return null!=c?c:null};x.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-button`,size:u},C))))},x.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},C))))},x.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-input`,size:u},C))))},x.Image=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[u,m,g]=h(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},o,n,m,g);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,o),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},x.Node=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",l),[m,g,b]=h(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,o,n,b);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,o),style:i},d)))},e.s(["default",0,x],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["default",0,o],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});o.displayName="Table",e.s(["Table",()=>o],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});o.displayName="TableHead",e.s(["TableHead",()=>o],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});o.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>o],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});o.displayName="TableBody",e.s(["TableBody",()=>o],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("row"),i)},s),n))});o.displayName="TableRow",e.s(["TableRow",()=>o],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});o.displayName="TableCell",e.s(["TableCell",()=>o],977572)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",()=>t])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/088a4006aa78f150.js b/litellm/proxy/_experimental/out/_next/static/chunks/088a4006aa78f150.js new file mode 100644 index 00000000000..5b939ac979e --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/088a4006aa78f150.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},350967,46757,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l={0:"grid-cols-none",1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6",7:"grid-cols-7",8:"grid-cols-8",9:"grid-cols-9",10:"grid-cols-10",11:"grid-cols-11",12:"grid-cols-12"},n={0:"sm:grid-cols-none",1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6",7:"sm:grid-cols-7",8:"sm:grid-cols-8",9:"sm:grid-cols-9",10:"sm:grid-cols-10",11:"sm:grid-cols-11",12:"sm:grid-cols-12"},i={0:"md:grid-cols-none",1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8",9:"md:grid-cols-9",10:"md:grid-cols-10",11:"md:grid-cols-11",12:"md:grid-cols-12"},o={0:"lg:grid-cols-none",1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6",7:"lg:grid-cols-7",8:"lg:grid-cols-8",9:"lg:grid-cols-9",10:"lg:grid-cols-10",11:"lg:grid-cols-11",12:"lg:grid-cols-12"},c={1:"col-span-1",2:"col-span-2",3:"col-span-3",4:"col-span-4",5:"col-span-5",6:"col-span-6",7:"col-span-7",8:"col-span-8",9:"col-span-9",10:"col-span-10",11:"col-span-11",12:"col-span-12",13:"col-span-13"},d={1:"sm:col-span-1",2:"sm:col-span-2",3:"sm:col-span-3",4:"sm:col-span-4",5:"sm:col-span-5",6:"sm:col-span-6",7:"sm:col-span-7",8:"sm:col-span-8",9:"sm:col-span-9",10:"sm:col-span-10",11:"sm:col-span-11",12:"sm:col-span-12",13:"sm:col-span-13"},m={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3",4:"md:col-span-4",5:"md:col-span-5",6:"md:col-span-6",7:"md:col-span-7",8:"md:col-span-8",9:"md:col-span-9",10:"md:col-span-10",11:"md:col-span-11",12:"md:col-span-12",13:"md:col-span-13"},u={1:"lg:col-span-1",2:"lg:col-span-2",3:"lg:col-span-3",4:"lg:col-span-4",5:"lg:col-span-5",6:"lg:col-span-6",7:"lg:col-span-7",8:"lg:col-span-8",9:"lg:col-span-9",10:"lg:col-span-10",11:"lg:col-span-11",12:"lg:col-span-12",13:"lg:col-span-13"};e.s(["colSpan",()=>c,"colSpanLg",()=>u,"colSpanMd",()=>m,"colSpanSm",()=>d,"gridCols",()=>l,"gridColsLg",()=>o,"gridColsMd",()=>i,"gridColsSm",()=>n],46757);let g=(0,a.makeClassName)("Grid"),p=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"",x=s.default.forwardRef((e,a)=>{let{numItems:c=1,numItemsSm:d,numItemsMd:m,numItemsLg:u,children:x,className:h}=e,f=(0,t.__rest)(e,["numItems","numItemsSm","numItemsMd","numItemsLg","children","className"]),b=p(c,l),y=p(d,n),v=p(m,i),j=p(u,o),w=(0,r.tremorTwMerge)(b,y,v,j);return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(g("root"),"grid",w,h)},f),x)});x.displayName="Grid",e.s(["Grid",()=>x],350967)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),a=e.i(343794),s=e.i(242064),l=e.i(763731),n=e.i(174428);let i=80*Math.PI,o=e=>{let{dotClassName:t,style:s,hasCircleCls:l}=e;return r.createElement("circle",{className:(0,a.default)(`${t}-circle`,{[`${t}-circle-bg`]:l}),r:40,cx:50,cy:50,strokeWidth:20,style:s})},c=({percent:e,prefixCls:t})=>{let s=`${t}-dot`,l=`${s}-holder`,c=`${l}-hidden`,[d,m]=r.useState(!1);(0,n.default)(()=>{0!==e&&m(!0)},[0!==e]);let u=Math.max(Math.min(e,100),0);if(!d)return null;let g={strokeDashoffset:`${i/4}`,strokeDasharray:`${i*u/100} ${i*(100-u)/100}`};return r.createElement("span",{className:(0,a.default)(l,`${s}-progress`,u<=0&&c)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u},r.createElement(o,{dotClassName:s,hasCircleCls:!0}),r.createElement(o,{dotClassName:s,style:g})))};function d(e){let{prefixCls:t,percent:s=0}=e,l=`${t}-dot`,n=`${l}-holder`,i=`${n}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,a.default)(n,s>0&&i)},r.createElement("span",{className:(0,a.default)(l,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(c,{prefixCls:t,percent:s}))}function m(e){var t;let{prefixCls:s,indicator:n,percent:i}=e,o=`${s}-dot`;return n&&r.isValidElement(n)?(0,l.cloneElement)(n,{className:(0,a.default)(null==(t=n.props)?void 0:t.className,o),percent:i}):r.createElement(d,{prefixCls:s,percent:i})}e.i(296059);var u=e.i(694758),g=e.i(183293),p=e.i(246422),x=e.i(838378);let h=new u.Keyframes("antSpinMove",{to:{opacity:1}}),f=new u.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),b=(0,p.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:h,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:f,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,x.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),y=[[30,.05],[70,.03],[96,.01]];var v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var s=0,a=Object.getOwnPropertySymbols(e);st.indexOf(a[s])&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(r[a[s]]=e[a[s]]);return r};let j=e=>{var l;let{prefixCls:n,spinning:i=!0,delay:o=0,className:c,rootClassName:d,size:u="default",tip:g,wrapperClassName:p,style:x,children:h,fullscreen:f=!1,indicator:j,percent:w}=e,N=v(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:k,direction:S,className:C,style:M,indicator:E}=(0,s.useComponentConfig)("spin"),T=k("spin",n),[O,$,_]=b(T),[L,P]=r.useState(()=>i&&(!i||!o||!!Number.isNaN(Number(o)))),D=function(e,t){let[a,s]=r.useState(0),l=r.useRef(null),n="auto"===t;return r.useEffect(()=>(n&&e&&(s(0),l.current=setInterval(()=>{s(e=>{let t=100-e;for(let r=0;r{l.current&&(clearInterval(l.current),l.current=null)}),[n,e]),n?a:t}(L,w);r.useEffect(()=>{if(i){let e=function(e,t,r){var a,s=r||{},l=s.noTrailing,n=void 0!==l&&l,i=s.noLeading,o=void 0!==i&&i,c=s.debounceMode,d=void 0===c?void 0:c,m=!1,u=0;function g(){a&&clearTimeout(a)}function p(){for(var r=arguments.length,s=Array(r),l=0;le?o?(u=Date.now(),n||(a=setTimeout(d?x:p,e))):p():!0!==n&&(a=setTimeout(d?x:p,void 0===d?e-c:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly;g(),m=!(void 0!==t&&t)},p}(o,()=>{P(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}P(!1)},[o,i]);let z=r.useMemo(()=>void 0!==h&&!f,[h,f]),I=(0,a.default)(T,C,{[`${T}-sm`]:"small"===u,[`${T}-lg`]:"large"===u,[`${T}-spinning`]:L,[`${T}-show-text`]:!!g,[`${T}-rtl`]:"rtl"===S},c,!f&&d,$,_),R=(0,a.default)(`${T}-container`,{[`${T}-blur`]:L}),A=null!=(l=null!=j?j:E)?l:t,B=Object.assign(Object.assign({},M),x),F=r.createElement("div",Object.assign({},N,{style:B,className:I,"aria-live":"polite","aria-busy":L}),r.createElement(m,{prefixCls:T,indicator:A,percent:D}),g&&(z||f)?r.createElement("div",{className:`${T}-text`},g):null);return O(z?r.createElement("div",Object.assign({},N,{className:(0,a.default)(`${T}-nested-loading`,p,$,_)}),L&&r.createElement("div",{key:"loading"},F),r.createElement("div",{className:R,key:"container"},h)):f?r.createElement("div",{className:(0,a.default)(`${T}-fullscreen`,{[`${T}-fullscreen-show`]:L},d,$,_)},F):F)};j.setDefaultIndicator=e=>{t=e},e.s(["default",0,j],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},955135,e=>{"use strict";var t=e.i(597440);e.s(["DeleteOutlined",()=>t.default])},519756,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["UploadOutlined",0,l],519756)},533882,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(250980),s=e.i(797672),l=e.i(68155),n=e.i(304967),i=e.i(629569),o=e.i(599724),c=e.i(269200),d=e.i(427612),m=e.i(64848),u=e.i(942232),g=e.i(496020),p=e.i(977572),x=e.i(992619),h=e.i(727749);e.s(["default",0,({accessToken:e,initialModelAliases:f={},onAliasUpdate:b,showExampleConfig:y=!0})=>{let[v,j]=(0,r.useState)([]),[w,N]=(0,r.useState)({aliasName:"",targetModel:""}),[k,S]=(0,r.useState)(null);(0,r.useEffect)(()=>{j(Object.entries(f).map(([e,t],r)=>({id:`${r}-${e}`,aliasName:e,targetModel:t})))},[f]);let C=()=>{if(!k)return;if(!k.aliasName||!k.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.id!==k.id&&e.aliasName===k.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=v.map(e=>e.id===k.id?k:e);j(e),S(null);let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),h.default.success("Alias updated successfully")},M=()=>{S(null)},E=v.reduce((e,t)=>(e[t.aliasName]=t.targetModel,e),{});return(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:w.aliasName,onChange:e=>N({...w,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model"}),(0,t.jsx)(x.default,{accessToken:e,value:w.targetModel,placeholder:"Select target model",onChange:e=>N({...w,targetModel:e}),showLabel:!1})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:()=>{if(!w.aliasName||!w.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.aliasName===w.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=[...v,{id:`${Date.now()}-${w.aliasName}`,aliasName:w.aliasName,targetModel:w.targetModel}];j(e),N({aliasName:"",targetModel:""});let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),h.default.success("Alias added successfully")},disabled:!w.aliasName||!w.targetModel,className:`flex items-center px-4 py-2 rounded-md text-sm ${!w.aliasName||!w.targetModel?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(a.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(c.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(d.TableHead,{children:(0,t.jsxs)(g.TableRow,{children:[(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Target Model"}),(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(u.TableBody,{children:[v.map(r=>(0,t.jsx)(g.TableRow,{className:"h-8",children:k&&k.id===r.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:k.aliasName,onChange:e=>S({...k,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(p.TableCell,{className:"py-0.5",children:(0,t.jsx)(x.default,{accessToken:e,value:k.targetModel,onChange:e=>S({...k,targetModel:e}),showLabel:!1,style:{height:"32px"}})}),(0,t.jsx)(p.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:C,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:M,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.TableCell,{className:"py-0.5 text-sm text-gray-900",children:r.aliasName}),(0,t.jsx)(p.TableCell,{className:"py-0.5 text-sm text-gray-500",children:r.targetModel}),(0,t.jsx)(p.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{S({...r})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(s.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>{var e;let t,a;return e=r.id,j(t=v.filter(t=>t.id!==e)),a={},void(t.forEach(e=>{a[e.aliasName]=e.targetModel}),b&&b(a),h.default.success("Alias deleted successfully"))},className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(l.TrashIcon,{className:"w-3 h-3"})})]})})]})},r.id)),0===v.length&&(0,t.jsx)(g.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),y&&(0,t.jsxs)(n.Card,{children:[(0,t.jsx)(i.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(o.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["model_aliases:",0===Object.keys(E).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{})," # No aliases configured yet"]}):Object.entries(E).map(([e,r])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),' "',e,'": "',r,'"']},e))]})})]})]})}])},651904,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(266484);e.s(["default",0,function({value:e,onChange:s,premiumUser:l=!1,disabledCallbacks:n=[],onDisabledCallbacksChange:i}){return l?(0,t.jsx)(a.default,{value:e,onChange:s,disabledCallbacks:n,onDisabledCallbacksChange:i}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 mb-3",children:[(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ langfuse-logging"}),(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ datadog-logging"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(r.Text,{className:"text-sm text-yellow-800",children:["Setting Key/Team logging settings is a LiteLLM Enterprise feature. Global Logging Settings are available for all free users. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})}])},250980,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlusCircleIcon",0,r],250980)},502547,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}))});e.s(["ChevronRightIcon",0,r],502547)},384767,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(271645),s=e.i(389083);let l=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"}))});var n=e.i(764205);let i=function({vectorStores:e,accessToken:i}){let[o,c]=(0,a.useState)([]);return(0,a.useEffect)(()=>{(async()=>{if(i&&0!==e.length)try{let e=await (0,n.vectorStoreListCall)(i);e.data&&c(e.data.map(e=>({vector_store_id:e.vector_store_id,vector_store_name:e.vector_store_name})))}catch(e){console.error("Error fetching vector stores:",e)}})()},[i,e.length]),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Vector Stores"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:e.length})]}),e.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.map((e,r)=>{let a;return(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-sm font-medium",children:(a=o.find(t=>t.vector_store_id===e))?`${a.vector_store_name||a.vector_store_id} (${a.vector_store_id})`:e},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No vector stores configured"})]})]})},o=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"}))});var c=e.i(871943),d=e.i(502547),m=e.i(592968);let u=function({mcpServers:l,mcpAccessGroups:i=[],mcpToolPermissions:u={},accessToken:g}){let[p,x]=(0,a.useState)([]),[h,f]=(0,a.useState)([]),[b,y]=(0,a.useState)(new Set);(0,a.useEffect)(()=>{(async()=>{if(g&&l.length>0)try{let e=await (0,n.fetchMCPServers)(g);e&&Array.isArray(e)?x(e):e.data&&Array.isArray(e.data)&&x(e.data)}catch(e){console.error("Error fetching MCP servers:",e)}})()},[g,l.length]),(0,a.useEffect)(()=>{(async()=>{if(g&&i.length>0)try{let t=await e.A(601236).then(e=>e.fetchMCPAccessGroups(g));f(Array.isArray(t)?t:t.data||[])}catch(e){console.error("Error fetching MCP access groups:",e)}})()},[g,i.length]);let v=[...l.map(e=>({type:"server",value:e})),...i.map(e=>({type:"accessGroup",value:e}))],j=v.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"MCP Servers"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:j})]}),j>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:v.map((e,r)=>{let a="server"===e.type?u[e.value]:void 0,s=a&&a.length>0,l=b.has(e.value);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{onClick:()=>{var t;return s&&(t=e.value,void y(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}))},className:`flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 transition-all ${s?"cursor-pointer hover:bg-gray-50 hover:border-gray-300":"bg-white"}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"server"===e.type?(0,t.jsx)(m.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-blue-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=p.find(t=>t.server_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.alias} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})}),s&&(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0 whitespace-nowrap",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-600",children:a.length}),(0,t.jsx)("span",{className:"text-xs text-gray-500",children:1===a.length?"tool":"tools"}),l?(0,t.jsx)(c.ChevronDownIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"}):(0,t.jsx)(d.ChevronRightIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"})]})]}),s&&l&&(0,t.jsx)("div",{className:"ml-4 pl-4 border-l-2 border-blue-200 pb-1",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map((e,r)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-xs font-medium",children:e},r))})})]},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No MCP servers or access groups configured"})]})]})},g=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"}))}),p=function({agents:e,agentAccessGroups:l=[],accessToken:i}){let[o,c]=(0,a.useState)([]);(0,a.useEffect)(()=>{(async()=>{if(i&&e.length>0)try{let e=await (0,n.getAgentsList)(i);e&&e.agents&&Array.isArray(e.agents)&&c(e.agents)}catch(e){console.error("Error fetching agents:",e)}})()},[i,e.length]);let d=[...e.map(e=>({type:"agent",value:e})),...l.map(e=>({type:"accessGroup",value:e}))],u=d.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(g,{className:"h-4 w-4 text-purple-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Agents"}),(0,t.jsx)(s.Badge,{color:"purple",size:"xs",children:u})]}),u>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:d.map((e,r)=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)("div",{className:"flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 bg-white",children:(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"agent"===e.type?(0,t.jsx)(m.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-purple-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=o.find(t=>t.agent_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.agent_name} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})})})},r))}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(g,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No agents or access groups configured"})]})]})};e.s(["default",0,function({objectPermission:e,variant:a="card",className:s="",accessToken:l}){let n=e?.vector_stores||[],o=e?.mcp_servers||[],c=e?.mcp_access_groups||[],d=e?.mcp_tool_permissions||{},m=e?.agents||[],g=e?.agent_access_groups||[],x=(0,t.jsxs)("div",{className:"card"===a?"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6":"space-y-4",children:[(0,t.jsx)(i,{vectorStores:n,accessToken:l}),(0,t.jsx)(u,{mcpServers:o,mcpAccessGroups:c,mcpToolPermissions:d,accessToken:l}),(0,t.jsx)(p,{agents:m,agentAccessGroups:g,accessToken:l})]});return"card"===a?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${s}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Object Permissions"}),(0,t.jsx)(r.Text,{className:"text-xs text-gray-500",children:"Access control for Vector Stores and MCP Servers"})]})}),x]}):(0,t.jsxs)("div",{className:`${s}`,children:[(0,t.jsx)(r.Text,{className:"font-medium text-gray-900 mb-3",children:"Object Permissions"}),x]})}],384767)},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),a=e.i(371330),s=e.i(271645),l=e.i(394487),n=e.i(503269),i=e.i(214520),o=e.i(746725),c=e.i(914189),d=e.i(144279),m=e.i(294316),u=e.i(601893),g=e.i(140721),p=e.i(942803),x=e.i(233538),h=e.i(694421),f=e.i(700020),b=e.i(35889),y=e.i(998348),v=e.i(722678);let j=(0,s.createContext)(null);j.displayName="GroupContext";let w=s.Fragment,N=Object.assign((0,f.forwardRefWithAs)(function(e,t){var w;let N=(0,s.useId)(),k=(0,p.useProvidedId)(),S=(0,u.useDisabled)(),{id:C=k||`headlessui-switch-${N}`,disabled:M=S||!1,checked:E,defaultChecked:T,onChange:O,name:$,value:_,form:L,autoFocus:P=!1,...D}=e,z=(0,s.useContext)(j),[I,R]=(0,s.useState)(null),A=(0,s.useRef)(null),B=(0,m.useSyncRefs)(A,t,null===z?null:z.setSwitch,R),F=(0,i.useDefaultValue)(T),[G,q]=(0,n.useControllable)(E,O,null!=F&&F),H=(0,o.useDisposables)(),[V,W]=(0,s.useState)(!1),X=(0,c.useEvent)(()=>{W(!0),null==q||q(!G),H.nextFrame(()=>{W(!1)})}),K=(0,c.useEvent)(e=>{if((0,x.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),X()}),U=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),X()):e.key===y.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),J=(0,c.useEvent)(e=>e.preventDefault()),Y=(0,v.useLabelledBy)(),Q=(0,b.useDescribedBy)(),{isFocusVisible:Z,focusProps:ee}=(0,r.useFocusRing)({autoFocus:P}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:M}),{pressed:ea,pressProps:es}=(0,l.useActivePress)({disabled:M}),el=(0,s.useMemo)(()=>({checked:G,disabled:M,hover:et,focus:Z,active:ea,autofocus:P,changing:V}),[G,et,Z,ea,M,V,P]),en=(0,f.mergeProps)({id:C,ref:B,role:"switch",type:(0,d.useResolveButtonType)(e,I),tabIndex:-1===e.tabIndex?0:null!=(w=e.tabIndex)?w:0,"aria-checked":G,"aria-labelledby":Y,"aria-describedby":Q,disabled:M||void 0,autoFocus:P,onClick:K,onKeyUp:U,onKeyPress:J},ee,er,es),ei=(0,s.useCallback)(()=>{if(void 0!==F)return null==q?void 0:q(F)},[q,F]),eo=(0,f.useRender)();return s.default.createElement(s.default.Fragment,null,null!=$&&s.default.createElement(g.FormFields,{disabled:M,data:{[$]:_||"on"},overrides:{type:"checkbox",checked:G},form:L,onReset:ei}),eo({ourProps:en,theirProps:D,slot:el,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,s.useState)(null),[l,n]=(0,v.useLabels)(),[i,o]=(0,b.useDescriptions)(),c=(0,s.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),d=(0,f.useRender)();return s.default.createElement(o,{name:"Switch.Description",value:i},s.default.createElement(n,{name:"Switch.Label",value:l,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},s.default.createElement(j.Provider,{value:c},d({ourProps:{},theirProps:e,slot:{},defaultTag:w,name:"Switch.Group"}))))},Label:v.Label,Description:b.Description});var k=e.i(888288),S=e.i(95779),C=e.i(444755),M=e.i(673706),E=e.i(829087);let T=(0,M.makeClassName)("Switch"),O=s.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:l=!1,onChange:n,color:i,name:o,error:c,errorMessage:d,disabled:m,required:u,tooltip:g,id:p}=e,x=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,M.getColorClassNames)(i,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,M.getColorClassNames)(i,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[f,b]=(0,k.default)(l,a),[y,v]=(0,s.useState)(!1),{tooltipProps:j,getReferenceProps:w}=(0,E.useTooltip)(300);return s.default.createElement("div",{className:"flex flex-row items-center justify-start"},s.default.createElement(E.default,Object.assign({text:g},j)),s.default.createElement("div",Object.assign({ref:(0,M.mergeRefs)([r,j.refs.setReference]),className:(0,C.tremorTwMerge)(T("root"),"flex flex-row relative h-5")},x,w),s.default.createElement("input",{type:"checkbox",className:(0,C.tremorTwMerge)(T("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:o,required:u,checked:f,onChange:e=>{e.preventDefault()}}),s.default.createElement(N,{checked:f,onChange:e=>{b(e),null==n||n(e)},disabled:m,className:(0,C.tremorTwMerge)(T("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",m?"cursor-not-allowed":""),onFocus:()=>v(!0),onBlur:()=>v(!1),id:p},s.default.createElement("span",{className:(0,C.tremorTwMerge)(T("sr-only"),"sr-only")},"Switch ",f?"on":"off"),s.default.createElement("span",{"aria-hidden":"true",className:(0,C.tremorTwMerge)(T("background"),f?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),s.default.createElement("span",{"aria-hidden":"true",className:(0,C.tremorTwMerge)(T("round"),f?(0,C.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,C.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&d?s.default.createElement("p",{className:(0,C.tremorTwMerge)(T("errorMessage"),"text-sm text-red-500 mt-1 ")},d):null)});O.displayName="Switch",e.s(["Switch",()=>O],793130)},37727,e=>{"use strict";var t=e.i(841947);e.s(["X",()=>t.default])},603908,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["default",()=>t])},158392,419470,e=>{"use strict";var t=e.i(843476),r=e.i(779241);let a={ttl:3600,lowest_latency_buffer:0},s=({routingStrategyArgs:e})=>{let s={ttl:"Sliding window to look back over when calculating the average latency of a deployment. Default - 1 hour (in seconds).",lowest_latency_buffer:"Shuffle between deployments within this % of the lowest latency. Default - 0 (i.e. always pick lowest latency)."};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Latency-Based Configuration"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Fine-tune latency-based routing behavior"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e||a).map(([e,a])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:e.replace(/_/g," ")}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s[e]||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:"object"==typeof a?JSON.stringify(a,null,2):a?.toString(),className:"font-mono text-sm w-full"})]})},e))})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"})]})},l=({routerSettings:e,routerFieldsMetadata:a})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Reliability & Retries"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure retry logic and failure handling"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e).filter(([e,t])=>"fallbacks"!=e&&"context_window_fallbacks"!=e&&"routing_strategy_args"!=e&&"routing_strategy"!=e&&"enable_tag_filtering"!=e).map(([e,s])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:a[e]?.ui_field_name||e}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:a[e]?.field_description||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:null==s||"null"===s?"":"object"==typeof s?JSON.stringify(s,null,2):s?.toString()||"",placeholder:"—",className:"font-mono text-sm w-full"})]})},e))})]});var n=e.i(199133);let i=({selectedStrategy:e,availableStrategies:r,routingStrategyDescriptions:a,routerFieldsMetadata:s,onStrategyChange:l})=>(0,t.jsxs)("div",{className:"space-y-2 max-w-3xl",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:s.routing_strategy?.ui_field_name||"Routing Strategy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s.routing_strategy?.field_description||""})]}),(0,t.jsx)("div",{className:"routing-strategy-select max-w-3xl",children:(0,t.jsx)(n.Select,{value:e,onChange:l,style:{width:"100%"},size:"large",children:r.map(e=>(0,t.jsx)(n.Select.Option,{value:e,label:e,children:(0,t.jsxs)("div",{className:"flex flex-col gap-0.5 py-1",children:[(0,t.jsx)("span",{className:"font-mono text-sm font-medium",children:e}),a[e]&&(0,t.jsx)("span",{className:"text-xs text-gray-500 font-normal",children:a[e]})]})},e))})})]});var o=e.i(793130);let c=({enabled:e,routerFieldsMetadata:r,onToggle:a})=>(0,t.jsx)("div",{className:"space-y-3 max-w-3xl",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:r.enable_tag_filtering?.ui_field_name||"Enable Tag Filtering"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-0.5",children:[r.enable_tag_filtering?.field_description||"",r.enable_tag_filtering?.link&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("a",{href:r.enable_tag_filtering.link,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Learn more"})]})]})]}),(0,t.jsx)(o.Switch,{checked:e,onChange:a,className:"ml-4"})]})});e.s(["default",0,({value:e,onChange:r,routerFieldsMetadata:a,availableRoutingStrategies:n,routingStrategyDescriptions:o})=>(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Routing Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure how requests are routed to deployments"})]}),n.length>0&&(0,t.jsx)(i,{selectedStrategy:e.selectedStrategy||e.routerSettings.routing_strategy||null,availableStrategies:n,routingStrategyDescriptions:o,routerFieldsMetadata:a,onStrategyChange:t=>{r({...e,selectedStrategy:t})}}),(0,t.jsx)(c,{enabled:e.enableTagFiltering,routerFieldsMetadata:a,onToggle:t=>{r({...e,enableTagFiltering:t})}})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"}),"latency-based-routing"===e.selectedStrategy&&(0,t.jsx)(s,{routingStrategyArgs:e.routerSettings.routing_strategy_args}),(0,t.jsx)(l,{routerSettings:e.routerSettings,routerFieldsMetadata:a})]})],158392);var d=e.i(994388),m=e.i(998573),u=e.i(653496),g=e.i(603908),g=g,p=e.i(271645),x=e.i(592968),h=e.i(475254);let f=(0,h.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),b=(0,h.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var y=e.i(37727);function v({group:e,onChange:r,availableModels:a,maxFallbacks:s}){let l=a.filter(t=>t!==e.primaryModel),i=e.fallbackModels.length{let a=[...e.fallbackModels];a.includes(t)&&(a=a.filter(e=>e!==t)),r({...e,primaryModel:t,fallbackModels:a})},showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:a.map(e=>({label:e,value:e}))}),!e.primaryModel&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-amber-600 text-xs bg-amber-50 p-2 rounded",children:[(0,t.jsx)(f,{className:"w-4 h-4"}),(0,t.jsx)("span",{children:"Select a model to begin configuring fallbacks"})]})]}),(0,t.jsx)("div",{className:"flex items-center justify-center -my-4 z-10",children:(0,t.jsxs)("div",{className:"bg-indigo-50 text-indigo-500 px-4 py-1 rounded-full text-xs font-bold border border-indigo-100 flex items-center gap-2 shadow-sm",children:[(0,t.jsx)(b,{className:"w-4 h-4"}),"IF FAILS, TRY..."]})}),(0,t.jsxs)("div",{className:`transition-opacity duration-300 ${!e.primaryModel?"opacity-50 pointer-events-none":"opacity-100"}`,children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-700 mb-2",children:["Fallback Chain ",(0,t.jsx)("span",{className:"text-red-500",children:"*"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500 font-normal ml-2",children:["(Max ",s," fallbacks at a time)"]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(n.Select,{mode:"multiple",className:"w-full",size:"large",placeholder:i?"Select fallback models to add...":`Maximum ${s} fallbacks reached`,value:e.fallbackModels,onChange:t=>{let a=t.slice(0,s);r({...e,fallbackModels:a})},disabled:!e.primaryModel,options:l.map(e=>({label:e,value:e})),optionRender:(r,a)=>{let s=e.fallbackModels.includes(r.value),l=s?e.fallbackModels.indexOf(r.value)+1:null;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[s&&null!==l&&(0,t.jsx)("span",{className:"flex items-center justify-center w-5 h-5 rounded bg-indigo-100 text-indigo-600 text-xs font-bold",children:l}),(0,t.jsx)("span",{children:r.label})]})},maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(x.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})}),showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1 ml-1",children:i?`Search and select multiple models. Selected models will appear below in order. (${e.fallbackModels.length}/${s} used)`:`Maximum ${s} fallbacks reached. Remove some to add more.`})]}),(0,t.jsx)("div",{className:"space-y-2 min-h-[100px]",children:0===e.fallbackModels.length?(0,t.jsxs)("div",{className:"h-32 border-2 border-dashed border-gray-300 rounded-lg flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)("span",{className:"text-sm",children:"No fallback models selected"}),(0,t.jsx)("span",{className:"text-xs mt-1",children:"Add models from the dropdown above"})]}):e.fallbackModels.map((a,s)=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-3 bg-white rounded-lg border border-gray-200 hover:border-indigo-300 hover:shadow-sm transition-all",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded bg-gray-100 text-gray-400 group-hover:text-indigo-500 group-hover:bg-indigo-50",children:(0,t.jsx)("span",{className:"text-xs font-bold",children:s+1})}),(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"font-medium text-gray-800",children:a})})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t;return t=e.fallbackModels.filter((e,t)=>t!==s),void r({...e,fallbackModels:t})},className:"opacity-0 group-hover:opacity-100 transition-opacity text-gray-400 hover:text-red-500 p-1",children:(0,t.jsx)(y.X,{className:"w-4 h-4"})})]},`${a}-${s}`))})]})]})]})}function j({groups:e,onGroupsChange:r,availableModels:a,maxFallbacks:s=10,maxGroups:l=5}){let[n,i]=(0,p.useState)(e.length>0?e[0].id:"1");(0,p.useEffect)(()=>{e.length>0?e.some(e=>e.id===n)||i(e[0].id):i("1")},[e]);let o=()=>{if(e.length>=l)return;let t=Date.now().toString();r([...e,{id:t,primaryModel:null,fallbackModels:[]}]),i(t)},c=t=>{r(e.map(e=>e.id===t.id?t:e))},x=e.map((r,l)=>{let n=r.primaryModel?r.primaryModel:`Group ${l+1}`;return{key:r.id,label:n,closable:e.length>1,children:(0,t.jsx)(v,{group:r,onChange:c,availableModels:a,maxFallbacks:s})}});return 0===e.length?(0,t.jsxs)("div",{className:"text-center py-12 bg-gray-50 rounded-lg border border-dashed border-gray-300",children:[(0,t.jsx)("p",{className:"text-gray-500 mb-4",children:"No fallback groups configured"}),(0,t.jsx)(d.Button,{variant:"primary",onClick:o,icon:()=>(0,t.jsx)(g.default,{className:"w-4 h-4"}),children:"Create First Group"})]}):(0,t.jsx)(u.Tabs,{type:"editable-card",activeKey:n,onChange:i,onEdit:(t,a)=>{"add"===a?o():"remove"===a&&e.length>1&&(t=>{if(1===e.length)return m.message.warning("At least one group is required");let a=e.filter(e=>e.id!==t);r(a),n===t&&a.length>0&&i(a[a.length-1].id)})(t)},items:x,className:"fallback-tabs",tabBarStyle:{marginBottom:0},hideAdd:e.length>=l})}e.s(["FallbackSelectionForm",()=>j],419470)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},964306,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["XCircleIcon",0,r],964306)},663435,e=>{"use strict";var t=e.i(843476),r=e.i(199133);e.s(["default",0,({teams:e,value:a,onChange:s,disabled:l})=>(console.log("disabled",l),(0,t.jsx)(r.Select,{showSearch:!0,placeholder:"Search or select a team",value:a,onChange:s,disabled:l,allowClear:!0,filterOption:(t,r)=>{if(!r)return!1;let a=e?.find(e=>e.team_id===r.key);if(!a)return!1;let s=t.toLowerCase().trim(),l=(a.team_alias||"").toLowerCase(),n=(a.team_id||"").toLowerCase();return l.includes(s)||n.includes(s)},optionFilterProp:"children",children:e?.map(e=>(0,t.jsxs)(r.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)("span",{className:"text-gray-500",children:["(",e.team_id,")"]})]},e.team_id))}))])},285027,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"}}]},name:"warning",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["WarningOutlined",0,l],285027)},737434,e=>{"use strict";var t=e.i(184163);e.s(["DownloadOutlined",()=>t.default])},743151,(e,t,r)=>{"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CopyToClipboard=void 0;var s=i(e.r(271645)),l=i(e.r(844343)),n=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,n),a=s.default.Children.only(t);return s.default.cloneElement(a,c(c({},r),{},{onClick:this.onClick}))}}],function(e,t){for(var r=0;r{"use strict";var a=e.r(743151).CopyToClipboard;a.CopyToClipboard=a,t.exports=a}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0930068a29eb5657.js b/litellm/proxy/_experimental/out/_next/static/chunks/0930068a29eb5657.js deleted file mode 100644 index b09a8f5fc18..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0930068a29eb5657.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,533882,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(250980),s=e.i(797672),l=e.i(68155),n=e.i(304967),i=e.i(629569),o=e.i(599724),c=e.i(269200),d=e.i(427612),u=e.i(64848),m=e.i(942232),x=e.i(496020),g=e.i(977572),h=e.i(992619),p=e.i(727749);e.s(["default",0,({accessToken:e,initialModelAliases:f={},onAliasUpdate:b,showExampleConfig:y=!0})=>{let[v,j]=(0,r.useState)([]),[N,w]=(0,r.useState)({aliasName:"",targetModel:""}),[k,C]=(0,r.useState)(null);(0,r.useEffect)(()=>{j(Object.entries(f).map(([e,t],r)=>({id:`${r}-${e}`,aliasName:e,targetModel:t})))},[f]);let M=()=>{if(!k)return;if(!k.aliasName||!k.targetModel)return void p.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.id!==k.id&&e.aliasName===k.aliasName))return void p.default.fromBackend("An alias with this name already exists");let e=v.map(e=>e.id===k.id?k:e);j(e),C(null);let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),p.default.success("Alias updated successfully")},S=()=>{C(null)},T=v.reduce((e,t)=>(e[t.aliasName]=t.targetModel,e),{});return(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:N.aliasName,onChange:e=>w({...N,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model"}),(0,t.jsx)(h.default,{accessToken:e,value:N.targetModel,placeholder:"Select target model",onChange:e=>w({...N,targetModel:e}),showLabel:!1})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:()=>{if(!N.aliasName||!N.targetModel)return void p.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.aliasName===N.aliasName))return void p.default.fromBackend("An alias with this name already exists");let e=[...v,{id:`${Date.now()}-${N.aliasName}`,aliasName:N.aliasName,targetModel:N.targetModel}];j(e),w({aliasName:"",targetModel:""});let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),p.default.success("Alias added successfully")},disabled:!N.aliasName||!N.targetModel,className:`flex items-center px-4 py-2 rounded-md text-sm ${!N.aliasName||!N.targetModel?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(a.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(c.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(d.TableHead,{children:(0,t.jsxs)(x.TableRow,{children:[(0,t.jsx)(u.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(u.TableHeaderCell,{className:"py-1 h-8",children:"Target Model"}),(0,t.jsx)(u.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(m.TableBody,{children:[v.map(r=>(0,t.jsx)(x.TableRow,{className:"h-8",children:k&&k.id===r.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:k.aliasName,onChange:e=>C({...k,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(g.TableCell,{className:"py-0.5",children:(0,t.jsx)(h.default,{accessToken:e,value:k.targetModel,onChange:e=>C({...k,targetModel:e}),showLabel:!1,style:{height:"32px"}})}),(0,t.jsx)(g.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:M,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:S,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.TableCell,{className:"py-0.5 text-sm text-gray-900",children:r.aliasName}),(0,t.jsx)(g.TableCell,{className:"py-0.5 text-sm text-gray-500",children:r.targetModel}),(0,t.jsx)(g.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{C({...r})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(s.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>{var e;let t,a;return e=r.id,j(t=v.filter(t=>t.id!==e)),a={},void(t.forEach(e=>{a[e.aliasName]=e.targetModel}),b&&b(a),p.default.success("Alias deleted successfully"))},className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(l.TrashIcon,{className:"w-3 h-3"})})]})})]})},r.id)),0===v.length&&(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(g.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),y&&(0,t.jsxs)(n.Card,{children:[(0,t.jsx)(i.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(o.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["model_aliases:",0===Object.keys(T).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{})," # No aliases configured yet"]}):Object.entries(T).map(([e,r])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),' "',e,'": "',r,'"']},e))]})})]})]})}])},651904,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(266484);e.s(["default",0,function({value:e,onChange:s,premiumUser:l=!1,disabledCallbacks:n=[],onDisabledCallbacksChange:i}){return l?(0,t.jsx)(a.default,{value:e,onChange:s,disabledCallbacks:n,onDisabledCallbacksChange:i}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 mb-3",children:[(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ langfuse-logging"}),(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ datadog-logging"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(r.Text,{className:"text-sm text-yellow-800",children:["Setting Key/Team logging settings is a LiteLLM Enterprise feature. Global Logging Settings are available for all free users. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})}])},250980,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlusCircleIcon",0,r],250980)},502547,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}))});e.s(["ChevronRightIcon",0,r],502547)},384767,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(271645),s=e.i(389083);let l=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"}))});var n=e.i(764205);let i=function({vectorStores:e,accessToken:i}){let[o,c]=(0,a.useState)([]);return(0,a.useEffect)(()=>{(async()=>{if(i&&0!==e.length)try{let e=await (0,n.vectorStoreListCall)(i);e.data&&c(e.data.map(e=>({vector_store_id:e.vector_store_id,vector_store_name:e.vector_store_name})))}catch(e){console.error("Error fetching vector stores:",e)}})()},[i,e.length]),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Vector Stores"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:e.length})]}),e.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.map((e,r)=>{let a;return(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-sm font-medium",children:(a=o.find(t=>t.vector_store_id===e))?`${a.vector_store_name||a.vector_store_id} (${a.vector_store_id})`:e},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No vector stores configured"})]})]})},o=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"}))});var c=e.i(871943),d=e.i(502547),u=e.i(592968);let m=function({mcpServers:l,mcpAccessGroups:i=[],mcpToolPermissions:m={},accessToken:x}){let[g,h]=(0,a.useState)([]),[p,f]=(0,a.useState)([]),[b,y]=(0,a.useState)(new Set);(0,a.useEffect)(()=>{(async()=>{if(x&&l.length>0)try{let e=await (0,n.fetchMCPServers)(x);e&&Array.isArray(e)?h(e):e.data&&Array.isArray(e.data)&&h(e.data)}catch(e){console.error("Error fetching MCP servers:",e)}})()},[x,l.length]),(0,a.useEffect)(()=>{(async()=>{if(x&&i.length>0)try{let t=await e.A(601236).then(e=>e.fetchMCPAccessGroups(x));f(Array.isArray(t)?t:t.data||[])}catch(e){console.error("Error fetching MCP access groups:",e)}})()},[x,i.length]);let v=[...l.map(e=>({type:"server",value:e})),...i.map(e=>({type:"accessGroup",value:e}))],j=v.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"MCP Servers"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:j})]}),j>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:v.map((e,r)=>{let a="server"===e.type?m[e.value]:void 0,s=a&&a.length>0,l=b.has(e.value);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{onClick:()=>{var t;return s&&(t=e.value,void y(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}))},className:`flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 transition-all ${s?"cursor-pointer hover:bg-gray-50 hover:border-gray-300":"bg-white"}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"server"===e.type?(0,t.jsx)(u.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-blue-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=g.find(t=>t.server_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.alias} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})}),s&&(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0 whitespace-nowrap",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-600",children:a.length}),(0,t.jsx)("span",{className:"text-xs text-gray-500",children:1===a.length?"tool":"tools"}),l?(0,t.jsx)(c.ChevronDownIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"}):(0,t.jsx)(d.ChevronRightIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"})]})]}),s&&l&&(0,t.jsx)("div",{className:"ml-4 pl-4 border-l-2 border-blue-200 pb-1",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map((e,r)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-xs font-medium",children:e},r))})})]},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No MCP servers or access groups configured"})]})]})},x=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"}))}),g=function({agents:e,agentAccessGroups:l=[],accessToken:i}){let[o,c]=(0,a.useState)([]);(0,a.useEffect)(()=>{(async()=>{if(i&&e.length>0)try{let e=await (0,n.getAgentsList)(i);e&&e.agents&&Array.isArray(e.agents)&&c(e.agents)}catch(e){console.error("Error fetching agents:",e)}})()},[i,e.length]);let d=[...e.map(e=>({type:"agent",value:e})),...l.map(e=>({type:"accessGroup",value:e}))],m=d.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x,{className:"h-4 w-4 text-purple-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Agents"}),(0,t.jsx)(s.Badge,{color:"purple",size:"xs",children:m})]}),m>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:d.map((e,r)=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)("div",{className:"flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 bg-white",children:(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"agent"===e.type?(0,t.jsx)(u.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-purple-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=o.find(t=>t.agent_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.agent_name} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})})})},r))}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(x,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No agents or access groups configured"})]})]})};e.s(["default",0,function({objectPermission:e,variant:a="card",className:s="",accessToken:l}){let n=e?.vector_stores||[],o=e?.mcp_servers||[],c=e?.mcp_access_groups||[],d=e?.mcp_tool_permissions||{},u=e?.agents||[],x=e?.agent_access_groups||[],h=(0,t.jsxs)("div",{className:"card"===a?"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6":"space-y-4",children:[(0,t.jsx)(i,{vectorStores:n,accessToken:l}),(0,t.jsx)(m,{mcpServers:o,mcpAccessGroups:c,mcpToolPermissions:d,accessToken:l}),(0,t.jsx)(g,{agents:u,agentAccessGroups:x,accessToken:l})]});return"card"===a?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${s}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Object Permissions"}),(0,t.jsx)(r.Text,{className:"text-xs text-gray-500",children:"Access control for Vector Stores and MCP Servers"})]})}),h]}):(0,t.jsxs)("div",{className:`${s}`,children:[(0,t.jsx)(r.Text,{className:"font-medium text-gray-900 mb-3",children:"Object Permissions"}),h]})}],384767)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},737434,e=>{"use strict";var t=e.i(184163);e.s(["DownloadOutlined",()=>t.default])},964306,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["XCircleIcon",0,r],964306)},743151,(e,t,r)=>{"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CopyToClipboard=void 0;var s=i(e.r(271645)),l=i(e.r(844343)),n=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,n),a=s.default.Children.only(t);return s.default.cloneElement(a,c(c({},r),{},{onClick:this.onClick}))}}],function(e,t){for(var r=0;r{"use strict";var a=e.r(743151).CopyToClipboard;a.CopyToClipboard=a,t.exports=a},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},983561,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"robot",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["RobotOutlined",0,l],983561)},992619,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(779241),s=e.i(599724),l=e.i(199133),n=e.i(983561),i=e.i(689020);e.s(["default",0,({accessToken:e,value:o,placeholder:c="Select a Model",onChange:d,disabled:u=!1,style:m,className:x,showLabel:g=!0,labelText:h="Select Model"})=>{let[p,f]=(0,r.useState)(o),[b,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)([]),N=(0,r.useRef)(null);return(0,r.useEffect)(()=>{f(o)},[o]),(0,r.useEffect)(()=>{e&&(async()=>{try{let t=await (0,i.fetchAvailableModels)(e);console.log("Fetched models for selector:",t),t.length>0&&j(t)}catch(e){console.error("Error fetching model info:",e)}})()},[e]),(0,t.jsxs)("div",{children:[g&&(0,t.jsxs)(s.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(n.RobotOutlined,{className:"mr-2"})," ",h]}),(0,t.jsx)(l.Select,{value:p,placeholder:c,onChange:e=>{"custom"===e?(y(!0),f(void 0)):(y(!1),f(e),d&&d(e))},options:[...Array.from(new Set(v.map(e=>e.model_group))).map((e,t)=>({value:e,label:e,key:t})),{value:"custom",label:"Enter custom model",key:"custom"}],style:{width:"100%",...m},showSearch:!0,className:`rounded-md ${x||""}`,disabled:u}),b&&(0,t.jsx)(a.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{f(e),d&&d(e)},500)},disabled:u})]})}])},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),a=e.i(371330),s=e.i(271645),l=e.i(394487),n=e.i(503269),i=e.i(214520),o=e.i(746725),c=e.i(914189),d=e.i(144279),u=e.i(294316),m=e.i(601893),x=e.i(140721),g=e.i(942803),h=e.i(233538),p=e.i(694421),f=e.i(700020),b=e.i(35889),y=e.i(998348),v=e.i(722678);let j=(0,s.createContext)(null);j.displayName="GroupContext";let N=s.Fragment,w=Object.assign((0,f.forwardRefWithAs)(function(e,t){var N;let w=(0,s.useId)(),k=(0,g.useProvidedId)(),C=(0,m.useDisabled)(),{id:M=k||`headlessui-switch-${w}`,disabled:S=C||!1,checked:T,defaultChecked:_,onChange:E,name:O,value:P,form:R,autoFocus:A=!1,...L}=e,F=(0,s.useContext)(j),[D,$]=(0,s.useState)(null),B=(0,s.useRef)(null),I=(0,u.useSyncRefs)(B,t,null===F?null:F.setSwitch,$),z=(0,i.useDefaultValue)(_),[H,G]=(0,n.useControllable)(T,E,null!=z&&z),V=(0,o.useDisposables)(),[K,W]=(0,s.useState)(!1),q=(0,c.useEvent)(()=>{W(!0),null==G||G(!H),V.nextFrame(()=>{W(!1)})}),U=(0,c.useEvent)(e=>{if((0,h.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),q()}),X=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),q()):e.key===y.Keys.Enter&&(0,p.attemptSubmit)(e.currentTarget)}),J=(0,c.useEvent)(e=>e.preventDefault()),Y=(0,v.useLabelledBy)(),Q=(0,b.useDescribedBy)(),{isFocusVisible:Z,focusProps:ee}=(0,r.useFocusRing)({autoFocus:A}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:S}),{pressed:ea,pressProps:es}=(0,l.useActivePress)({disabled:S}),el=(0,s.useMemo)(()=>({checked:H,disabled:S,hover:et,focus:Z,active:ea,autofocus:A,changing:K}),[H,et,Z,ea,S,K,A]),en=(0,f.mergeProps)({id:M,ref:I,role:"switch",type:(0,d.useResolveButtonType)(e,D),tabIndex:-1===e.tabIndex?0:null!=(N=e.tabIndex)?N:0,"aria-checked":H,"aria-labelledby":Y,"aria-describedby":Q,disabled:S||void 0,autoFocus:A,onClick:U,onKeyUp:X,onKeyPress:J},ee,er,es),ei=(0,s.useCallback)(()=>{if(void 0!==z)return null==G?void 0:G(z)},[G,z]),eo=(0,f.useRender)();return s.default.createElement(s.default.Fragment,null,null!=O&&s.default.createElement(x.FormFields,{disabled:S,data:{[O]:P||"on"},overrides:{type:"checkbox",checked:H},form:R,onReset:ei}),eo({ourProps:en,theirProps:L,slot:el,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,s.useState)(null),[l,n]=(0,v.useLabels)(),[i,o]=(0,b.useDescriptions)(),c=(0,s.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),d=(0,f.useRender)();return s.default.createElement(o,{name:"Switch.Description",value:i},s.default.createElement(n,{name:"Switch.Label",value:l,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},s.default.createElement(j.Provider,{value:c},d({ourProps:{},theirProps:e,slot:{},defaultTag:N,name:"Switch.Group"}))))},Label:v.Label,Description:b.Description});var k=e.i(888288),C=e.i(95779),M=e.i(444755),S=e.i(673706),T=e.i(829087);let _=(0,S.makeClassName)("Switch"),E=s.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:l=!1,onChange:n,color:i,name:o,error:c,errorMessage:d,disabled:u,required:m,tooltip:x,id:g}=e,h=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),p={bgColor:i?(0,S.getColorClassNames)(i,C.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,S.getColorClassNames)(i,C.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[f,b]=(0,k.default)(l,a),[y,v]=(0,s.useState)(!1),{tooltipProps:j,getReferenceProps:N}=(0,T.useTooltip)(300);return s.default.createElement("div",{className:"flex flex-row items-center justify-start"},s.default.createElement(T.default,Object.assign({text:x},j)),s.default.createElement("div",Object.assign({ref:(0,S.mergeRefs)([r,j.refs.setReference]),className:(0,M.tremorTwMerge)(_("root"),"flex flex-row relative h-5")},h,N),s.default.createElement("input",{type:"checkbox",className:(0,M.tremorTwMerge)(_("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:o,required:m,checked:f,onChange:e=>{e.preventDefault()}}),s.default.createElement(w,{checked:f,onChange:e=>{b(e),null==n||n(e)},disabled:u,className:(0,M.tremorTwMerge)(_("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",u?"cursor-not-allowed":""),onFocus:()=>v(!0),onBlur:()=>v(!1),id:g},s.default.createElement("span",{className:(0,M.tremorTwMerge)(_("sr-only"),"sr-only")},"Switch ",f?"on":"off"),s.default.createElement("span",{"aria-hidden":"true",className:(0,M.tremorTwMerge)(_("background"),f?p.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),s.default.createElement("span",{"aria-hidden":"true",className:(0,M.tremorTwMerge)(_("round"),f?(0,M.tremorTwMerge)(p.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,M.tremorTwMerge)("ring-2",p.ringColor):"")}))),c&&d?s.default.createElement("p",{className:(0,M.tremorTwMerge)(_("errorMessage"),"text-sm text-red-500 mt-1 ")},d):null)});E.displayName="Switch",e.s(["Switch",()=>E],793130)},37727,e=>{"use strict";var t=e.i(841947);e.s(["X",()=>t.default])},603908,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["default",()=>t])},158392,419470,e=>{"use strict";var t=e.i(843476),r=e.i(779241);let a={ttl:3600,lowest_latency_buffer:0},s=({routingStrategyArgs:e})=>{let s={ttl:"Sliding window to look back over when calculating the average latency of a deployment. Default - 1 hour (in seconds).",lowest_latency_buffer:"Shuffle between deployments within this % of the lowest latency. Default - 0 (i.e. always pick lowest latency)."};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Latency-Based Configuration"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Fine-tune latency-based routing behavior"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e||a).map(([e,a])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:e.replace(/_/g," ")}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s[e]||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:"object"==typeof a?JSON.stringify(a,null,2):a?.toString(),className:"font-mono text-sm w-full"})]})},e))})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"})]})},l=({routerSettings:e,routerFieldsMetadata:a})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Reliability & Retries"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure retry logic and failure handling"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e).filter(([e,t])=>"fallbacks"!=e&&"context_window_fallbacks"!=e&&"routing_strategy_args"!=e&&"routing_strategy"!=e&&"enable_tag_filtering"!=e).map(([e,s])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:a[e]?.ui_field_name||e}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:a[e]?.field_description||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:null==s||"null"===s?"":"object"==typeof s?JSON.stringify(s,null,2):s?.toString()||"",placeholder:"—",className:"font-mono text-sm w-full"})]})},e))})]});var n=e.i(199133);let i=({selectedStrategy:e,availableStrategies:r,routingStrategyDescriptions:a,routerFieldsMetadata:s,onStrategyChange:l})=>(0,t.jsxs)("div",{className:"space-y-2 max-w-3xl",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:s.routing_strategy?.ui_field_name||"Routing Strategy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s.routing_strategy?.field_description||""})]}),(0,t.jsx)("div",{className:"routing-strategy-select max-w-3xl",children:(0,t.jsx)(n.Select,{value:e,onChange:l,style:{width:"100%"},size:"large",children:r.map(e=>(0,t.jsx)(n.Select.Option,{value:e,label:e,children:(0,t.jsxs)("div",{className:"flex flex-col gap-0.5 py-1",children:[(0,t.jsx)("span",{className:"font-mono text-sm font-medium",children:e}),a[e]&&(0,t.jsx)("span",{className:"text-xs text-gray-500 font-normal",children:a[e]})]})},e))})})]});var o=e.i(793130);let c=({enabled:e,routerFieldsMetadata:r,onToggle:a})=>(0,t.jsx)("div",{className:"space-y-3 max-w-3xl",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:r.enable_tag_filtering?.ui_field_name||"Enable Tag Filtering"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-0.5",children:[r.enable_tag_filtering?.field_description||"",r.enable_tag_filtering?.link&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("a",{href:r.enable_tag_filtering.link,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Learn more"})]})]})]}),(0,t.jsx)(o.Switch,{checked:e,onChange:a,className:"ml-4"})]})});e.s(["default",0,({value:e,onChange:r,routerFieldsMetadata:a,availableRoutingStrategies:n,routingStrategyDescriptions:o})=>(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Routing Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure how requests are routed to deployments"})]}),n.length>0&&(0,t.jsx)(i,{selectedStrategy:e.selectedStrategy||e.routerSettings.routing_strategy||null,availableStrategies:n,routingStrategyDescriptions:o,routerFieldsMetadata:a,onStrategyChange:t=>{r({...e,selectedStrategy:t})}}),(0,t.jsx)(c,{enabled:e.enableTagFiltering,routerFieldsMetadata:a,onToggle:t=>{r({...e,enableTagFiltering:t})}})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"}),"latency-based-routing"===e.selectedStrategy&&(0,t.jsx)(s,{routingStrategyArgs:e.routerSettings.routing_strategy_args}),(0,t.jsx)(l,{routerSettings:e.routerSettings,routerFieldsMetadata:a})]})],158392);var d=e.i(994388),u=e.i(998573),m=e.i(653496),x=e.i(603908),x=x,g=e.i(271645),h=e.i(592968),p=e.i(475254);let f=(0,p.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),b=(0,p.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var y=e.i(37727);function v({group:e,onChange:r,availableModels:a,maxFallbacks:s}){let l=a.filter(t=>t!==e.primaryModel),i=e.fallbackModels.length{let a=[...e.fallbackModels];a.includes(t)&&(a=a.filter(e=>e!==t)),r({...e,primaryModel:t,fallbackModels:a})},showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:a.map(e=>({label:e,value:e}))}),!e.primaryModel&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-amber-600 text-xs bg-amber-50 p-2 rounded",children:[(0,t.jsx)(f,{className:"w-4 h-4"}),(0,t.jsx)("span",{children:"Select a model to begin configuring fallbacks"})]})]}),(0,t.jsx)("div",{className:"flex items-center justify-center -my-4 z-10",children:(0,t.jsxs)("div",{className:"bg-indigo-50 text-indigo-500 px-4 py-1 rounded-full text-xs font-bold border border-indigo-100 flex items-center gap-2 shadow-sm",children:[(0,t.jsx)(b,{className:"w-4 h-4"}),"IF FAILS, TRY..."]})}),(0,t.jsxs)("div",{className:`transition-opacity duration-300 ${!e.primaryModel?"opacity-50 pointer-events-none":"opacity-100"}`,children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-700 mb-2",children:["Fallback Chain ",(0,t.jsx)("span",{className:"text-red-500",children:"*"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500 font-normal ml-2",children:["(Max ",s," fallbacks at a time)"]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(n.Select,{mode:"multiple",className:"w-full",size:"large",placeholder:i?"Select fallback models to add...":`Maximum ${s} fallbacks reached`,value:e.fallbackModels,onChange:t=>{let a=t.slice(0,s);r({...e,fallbackModels:a})},disabled:!e.primaryModel,options:l.map(e=>({label:e,value:e})),optionRender:(r,a)=>{let s=e.fallbackModels.includes(r.value),l=s?e.fallbackModels.indexOf(r.value)+1:null;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[s&&null!==l&&(0,t.jsx)("span",{className:"flex items-center justify-center w-5 h-5 rounded bg-indigo-100 text-indigo-600 text-xs font-bold",children:l}),(0,t.jsx)("span",{children:r.label})]})},maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(h.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})}),showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1 ml-1",children:i?`Search and select multiple models. Selected models will appear below in order. (${e.fallbackModels.length}/${s} used)`:`Maximum ${s} fallbacks reached. Remove some to add more.`})]}),(0,t.jsx)("div",{className:"space-y-2 min-h-[100px]",children:0===e.fallbackModels.length?(0,t.jsxs)("div",{className:"h-32 border-2 border-dashed border-gray-300 rounded-lg flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)("span",{className:"text-sm",children:"No fallback models selected"}),(0,t.jsx)("span",{className:"text-xs mt-1",children:"Add models from the dropdown above"})]}):e.fallbackModels.map((a,s)=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-3 bg-white rounded-lg border border-gray-200 hover:border-indigo-300 hover:shadow-sm transition-all",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded bg-gray-100 text-gray-400 group-hover:text-indigo-500 group-hover:bg-indigo-50",children:(0,t.jsx)("span",{className:"text-xs font-bold",children:s+1})}),(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"font-medium text-gray-800",children:a})})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t;return t=e.fallbackModels.filter((e,t)=>t!==s),void r({...e,fallbackModels:t})},className:"opacity-0 group-hover:opacity-100 transition-opacity text-gray-400 hover:text-red-500 p-1",children:(0,t.jsx)(y.X,{className:"w-4 h-4"})})]},`${a}-${s}`))})]})]})]})}function j({groups:e,onGroupsChange:r,availableModels:a,maxFallbacks:s=5,maxGroups:l=5}){let[n,i]=(0,g.useState)(e.length>0?e[0].id:"1");(0,g.useEffect)(()=>{e.length>0?e.some(e=>e.id===n)||i(e[0].id):i("1")},[e]);let o=()=>{if(e.length>=l)return;let t=Date.now().toString();r([...e,{id:t,primaryModel:null,fallbackModels:[]}]),i(t)},c=t=>{r(e.map(e=>e.id===t.id?t:e))},h=e.map((r,l)=>{let n=r.primaryModel?r.primaryModel:`Group ${l+1}`;return{key:r.id,label:n,closable:e.length>1,children:(0,t.jsx)(v,{group:r,onChange:c,availableModels:a,maxFallbacks:s})}});return 0===e.length?(0,t.jsxs)("div",{className:"text-center py-12 bg-gray-50 rounded-lg border border-dashed border-gray-300",children:[(0,t.jsx)("p",{className:"text-gray-500 mb-4",children:"No fallback groups configured"}),(0,t.jsx)(d.Button,{variant:"primary",onClick:o,icon:()=>(0,t.jsx)(x.default,{className:"w-4 h-4"}),children:"Create First Group"})]}):(0,t.jsx)(m.Tabs,{type:"editable-card",activeKey:n,onChange:i,onEdit:(t,a)=>{"add"===a?o():"remove"===a&&e.length>1&&(t=>{if(1===e.length)return u.message.warning("At least one group is required");let a=e.filter(e=>e.id!==t);r(a),n===t&&a.length>0&&i(a[a.length-1].id)})(t)},items:h,className:"fallback-tabs",tabBarStyle:{marginBottom:0},hideAdd:e.length>=l})}e.s(["FallbackSelectionForm",()=>j],419470)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0b27adb95e5b531e.js b/litellm/proxy/_experimental/out/_next/static/chunks/0b27adb95e5b531e.js deleted file mode 100644 index f6841cc4c19..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0b27adb95e5b531e.js +++ /dev/null @@ -1,84 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,487304,e=>{"use strict";var t,l,a=e.i(843476),r=e.i(271645),s=e.i(994388),i=e.i(653824),n=e.i(881073),o=e.i(197647),d=e.i(723731),c=e.i(404206),u=e.i(326373),m=e.i(755151),p=e.i(646563),x=e.i(245094),g=e.i(764205),h=e.i(808613),f=e.i(898586),y=e.i(199133),j=e.i(212931),_=e.i(262218),v=e.i(280898),b=e.i(779241),N=((t={}).PresidioPII="Presidio PII",t.Bedrock="Bedrock Guardrail",t.Lakera="Lakera",t);let w={},C=e=>{let t={};return t.PresidioPII="Presidio PII",t.Bedrock="Bedrock Guardrail",t.Lakera="Lakera",Object.entries(e).forEach(([e,l])=>{l&&"object"==typeof l&&"ui_friendly_name"in l&&(t[e.split("_").map((e,t)=>e.charAt(0).toUpperCase()+e.slice(1)).join("")]=l.ui_friendly_name)}),w=t,t},S=()=>Object.keys(w).length>0?w:N,k={PresidioPII:"presidio",Bedrock:"bedrock",Lakera:"lakera_v2",LitellmContentFilter:"litellm_content_filter",ToolPermission:"tool_permission"},T=e=>{Object.entries(e).forEach(([e,t])=>{t&&"object"==typeof t&&"ui_friendly_name"in t&&(k[e.split("_").map((e,t)=>e.charAt(0).toUpperCase()+e.slice(1)).join("")]=e)})},O=e=>!!e&&"Presidio PII"===S()[e],I=e=>!!e&&"LiteLLM Content Filter"===S()[e],P="../ui/assets/logos/",A={"Presidio PII":`${P}presidio.png`,"Bedrock Guardrail":`${P}bedrock.svg`,Lakera:`${P}lakeraai.jpeg`,"Azure Content Safety Prompt Shield":`${P}presidio.png`,"Azure Content Safety Text Moderation":`${P}presidio.png`,"Aporia AI":`${P}aporia.png`,"PANW Prisma AIRS":`${P}palo_alto_networks.jpeg`,"Noma Security":`${P}noma_security.png`,"Javelin Guardrails":`${P}javelin.png`,"Pillar Guardrail":`${P}pillar.jpeg`,"Google Cloud Model Armor":`${P}google.svg`,"Guardrails AI":`${P}guardrails_ai.jpeg`,"Lasso Guardrail":`${P}lasso.png`,"Pangea Guardrail":`${P}pangea.png`,"AIM Guardrail":`${P}aim_security.jpeg`,"OpenAI Moderation":`${P}openai_small.svg`,EnkryptAI:`${P}enkrypt_ai.avif`,"Prompt Security":`${P}prompt_security.png`,"LiteLLM Content Filter":`${P}litellm_logo.jpg`},B=e=>{if(!e)return{logo:"",displayName:"-"};let t=Object.keys(k).find(t=>k[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let l=S()[t];return{logo:A[l]||"",displayName:l||e}};var L=e.i(464571),F=e.i(536916),E=e.i(592968),M=e.i(149192),R=e.i(741585),R=R,z=e.i(724154);e.i(247167);var G=e.i(931067);let $={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"}}]},name:"filter",theme:"outlined"};var D=e.i(9583),K=r.forwardRef(function(e,t){return r.createElement(D.default,(0,G.default)({},e,{ref:t,icon:$}))});let{Text:J}=f.Typography,{Option:q}=y.Select,U=({categories:e,selectedCategories:t,onChange:l})=>(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center mb-2",children:[(0,a.jsx)(K,{className:"text-gray-500 mr-1"}),(0,a.jsx)(J,{className:"text-gray-500 font-medium",children:"Filter by category"})]}),(0,a.jsx)(y.Select,{mode:"multiple",placeholder:"Select categories to filter by",style:{width:"100%"},onChange:l,value:t,allowClear:!0,showSearch:!0,optionFilterProp:"children",className:"mb-4",tagRender:e=>(0,a.jsx)(_.Tag,{color:"blue",closable:e.closable,onClose:e.onClose,className:"mr-2 mb-2",children:e.label}),children:e.map(e=>(0,a.jsx)(q,{value:e.category,children:e.category},e.category))})]}),V=({onSelectAll:e,onUnselectAll:t,hasSelectedEntities:l})=>(0,a.jsxs)("div",{className:"bg-gray-50 p-5 rounded-lg mb-6 border border-gray-200 shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(J,{strong:!0,className:"text-gray-700 text-base",children:"Quick Actions"}),(0,a.jsx)(E.Tooltip,{title:"Apply action to all PII types at once",children:(0,a.jsx)("div",{className:"ml-2 text-gray-400 cursor-help text-xs",children:"ⓘ"})})]}),(0,a.jsx)(L.Button,{color:"danger",variant:"outlined",onClick:t,disabled:!l,icon:(0,a.jsx)(M.CloseOutlined,{}),children:"Unselect All"})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsx)(L.Button,{color:"primary",variant:"outlined",onClick:()=>e("MASK"),className:"h-10",block:!0,icon:(0,a.jsx)(R.default,{}),children:"Select All & Mask"}),(0,a.jsx)(L.Button,{color:"danger",variant:"outlined",onClick:()=>e("BLOCK"),className:"h-10 hover:bg-red-100",block:!0,icon:(0,a.jsx)(z.StopOutlined,{}),children:"Select All & Block"})]})]}),H=({entities:e,selectedEntities:t,selectedActions:l,actions:r,onEntitySelect:s,onActionSelect:i,entityToCategoryMap:n})=>(0,a.jsxs)("div",{className:"border rounded-lg overflow-hidden shadow-sm",children:[(0,a.jsxs)("div",{className:"bg-gray-50 px-5 py-3 border-b flex",children:[(0,a.jsx)(J,{strong:!0,className:"flex-1 text-gray-700",children:"PII Type"}),(0,a.jsx)(J,{strong:!0,className:"w-32 text-right text-gray-700",children:"Action"})]}),(0,a.jsx)("div",{className:"max-h-[400px] overflow-y-auto",children:0===e.length?(0,a.jsx)("div",{className:"py-10 text-center text-gray-500",children:"No PII types match your filter criteria"}):e.map(e=>(0,a.jsxs)("div",{className:`px-5 py-3 flex items-center justify-between hover:bg-gray-50 border-b ${t.includes(e)?"bg-blue-50":""}`,children:[(0,a.jsxs)("div",{className:"flex items-center flex-1",children:[(0,a.jsx)(F.Checkbox,{checked:t.includes(e),onChange:()=>s(e),className:"mr-3"}),(0,a.jsx)(J,{className:t.includes(e)?"font-medium text-gray-900":"text-gray-700",children:e.replace(/_/g," ")}),n.get(e)&&(0,a.jsx)(_.Tag,{className:"ml-2 text-xs",color:"blue",children:n.get(e)})]}),(0,a.jsx)("div",{className:"w-32",children:(0,a.jsx)(y.Select,{value:t.includes(e)&&l[e]||"MASK",onChange:t=>i(e,t),style:{width:120},disabled:!t.includes(e),className:`${!t.includes(e)?"opacity-50":""}`,dropdownMatchSelectWidth:!1,children:r.map(e=>(0,a.jsx)(q,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center",children:[(e=>{switch(e){case"MASK":return(0,a.jsx)(R.default,{style:{marginRight:4}});case"BLOCK":return(0,a.jsx)(z.StopOutlined,{style:{marginRight:4}});default:return null}})(e),e]})},e))})})]},e))})]}),{Title:Y,Text:W}=f.Typography,Q=({entities:e,actions:t,selectedEntities:l,selectedActions:s,onEntitySelect:i,onActionSelect:n,entityCategories:o=[]})=>{let[d,c]=(0,r.useState)([]),u=new Map;o.forEach(e=>{e.entities.forEach(t=>{u.set(t,e.category)})});let m=e.filter(e=>0===d.length||d.includes(u.get(e)||""));return(0,a.jsxs)("div",{className:"pii-configuration",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-5",children:[(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsx)(Y,{level:4,className:"!m-0 font-semibold text-gray-800",children:"Configure PII Protection"})}),(0,a.jsxs)(W,{className:"text-gray-500",children:[l.length," items selected"]})]}),(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)(U,{categories:o,selectedCategories:d,onChange:c}),(0,a.jsx)(V,{onSelectAll:t=>{e.forEach(e=>{l.includes(e)||i(e),n(e,t)})},onUnselectAll:()=>{l.forEach(e=>{i(e)})},hasSelectedEntities:l.length>0})]}),(0,a.jsx)(H,{entities:m,selectedEntities:l,selectedActions:s,actions:t,onEntitySelect:i,onActionSelect:n,entityToCategoryMap:u})]})};var Z=e.i(482725),X=e.i(435451);let ee=({selectedProvider:e,accessToken:t,providerParams:l=null,value:s=null})=>{let[i,n]=(0,r.useState)(!1),[o,d]=(0,r.useState)(l),[c,u]=(0,r.useState)(null);if((0,r.useEffect)(()=>{if(l)return void d(l);let e=async()=>{if(t){n(!0),u(null);try{let e=await (0,g.getGuardrailProviderSpecificParams)(t);console.log("Provider params API response:",e),d(e),C(e),T(e)}catch(e){console.error("Error fetching provider params:",e),u("Failed to load provider parameters")}finally{n(!1)}}};l||e()},[t,l]),!e)return null;if(i)return(0,a.jsx)(Z.Spin,{tip:"Loading provider parameters..."});if(c)return(0,a.jsx)("div",{className:"text-red-500",children:c});let m=k[e]?.toLowerCase(),p=o&&o[m];if(console.log("Provider key:",m),console.log("Provider fields:",p),!p||0===Object.keys(p).length)return(0,a.jsx)("div",{children:"No configuration fields available for this provider."});console.log("Value:",s);let x=new Set(["patterns","blocked_words","blocked_words_file","categories","severity_threshold","pattern_redaction_format","keyword_redaction_tag"]),f=I(e),j=(e,t="",l)=>Object.entries(e).map(([e,r])=>{let i=t?`${t}.${e}`:e,n=l?l[e]:s?.[e];return(console.log("Field value:",n),"ui_friendly_name"===e||"optional_params"===e&&"nested"===r.type&&r.fields||f&&x.has(e))?null:"nested"===r.type&&r.fields?(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-2 font-medium",children:e}),(0,a.jsx)("div",{className:"ml-4 border-l-2 border-gray-200 pl-4",children:j(r.fields,i,n)})]},i):(0,a.jsx)(h.Form.Item,{name:i,label:e,tooltip:r.description,rules:r.required?[{required:!0,message:`${e} is required`}]:void 0,children:"select"===r.type&&r.options?(0,a.jsx)(y.Select,{placeholder:r.description,defaultValue:n||r.default_value,children:r.options.map(e=>(0,a.jsx)(y.Select.Option,{value:e,children:e},e))}):"multiselect"===r.type&&r.options?(0,a.jsx)(y.Select,{mode:"multiple",placeholder:r.description,defaultValue:n||r.default_value,children:r.options.map(e=>(0,a.jsx)(y.Select.Option,{value:e,children:e},e))}):"bool"===r.type||"boolean"===r.type?(0,a.jsxs)(y.Select,{placeholder:r.description,defaultValue:void 0!==n?String(n):r.default_value,children:[(0,a.jsx)(y.Select.Option,{value:"true",children:"True"}),(0,a.jsx)(y.Select.Option,{value:"false",children:"False"})]}):"number"===r.type?(0,a.jsx)(X.default,{step:1,width:400,placeholder:r.description,defaultValue:void 0!==n?Number(n):void 0}):e.includes("password")||e.includes("secret")||e.includes("key")?(0,a.jsx)(b.TextInput,{placeholder:r.description,type:"password",defaultValue:n||""}):(0,a.jsx)(b.TextInput,{placeholder:r.description,type:"text",defaultValue:n||""})},i)});return(0,a.jsx)(a.Fragment,{children:j(p)})},{Title:et}=f.Typography,el=({field:e,fieldKey:t,fullFieldKey:l,value:s})=>{let[i,n]=r.default.useState([]),[o,d]=r.default.useState(e.dict_key_options||[]);return r.default.useEffect(()=>{if(s&&"object"==typeof s){let t=Object.keys(s);n(t.map(e=>({key:e,id:`${e}_${Date.now()}_${Math.random()}`}))),d((e.dict_key_options||[]).filter(e=>!t.includes(e)))}},[s,e.dict_key_options]),(0,a.jsxs)("div",{className:"space-y-3",children:[i.map(t=>(0,a.jsxs)("div",{className:"flex items-center space-x-3 p-3 border rounded-lg",children:[(0,a.jsx)("div",{className:"w-24 font-medium text-sm",children:t.key}),(0,a.jsx)("div",{className:"flex-1",children:(0,a.jsx)(h.Form.Item,{name:Array.isArray(l)?[...l,t.key]:[l,t.key],style:{marginBottom:0},initialValue:s&&"object"==typeof s?s[t.key]:void 0,normalize:"number"===e.dict_value_type?e=>{if(null==e||""===e)return;let t=Number(e);return isNaN(t)?e:t}:void 0,children:"number"===e.dict_value_type?(0,a.jsx)(X.default,{step:1,width:200,placeholder:`Enter ${t.key} value`}):"boolean"===e.dict_value_type?(0,a.jsxs)(y.Select,{placeholder:`Select ${t.key} value`,children:[(0,a.jsx)(y.Select.Option,{value:!0,children:"True"}),(0,a.jsx)(y.Select.Option,{value:!1,children:"False"})]}):(0,a.jsx)(b.TextInput,{placeholder:`Enter ${t.key} value`,type:"text"})})}),(0,a.jsx)("button",{type:"button",className:"text-red-500 hover:text-red-700 text-sm",onClick:()=>{var e,l;return e=t.id,l=t.key,void(n(i.filter(t=>t.id!==e)),d([...o,l].sort()))},children:"Remove"})]},t.id)),o.length>0&&(0,a.jsxs)("div",{className:"flex items-center space-x-3 mt-2",children:[(0,a.jsx)(y.Select,{placeholder:"Select category to configure",style:{width:200},onSelect:e=>e&&void(!e||(n([...i,{key:e,id:`${e}_${Date.now()}`}]),d(o.filter(t=>t!==e)))),value:void 0,children:o.map(e=>(0,a.jsx)(y.Select.Option,{value:e,children:e},e))}),(0,a.jsx)("span",{className:"text-sm text-gray-500",children:"Select a category to add threshold configuration"})]})]})},ea=({optionalParams:e,parentFieldKey:t,values:l})=>e.fields&&0!==Object.keys(e.fields).length?(0,a.jsxs)("div",{className:"guardrail-optional-params",children:[(0,a.jsxs)("div",{className:"mb-8 pb-4 border-b border-gray-100",children:[(0,a.jsx)(et,{level:3,className:"mb-2 font-semibold text-gray-900",children:"Optional Parameters"}),(0,a.jsx)("p",{className:"text-gray-600 text-sm",children:e.description||"Configure additional settings for this guardrail provider"})]}),(0,a.jsx)("div",{className:"space-y-8",children:Object.entries(e.fields).map(([e,r])=>{let s,i;return s=`${t}.${e}`,(console.log("value",i=l?.[e]),"dict"===r.type&&r.dict_key_options)?(0,a.jsxs)("div",{className:"mb-8 p-6 bg-gray-50 rounded-lg border border-gray-200",children:[(0,a.jsx)("div",{className:"mb-4 font-medium text-gray-900 text-base",children:e}),(0,a.jsx)("p",{className:"text-sm text-gray-600 mb-4",children:r.description}),(0,a.jsx)(el,{field:r,fieldKey:e,fullFieldKey:[t,e],value:i})]},s):(0,a.jsx)("div",{className:"mb-8 p-6 bg-white rounded-lg border border-gray-200 shadow-sm",children:(0,a.jsx)(h.Form.Item,{name:[t,e],label:(0,a.jsxs)("div",{className:"mb-2",children:[(0,a.jsx)("div",{className:"font-medium text-gray-900 text-base",children:e}),(0,a.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:r.description})]}),rules:r.required?[{required:!0,message:`${e} is required`}]:void 0,className:"mb-0",initialValue:void 0!==i?i:r.default_value,normalize:"number"===r.type?e=>{if(null==e||""===e)return;let t=Number(e);return isNaN(t)?e:t}:void 0,children:"select"===r.type&&r.options?(0,a.jsx)(y.Select,{placeholder:r.description,children:r.options.map(e=>(0,a.jsx)(y.Select.Option,{value:e,children:e},e))}):"multiselect"===r.type&&r.options?(0,a.jsx)(y.Select,{mode:"multiple",placeholder:r.description,children:r.options.map(e=>(0,a.jsx)(y.Select.Option,{value:e,children:e},e))}):"bool"===r.type||"boolean"===r.type?(0,a.jsxs)(y.Select,{placeholder:r.description,children:[(0,a.jsx)(y.Select.Option,{value:"true",children:"True"}),(0,a.jsx)(y.Select.Option,{value:"false",children:"False"})]}):"number"===r.type?(0,a.jsx)(X.default,{step:1,width:400,placeholder:r.description}):e.includes("password")||e.includes("secret")||e.includes("key")?(0,a.jsx)(b.TextInput,{placeholder:r.description,type:"password"}):(0,a.jsx)(b.TextInput,{placeholder:r.description,type:"text"})})},s)})})]}):null;var er=e.i(727749),es=e.i(770914),ei=e.i(515831),en=e.i(175712),eo=e.i(519756);let{Text:ed}=f.Typography,{Option:ec}=y.Select,eu=({visible:e,prebuiltPatterns:t,categories:l,selectedPatternName:r,patternAction:i,onPatternNameChange:n,onActionChange:o,onAdd:d,onCancel:c})=>(0,a.jsxs)(j.Modal,{title:"Add prebuilt pattern",open:e,onCancel:c,footer:null,width:800,children:[(0,a.jsxs)(es.Space,{direction:"vertical",style:{width:"100%"},size:"large",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(ed,{strong:!0,children:"Pattern type"}),(0,a.jsx)(y.Select,{placeholder:"Choose pattern type",value:r,onChange:n,style:{width:"100%",marginTop:8},showSearch:!0,filterOption:(e,l)=>{let a=t.find(e=>e.name===l?.value);return!!a&&(a.display_name.toLowerCase().includes(e.toLowerCase())||a.name.toLowerCase().includes(e.toLowerCase()))},children:l.map(e=>{let l=t.filter(t=>t.category===e);return 0===l.length?null:(0,a.jsx)(y.Select.OptGroup,{label:e,children:l.map(e=>(0,a.jsx)(ec,{value:e.name,children:e.display_name},e.name))},e)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(ed,{strong:!0,children:"Action"}),(0,a.jsx)(ed,{type:"secondary",style:{display:"block",marginTop:4,marginBottom:8},children:"Choose what action the guardrail should take when this pattern is detected"}),(0,a.jsxs)(y.Select,{value:i,onChange:o,style:{width:"100%"},children:[(0,a.jsx)(ec,{value:"BLOCK",children:"Block"}),(0,a.jsx)(ec,{value:"MASK",children:"Mask"})]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",marginTop:"24px"},children:[(0,a.jsx)(s.Button,{variant:"secondary",onClick:c,children:"Cancel"}),(0,a.jsx)(s.Button,{onClick:d,children:"Add"})]})]}),{Text:em}=f.Typography,{Option:ep}=y.Select,ex=({visible:e,patternName:t,patternRegex:l,patternAction:r,onNameChange:i,onRegexChange:n,onActionChange:o,onAdd:d,onCancel:c})=>(0,a.jsxs)(j.Modal,{title:"Add custom regex pattern",open:e,onCancel:c,footer:null,width:800,children:[(0,a.jsxs)(es.Space,{direction:"vertical",style:{width:"100%"},size:"large",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(em,{strong:!0,children:"Pattern name"}),(0,a.jsx)(b.TextInput,{placeholder:"e.g., internal_id, employee_code",value:t,onValueChange:i,style:{marginTop:8}})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(em,{strong:!0,children:"Regex pattern"}),(0,a.jsx)(b.TextInput,{placeholder:"e.g., ID-[0-9]{6}",value:l,onValueChange:n,style:{marginTop:8}}),(0,a.jsx)(em,{type:"secondary",style:{fontSize:12},children:"Enter a valid regular expression to match sensitive data"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(em,{strong:!0,children:"Action"}),(0,a.jsx)(em,{type:"secondary",style:{display:"block",marginTop:4,marginBottom:8},children:"Choose what action the guardrail should take when this pattern is detected"}),(0,a.jsxs)(y.Select,{value:r,onChange:o,style:{width:"100%"},children:[(0,a.jsx)(ep,{value:"BLOCK",children:"Block"}),(0,a.jsx)(ep,{value:"MASK",children:"Mask"})]})]})]}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",marginTop:"24px"},children:[(0,a.jsx)(s.Button,{variant:"secondary",onClick:c,children:"Cancel"}),(0,a.jsx)(s.Button,{onClick:d,children:"Add"})]})]});var eg=e.i(78085);let{Text:eh}=f.Typography,{Option:ef}=y.Select,ey=({visible:e,keyword:t,action:l,description:r,onKeywordChange:i,onActionChange:n,onDescriptionChange:o,onAdd:d,onCancel:c})=>(0,a.jsxs)(j.Modal,{title:"Add blocked keyword",open:e,onCancel:c,footer:null,width:800,children:[(0,a.jsxs)(es.Space,{direction:"vertical",style:{width:"100%"},size:"large",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(eh,{strong:!0,children:"Keyword"}),(0,a.jsx)(b.TextInput,{placeholder:"Enter sensitive keyword or phrase",value:t,onValueChange:i,style:{marginTop:8}})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eh,{strong:!0,children:"Action"}),(0,a.jsx)(eh,{type:"secondary",style:{display:"block",marginTop:4,marginBottom:8},children:"Choose what action the guardrail should take when this keyword is detected"}),(0,a.jsxs)(y.Select,{value:l,onChange:n,style:{width:"100%"},children:[(0,a.jsx)(ef,{value:"BLOCK",children:"Block"}),(0,a.jsx)(ef,{value:"MASK",children:"Mask"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eh,{strong:!0,children:"Description (optional)"}),(0,a.jsx)(eg.Textarea,{placeholder:"Explain why this keyword is sensitive",value:r,onValueChange:o,rows:3,style:{marginTop:8}})]})]}),(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",marginTop:"24px"},children:[(0,a.jsx)(s.Button,{variant:"secondary",onClick:c,children:"Cancel"}),(0,a.jsx)(s.Button,{onClick:d,children:"Add"})]})]});var ej=e.i(291542),e_=e.i(955135);let{Text:ev}=f.Typography,{Option:eb}=y.Select,eN=({patterns:e,onActionChange:t,onRemove:l})=>{let r=[{title:"Type",dataIndex:"type",key:"type",width:100,render:e=>(0,a.jsx)(_.Tag,{color:"prebuilt"===e?"blue":"green",children:"prebuilt"===e?"Prebuilt":"Custom"})},{title:"Pattern name",dataIndex:"name",key:"name",render:(e,t)=>t.display_name||t.name},{title:"Regex pattern",dataIndex:"pattern",key:"pattern",render:e=>e?(0,a.jsxs)(ev,{code:!0,style:{fontSize:12},children:[e.substring(0,40),"..."]}):"-"},{title:"Action",dataIndex:"action",key:"action",width:150,render:(e,l)=>(0,a.jsxs)(y.Select,{value:e,onChange:e=>t(l.id,e),style:{width:120},size:"small",children:[(0,a.jsx)(eb,{value:"BLOCK",children:"Block"}),(0,a.jsx)(eb,{value:"MASK",children:"Mask"})]})},{title:"",key:"actions",width:100,render:(e,t)=>(0,a.jsx)(s.Button,{type:"button",variant:"light",color:"red",size:"xs",icon:e_.DeleteOutlined,onClick:()=>l(t.id),children:"Delete"})}];return 0===e.length?(0,a.jsx)("div",{style:{textAlign:"center",padding:"40px 0",color:"#999"},children:"No patterns added."}):(0,a.jsx)(ej.Table,{dataSource:e,columns:r,rowKey:"id",pagination:!1,size:"small"})},{Text:ew}=f.Typography,{Option:eC}=y.Select,eS=({keywords:e,onActionChange:t,onRemove:l})=>{let r=[{title:"Keyword",dataIndex:"keyword",key:"keyword"},{title:"Action",dataIndex:"action",key:"action",width:150,render:(e,l)=>(0,a.jsxs)(y.Select,{value:e,onChange:e=>t(l.id,"action",e),style:{width:120},size:"small",children:[(0,a.jsx)(eC,{value:"BLOCK",children:"Block"}),(0,a.jsx)(eC,{value:"MASK",children:"Mask"})]})},{title:"Description",dataIndex:"description",key:"description",render:e=>e||"-"},{title:"",key:"actions",width:100,render:(e,t)=>(0,a.jsx)(s.Button,{type:"button",variant:"light",color:"red",size:"xs",icon:e_.DeleteOutlined,onClick:()=>l(t.id),children:"Delete"})}];return 0===e.length?(0,a.jsx)("div",{style:{textAlign:"center",padding:"40px 0",color:"#999"},children:"No keywords added."}):(0,a.jsx)(ej.Table,{dataSource:e,columns:r,rowKey:"id",pagination:!1,size:"small"})};var ek=e.i(362024),eT=e.i(993914);let{Title:eO,Text:eI}=f.Typography,{Option:eP}=y.Select,{Panel:eA}=ek.Collapse,eB=({availableCategories:e,selectedCategories:t,onCategoryAdd:l,onCategoryRemove:i,onCategoryUpdate:n,accessToken:o})=>{let[d,c]=r.default.useState(""),[u,m]=r.default.useState({}),[x,h]=r.default.useState({}),[f,j]=r.default.useState([]),[v,b]=r.default.useState(""),[N,w]=r.default.useState(!1),C=async e=>{if(o&&!u[e]){h(t=>({...t,[e]:!0}));try{let t=await (0,g.getCategoryYaml)(o,e);m(l=>({...l,[e]:t.yaml_content}))}catch(t){console.error(`Failed to fetch YAML for category ${e}:`,t)}finally{h(t=>({...t,[e]:!1}))}}};r.default.useEffect(()=>{if(d&&o){let e=u[d];if(e)return void b(e);w(!0),console.log(`Fetching YAML for category: ${d}`,{accessToken:o?"present":"missing"}),(0,g.getCategoryYaml)(o,d).then(e=>{console.log(`Successfully fetched YAML for ${d}:`,e),b(e.yaml_content),m(t=>({...t,[d]:e.yaml_content}))}).catch(e=>{console.error(`Failed to fetch preview YAML for category ${d}:`,e),b("")}).finally(()=>{w(!1)})}else b(""),w(!1)},[d,o]);let S=[{title:"Category",dataIndex:"display_name",key:"display_name",render:(t,l)=>{let r=e.find(e=>e.name===l.category);return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontWeight:500},children:t}),r?.description&&(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888",marginTop:"4px"},children:r.description})]})}},{title:"Action",dataIndex:"action",key:"action",width:150,render:(e,t)=>(0,a.jsxs)(y.Select,{value:e,onChange:e=>n(t.id,"action",e),style:{width:"100%"},children:[(0,a.jsx)(eP,{value:"BLOCK",children:(0,a.jsx)(_.Tag,{color:"red",children:"BLOCK"})}),(0,a.jsx)(eP,{value:"MASK",children:(0,a.jsx)(_.Tag,{color:"orange",children:"MASK"})})]})},{title:"Severity Threshold",dataIndex:"severity_threshold",key:"severity_threshold",width:180,render:(e,t)=>(0,a.jsxs)(y.Select,{value:e,onChange:e=>n(t.id,"severity_threshold",e),style:{width:"100%"},children:[(0,a.jsx)(eP,{value:"low",children:"Low"}),(0,a.jsx)(eP,{value:"medium",children:"Medium"}),(0,a.jsx)(eP,{value:"high",children:"High"})]})},{title:"",key:"actions",width:80,render:(e,t)=>(0,a.jsx)(s.Button,{icon:e_.DeleteOutlined,onClick:()=>i(t.id),variant:"secondary",size:"xs",children:"Remove"})}],k=e.filter(e=>!t.some(t=>t.category===e.name));return(0,a.jsxs)(en.Card,{title:(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)(eO,{level:5,style:{margin:0},children:"Content Categories"}),(0,a.jsx)(eI,{type:"secondary",style:{fontSize:14,fontWeight:400},children:"Detect harmful content, bias, and inappropriate advice using semantic analysis"})]}),size:"small",children:[(0,a.jsxs)("div",{style:{marginBottom:16,display:"flex",gap:8},children:[(0,a.jsx)(y.Select,{placeholder:"Select a content category",value:d||void 0,onChange:c,style:{flex:1},showSearch:!0,optionLabelProp:"label",filterOption:(e,t)=>(t?.label?.toString().toLowerCase()??"").includes(e.toLowerCase()),children:k.map(e=>(0,a.jsx)(eP,{value:e.name,label:e.display_name,children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontWeight:500},children:e.display_name}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#666",marginTop:"2px"},children:e.description})]})},e.name))}),(0,a.jsx)(s.Button,{onClick:()=>{if(!d)return;let a=e.find(e=>e.name===d);!a||t.some(e=>e.category===d)||(l({id:`category-${Date.now()}`,category:a.name,display_name:a.display_name,action:a.default_action,severity_threshold:"medium"}),c(""),b(""))},disabled:!d,icon:p.PlusOutlined,children:"Add"})]}),d&&(0,a.jsxs)("div",{style:{marginBottom:16,padding:"12px",background:"#f9f9f9",border:"1px solid #e0e0e0",borderRadius:"4px"},children:[(0,a.jsxs)("div",{style:{marginBottom:8,fontWeight:500,fontSize:"14px"},children:["Preview: ",e.find(e=>e.name===d)?.display_name]}),N?(0,a.jsx)("div",{style:{padding:"16px",textAlign:"center",color:"#888"},children:"Loading YAML..."}):v?(0,a.jsx)("pre",{style:{background:"#fff",padding:"12px",borderRadius:"4px",overflow:"auto",maxHeight:"300px",fontSize:"12px",lineHeight:"1.5",margin:0,border:"1px solid #e0e0e0"},children:(0,a.jsx)("code",{children:v})}):(0,a.jsx)("div",{style:{padding:"8px",textAlign:"center",color:"#888",fontSize:"12px"},children:"Unable to load YAML content"})]}),t.length>0?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ej.Table,{dataSource:t,columns:S,pagination:!1,size:"small",rowKey:"id"}),(0,a.jsx)("div",{style:{marginTop:16},children:(0,a.jsx)(ek.Collapse,{activeKey:f,onChange:e=>{let t=Array.isArray(e)?e:e?[e]:[],l=new Set(f);t.forEach(e=>{l.has(e)||u[e]||C(e)}),j(t)},ghost:!0,children:t.map(e=>(0,a.jsx)(eA,{header:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,a.jsx)(eT.FileTextOutlined,{}),(0,a.jsxs)("span",{children:["View YAML for ",e.display_name]})]}),children:x[e.category]?(0,a.jsx)("div",{style:{padding:"16px",textAlign:"center",color:"#888"},children:"Loading YAML..."}):u[e.category]?(0,a.jsx)("pre",{style:{background:"#f5f5f5",padding:"16px",borderRadius:"4px",overflow:"auto",maxHeight:"400px",fontSize:"12px",lineHeight:"1.5",margin:0},children:(0,a.jsx)("code",{children:u[e.category]})}):(0,a.jsx)("div",{style:{padding:"16px",textAlign:"center",color:"#888"},children:"YAML will load when expanded"})},e.category))})})]}):(0,a.jsx)("div",{style:{textAlign:"center",padding:"24px",color:"#888",border:"1px dashed #d9d9d9",borderRadius:"4px"},children:"No content categories selected. Add categories to detect harmful content, bias, or inappropriate advice."})]})},{Title:eL,Text:eF}=f.Typography,eE=({prebuiltPatterns:e,categories:t,selectedPatterns:l,blockedWords:i,onPatternAdd:n,onPatternRemove:o,onPatternActionChange:d,onBlockedWordAdd:c,onBlockedWordRemove:u,onBlockedWordUpdate:m,onFileUpload:x,accessToken:h,showStep:f,contentCategories:y=[],selectedContentCategories:j=[],onContentCategoryAdd:_,onContentCategoryRemove:v,onContentCategoryUpdate:b})=>{let[N,w]=(0,r.useState)(!1),[C,S]=(0,r.useState)(!1),[k,T]=(0,r.useState)(!1),[O,I]=(0,r.useState)(""),[P,A]=(0,r.useState)("BLOCK"),[B,L]=(0,r.useState)(""),[F,E]=(0,r.useState)(""),[M,R]=(0,r.useState)("BLOCK"),[z,G]=(0,r.useState)(""),[$,D]=(0,r.useState)("BLOCK"),[K,J]=(0,r.useState)(""),[q,U]=(0,r.useState)(!1),V=async e=>{U(!0);try{let t=await e.text();if(h){let e=await (0,g.validateBlockedWordsFile)(h,t);if(e.valid)x&&x(t),er.default.success(e.message||"File uploaded successfully");else{let t=e.error||e.errors&&e.errors.join(", ")||"Invalid file";er.default.error(`Validation failed: ${t}`)}}}catch(e){er.default.error(`Failed to upload file: ${e}`)}finally{U(!1)}return!1};return(0,a.jsxs)("div",{className:"space-y-6",children:[!f&&(0,a.jsx)("div",{children:(0,a.jsx)(eF,{type:"secondary",children:"Configure patterns, keywords, and content categories to detect and filter sensitive information in requests and responses."})}),(!f||"patterns"===f)&&(0,a.jsxs)(en.Card,{title:(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)(eL,{level:5,style:{margin:0},children:"Pattern Detection"}),(0,a.jsx)(eF,{type:"secondary",style:{fontSize:14,fontWeight:400},children:"Detect sensitive information using regex patterns (SSN, credit cards, API keys, etc.)"})]}),size:"small",children:[(0,a.jsx)("div",{style:{marginBottom:16},children:(0,a.jsxs)(es.Space,{children:[(0,a.jsx)(s.Button,{type:"button",onClick:()=>w(!0),icon:p.PlusOutlined,children:"Add prebuilt pattern"}),(0,a.jsx)(s.Button,{type:"button",onClick:()=>T(!0),variant:"secondary",icon:p.PlusOutlined,children:"Add custom regex"})]})}),(0,a.jsx)(eN,{patterns:l,onActionChange:d,onRemove:o})]}),(!f||"keywords"===f)&&(0,a.jsxs)(en.Card,{title:(0,a.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,a.jsx)(eL,{level:5,style:{margin:0},children:"Blocked Keywords"}),(0,a.jsx)(eF,{type:"secondary",style:{fontSize:14,fontWeight:400},children:"Block or mask specific sensitive terms and phrases"})]}),size:"small",children:[(0,a.jsx)("div",{style:{marginBottom:16},children:(0,a.jsxs)(es.Space,{children:[(0,a.jsx)(s.Button,{type:"button",onClick:()=>S(!0),icon:p.PlusOutlined,children:"Add keyword"}),(0,a.jsx)(ei.Upload,{beforeUpload:V,accept:".yaml,.yml",showUploadList:!1,children:(0,a.jsx)(s.Button,{type:"button",variant:"secondary",icon:eo.UploadOutlined,loading:q,children:"Upload YAML file"})})]})}),(0,a.jsx)(eS,{keywords:i,onActionChange:m,onRemove:u})]}),(!f||"categories"===f)&&y.length>0&&_&&v&&b&&(0,a.jsx)(eB,{availableCategories:y,selectedCategories:j,onCategoryAdd:_,onCategoryRemove:v,onCategoryUpdate:b,accessToken:h}),(0,a.jsx)(eu,{visible:N,prebuiltPatterns:e,categories:t,selectedPatternName:O,patternAction:P,onPatternNameChange:I,onActionChange:e=>A(e),onAdd:()=>{if(!O)return void er.default.error("Please select a pattern");let t=e.find(e=>e.name===O);n({id:`pattern-${Date.now()}`,type:"prebuilt",name:O,display_name:t?.display_name,action:P}),w(!1),I(""),A("BLOCK")},onCancel:()=>{w(!1),I(""),A("BLOCK")}}),(0,a.jsx)(ex,{visible:k,patternName:B,patternRegex:F,patternAction:M,onNameChange:L,onRegexChange:E,onActionChange:e=>R(e),onAdd:()=>{B&&F?(n({id:`custom-${Date.now()}`,type:"custom",name:B,pattern:F,action:M}),T(!1),L(""),E(""),R("BLOCK")):er.default.error("Please provide pattern name and regex")},onCancel:()=>{T(!1),L(""),E(""),R("BLOCK")}}),(0,a.jsx)(ey,{visible:C,keyword:z,action:$,description:K,onKeywordChange:G,onActionChange:e=>D(e),onDescriptionChange:J,onAdd:()=>{z?(c({id:`word-${Date.now()}`,keyword:z,action:$,description:K||void 0}),S(!1),G(""),J(""),D("BLOCK")):er.default.error("Please enter a keyword")},onCancel:()=>{S(!1),G(""),J(""),D("BLOCK")}})]})};var eM=e.i(304967),eR=e.i(599724),ez=e.i(312361),eG=e.i(21548),e$=e.i(311451),eD=e.i(827252);let eK={rules:[],default_action:"deny",on_disallowed_action:"block",violation_message_template:""},eJ=({value:e,onChange:t,disabled:l=!1})=>{let r={...eK,...e||{},rules:e?.rules?[...e.rules]:[]},s=e=>{let l={...r,...e};t?.(l)},i=(e,t)=>{s({rules:r.rules.map((l,a)=>a===e?{...l,...t}:l)})},n=(e,t)=>{let l=r.rules[e];if(!l)return;let a=Object.entries(l.allowed_param_patterns||{});t(a);let s={};a.forEach(([e,t])=>{s[e]=t}),i(e,{allowed_param_patterns:Object.keys(s).length>0?s:void 0})};return(0,a.jsxs)(eM.Card,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"text-lg font-semibold",children:"LiteLLM Tool Permission Guardrail"}),(0,a.jsx)(eR.Text,{className:"text-sm text-gray-500",children:"Provide regex patterns (e.g., ^mcp__github_.*$) for tool names or types and optionally constrain payload fields."})]}),!l&&(0,a.jsx)(L.Button,{icon:(0,a.jsx)(p.PlusOutlined,{}),type:"primary",onClick:()=>{s({rules:[...r.rules,{id:`rule_${Math.random().toString(36).slice(2,8)}`,decision:"allow",allowed_param_patterns:void 0}]})},className:"!bg-blue-600 !text-white hover:!bg-blue-500",children:"Add Rule"})]}),(0,a.jsx)(ez.Divider,{}),0===r.rules.length?(0,a.jsx)(eG.Empty,{description:"No tool rules added yet"}):(0,a.jsx)("div",{className:"space-y-4",children:r.rules.map((e,t)=>{let o;return(0,a.jsxs)(eM.Card,{className:"bg-gray-50",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,a.jsxs)(eR.Text,{className:"font-semibold",children:["Rule ",t+1]}),(0,a.jsx)(L.Button,{icon:(0,a.jsx)(e_.DeleteOutlined,{}),danger:!0,type:"text",disabled:l,onClick:()=>{s({rules:r.rules.filter((e,l)=>l!==t)})},children:"Remove"})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Rule ID"}),(0,a.jsx)(e$.Input,{disabled:l,placeholder:"unique_rule_id",value:e.id,onChange:e=>i(t,{id:e.target.value})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Tool Name (optional)"}),(0,a.jsx)(e$.Input,{disabled:l,placeholder:"^mcp__github_.*$",value:e.tool_name??"",onChange:e=>i(t,{tool_name:""===e.target.value.trim()?void 0:e.target.value})})]})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 mt-4",children:(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Tool Type (optional)"}),(0,a.jsx)(e$.Input,{disabled:l,placeholder:"^function$",value:e.tool_type??"",onChange:e=>i(t,{tool_type:""===e.target.value.trim()?void 0:e.target.value})})]})}),(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Decision"}),(0,a.jsxs)(y.Select,{disabled:l,value:e.decision,style:{width:200},onChange:e=>i(t,{decision:e}),children:[(0,a.jsx)(y.Select.Option,{value:"allow",children:"Allow"}),(0,a.jsx)(y.Select.Option,{value:"deny",children:"Deny"})]})]}),(0,a.jsx)("div",{className:"mt-4",children:0===(o=Object.entries(e.allowed_param_patterns||{})).length?(0,a.jsx)(L.Button,{disabled:l,size:"small",onClick:()=>i(t,{allowed_param_patterns:{"":""}}),children:"+ Restrict tool arguments (optional)"}):(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(eR.Text,{className:"text-sm text-gray-600",children:"Argument constraints (dot or array paths)"}),o.map(([r,s],i)=>(0,a.jsxs)(es.Space,{align:"start",children:[(0,a.jsx)(e$.Input,{disabled:l,placeholder:"messages[0].content",value:r,onChange:e=>{var l;return l=e.target.value,void n(t,e=>{if(!e[i])return;let[,t]=e[i];e[i]=[l,t]})}}),(0,a.jsx)(e$.Input,{disabled:l,placeholder:"^email@.*$",value:s,onChange:e=>{var l;return l=e.target.value,void n(t,e=>{if(!e[i])return;let[t]=e[i];e[i]=[t,l]})}}),(0,a.jsx)(L.Button,{disabled:l,icon:(0,a.jsx)(e_.DeleteOutlined,{}),danger:!0,onClick:()=>n(t,e=>{e.splice(i,1)})})]},`${e.id||t}-${i}`)),(0,a.jsx)(L.Button,{disabled:l,size:"small",onClick:()=>i(t,{allowed_param_patterns:{...e.allowed_param_patterns||{},"":""}}),children:"+ Add another constraint"})]})})]},e.id||t)})}),(0,a.jsx)(ez.Divider,{}),(0,a.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Default action"}),(0,a.jsxs)(y.Select,{disabled:l,value:r.default_action,onChange:e=>s({default_action:e}),children:[(0,a.jsx)(y.Select.Option,{value:"allow",children:"Allow"}),(0,a.jsx)(y.Select.Option,{value:"deny",children:"Deny"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)(eR.Text,{className:"text-sm font-medium flex items-center gap-1",children:["On disallowed action",(0,a.jsx)(E.Tooltip,{title:"Block returns an error when a forbidden tool is invoked. Rewrite strips the tool call but lets the rest of the response continue.",children:(0,a.jsx)(eD.InfoCircleOutlined,{})})]}),(0,a.jsxs)(y.Select,{disabled:l,value:r.on_disallowed_action,onChange:e=>s({on_disallowed_action:e}),children:[(0,a.jsx)(y.Select.Option,{value:"block",children:"Block"}),(0,a.jsx)(y.Select.Option,{value:"rewrite",children:"Rewrite"})]})]})]}),(0,a.jsxs)("div",{className:"mt-4",children:[(0,a.jsx)(eR.Text,{className:"text-sm font-medium",children:"Violation message (optional)"}),(0,a.jsx)(e$.Input.TextArea,{disabled:l,rows:3,placeholder:"This violates our org policy...",value:r.violation_message_template,onChange:e=>s({violation_message_template:e.target.value})})]})]})},{Title:eq,Text:eU,Link:eV}=f.Typography,{Option:eH}=y.Select,{Step:eY}=v.Steps,eW={pre_call:"Before LLM Call - Runs before the LLM call and checks the input (Recommended)",during_call:"During LLM Call - Runs in parallel with the LLM call, with response held until check completes",post_call:"After LLM Call - Runs after the LLM call and checks only the output",logging_only:"Logging Only - Only runs on logging callbacks without affecting the LLM call",pre_mcp_call:"Before MCP Tool Call - Runs before MCP tool execution and validates tool calls",during_mcp_call:"During MCP Tool Call - Runs in parallel with MCP tool execution for monitoring"},eQ=({visible:e,onClose:t,accessToken:l,onSuccess:i})=>{let n,[o]=h.Form.useForm(),[d,c]=(0,r.useState)(!1),[u,m]=(0,r.useState)(null),[p,x]=(0,r.useState)(null),[f,N]=(0,r.useState)([]),[w,P]=(0,r.useState)({}),[B,L]=(0,r.useState)(0),[F,E]=(0,r.useState)(null),[M,R]=(0,r.useState)([]),[z,G]=(0,r.useState)(2),[$,D]=(0,r.useState)({}),[K,J]=(0,r.useState)([]),[q,U]=(0,r.useState)([]),[V,H]=(0,r.useState)([]),[Y,W]=(0,r.useState)({rules:[],default_action:"deny",on_disallowed_action:"block",violation_message_template:""}),Z=(0,r.useMemo)(()=>!!u&&"tool_permission"===(k[u]||"").toLowerCase(),[u]);(0,r.useEffect)(()=>{l&&(async()=>{try{let[e,t]=await Promise.all([(0,g.getGuardrailUISettings)(l),(0,g.getGuardrailProviderSpecificParams)(l)]);x(e),E(t),C(t),T(t)}catch(e){console.error("Error fetching guardrail data:",e),er.default.fromBackend("Failed to load guardrail configuration")}})()},[l]);let X=e=>{m(e),o.setFieldsValue({config:void 0,presidio_analyzer_api_base:void 0,presidio_anonymizer_api_base:void 0}),N([]),P({}),R([]),G(2),D({}),W({rules:[],default_action:"deny",on_disallowed_action:"block",violation_message_template:""})},et=e=>{N(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},el=(e,t)=>{P(l=>({...l,[e]:t}))},es=async()=>{try{if(0===B&&(await o.validateFields(["guardrail_name","provider","mode","default_on"]),u)){let e=["guardrail_name","provider","mode","default_on"];"PresidioPII"===u&&e.push("presidio_analyzer_api_base","presidio_anonymizer_api_base"),await o.validateFields(e)}if(1===B&&O(u)&&0===f.length)return void er.default.fromBackend("Please select at least one PII entity to continue");L(B+1)}catch(e){console.error("Form validation failed:",e)}},ei=()=>{o.resetFields(),m(null),N([]),P({}),R([]),G(2),D({}),J([]),U([]),H([]),W({rules:[],default_action:"deny",on_disallowed_action:"block",violation_message_template:""}),L(0)},en=()=>{ei(),t()},eo=async()=>{try{c(!0),await o.validateFields();let e=o.getFieldsValue(!0),a=k[e.provider],r={guardrail_name:e.guardrail_name,litellm_params:{guardrail:a,mode:e.mode,default_on:e.default_on},guardrail_info:{}};if("PresidioPII"===e.provider&&f.length>0){let t={};f.forEach(e=>{t[e]=w[e]||"MASK"}),r.litellm_params.pii_entities_config=t,e.presidio_analyzer_api_base&&(r.litellm_params.presidio_analyzer_api_base=e.presidio_analyzer_api_base),e.presidio_anonymizer_api_base&&(r.litellm_params.presidio_anonymizer_api_base=e.presidio_anonymizer_api_base)}if(I(e.provider))K.length>0&&(r.litellm_params.patterns=K.map(e=>({pattern_type:"prebuilt"===e.type?"prebuilt":"regex",pattern_name:"prebuilt"===e.type?e.name:void 0,pattern:"custom"===e.type?e.pattern:void 0,name:e.name,action:e.action}))),q.length>0&&(r.litellm_params.blocked_words=q.map(e=>({keyword:e.keyword,action:e.action,description:e.description}))),V.length>0&&(r.litellm_params.categories=V.map(e=>({category:e.category,enabled:!0,action:e.action,severity_threshold:e.severity_threshold||"medium"})));else if(e.config)try{r.guardrail_info=JSON.parse(e.config)}catch(e){er.default.fromBackend("Invalid JSON in configuration"),c(!1);return}if("tool_permission"===a){if(0===Y.rules.length){er.default.fromBackend("Add at least one tool permission rule"),c(!1);return}r.litellm_params.rules=Y.rules,r.litellm_params.default_action=Y.default_action,r.litellm_params.on_disallowed_action=Y.on_disallowed_action,Y.violation_message_template&&(r.litellm_params.violation_message_template=Y.violation_message_template)}if(console.log("values: ",JSON.stringify(e)),F&&u){let t=k[u]?.toLowerCase();console.log("providerKey: ",t);let l=F[t]||{},a=new Set;console.log("providerSpecificParams: ",JSON.stringify(l)),Object.keys(l).forEach(e=>{"optional_params"!==e&&a.add(e)}),l.optional_params&&l.optional_params.fields&&Object.keys(l.optional_params.fields).forEach(e=>{a.add(e)}),console.log("allowedParams: ",a),a.forEach(t=>{let l=e[t];(null==l||""===l)&&(l=e.optional_params?.[t]),null!=l&&""!==l&&(r.litellm_params[t]=l)})}if(!l)throw Error("No access token available");console.log("Sending guardrail data:",JSON.stringify(r)),await (0,g.createGuardrailCall)(l,r),er.default.success("Guardrail created successfully"),ei(),i(),t()}catch(e){console.error("Failed to create guardrail:",e),er.default.fromBackend("Failed to create guardrail: "+(e instanceof Error?e.message:String(e)))}finally{c(!1)}},ed=e=>{if(!p||!I(u))return null;let t=p.content_filter_settings;return t?(0,a.jsx)(eE,{prebuiltPatterns:t.prebuilt_patterns||[],categories:t.pattern_categories||[],selectedPatterns:K,blockedWords:q,onPatternAdd:e=>J([...K,e]),onPatternRemove:e=>J(K.filter(t=>t.id!==e)),onPatternActionChange:(e,t)=>{J(K.map(l=>l.id===e?{...l,action:t}:l))},onBlockedWordAdd:e=>U([...q,e]),onBlockedWordRemove:e=>U(q.filter(t=>t.id!==e)),onBlockedWordUpdate:(e,t,l)=>{U(q.map(a=>a.id===e?{...a,[t]:l}:a))},contentCategories:t.content_categories||[],selectedContentCategories:V,onContentCategoryAdd:e=>H([...V,e]),onContentCategoryRemove:e=>H(V.filter(t=>t.id!==e)),onContentCategoryUpdate:(e,t,l)=>{H(V.map(a=>a.id===e?{...a,[t]:l}:a))},accessToken:l,showStep:e}):null};return(0,a.jsx)(j.Modal,{title:"Add Guardrail",open:e,onCancel:en,footer:null,width:800,children:(0,a.jsxs)(h.Form,{form:o,layout:"vertical",initialValues:{mode:"pre_call",default_on:!1},children:[(0,a.jsxs)(v.Steps,{current:B,className:"mb-6",style:{overflow:"visible"},children:[(0,a.jsx)(eY,{title:"Basic Info"}),(0,a.jsx)(eY,{title:O(u)?"PII Configuration":I(u)?"Default Categories":"Provider Configuration"}),I(u)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eY,{title:"Patterns"}),(0,a.jsx)(eY,{title:"Keywords"})]})]}),(()=>{switch(B){case 0:return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.Form.Item,{name:"guardrail_name",label:"Guardrail Name",rules:[{required:!0,message:"Please enter a guardrail name"}],children:(0,a.jsx)(b.TextInput,{placeholder:"Enter a name for this guardrail"})}),(0,a.jsx)(h.Form.Item,{name:"provider",label:"Guardrail Provider",rules:[{required:!0,message:"Please select a provider"}],children:(0,a.jsx)(y.Select,{placeholder:"Select a guardrail provider",onChange:X,labelInValue:!1,optionLabelProp:"label",dropdownRender:e=>e,showSearch:!0,children:Object.entries(S()).map(([e,t])=>(0,a.jsx)(eH,{value:e,label:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[A[t]&&(0,a.jsx)("img",{src:A[t],alt:"",style:{height:"20px",width:"20px",marginRight:"8px",objectFit:"contain"},onError:e=>{e.currentTarget.style.display="none"}}),(0,a.jsx)("span",{children:t})]}),children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[A[t]&&(0,a.jsx)("img",{src:A[t],alt:"",style:{height:"20px",width:"20px",marginRight:"8px",objectFit:"contain"},onError:e=>{e.currentTarget.style.display="none"}}),(0,a.jsx)("span",{children:t})]})},e))})}),(0,a.jsx)(h.Form.Item,{name:"mode",label:"Mode",tooltip:"How the guardrail should be applied",rules:[{required:!0,message:"Please select a mode"}],children:(0,a.jsx)(y.Select,{optionLabelProp:"label",mode:"multiple",children:p?.supported_modes?.map(e=>(0,a.jsx)(eH,{value:e,label:e,children:(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:e}),"pre_call"===e&&(0,a.jsx)(_.Tag,{color:"green",style:{marginLeft:"8px"},children:"Recommended"})]}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888"},children:eW[e]})]})},e))||(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eH,{value:"pre_call",label:"pre_call",children:(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"pre_call"})," ",(0,a.jsx)(_.Tag,{color:"green",children:"Recommended"})]}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888"},children:eW.pre_call})]})}),(0,a.jsx)(eH,{value:"during_call",label:"during_call",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{children:(0,a.jsx)("strong",{children:"during_call"})}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888"},children:eW.during_call})]})}),(0,a.jsx)(eH,{value:"post_call",label:"post_call",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{children:(0,a.jsx)("strong",{children:"post_call"})}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888"},children:eW.post_call})]})}),(0,a.jsx)(eH,{value:"logging_only",label:"logging_only",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{children:(0,a.jsx)("strong",{children:"logging_only"})}),(0,a.jsx)("div",{style:{fontSize:"12px",color:"#888"},children:eW.logging_only})]})})]})})}),(0,a.jsx)(h.Form.Item,{name:"default_on",label:"Always On",tooltip:"If enabled, this guardrail will be applied to all requests by default.",children:(0,a.jsxs)(y.Select,{children:[(0,a.jsx)(y.Select.Option,{value:!0,children:"Yes"}),(0,a.jsx)(y.Select.Option,{value:!1,children:"No"})]})}),!Z&&!I(u)&&(0,a.jsx)(ee,{selectedProvider:u,accessToken:l,providerParams:F})]});case 1:if(O(u))return p&&"PresidioPII"===u?(0,a.jsx)(Q,{entities:p.supported_entities,actions:p.supported_actions,selectedEntities:f,selectedActions:w,onEntitySelect:et,onActionSelect:el,entityCategories:p.pii_entity_categories}):null;if(I(u))return ed("categories");if(!u)return null;if(Z)return(0,a.jsx)(eJ,{value:Y,onChange:W});if(!F)return null;console.log("guardrail_provider_map: ",k),console.log("selectedProvider: ",u);let e=k[u]?.toLowerCase(),t=F&&F[e];return t&&t.optional_params?(0,a.jsx)(ea,{optionalParams:t.optional_params,parentFieldKey:"optional_params"}):null;case 2:if(I(u))return ed("patterns");return null;case 3:if(I(u))return ed("keywords");return null;default:return null}})(),(n=B===(I(u)?4:2)-1,(0,a.jsxs)("div",{className:"flex justify-end space-x-2 mt-4",children:[B>0&&(0,a.jsx)(s.Button,{variant:"secondary",onClick:()=>{L(B-1)},children:"Previous"}),!n&&(0,a.jsx)(s.Button,{onClick:es,children:"Next"}),n&&(0,a.jsx)(s.Button,{onClick:eo,loading:d,children:"Create Guardrail"}),(0,a.jsx)(s.Button,{variant:"secondary",onClick:en,children:"Cancel"})]}))]})})};var eZ=e.i(269200),eX=e.i(942232),e0=e.i(977572),e1=e.i(427612),e2=e.i(64848),e4=e.i(496020),e5=e.i(752978),e8=e.i(68155),e6=e.i(94629),e3=e.i(360820),e7=e.i(871943),e9=e.i(389083),te=e.i(152990),tt=e.i(682830),tl=e.i(790848);let{Title:ta,Text:tr}=f.Typography,{Option:ts}=y.Select,ti=({visible:e,onClose:t,accessToken:l,onSuccess:i,guardrailId:n,initialValues:o})=>{let[d]=h.Form.useForm(),[c,u]=(0,r.useState)(!1),[m,p]=(0,r.useState)(o?.provider||null),[x,f]=(0,r.useState)(null),[_,v]=(0,r.useState)([]),[N,w]=(0,r.useState)({});(0,r.useEffect)(()=>{(async()=>{try{if(!l)return;let e=await (0,g.getGuardrailUISettings)(l);f(e)}catch(e){console.error("Error fetching guardrail settings:",e),er.default.fromBackend("Failed to load guardrail settings")}})()},[l]),(0,r.useEffect)(()=>{o?.pii_entities_config&&Object.keys(o.pii_entities_config).length>0&&(v(Object.keys(o.pii_entities_config)),w(o.pii_entities_config))},[o]);let C=e=>{v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},T=(e,t)=>{w(l=>({...l,[e]:t}))},O=async()=>{try{u(!0);let e=await d.validateFields(),a=k[e.provider],r={guardrail_id:n,guardrail:{guardrail_name:e.guardrail_name,litellm_params:{guardrail:a,mode:e.mode,default_on:e.default_on},guardrail_info:{}}};if("PresidioPII"===e.provider&&_.length>0){let e={};_.forEach(t=>{e[t]=N[t]||"MASK"}),r.guardrail.litellm_params.pii_entities_config=e}else if(e.config)try{let t=JSON.parse(e.config);"Bedrock"===e.provider&&t?(t.guardrail_id&&(r.guardrail.litellm_params.guardrailIdentifier=t.guardrail_id),t.guardrail_version&&(r.guardrail.litellm_params.guardrailVersion=t.guardrail_version)):r.guardrail.guardrail_info=t}catch(e){er.default.fromBackend("Invalid JSON in configuration"),u(!1);return}if(!l)throw Error("No access token available");console.log("Sending guardrail update data:",JSON.stringify(r));let s=`/guardrails/${n}`,o=await fetch(s,{method:"PUT",headers:{[(0,g.getGlobalLitellmHeaderName)()]:`Bearer ${l}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!o.ok){let e=await o.text();throw Error(e||"Failed to update guardrail")}er.default.success("Guardrail updated successfully"),i(),t()}catch(e){console.error("Failed to update guardrail:",e),er.default.fromBackend("Failed to update guardrail: "+(e instanceof Error?e.message:String(e)))}finally{u(!1)}};return(0,a.jsx)(j.Modal,{title:"Edit Guardrail",open:e,onCancel:t,footer:null,width:700,children:(0,a.jsxs)(h.Form,{form:d,layout:"vertical",initialValues:o,children:[(0,a.jsx)(h.Form.Item,{name:"guardrail_name",label:"Guardrail Name",rules:[{required:!0,message:"Please enter a guardrail name"}],children:(0,a.jsx)(b.TextInput,{placeholder:"Enter a name for this guardrail"})}),(0,a.jsx)(h.Form.Item,{name:"provider",label:"Guardrail Provider",rules:[{required:!0,message:"Please select a provider"}],children:(0,a.jsx)(y.Select,{placeholder:"Select a guardrail provider",onChange:e=>{p(e),d.setFieldsValue({config:void 0}),v([]),w({})},disabled:!0,optionLabelProp:"label",children:Object.entries(S()).map(([e,t])=>(0,a.jsx)(ts,{value:e,label:t,children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[A[t]&&(0,a.jsx)("img",{src:A[t],alt:"",style:{height:"20px",width:"20px",marginRight:"8px",objectFit:"contain"},onError:e=>{e.currentTarget.style.display="none"}}),(0,a.jsx)("span",{children:t})]})},e))})}),(0,a.jsx)(h.Form.Item,{name:"mode",label:"Mode",tooltip:"How the guardrail should be applied",rules:[{required:!0,message:"Please select a mode"}],children:(0,a.jsx)(y.Select,{children:x?.supported_modes?.map(e=>(0,a.jsx)(ts,{value:e,children:e},e))||(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ts,{value:"pre_call",children:"pre_call"}),(0,a.jsx)(ts,{value:"post_call",children:"post_call"})]})})}),(0,a.jsx)(h.Form.Item,{name:"default_on",label:"Always On",tooltip:"If enabled, this guardrail will be applied to all requests by default",valuePropName:"checked",children:(0,a.jsx)(tl.Switch,{})}),(()=>{if(!m)return null;if("PresidioPII"===m)return x&&m&&"PresidioPII"===m?(0,a.jsx)(Q,{entities:x.supported_entities,actions:x.supported_actions,selectedEntities:_,selectedActions:N,onEntitySelect:C,onActionSelect:T,entityCategories:x.pii_entity_categories}):null;switch(m){case"Aporia":return(0,a.jsx)(h.Form.Item,{label:"Aporia Configuration",name:"config",tooltip:"JSON configuration for Aporia",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "api_key": "your_aporia_api_key", - "project_name": "your_project_name" -}`})});case"AimSecurity":return(0,a.jsx)(h.Form.Item,{label:"Aim Security Configuration",name:"config",tooltip:"JSON configuration for Aim Security",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "api_key": "your_aim_api_key" -}`})});case"Bedrock":return(0,a.jsx)(h.Form.Item,{label:"Amazon Bedrock Configuration",name:"config",tooltip:"JSON configuration for Amazon Bedrock guardrails",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "guardrail_id": "your_guardrail_id", - "guardrail_version": "your_guardrail_version" -}`})});case"GuardrailsAI":return(0,a.jsx)(h.Form.Item,{label:"Guardrails.ai Configuration",name:"config",tooltip:"JSON configuration for Guardrails.ai",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "api_key": "your_guardrails_api_key", - "guardrail_id": "your_guardrail_id" -}`})});case"LakeraAI":return(0,a.jsx)(h.Form.Item,{label:"Lakera AI Configuration",name:"config",tooltip:"JSON configuration for Lakera AI",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "api_key": "your_lakera_api_key" -}`})});case"PromptInjection":return(0,a.jsx)(h.Form.Item,{label:"Prompt Injection Configuration",name:"config",tooltip:"JSON configuration for prompt injection detection",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "threshold": 0.8 -}`})});default:return(0,a.jsx)(h.Form.Item,{label:"Custom Configuration",name:"config",tooltip:"JSON configuration for your custom guardrail",children:(0,a.jsx)(e$.Input.TextArea,{rows:4,placeholder:`{ - "key1": "value1", - "key2": "value2" -}`})})}})(),(0,a.jsxs)("div",{className:"flex justify-end space-x-2 mt-4",children:[(0,a.jsx)(s.Button,{variant:"secondary",onClick:t,children:"Cancel"}),(0,a.jsx)(s.Button,{onClick:O,loading:c,children:"Update Guardrail"})]})]})})};var tn=((l={}).DB="db",l.CONFIG="config",l);let to=({guardrailsList:e,isLoading:t,onDeleteClick:l,accessToken:i,onGuardrailUpdated:n,isAdmin:o=!1,onGuardrailClick:d})=>{let[c,u]=(0,r.useState)([{id:"created_at",desc:!0}]),[m,p]=(0,r.useState)(!1),[x,g]=(0,r.useState)(null),h=e=>e?new Date(e).toLocaleString():"-",f=[{header:"Guardrail ID",accessorKey:"guardrail_id",cell:e=>(0,a.jsx)(E.Tooltip,{title:String(e.getValue()||""),children:(0,a.jsx)(s.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate max-w-[200px]",onClick:()=>e.getValue()&&d(e.getValue()),children:e.getValue()?`${String(e.getValue()).slice(0,7)}...`:""})})},{header:"Name",accessorKey:"guardrail_name",cell:({row:e})=>{let t=e.original;return(0,a.jsx)(E.Tooltip,{title:t.guardrail_name,children:(0,a.jsx)("span",{className:"text-xs font-medium",children:t.guardrail_name||"-"})})}},{header:"Provider",accessorKey:"litellm_params.guardrail",cell:({row:e})=>{let{logo:t,displayName:l}=B(e.original.litellm_params.guardrail);return(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[t&&(0,a.jsx)("img",{src:t,alt:`${l} logo`,className:"w-4 h-4",onError:e=>{e.target.style.display="none"}}),(0,a.jsx)("span",{className:"text-xs",children:l})]})}},{header:"Mode",accessorKey:"litellm_params.mode",cell:({row:e})=>{let t=e.original;return(0,a.jsx)("span",{className:"text-xs",children:t.litellm_params.mode})}},{header:"Default On",accessorKey:"litellm_params.default_on",cell:({row:e})=>{let t=e.original;return(0,a.jsx)(e9.Badge,{color:t.litellm_params?.default_on?"green":"gray",className:"text-xs font-normal",size:"xs",children:t.litellm_params?.default_on?"Default On":"Default Off"})}},{header:"Created At",accessorKey:"created_at",cell:({row:e})=>{let t=e.original;return(0,a.jsx)(E.Tooltip,{title:t.created_at,children:(0,a.jsx)("span",{className:"text-xs",children:h(t.created_at)})})}},{header:"Updated At",accessorKey:"updated_at",cell:({row:e})=>{let t=e.original;return(0,a.jsx)(E.Tooltip,{title:t.updated_at,children:(0,a.jsx)("span",{className:"text-xs",children:h(t.updated_at)})})}},{id:"actions",header:"Actions",cell:({row:e})=>{let t=e.original,r=t.guardrail_definition_location===tn.CONFIG;return(0,a.jsx)("div",{className:"flex space-x-2",children:r?(0,a.jsx)(E.Tooltip,{title:"Config guardrail cannot be deleted on the dashboard. Please delete it from the config file.",children:(0,a.jsx)(e5.Icon,{"data-testid":"config-delete-icon",icon:e8.TrashIcon,size:"sm",className:"cursor-not-allowed text-gray-400",title:"Config guardrail cannot be deleted on the dashboard. Please delete it from the config file.","aria-label":"Delete guardrail (config)"})}):(0,a.jsx)(E.Tooltip,{title:"Delete guardrail",children:(0,a.jsx)(e5.Icon,{icon:e8.TrashIcon,size:"sm",onClick:()=>t.guardrail_id&&l(t.guardrail_id,t.guardrail_name||"Unnamed Guardrail"),className:"cursor-pointer hover:text-red-500"})})})}}],y=(0,te.useReactTable)({data:e,columns:f,state:{sorting:c},onSortingChange:u,getCoreRowModel:(0,tt.getCoreRowModel)(),getSortedRowModel:(0,tt.getSortedRowModel)(),enableSorting:!0});return(0,a.jsxs)("div",{className:"rounded-lg custom-border relative",children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)(eZ.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,a.jsx)(e1.TableHead,{children:y.getHeaderGroups().map(e=>(0,a.jsx)(e4.TableRow,{children:e.headers.map(e=>(0,a.jsx)(e2.TableHeaderCell,{className:`py-1 h-8 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,onClick:e.column.getToggleSortingHandler(),children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,te.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&(0,a.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,a.jsx)(e3.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,a.jsx)(e7.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,a.jsx)(e6.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,a.jsx)(eX.TableBody,{children:t?(0,a.jsx)(e4.TableRow,{children:(0,a.jsx)(e0.TableCell,{colSpan:f.length,className:"h-8 text-center",children:(0,a.jsx)("div",{className:"text-center text-gray-500",children:(0,a.jsx)("p",{children:"Loading..."})})})}):e.length>0?y.getRowModel().rows.map(e=>(0,a.jsx)(e4.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,a.jsx)(e0.TableCell,{className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,children:(0,te.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,a.jsx)(e4.TableRow,{children:(0,a.jsx)(e0.TableCell,{colSpan:f.length,className:"h-8 text-center",children:(0,a.jsx)("div",{className:"text-center text-gray-500",children:(0,a.jsx)("p",{children:"No guardrails found"})})})})})]})}),x&&(0,a.jsx)(ti,{visible:m,onClose:()=>p(!1),accessToken:i,onSuccess:()=>{p(!1),g(null),n()},guardrailId:x.guardrail_id||"",initialValues:{guardrail_name:x.guardrail_name||"",provider:Object.keys(k).find(e=>k[e]===x?.litellm_params.guardrail)||"",mode:x.litellm_params.mode,default_on:x.litellm_params.default_on,pii_entities_config:x.litellm_params.pii_entities_config,...x.guardrail_info}})]})};var td=e.i(708347),tc=e.i(629569),tu=e.i(350967),R=R;let tm=({patterns:e,blockedWords:t,readOnly:l=!0,onPatternActionChange:r,onPatternRemove:s,onBlockedWordUpdate:i,onBlockedWordRemove:n})=>{if(0===e.length&&0===t.length)return null;let o=()=>{};return(0,a.jsxs)(a.Fragment,{children:[e.length>0&&(0,a.jsxs)(eM.Card,{className:"mt-6",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,a.jsx)(eR.Text,{className:"text-lg font-semibold",children:"Pattern Detection"}),(0,a.jsxs)(e9.Badge,{color:"blue",children:[e.length," patterns configured"]})]}),(0,a.jsx)(eN,{patterns:e,onActionChange:l?o:r||o,onRemove:l?o:s||o})]}),t.length>0&&(0,a.jsxs)(eM.Card,{className:"mt-6",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,a.jsx)(eR.Text,{className:"text-lg font-semibold",children:"Blocked Keywords"}),(0,a.jsxs)(e9.Badge,{color:"blue",children:[t.length," keywords configured"]})]}),(0,a.jsx)(eS,{keywords:t,onActionChange:l?o:i||o,onRemove:l?o:n||o})]})]})},tp=({guardrailData:e,guardrailSettings:t,isEditing:l,accessToken:s,onDataChange:i,onUnsavedChanges:n})=>{let[o,d]=(0,r.useState)([]),[c,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),[x,g]=(0,r.useState)([]);(0,r.useEffect)(()=>{if(e?.litellm_params?.patterns){let t=e.litellm_params.patterns.map((e,t)=>({id:`pattern-${t}`,type:"prebuilt"===e.pattern_type?"prebuilt":"custom",name:e.pattern_name||e.name,display_name:e.display_name,pattern:e.pattern,action:e.action||"BLOCK"}));d(t),p(t)}else d([]),p([]);if(e?.litellm_params?.blocked_words){let t=e.litellm_params.blocked_words.map((e,t)=>({id:`word-${t}`,keyword:e.keyword,action:e.action||"BLOCK",description:e.description}));u(t),g(t)}else u([]),g([])},[e]),(0,r.useEffect)(()=>{i&&i(o,c)},[o,c,i]);let h=r.default.useMemo(()=>{let e=JSON.stringify(o)!==JSON.stringify(m),t=JSON.stringify(c)!==JSON.stringify(x);return e||t},[o,c,m,x]);return((0,r.useEffect)(()=>{l&&n&&n(h)},[h,l,n]),e?.litellm_params?.guardrail!=="litellm_content_filter")?null:l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ez.Divider,{orientation:"left",children:"Content Filter Configuration"}),h&&(0,a.jsx)("div",{className:"mb-4 px-4 py-3 bg-yellow-50 border border-yellow-200 rounded-md",children:(0,a.jsx)("p",{className:"text-sm text-yellow-800 font-medium",children:'⚠️ You have unsaved changes to patterns or keywords. Remember to click "Save Changes" at the bottom.'})}),(0,a.jsx)("div",{className:"mb-6",children:t&&t.content_filter_settings&&(0,a.jsx)(eE,{prebuiltPatterns:t.content_filter_settings.prebuilt_patterns||[],categories:t.content_filter_settings.pattern_categories||[],selectedPatterns:o,blockedWords:c,onPatternAdd:e=>d([...o,e]),onPatternRemove:e=>d(o.filter(t=>t.id!==e)),onPatternActionChange:(e,t)=>d(o.map(l=>l.id===e?{...l,action:t}:l)),onBlockedWordAdd:e=>u([...c,e]),onBlockedWordRemove:e=>u(c.filter(t=>t.id!==e)),onBlockedWordUpdate:(e,t,l)=>u(c.map(a=>a.id===e?{...a,[t]:l}:a)),onFileUpload:e=>{console.log("File uploaded:",e)},accessToken:s})})]}):(0,a.jsx)(tm,{patterns:o,blockedWords:c,readOnly:!0})};var tx=e.i(788191),tg=e.i(245704);let th={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var tf=r.forwardRef(function(e,t){return r.createElement(D.default,(0,G.default)({},e,{ref:t,icon:th}))});let ty={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z"}}]},name:"caret-right",theme:"outlined"};var tj=r.forwardRef(function(e,t){return r.createElement(D.default,(0,G.default)({},e,{ref:t,icon:ty}))}),t_=e.i(987432);let{Panel:tv}=ek.Collapse,{TextArea:tb}=e$.Input,tN={empty:{name:"Empty Template",code:`async def apply_guardrail(inputs, request_data, input_type): - # inputs: {texts, images, tools, tool_calls, structured_messages, model} - # request_data: {model, user_id, team_id, end_user_id, metadata} - # input_type: "request" or "response" - return allow()`},blockSSN:{name:"Block SSN",code:`def apply_guardrail(inputs, request_data, input_type): - for text in inputs["texts"]: - if regex_match(text, r"\\d{3}-\\d{2}-\\d{4}"): - return block("SSN detected") - return allow()`},redactEmail:{name:"Redact Emails",code:`def apply_guardrail(inputs, request_data, input_type): - pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}" - modified = [] - for text in inputs["texts"]: - modified.append(regex_replace(text, pattern, "[EMAIL REDACTED]")) - return modify(texts=modified)`},blockSQL:{name:"Block SQL Injection",code:`def apply_guardrail(inputs, request_data, input_type): - if input_type != "request": - return allow() - for text in inputs["texts"]: - if contains_code_language(text, ["sql"]): - return block("SQL code not allowed") - return allow()`},validateJSON:{name:"Validate JSON",code:`def apply_guardrail(inputs, request_data, input_type): - if input_type != "response": - return allow() - - schema = {"type": "object", "required": ["name", "value"]} - - for text in inputs["texts"]: - obj = json_parse(text) - if obj is None: - return block("Invalid JSON response") - if not json_schema_valid(obj, schema): - return block("Response missing required fields") - return allow()`},externalAPI:{name:"External API Check (async)",code:`async def apply_guardrail(inputs, request_data, input_type): - # Call an external moderation API (async for non-blocking) - for text in inputs["texts"]: - response = await http_post( - "https://api.example.com/moderate", - body={"text": text, "user_id": request_data["user_id"]}, - headers={"Authorization": "Bearer YOUR_API_KEY"}, - timeout=10 - ) - - if not response["success"]: - # API call failed, allow by default or block - return allow() - - if response["body"].get("flagged"): - return block(response["body"].get("reason", "Content flagged")) - - return allow()`}},tw={"Return Values":[{name:"allow()",desc:"Let request/response through"},{name:"block(reason)",desc:"Reject with message"},{name:"modify(texts=[], images=[], tool_calls=[])",desc:"Transform content"}],"HTTP Requests (async)":[{name:"await http_request(url, method, headers, body)",desc:"Make async HTTP request"},{name:"await http_get(url, headers)",desc:"Async GET request"},{name:"await http_post(url, body, headers)",desc:"Async POST request"}],"Regex Functions":[{name:"regex_match(text, pattern)",desc:"Returns True if pattern found"},{name:"regex_replace(text, pattern, replacement)",desc:"Replace all matches"},{name:"regex_find_all(text, pattern)",desc:"Return list of matches"}],"JSON Functions":[{name:"json_parse(text)",desc:"Parse JSON string, returns None on error"},{name:"json_stringify(obj)",desc:"Convert to JSON string"},{name:"json_schema_valid(obj, schema)",desc:"Validate against JSON schema"}],"URL Functions":[{name:"extract_urls(text)",desc:"Extract all URLs from text"},{name:"is_valid_url(url)",desc:"Check if URL is valid"},{name:"all_urls_valid(text)",desc:"Check all URLs in text are valid"}],"Code Detection":[{name:"detect_code(text)",desc:"Returns True if code detected"},{name:"detect_code_languages(text)",desc:"Returns list of detected languages"},{name:'contains_code_language(text, ["sql"])',desc:"Check for specific languages"}],"Text Utilities":[{name:"contains(text, substring)",desc:"Check if substring exists"},{name:"contains_any(text, [substr1, substr2])",desc:"Check if any substring exists"},{name:"word_count(text)",desc:"Count words"},{name:"char_count(text)",desc:"Count characters"},{name:"lower(text) / upper(text) / trim(text)",desc:"String transforms"}]},tC=[{value:"pre_call",label:"pre_call (Request)"},{value:"post_call",label:"post_call (Response)"},{value:"during_call",label:"during_call (Parallel)"},{value:"logging_only",label:"logging_only"},{value:"pre_mcp_call",label:"pre_mcp_call (Before MCP Tool Call)"},{value:"post_mcp_call",label:"post_mcp_call (After MCP Tool Call)"},{value:"during_mcp_call",label:"during_mcp_call (During MCP Tool Call)"}],tS=({visible:e,onClose:t,onSuccess:l,accessToken:i,editData:n})=>{let o=!!n,[d,c]=(0,r.useState)(""),[u,m]=(0,r.useState)(["pre_call"]),[p,h]=(0,r.useState)(!1),[f,_]=(0,r.useState)("empty"),[v,N]=(0,r.useState)(tN.empty.code),[w,C]=(0,r.useState)(!1),[S,k]=(0,r.useState)(!1),[T,O]=(0,r.useState)(!1),I={texts:["Hello, my SSN is 123-45-6789"],images:[],tools:[{type:"function",function:{name:"get_weather",description:"Get the current weather in a location",parameters:{type:"object",properties:{location:{type:"string",description:"City name"}},required:["location"]}}}],tool_calls:[],structured_messages:[{role:"system",content:"You are a helpful assistant."},{role:"user",content:"Hello, my SSN is 123-45-6789"}],model:"gpt-4"},P={texts:["The weather in San Francisco is 72°F and sunny."],images:[],tools:[],tool_calls:[{id:"call_abc123",type:"function",function:{name:"get_weather",arguments:'{"location": "San Francisco"}'}}],structured_messages:[],model:"gpt-4"},[A,B]=(0,r.useState)(JSON.stringify(I,null,2)),[L,F]=(0,r.useState)(null),[E,M]=(0,r.useState)(null),R=(0,r.useRef)(null),z=e=>null==e?["pre_call"]:Array.isArray(e)?e.length?e:["pre_call"]:[e];(0,r.useEffect)(()=>{e&&(n?(c(n.guardrail_name||""),m(z(n.litellm_params?.mode)),h(n.litellm_params?.default_on||!1),N(n.litellm_params?.custom_code||tN.empty.code),_("")):(c(""),m(["pre_call"]),h(!1),_("empty"),N(tN.empty.code)),F(null),O(!1))},[e,n]);let G=async e=>{try{await navigator.clipboard.writeText(e),M(e),setTimeout(()=>M(null),2e3)}catch(e){console.error("Failed to copy:",e)}},$=async()=>{if(!d.trim())return void er.default.fromBackend("Please enter a guardrail name");if(!v.trim())return void er.default.fromBackend("Please enter custom code");if(!i)return void er.default.fromBackend("No access token available");C(!0);try{if(o&&n){let e={litellm_params:{custom_code:v}};d!==n.guardrail_name&&(e.guardrail_name=d);let t=z(n.litellm_params?.mode);(u.length!==t.length||u.some((e,l)=>e!==t[l]))&&(e.litellm_params.mode=u),p!==n.litellm_params?.default_on&&(e.litellm_params.default_on=p),await (0,g.updateGuardrailCall)(i,n.guardrail_id,e),er.default.success("Custom code guardrail updated successfully")}else await (0,g.createGuardrailCall)(i,{guardrail_name:d,litellm_params:{guardrail:"custom_code",mode:u,default_on:p,custom_code:v},guardrail_info:{}}),er.default.success("Custom code guardrail created successfully");l(),t()}catch(e){console.error("Failed to save guardrail:",e),er.default.fromBackend(`Failed to ${o?"update":"create"} guardrail: `+(e instanceof Error?e.message:String(e)))}finally{C(!1)}},D=async()=>{if(!i)return void F({error:"No access token available"});k(!0),F(null);try{let e;try{e=JSON.parse(A)}catch(e){F({error:"Invalid test input JSON"}),k(!1);return}e.texts||(e.texts=[]);let t=["pre_call","pre_mcp_call"],l=["post_call","post_mcp_call"],a=u.some(e=>t.includes(e))?"request":u.some(e=>l.includes(e))?"response":"request",r=await (0,g.testCustomCodeGuardrail)(i,{custom_code:v,test_input:e,input_type:a,request_data:{model:"test-model",metadata:{}}});r.success&&r.result?F(r.result):r.error?F({error:r.error,error_type:r.error_type}):F({error:"Unknown error occurred"})}catch(e){console.error("Failed to test custom code:",e),F({error:e instanceof Error?e.message:"Failed to test custom code"})}finally{k(!1)}},K=v.split("\n").length;return(0,a.jsxs)(j.Modal,{open:e,onCancel:t,footer:null,width:1400,className:"custom-code-modal",closable:!0,destroyOnClose:!0,children:[(0,a.jsxs)("div",{className:"flex flex-col h-[80vh]",children:[(0,a.jsxs)("div",{className:"pb-4 border-b border-gray-200",children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:o?"Edit Custom Guardrail":"Create Custom Guardrail"}),(0,a.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Define custom logic using Python-like syntax"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-4 py-4 border-b border-gray-100",children:[(0,a.jsxs)("div",{className:"flex-1 max-w-[200px]",children:[(0,a.jsx)("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"Guardrail Name"}),(0,a.jsx)(b.TextInput,{value:d,onValueChange:c,placeholder:"e.g., block-pii-custom"})]}),(0,a.jsxs)("div",{className:"w-[280px]",children:[(0,a.jsx)("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"Mode (can select multiple)"}),(0,a.jsx)(y.Select,{mode:"multiple",value:u,onChange:m,options:tC,className:"w-full",size:"middle",placeholder:"Select modes"})]}),(0,a.jsxs)("div",{className:"w-[180px]",children:[(0,a.jsx)("label",{className:"block text-xs font-medium text-gray-600 mb-1",children:"Template"}),(0,a.jsx)(y.Select,{value:f,onChange:e=>{_(e),N(tN[e].code)},className:"w-full",size:"middle",children:Object.entries(tN).map(([e,t])=>(0,a.jsx)(y.Select.Option,{value:e,children:t.name},e))})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 pt-5",children:[(0,a.jsx)("span",{className:"text-sm text-gray-600",children:"Default On"}),(0,a.jsx)(tl.Switch,{checked:p,onChange:h})]})]}),(0,a.jsxs)("div",{className:"flex flex-1 overflow-hidden mt-4 gap-6",children:[(0,a.jsxs)("div",{className:"flex-[2] flex flex-col min-w-0 overflow-y-auto",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2 flex-shrink-0",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:"Python Logic"}),(0,a.jsx)("span",{className:"text-xs text-gray-400",children:"Restricted environment (no imports)"})]}),(0,a.jsxs)("div",{className:"relative rounded-lg overflow-hidden border border-gray-700 bg-[#1e1e1e] flex-shrink-0",style:{minHeight:"300px",maxHeight:"400px"},children:[(0,a.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-12 bg-[#1e1e1e] border-r border-gray-700 text-right pr-3 pt-3 select-none overflow-hidden",style:{fontFamily:"'Fira Code', 'Monaco', 'Consolas', monospace",fontSize:"14px",lineHeight:"1.6"},children:Array.from({length:Math.max(K,20)},(e,t)=>(0,a.jsx)("div",{className:"text-gray-500 h-[22.4px]",children:t+1},t+1))}),(0,a.jsx)("textarea",{ref:R,value:v,onChange:e=>N(e.target.value),onKeyDown:e=>{if("Tab"===e.key){e.preventDefault();let t=e.currentTarget,l=t.selectionStart,a=t.selectionEnd;N(v.substring(0,l)+" "+v.substring(a)),setTimeout(()=>{t.selectionStart=t.selectionEnd=l+4},0)}},spellCheck:!1,className:"w-full h-full pl-14 pr-4 pt-3 pb-3 resize-none focus:outline-none bg-transparent text-gray-200",style:{fontFamily:"'Fira Code', 'Monaco', 'Consolas', monospace",fontSize:"14px",lineHeight:"1.6",tabSize:4}})]}),(0,a.jsx)(ek.Collapse,{activeKey:T?["test"]:[],onChange:e=>O(e.includes("test")),className:"mt-3 bg-white border border-gray-200 rounded-lg flex-shrink-0",expandIcon:({isActive:e})=>(0,a.jsx)(tj,{rotate:90*!!e}),children:(0,a.jsx)(tv,{header:(0,a.jsxs)("span",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,a.jsx)(tx.PlayCircleOutlined,{className:"text-blue-500"}),"Test Your Guardrail"]}),children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("label",{className:"block text-xs font-medium text-gray-600",children:"Test Input (JSON)"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"Load example:"}),(0,a.jsx)("button",{type:"button",onClick:()=>B(JSON.stringify(I,null,2)),className:"px-2 py-1 text-xs rounded border border-orange-200 bg-orange-50 text-orange-700 hover:bg-orange-100 transition-colors",children:"Pre-call"}),(0,a.jsx)("button",{type:"button",onClick:()=>B(JSON.stringify(P,null,2)),className:"px-2 py-1 text-xs rounded border border-green-200 bg-green-50 text-green-700 hover:bg-green-100 transition-colors",children:"Post-call"})]})]}),(0,a.jsx)("div",{className:"mb-2 p-2 bg-gray-50 rounded text-xs text-gray-600 border border-gray-200",children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"texts"}),": Message content (always)"]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"images"}),": Base64 images (vision)"]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"tools"}),": Tool definitions ",(0,a.jsx)("span",{className:"text-orange-600",children:"(pre_call)"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"tool_calls"}),": LLM tool calls ",(0,a.jsx)("span",{className:"text-green-600",children:"(post_call)"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"structured_messages"}),": Full messages ",(0,a.jsx)("span",{className:"text-orange-600",children:"(pre_call)"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"model"}),": Model name (always)"]})]})}),(0,a.jsx)(tb,{value:A,onChange:e=>B(e.target.value),rows:8,className:"font-mono text-xs",placeholder:'{"texts": ["test message"], ...}'})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(s.Button,{size:"xs",onClick:D,disabled:S,icon:tx.PlayCircleOutlined,children:S?"Running...":"Run Test"}),L&&(0,a.jsx)("div",{className:`flex items-center gap-2 text-sm ${L.error?"text-red-600":"allow"===L.action?"text-green-600":"block"===L.action?"text-orange-600":"text-blue-600"}`,children:L.error?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tf,{}),(0,a.jsxs)("span",{children:[L.error_type&&(0,a.jsxs)("span",{className:"font-medium",children:["[",L.error_type,"] "]}),L.error]})]}):"allow"===L.action?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tg.CheckCircleOutlined,{})," Allowed"]}):"block"===L.action?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tf,{})," Blocked: ",L.reason]}):"modify"===L.action?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tg.CheckCircleOutlined,{})," Modified",L.texts&&L.texts.length>0&&(0,a.jsxs)("span",{className:"text-xs text-gray-500 ml-1",children:["→ ",L.texts[0].substring(0,50),L.texts[0].length>50?"...":""]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(tg.CheckCircleOutlined,{})," ",L.action||"Unknown"]})})]})]})},"test")})]}),(0,a.jsxs)("div",{className:"w-[300px] flex-shrink-0 overflow-auto border-l border-gray-200 pl-6",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,a.jsx)(x.CodeOutlined,{className:"text-blue-500"}),(0,a.jsx)("span",{className:"font-semibold text-gray-700",children:"Available Primitives"})]}),(0,a.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Click to copy functions to clipboard"}),(0,a.jsx)(ek.Collapse,{defaultActiveKey:["Return Values"],className:"primitives-collapse bg-transparent border-0",expandIconPosition:"end",children:Object.entries(tw).map(([e,t])=>(0,a.jsx)(tv,{header:(0,a.jsx)("span",{className:"text-sm font-medium text-gray-700",children:e}),className:"bg-white mb-2 rounded-lg border border-gray-200",children:(0,a.jsx)("div",{className:"space-y-2",children:t.map(e=>(0,a.jsx)("button",{onClick:()=>G(e.name),className:`w-full text-left px-2 py-2 rounded transition-colors ${E===e.name?"bg-green-100":"bg-gray-50 hover:bg-blue-50"}`,children:E===e.name?(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs font-mono text-green-700",children:[(0,a.jsx)(tg.CheckCircleOutlined,{})," Copied!"]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"text-xs font-mono text-gray-800",children:e.name}),(0,a.jsx)("div",{className:"text-[10px] text-gray-500 mt-0.5",children:e.desc})]})},e.name))})},e))})]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between pt-4 mt-4 border-t border-gray-200",children:[(0,a.jsx)("span",{className:"text-xs text-gray-400",children:"Changes are auto-saved to local draft"}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(s.Button,{variant:"secondary",onClick:t,children:"Cancel"}),(0,a.jsx)(s.Button,{onClick:$,loading:w,disabled:w||!d.trim(),icon:t_.SaveOutlined,children:o?"Update Guardrail":"Save Guardrail"})]})]})]}),(0,a.jsx)("style",{children:` - .custom-code-modal .ant-modal-content { - padding: 24px; - } - .custom-code-modal .ant-modal-close { - top: 20px; - right: 20px; - } - .primitives-collapse .ant-collapse-item { - border: none !important; - } - .primitives-collapse .ant-collapse-header { - padding: 8px 12px !important; - } - .primitives-collapse .ant-collapse-content-box { - padding: 8px 12px !important; - } - `})]})};var tk=e.i(530212),tT=e.i(500330),tO=e.i(678784),tI=e.i(118366);let tP=({guardrailId:e,onClose:t,accessToken:l,isAdmin:u})=>{let[m,p]=(0,r.useState)(null),[f,j]=(0,r.useState)(null),[_,v]=(0,r.useState)(!0),[N,w]=(0,r.useState)(!1),[C]=h.Form.useForm(),[S,T]=(0,r.useState)([]),[O,I]=(0,r.useState)({}),[P,A]=(0,r.useState)(null),[F,M]=(0,r.useState)({}),[G,$]=(0,r.useState)(!1),D={rules:[],default_action:"deny",on_disallowed_action:"block",violation_message_template:""},[K,J]=(0,r.useState)(D),[q,U]=(0,r.useState)(!1),[V,H]=(0,r.useState)(!1),Y=r.default.useRef({patterns:[],blockedWords:[]}),W=(0,r.useCallback)((e,t)=>{Y.current={patterns:e,blockedWords:t}},[]),Z=async()=>{try{if(v(!0),!l)return;let t=await (0,g.getGuardrailInfo)(l,e);if(p(t),t.litellm_params?.pii_entities_config){let e=t.litellm_params.pii_entities_config;if(T([]),I({}),Object.keys(e).length>0){let t=[],l={};Object.entries(e).forEach(([e,a])=>{t.push(e),l[e]="string"==typeof a?a:"MASK"}),T(t),I(l)}}else T([]),I({})}catch(e){er.default.fromBackend("Failed to load guardrail information"),console.error("Error fetching guardrail info:",e)}finally{v(!1)}},X=async()=>{try{if(!l)return;let e=await (0,g.getGuardrailProviderSpecificParams)(l);j(e)}catch(e){console.error("Error fetching guardrail provider specific params:",e)}},et=async()=>{try{if(!l)return;let e=await (0,g.getGuardrailUISettings)(l);A(e)}catch(e){console.error("Error fetching guardrail UI settings:",e)}};(0,r.useEffect)(()=>{X()},[l]),(0,r.useEffect)(()=>{Z(),et()},[e,l]),(0,r.useEffect)(()=>{m&&C&&C.setFieldsValue({guardrail_name:m.guardrail_name,...m.litellm_params,guardrail_info:m.guardrail_info?JSON.stringify(m.guardrail_info,null,2):"",...m.litellm_params?.optional_params&&{optional_params:m.litellm_params.optional_params}})},[m,f,C]);let el=(0,r.useCallback)(()=>{m?.litellm_params?.guardrail==="tool_permission"?J({rules:m.litellm_params?.rules||[],default_action:(m.litellm_params?.default_action||"deny").toLowerCase(),on_disallowed_action:(m.litellm_params?.on_disallowed_action||"block").toLowerCase(),violation_message_template:m.litellm_params?.violation_message_template||""}):J(D),U(!1)},[m]);(0,r.useEffect)(()=>{el()},[el]);let es=async t=>{try{if(!l)return;let a={litellm_params:{}};t.guardrail_name!==m.guardrail_name&&(a.guardrail_name=t.guardrail_name),t.default_on!==m.litellm_params?.default_on&&(a.litellm_params.default_on=t.default_on);let r=m.guardrail_info,s=t.guardrail_info?JSON.parse(t.guardrail_info):void 0;JSON.stringify(r)!==JSON.stringify(s)&&(a.guardrail_info=s);let i=m.litellm_params?.pii_entities_config||{},n={};if(S.forEach(e=>{n[e]=O[e]||"MASK"}),JSON.stringify(i)!==JSON.stringify(n)&&(a.litellm_params.pii_entities_config=n),m.litellm_params?.guardrail==="litellm_content_filter"&&G){let e,t;m.litellm_params?.patterns,m.litellm_params?.blocked_words;let l=(e=Y.current.patterns||[],t=Y.current.blockedWords||[],{patterns:e.map(e=>({pattern_type:"prebuilt"===e.type?"prebuilt":"regex",pattern_name:"prebuilt"===e.type?e.name:void 0,pattern:"custom"===e.type?e.pattern:void 0,name:e.name,action:e.action})),blocked_words:t.map(e=>({keyword:e.keyword,action:e.action,description:e.description}))});a.litellm_params.patterns=l.patterns,a.litellm_params.blocked_words=l.blocked_words}if(m.litellm_params?.guardrail==="tool_permission"){let e=m.litellm_params?.rules||[],t=K.rules||[],l=JSON.stringify(e)!==JSON.stringify(t),r=(m.litellm_params?.default_action||"deny").toLowerCase(),s=(K.default_action||"deny").toLowerCase(),i=r!==s,n=(m.litellm_params?.on_disallowed_action||"block").toLowerCase(),o=(K.on_disallowed_action||"block").toLowerCase(),d=n!==o,c=m.litellm_params?.violation_message_template||"",u=K.violation_message_template||"",p=c!==u;(q||l||i||d||p)&&(a.litellm_params.rules=t,a.litellm_params.default_action=s,a.litellm_params.on_disallowed_action=o,a.litellm_params.violation_message_template=u||null)}let o=Object.keys(k).find(e=>k[e]===m.litellm_params?.guardrail);console.log("values: ",JSON.stringify(t)),console.log("currentProvider: ",o);let d=m.litellm_params?.guardrail==="tool_permission";if(f&&o&&!d){let e=f[k[o]?.toLowerCase()]||{},l=new Set;console.log("providerSpecificParams: ",JSON.stringify(e)),Object.keys(e).forEach(e=>{"optional_params"!==e&&l.add(e)}),e.optional_params&&e.optional_params.fields&&Object.keys(e.optional_params.fields).forEach(e=>{l.add(e)}),console.log("allowedParams: ",l),l.forEach(e=>{if("patterns"===e||"blocked_words"===e)return;let l=t[e];(null==l||""===l)&&(l=t.optional_params?.[e]);let r=m.litellm_params?.[e];JSON.stringify(l)!==JSON.stringify(r)&&(null!=l&&""!==l?a.litellm_params[e]=l:null!=r&&""!==r&&(a.litellm_params[e]=null))})}if(0===Object.keys(a.litellm_params).length&&delete a.litellm_params,0===Object.keys(a).length){er.default.info("No changes detected"),w(!1);return}await (0,g.updateGuardrailCall)(l,e,a),er.default.success("Guardrail updated successfully"),$(!1),Z(),w(!1)}catch(e){console.error("Error updating guardrail:",e),er.default.fromBackend("Failed to update guardrail")}};if(_)return(0,a.jsx)("div",{className:"p-4",children:"Loading..."});if(!m)return(0,a.jsx)("div",{className:"p-4",children:"Guardrail not found"});let ei=e=>e?new Date(e).toLocaleString():"-",{logo:en,displayName:eo}=B(m.litellm_params?.guardrail||""),ed=async(e,t)=>{await (0,tT.copyToClipboard)(e)&&(M(e=>({...e,[t]:!0})),setTimeout(()=>{M(e=>({...e,[t]:!1}))},2e3))},ec="config"===m.guardrail_definition_location;return(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(s.Button,{icon:tk.ArrowLeftIcon,variant:"light",onClick:t,className:"mb-4",children:"Back to Guardrails"}),(0,a.jsx)(tc.Title,{children:m.guardrail_name||"Unnamed Guardrail"}),(0,a.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,a.jsx)(eR.Text,{className:"text-gray-500 font-mono",children:m.guardrail_id}),(0,a.jsx)(L.Button,{type:"text",size:"small",icon:F["guardrail-id"]?(0,a.jsx)(tO.CheckIcon,{size:12}):(0,a.jsx)(tI.CopyIcon,{size:12}),onClick:()=>ed(m.guardrail_id,"guardrail-id"),className:`left-2 z-10 transition-all duration-200 ${F["guardrail-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,a.jsxs)(i.TabGroup,{children:[(0,a.jsxs)(n.TabList,{className:"mb-4",children:[(0,a.jsx)(o.Tab,{children:"Overview"},"overview"),u?(0,a.jsx)(o.Tab,{children:"Settings"},"settings"):(0,a.jsx)(a.Fragment,{})]}),(0,a.jsxs)(d.TabPanels,{children:[(0,a.jsxs)(c.TabPanel,{children:[(0,a.jsxs)(tu.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,a.jsxs)(eM.Card,{children:[(0,a.jsx)(eR.Text,{children:"Provider"}),(0,a.jsxs)("div",{className:"mt-2 flex items-center space-x-2",children:[en&&(0,a.jsx)("img",{src:en,alt:`${eo} logo`,className:"w-6 h-6",onError:e=>{e.target.style.display="none"}}),(0,a.jsx)(tc.Title,{children:eo})]})]}),(0,a.jsxs)(eM.Card,{children:[(0,a.jsx)(eR.Text,{children:"Mode"}),(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)(tc.Title,{children:m.litellm_params?.mode||"-"}),(0,a.jsx)(e9.Badge,{color:m.litellm_params?.default_on?"green":"gray",children:m.litellm_params?.default_on?"Default On":"Default Off"})]})]}),(0,a.jsxs)(eM.Card,{children:[(0,a.jsx)(eR.Text,{children:"Created At"}),(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)(tc.Title,{children:ei(m.created_at)}),(0,a.jsxs)(eR.Text,{children:["Last Updated: ",ei(m.updated_at)]})]})]})]}),m.litellm_params?.pii_entities_config&&Object.keys(m.litellm_params.pii_entities_config).length>0&&(0,a.jsx)(eM.Card,{className:"mt-6",children:(0,a.jsxs)("div",{className:"flex justify-between items-center",children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"PII Protection"}),(0,a.jsxs)(e9.Badge,{color:"blue",children:[Object.keys(m.litellm_params.pii_entities_config).length," PII entities configured"]})]})}),m.litellm_params?.pii_entities_config&&Object.keys(m.litellm_params.pii_entities_config).length>0&&(0,a.jsxs)(eM.Card,{className:"mt-6",children:[(0,a.jsx)(eR.Text,{className:"mb-4 text-lg font-semibold",children:"PII Entity Configuration"}),(0,a.jsxs)("div",{className:"border rounded-lg overflow-hidden shadow-sm",children:[(0,a.jsxs)("div",{className:"bg-gray-50 px-5 py-3 border-b flex",children:[(0,a.jsx)(eR.Text,{className:"flex-1 font-semibold text-gray-700",children:"Entity Type"}),(0,a.jsx)(eR.Text,{className:"flex-1 font-semibold text-gray-700",children:"Configuration"})]}),(0,a.jsx)("div",{className:"max-h-[400px] overflow-y-auto",children:Object.entries(m.litellm_params?.pii_entities_config).map(([e,t])=>(0,a.jsxs)("div",{className:"px-5 py-3 flex border-b hover:bg-gray-50 transition-colors",children:[(0,a.jsx)(eR.Text,{className:"flex-1 font-medium text-gray-900",children:e}),(0,a.jsx)(eR.Text,{className:"flex-1",children:(0,a.jsxs)("span",{className:`inline-flex items-center gap-1.5 ${"MASK"===t?"text-blue-600":"text-red-600"}`,children:["MASK"===t?(0,a.jsx)(R.default,{}):(0,a.jsx)(z.StopOutlined,{}),String(t)]})})]},e))})]})]}),m.litellm_params?.guardrail==="tool_permission"&&(0,a.jsx)(eM.Card,{className:"mt-6",children:(0,a.jsx)(eJ,{value:K,disabled:!0})}),m.litellm_params?.guardrail==="custom_code"&&m.litellm_params?.custom_code&&(0,a.jsxs)(eM.Card,{className:"mt-6",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(x.CodeOutlined,{className:"text-blue-500"}),(0,a.jsx)(eR.Text,{className:"font-medium text-lg",children:"Custom Code"})]}),u&&!ec&&(0,a.jsx)(s.Button,{size:"xs",variant:"secondary",icon:x.CodeOutlined,onClick:()=>H(!0),children:"Edit Code"})]}),(0,a.jsx)("div",{className:"relative rounded-lg overflow-hidden border border-gray-700 bg-[#1e1e1e]",children:(0,a.jsx)("pre",{className:"p-4 text-sm text-gray-200 overflow-x-auto",style:{fontFamily:"'Fira Code', 'Monaco', 'Consolas', monospace"},children:(0,a.jsx)("code",{children:m.litellm_params.custom_code})})})]}),(0,a.jsx)(tp,{guardrailData:m,guardrailSettings:P,isEditing:!1,accessToken:l})]}),u&&(0,a.jsx)(c.TabPanel,{children:(0,a.jsxs)(eM.Card,{children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,a.jsx)(tc.Title,{children:"Guardrail Settings"}),ec&&(0,a.jsx)(E.Tooltip,{title:"Guardrail is defined in the config file and cannot be edited.",children:(0,a.jsx)(eD.InfoCircleOutlined,{})}),!N&&!ec&&(m.litellm_params?.guardrail==="custom_code"?(0,a.jsx)(s.Button,{icon:x.CodeOutlined,onClick:()=>H(!0),children:"Edit Code"}):(0,a.jsx)(s.Button,{onClick:()=>w(!0),children:"Edit Settings"}))]}),N?(0,a.jsxs)(h.Form,{form:C,onFinish:es,initialValues:{guardrail_name:m.guardrail_name,...m.litellm_params,guardrail_info:m.guardrail_info?JSON.stringify(m.guardrail_info,null,2):"",...m.litellm_params?.optional_params&&{optional_params:m.litellm_params.optional_params}},layout:"vertical",children:[(0,a.jsx)(h.Form.Item,{label:"Guardrail Name",name:"guardrail_name",rules:[{required:!0,message:"Please input a guardrail name"}],children:(0,a.jsx)(b.TextInput,{})}),(0,a.jsx)(h.Form.Item,{label:"Default On",name:"default_on",children:(0,a.jsxs)(y.Select,{children:[(0,a.jsx)(y.Select.Option,{value:!0,children:"Yes"}),(0,a.jsx)(y.Select.Option,{value:!1,children:"No"})]})}),m.litellm_params?.guardrail==="presidio"&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ez.Divider,{orientation:"left",children:"PII Protection"}),(0,a.jsx)("div",{className:"mb-6",children:P&&(0,a.jsx)(Q,{entities:P.supported_entities,actions:P.supported_actions,selectedEntities:S,selectedActions:O,onEntitySelect:e=>{T(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},onActionSelect:(e,t)=>{I(l=>({...l,[e]:t}))},entityCategories:P.pii_entity_categories})})]}),(0,a.jsx)(tp,{guardrailData:m,guardrailSettings:P,isEditing:!0,accessToken:l,onDataChange:W,onUnsavedChanges:$}),(0,a.jsx)(ez.Divider,{orientation:"left",children:"Provider Settings"}),m.litellm_params?.guardrail==="tool_permission"?(0,a.jsx)(eJ,{value:K,onChange:J}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ee,{selectedProvider:Object.keys(k).find(e=>k[e]===m.litellm_params?.guardrail)||null,accessToken:l,providerParams:f,value:m.litellm_params}),f&&(()=>{let e=Object.keys(k).find(e=>k[e]===m.litellm_params?.guardrail);if(!e)return null;let t=f[k[e]?.toLowerCase()];return t&&t.optional_params?(0,a.jsx)(ea,{optionalParams:t.optional_params,parentFieldKey:"optional_params",values:m.litellm_params}):null})()]}),(0,a.jsx)(ez.Divider,{orientation:"left",children:"Advanced Settings"}),(0,a.jsx)(h.Form.Item,{label:"Guardrail Information",name:"guardrail_info",children:(0,a.jsx)(e$.Input.TextArea,{rows:5})}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 mt-6",children:[(0,a.jsx)(L.Button,{onClick:()=>{w(!1),$(!1),el()},children:"Cancel"}),(0,a.jsx)(s.Button,{children:"Save Changes"})]})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Guardrail ID"}),(0,a.jsx)("div",{className:"font-mono",children:m.guardrail_id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Guardrail Name"}),(0,a.jsx)("div",{children:m.guardrail_name||"Unnamed Guardrail"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Provider"}),(0,a.jsx)("div",{children:eo})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Mode"}),(0,a.jsx)("div",{children:m.litellm_params?.mode||"-"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Default On"}),(0,a.jsx)(e9.Badge,{color:m.litellm_params?.default_on?"green":"gray",children:m.litellm_params?.default_on?"Yes":"No"})]}),m.litellm_params?.pii_entities_config&&Object.keys(m.litellm_params.pii_entities_config).length>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"PII Protection"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsxs)(e9.Badge,{color:"blue",children:[Object.keys(m.litellm_params.pii_entities_config).length," PII entities configured"]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Created At"}),(0,a.jsx)("div",{children:ei(m.created_at)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(eR.Text,{className:"font-medium",children:"Last Updated"}),(0,a.jsx)("div",{children:ei(m.updated_at)})]}),m.litellm_params?.guardrail==="tool_permission"&&(0,a.jsx)(eJ,{value:K,disabled:!0})]})]})})]})]}),(0,a.jsx)(tS,{visible:V,onClose:()=>H(!1),onSuccess:()=>{H(!1),Z()},accessToken:l,editData:m?{guardrail_id:m.guardrail_id,guardrail_name:m.guardrail_name,litellm_params:m.litellm_params}:null})]})};var tA=e.i(573421),tB=e.i(19732),tL=e.i(928685),tF=e.i(166406),tE=e.i(637235),tM=e.i(240647);let{Text:tR}=f.Typography,tz=function({results:e,errors:t}){let[l,i]=(0,r.useState)(new Set),n=e=>{let t=new Set(l);t.has(e)?t.delete(e):t.add(e),i(t)},o=async e=>{try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0;{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();let l=document.execCommand("copy");if(document.body.removeChild(t),!l)throw Error("execCommand failed");return!0}}catch(e){return console.error("Copy failed:",e),!1}};return e||t?(0,a.jsxs)("div",{className:"space-y-3 pt-4 border-t border-gray-200",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-gray-900",children:"Results"}),e&&e.map(e=>{let t=l.has(e.guardrailName);return(0,a.jsx)(eM.Card,{className:"bg-green-50 border-green-200",children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2 cursor-pointer flex-1",onClick:()=>n(e.guardrailName),children:[t?(0,a.jsx)(tM.RightOutlined,{className:"text-gray-500 text-xs"}):(0,a.jsx)(m.DownOutlined,{className:"text-gray-500 text-xs"}),(0,a.jsx)(tg.CheckCircleOutlined,{className:"text-green-600 text-lg"}),(0,a.jsx)("span",{className:"text-sm font-medium text-green-800",children:e.guardrailName})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-1 text-xs text-gray-600",children:[(0,a.jsx)(tE.ClockCircleOutlined,{}),(0,a.jsxs)("span",{className:"font-medium",children:[e.latency,"ms"]})]}),!t&&(0,a.jsx)(s.Button,{size:"xs",variant:"secondary",icon:tF.CopyOutlined,onClick:async()=>{await o(e.response_text)?er.default.success("Result copied to clipboard"):er.default.fromBackend("Failed to copy result")},children:"Copy"})]})]}),!t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"bg-white border border-green-200 rounded p-3",children:[(0,a.jsx)("label",{className:"text-xs font-medium text-gray-600 mb-2 block",children:"Output Text"}),(0,a.jsx)("div",{className:"font-mono text-sm text-gray-900 whitespace-pre-wrap break-words",children:e.response_text})]}),(0,a.jsxs)("div",{className:"text-xs text-gray-600",children:[(0,a.jsx)("span",{className:"font-medium",children:"Characters:"})," ",e.response_text.length]})]})]})},e.guardrailName)}),t&&t.map(e=>{let t=l.has(e.guardrailName);return(0,a.jsx)(eM.Card,{className:"bg-red-50 border-red-200",children:(0,a.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,a.jsx)("div",{className:"cursor-pointer mt-0.5",onClick:()=>n(e.guardrailName),children:t?(0,a.jsx)(tM.RightOutlined,{className:"text-gray-500 text-xs"}):(0,a.jsx)(m.DownOutlined,{className:"text-gray-500 text-xs"})}),(0,a.jsx)("div",{className:"text-red-600 mt-0.5",children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,a.jsxs)("p",{className:"text-sm font-medium text-red-800 cursor-pointer",onClick:()=>n(e.guardrailName),children:[e.guardrailName," - Error"]}),(0,a.jsxs)("div",{className:"flex items-center space-x-1 text-xs text-gray-600",children:[(0,a.jsx)(tE.ClockCircleOutlined,{}),(0,a.jsxs)("span",{className:"font-medium",children:[e.latency,"ms"]})]})]}),!t&&(0,a.jsx)("p",{className:"text-sm text-red-700 mt-1",children:e.error.message})]})]})},e.guardrailName)})]}):null},{TextArea:tG}=e$.Input,{Text:t$}=f.Typography,tD=function({guardrailNames:e,onSubmit:t,isLoading:l,results:i,errors:n,onClose:o}){let[d,c]=(0,r.useState)(""),u=()=>{d.trim()?t(d):er.default.fromBackend("Please enter text to test")},m=async e=>{try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0;{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();let l=document.execCommand("copy");if(document.body.removeChild(t),!l)throw Error("execCommand failed");return!0}}catch(e){return console.error("Copy failed:",e),!1}},p=async()=>{await m(d)?er.default.success("Input copied to clipboard"):er.default.fromBackend("Failed to copy input")};return(0,a.jsxs)("div",{className:"space-y-4 h-full flex flex-col",children:[(0,a.jsx)("div",{className:"flex items-center justify-between pb-3 border-b border-gray-200",children:(0,a.jsx)("div",{className:"flex items-center space-x-3",children:(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2 mb-1",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-gray-900",children:"Test Guardrails:"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:e.map(e=>(0,a.jsx)("div",{className:"inline-flex items-center space-x-1 bg-blue-50 px-3 py-1 rounded-md border border-blue-200",children:(0,a.jsx)("span",{className:"font-mono text-blue-700 font-medium text-sm",children:e})},e))})]}),(0,a.jsxs)("p",{className:"text-sm text-gray-500",children:["Test ",e.length>1?"guardrails":"guardrail"," and compare results"]})]})})}),(0,a.jsxs)("div",{className:"flex-1 overflow-auto space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Input Text"}),(0,a.jsx)(E.Tooltip,{title:"Press Enter to submit. Use Shift+Enter for new line.",children:(0,a.jsx)(eD.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),d&&(0,a.jsx)(s.Button,{size:"xs",variant:"secondary",icon:tF.CopyOutlined,onClick:p,children:"Copy Input"})]}),(0,a.jsx)(tG,{value:d,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.ctrlKey||e.metaKey||(e.preventDefault(),u())},placeholder:"Enter text to test with guardrails...",rows:8,className:"font-mono text-sm"}),(0,a.jsxs)("div",{className:"flex justify-between items-center mt-1",children:[(0,a.jsxs)(t$,{className:"text-xs text-gray-500",children:["Press ",(0,a.jsx)("kbd",{className:"px-1 py-0.5 bg-gray-100 border border-gray-300 rounded text-xs",children:"Enter"})," to submit • ",(0,a.jsx)("kbd",{className:"px-1 py-0.5 bg-gray-100 border border-gray-300 rounded text-xs",children:"Shift+Enter"})," for new line"]}),(0,a.jsxs)(t$,{className:"text-xs text-gray-500",children:["Characters: ",d.length]})]})]}),(0,a.jsx)("div",{className:"pt-2",children:(0,a.jsx)(s.Button,{onClick:u,loading:l,disabled:!d.trim(),className:"w-full",children:l?`Testing ${e.length} guardrail${e.length>1?"s":""}...`:`Test ${e.length} guardrail${e.length>1?"s":""}`})})]}),(0,a.jsx)(tz,{results:i,errors:n})]})]})},tK=({guardrailsList:e,isLoading:t,accessToken:l,onClose:s})=>{let[i,n]=(0,r.useState)(new Set),[o,d]=(0,r.useState)(""),[c,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),[x,h]=(0,r.useState)(!1),f=e.filter(e=>e.guardrail_name?.toLowerCase().includes(o.toLowerCase())),y=e=>{let t=new Set(i);t.has(e)?t.delete(e):t.add(e),n(t)},j=async e=>{if(0===i.size||!l)return;h(!0),u([]),p([]);let t=[],a=[];await Promise.all(Array.from(i).map(async r=>{let s=Date.now();try{let a=await (0,g.applyGuardrail)(l,r,e,null,null),i=Date.now()-s;t.push({guardrailName:r,response_text:a.response_text,latency:i})}catch(t){let e=Date.now()-s;console.error(`Error testing guardrail ${r}:`,t),a.push({guardrailName:r,error:t,latency:e})}})),u(t),p(a),h(!1),t.length>0&&er.default.success(`${t.length} guardrail${t.length>1?"s":""} applied successfully`),a.length>0&&er.default.fromBackend(`${a.length} guardrail${a.length>1?"s":""} failed`)};return(0,a.jsx)("div",{className:"w-full h-[calc(100vh-200px)]",children:(0,a.jsx)(eM.Card,{className:"h-full",children:(0,a.jsxs)("div",{className:"flex h-full",children:[(0,a.jsxs)("div",{className:"w-1/4 border-r border-gray-200 flex flex-col overflow-hidden",children:[(0,a.jsx)("div",{className:"p-4 border-b border-gray-200",children:(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)(tc.Title,{className:"text-lg font-semibold mb-3",children:"Guardrails"}),(0,a.jsx)(b.TextInput,{icon:tL.SearchOutlined,placeholder:"Search guardrails...",value:o,onValueChange:d})]})}),(0,a.jsx)("div",{className:"flex-1 overflow-auto",children:t?(0,a.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,a.jsx)(Z.Spin,{})}):0===f.length?(0,a.jsx)("div",{className:"p-4",children:(0,a.jsx)(eG.Empty,{description:o?"No guardrails match your search":"No guardrails available"})}):(0,a.jsx)(tA.List,{dataSource:f,renderItem:e=>(0,a.jsx)(tA.List.Item,{onClick:()=>{e.guardrail_name&&y(e.guardrail_name)},className:`cursor-pointer hover:bg-gray-50 transition-colors px-4 ${i.has(e.guardrail_name||"")?"bg-blue-50 border-l-4 border-l-blue-500":"border-l-4 border-l-transparent"}`,children:(0,a.jsx)(tA.List.Item.Meta,{avatar:(0,a.jsx)(F.Checkbox,{checked:i.has(e.guardrail_name||""),onClick:t=>{t.stopPropagation(),e.guardrail_name&&y(e.guardrail_name)}}),title:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(tB.ExperimentOutlined,{className:"text-gray-400"}),(0,a.jsx)("span",{className:"font-medium text-gray-900",children:e.guardrail_name})]}),description:(0,a.jsxs)("div",{className:"text-xs space-y-1 mt-1",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Type: "}),(0,a.jsx)("span",{className:"text-gray-600",children:e.litellm_params.guardrail})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"font-medium",children:"Mode: "}),(0,a.jsx)("span",{className:"text-gray-600",children:e.litellm_params.mode})]})]})})})})}),(0,a.jsx)("div",{className:"p-3 border-t border-gray-200 bg-gray-50",children:(0,a.jsxs)(eR.Text,{className:"text-xs text-gray-600",children:[i.size," of ",f.length," selected"]})})]}),(0,a.jsxs)("div",{className:"w-3/4 flex flex-col bg-white",children:[(0,a.jsx)("div",{className:"p-4 border-b border-gray-200 flex justify-between items-center",children:(0,a.jsx)(tc.Title,{className:"text-xl font-semibold mb-0",children:"Guardrail Testing Playground"})}),(0,a.jsx)("div",{className:"flex-1 overflow-auto p-4",children:0===i.size?(0,a.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[(0,a.jsx)(tB.ExperimentOutlined,{style:{fontSize:"48px",marginBottom:"16px"}}),(0,a.jsx)(eR.Text,{className:"text-lg font-medium text-gray-600 mb-2",children:"Select Guardrails to Test"}),(0,a.jsx)(eR.Text,{className:"text-center text-gray-500 max-w-md",children:"Choose one or more guardrails from the left sidebar to start testing and comparing results."})]}):(0,a.jsx)("div",{className:"h-full",children:(0,a.jsx)(tD,{guardrailNames:Array.from(i),onSubmit:j,results:c.length>0?c:null,errors:m.length>0?m:null,isLoading:x,onClose:()=>n(new Set)})})})]})]})})})};var tJ=e.i(127952);e.s(["default",0,({accessToken:e,userRole:t})=>{let[l,h]=(0,r.useState)([]),[f,y]=(0,r.useState)(!1),[j,_]=(0,r.useState)(!1),[v,b]=(0,r.useState)(!1),[N,w]=(0,r.useState)(!1),[C,S]=(0,r.useState)(null),[k,T]=(0,r.useState)(!1),[O,I]=(0,r.useState)(null),[P,A]=(0,r.useState)(0),L=!!t&&(0,td.isAdminRole)(t),F=async()=>{if(e){b(!0);try{let t=await (0,g.getGuardrailsList)(e);console.log(`guardrails: ${JSON.stringify(t)}`),h(t.guardrails)}catch(e){console.error("Error fetching guardrails:",e)}finally{b(!1)}}};(0,r.useEffect)(()=>{F()},[e]);let E=()=>{F()},M=async()=>{if(C&&e){w(!0);try{await (0,g.deleteGuardrailCall)(e,C.guardrail_id),er.default.success(`Guardrail "${C.guardrail_name}" deleted successfully`),await F()}catch(e){console.error("Error deleting guardrail:",e),er.default.fromBackend("Failed to delete guardrail")}finally{w(!1),T(!1),S(null)}}},R=C&&C.litellm_params?B(C.litellm_params.guardrail).displayName:void 0;return(0,a.jsx)("div",{className:"w-full mx-auto flex-auto overflow-y-auto m-8 p-2",children:(0,a.jsxs)(i.TabGroup,{index:P,onIndexChange:A,children:[(0,a.jsxs)(n.TabList,{className:"mb-4",children:[(0,a.jsx)(o.Tab,{children:"Guardrails"}),(0,a.jsx)(o.Tab,{disabled:!e||0===l.length,children:"Test Playground"})]}),(0,a.jsxs)(d.TabPanels,{children:[(0,a.jsxs)(c.TabPanel,{children:[(0,a.jsx)("div",{className:"flex justify-between items-center mb-4",children:(0,a.jsx)(u.Dropdown,{menu:{items:[{key:"provider",icon:(0,a.jsx)(p.PlusOutlined,{}),label:"Add Provider Guardrail",onClick:()=>{O&&I(null),y(!0)}},{key:"custom_code",icon:(0,a.jsx)(x.CodeOutlined,{}),label:"Create Custom Code Guardrail",onClick:()=>{O&&I(null),_(!0)}}]},trigger:["click"],disabled:!e,children:(0,a.jsxs)(s.Button,{disabled:!e,children:["+ Add New Guardrail ",(0,a.jsx)(m.DownOutlined,{className:"ml-2"})]})})}),O?(0,a.jsx)(tP,{guardrailId:O,onClose:()=>I(null),accessToken:e,isAdmin:L}):(0,a.jsx)(to,{guardrailsList:l,isLoading:v,onDeleteClick:(e,t)=>{S(l.find(t=>t.guardrail_id===e)||null),T(!0)},accessToken:e,onGuardrailUpdated:F,isAdmin:L,onGuardrailClick:e=>I(e)}),(0,a.jsx)(eQ,{visible:f,onClose:()=>{y(!1)},accessToken:e,onSuccess:E}),(0,a.jsx)(tS,{visible:j,onClose:()=>{_(!1)},accessToken:e,onSuccess:E}),(0,a.jsx)(tJ.default,{isOpen:k,title:"Delete Guardrail",message:`Are you sure you want to delete guardrail: ${C?.guardrail_name}? This action cannot be undone.`,resourceInformationTitle:"Guardrail Information",resourceInformation:[{label:"Name",value:C?.guardrail_name},{label:"ID",value:C?.guardrail_id,code:!0},{label:"Provider",value:R},{label:"Mode",value:C?.litellm_params.mode},{label:"Default On",value:C?.litellm_params.default_on?"Yes":"No"}],onCancel:()=>{T(!1),S(null)},onOk:M,confirmLoading:N})]}),(0,a.jsx)(c.TabPanel,{children:(0,a.jsx)(tK,{guardrailsList:l,isLoading:v,accessToken:e,onClose:()=>A(0)})})]})]})})}],487304)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0d2b7ad3109bd883.js b/litellm/proxy/_experimental/out/_next/static/chunks/0d2b7ad3109bd883.js deleted file mode 100644 index acb1d237ecc..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0d2b7ad3109bd883.js +++ /dev/null @@ -1,14 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91874,681216,e=>{"use strict";var t=e.i(931067),r=e.i(209428),a=e.i(211577),l=e.i(392221),o=e.i(703923),n=e.i(343794),i=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,g=e.className,f=e.style,b=e.checked,p=e.disabled,h=e.defaultChecked,C=e.type,v=void 0===C?"checkbox":C,k=e.title,x=e.onChange,w=(0,o.default)(e,d),$=(0,s.useRef)(null),y=(0,s.useRef)(null),N=(0,i.default)(void 0!==h&&h,{value:b}),O=(0,l.default)(N,2),E=O[0],j=O[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=$.current)||t.focus(e)},blur:function(){var e;null==(e=$.current)||e.blur()},input:$.current,nativeElement:y.current}});var T=(0,n.default)(m,g,(0,a.default)((0,a.default)({},"".concat(m,"-checked"),E),"".concat(m,"-disabled"),p));return s.createElement("span",{className:T,title:k,style:f,ref:y},s.createElement("input",(0,t.default)({},w,{className:"".concat(m,"-input"),ref:$,onChange:function(t){p||("checked"in e||j(t.target.checked),null==x||x({target:(0,r.default)((0,r.default)({},e),{},{type:v,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:p,checked:!!E,type:v})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c],91874);var u=e.i(963188);function m(e){let t=s.default.useRef(null),r=()=>{u.default.cancel(t.current),t.current=null};return[()=>{r(),t.current=(0,u.default)(()=>{t.current=null})},a=>{t.current&&(a.stopPropagation(),r()),null==e||e(a)}]}e.s(["default",()=>m],681216)},374276,236836,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(91874),l=e.i(611935),o=e.i(121872),n=e.i(26905),i=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139);let u=t.default.createContext(null);e.i(296059);var m=e.i(915654),g=e.i(183293),f=e.i(246422),b=e.i(838378);function p(e,t){return(e=>{let{checkboxCls:t}=e,r=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[r]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${r}`]:{marginInlineStart:0},[`&${r}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,g.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,m.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,m.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` - ${r}:not(${r}-disabled), - ${t}:not(${t}-disabled) - `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${r}:not(${r}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` - ${r}-checked:not(${r}-disabled), - ${t}-checked:not(${t}-disabled) - `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,b.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let h=(0,f.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[p(t,e)]);e.s(["default",0,h,"getStyle",()=>p],236836);var C=e.i(681216),v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let k=t.forwardRef((e,m)=>{var g;let{prefixCls:f,className:b,rootClassName:p,children:k,indeterminate:x=!1,style:w,onMouseEnter:$,onMouseLeave:y,skipGroup:N=!1,disabled:O}=e,E=v(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:j,direction:T,checkbox:S}=t.useContext(i.ConfigContext),R=t.useContext(u),{isFormItemInput:M}=t.useContext(c.FormItemInputContext),P=t.useContext(s.default),z=null!=(g=(null==R?void 0:R.disabled)||O)?g:P,B=t.useRef(E.value),q=t.useRef(null),H=(0,l.composeRef)(m,q);t.useEffect(()=>{null==R||R.registerValue(E.value)},[]),t.useEffect(()=>{if(!N)return E.value!==B.current&&(null==R||R.cancelValue(B.current),null==R||R.registerValue(E.value),B.current=E.value),()=>null==R?void 0:R.cancelValue(E.value)},[E.value]),t.useEffect(()=>{var e;(null==(e=q.current)?void 0:e.input)&&(q.current.input.indeterminate=x)},[x]);let I=j("checkbox",f),L=(0,d.default)(I),[_,A,X]=h(I,L),D=Object.assign({},E);R&&!N&&(D.onChange=(...e)=>{E.onChange&&E.onChange.apply(E,e),R.toggleOption&&R.toggleOption({label:k,value:E.value})},D.name=R.name,D.checked=R.value.includes(E.value));let F=(0,r.default)(`${I}-wrapper`,{[`${I}-rtl`]:"rtl"===T,[`${I}-wrapper-checked`]:D.checked,[`${I}-wrapper-disabled`]:z,[`${I}-wrapper-in-form-item`]:M},null==S?void 0:S.className,b,p,X,L,A),W=(0,r.default)({[`${I}-indeterminate`]:x},n.TARGET_CLS,A),[Y,G]=(0,C.default)(D.onClick);return _(t.createElement(o.default,{component:"Checkbox",disabled:z},t.createElement("label",{className:F,style:Object.assign(Object.assign({},null==S?void 0:S.style),w),onMouseEnter:$,onMouseLeave:y,onClick:Y},t.createElement(a.default,Object.assign({},D,{onClick:G,prefixCls:I,className:W,disabled:z,ref:H})),null!=k&&t.createElement("span",{className:`${I}-label`},k))))});var x=e.i(8211),w=e.i(529681),$=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let y=t.forwardRef((e,a)=>{let{defaultValue:l,children:o,options:n=[],prefixCls:s,className:c,rootClassName:m,style:g,onChange:f}=e,b=$(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:p,direction:C}=t.useContext(i.ConfigContext),[v,y]=t.useState(b.value||l||[]),[N,O]=t.useState([]);t.useEffect(()=>{"value"in b&&y(b.value||[])},[b.value]);let E=t.useMemo(()=>n.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[n]),j=e=>{O(t=>t.filter(t=>t!==e))},T=e=>{O(t=>[].concat((0,x.default)(t),[e]))},S=e=>{let t=v.indexOf(e.value),r=(0,x.default)(v);-1===t?r.push(e.value):r.splice(t,1),"value"in b||y(r),null==f||f(r.filter(e=>N.includes(e)).sort((e,t)=>E.findIndex(t=>t.value===e)-E.findIndex(e=>e.value===t)))},R=p("checkbox",s),M=`${R}-group`,P=(0,d.default)(R),[z,B,q]=h(R,P),H=(0,w.default)(b,["value","disabled"]),I=n.length?E.map(e=>t.createElement(k,{prefixCls:R,key:e.value.toString(),disabled:"disabled"in e?e.disabled:b.disabled,value:e.value,checked:v.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${M}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):o,L=t.useMemo(()=>({toggleOption:S,value:v,disabled:b.disabled,name:b.name,registerValue:T,cancelValue:j}),[S,v,b.disabled,b.name,T,j]),_=(0,r.default)(M,{[`${M}-rtl`]:"rtl"===C},c,m,q,P,B);return z(t.createElement("div",Object.assign({className:_,style:g},H,{ref:a}),t.createElement(u.Provider,{value:L},I)))});k.Group=y,k.__ANT_CHECKBOX=!0,e.s(["default",0,k],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:n,className:i,children:s}=e;return l.default.createElement("p",{ref:o,className:(0,r.tremorTwMerge)("text-tremor-default",n?(0,a.getColorClassNames)(n,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},s)});o.displayName="Text",e.s(["default",()=>o],936325),e.s(["Text",()=>o],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],o=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),n=e=>e?6:5,i=(e,t,r,a,l)=>{clearTimeout(a.current);let n=o(e);t(n),r.current=n,l&&l({current:n})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},f=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},b=(0,c.makeClassName)("Button"),p=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:o,transitionStatus:n})=>{let i=o?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(b("icon"),"animate-spin shrink-0",i,m.default,m[n]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(b("icon"),"shrink-0",t,i)})},h=a.default.forwardRef((e,l)=>{let{icon:u,iconPosition:m=s.HorizontalPositions.Left,size:h=s.Sizes.SM,color:C,variant:v="primary",disabled:k,loading:x=!1,loadingText:w,children:$,tooltip:y,className:N}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),E=x||k,j=void 0!==u||x,T=x&&w,S=!(!$&&!T),R=(0,d.tremorTwMerge)(g[h].height,g[h].width),M="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",P=f(v,C),z=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[h],{tooltipProps:B,getReferenceProps:q}=(0,r.useTooltip)(300),[H,I]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,f]=(0,a.useState)(()=>o(d?2:n(c))),b=(0,a.useRef)(g),p=(0,a.useRef)(0),[h,C]="object"==typeof s?[s.enter,s.exit]:[s,s],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return n(t)}})(b.current._s,u);e&&i(e,f,b,p,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let o=e=>{switch(i(e,f,b,p,m),e){case 1:h>=0&&(p.current=((...e)=>setTimeout(...e))(v,h));break;case 4:C>=0&&(p.current=((...e)=>setTimeout(...e))(v,C));break;case 0:case 3:p.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||o(e+1)},0)}},s=b.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||o(e?+!r:2):s&&o(t?l?3:4:n(u))},[v,m,e,t,r,l,h,C,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{I(x)},[x]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,B.refs.setReference]),className:(0,d.tremorTwMerge)(b("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",M,z.paddingX,z.paddingY,z.fontSize,P.textColor,P.bgColor,P.borderColor,P.hoverBorderColor,E?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(f(v,C).hoverTextColor,f(v,C).hoverBgColor,f(v,C).hoverBorderColor),N),disabled:E},q,O),a.default.createElement(r.default,Object.assign({text:y},B)),j&&m!==s.HorizontalPositions.Right?a.default.createElement(p,{loading:x,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null,T||$?a.default.createElement("span",{className:(0,d.tremorTwMerge)(b("text"),"text-tremor-default whitespace-nowrap")},T?w:$):null,j&&m===s.HorizontalPositions.Right?a.default.createElement(p,{loading:x,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null)});h.displayName="Button",e.s(["Button",()=>h],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),o=e.i(444755),n=e.i(673706);let i=(0,n.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,n.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});s.displayName="Card",e.s(["Card",()=>s],304967)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let o=e=>{let{prefixCls:a,className:l,style:o,size:n,shape:i}=e,s=(0,r.default)({[`${a}-lg`]:"large"===n,[`${a}-sm`]:"small"===n}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,r.default)(a,s,d,l),style:Object.assign(Object.assign({},c),o)})};e.i(296059);var n=e.i(694758),i=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),f=e=>Object.assign({width:e},u(e)),b=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},p=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),h=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:o,skeletonInputCls:n,skeletonImageCls:i,controlHeight:s,controlHeightLG:d,controlHeightSM:u,gradientFromColor:h,padding:C,marginSM:v,borderRadius:k,titleHeight:x,blockRadius:w,paragraphLiHeight:$,controlHeightXS:y,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:h},m(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:x,background:h,borderRadius:w,[`+ ${l}`]:{marginBlockStart:u}},[l]:{padding:0,"> li":{width:"100%",height:$,listStyle:"none",background:h,borderRadius:w,"+ li":{marginBlockStart:y}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:k}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${l}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},p(a,i))},b(e,a,r)),{[`${r}-lg`]:Object.assign({},p(l,i))}),b(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},p(o,i))}),b(e,o,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(l)),[`${t}${t}-sm`]:Object.assign({},m(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:r},g(t,i)),[`${a}-lg`]:Object.assign({},g(l,i)),[`${a}-sm`]:Object.assign({},g(o,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},f(o(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},f(r)),{maxWidth:o(r).mul(4).equal(),maxHeight:o(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` - ${a}, - ${l} > li, - ${r}, - ${o}, - ${n}, - ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:l,style:o,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:o},i)},v=({prefixCls:e,className:a,width:l,style:o})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},o)});function k(e){return e&&"object"==typeof e?e:{}}let x=e=>{let{prefixCls:l,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:f,round:b}=e,{getPrefixCls:p,direction:x,className:w,style:$}=(0,a.useComponentConfig)("skeleton"),y=p("skeleton",l),[N,O,E]=h(y);if(n||!("loading"in e)){let e,a,l=!!u,n=!!m,c=!!g;if(l){let r=Object.assign(Object.assign({prefixCls:`${y}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),k(u));e=t.createElement("div",{className:`${y}-header`},t.createElement(o,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${y}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),k(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${y}-paragraph`},(e={},l&&n||(e.width="61%"),!l&&n?e.rows=3:e.rows=2,e)),k(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${y}-content`},e,r)}let p=(0,r.default)(y,{[`${y}-with-avatar`]:l,[`${y}-active`]:f,[`${y}-rtl`]:"rtl"===x,[`${y}-round`]:b},w,i,s,O,E);return N(t.createElement("div",{className:p,style:Object.assign(Object.assign({},$),d)},e,a))}return null!=c?c:null};x.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[f,b,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,b,p);return f(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-button`,size:u},C))))},x.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[f,b,p]=h(g),C=(0,l.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},i,s,b,p);return f(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},C))))},x.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[f,b,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,b,p);return f(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-input`,size:u},C))))},x.Image=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[u,m,g]=h(c),f=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},o,n,m,g);return u(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${c}-image`,o),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},x.Node=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",l),[m,g,f]=h(u),b=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,o,n,f);return m(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${u}-image`,o),style:i},d)))},e.s(["default",0,x],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["default",0,o],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});o.displayName="Table",e.s(["Table",()=>o],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});o.displayName="TableBody",e.s(["TableBody",()=>o],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});o.displayName="TableCell",e.s(["TableCell",()=>o],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});o.displayName="TableHead",e.s(["TableHead",()=>o],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});o.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>o],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("row"),i)},s),n))});o.displayName="TableRow",e.s(["TableRow",()=>o],496020)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},278587,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,r],278587)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0f3785dff6cc02a9.js b/litellm/proxy/_experimental/out/_next/static/chunks/0f3785dff6cc02a9.js deleted file mode 100644 index bde1e6603b9..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0f3785dff6cc02a9.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,757440,e=>{"use strict";var t=e.i(290571),r=e.i(271645);let a=e=>{var a=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},a),r.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))};e.s(["default",()=>a])},446428,854056,e=>{"use strict";let t;var r=e.i(290571),a=e.i(271645);let n=e=>{var t=(0,r.__rest)(e,[]);return a.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),a.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))};e.s(["default",()=>n],446428);var l=e.i(746725),o=e.i(914189),s=e.i(553521),i=e.i(835696),c=e.i(941444),u=e.i(178677),d=e.i(294316),m=e.i(83733),f=e.i(233137),b=e.i(732607),g=e.i(397701),p=e.i(700020);function h(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:C)!==a.Fragment||1===a.default.Children.count(e.children)}let v=(0,a.createContext)(null);v.displayName="TransitionContext";var x=((t=x||{}).Visible="visible",t.Hidden="hidden",t);let y=(0,a.createContext)(null);function w(e){return"children"in e?w(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function N(e,t){let r=(0,c.useLatestValue)(e),n=(0,a.useRef)([]),i=(0,s.useIsMounted)(),u=(0,l.useDisposables)(),d=(0,o.useEvent)((e,t=p.RenderStrategy.Hidden)=>{let a=n.current.findIndex(({el:t})=>t===e);-1!==a&&((0,g.match)(t,{[p.RenderStrategy.Unmount](){n.current.splice(a,1)},[p.RenderStrategy.Hidden](){n.current[a].state="hidden"}}),u.microTask(()=>{var e;!w(n)&&i.current&&(null==(e=r.current)||e.call(r))}))}),m=(0,o.useEvent)(e=>{let t=n.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):n.current.push({el:e,state:"visible"}),()=>d(e,p.RenderStrategy.Unmount)}),f=(0,a.useRef)([]),b=(0,a.useRef)(Promise.resolve()),h=(0,a.useRef)({enter:[],leave:[]}),v=(0,o.useEvent)((e,r,a)=>{f.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([t])=>t!==e)),null==t||t.chains.current[r].push([e,new Promise(e=>{f.current.push(e)})]),null==t||t.chains.current[r].push([e,new Promise(e=>{Promise.all(h.current[r].map(([e,t])=>t)).then(()=>e())})]),"enter"===r?b.current=b.current.then(()=>null==t?void 0:t.wait.current).then(()=>a(r)):a(r)}),x=(0,o.useEvent)((e,t,r)=>{Promise.all(h.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=f.current.shift())||e()}).then(()=>r(t))});return(0,a.useMemo)(()=>({children:n,register:m,unregister:d,onStart:v,onStop:x,wait:b,chains:h}),[m,d,n,v,x,h,b])}y.displayName="NestingContext";let C=a.Fragment,j=p.RenderFeatures.RenderStrategy,E=(0,p.forwardRefWithAs)(function(e,t){let{show:r,appear:n=!1,unmount:l=!0,...s}=e,c=(0,a.useRef)(null),m=h(e),b=(0,d.useSyncRefs)(...m?[c,t]:null===t?[]:[t]);(0,u.useServerHandoffComplete)();let g=(0,f.useOpenClosed)();if(void 0===r&&null!==g&&(r=(g&f.State.Open)===f.State.Open),void 0===r)throw Error("A is used but it is missing a `show={true | false}` prop.");let[x,C]=(0,a.useState)(r?"visible":"hidden"),E=N(()=>{r||C("hidden")}),[O,S]=(0,a.useState)(!0),k=(0,a.useRef)([r]);(0,i.useIsoMorphicEffect)(()=>{!1!==O&&k.current[k.current.length-1]!==r&&(k.current.push(r),S(!1))},[k,r]);let T=(0,a.useMemo)(()=>({show:r,appear:n,initial:O}),[r,n,O]);(0,i.useIsoMorphicEffect)(()=>{r?C("visible"):w(E)||null===c.current||C("hidden")},[r,E]);let R={unmount:l},I=(0,o.useEvent)(()=>{var t;O&&S(!1),null==(t=e.beforeEnter)||t.call(e)}),M=(0,o.useEvent)(()=>{var t;O&&S(!1),null==(t=e.beforeLeave)||t.call(e)}),B=(0,p.useRender)();return a.default.createElement(y.Provider,{value:E},a.default.createElement(v.Provider,{value:T},B({ourProps:{...R,as:a.Fragment,children:a.default.createElement($,{ref:b,...R,...s,beforeEnter:I,beforeLeave:M})},theirProps:{},defaultTag:a.Fragment,features:j,visible:"visible"===x,name:"Transition"})))}),$=(0,p.forwardRefWithAs)(function(e,t){var r,n;let{transition:l=!0,beforeEnter:s,afterEnter:c,beforeLeave:x,afterLeave:E,enter:$,enterFrom:O,enterTo:S,entered:k,leave:T,leaveFrom:R,leaveTo:I,...M}=e,[B,P]=(0,a.useState)(null),D=(0,a.useRef)(null),z=h(e),F=(0,d.useSyncRefs)(...z?[D,t,P]:null===t?[]:[t]),L=null==(r=M.unmount)||r?p.RenderStrategy.Unmount:p.RenderStrategy.Hidden,{show:_,appear:H,initial:A}=function(){let e=(0,a.useContext)(v);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[V,W]=(0,a.useState)(_?"visible":"hidden"),q=function(){let e=(0,a.useContext)(y);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:K,unregister:Z}=q;(0,i.useIsoMorphicEffect)(()=>K(D),[K,D]),(0,i.useIsoMorphicEffect)(()=>{if(L===p.RenderStrategy.Hidden&&D.current)return _&&"visible"!==V?void W("visible"):(0,g.match)(V,{hidden:()=>Z(D),visible:()=>K(D)})},[V,D,K,Z,_,L]);let Q=(0,u.useServerHandoffComplete)();(0,i.useIsoMorphicEffect)(()=>{if(z&&Q&&"visible"===V&&null===D.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[D,V,Q,z]);let U=A&&!H,G=H&&_&&A,X=(0,a.useRef)(!1),Y=N(()=>{X.current||(W("hidden"),Z(D))},q),J=(0,o.useEvent)(e=>{X.current=!0,Y.onStart(D,e?"enter":"leave",e=>{"enter"===e?null==s||s():"leave"===e&&(null==x||x())})}),ee=(0,o.useEvent)(e=>{let t=e?"enter":"leave";X.current=!1,Y.onStop(D,t,e=>{"enter"===e?null==c||c():"leave"===e&&(null==E||E())}),"leave"!==t||w(Y)||(W("hidden"),Z(D))});(0,a.useEffect)(()=>{z&&l||(J(_),ee(_))},[_,z,l]);let et=!(!l||!z||!Q||U),[,er]=(0,m.useTransition)(et,B,_,{start:J,end:ee}),ea=(0,p.compact)({ref:F,className:(null==(n=(0,b.classNames)(M.className,G&&$,G&&O,er.enter&&$,er.enter&&er.closed&&O,er.enter&&!er.closed&&S,er.leave&&T,er.leave&&!er.closed&&R,er.leave&&er.closed&&I,!er.transition&&_&&k))?void 0:n.trim())||void 0,...(0,m.transitionDataAttributes)(er)}),en=0;"visible"===V&&(en|=f.State.Open),"hidden"===V&&(en|=f.State.Closed),er.enter&&(en|=f.State.Opening),er.leave&&(en|=f.State.Closing);let el=(0,p.useRender)();return a.default.createElement(y.Provider,{value:Y},a.default.createElement(f.OpenClosedProvider,{value:en},el({ourProps:ea,theirProps:M,defaultTag:C,features:j,visible:"visible"===V,name:"Transition.Child"})))}),O=(0,p.forwardRefWithAs)(function(e,t){let r=null!==(0,a.useContext)(v),n=null!==(0,f.useOpenClosed)();return a.default.createElement(a.default.Fragment,null,!r&&n?a.default.createElement(E,{ref:t,...e}):a.default.createElement($,{ref:t,...e}))}),S=Object.assign(E,{Child:O,Root:E});e.s(["Transition",()=>S],854056)},206929,e=>{"use strict";var t=e.i(290571),r=e.i(757440),a=e.i(271645),n=e.i(446428),l=e.i(444755),o=e.i(673706),s=e.i(103471),i=e.i(495470),c=e.i(854056),u=e.i(888288);let d=(0,o.makeClassName)("Select"),m=a.default.forwardRef((e,o)=>{let{defaultValue:m="",value:f,onValueChange:b,placeholder:g="Select...",disabled:p=!1,icon:h,enableClear:v=!1,required:x,children:y,name:w,error:N=!1,errorMessage:C,className:j,id:E}=e,$=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),O=(0,a.useRef)(null),S=a.Children.toArray(y),[k,T]=(0,u.default)(m,f),R=(0,a.useMemo)(()=>{let e=a.default.Children.toArray(y).filter(a.isValidElement);return(0,s.constructValueToNameMapping)(e)},[y]);return a.default.createElement("div",{className:(0,l.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",j)},a.default.createElement("div",{className:"relative"},a.default.createElement("select",{title:"select-hidden",required:x,className:(0,l.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:k,onChange:e=>{e.preventDefault()},name:w,disabled:p,id:E,onFocus:()=>{let e=O.current;e&&e.focus()}},a.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},g),S.map(e=>{let t=e.props.value,r=e.props.children;return a.default.createElement("option",{className:"hidden",key:t,value:t},r)})),a.default.createElement(i.Listbox,Object.assign({as:"div",ref:o,defaultValue:k,value:k,onChange:e=>{null==b||b(e),T(e)},disabled:p,id:E},$),({value:e})=>{var t;return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.ListboxButton,{ref:O,className:(0,l.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",h?"pl-10":"pl-3",(0,s.getSelectButtonColors)((0,s.hasValue)(e),p,N))},h&&a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},a.default.createElement(h,{className:(0,l.tremorTwMerge)(d("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),a.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=R.get(e))?t:g),a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},a.default.createElement(r.default,{className:(0,l.tremorTwMerge)(d("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),v&&k?a.default.createElement("button",{type:"button",className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),T(""),null==b||b("")}},a.default.createElement(n.default,{className:(0,l.tremorTwMerge)(d("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,a.default.createElement(c.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},a.default.createElement(i.ListboxOptions,{anchor:"bottom start",className:(0,l.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},y)))})),N&&C?a.default.createElement("p",{className:(0,l.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},C):null)});m.displayName="Select",e.s(["Select",()=>m],206929)},214541,e=>{"use strict";var t=e.i(271645),r=e.i(135214),a=e.i(270345);e.s(["default",0,()=>{let[e,n]=(0,t.useState)([]),{accessToken:l,userId:o,userRole:s}=(0,r.default)();return(0,t.useEffect)(()=>{(async()=>{n(await (0,a.fetchTeams)(l,o,s,null))})()},[l,o,s]),{teams:e,setTeams:n}}])},11751,643449,183588,e=>{"use strict";function t(e){return""===e?null:e}e.s(["mapEmptyStringToNull",()=>t],11751);var r=e.i(843476),a=e.i(599724),n=e.i(389083),l=e.i(810757),o=e.i(477386),s=e.i(557662);e.s(["default",0,function({loggingConfigs:e=[],disabledCallbacks:t=[],variant:i="card",className:c=""}){let u=(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(l.CogIcon,{className:"h-4 w-4 text-blue-600"}),(0,r.jsx)(a.Text,{className:"font-semibold text-gray-900",children:"Logging Integrations"}),(0,r.jsx)(n.Badge,{color:"blue",size:"xs",children:e.length})]}),e.length>0?(0,r.jsx)("div",{className:"space-y-3",children:e.map((e,t)=>{var o;let i=(o=e.callback_name,Object.entries(s.callback_map).find(([e,t])=>t===o)?.[0]||o),c=s.callbackInfo[i]?.logo;return(0,r.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-blue-50 border border-blue-200",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[c?(0,r.jsx)("img",{src:c,alt:i,className:"w-5 h-5 object-contain"}):(0,r.jsx)(l.CogIcon,{className:"h-5 w-5 text-gray-400"}),(0,r.jsxs)("div",{children:[(0,r.jsx)(a.Text,{className:"font-medium text-blue-800",children:i}),(0,r.jsxs)(a.Text,{className:"text-xs text-blue-600",children:[Object.keys(e.callback_vars).length," parameters configured"]})]})]}),(0,r.jsx)(n.Badge,{color:(e=>{switch(e){case"success":return"green";case"failure":return"red";case"success_and_failure":return"blue";default:return"gray"}})(e.callback_type),size:"sm",children:(e=>{switch(e){case"success":return"Success Only";case"failure":return"Failure Only";case"success_and_failure":return"Success & Failure";default:return e}})(e.callback_type)})]},t)})}):(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,r.jsx)(l.CogIcon,{className:"h-4 w-4 text-gray-400"}),(0,r.jsx)(a.Text,{className:"text-gray-500 text-sm",children:"No logging integrations configured"})]})]}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(o.BanIcon,{className:"h-4 w-4 text-red-600"}),(0,r.jsx)(a.Text,{className:"font-semibold text-gray-900",children:"Disabled Callbacks"}),(0,r.jsx)(n.Badge,{color:"red",size:"xs",children:t.length})]}),t.length>0?(0,r.jsx)("div",{className:"space-y-3",children:t.map((e,t)=>{let l=s.reverse_callback_map[e]||e,i=s.callbackInfo[l]?.logo;return(0,r.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-red-50 border border-red-200",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[i?(0,r.jsx)("img",{src:i,alt:l,className:"w-5 h-5 object-contain"}):(0,r.jsx)(o.BanIcon,{className:"h-5 w-5 text-gray-400"}),(0,r.jsxs)("div",{children:[(0,r.jsx)(a.Text,{className:"font-medium text-red-800",children:l}),(0,r.jsx)(a.Text,{className:"text-xs text-red-600",children:"Disabled for this key"})]})]}),(0,r.jsx)(n.Badge,{color:"red",size:"sm",children:"Disabled"})]},t)})}):(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,r.jsx)(o.BanIcon,{className:"h-4 w-4 text-gray-400"}),(0,r.jsx)(a.Text,{className:"text-gray-500 text-sm",children:"No callbacks disabled"})]})]})]});return"card"===i?(0,r.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${c}`,children:[(0,r.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(a.Text,{className:"font-semibold text-gray-900",children:"Logging Settings"}),(0,r.jsx)(a.Text,{className:"text-xs text-gray-500",children:"Active logging integrations and disabled callbacks for this key"})]})}),u]}):(0,r.jsxs)("div",{className:`${c}`,children:[(0,r.jsx)(a.Text,{className:"font-medium text-gray-900 mb-3",children:"Logging Settings"}),u]})}],643449);var i=e.i(266484);e.s(["default",0,({value:e,onChange:t,disabledCallbacks:a=[],onDisabledCallbacksChange:n})=>(0,r.jsx)(i.default,{value:e,onChange:t,disabledCallbacks:a,onDisabledCallbacksChange:n})],183588)},981339,e=>{"use strict";var t=e.i(185793);e.s(["Skeleton",()=>t.default])},906579,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(361275),n=e.i(702779),l=e.i(763731),o=e.i(242064);e.i(296059);var s=e.i(915654),i=e.i(694758),c=e.i(183293),u=e.i(403541),d=e.i(246422),m=e.i(838378);let f=new i.Keyframes("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),b=new i.Keyframes("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),g=new i.Keyframes("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),p=new i.Keyframes("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),h=new i.Keyframes("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),v=new i.Keyframes("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),x=e=>{let{fontHeight:t,lineWidth:r,marginXS:a,colorBorderBg:n}=e,l=e.colorTextLightSolid,o=e.colorError,s=e.colorErrorHover;return(0,m.mergeToken)(e,{badgeFontHeight:t,badgeShadowSize:r,badgeTextColor:l,badgeColor:o,badgeColorHover:s,badgeShadowColor:n,badgeProcessingDuration:"1.2s",badgeRibbonOffset:a,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},y=e=>{let{fontSize:t,lineHeight:r,fontSizeSM:a,lineWidth:n}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*r)-2*n,indicatorHeightSM:t,dotSize:a/2,textFontSize:a,textFontSizeSM:a,textFontWeight:"normal",statusSize:a/2}},w=(0,d.genStyleHooks)("Badge",e=>(e=>{let{componentCls:t,iconCls:r,antCls:a,badgeShadowSize:n,textFontSize:l,textFontSizeSM:o,statusSize:i,dotSize:d,textFontWeight:m,indicatorHeight:x,indicatorHeightSM:y,marginXS:w,calc:N}=e,C=`${a}-scroll-number`,j=(0,u.genPresetColor)(e,(e,{darkColor:r})=>({[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r},"a:hover &":{background:r}}}));return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,c.resetComponent)(e)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:x,height:x,color:e.badgeTextColor,fontWeight:m,fontSize:l,lineHeight:(0,s.unit)(x),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:N(x).div(2).equal(),boxShadow:`0 0 0 ${(0,s.unit)(n)} ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:y,height:y,fontSize:o,lineHeight:(0,s.unit)(y),borderRadius:N(y).div(2).equal()},[`${t}-multiple-words`]:{padding:`0 ${(0,s.unit)(e.paddingXS)}`,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:d,minWidth:d,height:d,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,s.unit)(n)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${C}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${r}-spin`]:{animationName:v,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:i,height:i,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfo,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:n,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:f,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:w,color:e.colorText,fontSize:e.fontSize}}}),j),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:b,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:g,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:p,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:h,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${C}-custom-component, ${t}-count`]:{transform:"none"},[`${C}-custom-component, ${C}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[C]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${C}-only`]:{position:"relative",display:"inline-block",height:x,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${C}-only-unit`]:{height:x,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${C}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${C}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}})(x(e)),y),N=(0,d.genStyleHooks)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:r,marginXS:a,badgeRibbonOffset:n,calc:l}=e,o=`${t}-ribbon`,i=`${t}-ribbon-wrapper`,d=(0,u.genPresetColor)(e,(e,{darkColor:t})=>({[`&${o}-color-${e}`]:{background:t,color:t}}));return{[i]:{position:"relative"},[o]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,c.resetComponent)(e)),{position:"absolute",top:a,padding:`0 ${(0,s.unit)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,s.unit)(r),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${o}-text`]:{color:e.badgeTextColor},[`${o}-corner`]:{position:"absolute",top:"100%",width:n,height:n,color:"currentcolor",border:`${(0,s.unit)(l(n).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter}}),d),{[`&${o}-placement-end`]:{insetInlineEnd:l(n).mul(-1).equal(),borderEndEndRadius:0,[`${o}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${o}-placement-start`]:{insetInlineStart:l(n).mul(-1).equal(),borderEndStartRadius:0,[`${o}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}})(x(e)),y),C=e=>{let a,{prefixCls:n,value:l,current:o,offset:s=0}=e;return s&&(a={position:"absolute",top:`${s}00%`,left:0}),t.createElement("span",{style:a,className:(0,r.default)(`${n}-only-unit`,{current:o})},l)},j=e=>{let r,a,{prefixCls:n,count:l,value:o}=e,s=Number(o),i=Math.abs(l),[c,u]=t.useState(s),[d,m]=t.useState(i),f=()=>{u(s),m(i)};if(t.useEffect(()=>{let e=setTimeout(f,1e3);return()=>clearTimeout(e)},[s]),c===s||Number.isNaN(s)||Number.isNaN(c))r=[t.createElement(C,Object.assign({},e,{key:s,current:!0}))],a={transition:"none"};else{r=[];let n=s+10,l=[];for(let e=s;e<=n;e+=1)l.push(e);let o=de%10===c);r=(o<0?l.slice(0,u+1):l.slice(u)).map((r,a)=>t.createElement(C,Object.assign({},e,{key:r,value:r%10,offset:o<0?a-u:a,current:a===u}))),a={transform:`translateY(${-function(e,t,r){let a=e,n=0;for(;(a+10)%10!==t;)a+=r,n+=r;return n}(c,s,o)}00%)`}}return t.createElement("span",{className:`${n}-only`,style:a,onTransitionEnd:f},r)};var E=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,a=Object.getOwnPropertySymbols(e);nt.indexOf(a[n])&&Object.prototype.propertyIsEnumerable.call(e,a[n])&&(r[a[n]]=e[a[n]]);return r};let $=t.forwardRef((e,a)=>{let{prefixCls:n,count:s,className:i,motionClassName:c,style:u,title:d,show:m,component:f="sup",children:b}=e,g=E(e,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:p}=t.useContext(o.ConfigContext),h=p("scroll-number",n),v=Object.assign(Object.assign({},g),{"data-show":m,style:u,className:(0,r.default)(h,i,c),title:d}),x=s;if(s&&Number(s)%1==0){let e=String(s).split("");x=t.createElement("bdi",null,e.map((r,a)=>t.createElement(j,{prefixCls:h,count:Number(s),value:r,key:e.length-a})))}return((null==u?void 0:u.borderColor)&&(v.style=Object.assign(Object.assign({},u),{boxShadow:`0 0 0 1px ${u.borderColor} inset`})),b)?(0,l.cloneElement)(b,e=>({className:(0,r.default)(`${h}-custom-component`,null==e?void 0:e.className,c)})):t.createElement(f,Object.assign({},v,{ref:a}),x)});var O=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,a=Object.getOwnPropertySymbols(e);nt.indexOf(a[n])&&Object.prototype.propertyIsEnumerable.call(e,a[n])&&(r[a[n]]=e[a[n]]);return r};let S=t.forwardRef((e,s)=>{var i,c,u,d,m;let{prefixCls:f,scrollNumberPrefixCls:b,children:g,status:p,text:h,color:v,count:x=null,overflowCount:y=99,dot:N=!1,size:C="default",title:j,offset:E,style:S,className:k,rootClassName:T,classNames:R,styles:I,showZero:M=!1}=e,B=O(e,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:P,direction:D,badge:z}=t.useContext(o.ConfigContext),F=P("badge",f),[L,_,H]=w(F),A=x>y?`${y}+`:x,V="0"===A||0===A||"0"===h||0===h,W=null===x||V&&!M,q=(null!=p||null!=v)&&W,K=null!=p||!V,Z=N&&!V,Q=Z?"":A,U=(0,t.useMemo)(()=>((null==Q||""===Q)&&(null==h||""===h)||V&&!M)&&!Z,[Q,V,M,Z,h]),G=(0,t.useRef)(x);U||(G.current=x);let X=G.current,Y=(0,t.useRef)(Q);U||(Y.current=Q);let J=Y.current,ee=(0,t.useRef)(Z);U||(ee.current=Z);let et=(0,t.useMemo)(()=>{if(!E)return Object.assign(Object.assign({},null==z?void 0:z.style),S);let e={marginTop:E[1]};return"rtl"===D?e.left=Number.parseInt(E[0],10):e.right=-Number.parseInt(E[0],10),Object.assign(Object.assign(Object.assign({},e),null==z?void 0:z.style),S)},[D,E,S,null==z?void 0:z.style]),er=null!=j?j:"string"==typeof X||"number"==typeof X?X:void 0,ea=!U&&(0===h?M:!!h&&!0!==h),en=ea?t.createElement("span",{className:`${F}-status-text`},h):null,el=X&&"object"==typeof X?(0,l.cloneElement)(X,e=>({style:Object.assign(Object.assign({},et),e.style)})):void 0,eo=(0,n.isPresetColor)(v,!1),es=(0,r.default)(null==R?void 0:R.indicator,null==(i=null==z?void 0:z.classNames)?void 0:i.indicator,{[`${F}-status-dot`]:q,[`${F}-status-${p}`]:!!p,[`${F}-color-${v}`]:eo}),ei={};v&&!eo&&(ei.color=v,ei.background=v);let ec=(0,r.default)(F,{[`${F}-status`]:q,[`${F}-not-a-wrapper`]:!g,[`${F}-rtl`]:"rtl"===D},k,T,null==z?void 0:z.className,null==(c=null==z?void 0:z.classNames)?void 0:c.root,null==R?void 0:R.root,_,H);if(!g&&q&&(h||K||!W)){let e=et.color;return L(t.createElement("span",Object.assign({},B,{className:ec,style:Object.assign(Object.assign(Object.assign({},null==I?void 0:I.root),null==(u=null==z?void 0:z.styles)?void 0:u.root),et)}),t.createElement("span",{className:es,style:Object.assign(Object.assign(Object.assign({},null==I?void 0:I.indicator),null==(d=null==z?void 0:z.styles)?void 0:d.indicator),ei)}),ea&&t.createElement("span",{style:{color:e},className:`${F}-status-text`},h)))}return L(t.createElement("span",Object.assign({ref:s},B,{className:ec,style:Object.assign(Object.assign({},null==(m=null==z?void 0:z.styles)?void 0:m.root),null==I?void 0:I.root)}),g,t.createElement(a.default,{visible:!U,motionName:`${F}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{var a,n;let l=P("scroll-number",b),o=ee.current,s=(0,r.default)(null==R?void 0:R.indicator,null==(a=null==z?void 0:z.classNames)?void 0:a.indicator,{[`${F}-dot`]:o,[`${F}-count`]:!o,[`${F}-count-sm`]:"small"===C,[`${F}-multiple-words`]:!o&&J&&J.toString().length>1,[`${F}-status-${p}`]:!!p,[`${F}-color-${v}`]:eo}),i=Object.assign(Object.assign(Object.assign({},null==I?void 0:I.indicator),null==(n=null==z?void 0:z.styles)?void 0:n.indicator),et);return v&&!eo&&((i=i||{}).background=v),t.createElement($,{prefixCls:l,show:!U,motionClassName:e,className:s,count:J,title:er,style:i,key:"scrollNumber"},el)}),en))});S.Ribbon=e=>{let{className:a,prefixCls:l,style:s,color:i,children:c,text:u,placement:d="end",rootClassName:m}=e,{getPrefixCls:f,direction:b}=t.useContext(o.ConfigContext),g=f("ribbon",l),p=`${g}-wrapper`,[h,v,x]=N(g,p),y=(0,n.isPresetColor)(i,!1),w=(0,r.default)(g,`${g}-placement-${d}`,{[`${g}-rtl`]:"rtl"===b,[`${g}-color-${i}`]:y},a),C={},j={};return i&&!y&&(C.background=i,j.color=i),h(t.createElement("div",{className:(0,r.default)(p,m,v,x)},c,t.createElement("div",{className:(0,r.default)(w,v),style:Object.assign(Object.assign({},C),s)},t.createElement("span",{className:`${g}-text`},u),t.createElement("div",{className:`${g}-corner`,style:j}))))},e.s(["Badge",0,S],906579)},785242,e=>{"use strict";var t=e.i(619273),r=e.i(266027),a=e.i(912598),n=e.i(135214),l=e.i(270345),o=e.i(243652),s=e.i(764205);let i=(0,o.createQueryKeys)("teams"),c=async(e,t,r,a={})=>{try{let n=(0,s.getProxyBaseUrl)(),l=new URLSearchParams(Object.entries({team_id:a.teamID,organization_id:a.organizationID,team_alias:a.team_alias,user_id:a.userID,page:t,page_size:r,sort_by:a.sortBy,sort_order:a.sortOrder,status:"deleted"}).filter(([,e])=>null!=e).map(([e,t])=>[e,String(t)])),o=`${n?`${n}/v2/team/list`:"/v2/team/list"}?${l}`,i=await fetch(o,{method:"GET",headers:{[(0,s.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=(0,s.deriveErrorMessage)(e);throw(0,s.handleError)(t),Error(t)}let c=await i.json();if(console.log("/team/list?status=deleted API Response:",c),c&&"object"==typeof c&&"teams"in c)return c.teams;return c}catch(e){throw console.error("Failed to list deleted teams:",e),e}},u=(0,o.createQueryKeys)("deletedTeams");e.s(["useDeletedTeams",0,(e,a,l={})=>{let{accessToken:o}=(0,n.default)();return(0,r.useQuery)({queryKey:u.list({page:e,limit:a,...l}),queryFn:async()=>await c(o,e,a,l),enabled:!!o,staleTime:3e4,placeholderData:t.keepPreviousData})},"useTeam",0,e=>{let{accessToken:t}=(0,n.default)(),l=(0,a.useQueryClient)();return(0,r.useQuery)({queryKey:i.detail(e),enabled:!!(t&&e),queryFn:async()=>{if(!t||!e)throw Error("Missing auth or teamId");return(0,s.teamInfoCall)(t,e)},initialData:()=>{if(!e)return;let t=l.getQueryData(i.list({}));return t?.find(t=>t.team_id===e)}})},"useTeams",0,()=>{let{accessToken:e,userId:t,userRole:a}=(0,n.default)();return(0,r.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.fetchTeams)(e,t,a,null),enabled:!!e})}])},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var n=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(n.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["SaveOutlined",0,l],987432)},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var n=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(n.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["ReloadOutlined",0,l],91979)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/11383a8b78399079.js b/litellm/proxy/_experimental/out/_next/static/chunks/11383a8b78399079.js new file mode 100644 index 00000000000..43d56c85417 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/11383a8b78399079.js @@ -0,0 +1,8 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),o=e.i(444755),a=e.i(673706),i=e.i(271645);let n=i.default.forwardRef((e,n)=>{let{color:l,children:s,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return i.default.createElement("p",Object.assign({ref:n,className:(0,o.tremorTwMerge)("font-medium text-tremor-title",l?(0,a.getColorClassNames)(l,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),s)});n.displayName="Title",e.s(["Title",()=>n],629569)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),o=e.i(673706),a=e.i(271645);let i=a.default.forwardRef((e,i)=>{let{color:n,className:l,children:s}=e;return a.default.createElement("p",{ref:i,className:(0,r.tremorTwMerge)("text-tremor-default",n?(0,o.getColorClassNames)(n,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),l)},s)});i.displayName="Text",e.s(["default",()=>i],936325),e.s(["Text",()=>i],599724)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(480731),a=e.i(95779),i=e.i(444755),n=e.i(673706);let l=(0,n.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:m,className:u}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,i.tremorTwMerge)(l("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,n.getColorClassNames)(c,a.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case o.HorizontalPositions.Left:return"border-l-4";case o.VerticalPositions.Top:return"border-t-4";case o.HorizontalPositions.Right:return"border-r-4";case o.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),u)},g),m)});s.displayName="Card",e.s(["Card",()=>s],304967)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),o=e.i(271645);let a=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],i=e=>({_s:e,status:a[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),n=e=>e?6:5,l=(e,t,r,o,a)=>{clearTimeout(o.current);let n=i(e);t(n),r.current=n,a&&a({current:n})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return o.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),o.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),o.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var u=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},p=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,u.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},h=(0,c.makeClassName)("Button"),b=({loading:e,iconSize:t,iconPosition:r,Icon:a,needMargin:i,transitionStatus:n})=>{let l=i?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),u={default:c,entering:c,entered:t,exiting:t,exited:c};return e?o.default.createElement(m,{className:(0,d.tremorTwMerge)(h("icon"),"animate-spin shrink-0",l,u.default,u[n]),style:{transition:"width 150ms"}}):o.default.createElement(a,{className:(0,d.tremorTwMerge)(h("icon"),"shrink-0",t,l)})},f=o.default.forwardRef((e,a)=>{let{icon:m,iconPosition:u=s.HorizontalPositions.Left,size:f=s.Sizes.SM,color:v,variant:C="primary",disabled:$,loading:x=!1,loadingText:k,children:w,tooltip:y,className:S}=e,N=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),z=x||$,E=void 0!==m||x,O=x&&k,j=!(!w&&!O),T=(0,d.tremorTwMerge)(g[f].height,g[f].width),M="light"!==C?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",P=p(C,v),q=("light"!==C?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[f],{tooltipProps:B,getReferenceProps:R}=(0,r.useTooltip)(300),[I,D]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:a,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:u}={})=>{let[g,p]=(0,o.useState)(()=>i(d?2:n(c))),h=(0,o.useRef)(g),b=(0,o.useRef)(0),[f,v]="object"==typeof s?[s.enter,s.exit]:[s,s],C=(0,o.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return n(t)}})(h.current._s,m);e&&l(e,p,h,b,u)},[u,m]);return[g,(0,o.useCallback)(o=>{let i=e=>{switch(l(e,p,h,b,u),e){case 1:f>=0&&(b.current=((...e)=>setTimeout(...e))(C,f));break;case 4:v>=0&&(b.current=((...e)=>setTimeout(...e))(C,v));break;case 0:case 3:b.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||i(e+1)},0)}},s=h.current.isEnter;"boolean"!=typeof o&&(o=!s),o?s||i(e?+!r:2):s&&i(t?a?3:4:n(m))},[C,u,e,t,r,a,f,v,m]),C]})({timeout:50});return(0,o.useEffect)(()=>{D(x)},[x]),o.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([a,B.refs.setReference]),className:(0,d.tremorTwMerge)(h("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",M,q.paddingX,q.paddingY,q.fontSize,P.textColor,P.bgColor,P.borderColor,P.hoverBorderColor,z?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(p(C,v).hoverTextColor,p(C,v).hoverBgColor,p(C,v).hoverBorderColor),S),disabled:z},R,N),o.default.createElement(r.default,Object.assign({text:y},B)),E&&u!==s.HorizontalPositions.Right?o.default.createElement(b,{loading:x,iconSize:T,iconPosition:u,Icon:m,transitionStatus:I.status,needMargin:j}):null,O||w?o.default.createElement("span",{className:(0,d.tremorTwMerge)(h("text"),"text-tremor-default whitespace-nowrap")},O?k:w):null,E&&u===s.HorizontalPositions.Right?o.default.createElement(b,{loading:x,iconSize:T,iconPosition:u,Icon:m,transitionStatus:I.status,needMargin:j}):null)});f.displayName="Button",e.s(["Button",()=>f],994388)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(242064),a=e.i(529681);let i=e=>{let{prefixCls:o,className:a,style:i,size:n,shape:l}=e,s=(0,r.default)({[`${o}-lg`]:"large"===n,[`${o}-sm`]:"small"===n}),d=(0,r.default)({[`${o}-circle`]:"circle"===l,[`${o}-square`]:"square"===l,[`${o}-round`]:"round"===l}),c=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,r.default)(o,s,d,a),style:Object.assign(Object.assign({},c),i)})};e.i(296059);var n=e.i(694758),l=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,l.unit)(e)}),u=e=>Object.assign({width:e},m(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),p=e=>Object.assign({width:e},m(e)),h=(e,t,r)=>{let{skeletonButtonCls:o}=e;return{[`${r}${o}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${o}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),f=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:o,skeletonParagraphCls:a,skeletonButtonCls:i,skeletonInputCls:n,skeletonImageCls:l,controlHeight:s,controlHeightLG:d,controlHeightSM:m,gradientFromColor:f,padding:v,marginSM:C,borderRadius:$,titleHeight:x,blockRadius:k,paragraphLiHeight:w,controlHeightXS:y,paragraphMarginTop:S}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:v,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:f},u(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},u(d)),[`${r}-sm`]:Object.assign({},u(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[o]:{width:"100%",height:x,background:f,borderRadius:k,[`+ ${a}`]:{marginBlockStart:m}},[a]:{padding:0,"> li":{width:"100%",height:w,listStyle:"none",background:f,borderRadius:k,"+ li":{marginBlockStart:y}}},[`${a}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${o}, ${a} > li`]:{borderRadius:$}}},[`${t}-with-avatar ${t}-content`]:{[o]:{marginBlockStart:C,[`+ ${a}`]:{marginBlockStart:S}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:o,controlHeightLG:a,controlHeightSM:i,gradientFromColor:n,calc:l}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:l(o).mul(2).equal(),minWidth:l(o).mul(2).equal()},b(o,l))},h(e,o,r)),{[`${r}-lg`]:Object.assign({},b(a,l))}),h(e,a,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},b(i,l))}),h(e,i,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:o,controlHeightLG:a,controlHeightSM:i}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},u(o)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},u(a)),[`${t}${t}-sm`]:Object.assign({},u(i))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:o,controlHeightLG:a,controlHeightSM:i,gradientFromColor:n,calc:l}=e;return{[o]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:r},g(t,l)),[`${o}-lg`]:Object.assign({},g(a,l)),[`${o}-sm`]:Object.assign({},g(i,l))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:o,borderRadiusSM:a,calc:i}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:o,borderRadius:a},p(i(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},p(r)),{maxWidth:i(r).mul(4).equal(),maxHeight:i(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[i]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${o}, + ${a} > li, + ${r}, + ${i}, + ${n}, + ${l} + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),v=e=>{let{prefixCls:o,className:a,style:i,rows:n=0}=e,l=Array.from({length:n}).map((r,o)=>t.createElement("li",{key:o,style:{width:((e,t)=>{let{width:r,rows:o=2}=t;return Array.isArray(r)?r[e]:o-1===e?r:void 0})(o,e)}}));return t.createElement("ul",{className:(0,r.default)(o,a),style:i},l)},C=({prefixCls:e,className:o,width:a,style:i})=>t.createElement("h3",{className:(0,r.default)(e,o),style:Object.assign({width:a},i)});function $(e){return e&&"object"==typeof e?e:{}}let x=e=>{let{prefixCls:a,loading:n,className:l,rootClassName:s,style:d,children:c,avatar:m=!1,title:u=!0,paragraph:g=!0,active:p,round:h}=e,{getPrefixCls:b,direction:x,className:k,style:w}=(0,o.useComponentConfig)("skeleton"),y=b("skeleton",a),[S,N,z]=f(y);if(n||!("loading"in e)){let e,o,a=!!m,n=!!u,c=!!g;if(a){let r=Object.assign(Object.assign({prefixCls:`${y}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),$(m));e=t.createElement("div",{className:`${y}-header`},t.createElement(i,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${y}-title`},!a&&c?{width:"38%"}:a&&c?{width:"50%"}:{}),$(u));e=t.createElement(C,Object.assign({},r))}if(c){let e,o=Object.assign(Object.assign({prefixCls:`${y}-paragraph`},(e={},a&&n||(e.width="61%"),!a&&n?e.rows=3:e.rows=2,e)),$(g));r=t.createElement(v,Object.assign({},o))}o=t.createElement("div",{className:`${y}-content`},e,r)}let b=(0,r.default)(y,{[`${y}-with-avatar`]:a,[`${y}-active`]:p,[`${y}-rtl`]:"rtl"===x,[`${y}-round`]:h},k,l,s,N,z);return S(t.createElement("div",{className:b,style:Object.assign(Object.assign({},w),d)},e,o))}return null!=c?c:null};x.Button=e=>{let{prefixCls:n,className:l,rootClassName:s,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:u}=t.useContext(o.ConfigContext),g=u("skeleton",n),[p,h,b]=f(g),v=(0,a.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,h,b);return p(t.createElement("div",{className:C},t.createElement(i,Object.assign({prefixCls:`${g}-button`,size:m},v))))},x.Avatar=e=>{let{prefixCls:n,className:l,rootClassName:s,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:u}=t.useContext(o.ConfigContext),g=u("skeleton",n),[p,h,b]=f(g),v=(0,a.default)(e,["prefixCls","className"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},l,s,h,b);return p(t.createElement("div",{className:C},t.createElement(i,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:m},v))))},x.Input=e=>{let{prefixCls:n,className:l,rootClassName:s,active:d,block:c,size:m="default"}=e,{getPrefixCls:u}=t.useContext(o.ConfigContext),g=u("skeleton",n),[p,h,b]=f(g),v=(0,a.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,h,b);return p(t.createElement("div",{className:C},t.createElement(i,Object.assign({prefixCls:`${g}-input`,size:m},v))))},x.Image=e=>{let{prefixCls:a,className:i,rootClassName:n,style:l,active:s}=e,{getPrefixCls:d}=t.useContext(o.ConfigContext),c=d("skeleton",a),[m,u,g]=f(c),p=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},i,n,u,g);return m(t.createElement("div",{className:p},t.createElement("div",{className:(0,r.default)(`${c}-image`,i),style:l},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},x.Node=e=>{let{prefixCls:a,className:i,rootClassName:n,style:l,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(o.ConfigContext),m=c("skeleton",a),[u,g,p]=f(m),h=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:s},g,i,n,p);return u(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${m}-image`,i),style:l},d)))},e.s(["default",0,x],185793)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),o=e.i(343794),a=e.i(242064),i=e.i(763731),n=e.i(174428);let l=80*Math.PI,s=e=>{let{dotClassName:t,style:a,hasCircleCls:i}=e;return r.createElement("circle",{className:(0,o.default)(`${t}-circle`,{[`${t}-circle-bg`]:i}),r:40,cx:50,cy:50,strokeWidth:20,style:a})},d=({percent:e,prefixCls:t})=>{let a=`${t}-dot`,i=`${a}-holder`,d=`${i}-hidden`,[c,m]=r.useState(!1);(0,n.default)(()=>{0!==e&&m(!0)},[0!==e]);let u=Math.max(Math.min(e,100),0);if(!c)return null;let g={strokeDashoffset:`${l/4}`,strokeDasharray:`${l*u/100} ${l*(100-u)/100}`};return r.createElement("span",{className:(0,o.default)(i,`${a}-progress`,u<=0&&d)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u},r.createElement(s,{dotClassName:a,hasCircleCls:!0}),r.createElement(s,{dotClassName:a,style:g})))};function c(e){let{prefixCls:t,percent:a=0}=e,i=`${t}-dot`,n=`${i}-holder`,l=`${n}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,o.default)(n,a>0&&l)},r.createElement("span",{className:(0,o.default)(i,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(d,{prefixCls:t,percent:a}))}function m(e){var t;let{prefixCls:a,indicator:n,percent:l}=e,s=`${a}-dot`;return n&&r.isValidElement(n)?(0,i.cloneElement)(n,{className:(0,o.default)(null==(t=n.props)?void 0:t.className,s),percent:l}):r.createElement(c,{prefixCls:a,percent:l})}e.i(296059);var u=e.i(694758),g=e.i(183293),p=e.i(246422),h=e.i(838378);let b=new u.Keyframes("antSpinMove",{to:{opacity:1}}),f=new u.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),v=(0,p.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:b,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:f,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,h.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),C=[[30,.05],[70,.03],[96,.01]];var $=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,o=Object.getOwnPropertySymbols(e);at.indexOf(o[a])&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(r[o[a]]=e[o[a]]);return r};let x=e=>{var i;let{prefixCls:n,spinning:l=!0,delay:s=0,className:d,rootClassName:c,size:u="default",tip:g,wrapperClassName:p,style:h,children:b,fullscreen:f=!1,indicator:x,percent:k}=e,w=$(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:y,direction:S,className:N,style:z,indicator:E}=(0,a.useComponentConfig)("spin"),O=y("spin",n),[j,T,M]=v(O),[P,q]=r.useState(()=>l&&(!l||!s||!!Number.isNaN(Number(s)))),B=function(e,t){let[o,a]=r.useState(0),i=r.useRef(null),n="auto"===t;return r.useEffect(()=>(n&&e&&(a(0),i.current=setInterval(()=>{a(e=>{let t=100-e;for(let r=0;r{i.current&&(clearInterval(i.current),i.current=null)}),[n,e]),n?o:t}(P,k);r.useEffect(()=>{if(l){let e=function(e,t,r){var o,a=r||{},i=a.noTrailing,n=void 0!==i&&i,l=a.noLeading,s=void 0!==l&&l,d=a.debounceMode,c=void 0===d?void 0:d,m=!1,u=0;function g(){o&&clearTimeout(o)}function p(){for(var r=arguments.length,a=Array(r),i=0;ie?s?(u=Date.now(),n||(o=setTimeout(c?h:p,e))):p():!0!==n&&(o=setTimeout(c?h:p,void 0===c?e-d:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly;g(),m=!(void 0!==t&&t)},p}(s,()=>{q(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}q(!1)},[s,l]);let R=r.useMemo(()=>void 0!==b&&!f,[b,f]),I=(0,o.default)(O,N,{[`${O}-sm`]:"small"===u,[`${O}-lg`]:"large"===u,[`${O}-spinning`]:P,[`${O}-show-text`]:!!g,[`${O}-rtl`]:"rtl"===S},d,!f&&c,T,M),D=(0,o.default)(`${O}-container`,{[`${O}-blur`]:P}),H=null!=(i=null!=x?x:E)?i:t,X=Object.assign(Object.assign({},z),h),L=r.createElement("div",Object.assign({},w,{style:X,className:I,"aria-live":"polite","aria-busy":P}),r.createElement(m,{prefixCls:O,indicator:H,percent:B}),g&&(R||f)?r.createElement("div",{className:`${O}-text`},g):null);return j(R?r.createElement("div",Object.assign({},w,{className:(0,o.default)(`${O}-nested-loading`,p,T,M)}),P&&r.createElement("div",{key:"loading"},L),r.createElement("div",{className:D,key:"container"},b)):f?r.createElement("div",{className:(0,o.default)(`${O}-fullscreen`,{[`${O}-fullscreen-show`]:P},c,T,M)},L):L)};x.setDefaultIndicator=e=>{t=e},e.s(["default",0,x],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},983561,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"robot",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:o}))});e.s(["RobotOutlined",0,i],983561)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/120d96e5e05ab994.js b/litellm/proxy/_experimental/out/_next/static/chunks/120d96e5e05ab994.js new file mode 100644 index 00000000000..cc35a06c260 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/120d96e5e05ab994.js @@ -0,0 +1,2 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(914949),o=e.i(404948);let i=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,i],836938);var s=e.i(613541),a=e.i(763731),l=e.i(242064),u=e.i(491816);e.i(793154);var c=e.i(880476),d=e.i(183293),p=e.i(717356),m=e.i(320560),f=e.i(307358),h=e.i(246422),g=e.i(838378),v=e.i(617933);let b=(0,h.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,n=(0,g.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:n,fontWeightStrong:o,innerPadding:i,boxShadowSecondary:s,colorTextHeading:a,borderRadiusLG:l,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:p,popoverBg:f,titleBorderBottom:h,innerContentPadding:g,titlePadding:v}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":p,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:"padding-box",borderRadius:l,boxShadow:s,padding:i},[`${t}-title`]:{minWidth:n,marginBottom:c,color:a,fontWeight:o,borderBottom:h,padding:v},[`${t}-inner-content`]:{color:r,padding:g}})},(0,m.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(n),(e=>{let{componentCls:t}=e;return{[t]:v.PresetColors.map(r=>{let n=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":n,[`${t}-inner`]:{backgroundColor:n},[`${t}-arrow`]:{background:"transparent"}}}})}})(n),(0,p.initZoomMotion)(n,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:n,padding:o,wireframe:i,zIndexPopupBase:s,borderRadiusLG:a,marginXS:l,lineType:u,colorSplit:c,paddingSM:d}=e,p=r-n;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:s+30},(0,f.getArrowToken)(e)),(0,m.getArrowOffsetToken)({contentRadius:a,limitVerticalRadius:!0})),{innerPadding:12*!i,titleMarginBottom:i?0:l,titlePadding:i?`${p/2}px ${o}px ${p/2-t}px`:0,titleBorderBottom:i?`${t}px ${u} ${c}`:"none",innerContentPadding:i?`${d}px ${o}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let C=({title:e,content:r,prefixCls:n})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${n}-title`},e),r&&t.createElement("div",{className:`${n}-inner-content`},r)):null,x=e=>{let{hashId:n,prefixCls:o,className:s,style:a,placement:l="top",title:u,content:d,children:p}=e,m=i(u),f=i(d),h=(0,r.default)(n,o,`${o}-pure`,`${o}-placement-${l}`,s);return t.createElement("div",{className:h,style:a},t.createElement("div",{className:`${o}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:n,prefixCls:o}),p||t.createElement(C,{prefixCls:o,title:m,content:f})))},E=e=>{let{prefixCls:n,className:o}=e,i=y(e,["prefixCls","className"]),{getPrefixCls:s}=t.useContext(l.ConfigContext),a=s("popover",n),[u,c,d]=b(a);return u(t.createElement(x,Object.assign({},i,{prefixCls:a,hashId:c,className:(0,r.default)(o,d)})))};e.s(["Overlay",0,C,"default",0,E],310730);var O=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let k=t.forwardRef((e,c)=>{var d,p;let{prefixCls:m,title:f,content:h,overlayClassName:g,placement:v="top",trigger:y="hover",children:x,mouseEnterDelay:E=.1,mouseLeaveDelay:k=.1,onOpenChange:w,overlayStyle:P={},styles:S,classNames:j}=e,M=O(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:R,className:N,style:T,classNames:F,styles:D}=(0,l.useComponentConfig)("popover"),$=R("popover",m),[I,A,L]=b($),B=R(),H=(0,r.default)(g,A,L,N,F.root,null==j?void 0:j.root),K=(0,r.default)(F.body,null==j?void 0:j.body),[W,V]=(0,n.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(p=e.defaultOpen)?p:e.defaultVisible}),U=(e,t)=>{V(e,!0),null==w||w(e,t)},z=i(f),q=i(h);return I(t.createElement(u.default,Object.assign({placement:v,trigger:y,mouseEnterDelay:E,mouseLeaveDelay:k},M,{prefixCls:$,classNames:{root:H,body:K},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},D.root),T),P),null==S?void 0:S.root),body:Object.assign(Object.assign({},D.body),null==S?void 0:S.body)},ref:c,open:W,onOpenChange:e=>{U(e)},overlay:z||q?t.createElement(C,{prefixCls:$,title:z,content:q}):null,transitionName:(0,s.getTransitionName)(B,"zoom-big",M.transitionName),"data-popover-inject":!0}),(0,a.cloneElement)(x,{onKeyDown:e=>{var r,n;(0,t.isValidElement)(x)&&(null==(n=null==x?void 0:(r=x.props).onKeyDown)||n.call(r,e)),e.keyCode===o.default.ESC&&U(!1,e)}})))});k._InternalPanelDoNotUseOrYouWillBeFired=E,e.s(["default",0,k],829672)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),n=e.i(371330),o=e.i(271645),i=e.i(394487),s=e.i(503269),a=e.i(214520),l=e.i(746725),u=e.i(914189),c=e.i(144279),d=e.i(294316),p=e.i(601893),m=e.i(140721),f=e.i(942803),h=e.i(233538),g=e.i(694421),v=e.i(700020),b=e.i(35889),y=e.i(998348),C=e.i(722678);let x=(0,o.createContext)(null);x.displayName="GroupContext";let E=o.Fragment,O=Object.assign((0,v.forwardRefWithAs)(function(e,t){var E;let O=(0,o.useId)(),k=(0,f.useProvidedId)(),w=(0,p.useDisabled)(),{id:P=k||`headlessui-switch-${O}`,disabled:S=w||!1,checked:j,defaultChecked:M,onChange:R,name:N,value:T,form:F,autoFocus:D=!1,...$}=e,I=(0,o.useContext)(x),[A,L]=(0,o.useState)(null),B=(0,o.useRef)(null),H=(0,d.useSyncRefs)(B,t,null===I?null:I.setSwitch,L),K=(0,a.useDefaultValue)(M),[W,V]=(0,s.useControllable)(j,R,null!=K&&K),U=(0,l.useDisposables)(),[z,q]=(0,o.useState)(!1),G=(0,u.useEvent)(()=>{q(!0),null==V||V(!W),U.nextFrame(()=>{q(!1)})}),_=(0,u.useEvent)(e=>{if((0,h.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),G()}),Y=(0,u.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),G()):e.key===y.Keys.Enter&&(0,g.attemptSubmit)(e.currentTarget)}),Q=(0,u.useEvent)(e=>e.preventDefault()),Z=(0,C.useLabelledBy)(),J=(0,b.useDescribedBy)(),{isFocusVisible:X,focusProps:ee}=(0,r.useFocusRing)({autoFocus:D}),{isHovered:et,hoverProps:er}=(0,n.useHover)({isDisabled:S}),{pressed:en,pressProps:eo}=(0,i.useActivePress)({disabled:S}),ei=(0,o.useMemo)(()=>({checked:W,disabled:S,hover:et,focus:X,active:en,autofocus:D,changing:z}),[W,et,X,en,S,z,D]),es=(0,v.mergeProps)({id:P,ref:H,role:"switch",type:(0,c.useResolveButtonType)(e,A),tabIndex:-1===e.tabIndex?0:null!=(E=e.tabIndex)?E:0,"aria-checked":W,"aria-labelledby":Z,"aria-describedby":J,disabled:S||void 0,autoFocus:D,onClick:_,onKeyUp:Y,onKeyPress:Q},ee,er,eo),ea=(0,o.useCallback)(()=>{if(void 0!==K)return null==V?void 0:V(K)},[V,K]),el=(0,v.useRender)();return o.default.createElement(o.default.Fragment,null,null!=N&&o.default.createElement(m.FormFields,{disabled:S,data:{[N]:T||"on"},overrides:{type:"checkbox",checked:W},form:F,onReset:ea}),el({ourProps:es,theirProps:$,slot:ei,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,n]=(0,o.useState)(null),[i,s]=(0,C.useLabels)(),[a,l]=(0,b.useDescriptions)(),u=(0,o.useMemo)(()=>({switch:r,setSwitch:n}),[r,n]),c=(0,v.useRender)();return o.default.createElement(l,{name:"Switch.Description",value:a},o.default.createElement(s,{name:"Switch.Label",value:i,props:{htmlFor:null==(t=u.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},o.default.createElement(x.Provider,{value:u},c({ourProps:{},theirProps:e,slot:{},defaultTag:E,name:"Switch.Group"}))))},Label:C.Label,Description:b.Description});var k=e.i(888288),w=e.i(95779),P=e.i(444755),S=e.i(673706),j=e.i(829087);let M=(0,S.makeClassName)("Switch"),R=o.default.forwardRef((e,r)=>{let{checked:n,defaultChecked:i=!1,onChange:s,color:a,name:l,error:u,errorMessage:c,disabled:d,required:p,tooltip:m,id:f}=e,h=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),g={bgColor:a?(0,S.getColorClassNames)(a,w.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:a?(0,S.getColorClassNames)(a,w.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[v,b]=(0,k.default)(i,n),[y,C]=(0,o.useState)(!1),{tooltipProps:x,getReferenceProps:E}=(0,j.useTooltip)(300);return o.default.createElement("div",{className:"flex flex-row items-center justify-start"},o.default.createElement(j.default,Object.assign({text:m},x)),o.default.createElement("div",Object.assign({ref:(0,S.mergeRefs)([r,x.refs.setReference]),className:(0,P.tremorTwMerge)(M("root"),"flex flex-row relative h-5")},h,E),o.default.createElement("input",{type:"checkbox",className:(0,P.tremorTwMerge)(M("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:l,required:p,checked:v,onChange:e=>{e.preventDefault()}}),o.default.createElement(O,{checked:v,onChange:e=>{b(e),null==s||s(e)},disabled:d,className:(0,P.tremorTwMerge)(M("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>C(!0),onBlur:()=>C(!1),id:f},o.default.createElement("span",{className:(0,P.tremorTwMerge)(M("sr-only"),"sr-only")},"Switch ",v?"on":"off"),o.default.createElement("span",{"aria-hidden":"true",className:(0,P.tremorTwMerge)(M("background"),v?g.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),o.default.createElement("span",{"aria-hidden":"true",className:(0,P.tremorTwMerge)(M("round"),v?(0,P.tremorTwMerge)(g.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,P.tremorTwMerge)("ring-2",g.ringColor):"")}))),u&&c?o.default.createElement("p",{className:(0,P.tremorTwMerge)(M("errorMessage"),"text-sm text-red-500 mt-1 ")},c):null)});R.displayName="Switch",e.s(["Switch",()=>R],793130)},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},83733,233137,e=>{"use strict";let t,r;var n,o,i=e.i(247167),s=e.i(271645),a=e.i(544508),l=e.i(746725),u=e.i(835696);void 0!==i.default&&"u">typeof globalThis&&"u">typeof Element&&(null==(n=null==i.default?void 0:i.default.env)?void 0:n.NODE_ENV)==="test"&&void 0===(null==(o=null==Element?void 0:Element.prototype)?void 0:o.getAnimations)&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(` +`)),[]});var c=((t=c||{})[t.None=0]="None",t[t.Closed=1]="Closed",t[t.Enter=2]="Enter",t[t.Leave=4]="Leave",t);function d(e){let t={};for(let r in e)!0===e[r]&&(t[`data-${r}`]="");return t}function p(e,t,r,n){let[o,i]=(0,s.useState)(r),{hasFlag:c,addFlag:d,removeFlag:p}=function(e=0){let[t,r]=(0,s.useState)(e),n=(0,s.useCallback)(e=>r(e),[t]),o=(0,s.useCallback)(e=>r(t=>t|e),[t]),i=(0,s.useCallback)(e=>(t&e)===e,[t]);return{flags:t,setFlag:n,addFlag:o,hasFlag:i,removeFlag:(0,s.useCallback)(e=>r(t=>t&~e),[r]),toggleFlag:(0,s.useCallback)(e=>r(t=>t^e),[r])}}(e&&o?3:0),m=(0,s.useRef)(!1),f=(0,s.useRef)(!1),h=(0,l.useDisposables)();return(0,u.useIsoMorphicEffect)(()=>{var o;if(e){if(r&&i(!0),!t){r&&d(3);return}return null==(o=null==n?void 0:n.start)||o.call(n,r),function(e,{prepare:t,run:r,done:n,inFlight:o}){let i=(0,a.disposables)();return function(e,{inFlight:t,prepare:r}){if(null!=t&&t.current)return r();let n=e.style.transition;e.style.transition="none",r(),e.offsetHeight,e.style.transition=n}(e,{prepare:t,inFlight:o}),i.nextFrame(()=>{r(),i.requestAnimationFrame(()=>{i.add(function(e,t){var r,n;let o=(0,a.disposables)();if(!e)return o.dispose;let i=!1;o.add(()=>{i=!0});let s=null!=(n=null==(r=e.getAnimations)?void 0:r.call(e).filter(e=>e instanceof CSSTransition))?n:[];return 0===s.length?t():Promise.allSettled(s.map(e=>e.finished)).then(()=>{i||t()}),o.dispose}(e,n))})}),i.dispose}(t,{inFlight:m,prepare(){f.current?f.current=!1:f.current=m.current,m.current=!0,f.current||(r?(d(3),p(4)):(d(4),p(2)))},run(){f.current?r?(p(3),d(4)):(p(4),d(3)):r?p(1):d(1)},done(){var e;f.current&&"function"==typeof t.getAnimations&&t.getAnimations().length>0||(m.current=!1,p(7),r||i(!1),null==(e=null==n?void 0:n.end)||e.call(n,r))}})}},[e,r,t,h]),e?[o,{closed:c(1),enter:c(2),leave:c(4),transition:c(2)||c(4)}]:[r,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}e.s(["transitionDataAttributes",()=>d,"useTransition",()=>p],83733);let m=(0,s.createContext)(null);m.displayName="OpenClosedContext";var f=((r=f||{})[r.Open=1]="Open",r[r.Closed=2]="Closed",r[r.Closing=4]="Closing",r[r.Opening=8]="Opening",r);function h(){return(0,s.useContext)(m)}function g({value:e,children:t}){return s.default.createElement(m.Provider,{value:e},t)}function v({children:e}){return s.default.createElement(m.Provider,{value:null},e)}e.s(["OpenClosedProvider",()=>g,"ResetOpenClosedProvider",()=>v,"State",()=>f,"useOpenClosed",()=>h],233137)},888288,e=>{"use strict";var t=e.i(271645);let r=(e,r)=>{let n=void 0!==r,[o,i]=(0,t.useState)(e);return[n?r:o,e=>{n||i(e)}]};e.s(["default",()=>r])},233538,e=>{"use strict";function t(e){let t=e.parentElement,r=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(r=t),t=t.parentElement;let n=(null==t?void 0:t.getAttribute("disabled"))==="";return!(n&&function(e){if(!e)return!1;let t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(r))&&n}e.s(["isDisabledReactIssue7711",()=>t])},503269,214520,601893,694421,140721,942803,35889,722678,e=>{"use strict";var t=e.i(271645),r=e.i(914189);function n(e,n,o){let[i,s]=(0,t.useState)(o),a=void 0!==e,l=(0,t.useRef)(a),u=(0,t.useRef)(!1),c=(0,t.useRef)(!1);return!a||l.current||u.current?a||!l.current||c.current||(c.current=!0,l.current=a,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")):(u.current=!0,l.current=a,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")),[a?e:i,(0,r.useEvent)(e=>(a||s(e),null==n?void 0:n(e)))]}function o(e){let[r]=(0,t.useState)(e);return r}e.s(["useControllable",()=>n],503269),e.s(["useDefaultValue",()=>o],214520);let i=(0,t.createContext)(void 0);function s(){return(0,t.useContext)(i)}e.s(["useDisabled",()=>s],601893);var a=e.i(174080),l=e.i(746725);function u(e={},t=null,r=[]){for(let[n,o]of Object.entries(e))!function e(t,r,n){if(Array.isArray(n))for(let[o,i]of n.entries())e(t,c(r,o.toString()),i);else n instanceof Date?t.push([r,n.toISOString()]):"boolean"==typeof n?t.push([r,n?"1":"0"]):"string"==typeof n?t.push([r,n]):"number"==typeof n?t.push([r,`${n}`]):null==n?t.push([r,""]):u(n,r,t)}(r,c(t,n),o);return r}function c(e,t){return e?e+"["+t+"]":t}function d(e){var t,r;let n=null!=(t=null==e?void 0:e.form)?t:e.closest("form");if(n){for(let t of n.elements)if(t!==e&&("INPUT"===t.tagName&&"submit"===t.type||"BUTTON"===t.tagName&&"submit"===t.type||"INPUT"===t.nodeName&&"image"===t.type))return void t.click();null==(r=n.requestSubmit)||r.call(n)}}e.s(["attemptSubmit",()=>d,"objectToFormEntries",()=>u],694421);var p=e.i(700020),m=e.i(2788);let f=(0,t.createContext)(null);function h({children:e}){let r=(0,t.useContext)(f);if(!r)return t.default.createElement(t.default.Fragment,null,e);let{target:n}=r;return n?(0,a.createPortal)(t.default.createElement(t.default.Fragment,null,e),n):null}function g({data:e,form:r,disabled:n,onReset:o,overrides:i}){let[s,a]=(0,t.useState)(null),c=(0,l.useDisposables)();return(0,t.useEffect)(()=>{if(o&&s)return c.addEventListener(s,"reset",o)},[s,r,o]),t.default.createElement(h,null,t.default.createElement(v,{setForm:a,formId:r}),u(e).map(([e,o])=>t.default.createElement(m.Hidden,{features:m.HiddenFeatures.Hidden,...(0,p.compact)({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:r,disabled:n,name:e,value:o,...i})})))}function v({setForm:e,formId:r}){return(0,t.useEffect)(()=>{if(r){let t=document.getElementById(r);t&&e(t)}},[e,r]),r?null:t.default.createElement(m.Hidden,{features:m.HiddenFeatures.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:t=>{if(!t)return;let r=t.closest("form");r&&e(r)}})}e.s(["FormFields",()=>g],140721);let b=(0,t.createContext)(void 0);function y(){return(0,t.useContext)(b)}e.s(["useProvidedId",()=>y],942803);var C=e.i(835696),x=e.i(294316);let E=(0,t.createContext)(null);function O(){var e,r;return null!=(r=null==(e=(0,t.useContext)(E))?void 0:e.value)?r:void 0}function k(){let[e,n]=(0,t.useState)([]);return[e.length>0?e.join(" "):void 0,(0,t.useMemo)(()=>function(e){let o=(0,r.useEvent)(e=>(n(t=>[...t,e]),()=>n(t=>{let r=t.slice(),n=r.indexOf(e);return -1!==n&&r.splice(n,1),r}))),i=(0,t.useMemo)(()=>({register:o,slot:e.slot,name:e.name,props:e.props,value:e.value}),[o,e.slot,e.name,e.props,e.value]);return t.default.createElement(E.Provider,{value:i},e.children)},[n])]}E.displayName="DescriptionContext";let w=Object.assign((0,p.forwardRefWithAs)(function(e,r){let n=(0,t.useId)(),o=s(),{id:i=`headlessui-description-${n}`,...a}=e,l=function e(){let r=(0,t.useContext)(E);if(null===r){let t=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return r}(),u=(0,x.useSyncRefs)(r);(0,C.useIsoMorphicEffect)(()=>l.register(i),[i,l.register]);let c=o||!1,d=(0,t.useMemo)(()=>({...l.slot,disabled:c}),[l.slot,c]),m={ref:u,...l.props,id:i};return(0,p.useRender)()({ourProps:m,theirProps:a,slot:d,defaultTag:"p",name:l.name||"Description"})}),{});e.s(["Description",()=>w,"useDescribedBy",()=>O,"useDescriptions",()=>k],35889);let P=(0,t.createContext)(null);function S(e){var r,n,o;let i=null!=(n=null==(r=(0,t.useContext)(P))?void 0:r.value)?n:void 0;return(null!=(o=null==e?void 0:e.length)?o:0)>0?[i,...e].filter(Boolean).join(" "):i}function j({inherit:e=!1}={}){let n=S(),[o,i]=(0,t.useState)([]),s=e?[n,...o].filter(Boolean):o;return[s.length>0?s.join(" "):void 0,(0,t.useMemo)(()=>function(e){let n=(0,r.useEvent)(e=>(i(t=>[...t,e]),()=>i(t=>{let r=t.slice(),n=r.indexOf(e);return -1!==n&&r.splice(n,1),r}))),o=(0,t.useMemo)(()=>({register:n,slot:e.slot,name:e.name,props:e.props,value:e.value}),[n,e.slot,e.name,e.props,e.value]);return t.default.createElement(P.Provider,{value:o},e.children)},[i])]}P.displayName="LabelContext";let M=Object.assign((0,p.forwardRefWithAs)(function(e,n){var o;let i=(0,t.useId)(),a=function e(){let r=(0,t.useContext)(P);if(null===r){let t=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return r}(),l=y(),u=s(),{id:c=`headlessui-label-${i}`,htmlFor:d=null!=l?l:null==(o=a.props)?void 0:o.htmlFor,passive:m=!1,...f}=e,h=(0,x.useSyncRefs)(n);(0,C.useIsoMorphicEffect)(()=>a.register(c),[c,a.register]);let g=(0,r.useEvent)(e=>{let t=e.currentTarget;if(t instanceof HTMLLabelElement&&e.preventDefault(),a.props&&"onClick"in a.props&&"function"==typeof a.props.onClick&&a.props.onClick(e),t instanceof HTMLLabelElement){let e=document.getElementById(t.htmlFor);if(e){let t=e.getAttribute("disabled");if("true"===t||""===t)return;let r=e.getAttribute("aria-disabled");if("true"===r||""===r)return;(e instanceof HTMLInputElement&&("radio"===e.type||"checkbox"===e.type)||"radio"===e.role||"checkbox"===e.role||"switch"===e.role)&&e.click(),e.focus({preventScroll:!0})}}}),v=u||!1,b=(0,t.useMemo)(()=>({...a.slot,disabled:v}),[a.slot,v]),E={ref:h,...a.props,id:c,htmlFor:d,onClick:g};return m&&("onClick"in E&&(delete E.htmlFor,delete E.onClick),"onClick"in f&&delete f.onClick),(0,p.useRender)()({ourProps:E,theirProps:f,slot:b,defaultTag:d?"label":"div",name:a.name||"Label"})}),{});e.s(["Label",()=>M,"useLabelledBy",()=>S,"useLabels",()=>j],722678)},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(562901),n=e.i(343794),o=e.i(914949),i=e.i(529681),s=e.i(242064),a=e.i(829672),l=e.i(285781),u=e.i(836938),c=e.i(920228),d=e.i(62405),p=e.i(408850),m=e.i(87414),f=e.i(310730);let h=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:r,antCls:n,zIndexPopup:o,colorText:i,colorWarning:s,marginXXS:a,marginXS:l,fontSize:u,fontWeightStrong:c,colorTextHeading:d}=e;return{[t]:{zIndex:o,[`&${n}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:l,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${r}`]:{color:s,fontSize:u,lineHeight:1,marginInlineEnd:l},[`${t}-title`]:{fontWeight:c,color:d,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:a,color:i}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:l}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var g=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let v=e=>{let{prefixCls:n,okButtonProps:o,cancelButtonProps:i,title:a,description:f,cancelText:h,okText:g,okType:v="primary",icon:b=t.createElement(r.default,null),showCancel:y=!0,close:C,onConfirm:x,onCancel:E,onPopupClick:O}=e,{getPrefixCls:k}=t.useContext(s.ConfigContext),[w]=(0,p.useLocale)("Popconfirm",m.default.Popconfirm),P=(0,u.getRenderPropValue)(a),S=(0,u.getRenderPropValue)(f);return t.createElement("div",{className:`${n}-inner-content`,onClick:O},t.createElement("div",{className:`${n}-message`},b&&t.createElement("span",{className:`${n}-message-icon`},b),t.createElement("div",{className:`${n}-message-text`},P&&t.createElement("div",{className:`${n}-title`},P),S&&t.createElement("div",{className:`${n}-description`},S))),t.createElement("div",{className:`${n}-buttons`},y&&t.createElement(c.default,Object.assign({onClick:E,size:"small"},i),h||(null==w?void 0:w.cancelText)),t.createElement(l.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,d.convertLegacyProps)(v)),o),actionFn:x,close:C,prefixCls:k("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},g||(null==w?void 0:w.okText))))};var b=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let y=t.forwardRef((e,l)=>{var u,c;let{prefixCls:d,placement:p="top",trigger:m="click",okType:f="primary",icon:g=t.createElement(r.default,null),children:y,overlayClassName:C,onOpenChange:x,onVisibleChange:E,overlayStyle:O,styles:k,classNames:w}=e,P=b(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:S,className:j,style:M,classNames:R,styles:N}=(0,s.useComponentConfig)("popconfirm"),[T,F]=(0,o.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(c=e.defaultOpen)?c:e.defaultVisible}),D=(e,t)=>{F(e,!0),null==E||E(e),null==x||x(e,t)},$=S("popconfirm",d),I=(0,n.default)($,j,C,R.root,null==w?void 0:w.root),A=(0,n.default)(R.body,null==w?void 0:w.body),[L]=h($);return L(t.createElement(a.default,Object.assign({},(0,i.default)(P,["title"]),{trigger:m,placement:p,onOpenChange:(t,r)=>{let{disabled:n=!1}=e;n||D(t,r)},open:T,ref:l,classNames:{root:I,body:A},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},N.root),M),O),null==k?void 0:k.root),body:Object.assign(Object.assign({},N.body),null==k?void 0:k.body)},content:t.createElement(v,Object.assign({okType:f,icon:g},e,{prefixCls:$,close:e=>{D(!1,e)},onConfirm:t=>{var r;return null==(r=e.onConfirm)?void 0:r.call(void 0,t)},onCancel:t=>{var r;D(!1,t),null==(r=e.onCancel)||r.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,placement:o,className:i,style:a}=e,l=g(e,["prefixCls","placement","className","style"]),{getPrefixCls:u}=t.useContext(s.ConfigContext),c=u("popconfirm",r),[d]=h(c);return d(t.createElement(f.default,{placement:o,className:(0,n.default)(c,i),style:a,content:t.createElement(v,Object.assign({prefixCls:c},l))}))},e.s(["Popconfirm",0,y],883552)},114272,e=>{"use strict";var t=e.i(540143),r=e.i(88587),n=e.i(936553),o=class extends r.Removable{#e;#t;#r;#n;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#r=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#r.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||("pending"===this.state.status?this.scheduleGc():this.#r.remove(this))}continue(){return this.#n?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#o({type:"continue"})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#n=(0,n.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(e,r):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#o({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#o({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#r.canRun(this)});let o="pending"===this.state.status,i=!this.#n.canStart();try{if(o)t();else{this.#o({type:"pending",variables:e,isPaused:i}),this.#r.config.onMutate&&await this.#r.config.onMutate(e,this,r);let t=await this.options.onMutate?.(e,r);t!==this.state.context&&this.#o({type:"pending",context:t,variables:e,isPaused:i})}let n=await this.#n.start();return await this.#r.config.onSuccess?.(n,e,this.state.context,this,r),await this.options.onSuccess?.(n,e,this.state.context,r),await this.#r.config.onSettled?.(n,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(n,null,e,this.state.context,r),this.#o({type:"success",data:n}),n}catch(t){try{await this.#r.config.onError?.(t,e,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#r.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#o({type:"error",error:t}),t}finally{this.#r.runNext(this)}}#o(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),t.notifyManager.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#r.notify({mutation:this,type:"updated",action:e})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}e.s(["Mutation",()=>o,"getDefaultState",()=>i])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),n=e.i(540143),o=e.i(915823),i=e.i(619273),s=class extends o.Subscribable{#e;#i=void 0;#s;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,i.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,i.hashKey)(t.mutationKey)!==(0,i.hashKey)(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#u(e)}getCurrentResult(){return this.#i}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#l(),this.#u()}mutate(e,t){return this.#a=t,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(e)}#l(){let e=this.#s?.state??(0,r.getDefaultState)();this.#i={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#u(e){n.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#i.variables,r=this.#i.context,n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,n)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,n)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,n)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,n)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#i)})})}},a=e.i(912598);function l(e,r){let o=(0,a.useQueryClient)(r),[l]=t.useState(()=>new s(o,e));t.useEffect(()=>{l.setOptions(e)},[l,e]);let u=t.useSyncExternalStore(t.useCallback(e=>l.subscribe(n.notifyManager.batchCalls(e)),[l]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),c=t.useCallback((e,t)=>{l.mutate(e,t).catch(i.noop)},[l]);if(u.error&&(0,i.shouldThrowError)(l.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.mutate}}e.s(["useMutation",()=>l],954616)},688511,823429,727612,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);e.s(["default",()=>r],823429),e.s(["Edit",()=>r],688511);let n=(0,t.default)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",()=>n],727612)},764367,e=>{"use strict";var t=e.i(843476),r=e.i(700904),n=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:o,userId:i,premiumUser:s}=(0,n.default)();return(0,t.jsx)(r.default,{accessToken:e,userRole:o,userID:i,premiumUser:s})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/121a51d3bbb6f362.js b/litellm/proxy/_experimental/out/_next/static/chunks/121a51d3bbb6f362.js new file mode 100644 index 00000000000..b0c01c6589b --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/121a51d3bbb6f362.js @@ -0,0 +1,7 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,906579,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(361275),n=e.i(702779),a=e.i(763731),i=e.i(242064);e.i(296059);var l=e.i(915654),s=e.i(694758),d=e.i(183293),c=e.i(403541),u=e.i(246422),m=e.i(838378);let b=new s.Keyframes("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),g=new s.Keyframes("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),p=new s.Keyframes("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),f=new s.Keyframes("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),h=new s.Keyframes("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),C=new s.Keyframes("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),v=e=>{let{fontHeight:t,lineWidth:r,marginXS:o,colorBorderBg:n}=e,a=e.colorTextLightSolid,i=e.colorError,l=e.colorErrorHover;return(0,m.mergeToken)(e,{badgeFontHeight:t,badgeShadowSize:r,badgeTextColor:a,badgeColor:i,badgeColorHover:l,badgeShadowColor:n,badgeProcessingDuration:"1.2s",badgeRibbonOffset:o,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},y=e=>{let{fontSize:t,lineHeight:r,fontSizeSM:o,lineWidth:n}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*r)-2*n,indicatorHeightSM:t,dotSize:o/2,textFontSize:o,textFontSizeSM:o,textFontWeight:"normal",statusSize:o/2}},$=(0,u.genStyleHooks)("Badge",e=>(e=>{let{componentCls:t,iconCls:r,antCls:o,badgeShadowSize:n,textFontSize:a,textFontSizeSM:i,statusSize:s,dotSize:u,textFontWeight:m,indicatorHeight:v,indicatorHeightSM:y,marginXS:$,calc:k}=e,x=`${o}-scroll-number`,w=(0,c.genPresetColor)(e,(e,{darkColor:r})=>({[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r},"a:hover &":{background:r}}}));return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:v,height:v,color:e.badgeTextColor,fontWeight:m,fontSize:a,lineHeight:(0,l.unit)(v),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:k(v).div(2).equal(),boxShadow:`0 0 0 ${(0,l.unit)(n)} ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:y,height:y,fontSize:i,lineHeight:(0,l.unit)(y),borderRadius:k(y).div(2).equal()},[`${t}-multiple-words`]:{padding:`0 ${(0,l.unit)(e.paddingXS)}`,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:u,minWidth:u,height:u,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,l.unit)(n)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${x}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${r}-spin`]:{animationName:C,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:s,height:s,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfo,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:n,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:b,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:$,color:e.colorText,fontSize:e.fontSize}}}),w),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:g,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:p,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:f,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:h,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${x}-custom-component, ${t}-count`]:{transform:"none"},[`${x}-custom-component, ${x}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[x]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${x}-only`]:{position:"relative",display:"inline-block",height:v,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${x}-only-unit`]:{height:v,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${x}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${x}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}})(v(e)),y),k=(0,u.genStyleHooks)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:r,marginXS:o,badgeRibbonOffset:n,calc:a}=e,i=`${t}-ribbon`,s=`${t}-ribbon-wrapper`,u=(0,c.genPresetColor)(e,(e,{darkColor:t})=>({[`&${i}-color-${e}`]:{background:t,color:t}}));return{[s]:{position:"relative"},[i]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:o,padding:`0 ${(0,l.unit)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,l.unit)(r),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${i}-text`]:{color:e.badgeTextColor},[`${i}-corner`]:{position:"absolute",top:"100%",width:n,height:n,color:"currentcolor",border:`${(0,l.unit)(a(n).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter}}),u),{[`&${i}-placement-end`]:{insetInlineEnd:a(n).mul(-1).equal(),borderEndEndRadius:0,[`${i}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${i}-placement-start`]:{insetInlineStart:a(n).mul(-1).equal(),borderEndStartRadius:0,[`${i}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}})(v(e)),y),x=e=>{let o,{prefixCls:n,value:a,current:i,offset:l=0}=e;return l&&(o={position:"absolute",top:`${l}00%`,left:0}),t.createElement("span",{style:o,className:(0,r.default)(`${n}-only-unit`,{current:i})},a)},w=e=>{let r,o,{prefixCls:n,count:a,value:i}=e,l=Number(i),s=Math.abs(a),[d,c]=t.useState(l),[u,m]=t.useState(s),b=()=>{c(l),m(s)};if(t.useEffect(()=>{let e=setTimeout(b,1e3);return()=>clearTimeout(e)},[l]),d===l||Number.isNaN(l)||Number.isNaN(d))r=[t.createElement(x,Object.assign({},e,{key:l,current:!0}))],o={transition:"none"};else{r=[];let n=l+10,a=[];for(let e=l;e<=n;e+=1)a.push(e);let i=ue%10===d);r=(i<0?a.slice(0,c+1):a.slice(c)).map((r,o)=>t.createElement(x,Object.assign({},e,{key:r,value:r%10,offset:i<0?o-c:o,current:o===c}))),o={transform:`translateY(${-function(e,t,r){let o=e,n=0;for(;(o+10)%10!==t;)o+=r,n+=r;return n}(d,l,i)}00%)`}}return t.createElement("span",{className:`${n}-only`,style:o,onTransitionEnd:b},r)};var O=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S=t.forwardRef((e,o)=>{let{prefixCls:n,count:l,className:s,motionClassName:d,style:c,title:u,show:m,component:b="sup",children:g}=e,p=O(e,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:f}=t.useContext(i.ConfigContext),h=f("scroll-number",n),C=Object.assign(Object.assign({},p),{"data-show":m,style:c,className:(0,r.default)(h,s,d),title:u}),v=l;if(l&&Number(l)%1==0){let e=String(l).split("");v=t.createElement("bdi",null,e.map((r,o)=>t.createElement(w,{prefixCls:h,count:Number(l),value:r,key:e.length-o})))}return((null==c?void 0:c.borderColor)&&(C.style=Object.assign(Object.assign({},c),{boxShadow:`0 0 0 1px ${c.borderColor} inset`})),g)?(0,a.cloneElement)(g,e=>({className:(0,r.default)(`${h}-custom-component`,null==e?void 0:e.className,d)})):t.createElement(b,Object.assign({},C,{ref:o}),v)});var N=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let E=t.forwardRef((e,l)=>{var s,d,c,u,m;let{prefixCls:b,scrollNumberPrefixCls:g,children:p,status:f,text:h,color:C,count:v=null,overflowCount:y=99,dot:k=!1,size:x="default",title:w,offset:O,style:E,className:P,rootClassName:j,classNames:I,styles:T,showZero:R=!1}=e,z=N(e,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:B,direction:M,badge:D}=t.useContext(i.ConfigContext),F=B("badge",b),[H,W,q]=$(F),K=v>y?`${y}+`:v,X="0"===K||0===K||"0"===h||0===h,A=null===v||X&&!R,Y=(null!=f||null!=C)&&A,Z=null!=f||!X,L=k&&!X,V=L?"":K,G=(0,t.useMemo)(()=>((null==V||""===V)&&(null==h||""===h)||X&&!R)&&!L,[V,X,R,L,h]),_=(0,t.useRef)(v);G||(_.current=v);let Q=_.current,U=(0,t.useRef)(V);G||(U.current=V);let J=U.current,ee=(0,t.useRef)(L);G||(ee.current=L);let et=(0,t.useMemo)(()=>{if(!O)return Object.assign(Object.assign({},null==D?void 0:D.style),E);let e={marginTop:O[1]};return"rtl"===M?e.left=Number.parseInt(O[0],10):e.right=-Number.parseInt(O[0],10),Object.assign(Object.assign(Object.assign({},e),null==D?void 0:D.style),E)},[M,O,E,null==D?void 0:D.style]),er=null!=w?w:"string"==typeof Q||"number"==typeof Q?Q:void 0,eo=!G&&(0===h?R:!!h&&!0!==h),en=eo?t.createElement("span",{className:`${F}-status-text`},h):null,ea=Q&&"object"==typeof Q?(0,a.cloneElement)(Q,e=>({style:Object.assign(Object.assign({},et),e.style)})):void 0,ei=(0,n.isPresetColor)(C,!1),el=(0,r.default)(null==I?void 0:I.indicator,null==(s=null==D?void 0:D.classNames)?void 0:s.indicator,{[`${F}-status-dot`]:Y,[`${F}-status-${f}`]:!!f,[`${F}-color-${C}`]:ei}),es={};C&&!ei&&(es.color=C,es.background=C);let ed=(0,r.default)(F,{[`${F}-status`]:Y,[`${F}-not-a-wrapper`]:!p,[`${F}-rtl`]:"rtl"===M},P,j,null==D?void 0:D.className,null==(d=null==D?void 0:D.classNames)?void 0:d.root,null==I?void 0:I.root,W,q);if(!p&&Y&&(h||Z||!A)){let e=et.color;return H(t.createElement("span",Object.assign({},z,{className:ed,style:Object.assign(Object.assign(Object.assign({},null==T?void 0:T.root),null==(c=null==D?void 0:D.styles)?void 0:c.root),et)}),t.createElement("span",{className:el,style:Object.assign(Object.assign(Object.assign({},null==T?void 0:T.indicator),null==(u=null==D?void 0:D.styles)?void 0:u.indicator),es)}),eo&&t.createElement("span",{style:{color:e},className:`${F}-status-text`},h)))}return H(t.createElement("span",Object.assign({ref:l},z,{className:ed,style:Object.assign(Object.assign({},null==(m=null==D?void 0:D.styles)?void 0:m.root),null==T?void 0:T.root)}),p,t.createElement(o.default,{visible:!G,motionName:`${F}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{var o,n;let a=B("scroll-number",g),i=ee.current,l=(0,r.default)(null==I?void 0:I.indicator,null==(o=null==D?void 0:D.classNames)?void 0:o.indicator,{[`${F}-dot`]:i,[`${F}-count`]:!i,[`${F}-count-sm`]:"small"===x,[`${F}-multiple-words`]:!i&&J&&J.toString().length>1,[`${F}-status-${f}`]:!!f,[`${F}-color-${C}`]:ei}),s=Object.assign(Object.assign(Object.assign({},null==T?void 0:T.indicator),null==(n=null==D?void 0:D.styles)?void 0:n.indicator),et);return C&&!ei&&((s=s||{}).background=C),t.createElement(S,{prefixCls:a,show:!G,motionClassName:e,className:l,count:J,title:er,style:s,key:"scrollNumber"},ea)}),en))});E.Ribbon=e=>{let{className:o,prefixCls:a,style:l,color:s,children:d,text:c,placement:u="end",rootClassName:m}=e,{getPrefixCls:b,direction:g}=t.useContext(i.ConfigContext),p=b("ribbon",a),f=`${p}-wrapper`,[h,C,v]=k(p,f),y=(0,n.isPresetColor)(s,!1),$=(0,r.default)(p,`${p}-placement-${u}`,{[`${p}-rtl`]:"rtl"===g,[`${p}-color-${s}`]:y},o),x={},w={};return s&&!y&&(x.background=s,w.color=s),h(t.createElement("div",{className:(0,r.default)(f,m,C,v)},d,t.createElement("div",{className:(0,r.default)($,C),style:Object.assign(Object.assign({},x),l)},t.createElement("span",{className:`${p}-text`},c),t.createElement("div",{className:`${p}-corner`,style:w}))))},e.s(["Badge",0,E],906579)},91874,e=>{"use strict";var t=e.i(931067),r=e.i(209428),o=e.i(211577),n=e.i(392221),a=e.i(703923),i=e.i(343794),l=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,b=e.className,g=e.style,p=e.checked,f=e.disabled,h=e.defaultChecked,C=e.type,v=void 0===C?"checkbox":C,y=e.title,$=e.onChange,k=(0,a.default)(e,d),x=(0,s.useRef)(null),w=(0,s.useRef)(null),O=(0,l.default)(void 0!==h&&h,{value:p}),S=(0,n.default)(O,2),N=S[0],E=S[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=x.current)||t.focus(e)},blur:function(){var e;null==(e=x.current)||e.blur()},input:x.current,nativeElement:w.current}});var P=(0,i.default)(m,b,(0,o.default)((0,o.default)({},"".concat(m,"-checked"),N),"".concat(m,"-disabled"),f));return s.createElement("span",{className:P,title:y,style:g,ref:w},s.createElement("input",(0,t.default)({},k,{className:"".concat(m,"-input"),ref:x,onChange:function(t){f||("checked"in e||E(t.target.checked),null==$||$({target:(0,r.default)((0,r.default)({},e),{},{type:v,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:f,checked:!!N,type:v})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c])},421512,236836,e=>{"use strict";let t=e.i(271645).default.createContext(null);e.s(["default",0,t],421512),e.i(296059);var r=e.i(915654),o=e.i(183293),n=e.i(246422),a=e.i(838378);function i(e,t){return(e=>{let{checkboxCls:t}=e,n=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,o.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[n]:Object.assign(Object.assign({},(0,o.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${n}`]:{marginInlineStart:0},[`&${n}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,o.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,o.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,r.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` + ${n}:not(${n}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${n}:not(${n}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` + ${n}-checked:not(${n}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${n}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,a.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let l=(0,n.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[i(t,e)]);e.s(["default",0,l,"getStyle",()=>i],236836)},681216,e=>{"use strict";var t=e.i(271645),r=e.i(963188);function o(e){let o=t.default.useRef(null),n=()=>{r.default.cancel(o.current),o.current=null};return[()=>{n(),o.current=(0,r.default)(()=>{o.current=null})},t=>{o.current&&(t.stopPropagation(),n()),null==e||e(t)}]}e.s(["default",()=>o])},374276,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(91874),n=e.i(611935),a=e.i(121872),i=e.i(26905),l=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139),u=e.i(421512),m=e.i(236836),b=e.i(681216),g=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let p=t.forwardRef((e,p)=>{var f;let{prefixCls:h,className:C,rootClassName:v,children:y,indeterminate:$=!1,style:k,onMouseEnter:x,onMouseLeave:w,skipGroup:O=!1,disabled:S}=e,N=g(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:E,direction:P,checkbox:j}=t.useContext(l.ConfigContext),I=t.useContext(u.default),{isFormItemInput:T}=t.useContext(c.FormItemInputContext),R=t.useContext(s.default),z=null!=(f=(null==I?void 0:I.disabled)||S)?f:R,B=t.useRef(N.value),M=t.useRef(null),D=(0,n.composeRef)(p,M);t.useEffect(()=>{null==I||I.registerValue(N.value)},[]),t.useEffect(()=>{if(!O)return N.value!==B.current&&(null==I||I.cancelValue(B.current),null==I||I.registerValue(N.value),B.current=N.value),()=>null==I?void 0:I.cancelValue(N.value)},[N.value]),t.useEffect(()=>{var e;(null==(e=M.current)?void 0:e.input)&&(M.current.input.indeterminate=$)},[$]);let F=E("checkbox",h),H=(0,d.default)(F),[W,q,K]=(0,m.default)(F,H),X=Object.assign({},N);I&&!O&&(X.onChange=(...e)=>{N.onChange&&N.onChange.apply(N,e),I.toggleOption&&I.toggleOption({label:y,value:N.value})},X.name=I.name,X.checked=I.value.includes(N.value));let A=(0,r.default)(`${F}-wrapper`,{[`${F}-rtl`]:"rtl"===P,[`${F}-wrapper-checked`]:X.checked,[`${F}-wrapper-disabled`]:z,[`${F}-wrapper-in-form-item`]:T},null==j?void 0:j.className,C,v,K,H,q),Y=(0,r.default)({[`${F}-indeterminate`]:$},i.TARGET_CLS,q),[Z,L]=(0,b.default)(X.onClick);return W(t.createElement(a.default,{component:"Checkbox",disabled:z},t.createElement("label",{className:A,style:Object.assign(Object.assign({},null==j?void 0:j.style),k),onMouseEnter:x,onMouseLeave:w,onClick:Z},t.createElement(o.default,Object.assign({},X,{onClick:L,prefixCls:F,className:Y,disabled:z,ref:D})),null!=y&&t.createElement("span",{className:`${F}-label`},y))))});var f=e.i(8211),h=e.i(529681),C=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let v=t.forwardRef((e,o)=>{let{defaultValue:n,children:a,options:i=[],prefixCls:s,className:c,rootClassName:b,style:g,onChange:v}=e,y=C(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:$,direction:k}=t.useContext(l.ConfigContext),[x,w]=t.useState(y.value||n||[]),[O,S]=t.useState([]);t.useEffect(()=>{"value"in y&&w(y.value||[])},[y.value]);let N=t.useMemo(()=>i.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[i]),E=e=>{S(t=>t.filter(t=>t!==e))},P=e=>{S(t=>[].concat((0,f.default)(t),[e]))},j=e=>{let t=x.indexOf(e.value),r=(0,f.default)(x);-1===t?r.push(e.value):r.splice(t,1),"value"in y||w(r),null==v||v(r.filter(e=>O.includes(e)).sort((e,t)=>N.findIndex(t=>t.value===e)-N.findIndex(e=>e.value===t)))},I=$("checkbox",s),T=`${I}-group`,R=(0,d.default)(I),[z,B,M]=(0,m.default)(I,R),D=(0,h.default)(y,["value","disabled"]),F=i.length?N.map(e=>t.createElement(p,{prefixCls:I,key:e.value.toString(),disabled:"disabled"in e?e.disabled:y.disabled,value:e.value,checked:x.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${T}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):a,H=t.useMemo(()=>({toggleOption:j,value:x,disabled:y.disabled,name:y.name,registerValue:P,cancelValue:E}),[j,x,y.disabled,y.name,P,E]),W=(0,r.default)(T,{[`${T}-rtl`]:"rtl"===k},c,b,M,R,B);return z(t.createElement("div",Object.assign({className:W,style:g},D,{ref:o}),t.createElement(u.default.Provider,{value:H},F)))});p.Group=v,p.__ANT_CHECKBOX=!0,e.s(["default",0,p],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(829087),n=e.i(480731),a=e.i(444755),i=e.i(673706),l=e.i(95779);let s={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,i.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:b,variant:g="simple",tooltip:p,size:f=n.Sizes.SM,color:h,className:C}=e,v=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),y=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,a.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,a.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,a.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,a.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,i.getColorClassNames)(t,l.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,a.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(g,h),{tooltipProps:$,getReferenceProps:k}=(0,o.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([m,$.refs.setReference]),className:(0,a.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",y.bgColor,y.textColor,y.borderColor,y.ringColor,c[g].rounded,c[g].border,c[g].shadow,c[g].ring,s[f].paddingX,s[f].paddingY,C)},k,v),r.default.createElement(o.default,Object.assign({text:p},$)),r.default.createElement(b,{className:(0,a.tremorTwMerge)(u("icon"),"shrink-0",d[f].height,d[f].width)}))});m.displayName="Icon",e.s(["default",()=>m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},992571,e=>{"use strict";var t=e.i(619273);function r(e){return{onFetch:(r,a)=>{let i=r.options,l=r.fetchOptions?.meta?.fetchMore?.direction,s=r.state.data?.pages||[],d=r.state.data?.pageParams||[],c={pages:[],pageParams:[]},u=0,m=async()=>{let a=!1,m=(0,t.ensureQueryFn)(r.options,r.fetchOptions),b=async(e,o,n)=>{let i;if(a)return Promise.reject();if(null==o&&e.pages.length)return Promise.resolve(e);let l=(i={client:r.client,queryKey:r.queryKey,pageParam:o,direction:n?"backward":"forward",meta:r.options.meta},(0,t.addConsumeAwareSignal)(i,()=>r.signal,()=>a=!0),i),s=await m(l),{maxPages:d}=r.options,c=n?t.addToStart:t.addToEnd;return{pages:c(e.pages,s,d),pageParams:c(e.pageParams,o,d)}};if(l&&s.length){let e="backward"===l,t={pages:s,pageParams:d},r=(e?n:o)(i,t);c=await b(t,r,e)}else{let t=e??s.length;do{let e=0===u?d[0]??i.initialPageParam:o(i,c);if(u>0&&null==e)break;c=await b(c,e),u++}while(ur.options.persister?.(m,{client:r.client,queryKey:r.queryKey,meta:r.options.meta,signal:r.signal},a):r.fetchFn=m}}}function o(e,{pages:t,pageParams:r}){let o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,r[o],r):void 0}function n(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}function a(e,t){return!!t&&null!=o(e,t)}function i(e,t){return!!t&&!!e.getPreviousPageParam&&null!=n(e,t)}e.s(["hasNextPage",()=>a,"hasPreviousPage",()=>i,"infiniteQueryBehavior",()=>r])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/134f728fa7099e3e.js b/litellm/proxy/_experimental/out/_next/static/chunks/134f728fa7099e3e.js new file mode 100644 index 00000000000..e4480639997 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/134f728fa7099e3e.js @@ -0,0 +1,55 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,704914,e=>{"use strict";let t=e.i(271645).createContext({siderHook:{addSider:()=>null,removeSider:()=>null}});e.s(["LayoutContext",0,t])},741273,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"};var i=e.i(9583),r=o.forwardRef(function(e,r){return o.createElement(i.default,(0,t.default)({},e,{ref:r,icon:n}))});e.s(["default",0,r],741273)},290224,251224,e=>{"use strict";let t;e.i(247167);var o=e.i(271645),n=e.i(741273),i=e.i(801312),r=e.i(286612),l=e.i(343794),a=e.i(529681),d=e.i(958503),s=e.i(242064),u=e.i(704914);e.i(296059);var c=e.i(915654),m=e.i(246422);let p=e=>{let{colorBgLayout:t,controlHeight:o,controlHeightLG:n,colorText:i,controlHeightSM:r,marginXXS:l,colorTextLightSolid:a,colorBgContainer:d}=e,s=1.25*n;return{colorBgHeader:"#001529",colorBgBody:t,colorBgTrigger:"#002140",bodyBg:t,headerBg:"#001529",headerHeight:2*o,headerPadding:`0 ${s}px`,headerColor:i,footerPadding:`${r}px ${s}px`,footerBg:t,siderBg:"#001529",triggerHeight:n+2*l,triggerBg:"#002140",triggerColor:a,zeroTriggerWidth:n,zeroTriggerHeight:n,lightSiderBg:d,lightTriggerBg:d,lightTriggerColor:i}},g=[["colorBgBody","bodyBg"],["colorBgHeader","headerBg"],["colorBgTrigger","triggerBg"]],$=(0,m.genStyleHooks)("Layout",e=>{let{antCls:t,componentCls:o,colorText:n,footerBg:i,headerHeight:r,headerPadding:l,headerColor:a,footerPadding:d,fontSize:s,bodyBg:u,headerBg:m}=e;return{[o]:{display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:u,"&, *":{boxSizing:"border-box"},[`&${o}-has-sider`]:{flexDirection:"row",[`> ${o}, > ${o}-content`]:{width:0}},[`${o}-header, &${o}-footer`]:{flex:"0 0 auto"},"&-rtl":{direction:"rtl"}},[`${o}-header`]:{height:r,padding:l,color:a,lineHeight:(0,c.unit)(r),background:m,[`${t}-menu`]:{lineHeight:"inherit"}},[`${o}-footer`]:{padding:d,color:n,fontSize:s,background:i},[`${o}-content`]:{flex:"auto",color:n,minHeight:0}}},p,{deprecatedTokens:g});e.s(["DEPRECATED_TOKENS",0,g,"default",0,$,"prepareComponentToken",0,p],251224);let b=(0,m.genStyleHooks)(["Layout","Sider"],e=>{let{componentCls:t,siderBg:o,motionDurationMid:n,motionDurationSlow:i,antCls:r,triggerHeight:l,triggerColor:a,triggerBg:d,headerHeight:s,zeroTriggerWidth:u,zeroTriggerHeight:m,borderRadiusLG:p,lightSiderBg:g,lightTriggerColor:$,lightTriggerBg:b,bodyBg:f}=e;return{[t]:{position:"relative",minWidth:0,background:o,transition:`all ${n}, background 0s`,"&-has-trigger":{paddingBottom:l},"&-right":{order:1},[`${t}-children`]:{height:"100%",marginTop:-.1,paddingTop:.1,[`${r}-menu${r}-menu-inline-collapsed`]:{width:"auto"}},[`&-zero-width ${t}-children`]:{overflow:"hidden"},[`${t}-trigger`]:{position:"fixed",bottom:0,zIndex:1,height:l,color:a,lineHeight:(0,c.unit)(l),textAlign:"center",background:d,cursor:"pointer",transition:`all ${n}`},[`${t}-zero-width-trigger`]:{position:"absolute",top:s,insetInlineEnd:e.calc(u).mul(-1).equal(),zIndex:1,width:u,height:m,color:a,fontSize:e.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:o,borderRadius:`0 ${(0,c.unit)(p)} ${(0,c.unit)(p)} 0`,cursor:"pointer",transition:`background ${i} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${i}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:e.calc(u).mul(-1).equal(),borderRadius:`${(0,c.unit)(p)} 0 0 ${(0,c.unit)(p)}`}},"&-light":{background:g,[`${t}-trigger`]:{color:$,background:b},[`${t}-zero-width-trigger`]:{color:$,background:b,border:`1px solid ${f}`,borderInlineStart:0}}}}},p,{deprecatedTokens:g});var f=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let v={xs:"479.98px",sm:"575.98px",md:"767.98px",lg:"991.98px",xl:"1199.98px",xxl:"1599.98px"},h=o.createContext({}),x=(t=0,(e="")=>(t+=1,`${e}${t}`)),C=o.forwardRef((e,t)=>{let{prefixCls:c,className:m,trigger:p,children:g,defaultCollapsed:$=!1,theme:C="dark",style:I={},collapsible:y=!1,reverseArrow:S=!1,width:w=200,collapsedWidth:B=80,zeroWidthTriggerStyle:O,breakpoint:k,onCollapse:E,onBreakpoint:H}=e,j=f(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:z}=(0,o.useContext)(u.LayoutContext),[T,N]=(0,o.useState)("collapsed"in e?e.collapsed:$),[R,P]=(0,o.useState)(!1);(0,o.useEffect)(()=>{"collapsed"in e&&N(e.collapsed)},[e.collapsed]);let M=(t,o)=>{"collapsed"in e||N(t),null==E||E(t,o)},{getPrefixCls:D,direction:A}=(0,o.useContext)(s.ConfigContext),L=D("layout-sider",c),[W,q,X]=b(L),F=(0,o.useRef)(null);F.current=e=>{P(e.matches),null==H||H(e.matches),T!==e.matches&&M(e.matches,"responsive")},(0,o.useEffect)(()=>{let e;function t(e){var t;return null==(t=F.current)?void 0:t.call(F,e)}return void 0!==(null==window?void 0:window.matchMedia)&&k&&k in v&&(e=window.matchMedia(`screen and (max-width: ${v[k]})`),(0,d.addMediaQueryListener)(e,t),t(e)),()=>{(0,d.removeMediaQueryListener)(e,t)}},[k]),(0,o.useEffect)(()=>{let e=x("ant-sider-");return z.addSider(e),()=>z.removeSider(e)},[]);let Y=()=>{M(!T,"clickTrigger")},G=(0,a.default)(j,["collapsed"]),_=T?B:w,U=!Number.isNaN(Number.parseFloat(_))&&Number.isFinite(Number(_))?`${_}px`:String(_),V=0===Number.parseFloat(String(B||0))?o.createElement("span",{onClick:Y,className:(0,l.default)(`${L}-zero-width-trigger`,`${L}-zero-width-trigger-${S?"right":"left"}`),style:O},p||o.createElement(n.default,null)):null,Z="rtl"===A==!S,K={expanded:Z?o.createElement(r.default,null):o.createElement(i.default,null),collapsed:Z?o.createElement(i.default,null):o.createElement(r.default,null)}[T?"collapsed":"expanded"],Q=null!==p?V||o.createElement("div",{className:`${L}-trigger`,onClick:Y,style:{width:U}},p||K):null,J=Object.assign(Object.assign({},I),{flex:`0 0 ${U}`,maxWidth:U,minWidth:U,width:U}),ee=(0,l.default)(L,`${L}-${C}`,{[`${L}-collapsed`]:!!T,[`${L}-has-trigger`]:y&&null!==p&&!V,[`${L}-below`]:!!R,[`${L}-zero-width`]:0===Number.parseFloat(U)},m,q,X),et=o.useMemo(()=>({siderCollapsed:T}),[T]);return W(o.createElement(h.Provider,{value:et},o.createElement("aside",Object.assign({className:ee},G,{style:J,ref:t}),o.createElement("div",{className:`${L}-children`},g),y||R&&V?Q:null)))});e.s(["SiderContext",0,h,"default",0,C],290224)},356061,e=>{"use strict";var t=e.i(983409);e.s(["ItemGroup",()=>t.default])},60699,652199,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(375565),n=e.i(356061),i=e.i(290224),r=e.i(867384),l=e.i(343794),a=e.i(175066),d=e.i(529681),s=e.i(613541),u=e.i(763731),c=e.i(242064),m=e.i(321883);let p=(0,t.createContext)({prefixCls:"",firstLevel:!0,inlineCollapsed:!1});var g=e.i(259792),g=g,$=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let b=e=>{let{prefixCls:o,className:n,dashed:i}=e,r=$(e,["prefixCls","className","dashed"]),{getPrefixCls:a}=t.useContext(c.ConfigContext),d=a("menu",o),s=(0,l.default)({[`${d}-item-divider-dashed`]:!!i},n);return t.createElement(g.default,Object.assign({className:s},r))};var f=e.i(452741),f=f,v=e.i(876556),h=e.i(491816);let x=e=>{var o;let n,r,{className:a,children:s,icon:c,title:m,danger:g,extra:$}=e,{prefixCls:b,firstLevel:x,direction:C,disableMenuItemTitleTooltip:I,inlineCollapsed:y}=t.useContext(p),{siderCollapsed:S}=t.useContext(i.SiderContext),w=m;void 0===m?w=x?s:"":!1===m&&(w="");let B={title:w};S||y||(B.title=null,B.open=!1);let O=(0,v.default)(s).length,k=t.createElement(f.default,Object.assign({},(0,d.default)(e,["title","icon","danger"]),{className:(0,l.default)({[`${b}-item-danger`]:g,[`${b}-item-only-child`]:(c?O+1:O)===1},a),title:"string"==typeof m?m:void 0}),(0,u.cloneElement)(c,{className:(0,l.default)(t.isValidElement(c)?null==(o=c.props)?void 0:o.className:void 0,`${b}-item-icon`)}),(n=null==s?void 0:s[0],r=t.createElement("span",{className:(0,l.default)(`${b}-title-content`,{[`${b}-title-content-with-extra`]:!!$||0===$})},s),(!c||t.isValidElement(s)&&"span"===s.type)&&s&&y&&x&&"string"==typeof n?t.createElement("div",{className:`${b}-inline-collapsed-noicon`},n.charAt(0)):r));return I||(k=t.createElement(h.default,Object.assign({},B,{placement:"rtl"===C?"left":"right",classNames:{root:`${b}-inline-collapsed-tooltip`}}),k)),k};var C=e.i(611935),I=e.i(617206),y=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let S=t.createContext(null),w=t.forwardRef((e,o)=>{let{children:n}=e,i=y(e,["children"]),r=t.useContext(S),l=t.useMemo(()=>Object.assign(Object.assign({},r),i),[r,i.prefixCls,i.mode,i.selectable,i.rootClassName]),a=(0,C.supportNodeRef)(n),d=(0,C.useComposeRef)(o,a?(0,C.getNodeRef)(n):null);return t.createElement(S.Provider,{value:l},t.createElement(I.default,{space:!0},a?t.cloneElement(n,{ref:d}):n))});e.s(["OverrideProvider",0,w,"default",0,S],652199),e.i(296059);var B=e.i(915654);e.i(262370);var O=e.i(135551),k=e.i(183293),E=e.i(447580),H=e.i(664142),j=e.i(717356),z=e.i(246422),T=e.i(838378);let N=e=>(0,k.genFocusOutline)(e),R=(e,t)=>{let{componentCls:o,itemColor:n,itemSelectedColor:i,subMenuItemSelectedColor:r,groupTitleColor:l,itemBg:a,subMenuItemBg:d,itemSelectedBg:s,activeBarHeight:u,activeBarWidth:c,activeBarBorderWidth:m,motionDurationSlow:p,motionEaseInOut:g,motionEaseOut:$,itemPaddingInline:b,motionDurationMid:f,itemHoverColor:v,lineType:h,colorSplit:x,itemDisabledColor:C,dangerItemColor:I,dangerItemHoverColor:y,dangerItemSelectedColor:S,dangerItemActiveBg:w,dangerItemSelectedBg:O,popupBg:k,itemHoverBg:E,itemActiveBg:H,menuSubMenuBg:j,horizontalItemSelectedColor:z,horizontalItemSelectedBg:T,horizontalItemBorderRadius:R,horizontalItemHoverBg:P}=e;return{[`${o}-${t}, ${o}-${t} > ${o}`]:{color:n,background:a,[`&${o}-root:focus-visible`]:Object.assign({},N(e)),[`${o}-item`]:{"&-group-title, &-extra":{color:l}},[`${o}-submenu-selected > ${o}-submenu-title`]:{color:r},[`${o}-item, ${o}-submenu-title`]:{color:n,[`&:not(${o}-item-disabled):focus-visible`]:Object.assign({},N(e))},[`${o}-item-disabled, ${o}-submenu-disabled`]:{color:`${C} !important`},[`${o}-item:not(${o}-item-selected):not(${o}-submenu-selected)`]:{[`&:hover, > ${o}-submenu-title:hover`]:{color:v}},[`&:not(${o}-horizontal)`]:{[`${o}-item:not(${o}-item-selected)`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:H}},[`${o}-submenu-title`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:H}}},[`${o}-item-danger`]:{color:I,[`&${o}-item:hover`]:{[`&:not(${o}-item-selected):not(${o}-submenu-selected)`]:{color:y}},[`&${o}-item:active`]:{background:w}},[`${o}-item a`]:{"&, &:hover":{color:"inherit"}},[`${o}-item-selected`]:{color:i,[`&${o}-item-danger`]:{color:S},"a, a:hover":{color:"inherit"}},[`& ${o}-item-selected`]:{backgroundColor:s,[`&${o}-item-danger`]:{backgroundColor:O}},[`&${o}-submenu > ${o}`]:{backgroundColor:j},[`&${o}-popup > ${o}`]:{backgroundColor:k},[`&${o}-submenu-popup > ${o}`]:{backgroundColor:k},[`&${o}-horizontal`]:Object.assign(Object.assign({},"dark"===t?{borderBottom:0}:{}),{[`> ${o}-item, > ${o}-submenu`]:{top:m,marginTop:e.calc(m).mul(-1).equal(),marginBottom:0,borderRadius:R,"&::after":{position:"absolute",insetInline:b,bottom:0,borderBottom:`${(0,B.unit)(u)} solid transparent`,transition:`border-color ${p} ${g}`,content:'""'},"&:hover, &-active, &-open":{background:P,"&::after":{borderBottomWidth:u,borderBottomColor:z}},"&-selected":{color:z,backgroundColor:T,"&:hover":{backgroundColor:T},"&::after":{borderBottomWidth:u,borderBottomColor:z}}}}),[`&${o}-root`]:{[`&${o}-inline, &${o}-vertical`]:{borderInlineEnd:`${(0,B.unit)(m)} ${h} ${x}`}},[`&${o}-inline`]:{[`${o}-sub${o}-inline`]:{background:d},[`${o}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${(0,B.unit)(c)} solid ${i}`,transform:"scaleY(0.0001)",opacity:0,transition:`transform ${f} ${$},opacity ${f} ${$}`,content:'""'},[`&${o}-item-danger`]:{"&::after":{borderInlineEndColor:S}}},[`${o}-selected, ${o}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:`transform ${f} ${g},opacity ${f} ${g}`}}}}}},P=e=>{let{componentCls:t,itemHeight:o,itemMarginInline:n,padding:i,menuArrowSize:r,marginXS:l,itemMarginBlock:a,itemWidth:d,itemPaddingInline:s}=e,u=e.calc(r).add(i).add(l).equal();return{[`${t}-item`]:{position:"relative",overflow:"hidden"},[`${t}-item, ${t}-submenu-title`]:{height:o,lineHeight:(0,B.unit)(o),paddingInline:s,overflow:"hidden",textOverflow:"ellipsis",marginInline:n,marginBlock:a,width:d},[`> ${t}-item, + > ${t}-submenu > ${t}-submenu-title`]:{height:o,lineHeight:(0,B.unit)(o)},[`${t}-item-group-list ${t}-submenu-title, + ${t}-submenu-title`]:{paddingInlineEnd:u}}},M=e=>{let{componentCls:t,motionDurationSlow:o,motionDurationMid:n,motionEaseInOut:i,motionEaseOut:r,iconCls:l,iconSize:a,iconMarginInlineEnd:d}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:`border-color ${o},background ${o},padding calc(${o} + 0.1s) ${i}`,[`${t}-item-icon, ${l}`]:{minWidth:a,fontSize:a,transition:`font-size ${n} ${r},margin ${o} ${i},color ${o}`,"+ span":{marginInlineStart:d,opacity:1,transition:`opacity ${o} ${i},margin ${o},color ${o}`}},[`${t}-item-icon`]:Object.assign({},(0,k.resetIcon)()),[`&${t}-item-only-child`]:{[`> ${l}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important",cursor:"not-allowed",pointerEvents:"none"},[`> ${t}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},D=e=>{let{componentCls:t,motionDurationSlow:o,motionEaseInOut:n,borderRadius:i,menuArrowSize:r,menuArrowOffset:l}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:"absolute",top:"50%",insetInlineEnd:e.margin,width:r,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${o} ${n}, opacity ${o}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:e.calc(r).mul(.6).equal(),height:e.calc(r).mul(.15).equal(),backgroundColor:"currentcolor",borderRadius:i,transition:`background ${o} ${n},transform ${o} ${n},top ${o} ${n},color ${o} ${n}`,content:'""'},"&::before":{transform:`rotate(45deg) translateY(${(0,B.unit)(e.calc(l).mul(-1).equal())})`},"&::after":{transform:`rotate(-45deg) translateY(${(0,B.unit)(l)})`}}}}},A=e=>{var t,o,n;let{colorPrimary:i,colorError:r,colorTextDisabled:l,colorErrorBg:a,colorText:d,colorTextDescription:s,colorBgContainer:u,colorFillAlter:c,colorFillContent:m,lineWidth:p,lineWidthBold:g,controlItemBgActive:$,colorBgTextHover:b,controlHeightLG:f,lineHeight:v,colorBgElevated:h,marginXXS:x,padding:C,fontSize:I,controlHeightSM:y,fontSizeLG:S,colorTextLightSolid:w,colorErrorHover:B}=e,k=null!=(t=e.activeBarWidth)?t:0,E=null!=(o=e.activeBarBorderWidth)?o:p,H=null!=(n=e.itemMarginInline)?n:e.marginXXS,j=new O.FastColor(w).setA(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,itemBorderRadius:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,subMenuItemBorderRadius:e.borderRadiusSM,colorItemText:d,itemColor:d,colorItemTextHover:d,itemHoverColor:d,colorItemTextHoverHorizontal:i,horizontalItemHoverColor:i,colorGroupTitle:s,groupTitleColor:s,colorItemTextSelected:i,itemSelectedColor:i,subMenuItemSelectedColor:i,colorItemTextSelectedHorizontal:i,horizontalItemSelectedColor:i,colorItemBg:u,itemBg:u,colorItemBgHover:b,itemHoverBg:b,colorItemBgActive:m,itemActiveBg:$,colorSubItemBg:c,subMenuItemBg:c,colorItemBgSelected:$,itemSelectedBg:$,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:k,colorActiveBarHeight:g,activeBarHeight:g,colorActiveBarBorderSize:p,activeBarBorderWidth:E,colorItemTextDisabled:l,itemDisabledColor:l,colorDangerItemText:r,dangerItemColor:r,colorDangerItemTextHover:r,dangerItemHoverColor:r,colorDangerItemTextSelected:r,dangerItemSelectedColor:r,colorDangerItemBgActive:a,dangerItemActiveBg:a,colorDangerItemBgSelected:a,dangerItemSelectedBg:a,itemMarginInline:H,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:f,groupTitleLineHeight:v,collapsedWidth:2*f,popupBg:h,itemMarginBlock:x,itemPaddingInline:C,horizontalLineHeight:`${1.15*f}px`,iconSize:I,iconMarginInlineEnd:y-I,collapsedIconSize:S,groupTitleFontSize:I,darkItemDisabledColor:new O.FastColor(w).setA(.25).toRgbString(),darkItemColor:j,darkDangerItemColor:r,darkItemBg:"#001529",darkPopupBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:w,darkItemSelectedBg:i,darkDangerItemSelectedBg:r,darkItemHoverBg:"transparent",darkGroupTitleColor:j,darkItemHoverColor:w,darkDangerItemHoverColor:B,darkDangerItemSelectedColor:w,darkDangerItemActiveBg:r,itemWidth:k?`calc(100% + ${E}px)`:`calc(100% - ${2*H}px)`}};var L=e.i(905054),L=L,W=e.i(465394),q=e.i(122767);let X=e=>{var o;let n,{popupClassName:i,icon:r,title:a,theme:s}=e,c=t.useContext(p),{prefixCls:m,inlineCollapsed:g,theme:$}=c,b=(0,W.useFullPath)();if(r){let e=t.isValidElement(a)&&"span"===a.type;n=t.createElement(t.Fragment,null,(0,u.cloneElement)(r,{className:(0,l.default)(t.isValidElement(r)?null==(o=r.props)?void 0:o.className:void 0,`${m}-item-icon`)}),e?a:t.createElement("span",{className:`${m}-title-content`},a))}else n=g&&!b.length&&a&&"string"==typeof a?t.createElement("div",{className:`${m}-inline-collapsed-noicon`},a.charAt(0)):t.createElement("span",{className:`${m}-title-content`},a);let f=t.useMemo(()=>Object.assign(Object.assign({},c),{firstLevel:!1}),[c]),[v]=(0,q.useZIndex)("Menu");return t.createElement(p.Provider,{value:f},t.createElement(L.default,Object.assign({},(0,d.default)(e,["icon"]),{title:n,popupClassName:(0,l.default)(m,i,`${m}-${s||$}`),popupStyle:Object.assign({zIndex:v},e.popupStyle)})))};var F=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};function Y(e){return null===e||!1===e}let G={item:x,submenu:X,divider:b},_=(0,t.forwardRef)((e,n)=>{var i;let g=t.useContext(S),$=g||{},{getPrefixCls:b,getPopupContainer:f,direction:v,menu:h}=t.useContext(c.ConfigContext),x=b(),{prefixCls:C,className:I,style:y,theme:w="light",expandIcon:O,_internalDisableMenuItemTitleTooltip:N,inlineCollapsed:L,siderCollapsed:W,rootClassName:q,mode:X,selectable:_,onClick:U,overflowedIndicatorPopupClassName:V}=e,Z=F(e,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),K=(0,d.default)(Z,["collapsedWidth"]);null==(i=$.validator)||i.call($,{mode:X});let Q=(0,a.default)((...e)=>{var t;null==U||U.apply(void 0,e),null==(t=$.onClick)||t.call($)}),J=$.mode||X,ee=null!=_?_:$.selectable,et=null!=L?L:W,eo={horizontal:{motionName:`${x}-slide-up`},inline:(0,s.default)(x),other:{motionName:`${x}-zoom-big`}},en=b("menu",C||$.prefixCls),ei=(0,m.default)(en),[er,el,ea]=((e,t=e,o=!0)=>(0,z.genStyleHooks)("Menu",e=>{let{colorBgElevated:t,controlHeightLG:o,fontSize:n,darkItemColor:i,darkDangerItemColor:r,darkItemBg:l,darkSubMenuItemBg:a,darkItemSelectedColor:d,darkItemSelectedBg:s,darkDangerItemSelectedBg:u,darkItemHoverBg:c,darkGroupTitleColor:m,darkItemHoverColor:p,darkItemDisabledColor:g,darkDangerItemHoverColor:$,darkDangerItemSelectedColor:b,darkDangerItemActiveBg:f,popupBg:v,darkPopupBg:h}=e,x=e.calc(n).div(7).mul(5).equal(),C=(0,T.mergeToken)(e,{menuArrowSize:x,menuHorizontalHeight:e.calc(o).mul(1.15).equal(),menuArrowOffset:e.calc(x).mul(.25).equal(),menuSubMenuBg:t,calc:e.calc,popupBg:v}),I=(0,T.mergeToken)(C,{itemColor:i,itemHoverColor:p,groupTitleColor:m,itemSelectedColor:d,subMenuItemSelectedColor:d,itemBg:l,popupBg:h,subMenuItemBg:a,itemActiveBg:"transparent",itemSelectedBg:s,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:c,itemDisabledColor:g,dangerItemColor:r,dangerItemHoverColor:$,dangerItemSelectedColor:b,dangerItemActiveBg:f,dangerItemSelectedBg:u,menuSubMenuBg:a,horizontalItemSelectedColor:d,horizontalItemSelectedBg:s});return[(e=>{let{antCls:t,componentCls:o,fontSize:n,motionDurationSlow:i,motionDurationMid:r,motionEaseInOut:l,paddingXS:a,padding:d,colorSplit:s,lineWidth:u,zIndexPopup:c,borderRadiusLG:m,subMenuItemBorderRadius:p,menuArrowSize:g,menuArrowOffset:$,lineType:b,groupTitleLineHeight:f,groupTitleFontSize:v}=e;return[{"":{[o]:Object.assign(Object.assign({},(0,k.clearFix)()),{"&-hidden":{display:"none"}})},[`${o}-submenu-hidden`]:{display:"none"}},{[o]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,k.resetComponent)(e)),(0,k.clearFix)()),{marginBottom:0,paddingInlineStart:0,fontSize:n,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${i} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:"none"},"&-overflow":{display:"flex",[`${o}-item`]:{flex:"none"}},[`${o}-item, ${o}-submenu, ${o}-submenu-title`]:{borderRadius:e.itemBorderRadius},[`${o}-item-group-title`]:{padding:`${(0,B.unit)(a)} ${(0,B.unit)(d)}`,fontSize:v,lineHeight:f,transition:`all ${i}`},[`&-horizontal ${o}-submenu`]:{transition:`border-color ${i} ${l},background ${i} ${l}`},[`${o}-submenu, ${o}-submenu-inline`]:{transition:`border-color ${i} ${l},background ${i} ${l},padding ${r} ${l}`},[`${o}-submenu ${o}-sub`]:{cursor:"initial",transition:`background ${i} ${l},padding ${i} ${l}`},[`${o}-title-content`]:{transition:`color ${i}`,"&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},[`> ${t}-typography-ellipsis-single-line`]:{display:"inline",verticalAlign:"unset"},[`${o}-item-extra`]:{marginInlineStart:"auto",paddingInlineStart:e.padding}},[`${o}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${o}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:s,borderStyle:b,borderWidth:0,borderTopWidth:u,marginBlock:u,padding:0,"&-dashed":{borderStyle:"dashed"}}}),M(e)),{[`${o}-item-group`]:{[`${o}-item-group-list`]:{margin:0,padding:0,[`${o}-item, ${o}-submenu-title`]:{paddingInline:`${(0,B.unit)(e.calc(n).mul(2).equal())} ${(0,B.unit)(d)}`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:c,borderRadius:m,boxShadow:"none",transformOrigin:"0 0",[`&${o}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:0,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'},[`> ${o}`]:Object.assign(Object.assign(Object.assign({borderRadius:m},M(e)),D(e)),{[`${o}-item, ${o}-submenu > ${o}-submenu-title`]:{borderRadius:p},[`${o}-submenu-title::after`]:{transition:`transform ${i} ${l}`}})},[` + &-placement-leftTop, + &-placement-bottomRight, + `]:{transformOrigin:"100% 0"},[` + &-placement-leftBottom, + &-placement-topRight, + `]:{transformOrigin:"100% 100%"},[` + &-placement-rightBottom, + &-placement-topLeft, + `]:{transformOrigin:"0 100%"},[` + &-placement-bottomLeft, + &-placement-rightTop, + `]:{transformOrigin:"0 0"},[` + &-placement-leftTop, + &-placement-leftBottom + `]:{paddingInlineEnd:e.paddingXS},[` + &-placement-rightTop, + &-placement-rightBottom + `]:{paddingInlineStart:e.paddingXS},[` + &-placement-topRight, + &-placement-topLeft + `]:{paddingBottom:e.paddingXS},[` + &-placement-bottomRight, + &-placement-bottomLeft + `]:{paddingTop:e.paddingXS}}}),D(e)),{[`&-inline-collapsed ${o}-submenu-arrow, + &-inline ${o}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${(0,B.unit)($)})`},"&::after":{transform:`rotate(45deg) translateX(${(0,B.unit)(e.calc($).mul(-1).equal())})`}},[`${o}-submenu-open${o}-submenu-inline > ${o}-submenu-title > ${o}-submenu-arrow`]:{transform:`translateY(${(0,B.unit)(e.calc(g).mul(.2).mul(-1).equal())})`,"&::after":{transform:`rotate(-45deg) translateX(${(0,B.unit)(e.calc($).mul(-1).equal())})`},"&::before":{transform:`rotate(45deg) translateX(${(0,B.unit)($)})`}}})},{[`${t}-layout-header`]:{[o]:{lineHeight:"inherit"}}}]})(C),(e=>{let{componentCls:t,motionDurationSlow:o,horizontalLineHeight:n,colorSplit:i,lineWidth:r,lineType:l,itemPaddingInline:a}=e;return{[`${t}-horizontal`]:{lineHeight:n,border:0,borderBottom:`${(0,B.unit)(r)} ${l} ${i}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${t}-item, ${t}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:a},[`> ${t}-item:hover, + > ${t}-item-active, + > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${t}-item, ${t}-submenu-title`]:{transition:`border-color ${o},background ${o}`},[`${t}-submenu-arrow`]:{display:"none"}}}})(C),(e=>{let{componentCls:t,iconCls:o,itemHeight:n,colorTextLightSolid:i,dropdownWidth:r,controlHeightLG:l,motionEaseOut:a,paddingXL:d,itemMarginInline:s,fontSizeLG:u,motionDurationFast:c,motionDurationSlow:m,paddingXS:p,boxShadowSecondary:g,collapsedWidth:$,collapsedIconSize:b}=e,f={height:n,lineHeight:(0,B.unit)(n),listStylePosition:"inside",listStyleType:"disc"};return[{[t]:{"&-inline, &-vertical":Object.assign({[`&${t}-root`]:{boxShadow:"none"}},P(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:Object.assign(Object.assign({},P(e)),{boxShadow:g})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:r,maxHeight:`calc(100vh - ${(0,B.unit)(e.calc(l).mul(2.5).equal())})`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${t}-inline`]:{width:"100%",[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:"flex",alignItems:"center",transition:`border-color ${m},background ${m},padding ${c} ${a}`,[`> ${t}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${t}-submenu > ${t}-submenu-title`]:f,[`& ${t}-item-group-title`]:{paddingInlineStart:d}},[`${t}-item`]:f}},{[`${t}-inline-collapsed`]:{width:$,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:u,textAlign:"center"}}},[`> ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title, + > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${(0,B.unit)(e.calc(b).div(2).equal())} - ${(0,B.unit)(s)})`,textOverflow:"clip",[` + ${t}-submenu-arrow, + ${t}-submenu-expand-icon + `]:{opacity:0},[`${t}-item-icon, ${o}`]:{margin:0,fontSize:b,lineHeight:(0,B.unit)(n),"+ span":{display:"inline-block",opacity:0}}},[`${t}-item-icon, ${o}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${t}-item-icon, ${o}`]:{display:"none"},"a, a:hover":{color:i}},[`${t}-item-group-title`]:Object.assign(Object.assign({},k.textEllipsis),{paddingInline:p})}}]})(C),R(C,"light"),R(I,"dark"),(({componentCls:e,menuArrowOffset:t,calc:o})=>({[`${e}-rtl`]:{direction:"rtl"},[`${e}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${e}-rtl${e}-vertical, + ${e}-submenu-rtl ${e}-vertical`]:{[`${e}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(${(0,B.unit)(o(t).mul(-1).equal())})`},"&::after":{transform:`rotate(45deg) translateY(${(0,B.unit)(t)})`}}}}))(C),(0,E.genCollapseMotion)(C),(0,H.initSlideMotion)(C,"slide-up"),(0,H.initSlideMotion)(C,"slide-down"),(0,j.initZoomMotion)(C,"zoom-big")]},A,{deprecatedTokens:[["colorGroupTitle","groupTitleColor"],["radiusItem","itemBorderRadius"],["radiusSubMenuItem","subMenuItemBorderRadius"],["colorItemText","itemColor"],["colorItemTextHover","itemHoverColor"],["colorItemTextHoverHorizontal","horizontalItemHoverColor"],["colorItemTextSelected","itemSelectedColor"],["colorItemTextSelectedHorizontal","horizontalItemSelectedColor"],["colorItemTextDisabled","itemDisabledColor"],["colorDangerItemText","dangerItemColor"],["colorDangerItemTextHover","dangerItemHoverColor"],["colorDangerItemTextSelected","dangerItemSelectedColor"],["colorDangerItemBgActive","dangerItemActiveBg"],["colorDangerItemBgSelected","dangerItemSelectedBg"],["colorItemBg","itemBg"],["colorItemBgHover","itemHoverBg"],["colorSubItemBg","subMenuItemBg"],["colorItemBgActive","itemActiveBg"],["colorItemBgSelectedHorizontal","horizontalItemSelectedBg"],["colorActiveBarWidth","activeBarWidth"],["colorActiveBarHeight","activeBarHeight"],["colorActiveBarBorderSize","activeBarBorderWidth"],["colorItemBgSelected","itemSelectedBg"]],injectStyle:o,unitless:{groupTitleLineHeight:!0}})(e,t))(en,ei,!g),ed=(0,l.default)(`${en}-${w}`,null==h?void 0:h.className,I),es=t.useMemo(()=>{var e,o;if("function"==typeof O||Y(O))return O||null;if("function"==typeof $.expandIcon||Y($.expandIcon))return $.expandIcon||null;if("function"==typeof(null==h?void 0:h.expandIcon)||Y(null==h?void 0:h.expandIcon))return(null==h?void 0:h.expandIcon)||null;let n=null!=(e=null!=O?O:null==$?void 0:$.expandIcon)?e:null==h?void 0:h.expandIcon;return(0,u.cloneElement)(n,{className:(0,l.default)(`${en}-submenu-expand-icon`,t.isValidElement(n)?null==(o=n.props)?void 0:o.className:void 0)})},[O,null==$?void 0:$.expandIcon,null==h?void 0:h.expandIcon,en]),eu=t.useMemo(()=>({prefixCls:en,inlineCollapsed:et||!1,direction:v,firstLevel:!0,theme:w,mode:J,disableMenuItemTitleTooltip:N}),[en,et,v,N,w]);return er(t.createElement(S.Provider,{value:null},t.createElement(p.Provider,{value:eu},t.createElement(o.default,Object.assign({getPopupContainer:f,overflowedIndicator:t.createElement(r.default,null),overflowedIndicatorPopupClassName:(0,l.default)(en,`${en}-${w}`,V),mode:J,selectable:ee,onClick:Q},K,{inlineCollapsed:et,style:Object.assign(Object.assign({},null==h?void 0:h.style),y),className:ed,prefixCls:en,direction:v,defaultMotions:eo,expandIcon:es,ref:n,rootClassName:(0,l.default)(q,el,$.rootClassName,ea,ei),_internalComponents:G})))))}),U=(0,t.forwardRef)((e,o)=>{let n=(0,t.useRef)(null),r=t.useContext(i.SiderContext);return(0,t.useImperativeHandle)(o,()=>({menu:n.current,focus:e=>{var t;null==(t=n.current)||t.focus(e)}})),t.createElement(_,Object.assign({ref:n},e,r))});U.Item=x,U.SubMenu=X,U.Divider=b,U.ItemGroup=n.ItemGroup,e.s(["default",0,U],60699)},138540,e=>{"use strict";e.s(["default",0,e=>"object"!=typeof e&&"function"!=typeof e||null===e])},21539,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(801312),n=e.i(286612),i=e.i(343794),r=e.i(878081),l=e.i(175066),a=e.i(914949),d=e.i(529681),s=e.i(122767),u=e.i(138540),c=e.i(805984),m=e.i(805484),p=e.i(763731),g=e.i(747656),$=e.i(340010),b=e.i(242064),f=e.i(321883),v=e.i(60699),h=e.i(652199),x=e.i(104458);e.i(296059);var C=e.i(915654),I=e.i(183293),y=e.i(777489),S=e.i(664142),w=e.i(717356),B=e.i(320560),O=e.i(307358),k=e.i(246422),E=e.i(838378);let H=(0,k.genStyleHooks)("Dropdown",e=>{let{marginXXS:t,sizePopupArrow:o,paddingXXS:n,componentCls:i}=e,r=(0,E.mergeToken)(e,{menuCls:`${i}-menu`,dropdownArrowDistance:e.calc(o).div(2).add(t).equal(),dropdownEdgeChildPadding:n});return[(e=>{let{componentCls:t,menuCls:o,zIndexPopup:n,dropdownArrowDistance:i,sizePopupArrow:r,antCls:l,iconCls:a,motionDurationMid:d,paddingBlock:s,fontSize:u,dropdownEdgeChildPadding:c,colorTextDisabled:m,fontSizeIcon:p,controlPaddingHorizontal:g,colorBgElevated:$}=e;return[{[t]:{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:n,display:"block","&::before":{position:"absolute",insetBlock:e.calc(r).div(2).sub(i).equal(),zIndex:-9999,opacity:1e-4,content:'""'},"&-menu-vertical":{maxHeight:"100vh",overflowY:"auto"},[`&-trigger${l}-btn`]:{[`& > ${a}-down, & > ${l}-btn-icon > ${a}-down`]:{fontSize:p}},[`${t}-wrap`]:{position:"relative",[`${l}-btn > ${a}-down`]:{fontSize:p},[`${a}-down::before`]:{transition:`transform ${d}`}},[`${t}-wrap-open`]:{[`${a}-down::before`]:{transform:"rotate(180deg)"}},[` + &-hidden, + &-menu-hidden, + &-menu-submenu-hidden + `]:{display:"none"},[`&${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottomLeft, + &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottomLeft, + &${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottom, + &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottom, + &${l}-slide-down-enter${l}-slide-down-enter-active${t}-placement-bottomRight, + &${l}-slide-down-appear${l}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:S.slideUpIn},[`&${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-topLeft, + &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-topLeft, + &${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-top, + &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-top, + &${l}-slide-up-enter${l}-slide-up-enter-active${t}-placement-topRight, + &${l}-slide-up-appear${l}-slide-up-appear-active${t}-placement-topRight`]:{animationName:S.slideDownIn},[`&${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottomLeft, + &${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottom, + &${l}-slide-down-leave${l}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:S.slideUpOut},[`&${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-topLeft, + &${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-top, + &${l}-slide-up-leave${l}-slide-up-leave-active${t}-placement-topRight`]:{animationName:S.slideDownOut}}},(0,B.default)(e,$,{arrowPlacement:{top:!0,bottom:!0}}),{[`${t} ${o}`]:{position:"relative",margin:0},[`${o}-submenu-popup`]:{position:"absolute",zIndex:n,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${t}, ${t}-menu-submenu`]:Object.assign(Object.assign({},(0,I.resetComponent)(e)),{[o]:Object.assign(Object.assign({padding:c,listStyleType:"none",backgroundColor:$,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary},(0,I.genFocusStyle)(e)),{"&:empty":{padding:0,boxShadow:"none"},[`${o}-item-group-title`]:{padding:`${(0,C.unit)(s)} ${(0,C.unit)(g)}`,color:e.colorTextDescription,transition:`all ${d}`},[`${o}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${o}-item-icon`]:{minWidth:u,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${o}-title-content`]:{flex:"auto","&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},"> a":{color:"inherit",transition:`all ${d}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}},[`${o}-item-extra`]:{paddingInlineStart:e.padding,marginInlineStart:"auto",fontSize:e.fontSizeSM,color:e.colorTextDescription}},[`${o}-item, ${o}-submenu-title`]:Object.assign(Object.assign({display:"flex",margin:0,padding:`${(0,C.unit)(s)} ${(0,C.unit)(g)}`,color:e.colorText,fontWeight:"normal",fontSize:u,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${d}`,borderRadius:e.borderRadiusSM,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},(0,I.genFocusStyle)(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:m,cursor:"not-allowed","&:hover":{color:m,backgroundColor:$,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${(0,C.unit)(e.marginXXS)} 0`,overflow:"hidden",lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:e.colorIcon,fontSize:p,fontStyle:"normal"}}}),[`${o}-item-group-list`]:{margin:`0 ${(0,C.unit)(e.marginXS)}`,padding:0,listStyle:"none"},[`${o}-submenu-title`]:{paddingInlineEnd:e.calc(g).add(e.fontSizeSM).equal()},[`${o}-submenu-vertical`]:{position:"relative"},[`${o}-submenu${o}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:m,backgroundColor:$,cursor:"not-allowed"}},[`${o}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})})},[(0,S.initSlideMotion)(e,"slide-up"),(0,S.initSlideMotion)(e,"slide-down"),(0,y.initMoveMotion)(e,"move-up"),(0,y.initMoveMotion)(e,"move-down"),(0,w.initZoomMotion)(e,"zoom-big")]]})(r),(e=>{let{componentCls:t,menuCls:o,colorError:n,colorTextLightSolid:i}=e,r=`${o}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${o} ${r}`]:{[`&${r}-danger:not(${r}-disabled)`]:{color:n,"&:hover":{color:i,backgroundColor:n}}}}}})(r)]},e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+50,paddingBlock:(e.controlHeight-e.fontSize*e.lineHeight)/2},(0,B.getArrowOffsetToken)({contentRadius:e.borderRadiusLG,limitVerticalRadius:!0})),(0,O.getArrowToken)(e)),{resetStyle:!1}),j=e=>{var m;let{menu:C,arrow:I,prefixCls:y,children:S,trigger:w,disabled:B,dropdownRender:O,popupRender:k,getPopupContainer:E,overlayClassName:j,rootClassName:z,overlayStyle:T,open:N,onOpenChange:R,visible:P,onVisibleChange:M,mouseEnterDelay:D=.15,mouseLeaveDelay:A=.1,autoAdjustOverflow:L=!0,placement:W="",overlay:q,transitionName:X,destroyOnHidden:F,destroyPopupOnHide:Y}=e,{getPopupContainer:G,getPrefixCls:_,direction:U,dropdown:V}=t.useContext(b.ConfigContext),Z=k||O;(0,g.devUseWarning)("Dropdown");let K=t.useMemo(()=>{let e=_();return void 0!==X?X:W.includes("top")?`${e}-slide-down`:`${e}-slide-up`},[_,W,X]),Q=t.useMemo(()=>W?W.includes("Center")?W.slice(0,W.indexOf("Center")):W:"rtl"===U?"bottomRight":"bottomLeft",[W,U]),J=_("dropdown",y),ee=(0,f.default)(J),[et,eo,en]=H(J,ee),[,ei]=(0,x.useToken)(),er=t.Children.only((0,u.default)(S)?t.createElement("span",null,S):S),el=(0,p.cloneElement)(er,{className:(0,i.default)(`${J}-trigger`,{[`${J}-rtl`]:"rtl"===U},er.props.className),disabled:null!=(m=er.props.disabled)?m:B}),ea=B?[]:w,ed=!!(null==ea?void 0:ea.includes("contextMenu")),[es,eu]=(0,a.default)(!1,{value:null!=N?N:P}),ec=(0,l.default)(e=>{null==R||R(e,{source:"trigger"}),null==M||M(e),eu(e)}),em=(0,i.default)(j,z,eo,en,ee,null==V?void 0:V.className,{[`${J}-rtl`]:"rtl"===U}),ep=(0,c.default)({arrowPointAtCenter:"object"==typeof I&&I.pointAtCenter,autoAdjustOverflow:L,offset:ei.marginXXS,arrowWidth:I?ei.sizePopupArrow:0,borderRadius:ei.borderRadius}),eg=(0,l.default)(()=>{null!=C&&C.selectable&&null!=C&&C.multiple||(null==R||R(!1,{source:"menu"}),eu(!1))}),[e$,eb]=(0,s.useZIndex)("Dropdown",null==T?void 0:T.zIndex),ef=t.createElement(r.default,Object.assign({alignPoint:ed},(0,d.default)(e,["rootClassName"]),{mouseEnterDelay:D,mouseLeaveDelay:A,visible:es,builtinPlacements:ep,arrow:!!I,overlayClassName:em,prefixCls:J,getPopupContainer:E||G,transitionName:K,trigger:ea,overlay:()=>{let e;return e=(null==C?void 0:C.items)?t.createElement(v.default,Object.assign({},C)):"function"==typeof q?q():q,Z&&(e=Z(e)),e=t.Children.only("string"==typeof e?t.createElement("span",null,e):e),t.createElement(h.OverrideProvider,{prefixCls:`${J}-menu`,rootClassName:(0,i.default)(en,ee),expandIcon:t.createElement("span",{className:`${J}-menu-submenu-arrow`},"rtl"===U?t.createElement(o.default,{className:`${J}-menu-submenu-arrow-icon`}):t.createElement(n.default,{className:`${J}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:eg,validator:({mode:e})=>{}},e)},placement:Q,onVisibleChange:ec,overlayStyle:Object.assign(Object.assign(Object.assign({},null==V?void 0:V.style),T),{zIndex:e$}),autoDestroy:null!=F?F:Y}),el);return e$&&(ef=t.createElement($.default.Provider,{value:eb},ef)),et(ef)},z=(0,m.default)(j,"align",void 0,"dropdown",e=>e);j._InternalPanelDoNotUseOrYouWillBeFired=e=>t.createElement(z,Object.assign({},e),t.createElement("span",null));var T=e.i(867384),N=e.i(920228),R=e.i(38243),P=e.i(249616),M=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,n=Object.getOwnPropertySymbols(e);it.indexOf(n[i])&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]]);return o};let D=e=>{let{getPopupContainer:o,getPrefixCls:n,direction:r}=t.useContext(b.ConfigContext),{prefixCls:l,type:a="default",danger:d,disabled:s,loading:u,onClick:c,htmlType:m,children:p,className:g,menu:$,arrow:f,autoFocus:v,overlay:h,trigger:x,align:C,open:I,onOpenChange:y,placement:S,getPopupContainer:w,href:B,icon:O=t.createElement(T.default,null),title:k,buttonsRender:E=e=>e,mouseEnterDelay:H,mouseLeaveDelay:z,overlayClassName:D,overlayStyle:A,destroyOnHidden:L,destroyPopupOnHide:W,dropdownRender:q,popupRender:X}=e,F=M(e,["prefixCls","type","danger","disabled","loading","onClick","htmlType","children","className","menu","arrow","autoFocus","overlay","trigger","align","open","onOpenChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyOnHidden","destroyPopupOnHide","dropdownRender","popupRender"]),Y=n("dropdown",l),G=`${Y}-button`,_={menu:$,arrow:f,autoFocus:v,align:C,disabled:s,trigger:s?[]:x,onOpenChange:y,getPopupContainer:w||o,mouseEnterDelay:H,mouseLeaveDelay:z,overlayClassName:D,overlayStyle:A,destroyOnHidden:L,popupRender:X||q},{compactSize:U,compactItemClassnames:V}=(0,P.useCompactItemContext)(Y,r),Z=(0,i.default)(G,V,g);"destroyPopupOnHide"in e&&(_.destroyPopupOnHide=W),"overlay"in e&&(_.overlay=h),"open"in e&&(_.open=I),"placement"in e?_.placement=S:_.placement="rtl"===r?"bottomLeft":"bottomRight";let[K,Q]=E([t.createElement(N.default,{type:a,danger:d,disabled:s,loading:u,onClick:c,htmlType:m,href:B,title:k},p),t.createElement(N.default,{type:a,danger:d,icon:O})]);return t.createElement(R.default.Compact,Object.assign({className:Z,size:U,block:!0},F),K,t.createElement(j,Object.assign({},_),Q))};D.__ANT_BUTTON=!0,j.Button=D,e.s(["default",0,j],21539)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/13941d92d83ccc8d.js b/litellm/proxy/_experimental/out/_next/static/chunks/13941d92d83ccc8d.js deleted file mode 100644 index 7883eaa15a4..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/13941d92d83ccc8d.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,737434,e=>{"use strict";var t=e.i(184163);e.s(["DownloadOutlined",()=>t.default])},964306,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["XCircleIcon",0,r],964306)},860585,e=>{"use strict";var t=e.i(843476),r=e.i(199133);let{Option:l}=r.Select;e.s(["default",0,({value:e,onChange:a,className:n="",style:o={}})=>(0,t.jsxs)(r.Select,{style:{width:"100%",...o},value:e||void 0,onChange:a,className:n,placeholder:"n/a",allowClear:!0,children:[(0,t.jsx)(l,{value:"24h",children:"daily"}),(0,t.jsx)(l,{value:"7d",children:"weekly"}),(0,t.jsx)(l,{value:"30d",children:"monthly"})]}),"getBudgetDurationLabel",0,e=>e?({"24h":"daily","7d":"weekly","30d":"monthly"})[e]||e:"Not set"])},743151,(e,t,r)=>{"use strict";function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CopyToClipboard=void 0;var a=i(e.r(271645)),n=i(e.r(844343)),o=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,l)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,o),l=a.default.Children.only(t);return a.default.cloneElement(l,c(c({},r),{},{onClick:this.onClick}))}}],function(e,t){for(var r=0;r{"use strict";var l=e.r(743151).CopyToClipboard;l.CopyToClipboard=l,t.exports=l},663435,e=>{"use strict";var t=e.i(843476),r=e.i(199133);e.s(["default",0,({teams:e,value:l,onChange:a,disabled:n})=>(console.log("disabled",n),(0,t.jsx)(r.Select,{showSearch:!0,placeholder:"Search or select a team",value:l,onChange:a,disabled:n,allowClear:!0,filterOption:(t,r)=>{if(!r)return!1;let l=e?.find(e=>e.team_id===r.key);if(!l)return!1;let a=t.toLowerCase().trim(),n=(l.team_alias||"").toLowerCase(),o=(l.team_id||"").toLowerCase();return n.includes(a)||o.includes(a)},optionFilterProp:"children",children:e?.map(e=>(0,t.jsxs)(r.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)("span",{className:"text-gray-500",children:["(",e.team_id,")"]})]},e.team_id))}))])},285027,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"}}]},name:"warning",theme:"outlined"};var a=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(a.default,(0,t.default)({},e,{ref:n,icon:l}))});e.s(["WarningOutlined",0,n],285027)},355619,e=>{"use strict";var t=e.i(764205);let r=async(e,r,l)=>{try{if(null===e||null===r)return;if(null!==l){let a=(await (0,t.modelAvailableCall)(l,e,r,!0,null,!0)).data.map(e=>e.id),n=[],o=[];return a.forEach(e=>{e.endsWith("/*")?n.push(e):o.push(e)}),[...n,...o]}}catch(e){console.error("Error fetching user models:",e)}};e.s(["fetchAvailableModelsForTeamOrKey",0,r,"getModelDisplayName",0,e=>{if("all-proxy-models"===e)return"All Proxy Models";if(e.endsWith("/*")){let t=e.replace("/*","");return`All ${t} models`}return e},"unfurlWildcardModelsInList",0,(e,t)=>{let r=[],l=[];return console.log("teamModels",e),console.log("allModels",t),e.forEach(e=>{if(e.endsWith("/*")){let a=e.replace("/*",""),n=t.filter(e=>e.startsWith(a+"/"));l.push(...n),r.push(e)}else l.push(e)}),[...r,...l].filter((e,t,r)=>r.indexOf(e)===t)}])},309821,e=>{"use strict";e.i(247167);var t=e.i(271645);e.i(262370);var r=e.i(135551),l=e.i(201072),a=e.i(121229),n=e.i(726289),o=e.i(864517),i=e.i(343794),s=e.i(529681),c=e.i(242064),d=e.i(931067),u=e.i(209428),m=e.i(703923),f={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},p=function(){var e=(0,t.useRef)([]),r=(0,t.useRef)(null);return(0,t.useEffect)(function(){var t=Date.now(),l=!1;e.current.forEach(function(e){if(e){l=!0;var a=e.style;a.transitionDuration=".3s, .3s, .3s, .06s",r.current&&t-r.current<100&&(a.transitionDuration="0s, 0s")}}),l&&(r.current=Date.now())}),e.current},g=e.i(410160),h=e.i(392221),b=e.i(654310),y=0,x=(0,b.default)();let v=function(e){var r=t.useState(),l=(0,h.default)(r,2),a=l[0],n=l[1];return t.useEffect(function(){var e;n("rc_progress_".concat((x?(e=y,y+=1):e="TEST_OR_SSR",e)))},[]),e||a};var k=function(e){var r=e.bg,l=e.children;return t.createElement("div",{style:{width:"100%",height:"100%",background:r}},l)};function j(e,t){return Object.keys(e).map(function(r){var l=parseFloat(r),a="".concat(Math.floor(l*t),"%");return"".concat(e[r]," ").concat(a)})}var w=t.forwardRef(function(e,r){var l=e.prefixCls,a=e.color,n=e.gradientId,o=e.radius,i=e.style,s=e.ptg,c=e.strokeLinecap,d=e.strokeWidth,u=e.size,m=e.gapDegree,f=a&&"object"===(0,g.default)(a),p=u/2,h=t.createElement("circle",{className:"".concat(l,"-circle-path"),r:o,cx:p,cy:p,stroke:f?"#FFF":void 0,strokeLinecap:c,strokeWidth:d,opacity:+(0!==s),style:i,ref:r});if(!f)return h;var b="".concat(n,"-conic"),y=j(a,(360-m)/360),x=j(a,1),v="conic-gradient(from ".concat(m?"".concat(180+m/2,"deg"):"0deg",", ").concat(y.join(", "),")"),w="linear-gradient(to ".concat(m?"bottom":"top",", ").concat(x.join(", "),")");return t.createElement(t.Fragment,null,t.createElement("mask",{id:b},h),t.createElement("foreignObject",{x:0,y:0,width:u,height:u,mask:"url(#".concat(b,")")},t.createElement(k,{bg:w},t.createElement(k,{bg:v}))))}),C=function(e,t,r,l,a,n,o,i,s,c){var d=arguments.length>10&&void 0!==arguments[10]?arguments[10]:0,u=(100-l)/100*t;return"round"===s&&100!==l&&(u+=c/2)>=t&&(u=t-.01),{stroke:"string"==typeof i?i:void 0,strokeDasharray:"".concat(t,"px ").concat(e),strokeDashoffset:u+d,transform:"rotate(".concat(a+r/100*360*((360-n)/360)+(0===n?0:({bottom:0,top:180,left:90,right:-90})[o]),"deg)"),transformOrigin:"".concat(50,"px ").concat(50,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},S=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function N(e){var t=null!=e?e:[];return Array.isArray(t)?t:[t]}let $=function(e){var r,l,a,n,o=(0,u.default)((0,u.default)({},f),e),s=o.id,c=o.prefixCls,h=o.steps,b=o.strokeWidth,y=o.trailWidth,x=o.gapDegree,k=void 0===x?0:x,j=o.gapPosition,$=o.trailColor,O=o.strokeLinecap,E=o.style,M=o.className,P=o.strokeColor,_=o.percent,T=(0,m.default)(o,S),D=v(s),R="".concat(D,"-gradient"),F=50-b/2,I=2*Math.PI*F,A=k>0?90+k/2:-90,L=(360-k)/360*I,z="object"===(0,g.default)(h)?h:{count:h,gap:2},W=z.count,B=z.gap,X=N(_),H=N(P),q=H.find(function(e){return e&&"object"===(0,g.default)(e)}),K=q&&"object"===(0,g.default)(q)?"butt":O,V=C(I,L,0,100,A,k,j,$,K,b),G=p();return t.createElement("svg",(0,d.default)({className:(0,i.default)("".concat(c,"-circle"),M),viewBox:"0 0 ".concat(100," ").concat(100),style:E,id:s,role:"presentation"},T),!W&&t.createElement("circle",{className:"".concat(c,"-circle-trail"),r:F,cx:50,cy:50,stroke:$,strokeLinecap:K,strokeWidth:y||b,style:V}),W?(r=Math.round(W*(X[0]/100)),l=100/W,a=0,Array(W).fill(null).map(function(e,n){var o=n<=r-1?H[0]:$,i=o&&"object"===(0,g.default)(o)?"url(#".concat(R,")"):void 0,s=C(I,L,a,l,A,k,j,o,"butt",b,B);return a+=(L-s.strokeDashoffset+B)*100/L,t.createElement("circle",{key:n,className:"".concat(c,"-circle-path"),r:F,cx:50,cy:50,stroke:i,strokeWidth:b,opacity:1,style:s,ref:function(e){G[n]=e}})})):(n=0,X.map(function(e,r){var l=H[r]||H[H.length-1],a=C(I,L,n,e,A,k,j,l,K,b);return n+=e,t.createElement(w,{key:r,color:l,ptg:e,radius:F,prefixCls:c,gradientId:R,style:a,strokeLinecap:K,strokeWidth:b,gapDegree:k,ref:function(e){G[r]=e},size:100})}).reverse()))};var O=e.i(491816);e.i(765846);var E=e.i(896091);function M(e){return!e||e<0?0:e>100?100:e}function P({success:e,successPercent:t}){let r=t;return e&&"progress"in e&&(r=e.progress),e&&"percent"in e&&(r=e.percent),r}let _=(e,t,r)=>{var l,a,n,o;let i=-1,s=-1;if("step"===t){let t=r.steps,l=r.strokeWidth;"string"==typeof e||void 0===e?(i="small"===e?2:14,s=null!=l?l:8):"number"==typeof e?[i,s]=[e,e]:[i=14,s=8]=Array.isArray(e)?e:[e.width,e.height],i*=t}else if("line"===t){let t=null==r?void 0:r.strokeWidth;"string"==typeof e||void 0===e?s=t||("small"===e?6:8):"number"==typeof e?[i,s]=[e,e]:[i=-1,s=8]=Array.isArray(e)?e:[e.width,e.height]}else("circle"===t||"dashboard"===t)&&("string"==typeof e||void 0===e?[i,s]="small"===e?[60,60]:[120,120]:"number"==typeof e?[i,s]=[e,e]:Array.isArray(e)&&(i=null!=(a=null!=(l=e[0])?l:e[1])?a:120,s=null!=(o=null!=(n=e[0])?n:e[1])?o:120));return[i,s]},T=e=>{let{prefixCls:r,trailColor:l=null,strokeLinecap:a="round",gapPosition:n,gapDegree:o,width:s=120,type:c,children:d,success:u,size:m=s,steps:f}=e,[p,g]=_(m,"circle"),{strokeWidth:h}=e;void 0===h&&(h=Math.max(3/p*100,6));let b=t.useMemo(()=>o||0===o?o:"dashboard"===c?75:void 0,[o,c]),y=(({percent:e,success:t,successPercent:r})=>{let l=M(P({success:t,successPercent:r}));return[l,M(M(e)-l)]})(e),x="[object Object]"===Object.prototype.toString.call(e.strokeColor),v=(({success:e={},strokeColor:t})=>{let{strokeColor:r}=e;return[r||E.presetPrimaryColors.green,t||null]})({success:u,strokeColor:e.strokeColor}),k=(0,i.default)(`${r}-inner`,{[`${r}-circle-gradient`]:x}),j=t.createElement($,{steps:f,percent:f?y[1]:y,strokeWidth:h,trailWidth:h,strokeColor:f?v[1]:v,strokeLinecap:a,trailColor:l,prefixCls:r,gapDegree:b,gapPosition:n||"dashboard"===c&&"bottom"||void 0}),w=p<=20,C=t.createElement("div",{className:k,style:{width:p,height:g,fontSize:.15*p+6}},j,!w&&d);return w?t.createElement(O.default,{title:d},C):C};e.i(296059);var D=e.i(694758),R=e.i(915654),F=e.i(183293),I=e.i(246422),A=e.i(838378);let L="--progress-line-stroke-color",z="--progress-percent",W=e=>{let t=e?"100%":"-100%";return new D.Keyframes(`antProgress${e?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${t}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${t}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},B=(0,I.genStyleHooks)("Progress",e=>{let t=e.calc(e.marginXXS).div(2).equal(),r=(0,A.mergeToken)(e,{progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:"2.4s"});return[(e=>{let{componentCls:t,iconCls:r}=e;return{[t]:Object.assign(Object.assign({},(0,F.resetComponent)(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize},[`${t}-outer`]:{display:"inline-flex",alignItems:"center",width:"100%"},[`${t}-inner`]:{position:"relative",display:"inline-block",width:"100%",flex:1,overflow:"hidden",verticalAlign:"middle",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.defaultColor}},[`${t}-success-bg, ${t}-bg`]:{position:"relative",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-layout-bottom`]:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",[`${t}-text`]:{width:"max-content",marginInlineStart:0,marginTop:e.marginXXS}},[`${t}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${L})`]},height:"100%",width:`calc(1 / var(${z}) * 100%)`,display:"block"},[`&${t}-bg-inner`]:{minWidth:"max-content","&::after":{content:"none"},[`${t}-text-inner`]:{color:e.colorWhite,[`&${t}-text-bright`]:{color:"rgba(0, 0, 0, 0.45)"}}}},[`${t}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:"2em",whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[r]:{fontSize:e.fontSize},[`&${t}-text-outer`]:{width:"max-content"},[`&${t}-text-outer${t}-text-start`]:{width:"max-content",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${t}-text-inner`]:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",marginInlineStart:0,padding:`0 ${(0,R.unit)(e.paddingXXS)}`,[`&${t}-text-start`]:{justifyContent:"start"},[`&${t}-text-end`]:{justifyContent:"end"}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:W(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${t}-rtl${t}-status-active`]:{[`${t}-bg::before`]:{animationName:W(!0)}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}})(r),(e=>{let{componentCls:t,iconCls:r}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.remainingColor},[`&${t}-circle ${t}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${t}-circle ${t}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[r]:{fontSize:e.circleIconFontSize}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:"bottom"}}}})(r),(e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.defaultColor}}}}}})(r),(e=>{let{componentCls:t,iconCls:r}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${r}`]:{fontSize:e.fontSizeSM}}}})(r)]},e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}));var X=function(e,t){var r={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(r[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(r[l[a]]=e[l[a]]);return r};let H=e=>{let{prefixCls:r,direction:l,percent:a,size:n,strokeWidth:o,strokeColor:s,strokeLinecap:c="round",children:d,trailColor:u=null,percentPosition:m,success:f}=e,{align:p,type:g}=m,h=s&&"string"!=typeof s?((e,t)=>{let{from:r=E.presetPrimaryColors.blue,to:l=E.presetPrimaryColors.blue,direction:a="rtl"===t?"to left":"to right"}=e,n=X(e,["from","to","direction"]);if(0!==Object.keys(n).length){let e,t=(e=[],Object.keys(n).forEach(t=>{let r=Number.parseFloat(t.replace(/%/g,""));Number.isNaN(r)||e.push({key:r,value:n[t]})}),(e=e.sort((e,t)=>e.key-t.key)).map(({key:e,value:t})=>`${t} ${e}%`).join(", ")),r=`linear-gradient(${a}, ${t})`;return{background:r,[L]:r}}let o=`linear-gradient(${a}, ${r}, ${l})`;return{background:o,[L]:o}})(s,l):{[L]:s,background:s},b="square"===c||"butt"===c?0:void 0,[y,x]=_(null!=n?n:[-1,o||("small"===n?6:8)],"line",{strokeWidth:o}),v=Object.assign(Object.assign({width:`${M(a)}%`,height:x,borderRadius:b},h),{[z]:M(a)/100}),k=P(e),j={width:`${M(k)}%`,height:x,borderRadius:b,backgroundColor:null==f?void 0:f.strokeColor},w=t.createElement("div",{className:`${r}-inner`,style:{backgroundColor:u||void 0,borderRadius:b}},t.createElement("div",{className:(0,i.default)(`${r}-bg`,`${r}-bg-${g}`),style:v},"inner"===g&&d),void 0!==k&&t.createElement("div",{className:`${r}-success-bg`,style:j})),C="outer"===g&&"start"===p,S="outer"===g&&"end"===p;return"outer"===g&&"center"===p?t.createElement("div",{className:`${r}-layout-bottom`},w,d):t.createElement("div",{className:`${r}-outer`,style:{width:y<0?"100%":y}},C&&d,w,S&&d)},q=e=>{let{size:r,steps:l,rounding:a=Math.round,percent:n=0,strokeWidth:o=8,strokeColor:s,trailColor:c=null,prefixCls:d,children:u}=e,m=a(n/100*l),[f,p]=_(null!=r?r:["small"===r?2:14,o],"step",{steps:l,strokeWidth:o}),g=f/l,h=Array.from({length:l});for(let e=0;et.indexOf(l)&&(r[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(r[l[a]]=e[l[a]]);return r};let V=["normal","exception","active","success"],G=t.forwardRef((e,d)=>{let u,{prefixCls:m,className:f,rootClassName:p,steps:g,strokeColor:h,percent:b=0,size:y="default",showInfo:x=!0,type:v="line",status:k,format:j,style:w,percentPosition:C={}}=e,S=K(e,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style","percentPosition"]),{align:N="end",type:$="outer"}=C,O=Array.isArray(h)?h[0]:h,E="string"==typeof h||Array.isArray(h)?h:void 0,D=t.useMemo(()=>{if(O){let e="string"==typeof O?O:Object.values(O)[0];return new r.FastColor(e).isLight()}return!1},[h]),R=t.useMemo(()=>{var t,r;let l=P(e);return Number.parseInt(void 0!==l?null==(t=null!=l?l:0)?void 0:t.toString():null==(r=null!=b?b:0)?void 0:r.toString(),10)},[b,e.success,e.successPercent]),F=t.useMemo(()=>!V.includes(k)&&R>=100?"success":k||"normal",[k,R]),{getPrefixCls:I,direction:A,progress:L}=t.useContext(c.ConfigContext),z=I("progress",m),[W,X,G]=B(z),U="line"===v,J=U&&!g,Y=t.useMemo(()=>{let r;if(!x)return null;let s=P(e),c=j||(e=>`${e}%`),d=U&&D&&"inner"===$;return"inner"===$||j||"exception"!==F&&"success"!==F?r=c(M(b),M(s)):"exception"===F?r=U?t.createElement(n.default,null):t.createElement(o.default,null):"success"===F&&(r=U?t.createElement(l.default,null):t.createElement(a.default,null)),t.createElement("span",{className:(0,i.default)(`${z}-text`,{[`${z}-text-bright`]:d,[`${z}-text-${N}`]:J,[`${z}-text-${$}`]:J}),title:"string"==typeof r?r:void 0},r)},[x,b,R,F,v,z,j]);"line"===v?u=g?t.createElement(q,Object.assign({},e,{strokeColor:E,prefixCls:z,steps:"object"==typeof g?g.count:g}),Y):t.createElement(H,Object.assign({},e,{strokeColor:O,prefixCls:z,direction:A,percentPosition:{align:N,type:$}}),Y):("circle"===v||"dashboard"===v)&&(u=t.createElement(T,Object.assign({},e,{strokeColor:O,prefixCls:z,progressStatus:F}),Y));let Q=(0,i.default)(z,`${z}-status-${F}`,{[`${z}-${"dashboard"===v&&"circle"||v}`]:"line"!==v,[`${z}-inline-circle`]:"circle"===v&&_(y,"circle")[0]<=20,[`${z}-line`]:J,[`${z}-line-align-${N}`]:J,[`${z}-line-position-${$}`]:J,[`${z}-steps`]:g,[`${z}-show-info`]:x,[`${z}-${y}`]:"string"==typeof y,[`${z}-rtl`]:"rtl"===A},null==L?void 0:L.className,f,p,X,G);return W(t.createElement("div",Object.assign({ref:d,style:Object.assign(Object.assign({},null==L?void 0:L.style),w),className:Q,role:"progressbar","aria-valuenow":R,"aria-valuemin":0,"aria-valuemax":100},(0,s.default)(S,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),u))});e.s(["default",0,G],309821)},955135,e=>{"use strict";var t=e.i(597440);e.s(["DeleteOutlined",()=>t.default])},519756,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"};var a=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(a.default,(0,t.default)({},e,{ref:n,icon:l}))});e.s(["UploadOutlined",0,n],519756)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),l=e.i(371330),a=e.i(271645),n=e.i(394487),o=e.i(503269),i=e.i(214520),s=e.i(746725),c=e.i(914189),d=e.i(144279),u=e.i(294316),m=e.i(601893),f=e.i(140721),p=e.i(942803),g=e.i(233538),h=e.i(694421),b=e.i(700020),y=e.i(35889),x=e.i(998348),v=e.i(722678);let k=(0,a.createContext)(null);k.displayName="GroupContext";let j=a.Fragment,w=Object.assign((0,b.forwardRefWithAs)(function(e,t){var j;let w=(0,a.useId)(),C=(0,p.useProvidedId)(),S=(0,m.useDisabled)(),{id:N=C||`headlessui-switch-${w}`,disabled:$=S||!1,checked:O,defaultChecked:E,onChange:M,name:P,value:_,form:T,autoFocus:D=!1,...R}=e,F=(0,a.useContext)(k),[I,A]=(0,a.useState)(null),L=(0,a.useRef)(null),z=(0,u.useSyncRefs)(L,t,null===F?null:F.setSwitch,A),W=(0,i.useDefaultValue)(E),[B,X]=(0,o.useControllable)(O,M,null!=W&&W),H=(0,s.useDisposables)(),[q,K]=(0,a.useState)(!1),V=(0,c.useEvent)(()=>{K(!0),null==X||X(!B),H.nextFrame(()=>{K(!1)})}),G=(0,c.useEvent)(e=>{if((0,g.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),V()}),U=(0,c.useEvent)(e=>{e.key===x.Keys.Space?(e.preventDefault(),V()):e.key===x.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),J=(0,c.useEvent)(e=>e.preventDefault()),Y=(0,v.useLabelledBy)(),Q=(0,y.useDescribedBy)(),{isFocusVisible:Z,focusProps:ee}=(0,r.useFocusRing)({autoFocus:D}),{isHovered:et,hoverProps:er}=(0,l.useHover)({isDisabled:$}),{pressed:el,pressProps:ea}=(0,n.useActivePress)({disabled:$}),en=(0,a.useMemo)(()=>({checked:B,disabled:$,hover:et,focus:Z,active:el,autofocus:D,changing:q}),[B,et,Z,el,$,q,D]),eo=(0,b.mergeProps)({id:N,ref:z,role:"switch",type:(0,d.useResolveButtonType)(e,I),tabIndex:-1===e.tabIndex?0:null!=(j=e.tabIndex)?j:0,"aria-checked":B,"aria-labelledby":Y,"aria-describedby":Q,disabled:$||void 0,autoFocus:D,onClick:G,onKeyUp:U,onKeyPress:J},ee,er,ea),ei=(0,a.useCallback)(()=>{if(void 0!==W)return null==X?void 0:X(W)},[X,W]),es=(0,b.useRender)();return a.default.createElement(a.default.Fragment,null,null!=P&&a.default.createElement(f.FormFields,{disabled:$,data:{[P]:_||"on"},overrides:{type:"checkbox",checked:B},form:T,onReset:ei}),es({ourProps:eo,theirProps:R,slot:en,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,l]=(0,a.useState)(null),[n,o]=(0,v.useLabels)(),[i,s]=(0,y.useDescriptions)(),c=(0,a.useMemo)(()=>({switch:r,setSwitch:l}),[r,l]),d=(0,b.useRender)();return a.default.createElement(s,{name:"Switch.Description",value:i},a.default.createElement(o,{name:"Switch.Label",value:n,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},a.default.createElement(k.Provider,{value:c},d({ourProps:{},theirProps:e,slot:{},defaultTag:j,name:"Switch.Group"}))))},Label:v.Label,Description:y.Description});var C=e.i(888288),S=e.i(95779),N=e.i(444755),$=e.i(673706),O=e.i(829087);let E=(0,$.makeClassName)("Switch"),M=a.default.forwardRef((e,r)=>{let{checked:l,defaultChecked:n=!1,onChange:o,color:i,name:s,error:c,errorMessage:d,disabled:u,required:m,tooltip:f,id:p}=e,g=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,$.getColorClassNames)(i,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,$.getColorClassNames)(i,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[b,y]=(0,C.default)(n,l),[x,v]=(0,a.useState)(!1),{tooltipProps:k,getReferenceProps:j}=(0,O.useTooltip)(300);return a.default.createElement("div",{className:"flex flex-row items-center justify-start"},a.default.createElement(O.default,Object.assign({text:f},k)),a.default.createElement("div",Object.assign({ref:(0,$.mergeRefs)([r,k.refs.setReference]),className:(0,N.tremorTwMerge)(E("root"),"flex flex-row relative h-5")},g,j),a.default.createElement("input",{type:"checkbox",className:(0,N.tremorTwMerge)(E("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:s,required:m,checked:b,onChange:e=>{e.preventDefault()}}),a.default.createElement(w,{checked:b,onChange:e=>{y(e),null==o||o(e)},disabled:u,className:(0,N.tremorTwMerge)(E("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",u?"cursor-not-allowed":""),onFocus:()=>v(!0),onBlur:()=>v(!1),id:p},a.default.createElement("span",{className:(0,N.tremorTwMerge)(E("sr-only"),"sr-only")},"Switch ",b?"on":"off"),a.default.createElement("span",{"aria-hidden":"true",className:(0,N.tremorTwMerge)(E("background"),b?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),a.default.createElement("span",{"aria-hidden":"true",className:(0,N.tremorTwMerge)(E("round"),b?(0,N.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",x?(0,N.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&d?a.default.createElement("p",{className:(0,N.tremorTwMerge)(E("errorMessage"),"text-sm text-red-500 mt-1 ")},d):null)});M.displayName="Switch",e.s(["Switch",()=>M],793130)},37727,e=>{"use strict";var t=e.i(841947);e.s(["X",()=>t.default])},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},603908,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["default",()=>t])},158392,419470,e=>{"use strict";var t=e.i(843476),r=e.i(779241);let l={ttl:3600,lowest_latency_buffer:0},a=({routingStrategyArgs:e})=>{let a={ttl:"Sliding window to look back over when calculating the average latency of a deployment. Default - 1 hour (in seconds).",lowest_latency_buffer:"Shuffle between deployments within this % of the lowest latency. Default - 0 (i.e. always pick lowest latency)."};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Latency-Based Configuration"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Fine-tune latency-based routing behavior"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e||l).map(([e,l])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:e.replace(/_/g," ")}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:a[e]||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:"object"==typeof l?JSON.stringify(l,null,2):l?.toString(),className:"font-mono text-sm w-full"})]})},e))})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"})]})},n=({routerSettings:e,routerFieldsMetadata:l})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Reliability & Retries"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure retry logic and failure handling"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e).filter(([e,t])=>"fallbacks"!=e&&"context_window_fallbacks"!=e&&"routing_strategy_args"!=e&&"routing_strategy"!=e&&"enable_tag_filtering"!=e).map(([e,a])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:l[e]?.ui_field_name||e}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:l[e]?.field_description||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:null==a||"null"===a?"":"object"==typeof a?JSON.stringify(a,null,2):a?.toString()||"",placeholder:"—",className:"font-mono text-sm w-full"})]})},e))})]});var o=e.i(199133);let i=({selectedStrategy:e,availableStrategies:r,routingStrategyDescriptions:l,routerFieldsMetadata:a,onStrategyChange:n})=>(0,t.jsxs)("div",{className:"space-y-2 max-w-3xl",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:a.routing_strategy?.ui_field_name||"Routing Strategy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:a.routing_strategy?.field_description||""})]}),(0,t.jsx)("div",{className:"routing-strategy-select max-w-3xl",children:(0,t.jsx)(o.Select,{value:e,onChange:n,style:{width:"100%"},size:"large",children:r.map(e=>(0,t.jsx)(o.Select.Option,{value:e,label:e,children:(0,t.jsxs)("div",{className:"flex flex-col gap-0.5 py-1",children:[(0,t.jsx)("span",{className:"font-mono text-sm font-medium",children:e}),l[e]&&(0,t.jsx)("span",{className:"text-xs text-gray-500 font-normal",children:l[e]})]})},e))})})]});var s=e.i(793130);let c=({enabled:e,routerFieldsMetadata:r,onToggle:l})=>(0,t.jsx)("div",{className:"space-y-3 max-w-3xl",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:r.enable_tag_filtering?.ui_field_name||"Enable Tag Filtering"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-0.5",children:[r.enable_tag_filtering?.field_description||"",r.enable_tag_filtering?.link&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("a",{href:r.enable_tag_filtering.link,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Learn more"})]})]})]}),(0,t.jsx)(s.Switch,{checked:e,onChange:l,className:"ml-4"})]})});e.s(["default",0,({value:e,onChange:r,routerFieldsMetadata:l,availableRoutingStrategies:o,routingStrategyDescriptions:s})=>(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Routing Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure how requests are routed to deployments"})]}),o.length>0&&(0,t.jsx)(i,{selectedStrategy:e.selectedStrategy||e.routerSettings.routing_strategy||null,availableStrategies:o,routingStrategyDescriptions:s,routerFieldsMetadata:l,onStrategyChange:t=>{r({...e,selectedStrategy:t})}}),(0,t.jsx)(c,{enabled:e.enableTagFiltering,routerFieldsMetadata:l,onToggle:t=>{r({...e,enableTagFiltering:t})}})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"}),"latency-based-routing"===e.selectedStrategy&&(0,t.jsx)(a,{routingStrategyArgs:e.routerSettings.routing_strategy_args}),(0,t.jsx)(n,{routerSettings:e.routerSettings,routerFieldsMetadata:l})]})],158392);var d=e.i(994388),u=e.i(998573),m=e.i(653496),f=e.i(603908),f=f,p=e.i(271645),g=e.i(592968),h=e.i(475254);let b=(0,h.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),y=(0,h.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var x=e.i(37727);function v({group:e,onChange:r,availableModels:l,maxFallbacks:a}){let n=l.filter(t=>t!==e.primaryModel),i=e.fallbackModels.length{let l=[...e.fallbackModels];l.includes(t)&&(l=l.filter(e=>e!==t)),r({...e,primaryModel:t,fallbackModels:l})},showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:l.map(e=>({label:e,value:e}))}),!e.primaryModel&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-amber-600 text-xs bg-amber-50 p-2 rounded",children:[(0,t.jsx)(b,{className:"w-4 h-4"}),(0,t.jsx)("span",{children:"Select a model to begin configuring fallbacks"})]})]}),(0,t.jsx)("div",{className:"flex items-center justify-center -my-4 z-10",children:(0,t.jsxs)("div",{className:"bg-indigo-50 text-indigo-500 px-4 py-1 rounded-full text-xs font-bold border border-indigo-100 flex items-center gap-2 shadow-sm",children:[(0,t.jsx)(y,{className:"w-4 h-4"}),"IF FAILS, TRY..."]})}),(0,t.jsxs)("div",{className:`transition-opacity duration-300 ${!e.primaryModel?"opacity-50 pointer-events-none":"opacity-100"}`,children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-700 mb-2",children:["Fallback Chain ",(0,t.jsx)("span",{className:"text-red-500",children:"*"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500 font-normal ml-2",children:["(Max ",a," fallbacks at a time)"]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(o.Select,{mode:"multiple",className:"w-full",size:"large",placeholder:i?"Select fallback models to add...":`Maximum ${a} fallbacks reached`,value:e.fallbackModels,onChange:t=>{let l=t.slice(0,a);r({...e,fallbackModels:l})},disabled:!e.primaryModel,options:n.map(e=>({label:e,value:e})),optionRender:(r,l)=>{let a=e.fallbackModels.includes(r.value),n=a?e.fallbackModels.indexOf(r.value)+1:null;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[a&&null!==n&&(0,t.jsx)("span",{className:"flex items-center justify-center w-5 h-5 rounded bg-indigo-100 text-indigo-600 text-xs font-bold",children:n}),(0,t.jsx)("span",{children:r.label})]})},maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(g.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})}),showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1 ml-1",children:i?`Search and select multiple models. Selected models will appear below in order. (${e.fallbackModels.length}/${a} used)`:`Maximum ${a} fallbacks reached. Remove some to add more.`})]}),(0,t.jsx)("div",{className:"space-y-2 min-h-[100px]",children:0===e.fallbackModels.length?(0,t.jsxs)("div",{className:"h-32 border-2 border-dashed border-gray-300 rounded-lg flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)("span",{className:"text-sm",children:"No fallback models selected"}),(0,t.jsx)("span",{className:"text-xs mt-1",children:"Add models from the dropdown above"})]}):e.fallbackModels.map((l,a)=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-3 bg-white rounded-lg border border-gray-200 hover:border-indigo-300 hover:shadow-sm transition-all",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded bg-gray-100 text-gray-400 group-hover:text-indigo-500 group-hover:bg-indigo-50",children:(0,t.jsx)("span",{className:"text-xs font-bold",children:a+1})}),(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"font-medium text-gray-800",children:l})})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t;return t=e.fallbackModels.filter((e,t)=>t!==a),void r({...e,fallbackModels:t})},className:"opacity-0 group-hover:opacity-100 transition-opacity text-gray-400 hover:text-red-500 p-1",children:(0,t.jsx)(x.X,{className:"w-4 h-4"})})]},`${l}-${a}`))})]})]})]})}function k({groups:e,onGroupsChange:r,availableModels:l,maxFallbacks:a=5,maxGroups:n=5}){let[o,i]=(0,p.useState)(e.length>0?e[0].id:"1");(0,p.useEffect)(()=>{e.length>0?e.some(e=>e.id===o)||i(e[0].id):i("1")},[e]);let s=()=>{if(e.length>=n)return;let t=Date.now().toString();r([...e,{id:t,primaryModel:null,fallbackModels:[]}]),i(t)},c=t=>{r(e.map(e=>e.id===t.id?t:e))},g=e.map((r,n)=>{let o=r.primaryModel?r.primaryModel:`Group ${n+1}`;return{key:r.id,label:o,closable:e.length>1,children:(0,t.jsx)(v,{group:r,onChange:c,availableModels:l,maxFallbacks:a})}});return 0===e.length?(0,t.jsxs)("div",{className:"text-center py-12 bg-gray-50 rounded-lg border border-dashed border-gray-300",children:[(0,t.jsx)("p",{className:"text-gray-500 mb-4",children:"No fallback groups configured"}),(0,t.jsx)(d.Button,{variant:"primary",onClick:s,icon:()=>(0,t.jsx)(f.default,{className:"w-4 h-4"}),children:"Create First Group"})]}):(0,t.jsx)(m.Tabs,{type:"editable-card",activeKey:o,onChange:i,onEdit:(t,l)=>{"add"===l?s():"remove"===l&&e.length>1&&(t=>{if(1===e.length)return u.message.warning("At least one group is required");let l=e.filter(e=>e.id!==t);r(l),o===t&&l.length>0&&i(l[l.length-1].id)})(t)},items:g,className:"fallback-tabs",tabBarStyle:{marginBottom:0},hideAdd:e.length>=n})}e.s(["FallbackSelectionForm",()=>k],419470)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/16123b35dd50b2e0.js b/litellm/proxy/_experimental/out/_next/static/chunks/16123b35dd50b2e0.js deleted file mode 100644 index 60db1679914..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/16123b35dd50b2e0.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,533882,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(250980),l=e.i(797672),r=e.i(68155),i=e.i(304967),n=e.i(629569),c=e.i(599724),o=e.i(269200),d=e.i(427612),m=e.i(64848),u=e.i(942232),g=e.i(496020),x=e.i(977572),p=e.i(992619),h=e.i(727749);e.s(["default",0,({accessToken:e,initialModelAliases:b={},onAliasUpdate:f,showExampleConfig:v=!0})=>{let[y,j]=(0,s.useState)([]),[_,N]=(0,s.useState)({aliasName:"",targetModel:""}),[w,k]=(0,s.useState)(null);(0,s.useEffect)(()=>{j(Object.entries(b).map(([e,a],s)=>({id:`${s}-${e}`,aliasName:e,targetModel:a})))},[b]);let C=()=>{if(!w)return;if(!w.aliasName||!w.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(y.some(e=>e.id!==w.id&&e.aliasName===w.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=y.map(e=>e.id===w.id?w:e);j(e),k(null);let a={};e.forEach(e=>{a[e.aliasName]=e.targetModel}),f&&f(a),h.default.success("Alias updated successfully")},S=()=>{k(null)},T=y.reduce((e,a)=>(e[a.aliasName]=a.targetModel,e),{});return(0,a.jsxs)("div",{className:"mt-4",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)(c.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,a.jsx)("input",{type:"text",value:_.aliasName,onChange:e=>N({..._,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model"}),(0,a.jsx)(p.default,{accessToken:e,value:_.targetModel,placeholder:"Select target model",onChange:e=>N({..._,targetModel:e}),showLabel:!1})]}),(0,a.jsx)("div",{className:"flex items-end",children:(0,a.jsxs)("button",{onClick:()=>{if(!_.aliasName||!_.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(y.some(e=>e.aliasName===_.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=[...y,{id:`${Date.now()}-${_.aliasName}`,aliasName:_.aliasName,targetModel:_.targetModel}];j(e),N({aliasName:"",targetModel:""});let a={};e.forEach(e=>{a[e.aliasName]=e.targetModel}),f&&f(a),h.default.success("Alias added successfully")},disabled:!_.aliasName||!_.targetModel,className:`flex items-center px-4 py-2 rounded-md text-sm ${!_.aliasName||!_.targetModel?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,a.jsx)(t.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,a.jsx)(c.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,a.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)(o.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,a.jsx)(d.TableHead,{children:(0,a.jsxs)(g.TableRow,{children:[(0,a.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,a.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Target Model"}),(0,a.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,a.jsxs)(u.TableBody,{children:[y.map(s=>(0,a.jsx)(g.TableRow,{className:"h-8",children:w&&w.id===s.id?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.TableCell,{className:"py-0.5",children:(0,a.jsx)("input",{type:"text",value:w.aliasName,onChange:e=>k({...w,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,a.jsx)(x.TableCell,{className:"py-0.5",children:(0,a.jsx)(p.default,{accessToken:e,value:w.targetModel,onChange:e=>k({...w,targetModel:e}),showLabel:!1,style:{height:"32px"}})}),(0,a.jsx)(x.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,a.jsxs)("div",{className:"flex space-x-2",children:[(0,a.jsx)("button",{onClick:C,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,a.jsx)("button",{onClick:S,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.TableCell,{className:"py-0.5 text-sm text-gray-900",children:s.aliasName}),(0,a.jsx)(x.TableCell,{className:"py-0.5 text-sm text-gray-500",children:s.targetModel}),(0,a.jsx)(x.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,a.jsxs)("div",{className:"flex space-x-2",children:[(0,a.jsx)("button",{onClick:()=>{k({...s})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,a.jsx)(l.PencilIcon,{className:"w-3 h-3"})}),(0,a.jsx)("button",{onClick:()=>{var e;let a,t;return e=s.id,j(a=y.filter(a=>a.id!==e)),t={},void(a.forEach(e=>{t[e.aliasName]=e.targetModel}),f&&f(t),h.default.success("Alias deleted successfully"))},className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,a.jsx)(r.TrashIcon,{className:"w-3 h-3"})})]})})]})},s.id)),0===y.length&&(0,a.jsx)(g.TableRow,{children:(0,a.jsx)(x.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),v&&(0,a.jsxs)(i.Card,{children:[(0,a.jsx)(n.Title,{className:"mb-4",children:"Configuration Example"}),(0,a.jsx)(c.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config:"}),(0,a.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,a.jsxs)("div",{className:"text-gray-700",children:["model_aliases:",0===Object.keys(T).length?(0,a.jsxs)("span",{className:"text-gray-500",children:[(0,a.jsx)("br",{})," # No aliases configured yet"]}):Object.entries(T).map(([e,s])=>(0,a.jsxs)("span",{children:[(0,a.jsx)("br",{}),' "',e,'": "',s,'"']},e))]})})]})]})}])},651904,e=>{"use strict";var a=e.i(843476),s=e.i(599724),t=e.i(266484);e.s(["default",0,function({value:e,onChange:l,premiumUser:r=!1,disabledCallbacks:i=[],onDisabledCallbacksChange:n}){return r?(0,a.jsx)(t.default,{value:e,onChange:l,disabledCallbacks:i,onDisabledCallbacksChange:n}):(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-2 mb-3",children:[(0,a.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ langfuse-logging"}),(0,a.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ datadog-logging"})]}),(0,a.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,a.jsxs)(s.Text,{className:"text-sm text-yellow-800",children:["Setting Key/Team logging settings is a LiteLLM Enterprise feature. Global Logging Settings are available for all free users. Get a trial key"," ",(0,a.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})}])},797672,e=>{"use strict";var a=e.i(271645);let s=a.forwardRef(function(e,s){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:s},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))});e.s(["PencilIcon",0,s],797672)},689020,e=>{"use strict";var a=e.i(764205);let s=async e=>{try{let s=await (0,a.modelHubCall)(e);if(console.log("model_info:",s),s?.data.length>0){let e=s.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,a)=>e.model_group.localeCompare(a.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,s])},983561,e=>{"use strict";e.i(247167);var a=e.i(931067),s=e.i(271645);let t={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"robot",theme:"outlined"};var l=e.i(9583),r=s.forwardRef(function(e,r){return s.createElement(l.default,(0,a.default)({},e,{ref:r,icon:t}))});e.s(["RobotOutlined",0,r],983561)},992619,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(779241),l=e.i(599724),r=e.i(199133),i=e.i(983561),n=e.i(689020);e.s(["default",0,({accessToken:e,value:c,placeholder:o="Select a Model",onChange:d,disabled:m=!1,style:u,className:g,showLabel:x=!0,labelText:p="Select Model"})=>{let[h,b]=(0,s.useState)(c),[f,v]=(0,s.useState)(!1),[y,j]=(0,s.useState)([]),_=(0,s.useRef)(null);return(0,s.useEffect)(()=>{b(c)},[c]),(0,s.useEffect)(()=>{e&&(async()=>{try{let a=await (0,n.fetchAvailableModels)(e);console.log("Fetched models for selector:",a),a.length>0&&j(a)}catch(e){console.error("Error fetching model info:",e)}})()},[e]),(0,a.jsxs)("div",{children:[x&&(0,a.jsxs)(l.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,a.jsx)(i.RobotOutlined,{className:"mr-2"})," ",p]}),(0,a.jsx)(r.Select,{value:h,placeholder:o,onChange:e=>{"custom"===e?(v(!0),b(void 0)):(v(!1),b(e),d&&d(e))},options:[...Array.from(new Set(y.map(e=>e.model_group))).map((e,a)=>({value:e,label:e,key:a})),{value:"custom",label:"Enter custom model",key:"custom"}],style:{width:"100%",...u},showSearch:!0,className:`rounded-md ${g||""}`,disabled:m}),f&&(0,a.jsx)(t.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{b(e),d&&d(e)},500)},disabled:m})]})}])},500727,e=>{"use strict";var a=e.i(266027),s=e.i(243652),t=e.i(764205),l=e.i(135214);let r=(0,s.createQueryKeys)("mcpServers");e.s(["useMCPServers",0,()=>{let{accessToken:e}=(0,l.default)();return(0,a.useQuery)({queryKey:r.list({}),queryFn:async()=>await (0,t.fetchMCPServers)(e),enabled:!!e})}])},841947,e=>{"use strict";let a=(0,e.i(475254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>a])},916940,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select vector stores",disabled:o=!1})=>{let[d,m]=(0,s.useState)([]),[u,g]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{(async()=>{if(n){g(!0);try{let e=await (0,l.vectorStoreListCall)(n);e.data&&m(e.data)}catch(e){console.error("Error fetching vector stores:",e)}finally{g(!1)}}})()},[n]),(0,a.jsx)("div",{children:(0,a.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:e,value:r,loading:u,className:i,allowClear:!0,options:d.map(e=>({label:`${e.vector_store_name||e.vector_store_id} (${e.vector_store_id})`,value:e.vector_store_id,title:e.vector_store_description||e.vector_store_id})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})})}])},552130,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select agents",disabled:o=!1})=>{let[d,m]=(0,s.useState)([]),[u,g]=(0,s.useState)([]),[x,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{(async()=>{if(n){p(!0);try{let e=await (0,l.getAgentsList)(n),a=e?.agents||[];m(a);let s=new Set;a.forEach(e=>{let a=e.agent_access_groups;a&&Array.isArray(a)&&a.forEach(e=>s.add(e))}),g(Array.from(s))}catch(e){console.error("Error fetching agents:",e)}finally{p(!1)}}})()},[n]);let h=[...u.map(e=>({label:e,value:`group:${e}`,isAccessGroup:!0,searchText:`${e} Access Group`})),...d.map(e=>({label:`${e.agent_name||e.agent_id}`,value:e.agent_id,isAccessGroup:!1,searchText:`${e.agent_name||e.agent_id} ${e.agent_id} Agent`}))],b=[...r?.agents||[],...(r?.accessGroups||[]).map(e=>`group:${e}`)];return(0,a.jsx)("div",{children:(0,a.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:a=>{e({agents:a.filter(e=>!e.startsWith("group:")),accessGroups:a.filter(e=>e.startsWith("group:")).map(e=>e.replace("group:",""))})},value:b,loading:x,className:i,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:o,filterOption:(e,a)=>(h.find(e=>e.value===a?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:h.map(e=>(0,a.jsx)(t.Select.Option,{value:e.value,label:e.label,children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#722ed1",flexShrink:0}}),(0,a.jsx)("span",{style:{flex:1},children:e.label}),(0,a.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#722ed1",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"Agent"})]})},e.value))})})}])},557662,e=>{"use strict";let a="../ui/assets/logos/",s=[{id:"arize",displayName:"Arize",logo:`${a}arize.png`,supports_key_team_logging:!0,dynamic_params:{arize_api_key:"password",arize_space_id:"password"},description:"Arize Logging Integration"},{id:"braintrust",displayName:"Braintrust",logo:`${a}braintrust.png`,supports_key_team_logging:!1,dynamic_params:{braintrust_api_key:"password",braintrust_project_name:"text"},description:"Braintrust Logging Integration"},{id:"custom_callback_api",displayName:"Custom Callback API",logo:`${a}custom.svg`,supports_key_team_logging:!0,dynamic_params:{custom_callback_api_url:"text",custom_callback_api_headers:"text"},description:"Custom Callback API Logging Integration"},{id:"datadog",displayName:"Datadog",logo:`${a}datadog.png`,supports_key_team_logging:!1,dynamic_params:{dd_api_key:"password",dd_site:"text"},description:"Datadog Logging Integration"},{id:"lago",displayName:"Lago",logo:`${a}lago.svg`,supports_key_team_logging:!1,dynamic_params:{lago_api_url:"text",lago_api_key:"password"},description:"Lago Billing Logging Integration"},{id:"langfuse",displayName:"Langfuse",logo:`${a}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v2 Logging Integration"},{id:"langfuse_otel",displayName:"Langfuse OTEL",logo:`${a}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v3 OTEL Logging Integration"},{id:"langsmith",displayName:"LangSmith",logo:`${a}langsmith.png`,supports_key_team_logging:!0,dynamic_params:{langsmith_api_key:"password",langsmith_project:"text",langsmith_base_url:"text",langsmith_sampling_rate:"number"},description:"Langsmith Logging Integration"},{id:"openmeter",displayName:"OpenMeter",logo:`${a}openmeter.png`,supports_key_team_logging:!1,dynamic_params:{openmeter_api_key:"password",openmeter_base_url:"text"},description:"OpenMeter Logging Integration"},{id:"otel",displayName:"Open Telemetry",logo:`${a}otel.png`,supports_key_team_logging:!1,dynamic_params:{otel_endpoint:"text",otel_headers:"text"},description:"OpenTelemetry Logging Integration"},{id:"s3",displayName:"S3",logo:`${a}aws.svg`,supports_key_team_logging:!1,dynamic_params:{s3_bucket_name:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"S3 Bucket (AWS) Logging Integration"},{id:"SQS",displayName:"SQS",logo:`${a}aws.svg`,supports_key_team_logging:!1,dynamic_params:{sqs_queue_url:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"SQS Queue (AWS) Logging Integration"}],t=s.reduce((e,a)=>(e[a.displayName]=a,e),{}),l=s.reduce((e,a)=>(e[a.displayName]=a.id,e),{}),r=s.reduce((e,a)=>(e[a.id]=a.displayName,e),{});e.s(["callbackInfo",0,t,"callback_map",0,l,"mapDisplayToInternalNames",0,e=>e.map(e=>l[e]||e),"mapInternalToDisplayNames",0,e=>e.map(e=>r[e]||e),"reverse_callback_map",0,r])},844565,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select pass through routes",disabled:o=!1,teamId:d})=>{let[m,u]=(0,s.useState)([]),[g,x]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{(async()=>{if(n){x(!0);try{let e=await (0,l.getPassThroughEndpointsCall)(n,d);if(e.endpoints){let a=e.endpoints.map(e=>e.path);u(a)}}catch(e){console.error("Error fetching pass through routes:",e)}finally{x(!1)}}})()},[n,d]),(0,a.jsx)(t.Select,{mode:"tags",placeholder:c,onChange:e,value:r,loading:g,className:i,allowClear:!0,options:m.map(e=>({label:e,value:e})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})}])},988297,e=>{"use strict";var a=e.i(271645);let s=a.forwardRef(function(e,s){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:s},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4v16m8-8H4"}))});e.s(["PlusIcon",0,s],988297)},810757,477386,e=>{"use strict";var a=e.i(271645);let s=a.forwardRef(function(e,s){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:s},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}))});e.s(["CogIcon",0,s],810757);let t=a.forwardRef(function(e,s){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:s},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"}))});e.s(["BanIcon",0,t],477386)},266484,e=>{"use strict";var a=e.i(843476),s=e.i(199133),t=e.i(592968),l=e.i(312361),r=e.i(827252),i=e.i(994388),n=e.i(304967),c=e.i(779241),o=e.i(988297),d=e.i(68155),m=e.i(810757),u=e.i(477386),g=e.i(557662),x=e.i(435451);let{Option:p}=s.Select;e.s(["default",0,({value:e=[],onChange:h,disabledCallbacks:b=[],onDisabledCallbacksChange:f})=>{let v=Object.entries(g.callbackInfo).filter(([e,a])=>a.supports_key_team_logging).map(([e,a])=>e),y=Object.keys(g.callbackInfo),j=e=>{h?.(e)},_=(a,s,t)=>{let l=[...e];if("callback_name"===s){let e=g.callback_map[t]||t;l[a]={...l[a],[s]:e,callback_vars:{}}}else l[a]={...l[a],[s]:t};j(l)},N=(a,s,t)=>{let l=[...e];l[a]={...l[a],callback_vars:{...l[a].callback_vars,[s]:t}},j(l)};return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(u.BanIcon,{className:"w-5 h-5 text-red-500"}),(0,a.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Disabled Callbacks"}),(0,a.jsx)(t.Tooltip,{title:"Select callbacks to disable for this key. Disabled callbacks will not receive any logging data.",children:(0,a.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Disabled Callbacks"}),(0,a.jsx)(s.Select,{mode:"multiple",placeholder:"Select callbacks to disable",value:b,onChange:e=>{let a=(0,g.mapDisplayToInternalNames)(e);f?.(a)},style:{width:"100%"},optionLabelProp:"label",children:y.map(e=>{let s=g.callbackInfo[e]?.logo,l=g.callbackInfo[e]?.description;return(0,a.jsx)(p,{value:e,label:e,children:(0,a.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[s&&(0,a.jsx)("img",{src:s,alt:e,className:"w-4 h-4 object-contain",onError:a=>{let s=a.target,t=s.parentElement;if(t){let a=document.createElement("div");a.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",a.textContent=e.charAt(0),t.replaceChild(a,s)}}}),(0,a.jsx)("span",{children:e})]})})},e)})}),(0,a.jsx)("div",{className:"text-xs text-gray-500",children:"Select callbacks that should be disabled for this key. These callbacks will not receive any logging data."})]})]}),(0,a.jsx)(l.Divider,{}),(0,a.jsxs)("div",{className:"flex justify-between items-center",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(m.CogIcon,{className:"w-5 h-5 text-blue-500"}),(0,a.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Logging Integrations"}),(0,a.jsx)(t.Tooltip,{title:"Configure callback logging integrations for this team.",children:(0,a.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,a.jsx)(i.Button,{variant:"secondary",onClick:()=>{j([...e,{callback_name:"",callback_type:"success",callback_vars:{}}])},icon:o.PlusIcon,size:"sm",className:"hover:border-blue-400 hover:text-blue-500",type:"button",children:"Add Integration"})]}),(0,a.jsx)("div",{className:"space-y-4",children:e.map((l,o)=>{let m=l.callback_name?Object.entries(g.callback_map).find(([e,a])=>a===l.callback_name)?.[0]:void 0,u=m?g.callbackInfo[m]?.logo:null;return(0,a.jsxs)(n.Card,{className:"border border-gray-200 shadow-sm hover:shadow-md transition-shadow duration-200",decoration:"top",decorationColor:"blue",children:[(0,a.jsxs)("div",{className:"flex justify-between items-start mb-4",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[u&&(0,a.jsx)("img",{src:u,alt:m,className:"w-5 h-5 object-contain"}),(0,a.jsxs)("span",{className:"text-sm font-medium",children:[m||"New Integration"," Configuration"]})]}),(0,a.jsx)(i.Button,{variant:"light",onClick:()=>{j(e.filter((e,a)=>a!==o))},icon:d.TrashIcon,size:"xs",color:"red",className:"hover:bg-red-50",type:"button",children:"Remove"})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Integration Type"}),(0,a.jsx)(s.Select,{value:m,placeholder:"Select integration",onChange:e=>_(o,"callback_name",e),className:"w-full",optionLabelProp:"label",children:v.map(e=>{let s=g.callbackInfo[e]?.logo,l=g.callbackInfo[e]?.description;return(0,a.jsx)(p,{value:e,label:e,children:(0,a.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[s&&(0,a.jsx)("img",{src:s,alt:e,className:"w-4 h-4 object-contain",onError:a=>{let s=a.target,t=s.parentElement;if(t){let a=document.createElement("div");a.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",a.textContent=e.charAt(0),t.replaceChild(a,s)}}}),(0,a.jsx)("span",{children:e})]})})},e)})})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Event Type"}),(0,a.jsxs)(s.Select,{value:l.callback_type,onChange:e=>_(o,"callback_type",e),className:"w-full",children:[(0,a.jsx)(p,{value:"success",children:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,a.jsx)("span",{children:"Success Only"})]})}),(0,a.jsx)(p,{value:"failure",children:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("div",{className:"w-2 h-2 bg-red-500 rounded-full"}),(0,a.jsx)("span",{children:"Failure Only"})]})}),(0,a.jsx)(p,{value:"success_and_failure",children:(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,a.jsx)("span",{children:"Success & Failure"})]})})]})]})]}),((e,s)=>{if(!e.callback_name)return null;let l=Object.entries(g.callback_map).find(([a,s])=>s===e.callback_name)?.[0];if(!l)return null;let i=g.callbackInfo[l]?.dynamic_params||{};return 0===Object.keys(i).length?null:(0,a.jsxs)("div",{className:"mt-6 pt-4 border-t border-gray-100",children:[(0,a.jsxs)("div",{className:"flex items-center space-x-2 mb-4",children:[(0,a.jsx)("div",{className:"w-3 h-3 bg-blue-100 rounded-full flex items-center justify-center",children:(0,a.jsx)("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"})}),(0,a.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Integration Parameters"})]}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-4",children:Object.entries(i).map(([l,i])=>(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"text-sm font-medium text-gray-700 capitalize flex items-center space-x-1",children:[(0,a.jsx)("span",{children:l.replace(/_/g," ")}),(0,a.jsx)(t.Tooltip,{title:`Environment variable reference recommended: os.environ/${l.toUpperCase()}`,children:(0,a.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help text-xs"})}),"password"===i&&(0,a.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Sensitive"}),"number"===i&&(0,a.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Number"})]}),"number"===i&&(0,a.jsx)("span",{className:"text-xs text-gray-500",children:"Value must be between 0 and 1"}),"number"===i?(0,a.jsx)(x.default,{step:.01,width:400,placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(s,l,e.target.value)}):(0,a.jsx)(c.TextInput,{type:"password"===i?"password":"text",placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(s,l,e.target.value)})]},l))})]})})(l,o)]})]},o)})}),0===e.length&&(0,a.jsxs)("div",{className:"text-center py-12 text-gray-500 border-2 border-dashed border-gray-200 rounded-lg bg-gray-50/50",children:[(0,a.jsx)(m.CogIcon,{className:"w-12 h-12 text-gray-300 mb-3 mx-auto"}),(0,a.jsx)("div",{className:"text-base font-medium mb-1",children:"No logging integrations configured"}),(0,a.jsx)("div",{className:"text-sm text-gray-400",children:'Click "Add Integration" to configure logging for this team'})]})]})}])},75921,e=>{"use strict";var a=e.i(843476),s=e.i(266027),t=e.i(243652),l=e.i(764205),r=e.i(135214);let i=(0,t.createQueryKeys)("mcpAccessGroups");var n=e.i(500727),c=e.i(199133);e.s(["default",0,({onChange:e,value:t,className:o,accessToken:d,placeholder:m="Select MCP servers",disabled:u=!1})=>{let{data:g=[],isLoading:x}=(0,n.useMCPServers)(),{data:p=[],isLoading:h}=(()=>{let{accessToken:e}=(0,r.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.fetchMCPAccessGroups)(e),enabled:!!e})})(),b=[...p.map(e=>({label:e,value:e,isAccessGroup:!0,searchText:`${e} Access Group`})),...g.map(e=>({label:`${e.server_name||e.server_id} (${e.server_id})`,value:e.server_id,isAccessGroup:!1,searchText:`${e.server_name||e.server_id} ${e.server_id} MCP Server`}))],f=[...t?.servers||[],...t?.accessGroups||[]];return(0,a.jsx)("div",{children:(0,a.jsx)(c.Select,{mode:"multiple",placeholder:m,onChange:a=>{e({servers:a.filter(e=>!p.includes(e)),accessGroups:a.filter(e=>p.includes(e))})},value:f,loading:x||h,className:o,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:u,filterOption:(e,a)=>(b.find(e=>e.value===a?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:b.map(e=>(0,a.jsx)(c.Select.Option,{value:e.value,label:e.label,children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,a.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#1890ff",flexShrink:0}}),(0,a.jsx)("span",{style:{flex:1},children:e.label}),(0,a.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#1890ff",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"MCP Server"})]})},e.value))})})}],75921)},390605,995926,e=>{"use strict";var a=e.i(843476),s=e.i(271645),t=e.i(764205),l=e.i(599724),r=e.i(482725),i=e.i(536916),n=e.i(841947);e.s(["XIcon",()=>n.default],995926);var n=n,c=e.i(500727);e.s(["default",0,({accessToken:e,selectedServers:o,toolPermissions:d,onChange:m,disabled:u=!1})=>{let{data:g=[]}=(0,c.useMCPServers)(),[x,p]=(0,s.useState)({}),[h,b]=(0,s.useState)({}),[f,v]=(0,s.useState)({}),y=(0,s.useMemo)(()=>0===o.length?[]:g.filter(e=>o.includes(e.server_id)),[g,o]),j=async a=>{b(e=>({...e,[a]:!0})),v(e=>({...e,[a]:""}));try{let s=await (0,t.listMCPTools)(e,a);s.error?(v(e=>({...e,[a]:s.message||"Failed to fetch tools"})),p(e=>({...e,[a]:[]}))):p(e=>({...e,[a]:s.tools||[]}))}catch(e){console.error(`Error fetching tools for server ${a}:`,e),v(e=>({...e,[a]:"Failed to fetch tools"})),p(e=>({...e,[a]:[]}))}finally{b(e=>({...e,[a]:!1}))}};return((0,s.useEffect)(()=>{y.forEach(e=>{x[e.server_id]||h[e.server_id]||j(e.server_id)})},[y]),0===o.length)?null:(0,a.jsx)("div",{className:"space-y-4",children:y.map(e=>{let s=e.server_name||e.alias||e.server_id,t=x[e.server_id]||[],c=d[e.server_id]||[],o=h[e.server_id],g=f[e.server_id];return(0,a.jsxs)("div",{className:"border rounded-lg bg-gray-50",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-4 border-b bg-white rounded-t-lg",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(l.Text,{className:"font-semibold text-gray-900",children:s}),e.description&&(0,a.jsx)(l.Text,{className:"text-sm text-gray-500",children:e.description})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var a;let s;return s=x[a=e.server_id]||[],void m({...d,[a]:s.map(e=>e.name)})},disabled:u||o,children:"Select All"}),(0,a.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var a;return a=e.server_id,void m({...d,[a]:[]})},disabled:u||o,children:"Deselect All"}),(0,a.jsx)("button",{type:"button",className:"text-gray-400 hover:text-gray-600",onClick:()=>{},children:(0,a.jsx)(n.default,{className:"w-4 h-4"})})]})]}),(0,a.jsxs)("div",{className:"p-4",children:[(0,a.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 mb-3",children:"Available Tools"}),o&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,a.jsx)(r.Spin,{size:"large"}),(0,a.jsx)(l.Text,{className:"ml-3 text-gray-500",children:"Loading tools..."})]}),g&&!o&&(0,a.jsxs)("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg text-center",children:[(0,a.jsx)(l.Text,{className:"text-red-600 font-medium",children:"Unable to load tools"}),(0,a.jsx)(l.Text,{className:"text-sm text-red-500 mt-1",children:g})]}),!o&&!g&&t.length>0&&(0,a.jsx)("div",{className:"space-y-2",children:t.map(s=>{let t=c.includes(s.name);return(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)(i.Checkbox,{checked:t,onChange:()=>{var a,t;let l,r;return a=e.server_id,t=s.name,r=(l=d[a]||[]).includes(t)?l.filter(e=>e!==t):[...l,t],void m({...d,[a]:r})},disabled:u}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(l.Text,{className:"font-medium text-gray-900",children:s.name}),(0,a.jsxs)(l.Text,{className:"text-sm text-gray-500",children:["- ",s.description||"No description"]})]})})]},s.name)})}),!o&&!g&&0===t.length&&(0,a.jsx)("div",{className:"text-center py-6",children:(0,a.jsx)(l.Text,{className:"text-gray-500",children:"No tools available"})})]})]},e.server_id)})})}],390605)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1623-54c56cbe1afc3953.js b/litellm/proxy/_experimental/out/_next/static/chunks/1623-54c56cbe1afc3953.js deleted file mode 100644 index 15400abe793..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/1623-54c56cbe1afc3953.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1623],{2894:function(t,e,s){s.d(e,{R:function(){return u},m:function(){return n}});var i=s(18238),a=s(7989),r=s(11255),n=class extends a.F{#t;#e;#s;#i;constructor(t){super(),this.#t=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#e=[],this.state=t.state||u(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#e.includes(t)||(this.#e.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#e=this.#e.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#s.remove(this))}continue(){return this.#i?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#a({type:"continue"})},s={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#i=(0,r.Mz)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#a({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#a({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});let i="pending"===this.state.status,a=!this.#i.canStart();try{if(i)e();else{this.#a({type:"pending",variables:t,isPaused:a}),await this.#s.config.onMutate?.(t,this,s);let e=await this.options.onMutate?.(t,s);e!==this.state.context&&this.#a({type:"pending",context:e,variables:t,isPaused:a})}let r=await this.#i.start();return await this.#s.config.onSuccess?.(r,t,this.state.context,this,s),await this.options.onSuccess?.(r,t,this.state.context,s),await this.#s.config.onSettled?.(r,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(r,null,t,this.state.context,s),this.#a({type:"success",data:r}),r}catch(e){try{throw await this.#s.config.onError?.(e,t,this.state.context,this,s),await this.options.onError?.(e,t,this.state.context,s),await this.#s.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(void 0,e,t,this.state.context,s),e}finally{this.#a({type:"error",error:e})}}finally{this.#s.runNext(this)}}#a(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),i.Vr.batch(()=>{this.#e.forEach(e=>{e.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function u(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},21623:function(t,e,s){s.d(e,{S:function(){return y}});var i=s(45345),a=s(21733),r=s(18238),n=s(24112),u=class extends n.l{constructor(t={}){super(),this.config=t,this.#r=new Map}#r;build(t,e,s){let r=e.queryKey,n=e.queryHash??(0,i.Rm)(r,e),u=this.get(n);return u||(u=new a.A({client:t,queryKey:r,queryHash:n,options:t.defaultQueryOptions(e),state:s,defaultOptions:t.getQueryDefaults(r)}),this.add(u)),u}add(t){this.#r.has(t.queryHash)||(this.#r.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){let e=this.#r.get(t.queryHash);e&&(t.destroy(),e===t&&this.#r.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){r.Vr.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#r.get(t)}getAll(){return[...this.#r.values()]}find(t){let e={exact:!0,...t};return this.getAll().find(t=>(0,i._x)(e,t))}findAll(t={}){let e=this.getAll();return Object.keys(t).length>0?e.filter(e=>(0,i._x)(t,e)):e}notify(t){r.Vr.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){r.Vr.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){r.Vr.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},o=s(2894),h=class extends n.l{constructor(t={}){super(),this.config=t,this.#n=new Set,this.#u=new Map,this.#o=0}#n;#u;#o;build(t,e,s){let i=new o.m({client:t,mutationCache:this,mutationId:++this.#o,options:t.defaultMutationOptions(e),state:s});return this.add(i),i}add(t){this.#n.add(t);let e=l(t);if("string"==typeof e){let s=this.#u.get(e);s?s.push(t):this.#u.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#n.delete(t)){let e=l(t);if("string"==typeof e){let s=this.#u.get(e);if(s){if(s.length>1){let e=s.indexOf(t);-1!==e&&s.splice(e,1)}else s[0]===t&&this.#u.delete(e)}}}this.notify({type:"removed",mutation:t})}canRun(t){let e=l(t);if("string"!=typeof e)return!0;{let s=this.#u.get(e),i=s?.find(t=>"pending"===t.state.status);return!i||i===t}}runNext(t){let e=l(t);if("string"!=typeof e)return Promise.resolve();{let s=this.#u.get(e)?.find(e=>e!==t&&e.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){r.Vr.batch(()=>{this.#n.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#n.clear(),this.#u.clear()})}getAll(){return Array.from(this.#n)}find(t){let e={exact:!0,...t};return this.getAll().find(t=>(0,i.X7)(e,t))}findAll(t={}){return this.getAll().filter(e=>(0,i.X7)(t,e))}notify(t){r.Vr.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){let t=this.getAll().filter(t=>t.state.isPaused);return r.Vr.batch(()=>Promise.all(t.map(t=>t.continue().catch(i.ZT))))}};function l(t){return t.options.scope?.id}var c=s(87045),d=s(57853);function f(t){return{onFetch:(e,s)=>{let a=e.options,r=e.fetchOptions?.meta?.fetchMore?.direction,n=e.state.data?.pages||[],u=e.state.data?.pageParams||[],o={pages:[],pageParams:[]},h=0,l=async()=>{let s=!1,l=t=>{Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(e.signal.aborted?s=!0:e.signal.addEventListener("abort",()=>{s=!0}),e.signal)})},c=(0,i.cG)(e.options,e.fetchOptions),d=async(t,a,r)=>{if(s)return Promise.reject();if(null==a&&t.pages.length)return Promise.resolve(t);let n=(()=>{let t={client:e.client,queryKey:e.queryKey,pageParam:a,direction:r?"backward":"forward",meta:e.options.meta};return l(t),t})(),u=await c(n),{maxPages:o}=e.options,h=r?i.Ht:i.VX;return{pages:h(t.pages,u,o),pageParams:h(t.pageParams,a,o)}};if(r&&n.length){let t="backward"===r,e={pages:n,pageParams:u},s=(t?function(t,{pages:e,pageParams:s}){return e.length>0?t.getPreviousPageParam?.(e[0],e,s[0],s):void 0}:p)(a,e);o=await d(e,s,t)}else{let e=t??n.length;do{let t=0===h?u[0]??a.initialPageParam:p(a,o);if(h>0&&null==t)break;o=await d(o,t),h++}while(he.options.persister?.(l,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},s):e.fetchFn=l}}}function p(t,{pages:e,pageParams:s}){let i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,s[i],s):void 0}var y=class{#h;#s;#l;#c;#d;#f;#p;#y;constructor(t={}){this.#h=t.queryCache||new u,this.#s=t.mutationCache||new h,this.#l=t.defaultOptions||{},this.#c=new Map,this.#d=new Map,this.#f=0}mount(){this.#f++,1===this.#f&&(this.#p=c.j.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#h.onFocus())}),this.#y=d.N.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#h.onOnline())}))}unmount(){this.#f--,0===this.#f&&(this.#p?.(),this.#p=void 0,this.#y?.(),this.#y=void 0)}isFetching(t){return this.#h.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#s.findAll({...t,status:"pending"}).length}getQueryData(t){let e=this.defaultQueryOptions({queryKey:t});return this.#h.get(e.queryHash)?.state.data}ensureQueryData(t){let e=this.defaultQueryOptions(t),s=this.#h.build(this,e),a=s.state.data;return void 0===a?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime((0,i.KC)(e.staleTime,s))&&this.prefetchQuery(e),Promise.resolve(a))}getQueriesData(t){return this.#h.findAll(t).map(({queryKey:t,state:e})=>[t,e.data])}setQueryData(t,e,s){let a=this.defaultQueryOptions({queryKey:t}),r=this.#h.get(a.queryHash),n=r?.state.data,u=(0,i.SE)(e,n);if(void 0!==u)return this.#h.build(this,a).setData(u,{...s,manual:!0})}setQueriesData(t,e,s){return r.Vr.batch(()=>this.#h.findAll(t).map(({queryKey:t})=>[t,this.setQueryData(t,e,s)]))}getQueryState(t){let e=this.defaultQueryOptions({queryKey:t});return this.#h.get(e.queryHash)?.state}removeQueries(t){let e=this.#h;r.Vr.batch(()=>{e.findAll(t).forEach(t=>{e.remove(t)})})}resetQueries(t,e){let s=this.#h;return r.Vr.batch(()=>(s.findAll(t).forEach(t=>{t.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){let s={revert:!0,...e};return Promise.all(r.Vr.batch(()=>this.#h.findAll(t).map(t=>t.cancel(s)))).then(i.ZT).catch(i.ZT)}invalidateQueries(t,e={}){return r.Vr.batch(()=>(this.#h.findAll(t).forEach(t=>{t.invalidate()}),t?.refetchType==="none")?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e))}refetchQueries(t,e={}){let s={...e,cancelRefetch:e.cancelRefetch??!0};return Promise.all(r.Vr.batch(()=>this.#h.findAll(t).filter(t=>!t.isDisabled()&&!t.isStatic()).map(t=>{let e=t.fetch(void 0,s);return s.throwOnError||(e=e.catch(i.ZT)),"paused"===t.state.fetchStatus?Promise.resolve():e}))).then(i.ZT)}fetchQuery(t){let e=this.defaultQueryOptions(t);void 0===e.retry&&(e.retry=!1);let s=this.#h.build(this,e);return s.isStaleByTime((0,i.KC)(e.staleTime,s))?s.fetch(e):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(i.ZT).catch(i.ZT)}fetchInfiniteQuery(t){return t.behavior=f(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(i.ZT).catch(i.ZT)}ensureInfiniteQueryData(t){return t.behavior=f(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return d.N.isOnline()?this.#s.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#h}getMutationCache(){return this.#s}getDefaultOptions(){return this.#l}setDefaultOptions(t){this.#l=t}setQueryDefaults(t,e){this.#c.set((0,i.Ym)(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){let e=[...this.#c.values()],s={};return e.forEach(e=>{(0,i.to)(t,e.queryKey)&&Object.assign(s,e.defaultOptions)}),s}setMutationDefaults(t,e){this.#d.set((0,i.Ym)(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){let e=[...this.#d.values()],s={};return e.forEach(e=>{(0,i.to)(t,e.mutationKey)&&Object.assign(s,e.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;let e={...this.#l.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=(0,i.Rm)(e.queryKey,e)),void 0===e.refetchOnReconnect&&(e.refetchOnReconnect="always"!==e.networkMode),void 0===e.throwOnError&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===i.CN&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#l.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#h.clear(),this.#s.clear()}}}}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/16adfc735b73e561.js b/litellm/proxy/_experimental/out/_next/static/chunks/16adfc735b73e561.js deleted file mode 100644 index 34a84ca958a..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/16adfc735b73e561.js +++ /dev/null @@ -1,2 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,434626,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,r],434626)},902555,e=>{"use strict";var t=e.i(843476),r=e.i(591935),o=e.i(122577),n=e.i(278587),i=e.i(68155),a=e.i(360820),s=e.i(871943),l=e.i(434626),c=e.i(592968),u=e.i(115504),d=e.i(752978);function m({icon:e,onClick:r,className:o,disabled:n,dataTestId:i}){return n?(0,t.jsx)(d.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":i}):(0,t.jsx)(d.Icon,{icon:e,size:"sm",onClick:r,className:(0,u.cx)("cursor-pointer",o),"data-testid":i})}let p={Edit:{icon:r.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:i.TrashIcon,className:"hover:text-red-600"},Test:{icon:o.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:n.RefreshIcon,className:"hover:text-green-600"},Up:{icon:a.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:s.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:l.ExternalLinkIcon,className:"hover:text-green-600"}};function g({onClick:e,tooltipText:r,disabled:o=!1,disabledTooltipText:n,dataTestId:i,variant:a}){let{icon:s,className:l}=p[a];return(0,t.jsx)(c.Tooltip,{title:o?n:r,children:(0,t.jsx)("span",{children:(0,t.jsx)(m,{icon:s,onClick:e,className:l,disabled:o,dataTestId:i})})})}e.s(["default",()=>g],902555)},122577,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,r],122577)},207670,e=>{"use strict";function t(){for(var e,t,r=0,o="",n=arguments.length;rt,"default",0,t])},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(829087),n=e.i(480731),i=e.i(444755),a=e.i(673706),s=e.i(95779);let l={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},c={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},u={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},d=(0,a.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:p,variant:g="simple",tooltip:f,size:h=n.Sizes.SM,color:b,className:v}=e,y=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),C=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,a.getColorClassNames)(t,s.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,a.getColorClassNames)(t,s.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,i.tremorTwMerge)((0,a.getColorClassNames)(t,s.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,a.getColorClassNames)(t,s.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,i.tremorTwMerge)((0,a.getColorClassNames)(t,s.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,a.getColorClassNames)(t,s.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,i.tremorTwMerge)((0,a.getColorClassNames)(t,s.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,a.getColorClassNames)(t,s.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,i.tremorTwMerge)((0,a.getColorClassNames)(t,s.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,a.getColorClassNames)(t,s.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,i.tremorTwMerge)((0,a.getColorClassNames)(t,s.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(g,b),{tooltipProps:x,getReferenceProps:w}=(0,o.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,a.mergeRefs)([m,x.refs.setReference]),className:(0,i.tremorTwMerge)(d("root"),"inline-flex shrink-0 items-center justify-center",C.bgColor,C.textColor,C.borderColor,C.ringColor,u[g].rounded,u[g].border,u[g].shadow,u[g].ring,l[h].paddingX,l[h].paddingY,v)},w,y),r.default.createElement(o.default,Object.assign({text:f},x)),r.default.createElement(p,{className:(0,i.tremorTwMerge)(d("icon"),"shrink-0",c[h].height,c[h].width)}))});m.displayName="Icon",e.s(["default",()=>m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},350967,46757,e=>{"use strict";var t=e.i(290571),r=e.i(444755),o=e.i(673706),n=e.i(271645);let i={0:"grid-cols-none",1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6",7:"grid-cols-7",8:"grid-cols-8",9:"grid-cols-9",10:"grid-cols-10",11:"grid-cols-11",12:"grid-cols-12"},a={0:"sm:grid-cols-none",1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6",7:"sm:grid-cols-7",8:"sm:grid-cols-8",9:"sm:grid-cols-9",10:"sm:grid-cols-10",11:"sm:grid-cols-11",12:"sm:grid-cols-12"},s={0:"md:grid-cols-none",1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8",9:"md:grid-cols-9",10:"md:grid-cols-10",11:"md:grid-cols-11",12:"md:grid-cols-12"},l={0:"lg:grid-cols-none",1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6",7:"lg:grid-cols-7",8:"lg:grid-cols-8",9:"lg:grid-cols-9",10:"lg:grid-cols-10",11:"lg:grid-cols-11",12:"lg:grid-cols-12"},c={1:"col-span-1",2:"col-span-2",3:"col-span-3",4:"col-span-4",5:"col-span-5",6:"col-span-6",7:"col-span-7",8:"col-span-8",9:"col-span-9",10:"col-span-10",11:"col-span-11",12:"col-span-12",13:"col-span-13"},u={1:"sm:col-span-1",2:"sm:col-span-2",3:"sm:col-span-3",4:"sm:col-span-4",5:"sm:col-span-5",6:"sm:col-span-6",7:"sm:col-span-7",8:"sm:col-span-8",9:"sm:col-span-9",10:"sm:col-span-10",11:"sm:col-span-11",12:"sm:col-span-12",13:"sm:col-span-13"},d={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3",4:"md:col-span-4",5:"md:col-span-5",6:"md:col-span-6",7:"md:col-span-7",8:"md:col-span-8",9:"md:col-span-9",10:"md:col-span-10",11:"md:col-span-11",12:"md:col-span-12",13:"md:col-span-13"},m={1:"lg:col-span-1",2:"lg:col-span-2",3:"lg:col-span-3",4:"lg:col-span-4",5:"lg:col-span-5",6:"lg:col-span-6",7:"lg:col-span-7",8:"lg:col-span-8",9:"lg:col-span-9",10:"lg:col-span-10",11:"lg:col-span-11",12:"lg:col-span-12",13:"lg:col-span-13"};e.s(["colSpan",()=>c,"colSpanLg",()=>m,"colSpanMd",()=>d,"colSpanSm",()=>u,"gridCols",()=>i,"gridColsLg",()=>l,"gridColsMd",()=>s,"gridColsSm",()=>a],46757);let p=(0,o.makeClassName)("Grid"),g=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"",f=n.default.forwardRef((e,o)=>{let{numItems:c=1,numItemsSm:u,numItemsMd:d,numItemsLg:m,children:f,className:h}=e,b=(0,t.__rest)(e,["numItems","numItemsSm","numItemsMd","numItemsLg","children","className"]),v=g(c,i),y=g(u,a),C=g(d,s),x=g(m,l),w=(0,r.tremorTwMerge)(v,y,C,x);return n.default.createElement("div",Object.assign({ref:o,className:(0,r.tremorTwMerge)(p("root"),"grid",w,h)},b),f)});f.displayName="Grid",e.s(["Grid",()=>f],350967)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),o=e.i(343794),n=e.i(242064),i=e.i(763731),a=e.i(174428);let s=80*Math.PI,l=e=>{let{dotClassName:t,style:n,hasCircleCls:i}=e;return r.createElement("circle",{className:(0,o.default)(`${t}-circle`,{[`${t}-circle-bg`]:i}),r:40,cx:50,cy:50,strokeWidth:20,style:n})},c=({percent:e,prefixCls:t})=>{let n=`${t}-dot`,i=`${n}-holder`,c=`${i}-hidden`,[u,d]=r.useState(!1);(0,a.default)(()=>{0!==e&&d(!0)},[0!==e]);let m=Math.max(Math.min(e,100),0);if(!u)return null;let p={strokeDashoffset:`${s/4}`,strokeDasharray:`${s*m/100} ${s*(100-m)/100}`};return r.createElement("span",{className:(0,o.default)(i,`${n}-progress`,m<=0&&c)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m},r.createElement(l,{dotClassName:n,hasCircleCls:!0}),r.createElement(l,{dotClassName:n,style:p})))};function u(e){let{prefixCls:t,percent:n=0}=e,i=`${t}-dot`,a=`${i}-holder`,s=`${a}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,o.default)(a,n>0&&s)},r.createElement("span",{className:(0,o.default)(i,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(c,{prefixCls:t,percent:n}))}function d(e){var t;let{prefixCls:n,indicator:a,percent:s}=e,l=`${n}-dot`;return a&&r.isValidElement(a)?(0,i.cloneElement)(a,{className:(0,o.default)(null==(t=a.props)?void 0:t.className,l),percent:s}):r.createElement(u,{prefixCls:n,percent:s})}e.i(296059);var m=e.i(694758),p=e.i(183293),g=e.i(246422),f=e.i(838378);let h=new m.Keyframes("antSpinMove",{to:{opacity:1}}),b=new m.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),v=(0,g.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,p.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:h,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:b,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,f.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),y=[[30,.05],[70,.03],[96,.01]];var C=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let x=e=>{var i;let{prefixCls:a,spinning:s=!0,delay:l=0,className:c,rootClassName:u,size:m="default",tip:p,wrapperClassName:g,style:f,children:h,fullscreen:b=!1,indicator:x,percent:w}=e,k=C(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:E,direction:S,className:O,style:N,indicator:P}=(0,n.useComponentConfig)("spin"),$=E("spin",a),[j,M,T]=v($),[I,R]=r.useState(()=>s&&(!s||!l||!!Number.isNaN(Number(l)))),D=function(e,t){let[o,n]=r.useState(0),i=r.useRef(null),a="auto"===t;return r.useEffect(()=>(a&&e&&(n(0),i.current=setInterval(()=>{n(e=>{let t=100-e;for(let r=0;r{i.current&&(clearInterval(i.current),i.current=null)}),[a,e]),a?o:t}(I,w);r.useEffect(()=>{if(s){let e=function(e,t,r){var o,n=r||{},i=n.noTrailing,a=void 0!==i&&i,s=n.noLeading,l=void 0!==s&&s,c=n.debounceMode,u=void 0===c?void 0:c,d=!1,m=0;function p(){o&&clearTimeout(o)}function g(){for(var r=arguments.length,n=Array(r),i=0;ie?l?(m=Date.now(),a||(o=setTimeout(u?f:g,e))):g():!0!==a&&(o=setTimeout(u?f:g,void 0===u?e-c:e)))}return g.cancel=function(e){var t=(e||{}).upcomingOnly;p(),d=!(void 0!==t&&t)},g}(l,()=>{R(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}R(!1)},[l,s]);let L=r.useMemo(()=>void 0!==h&&!b,[h,b]),z=(0,o.default)($,O,{[`${$}-sm`]:"small"===m,[`${$}-lg`]:"large"===m,[`${$}-spinning`]:I,[`${$}-show-text`]:!!p,[`${$}-rtl`]:"rtl"===S},c,!b&&u,M,T),F=(0,o.default)(`${$}-container`,{[`${$}-blur`]:I}),A=null!=(i=null!=x?x:P)?i:t,B=Object.assign(Object.assign({},N),f),H=r.createElement("div",Object.assign({},k,{style:B,className:z,"aria-live":"polite","aria-busy":I}),r.createElement(d,{prefixCls:$,indicator:A,percent:D}),p&&(L||b)?r.createElement("div",{className:`${$}-text`},p):null);return j(L?r.createElement("div",Object.assign({},k,{className:(0,o.default)(`${$}-nested-loading`,g,M,T)}),I&&r.createElement("div",{key:"loading"},H),r.createElement("div",{className:F,key:"container"},h)):b?r.createElement("div",{className:(0,o.default)(`${$}-fullscreen`,{[`${$}-fullscreen-show`]:I},u,M,T)},H):H)};x.setDefaultIndicator=e=>{t=e},e.s(["default",0,x],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},83733,233137,e=>{"use strict";let t,r;var o,n,i=e.i(247167),a=e.i(271645),s=e.i(544508),l=e.i(746725),c=e.i(835696);void 0!==i.default&&"u">typeof globalThis&&"u">typeof Element&&(null==(o=null==i.default?void 0:i.default.env)?void 0:o.NODE_ENV)==="test"&&void 0===(null==(n=null==Element?void 0:Element.prototype)?void 0:n.getAnimations)&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(` -`)),[]});var u=((t=u||{})[t.None=0]="None",t[t.Closed=1]="Closed",t[t.Enter=2]="Enter",t[t.Leave=4]="Leave",t);function d(e){let t={};for(let r in e)!0===e[r]&&(t[`data-${r}`]="");return t}function m(e,t,r,o){let[n,i]=(0,a.useState)(r),{hasFlag:u,addFlag:d,removeFlag:m}=function(e=0){let[t,r]=(0,a.useState)(e),o=(0,a.useCallback)(e=>r(e),[t]),n=(0,a.useCallback)(e=>r(t=>t|e),[t]),i=(0,a.useCallback)(e=>(t&e)===e,[t]);return{flags:t,setFlag:o,addFlag:n,hasFlag:i,removeFlag:(0,a.useCallback)(e=>r(t=>t&~e),[r]),toggleFlag:(0,a.useCallback)(e=>r(t=>t^e),[r])}}(e&&n?3:0),p=(0,a.useRef)(!1),g=(0,a.useRef)(!1),f=(0,l.useDisposables)();return(0,c.useIsoMorphicEffect)(()=>{var n;if(e){if(r&&i(!0),!t){r&&d(3);return}return null==(n=null==o?void 0:o.start)||n.call(o,r),function(e,{prepare:t,run:r,done:o,inFlight:n}){let i=(0,s.disposables)();return function(e,{inFlight:t,prepare:r}){if(null!=t&&t.current)return r();let o=e.style.transition;e.style.transition="none",r(),e.offsetHeight,e.style.transition=o}(e,{prepare:t,inFlight:n}),i.nextFrame(()=>{r(),i.requestAnimationFrame(()=>{i.add(function(e,t){var r,o;let n=(0,s.disposables)();if(!e)return n.dispose;let i=!1;n.add(()=>{i=!0});let a=null!=(o=null==(r=e.getAnimations)?void 0:r.call(e).filter(e=>e instanceof CSSTransition))?o:[];return 0===a.length?t():Promise.allSettled(a.map(e=>e.finished)).then(()=>{i||t()}),n.dispose}(e,o))})}),i.dispose}(t,{inFlight:p,prepare(){g.current?g.current=!1:g.current=p.current,p.current=!0,g.current||(r?(d(3),m(4)):(d(4),m(2)))},run(){g.current?r?(m(3),d(4)):(m(4),d(3)):r?m(1):d(1)},done(){var e;g.current&&"function"==typeof t.getAnimations&&t.getAnimations().length>0||(p.current=!1,m(7),r||i(!1),null==(e=null==o?void 0:o.end)||e.call(o,r))}})}},[e,r,t,f]),e?[n,{closed:u(1),enter:u(2),leave:u(4),transition:u(2)||u(4)}]:[r,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}e.s(["transitionDataAttributes",()=>d,"useTransition",()=>m],83733);let p=(0,a.createContext)(null);p.displayName="OpenClosedContext";var g=((r=g||{})[r.Open=1]="Open",r[r.Closed=2]="Closed",r[r.Closing=4]="Closing",r[r.Opening=8]="Opening",r);function f(){return(0,a.useContext)(p)}function h({value:e,children:t}){return a.default.createElement(p.Provider,{value:e},t)}function b({children:e}){return a.default.createElement(p.Provider,{value:null},e)}e.s(["OpenClosedProvider",()=>h,"ResetOpenClosedProvider",()=>b,"State",()=>g,"useOpenClosed",()=>f],233137)},888288,e=>{"use strict";var t=e.i(271645);let r=(e,r)=>{let o=void 0!==r,[n,i]=(0,t.useState)(e);return[o?r:n,e=>{o||i(e)}]};e.s(["default",()=>r])},233538,e=>{"use strict";function t(e){let t=e.parentElement,r=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(r=t),t=t.parentElement;let o=(null==t?void 0:t.getAttribute("disabled"))==="";return!(o&&function(e){if(!e)return!1;let t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(r))&&o}e.s(["isDisabledReactIssue7711",()=>t])},503269,214520,601893,694421,140721,942803,35889,722678,e=>{"use strict";var t=e.i(271645),r=e.i(914189);function o(e,o,n){let[i,a]=(0,t.useState)(n),s=void 0!==e,l=(0,t.useRef)(s),c=(0,t.useRef)(!1),u=(0,t.useRef)(!1);return!s||l.current||c.current?s||!l.current||u.current||(u.current=!0,l.current=s,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")):(c.current=!0,l.current=s,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")),[s?e:i,(0,r.useEvent)(e=>(s||a(e),null==o?void 0:o(e)))]}function n(e){let[r]=(0,t.useState)(e);return r}e.s(["useControllable",()=>o],503269),e.s(["useDefaultValue",()=>n],214520);let i=(0,t.createContext)(void 0);function a(){return(0,t.useContext)(i)}e.s(["useDisabled",()=>a],601893);var s=e.i(174080),l=e.i(746725);function c(e={},t=null,r=[]){for(let[o,n]of Object.entries(e))!function e(t,r,o){if(Array.isArray(o))for(let[n,i]of o.entries())e(t,u(r,n.toString()),i);else o instanceof Date?t.push([r,o.toISOString()]):"boolean"==typeof o?t.push([r,o?"1":"0"]):"string"==typeof o?t.push([r,o]):"number"==typeof o?t.push([r,`${o}`]):null==o?t.push([r,""]):c(o,r,t)}(r,u(t,o),n);return r}function u(e,t){return e?e+"["+t+"]":t}function d(e){var t,r;let o=null!=(t=null==e?void 0:e.form)?t:e.closest("form");if(o){for(let t of o.elements)if(t!==e&&("INPUT"===t.tagName&&"submit"===t.type||"BUTTON"===t.tagName&&"submit"===t.type||"INPUT"===t.nodeName&&"image"===t.type))return void t.click();null==(r=o.requestSubmit)||r.call(o)}}e.s(["attemptSubmit",()=>d,"objectToFormEntries",()=>c],694421);var m=e.i(700020),p=e.i(2788);let g=(0,t.createContext)(null);function f({children:e}){let r=(0,t.useContext)(g);if(!r)return t.default.createElement(t.default.Fragment,null,e);let{target:o}=r;return o?(0,s.createPortal)(t.default.createElement(t.default.Fragment,null,e),o):null}function h({data:e,form:r,disabled:o,onReset:n,overrides:i}){let[a,s]=(0,t.useState)(null),u=(0,l.useDisposables)();return(0,t.useEffect)(()=>{if(n&&a)return u.addEventListener(a,"reset",n)},[a,r,n]),t.default.createElement(f,null,t.default.createElement(b,{setForm:s,formId:r}),c(e).map(([e,n])=>t.default.createElement(p.Hidden,{features:p.HiddenFeatures.Hidden,...(0,m.compact)({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:r,disabled:o,name:e,value:n,...i})})))}function b({setForm:e,formId:r}){return(0,t.useEffect)(()=>{if(r){let t=document.getElementById(r);t&&e(t)}},[e,r]),r?null:t.default.createElement(p.Hidden,{features:p.HiddenFeatures.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:t=>{if(!t)return;let r=t.closest("form");r&&e(r)}})}e.s(["FormFields",()=>h],140721);let v=(0,t.createContext)(void 0);function y(){return(0,t.useContext)(v)}e.s(["useProvidedId",()=>y],942803);var C=e.i(835696),x=e.i(294316);let w=(0,t.createContext)(null);function k(){var e,r;return null!=(r=null==(e=(0,t.useContext)(w))?void 0:e.value)?r:void 0}function E(){let[e,o]=(0,t.useState)([]);return[e.length>0?e.join(" "):void 0,(0,t.useMemo)(()=>function(e){let n=(0,r.useEvent)(e=>(o(t=>[...t,e]),()=>o(t=>{let r=t.slice(),o=r.indexOf(e);return -1!==o&&r.splice(o,1),r}))),i=(0,t.useMemo)(()=>({register:n,slot:e.slot,name:e.name,props:e.props,value:e.value}),[n,e.slot,e.name,e.props,e.value]);return t.default.createElement(w.Provider,{value:i},e.children)},[o])]}w.displayName="DescriptionContext";let S=Object.assign((0,m.forwardRefWithAs)(function(e,r){let o=(0,t.useId)(),n=a(),{id:i=`headlessui-description-${o}`,...s}=e,l=function e(){let r=(0,t.useContext)(w);if(null===r){let t=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return r}(),c=(0,x.useSyncRefs)(r);(0,C.useIsoMorphicEffect)(()=>l.register(i),[i,l.register]);let u=n||!1,d=(0,t.useMemo)(()=>({...l.slot,disabled:u}),[l.slot,u]),p={ref:c,...l.props,id:i};return(0,m.useRender)()({ourProps:p,theirProps:s,slot:d,defaultTag:"p",name:l.name||"Description"})}),{});e.s(["Description",()=>S,"useDescribedBy",()=>k,"useDescriptions",()=>E],35889);let O=(0,t.createContext)(null);function N(e){var r,o,n;let i=null!=(o=null==(r=(0,t.useContext)(O))?void 0:r.value)?o:void 0;return(null!=(n=null==e?void 0:e.length)?n:0)>0?[i,...e].filter(Boolean).join(" "):i}function P({inherit:e=!1}={}){let o=N(),[n,i]=(0,t.useState)([]),a=e?[o,...n].filter(Boolean):n;return[a.length>0?a.join(" "):void 0,(0,t.useMemo)(()=>function(e){let o=(0,r.useEvent)(e=>(i(t=>[...t,e]),()=>i(t=>{let r=t.slice(),o=r.indexOf(e);return -1!==o&&r.splice(o,1),r}))),n=(0,t.useMemo)(()=>({register:o,slot:e.slot,name:e.name,props:e.props,value:e.value}),[o,e.slot,e.name,e.props,e.value]);return t.default.createElement(O.Provider,{value:n},e.children)},[i])]}O.displayName="LabelContext";let $=Object.assign((0,m.forwardRefWithAs)(function(e,o){var n;let i=(0,t.useId)(),s=function e(){let r=(0,t.useContext)(O);if(null===r){let t=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return r}(),l=y(),c=a(),{id:u=`headlessui-label-${i}`,htmlFor:d=null!=l?l:null==(n=s.props)?void 0:n.htmlFor,passive:p=!1,...g}=e,f=(0,x.useSyncRefs)(o);(0,C.useIsoMorphicEffect)(()=>s.register(u),[u,s.register]);let h=(0,r.useEvent)(e=>{let t=e.currentTarget;if(t instanceof HTMLLabelElement&&e.preventDefault(),s.props&&"onClick"in s.props&&"function"==typeof s.props.onClick&&s.props.onClick(e),t instanceof HTMLLabelElement){let e=document.getElementById(t.htmlFor);if(e){let t=e.getAttribute("disabled");if("true"===t||""===t)return;let r=e.getAttribute("aria-disabled");if("true"===r||""===r)return;(e instanceof HTMLInputElement&&("radio"===e.type||"checkbox"===e.type)||"radio"===e.role||"checkbox"===e.role||"switch"===e.role)&&e.click(),e.focus({preventScroll:!0})}}}),b=c||!1,v=(0,t.useMemo)(()=>({...s.slot,disabled:b}),[s.slot,b]),w={ref:f,...s.props,id:u,htmlFor:d,onClick:h};return p&&("onClick"in w&&(delete w.htmlFor,delete w.onClick),"onClick"in g&&delete g.onClick),(0,m.useRender)()({ourProps:w,theirProps:g,slot:v,defaultTag:d?"label":"div",name:s.name||"Label"})}),{});e.s(["Label",()=>$,"useLabelledBy",()=>N,"useLabels",()=>P],722678)},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),o=e.i(371330),n=e.i(271645),i=e.i(394487),a=e.i(503269),s=e.i(214520),l=e.i(746725),c=e.i(914189),u=e.i(144279),d=e.i(294316),m=e.i(601893),p=e.i(140721),g=e.i(942803),f=e.i(233538),h=e.i(694421),b=e.i(700020),v=e.i(35889),y=e.i(998348),C=e.i(722678);let x=(0,n.createContext)(null);x.displayName="GroupContext";let w=n.Fragment,k=Object.assign((0,b.forwardRefWithAs)(function(e,t){var w;let k=(0,n.useId)(),E=(0,g.useProvidedId)(),S=(0,m.useDisabled)(),{id:O=E||`headlessui-switch-${k}`,disabled:N=S||!1,checked:P,defaultChecked:$,onChange:j,name:M,value:T,form:I,autoFocus:R=!1,...D}=e,L=(0,n.useContext)(x),[z,F]=(0,n.useState)(null),A=(0,n.useRef)(null),B=(0,d.useSyncRefs)(A,t,null===L?null:L.setSwitch,F),H=(0,s.useDefaultValue)($),[q,W]=(0,a.useControllable)(P,j,null!=H&&H),K=(0,l.useDisposables)(),[G,V]=(0,n.useState)(!1),X=(0,c.useEvent)(()=>{V(!0),null==W||W(!q),K.nextFrame(()=>{V(!1)})}),U=(0,c.useEvent)(e=>{if((0,f.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),X()}),_=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),X()):e.key===y.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),Y=(0,c.useEvent)(e=>e.preventDefault()),Q=(0,C.useLabelledBy)(),Z=(0,v.useDescribedBy)(),{isFocusVisible:J,focusProps:ee}=(0,r.useFocusRing)({autoFocus:R}),{isHovered:et,hoverProps:er}=(0,o.useHover)({isDisabled:N}),{pressed:eo,pressProps:en}=(0,i.useActivePress)({disabled:N}),ei=(0,n.useMemo)(()=>({checked:q,disabled:N,hover:et,focus:J,active:eo,autofocus:R,changing:G}),[q,et,J,eo,N,G,R]),ea=(0,b.mergeProps)({id:O,ref:B,role:"switch",type:(0,u.useResolveButtonType)(e,z),tabIndex:-1===e.tabIndex?0:null!=(w=e.tabIndex)?w:0,"aria-checked":q,"aria-labelledby":Q,"aria-describedby":Z,disabled:N||void 0,autoFocus:R,onClick:U,onKeyUp:_,onKeyPress:Y},ee,er,en),es=(0,n.useCallback)(()=>{if(void 0!==H)return null==W?void 0:W(H)},[W,H]),el=(0,b.useRender)();return n.default.createElement(n.default.Fragment,null,null!=M&&n.default.createElement(p.FormFields,{disabled:N,data:{[M]:T||"on"},overrides:{type:"checkbox",checked:q},form:I,onReset:es}),el({ourProps:ea,theirProps:D,slot:ei,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,o]=(0,n.useState)(null),[i,a]=(0,C.useLabels)(),[s,l]=(0,v.useDescriptions)(),c=(0,n.useMemo)(()=>({switch:r,setSwitch:o}),[r,o]),u=(0,b.useRender)();return n.default.createElement(l,{name:"Switch.Description",value:s},n.default.createElement(a,{name:"Switch.Label",value:i,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},n.default.createElement(x.Provider,{value:c},u({ourProps:{},theirProps:e,slot:{},defaultTag:w,name:"Switch.Group"}))))},Label:C.Label,Description:v.Description});var E=e.i(888288),S=e.i(95779),O=e.i(444755),N=e.i(673706),P=e.i(829087);let $=(0,N.makeClassName)("Switch"),j=n.default.forwardRef((e,r)=>{let{checked:o,defaultChecked:i=!1,onChange:a,color:s,name:l,error:c,errorMessage:u,disabled:d,required:m,tooltip:p,id:g}=e,f=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:s?(0,N.getColorClassNames)(s,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:s?(0,N.getColorClassNames)(s,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[b,v]=(0,E.default)(i,o),[y,C]=(0,n.useState)(!1),{tooltipProps:x,getReferenceProps:w}=(0,P.useTooltip)(300);return n.default.createElement("div",{className:"flex flex-row items-center justify-start"},n.default.createElement(P.default,Object.assign({text:p},x)),n.default.createElement("div",Object.assign({ref:(0,N.mergeRefs)([r,x.refs.setReference]),className:(0,O.tremorTwMerge)($("root"),"flex flex-row relative h-5")},f,w),n.default.createElement("input",{type:"checkbox",className:(0,O.tremorTwMerge)($("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:l,required:m,checked:b,onChange:e=>{e.preventDefault()}}),n.default.createElement(k,{checked:b,onChange:e=>{v(e),null==a||a(e)},disabled:d,className:(0,O.tremorTwMerge)($("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>C(!0),onBlur:()=>C(!1),id:g},n.default.createElement("span",{className:(0,O.tremorTwMerge)($("sr-only"),"sr-only")},"Switch ",b?"on":"off"),n.default.createElement("span",{"aria-hidden":"true",className:(0,O.tremorTwMerge)($("background"),b?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),n.default.createElement("span",{"aria-hidden":"true",className:(0,O.tremorTwMerge)($("round"),b?(0,O.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,O.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&u?n.default.createElement("p",{className:(0,O.tremorTwMerge)($("errorMessage"),"text-sm text-red-500 mt-1 ")},u):null)});j.displayName="Switch",e.s(["Switch",()=>j],793130)},114272,e=>{"use strict";var t=e.i(540143),r=e.i(88587),o=e.i(936553),n=class extends r.Removable{#e;#t;#r;#o;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#r=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#r.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||("pending"===this.state.status?this.scheduleGc():this.#r.remove(this))}continue(){return this.#o?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#n({type:"continue"})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#o=(0,o.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(e,r):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#n({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#n({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#r.canRun(this)});let n="pending"===this.state.status,i=!this.#o.canStart();try{if(n)t();else{this.#n({type:"pending",variables:e,isPaused:i}),this.#r.config.onMutate&&await this.#r.config.onMutate(e,this,r);let t=await this.options.onMutate?.(e,r);t!==this.state.context&&this.#n({type:"pending",context:t,variables:e,isPaused:i})}let o=await this.#o.start();return await this.#r.config.onSuccess?.(o,e,this.state.context,this,r),await this.options.onSuccess?.(o,e,this.state.context,r),await this.#r.config.onSettled?.(o,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(o,null,e,this.state.context,r),this.#n({type:"success",data:o}),o}catch(t){try{await this.#r.config.onError?.(t,e,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#r.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#n({type:"error",error:t}),t}finally{this.#r.runNext(this)}}#n(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),t.notifyManager.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#r.notify({mutation:this,type:"updated",action:e})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}e.s(["Mutation",()=>n,"getDefaultState",()=>i])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),o=e.i(540143),n=e.i(915823),i=e.i(619273),a=class extends n.Subscribable{#e;#i=void 0;#a;#s;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,i.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#a,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,i.hashKey)(t.mutationKey)!==(0,i.hashKey)(this.options.mutationKey)?this.reset():this.#a?.state.status==="pending"&&this.#a.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#a?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#c(e)}getCurrentResult(){return this.#i}reset(){this.#a?.removeObserver(this),this.#a=void 0,this.#l(),this.#c()}mutate(e,t){return this.#s=t,this.#a?.removeObserver(this),this.#a=this.#e.getMutationCache().build(this.#e,this.options),this.#a.addObserver(this),this.#a.execute(e)}#l(){let e=this.#a?.state??(0,r.getDefaultState)();this.#i={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#c(e){o.notifyManager.batch(()=>{if(this.#s&&this.hasListeners()){let t=this.#i.variables,r=this.#i.context,o={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#s.onSuccess?.(e.data,t,r,o)}catch(e){Promise.reject(e)}try{this.#s.onSettled?.(e.data,null,t,r,o)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#s.onError?.(e.error,t,r,o)}catch(e){Promise.reject(e)}try{this.#s.onSettled?.(void 0,e.error,t,r,o)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#i)})})}},s=e.i(912598);function l(e,r){let n=(0,s.useQueryClient)(r),[l]=t.useState(()=>new a(n,e));t.useEffect(()=>{l.setOptions(e)},[l,e]);let c=t.useSyncExternalStore(t.useCallback(e=>l.subscribe(o.notifyManager.batchCalls(e)),[l]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),u=t.useCallback((e,t)=>{l.mutate(e,t).catch(i.noop)},[l]);if(c.error&&(0,i.shouldThrowError)(l.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:u,mutateAsync:c.mutate}}e.s(["useMutation",()=>l],954616)},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},688511,727612,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);e.s(["Edit",()=>r],688511);let o=(0,t.default)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",()=>o],727612)},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(914949),n=e.i(404948);let i=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,i],836938);var a=e.i(613541),s=e.i(763731),l=e.i(242064),c=e.i(491816);e.i(793154);var u=e.i(880476),d=e.i(183293),m=e.i(717356),p=e.i(320560),g=e.i(307358),f=e.i(246422),h=e.i(838378),b=e.i(617933);let v=(0,f.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,o=(0,h.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:o,fontWeightStrong:n,innerPadding:i,boxShadowSecondary:a,colorTextHeading:s,borderRadiusLG:l,zIndexPopup:c,titleMarginBottom:u,colorBgElevated:m,popoverBg:g,titleBorderBottom:f,innerContentPadding:h,titlePadding:b}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":m,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:g,backgroundClip:"padding-box",borderRadius:l,boxShadow:a,padding:i},[`${t}-title`]:{minWidth:o,marginBottom:u,color:s,fontWeight:n,borderBottom:f,padding:b},[`${t}-inner-content`]:{color:r,padding:h}})},(0,p.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(o),(e=>{let{componentCls:t}=e;return{[t]:b.PresetColors.map(r=>{let o=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":o,[`${t}-inner`]:{backgroundColor:o},[`${t}-arrow`]:{background:"transparent"}}}})}})(o),(0,m.initZoomMotion)(o,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:o,padding:n,wireframe:i,zIndexPopupBase:a,borderRadiusLG:s,marginXS:l,lineType:c,colorSplit:u,paddingSM:d}=e,m=r-o;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:a+30},(0,g.getArrowToken)(e)),(0,p.getArrowOffsetToken)({contentRadius:s,limitVerticalRadius:!0})),{innerPadding:12*!i,titleMarginBottom:i?0:l,titlePadding:i?`${m/2}px ${n}px ${m/2-t}px`:0,titleBorderBottom:i?`${t}px ${c} ${u}`:"none",innerContentPadding:i?`${d}px ${n}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let C=({title:e,content:r,prefixCls:o})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${o}-title`},e),r&&t.createElement("div",{className:`${o}-inner-content`},r)):null,x=e=>{let{hashId:o,prefixCls:n,className:a,style:s,placement:l="top",title:c,content:d,children:m}=e,p=i(c),g=i(d),f=(0,r.default)(o,n,`${n}-pure`,`${n}-placement-${l}`,a);return t.createElement("div",{className:f,style:s},t.createElement("div",{className:`${n}-arrow`}),t.createElement(u.Popup,Object.assign({},e,{className:o,prefixCls:n}),m||t.createElement(C,{prefixCls:n,title:p,content:g})))},w=e=>{let{prefixCls:o,className:n}=e,i=y(e,["prefixCls","className"]),{getPrefixCls:a}=t.useContext(l.ConfigContext),s=a("popover",o),[c,u,d]=v(s);return c(t.createElement(x,Object.assign({},i,{prefixCls:s,hashId:u,className:(0,r.default)(n,d)})))};e.s(["Overlay",0,C,"default",0,w],310730);var k=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let E=t.forwardRef((e,u)=>{var d,m;let{prefixCls:p,title:g,content:f,overlayClassName:h,placement:b="top",trigger:y="hover",children:x,mouseEnterDelay:w=.1,mouseLeaveDelay:E=.1,onOpenChange:S,overlayStyle:O={},styles:N,classNames:P}=e,$=k(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:j,className:M,style:T,classNames:I,styles:R}=(0,l.useComponentConfig)("popover"),D=j("popover",p),[L,z,F]=v(D),A=j(),B=(0,r.default)(h,z,F,M,I.root,null==P?void 0:P.root),H=(0,r.default)(I.body,null==P?void 0:P.body),[q,W]=(0,o.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(m=e.defaultOpen)?m:e.defaultVisible}),K=(e,t)=>{W(e,!0),null==S||S(e,t)},G=i(g),V=i(f);return L(t.createElement(c.default,Object.assign({placement:b,trigger:y,mouseEnterDelay:w,mouseLeaveDelay:E},$,{prefixCls:D,classNames:{root:B,body:H},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},R.root),T),O),null==N?void 0:N.root),body:Object.assign(Object.assign({},R.body),null==N?void 0:N.body)},ref:u,open:q,onOpenChange:e=>{K(e)},overlay:G||V?t.createElement(C,{prefixCls:D,title:G,content:V}):null,transitionName:(0,a.getTransitionName)(A,"zoom-big",$.transitionName),"data-popover-inject":!0}),(0,s.cloneElement)(x,{onKeyDown:e=>{var r,o;(0,t.isValidElement)(x)&&(null==(o=null==x?void 0:(r=x.props).onKeyDown)||o.call(r,e)),e.keyCode===n.default.ESC&&K(!1,e)}})))});E._InternalPanelDoNotUseOrYouWillBeFired=w,e.s(["default",0,E],829672)},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(562901),o=e.i(343794),n=e.i(914949),i=e.i(529681),a=e.i(242064),s=e.i(829672),l=e.i(285781),c=e.i(836938),u=e.i(920228),d=e.i(62405),m=e.i(408850),p=e.i(87414),g=e.i(310730);let f=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:r,antCls:o,zIndexPopup:n,colorText:i,colorWarning:a,marginXXS:s,marginXS:l,fontSize:c,fontWeightStrong:u,colorTextHeading:d}=e;return{[t]:{zIndex:n,[`&${o}-popover`]:{fontSize:c},[`${t}-message`]:{marginBottom:l,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${r}`]:{color:a,fontSize:c,lineHeight:1,marginInlineEnd:l},[`${t}-title`]:{fontWeight:u,color:d,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:s,color:i}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:l}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var h=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let b=e=>{let{prefixCls:o,okButtonProps:n,cancelButtonProps:i,title:s,description:g,cancelText:f,okText:h,okType:b="primary",icon:v=t.createElement(r.default,null),showCancel:y=!0,close:C,onConfirm:x,onCancel:w,onPopupClick:k}=e,{getPrefixCls:E}=t.useContext(a.ConfigContext),[S]=(0,m.useLocale)("Popconfirm",p.default.Popconfirm),O=(0,c.getRenderPropValue)(s),N=(0,c.getRenderPropValue)(g);return t.createElement("div",{className:`${o}-inner-content`,onClick:k},t.createElement("div",{className:`${o}-message`},v&&t.createElement("span",{className:`${o}-message-icon`},v),t.createElement("div",{className:`${o}-message-text`},O&&t.createElement("div",{className:`${o}-title`},O),N&&t.createElement("div",{className:`${o}-description`},N))),t.createElement("div",{className:`${o}-buttons`},y&&t.createElement(u.default,Object.assign({onClick:w,size:"small"},i),f||(null==S?void 0:S.cancelText)),t.createElement(l.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,d.convertLegacyProps)(b)),n),actionFn:x,close:C,prefixCls:E("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},h||(null==S?void 0:S.okText))))};var v=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let y=t.forwardRef((e,l)=>{var c,u;let{prefixCls:d,placement:m="top",trigger:p="click",okType:g="primary",icon:h=t.createElement(r.default,null),children:y,overlayClassName:C,onOpenChange:x,onVisibleChange:w,overlayStyle:k,styles:E,classNames:S}=e,O=v(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:N,className:P,style:$,classNames:j,styles:M}=(0,a.useComponentConfig)("popconfirm"),[T,I]=(0,n.default)(!1,{value:null!=(c=e.open)?c:e.visible,defaultValue:null!=(u=e.defaultOpen)?u:e.defaultVisible}),R=(e,t)=>{I(e,!0),null==w||w(e),null==x||x(e,t)},D=N("popconfirm",d),L=(0,o.default)(D,P,C,j.root,null==S?void 0:S.root),z=(0,o.default)(j.body,null==S?void 0:S.body),[F]=f(D);return F(t.createElement(s.default,Object.assign({},(0,i.default)(O,["title"]),{trigger:p,placement:m,onOpenChange:(t,r)=>{let{disabled:o=!1}=e;o||R(t,r)},open:T,ref:l,classNames:{root:L,body:z},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},M.root),$),k),null==E?void 0:E.root),body:Object.assign(Object.assign({},M.body),null==E?void 0:E.body)},content:t.createElement(b,Object.assign({okType:g,icon:h},e,{prefixCls:D,close:e=>{R(!1,e)},onConfirm:t=>{var r;return null==(r=e.onConfirm)?void 0:r.call(void 0,t)},onCancel:t=>{var r;R(!1,t),null==(r=e.onCancel)||r.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,placement:n,className:i,style:s}=e,l=h(e,["prefixCls","placement","className","style"]),{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("popconfirm",r),[d]=f(u);return d(t.createElement(g.default,{placement:n,className:(0,o.default)(u,i),style:s,content:t.createElement(b,Object.assign({prefixCls:u},l))}))},e.s(["Popconfirm",0,y],883552)},764367,e=>{"use strict";var t=e.i(843476),r=e.i(700904),o=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:n,userId:i,premiumUser:a}=(0,o.default)();return(0,t.jsx)(r.default,{accessToken:e,userRole:n,userID:i,premiumUser:a})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1713-b3fdb241d0f3ae7a.js b/litellm/proxy/_experimental/out/_next/static/chunks/1713-b3fdb241d0f3ae7a.js deleted file mode 100644 index 42b39b25804..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/1713-b3fdb241d0f3ae7a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1713],{87045:function(t,e,r){r.d(e,{j:function(){return n}});var s=r(24112),i=r(45345),n=new class extends s.l{#t;#e;#r;constructor(){super(),this.#r=t=>{if(!i.sk&&window.addEventListener){let e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#e||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(t){this.#r=t,this.#e?.(),this.#e=t(t=>{"boolean"==typeof t?this.setFocused(t):this.onFocus()})}setFocused(t){this.#t!==t&&(this.#t=t,this.onFocus())}onFocus(){let t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return"boolean"==typeof this.#t?this.#t:globalThis.document?.visibilityState!=="hidden"}}},18238:function(t,e,r){r.d(e,{Vr:function(){return i}});var s=r(84554).Hp,i=function(){let t=[],e=0,r=t=>{t()},i=t=>{t()},n=s,u=s=>{e?t.push(s):n(()=>{r(s)})},o=()=>{let e=t;t=[],e.length&&n(()=>{i(()=>{e.forEach(t=>{r(t)})})})};return{batch:t=>{let r;e++;try{r=t()}finally{--e||o()}return r},batchCalls:t=>(...e)=>{u(()=>{t(...e)})},schedule:u,setNotifyFunction:t=>{r=t},setBatchNotifyFunction:t=>{i=t},setScheduler:t=>{n=t}}}()},57853:function(t,e,r){r.d(e,{N:function(){return n}});var s=r(24112),i=r(45345),n=new class extends s.l{#s=!0;#e;#r;constructor(){super(),this.#r=t=>{if(!i.sk&&window.addEventListener){let e=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#e||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(t){this.#r=t,this.#e?.(),this.#e=t(this.setOnline.bind(this))}setOnline(t){this.#s!==t&&(this.#s=t,this.listeners.forEach(e=>{e(t)}))}isOnline(){return this.#s}}},21733:function(t,e,r){r.d(e,{A:function(){return o},z:function(){return a}});var s=r(45345),i=r(18238),n=r(11255),u=r(7989),o=class extends u.F{#i;#n;#u;#o;#a;#c;#h;constructor(t){super(),this.#h=!1,this.#c=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#o=t.client,this.#u=this.#o.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#i=h(this.options),this.state=t.state??this.#i,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#a?.promise}setOptions(t){if(this.options={...this.#c,...t},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let t=h(this.options);void 0!==t.data&&(this.setState(c(t.data,t.dataUpdatedAt)),this.#i=t)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#u.remove(this)}setData(t,e){let r=(0,s.oE)(this.state.data,t,this.options);return this.#l({data:r,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),r}setState(t,e){this.#l({type:"setState",state:t,setStateOptions:e})}cancel(t){let e=this.#a?.promise;return this.#a?.cancel(t),e?e.then(s.ZT).catch(s.ZT):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#i)}isActive(){return this.observers.some(t=>!1!==(0,s.Nc)(t.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===s.CN||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0&&this.observers.some(t=>"static"===(0,s.KC)(t.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(t=0){return void 0===this.state.data||"static"!==t&&(!!this.state.isInvalidated||!(0,s.Kp)(this.state.dataUpdatedAt,t))}onFocus(){let t=this.observers.find(t=>t.shouldFetchOnWindowFocus());t?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){let t=this.observers.find(t=>t.shouldFetchOnReconnect());t?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#u.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(e=>e!==t),this.observers.length||(this.#a&&(this.#h?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#u.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#l({type:"invalidate"})}async fetch(t,e){if("idle"!==this.state.fetchStatus&&this.#a?.status()!=="rejected"){if(void 0!==this.state.data&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(t&&this.setOptions(t),!this.options.queryFn){let t=this.observers.find(t=>t.options.queryFn);t&&this.setOptions(t.options)}let r=new AbortController,i=t=>{Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(this.#h=!0,r.signal)})},u=()=>{let t=(0,s.cG)(this.options,e),r=(()=>{let t={client:this.#o,queryKey:this.queryKey,meta:this.meta};return i(t),t})();return(this.#h=!1,this.options.persister)?this.options.persister(t,r,this):t(r)},o=(()=>{let t={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#o,state:this.state,fetchFn:u};return i(t),t})();this.options.behavior?.onFetch(o,this),this.#n=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#l({type:"fetch",meta:o.fetchOptions?.meta}),this.#a=(0,n.Mz)({initialPromise:e?.initialPromise,fn:o.fetchFn,onCancel:t=>{t instanceof n.p8&&t.revert&&this.setState({...this.#n,fetchStatus:"idle"}),r.abort()},onFail:(t,e)=>{this.#l({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#l({type:"pause"})},onContinue:()=>{this.#l({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0});try{let t=await this.#a.start();if(void 0===t)throw Error(`${this.queryHash} data is undefined`);return this.setData(t),this.#u.config.onSuccess?.(t,this),this.#u.config.onSettled?.(t,this.state.error,this),t}catch(t){if(t instanceof n.p8){if(t.silent)return this.#a.promise;if(t.revert){if(void 0===this.state.data)throw t;return this.state.data}}throw this.#l({type:"error",error:t}),this.#u.config.onError?.(t,this),this.#u.config.onSettled?.(this.state.data,t,this),t}finally{this.scheduleGc()}}#l(t){this.state=(e=>{switch(t.type){case"failed":return{...e,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...e,fetchStatus:"paused"};case"continue":return{...e,fetchStatus:"fetching"};case"fetch":return{...e,...a(e.data,this.options),fetchMeta:t.meta??null};case"success":let r={...e,...c(t.data,t.dataUpdatedAt),dataUpdateCount:e.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#n=t.manual?r:void 0,r;case"error":let s=t.error;return{...e,error:s,errorUpdateCount:e.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:e.fetchFailureCount+1,fetchFailureReason:s,fetchStatus:"idle",status:"error"};case"invalidate":return{...e,isInvalidated:!0};case"setState":return{...e,...t.state}}})(this.state),i.Vr.batch(()=>{this.observers.forEach(t=>{t.onQueryUpdate()}),this.#u.notify({query:this,type:"updated",action:t})})}};function a(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,n.Kw)(e.networkMode)?"fetching":"paused",...void 0===t&&{error:null,status:"pending"}}}function c(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function h(t){let e="function"==typeof t.initialData?t.initialData():t.initialData,r=void 0!==e,s=r?"function"==typeof t.initialDataUpdatedAt?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:r?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}},7989:function(t,e,r){r.d(e,{F:function(){return n}});var s=r(84554),i=r(45345),n=class{#d;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,i.PN)(this.gcTime)&&(this.#d=s.mr.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(i.sk?1/0:3e5))}clearGcTimeout(){this.#d&&(s.mr.clearTimeout(this.#d),this.#d=void 0)}}},11255:function(t,e,r){r.d(e,{Kw:function(){return a},Mz:function(){return h},p8:function(){return c}});var s=r(87045),i=r(57853),n=r(16803),u=r(45345);function o(t){return Math.min(1e3*2**t,3e4)}function a(t){return(t??"online")!=="online"||i.N.isOnline()}var c=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function h(t){let e,r=!1,h=0,l=(0,n.O)(),d=()=>"pending"!==l.status,f=()=>s.j.isFocused()&&("always"===t.networkMode||i.N.isOnline())&&t.canRun(),p=()=>a(t.networkMode)&&t.canRun(),y=t=>{d()||(e?.(),l.resolve(t))},v=t=>{d()||(e?.(),l.reject(t))},b=()=>new Promise(r=>{e=t=>{(d()||f())&&r(t)},t.onPause?.()}).then(()=>{e=void 0,d()||t.onContinue?.()}),m=()=>{let e;if(d())return;let s=0===h?t.initialPromise:void 0;try{e=s??t.fn()}catch(t){e=Promise.reject(t)}Promise.resolve(e).then(y).catch(e=>{if(d())return;let s=t.retry??(u.sk?0:3),i=t.retryDelay??o,n="function"==typeof i?i(h,e):i,a=!0===s||"number"==typeof s&&hf()?void 0:b()).then(()=>{r?v(e):m()})})};return{promise:l,status:()=>l.status,cancel:e=>{if(!d()){let r=new c(e);v(r),t.onCancel?.(r)}},continue:()=>(e?.(),l),cancelRetry:()=>{r=!0},continueRetry:()=>{r=!1},canStart:p,start:()=>(p()?m():b().then(m),l)}}},24112:function(t,e,r){r.d(e,{l:function(){return s}});var s=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}},16803:function(t,e,r){r.d(e,{O:function(){return s}});function s(){let t,e;let r=new Promise((r,s)=>{t=r,e=s});function s(t){Object.assign(r,t),delete r.resolve,delete r.reject}return r.status="pending",r.catch(()=>{}),r.resolve=e=>{s({status:"fulfilled",value:e}),t(e)},r.reject=t=>{s({status:"rejected",reason:t}),e(t)},r}},84554:function(t,e,r){r.d(e,{Hp:function(){return n},mr:function(){return i}});var s={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)},i=new class{#f=s;#p=!1;setTimeoutProvider(t){this.#f=t}setTimeout(t,e){return this.#f.setTimeout(t,e)}clearTimeout(t){this.#f.clearTimeout(t)}setInterval(t,e){return this.#f.setInterval(t,e)}clearInterval(t){this.#f.clearInterval(t)}};function n(t){setTimeout(t,0)}},45345:function(t,e,r){r.d(e,{CN:function(){return Q},Ht:function(){return T},KC:function(){return c},Kp:function(){return a},L3:function(){return I},Nc:function(){return h},PN:function(){return o},Rm:function(){return f},SE:function(){return u},VS:function(){return b},VX:function(){return w},Wk:function(){return C},X7:function(){return d},Ym:function(){return p},ZT:function(){return n},_v:function(){return O},_x:function(){return l},cG:function(){return F},oE:function(){return S},sk:function(){return i},to:function(){return y}});var s=r(84554),i="undefined"==typeof window||"Deno"in globalThis;function n(){}function u(t,e){return"function"==typeof t?t(e):t}function o(t){return"number"==typeof t&&t>=0&&t!==1/0}function a(t,e){return Math.max(t+(e||0)-Date.now(),0)}function c(t,e){return"function"==typeof t?t(e):t}function h(t,e){return"function"==typeof t?t(e):t}function l(t,e){let{type:r="all",exact:s,fetchStatus:i,predicate:n,queryKey:u,stale:o}=t;if(u){if(s){if(e.queryHash!==f(u,e.options))return!1}else if(!y(e.queryKey,u))return!1}if("all"!==r){let t=e.isActive();if("active"===r&&!t||"inactive"===r&&t)return!1}return("boolean"!=typeof o||e.isStale()===o)&&(!i||i===e.state.fetchStatus)&&(!n||!!n(e))}function d(t,e){let{exact:r,status:s,predicate:i,mutationKey:n}=t;if(n){if(!e.options.mutationKey)return!1;if(r){if(p(e.options.mutationKey)!==p(n))return!1}else if(!y(e.options.mutationKey,n))return!1}return(!s||e.state.status===s)&&(!i||!!i(e))}function f(t,e){return(e?.queryKeyHashFn||p)(t)}function p(t){return JSON.stringify(t,(t,e)=>g(e)?Object.keys(e).sort().reduce((t,r)=>(t[r]=e[r],t),{}):e)}function y(t,e){return t===e||typeof t==typeof e&&!!t&&!!e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).every(r=>y(t[r],e[r]))}var v=Object.prototype.hasOwnProperty;function b(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(let r in t)if(t[r]!==e[r])return!1;return!0}function m(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function g(t){if(!R(t))return!1;let e=t.constructor;if(void 0===e)return!0;let r=e.prototype;return!!(R(r)&&r.hasOwnProperty("isPrototypeOf"))&&Object.getPrototypeOf(t)===Object.prototype}function R(t){return"[object Object]"===Object.prototype.toString.call(t)}function O(t){return new Promise(e=>{s.mr.setTimeout(e,t)})}function S(t,e,r){return"function"==typeof r.structuralSharing?r.structuralSharing(t,e):!1!==r.structuralSharing?function t(e,r){if(e===r)return e;let s=m(e)&&m(r);if(!s&&!(g(e)&&g(r)))return r;let i=(s?e:Object.keys(e)).length,n=s?r:Object.keys(r),u=n.length,o=s?Array(u):{},a=0;for(let c=0;cr?s.slice(1):s}function T(t,e,r=0){let s=[e,...t];return r&&s.length>r?s.slice(0,-1):s}var Q=Symbol();function F(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:t.queryFn&&t.queryFn!==Q?t.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${t.queryHash}'`))}function I(t,e){return"function"==typeof t?t(...e):!!t}},29827:function(t,e,r){r.d(e,{NL:function(){return u},aH:function(){return o}});var s=r(2265),i=r(57437),n=s.createContext(void 0),u=t=>{let e=s.useContext(n);if(t)return t;if(!e)throw Error("No QueryClient set, use QueryClientProvider to set one");return e},o=t=>{let{client:e,children:r}=t;return s.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,i.jsx)(n.Provider,{value:e,children:r})}},11713:function(t,e,r){let s;r.d(e,{a:function(){return E}});var i=r(87045),n=r(18238),u=r(21733),o=r(24112),a=r(16803),c=r(45345),h=r(84554),l=class extends o.l{constructor(t,e){super(),this.options=e,this.#o=t,this.#y=null,this.#v=(0,a.O)(),this.bindMethods(),this.setOptions(e)}#o;#b=void 0;#m=void 0;#g=void 0;#R;#O;#v;#y;#S;#C;#w;#T;#Q;#F;#I=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#b.addObserver(this),d(this.#b,this.options)?this.#E():this.updateResult(),this.#k())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#b,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#b,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#U(),this.#P(),this.#b.removeObserver(this)}setOptions(t){let e=this.options,r=this.#b;if(this.options=this.#o.defaultQueryOptions(t),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,c.Nc)(this.options.enabled,this.#b))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#j(),this.#b.setOptions(this.options),e._defaulted&&!(0,c.VS)(this.options,e)&&this.#o.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#b,observer:this});let s=this.hasListeners();s&&p(this.#b,r,this.options,e)&&this.#E(),this.updateResult(),s&&(this.#b!==r||(0,c.Nc)(this.options.enabled,this.#b)!==(0,c.Nc)(e.enabled,this.#b)||(0,c.KC)(this.options.staleTime,this.#b)!==(0,c.KC)(e.staleTime,this.#b))&&this.#q();let i=this.#D();s&&(this.#b!==r||(0,c.Nc)(this.options.enabled,this.#b)!==(0,c.Nc)(e.enabled,this.#b)||i!==this.#F)&&this.#x(i)}getOptimisticResult(t){let e=this.#o.getQueryCache().build(this.#o,t),r=this.createResult(e,t);return(0,c.VS)(this.getCurrentResult(),r)||(this.#g=r,this.#O=this.options,this.#R=this.#b.state),r}getCurrentResult(){return this.#g}trackResult(t,e){return new Proxy(t,{get:(t,r)=>(this.trackProp(r),e?.(r),"promise"!==r||(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#v.status||this.#v.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(t,r))})}trackProp(t){this.#I.add(t)}getCurrentQuery(){return this.#b}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){let e=this.#o.defaultQueryOptions(t),r=this.#o.getQueryCache().build(this.#o,e);return r.fetch().then(()=>this.createResult(r,e))}fetch(t){return this.#E({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#g))}#E(t){this.#j();let e=this.#b.fetch(this.options,t);return t?.throwOnError||(e=e.catch(c.ZT)),e}#q(){this.#U();let t=(0,c.KC)(this.options.staleTime,this.#b);if(c.sk||this.#g.isStale||!(0,c.PN)(t))return;let e=(0,c.Kp)(this.#g.dataUpdatedAt,t);this.#T=h.mr.setTimeout(()=>{this.#g.isStale||this.updateResult()},e+1)}#D(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#b):this.options.refetchInterval)??!1}#x(t){this.#P(),this.#F=t,!c.sk&&!1!==(0,c.Nc)(this.options.enabled,this.#b)&&(0,c.PN)(this.#F)&&0!==this.#F&&(this.#Q=h.mr.setInterval(()=>{(this.options.refetchIntervalInBackground||i.j.isFocused())&&this.#E()},this.#F))}#k(){this.#q(),this.#x(this.#D())}#U(){this.#T&&(h.mr.clearTimeout(this.#T),this.#T=void 0)}#P(){this.#Q&&(h.mr.clearInterval(this.#Q),this.#Q=void 0)}createResult(t,e){let r;let s=this.#b,i=this.options,n=this.#g,o=this.#R,h=this.#O,l=t!==s?t.state:this.#m,{state:f}=t,v={...f},b=!1;if(e._optimisticResults){let r=this.hasListeners(),n=!r&&d(t,e),o=r&&p(t,s,e,i);(n||o)&&(v={...v,...(0,u.z)(f.data,t.options)}),"isRestoring"===e._optimisticResults&&(v.fetchStatus="idle")}let{error:m,errorUpdatedAt:g,status:R}=v;r=v.data;let O=!1;if(void 0!==e.placeholderData&&void 0===r&&"pending"===R){let t;n?.isPlaceholderData&&e.placeholderData===h?.placeholderData?(t=n.data,O=!0):t="function"==typeof e.placeholderData?e.placeholderData(this.#w?.state.data,this.#w):e.placeholderData,void 0!==t&&(R="success",r=(0,c.oE)(n?.data,t,e),b=!0)}if(e.select&&void 0!==r&&!O){if(n&&r===o?.data&&e.select===this.#S)r=this.#C;else try{this.#S=e.select,r=e.select(r),r=(0,c.oE)(n?.data,r,e),this.#C=r,this.#y=null}catch(t){this.#y=t}}this.#y&&(m=this.#y,r=this.#C,g=Date.now(),R="error");let S="fetching"===v.fetchStatus,C="pending"===R,w="error"===R,T=C&&S,Q=void 0!==r,F={status:R,fetchStatus:v.fetchStatus,isPending:C,isSuccess:"success"===R,isError:w,isInitialLoading:T,isLoading:T,data:r,dataUpdatedAt:v.dataUpdatedAt,error:m,errorUpdatedAt:g,failureCount:v.fetchFailureCount,failureReason:v.fetchFailureReason,errorUpdateCount:v.errorUpdateCount,isFetched:v.dataUpdateCount>0||v.errorUpdateCount>0,isFetchedAfterMount:v.dataUpdateCount>l.dataUpdateCount||v.errorUpdateCount>l.errorUpdateCount,isFetching:S,isRefetching:S&&!C,isLoadingError:w&&!Q,isPaused:"paused"===v.fetchStatus,isPlaceholderData:b,isRefetchError:w&&Q,isStale:y(t,e),refetch:this.refetch,promise:this.#v,isEnabled:!1!==(0,c.Nc)(e.enabled,t)};if(this.options.experimental_prefetchInRender){let e=t=>{"error"===F.status?t.reject(F.error):void 0!==F.data&&t.resolve(F.data)},r=()=>{e(this.#v=F.promise=(0,a.O)())},i=this.#v;switch(i.status){case"pending":t.queryHash===s.queryHash&&e(i);break;case"fulfilled":("error"===F.status||F.data!==i.value)&&r();break;case"rejected":("error"!==F.status||F.error!==i.reason)&&r()}}return F}updateResult(){let t=this.#g,e=this.createResult(this.#b,this.options);this.#R=this.#b.state,this.#O=this.options,void 0!==this.#R.data&&(this.#w=this.#b),(0,c.VS)(e,t)||(this.#g=e,this.#N({listeners:(()=>{if(!t)return!0;let{notifyOnChangeProps:e}=this.options,r="function"==typeof e?e():e;if("all"===r||!r&&!this.#I.size)return!0;let s=new Set(r??this.#I);return this.options.throwOnError&&s.add("error"),Object.keys(this.#g).some(e=>this.#g[e]!==t[e]&&s.has(e))})()}))}#j(){let t=this.#o.getQueryCache().build(this.#o,this.options);if(t===this.#b)return;let e=this.#b;this.#b=t,this.#m=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#k()}#N(t){n.Vr.batch(()=>{t.listeners&&this.listeners.forEach(t=>{t(this.#g)}),this.#o.getQueryCache().notify({query:this.#b,type:"observerResultsUpdated"})})}};function d(t,e){return!1!==(0,c.Nc)(e.enabled,t)&&void 0===t.state.data&&!("error"===t.state.status&&!1===e.retryOnMount)||void 0!==t.state.data&&f(t,e,e.refetchOnMount)}function f(t,e,r){if(!1!==(0,c.Nc)(e.enabled,t)&&"static"!==(0,c.KC)(e.staleTime,t)){let s="function"==typeof r?r(t):r;return"always"===s||!1!==s&&y(t,e)}return!1}function p(t,e,r,s){return(t!==e||!1===(0,c.Nc)(s.enabled,t))&&(!r.suspense||"error"!==t.state.status)&&y(t,r)}function y(t,e){return!1!==(0,c.Nc)(e.enabled,t)&&t.isStaleByTime((0,c.KC)(e.staleTime,t))}var v=r(2265),b=r(29827);r(57437);var m=v.createContext((s=!1,{clearReset:()=>{s=!1},reset:()=>{s=!0},isReset:()=>s})),g=()=>v.useContext(m),R=(t,e)=>{(t.suspense||t.throwOnError||t.experimental_prefetchInRender)&&!e.isReset()&&(t.retryOnMount=!1)},O=t=>{v.useEffect(()=>{t.clearReset()},[t])},S=t=>{let{result:e,errorResetBoundary:r,throwOnError:s,query:i,suspense:n}=t;return e.isError&&!r.isReset()&&!e.isFetching&&i&&(n&&void 0===e.data||(0,c.L3)(s,[e.error,i]))},C=v.createContext(!1),w=()=>v.useContext(C);C.Provider;var T=t=>{if(t.suspense){let e=t=>"static"===t?t:Math.max(t??1e3,1e3),r=t.staleTime;t.staleTime="function"==typeof r?(...t)=>e(r(...t)):e(r),"number"==typeof t.gcTime&&(t.gcTime=Math.max(t.gcTime,1e3))}},Q=(t,e)=>t.isLoading&&t.isFetching&&!e,F=(t,e)=>t?.suspense&&e.isPending,I=(t,e,r)=>e.fetchOptimistic(t).catch(()=>{r.clearReset()});function E(t,e){return function(t,e,r){var s,i,u,o,a;let h=w(),l=g(),d=(0,b.NL)(r),f=d.defaultQueryOptions(t);null===(i=d.getDefaultOptions().queries)||void 0===i||null===(s=i._experimental_beforeQuery)||void 0===s||s.call(i,f),f._optimisticResults=h?"isRestoring":"optimistic",T(f),R(f,l),O(l);let p=!d.getQueryCache().get(f.queryHash),[y]=v.useState(()=>new e(d,f)),m=y.getOptimisticResult(f),C=!h&&!1!==t.subscribed;if(v.useSyncExternalStore(v.useCallback(t=>{let e=C?y.subscribe(n.Vr.batchCalls(t)):c.ZT;return y.updateResult(),e},[y,C]),()=>y.getCurrentResult(),()=>y.getCurrentResult()),v.useEffect(()=>{y.setOptions(f)},[f,y]),F(f,m))throw I(f,y,l);if(S({result:m,errorResetBoundary:l,throwOnError:f.throwOnError,query:d.getQueryCache().get(f.queryHash),suspense:f.suspense}))throw m.error;if(null===(o=d.getDefaultOptions().queries)||void 0===o||null===(u=o._experimental_afterQuery)||void 0===u||u.call(o,f,m),f.experimental_prefetchInRender&&!c.sk&&Q(m,h)){let t=p?I(f,y,l):null===(a=d.getQueryCache().get(f.queryHash))||void 0===a?void 0:a.promise;null==t||t.catch(c.ZT).finally(()=>{y.updateResult()})}return f.notifyOnChangeProps?m:y.trackResult(m)}(t,l,e)}}}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/18268b188d85d0d8.js b/litellm/proxy/_experimental/out/_next/static/chunks/18268b188d85d0d8.js deleted file mode 100644 index b62642a8025..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/18268b188d85d0d8.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,475647,286536,77705,e=>{"use strict";e.i(247167);var l=e.i(931067),t=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};var i=e.i(9583),r=t.forwardRef(function(e,r){return t.createElement(i.default,(0,l.default)({},e,{ref:r,icon:s}))});e.s(["PlusCircleOutlined",0,r],475647);var n=e.i(475254);let a=(0,n.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>a],286536);let o=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",()=>o],77705)},700514,e=>{"use strict";var l=e.i(271645);e.s(["defaultPageSize",0,25,"useBaseUrl",0,()=>{let[e,t]=(0,l.useState)("http://localhost:4000");return(0,l.useEffect)(()=>{{let{protocol:e,host:l}=window.location;t(`${e}//${l}`)}},[]),e}])},844444,e=>{"use strict";var l=e.i(843476),t=e.i(906579),s=e.i(271645),i=e.i(115571);function r(e){let l=l=>{"disableShowNewBadge"===l.key&&e()},t=l=>{let{key:t}=l.detail;"disableShowNewBadge"===t&&e()};return window.addEventListener("storage",l),window.addEventListener(i.LOCAL_STORAGE_EVENT,t),()=>{window.removeEventListener("storage",l),window.removeEventListener(i.LOCAL_STORAGE_EVENT,t)}}function n(){return"true"===(0,i.getLocalStorageItem)("disableShowNewBadge")}function a({children:e,dot:i=!1}){return(0,s.useSyncExternalStore)(r,n)?e?(0,l.jsx)(l.Fragment,{children:e}):null:e?(0,l.jsx)(t.Badge,{color:"blue",count:i?void 0:"New",dot:i,children:e}):(0,l.jsx)(t.Badge,{color:"blue",count:i?void 0:"New",dot:i})}e.s(["default",()=>a],844444)},111672,e=>{"use strict";var l=e.i(843476),t=e.i(109799),s=e.i(135214),i=e.i(218129),r=e.i(477189),n=e.i(457202),a=e.i(299251),o=e.i(153702);e.i(247167);var c=e.i(931067),d=e.i(271645);let u={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z"}}]},name:"bg-colors",theme:"outlined"};var m=e.i(9583),p=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:u}))}),g=e.i(182399);let _={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z"}}]},name:"book",theme:"outlined"};var h=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:_}))});let x={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z"}}]},name:"credit-card",theme:"outlined"};var f=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:x}))}),y=e.i(210612),j=e.i(19732),S=e.i(993914),v=e.i(438957),b=e.i(777579),I=e.i(788191),C=e.i(983561),k=e.i(602073),w=e.i(928685),T=e.i(313603),O=e.i(232164),E=e.i(645526),N=e.i(366308),A=e.i(771674),F=e.i(592143),P=e.i(372943),M=e.i(899268),R=e.i(708347),U=e.i(297178),B=e.i(844444);let{Sider:L}=P.Layout,z=[{groupLabel:"AI GATEWAY",items:[{key:"api-keys",page:"api-keys",label:"Virtual Keys",icon:(0,l.jsx)(v.KeyOutlined,{})},{key:"llm-playground",page:"llm-playground",label:"Playground",icon:(0,l.jsx)(I.PlayCircleOutlined,{}),roles:R.rolesWithWriteAccess},{key:"models",page:"models",label:"Models + Endpoints",icon:(0,l.jsx)(g.BlockOutlined,{}),roles:R.rolesWithWriteAccess},{key:"agents",page:"agents",label:"Agents",icon:(0,l.jsx)(C.RobotOutlined,{}),roles:R.rolesWithWriteAccess},{key:"mcp-servers",page:"mcp-servers",label:"MCP Servers",icon:(0,l.jsx)(N.ToolOutlined,{})},{key:"guardrails",page:"guardrails",label:"Guardrails",icon:(0,l.jsx)(k.SafetyOutlined,{}),roles:R.all_admin_roles},{key:"policies",page:"policies",label:(0,l.jsx)("span",{className:"flex items-center gap-4",children:"Policies"}),icon:(0,l.jsx)(n.AuditOutlined,{}),roles:R.all_admin_roles},{key:"tools",page:"tools",label:"Tools",icon:(0,l.jsx)(N.ToolOutlined,{}),children:[{key:"search-tools",page:"search-tools",label:"Search Tools",icon:(0,l.jsx)(w.SearchOutlined,{})},{key:"vector-stores",page:"vector-stores",label:"Vector Stores",icon:(0,l.jsx)(y.DatabaseOutlined,{})}]}]},{groupLabel:"OBSERVABILITY",items:[{key:"new_usage",page:"new_usage",icon:(0,l.jsx)(o.BarChartOutlined,{}),roles:[...R.all_admin_roles,...R.internalUserRoles],label:"Usage"},{key:"logs",page:"logs",label:(0,l.jsxs)("span",{className:"flex items-center gap-4",children:["Logs ",(0,l.jsx)(B.default,{})]}),icon:(0,l.jsx)(b.LineChartOutlined,{})}]},{groupLabel:"ACCESS CONTROL",items:[{key:"users",page:"users",label:"Internal Users",icon:(0,l.jsx)(A.UserOutlined,{}),roles:R.all_admin_roles},{key:"teams",page:"teams",label:"Teams",icon:(0,l.jsx)(E.TeamOutlined,{})},{key:"organizations",page:"organizations",label:"Organizations",icon:(0,l.jsx)(a.BankOutlined,{}),roles:R.all_admin_roles},{key:"budgets",page:"budgets",label:"Budgets",icon:(0,l.jsx)(f,{}),roles:R.all_admin_roles}]},{groupLabel:"DEVELOPER TOOLS",items:[{key:"api_ref",page:"api_ref",label:"API Reference",icon:(0,l.jsx)(i.ApiOutlined,{})},{key:"model-hub-table",page:"model-hub-table",label:"AI Hub",icon:(0,l.jsx)(r.AppstoreOutlined,{})},{key:"learning-resources",page:"learning-resources",label:"Learning Resources",icon:(0,l.jsx)(h,{}),external_url:"https://models.litellm.ai/cookbook"},{key:"experimental",page:"experimental",label:"Experimental",icon:(0,l.jsx)(j.ExperimentOutlined,{}),children:[{key:"caching",page:"caching",label:"Caching",icon:(0,l.jsx)(y.DatabaseOutlined,{}),roles:R.all_admin_roles},{key:"prompts",page:"prompts",label:"Prompts",icon:(0,l.jsx)(S.FileTextOutlined,{}),roles:R.all_admin_roles},{key:"transform-request",page:"transform-request",label:"API Playground",icon:(0,l.jsx)(i.ApiOutlined,{}),roles:[...R.all_admin_roles,...R.internalUserRoles]},{key:"tag-management",page:"tag-management",label:"Tag Management",icon:(0,l.jsx)(O.TagsOutlined,{}),roles:R.all_admin_roles},{key:"claude-code-plugins",page:"claude-code-plugins",label:"Claude Code Plugins",icon:(0,l.jsx)(N.ToolOutlined,{}),roles:R.all_admin_roles},{key:"4",page:"usage",label:"Old Usage",icon:(0,l.jsx)(o.BarChartOutlined,{})}]}]},{groupLabel:"SETTINGS",roles:R.all_admin_roles,items:[{key:"settings",page:"settings",label:(0,l.jsx)("span",{className:"flex items-center gap-4",children:"Settings"}),icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles,children:[{key:"router-settings",page:"router-settings",label:"Router Settings",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"logging-and-alerts",page:"logging-and-alerts",label:"Logging & Alerts",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"admin-panel",page:"admin-panel",label:"Admin Settings",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"cost-tracking",page:"cost-tracking",label:"Cost Tracking",icon:(0,l.jsx)(o.BarChartOutlined,{}),roles:R.all_admin_roles},{key:"ui-theme",page:"ui-theme",label:"UI Theme",icon:(0,l.jsx)(p,{}),roles:R.all_admin_roles}]}]}];e.s(["default",0,({setPage:e,defaultSelectedKey:i,collapsed:r=!1,enabledPagesInternalUsers:n})=>{let a,{userId:o,accessToken:c,userRole:u}=(0,s.default)(),{data:m}=(0,t.useOrganizations)(),p=(0,d.useMemo)(()=>!!o&&!!m&&m.some(e=>e.members?.some(e=>e.user_id===o&&"org_admin"===e.user_role)),[o,m]),g=l=>{let t=new URLSearchParams(window.location.search);t.set("page",l),window.history.pushState(null,"",`?${t.toString()}`),e(l)},_=e=>{let l=(0,R.isAdminRole)(u);return null!=n&&console.log("[LeftNav] Filtering with enabled pages:",{userRole:u,isAdmin:l,enabledPagesInternalUsers:n}),e.map(e=>({...e,children:e.children?_(e.children):void 0})).filter(e=>{if("organizations"===e.key){if(!(!e.roles||e.roles.includes(u)||p))return!1;if(!l&&null!=n){let l=n.includes(e.page);return console.log(`[LeftNav] Page "${e.page}" (${e.key}): ${l?"VISIBLE":"HIDDEN"}`),l}return!0}if(e.roles&&!e.roles.includes(u))return!1;if(!l&&null!=n){if(e.children&&e.children.length>0&&e.children.some(e=>n.includes(e.page)))return console.log(`[LeftNav] Parent "${e.page}" (${e.key}): VISIBLE (has visible children)`),!0;let l=n.includes(e.page);return console.log(`[LeftNav] Page "${e.page}" (${e.key}): ${l?"VISIBLE":"HIDDEN"}`),l}return!0})},h=(e=>{for(let l of z)for(let t of l.items){if(t.page===e)return t.key;if(t.children){let l=t.children.find(l=>l.page===e);if(l)return l.key}}return"api-keys"})(i);return(0,l.jsx)(P.Layout,{children:(0,l.jsxs)(L,{theme:"light",width:220,collapsed:r,collapsedWidth:80,collapsible:!0,trigger:null,style:{transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",position:"relative"},children:[(0,l.jsx)(F.ConfigProvider,{theme:{components:{Menu:{iconSize:15,fontSize:13,itemMarginInline:4,itemPaddingInline:8,itemHeight:30,itemBorderRadius:6,subMenuItemBorderRadius:6,groupTitleFontSize:10,groupTitleLineHeight:1.5}}},children:(0,l.jsx)(M.Menu,{mode:"inline",selectedKeys:[h],defaultOpenKeys:[],inlineCollapsed:r,className:"custom-sidebar-menu",style:{borderRight:0,backgroundColor:"transparent",fontSize:"13px",paddingTop:"4px"},items:(a=[],z.forEach(e=>{if(e.roles&&!e.roles.includes(u))return;let t=_(e.items);0!==t.length&&a.push({type:"group",label:r?null:(0,l.jsx)("span",{style:{fontSize:"10px",fontWeight:600,color:"#6b7280",letterSpacing:"0.05em",padding:"12px 0 4px 12px",display:"block",marginBottom:"2px"},children:e.groupLabel}),children:t.map(e=>({key:e.key,icon:e.icon,label:e.label,children:e.children?.map(e=>({key:e.key,icon:e.icon,label:e.label,onClick:()=>{e.external_url?window.open(e.external_url,"_blank"):g(e.page)}})),onClick:e.children?void 0:()=>{e.external_url?window.open(e.external_url,"_blank"):g(e.page)}}))})}),a)})}),(0,R.isAdminRole)(u)&&!r&&(0,l.jsx)(U.default,{accessToken:c,width:220})]})})},"menuGroups",()=>z],111672)},461451,37329,100070,e=>{"use strict";var l=e.i(843476),t=e.i(271645),s=e.i(304967),i=e.i(629569),r=e.i(599724),n=e.i(350967),a=e.i(994388),o=e.i(366283),c=e.i(779241),d=e.i(114600),u=e.i(808613),m=e.i(764205),p=e.i(237016),g=e.i(596239),_=e.i(438957),h=e.i(166406),x=e.i(270377),f=e.i(475647),y=e.i(190702),j=e.i(727749);e.s(["default",0,({accessToken:e,userID:S,proxySettings:v})=>{let[b]=u.Form.useForm(),[I,C]=(0,t.useState)(!1),[k,w]=(0,t.useState)(null),[T,O]=(0,t.useState)("");(0,t.useEffect)(()=>{let e="";O(e=v&&v.PROXY_BASE_URL&&void 0!==v.PROXY_BASE_URL?v.PROXY_BASE_URL:window.location.origin)},[v]);let E=`${T}/scim/v2`,N=async l=>{if(!e||!S)return void j.default.fromBackend("You need to be logged in to create a SCIM token");try{C(!0);let t={key_alias:l.key_alias||"SCIM Access Token",team_id:null,models:[],allowed_routes:["/scim/*"]},s=await (0,m.keyCreateCall)(e,S,t);w(s),j.default.success("SCIM token created successfully")}catch(e){console.error("Error creating SCIM token:",e),j.default.fromBackend("Failed to create SCIM token: "+(0,y.parseErrorMessage)(e))}finally{C(!1)}};return(0,l.jsx)(n.Grid,{numItems:1,children:(0,l.jsxs)(s.Card,{children:[(0,l.jsx)("div",{className:"flex items-center mb-4",children:(0,l.jsx)(i.Title,{children:"SCIM Configuration"})}),(0,l.jsx)(r.Text,{className:"text-gray-600",children:"System for Cross-domain Identity Management (SCIM) allows you to automatically provision and manage users and groups in LiteLLM."}),(0,l.jsx)(d.Divider,{}),(0,l.jsxs)("div",{className:"space-y-8",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center mb-2",children:[(0,l.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-700 mr-2",children:"1"}),(0,l.jsxs)(i.Title,{className:"text-lg flex items-center",children:[(0,l.jsx)(g.LinkOutlined,{className:"h-5 w-5 mr-2"}),"SCIM Tenant URL"]})]}),(0,l.jsx)(r.Text,{className:"text-gray-600 mb-3",children:"Use this URL in your identity provider SCIM integration settings."}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(c.TextInput,{value:E,disabled:!0,className:"flex-grow"}),(0,l.jsx)(p.CopyToClipboard,{text:E,onCopy:()=>j.default.success("URL copied to clipboard"),children:(0,l.jsxs)(a.Button,{variant:"primary",className:"ml-2 flex items-center",children:[(0,l.jsx)(h.CopyOutlined,{className:"h-4 w-4 mr-1"}),"Copy"]})})]})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center mb-2",children:[(0,l.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-700 mr-2",children:"2"}),(0,l.jsxs)(i.Title,{className:"text-lg flex items-center",children:[(0,l.jsx)(_.KeyOutlined,{className:"h-5 w-5 mr-2"}),"Authentication Token"]})]}),(0,l.jsx)(o.Callout,{title:"Using SCIM",color:"blue",className:"mb-4",children:"You need a SCIM token to authenticate with the SCIM API. Create one below and use it in your SCIM provider configuration."}),k?(0,l.jsxs)(s.Card,{className:"border border-yellow-300 bg-yellow-50",children:[(0,l.jsxs)("div",{className:"flex items-center mb-2 text-yellow-800",children:[(0,l.jsx)(x.ExclamationCircleOutlined,{className:"h-5 w-5 mr-2"}),(0,l.jsx)(i.Title,{className:"text-lg text-yellow-800",children:"Your SCIM Token"})]}),(0,l.jsx)(r.Text,{className:"text-yellow-800 mb-4 font-medium",children:"Make sure to copy this token now. You will not be able to see it again."}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(c.TextInput,{value:k.key,className:"flex-grow mr-2 bg-white",type:"password",disabled:!0}),(0,l.jsx)(p.CopyToClipboard,{text:k.key,onCopy:()=>j.default.success("Token copied to clipboard"),children:(0,l.jsxs)(a.Button,{variant:"primary",className:"flex items-center",children:[(0,l.jsx)(h.CopyOutlined,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,l.jsxs)(a.Button,{className:"mt-4 flex items-center",variant:"secondary",onClick:()=>w(null),children:[(0,l.jsx)(f.PlusCircleOutlined,{className:"h-4 w-4 mr-1"}),"Create Another Token"]})]}):(0,l.jsx)("div",{className:"bg-gray-50 p-4 rounded-lg",children:(0,l.jsxs)(u.Form,{form:b,onFinish:N,layout:"vertical",children:[(0,l.jsx)(u.Form.Item,{name:"key_alias",label:"Token Name",rules:[{required:!0,message:"Please enter a name for your token"}],children:(0,l.jsx)(c.TextInput,{placeholder:"SCIM Access Token"})}),(0,l.jsx)(u.Form.Item,{children:(0,l.jsxs)(a.Button,{variant:"primary",type:"submit",loading:I,className:"flex items-center",children:[(0,l.jsx)(_.KeyOutlined,{className:"h-4 w-4 mr-1"}),"Create SCIM Token"]})})]})})]})]})]})})}],461451);var S=e.i(135214),v=e.i(266027),b=e.i(243652);let I=(0,b.createQueryKeys)("sso"),C=()=>{let{accessToken:e,userId:l,userRole:t}=(0,S.default)();return(0,v.useQuery)({queryKey:I.detail("settings"),queryFn:async()=>await (0,m.getSSOSettings)(e),enabled:!!(e&&l&&t)})};var k=e.i(464571),w=e.i(175712),T=e.i(869216),O=e.i(770914),E=e.i(262218),N=e.i(898586),A=e.i(688511),F=e.i(918549),F=F,P=e.i(727612);let M={google:"https://artificialanalysis.ai/img/logos/google_small.svg",microsoft:"https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg",okta:"https://www.okta.com/sites/default/files/Okta_Logo_BrightBlue_Medium.png",generic:""},R={google:"Google SSO",microsoft:"Microsoft SSO",okta:"Okta / Auth0 SSO",generic:"Generic SSO"},U={internal_user_viewer:"Internal Viewer",internal_user:"Internal User",proxy_admin_viewer:"Proxy Admin Viewer",proxy_admin:"Proxy Admin"};var B=e.i(212931),L=e.i(536916),z=e.i(311451),D=e.i(199133);let G={google:{envVarMap:{google_client_id:"GOOGLE_CLIENT_ID",google_client_secret:"GOOGLE_CLIENT_SECRET"},fields:[{label:"Google Client ID",name:"google_client_id"},{label:"Google Client Secret",name:"google_client_secret"}]},microsoft:{envVarMap:{microsoft_client_id:"MICROSOFT_CLIENT_ID",microsoft_client_secret:"MICROSOFT_CLIENT_SECRET",microsoft_tenant:"MICROSOFT_TENANT"},fields:[{label:"Microsoft Client ID",name:"microsoft_client_id"},{label:"Microsoft Client Secret",name:"microsoft_client_secret"},{label:"Microsoft Tenant",name:"microsoft_tenant"}]},okta:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint",placeholder:"https://your-domain/authorize"},{label:"Token Endpoint",name:"generic_token_endpoint",placeholder:"https://your-domain/token"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint",placeholder:"https://your-domain/userinfo"}]},generic:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint"},{label:"Token Endpoint",name:"generic_token_endpoint"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint"}]}},V=({form:e,onFormSubmit:t})=>(0,l.jsx)("div",{children:(0,l.jsxs)(u.Form,{form:e,onFinish:t,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,l.jsx)(u.Form.Item,{label:"SSO Provider",name:"sso_provider",rules:[{required:!0,message:"Please select an SSO provider"}],children:(0,l.jsx)(D.Select,{children:Object.entries(M).map(([e,t])=>(0,l.jsx)(D.Select.Option,{value:e,children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0"},children:[t&&(0,l.jsx)("img",{src:t,alt:e,style:{height:24,width:24,marginRight:12,objectFit:"contain"}}),(0,l.jsx)("span",{children:R[e]||e.charAt(0).toUpperCase()+e.slice(1)+" SSO"})]})},e))})}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t,s=e("sso_provider");return s&&(t=G[s])?t.fields.map(e=>(0,l.jsx)(u.Form.Item,{label:e.label,name:e.name,rules:[{required:!0,message:`Please enter the ${e.label.toLowerCase()}`}],children:e.name.includes("client")?(0,l.jsx)(z.Input.Password,{}):(0,l.jsx)(c.TextInput,{placeholder:e.placeholder})},e.name)):null}}),(0,l.jsx)(u.Form.Item,{label:"Proxy Admin Email",name:"user_email",rules:[{required:!0,message:"Please enter the email of the proxy admin"}],children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Proxy Base URL",name:"proxy_base_url",normalize:e=>e?.trim(),rules:[{required:!0,message:"Please enter the proxy base url"},{pattern:/^https?:\/\/.+/,message:"URL must start with http:// or https://"},{validator:(e,l)=>l&&/^https?:\/\/.+/.test(l)&&l.endsWith("/")?Promise.reject("URL must not end with a trailing slash"):Promise.resolve()}],children:(0,l.jsx)(c.TextInput,{placeholder:"https://example.com"})}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(u.Form.Item,{label:"Use Role Mappings",name:"use_role_mappings",valuePropName:"checked",children:(0,l.jsx)(L.Checkbox,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_role_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsx)(u.Form.Item,{label:"Group Claim",name:"group_claim",rules:[{required:!0,message:"Please enter the group claim"}],children:(0,l.jsx)(c.TextInput,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_role_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.Form.Item,{label:"Default Role",name:"default_role",initialValue:"Internal User",children:(0,l.jsxs)(D.Select,{children:[(0,l.jsx)(D.Select.Option,{value:"internal_user_viewer",children:"Internal Viewer"}),(0,l.jsx)(D.Select.Option,{value:"internal_user",children:"Internal User"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin_viewer",children:"Admin Viewer"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin",children:"Proxy Admin"})]})}),(0,l.jsx)(u.Form.Item,{label:"Proxy Admin Teams",name:"proxy_admin_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Admin Viewer Teams",name:"admin_viewer_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Internal User Teams",name:"internal_user_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Internal Viewer Teams",name:"internal_viewer_teams",children:(0,l.jsx)(c.TextInput,{})})]}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(u.Form.Item,{label:"Use Team Mappings",name:"use_team_mappings",valuePropName:"checked",children:(0,l.jsx)(L.Checkbox,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_team_mappings!==l.use_team_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_team_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsx)(u.Form.Item,{label:"Team IDs JWT Field",name:"team_ids_jwt_field",rules:[{required:!0,message:"Please enter the team IDs JWT field"}],children:(0,l.jsx)(c.TextInput,{})}):null}})]})});var q=e.i(954616);let H=()=>{let{accessToken:e}=(0,S.default)();return(0,q.useMutation)({mutationFn:async l=>{if(!e)throw Error("Access token is required");return await (0,m.updateSSOSettings)(e,l)}})},$=e=>{let{proxy_admin_teams:l,admin_viewer_teams:t,internal_user_teams:s,internal_viewer_teams:i,default_role:r,group_claim:n,use_role_mappings:a,use_team_mappings:o,team_ids_jwt_field:c,...d}=e,u={...d},m=d.sso_provider;if(a&&("okta"===m||"generic"===m)){let e=e=>e&&""!==e.trim()?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):[];u.role_mappings={provider:"generic",group_claim:n,default_role:({internal_user_viewer:"internal_user_viewer",internal_user:"internal_user",proxy_admin_viewer:"proxy_admin_viewer",proxy_admin:"proxy_admin"})[r]||"internal_user",roles:{proxy_admin:e(l),proxy_admin_viewer:e(t),internal_user:e(s),internal_user_viewer:e(i)}}}return o&&("okta"===m||"generic"===m)&&(u.team_mappings={team_ids_jwt_field:c}),u},W=e=>e.google_client_id?"google":e.microsoft_client_id?"microsoft":e.generic_client_id?e.generic_authorization_endpoint?.includes("okta")||e.generic_authorization_endpoint?.includes("auth0")?"okta":"generic":null,K=({isVisible:e,onCancel:t,onSuccess:s})=>{let[i]=u.Form.useForm(),{mutateAsync:r,isPending:n}=H(),a=async e=>{let l=$(e);await r(l,{onSuccess:()=>{j.default.success("SSO settings added successfully"),s()},onError:e=>{j.default.fromBackend("Failed to save SSO settings: "+(0,y.parseErrorMessage)(e))}})},o=()=>{i.resetFields(),t()};return(0,l.jsx)(B.Modal,{title:"Add SSO",open:e,width:800,footer:(0,l.jsxs)(O.Space,{children:[(0,l.jsx)(k.Button,{onClick:o,disabled:n,children:"Cancel"}),(0,l.jsx)(k.Button,{loading:n,onClick:()=>i.submit(),children:n?"Adding...":"Add SSO"})]}),onCancel:o,children:(0,l.jsx)(V,{form:i,onFormSubmit:a})})};var Y=e.i(127952);let J=({isVisible:e,onCancel:t,onSuccess:s})=>{let{data:i}=C(),{mutateAsync:r,isPending:n}=H(),a=async()=>{await r({google_client_id:null,google_client_secret:null,microsoft_client_id:null,microsoft_client_secret:null,microsoft_tenant:null,generic_client_id:null,generic_client_secret:null,generic_authorization_endpoint:null,generic_token_endpoint:null,generic_userinfo_endpoint:null,proxy_base_url:null,user_email:null,sso_provider:null,role_mappings:null,team_mappings:null},{onSuccess:()=>{j.default.success("SSO settings cleared successfully"),t(),s()},onError:e=>{j.default.fromBackend("Failed to clear SSO settings: "+(0,y.parseErrorMessage)(e))}})};return(0,l.jsx)(Y.default,{isOpen:e,title:"Confirm Clear SSO Settings",alertMessage:"This action cannot be undone.",message:"Are you sure you want to clear all SSO settings? Users will no longer be able to login using SSO after this change.",resourceInformationTitle:"SSO Settings",resourceInformation:[{label:"Provider",value:i?.values&&W(i?.values)||"Generic"}],onCancel:t,onOk:a,confirmLoading:n})},Q=({isVisible:e,onCancel:s,onSuccess:i})=>{let[r]=u.Form.useForm(),n=C(),{mutateAsync:a,isPending:o}=H();(0,t.useEffect)(()=>{if(e&&n.data&&n.data.values){let e=n.data;console.log("Raw SSO data received:",e),console.log("SSO values:",e.values),console.log("user_email from API:",e.values.user_email);let l=null;e.values.google_client_id?l="google":e.values.microsoft_client_id?l="microsoft":e.values.generic_client_id&&(l=e.values.generic_authorization_endpoint?.includes("okta")||e.values.generic_authorization_endpoint?.includes("auth0")?"okta":"generic");let t={};if(e.values.role_mappings){let l=e.values.role_mappings,s=e=>e&&0!==e.length?e.join(", "):"";t={use_role_mappings:!0,group_claim:l.group_claim,default_role:l.default_role||"internal_user",proxy_admin_teams:s(l.roles?.proxy_admin),admin_viewer_teams:s(l.roles?.proxy_admin_viewer),internal_user_teams:s(l.roles?.internal_user),internal_viewer_teams:s(l.roles?.internal_user_viewer)}}let s={};e.values.team_mappings&&(s={use_team_mappings:!0,team_ids_jwt_field:e.values.team_mappings.team_ids_jwt_field});let i={sso_provider:l,...e.values,...t,...s};console.log("Setting form values:",i),r.resetFields(),setTimeout(()=>{r.setFieldsValue(i),console.log("Form values set, current form values:",r.getFieldsValue())},100)}},[e,n.data,r]);let c=async e=>{try{let l=$(e);await a(l,{onSuccess:()=>{j.default.success("SSO settings updated successfully"),i()},onError:e=>{j.default.fromBackend("Failed to save SSO settings: "+(0,y.parseErrorMessage)(e))}})}catch(e){j.default.fromBackend("Failed to process SSO settings: "+(0,y.parseErrorMessage)(e))}},d=()=>{r.resetFields(),s()};return(0,l.jsx)(B.Modal,{title:"Edit SSO Settings",open:e,width:800,footer:(0,l.jsxs)(O.Space,{children:[(0,l.jsx)(k.Button,{onClick:d,disabled:o,children:"Cancel"}),(0,l.jsx)(k.Button,{loading:o,onClick:()=>r.submit(),children:o?"Saving...":"Save"})]}),onCancel:d,children:(0,l.jsx)(V,{form:r,onFormSubmit:c})})};var Z=e.i(286536),X=e.i(77705);function ee({defaultHidden:e=!0,value:s}){let[i,r]=(0,t.useState)(e);return(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"font-mono text-gray-600 flex-1",children:s?i?"•".repeat(s.length):s:(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"})}),s&&(0,l.jsx)(k.Button,{type:"text",size:"small",icon:i?(0,l.jsx)(Z.Eye,{className:"w-4 h-4"}):(0,l.jsx)(X.EyeOff,{className:"w-4 h-4"}),onClick:()=>r(!i),className:"text-gray-400 hover:text-gray-600"})]})}var el=e.i(312361),et=e.i(291542),es=e.i(761911);let{Title:ei,Text:er}=N.Typography;function en({roleMappings:e}){if(!e)return null;let t=[{title:"Role",dataIndex:"role",key:"role",render:e=>(0,l.jsx)(er,{strong:!0,children:U[e]})},{title:"Mapped Groups",dataIndex:"groups",key:"groups",render:e=>(0,l.jsx)(l.Fragment,{children:e.length>0?e.map((e,t)=>(0,l.jsx)(E.Tag,{color:"blue",children:e},t)):(0,l.jsx)(er,{className:"text-gray-400 italic",children:"No groups mapped"})})}];return(0,l.jsxs)(w.Card,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(es.Users,{className:"w-6 h-6 text-gray-400 mb-2"}),(0,l.jsx)(ei,{level:3,children:"Role Mappings"})]}),(0,l.jsxs)("div",{className:"space-y-8",children:[(0,l.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)(ei,{level:5,children:"Group Claim"}),(0,l.jsx)("div",{children:(0,l.jsx)(er,{code:!0,children:e.group_claim})})]}),(0,l.jsxs)("div",{children:[(0,l.jsx)(ei,{level:5,children:"Default Role"}),(0,l.jsx)("div",{children:(0,l.jsx)(er,{strong:!0,children:U[e.default_role]})})]})]}),(0,l.jsx)(el.Divider,{}),(0,l.jsx)(et.Table,{columns:t,dataSource:Object.entries(e.roles).map(([e,l])=>({role:e,groups:l})),pagination:!1,bordered:!0,size:"small",className:"w-full"})]})]})}var ea=e.i(21548);let{Title:eo,Paragraph:ec}=N.Typography;function ed({onAdd:e}){return(0,l.jsx)("div",{className:"bg-white p-12 rounded-lg border border-dashed border-gray-300 text-center w-full",children:(0,l.jsx)(ea.Empty,{image:ea.Empty.PRESENTED_IMAGE_SIMPLE,description:(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(eo,{level:4,children:"No SSO Configuration Found"}),(0,l.jsx)(ec,{type:"secondary",className:"max-w-md mx-auto",children:"Configure Single Sign-On (SSO) to enable seamless authentication for your team members using your identity provider."})]}),children:(0,l.jsx)(k.Button,{type:"primary",size:"large",onClick:e,className:"flex items-center gap-2 mx-auto mt-4",children:"Configure SSO"})})})}var eu=e.i(981339),F=F;let{Title:em,Text:ep}=N.Typography;function eg(){return(0,l.jsx)(w.Card,{children:(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(F.default,{className:"w-6 h-6 text-gray-400"}),(0,l.jsxs)("div",{children:[(0,l.jsx)(em,{level:3,children:"SSO Configuration"}),(0,l.jsx)(ep,{type:"secondary",children:"Manage Single Sign-On authentication settings"})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(eu.Skeleton.Button,{active:!0,size:"default",style:{width:170,height:32}}),(0,l.jsx)(eu.Skeleton.Button,{active:!0,size:"default",style:{width:190,height:32}})]})]}),(0,l.jsxs)(T.Descriptions,{bordered:!0,...{column:{xxl:1,xl:1,lg:1,md:1,sm:1,xs:1}},children:[(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:100,height:16}})})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:200,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:250,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:180,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:220,height:16}})})]})]})})}let{Title:e_,Text:eh}=N.Typography;function ex(){let{data:e,refetch:s,isLoading:i}=C(),[r,n]=(0,t.useState)(!1),[a,o]=(0,t.useState)(!1),[c,d]=(0,t.useState)(!1),u=!!e?.values.google_client_id||!!e?.values.microsoft_client_id||!!e?.values.generic_client_id,m=e?.values?W(e.values):null,p=!!e?.values.role_mappings,g=!!e?.values.team_mappings,_=e=>(0,l.jsx)(eh,{className:"font-mono text-gray-600 text-sm",copyable:!!e,children:e||"-"}),h=e=>e||(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"}),x=e=>e.team_mappings?.team_ids_jwt_field?(0,l.jsx)(E.Tag,{children:e.team_mappings.team_ids_jwt_field}):(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"}),f={column:{xxl:1,xl:1,lg:1,md:1,sm:1,xs:1}},y={google:{providerText:R.google,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.google_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.google_client_secret})},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)}]},microsoft:{providerText:R.microsoft,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.microsoft_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.microsoft_client_secret})},{label:"Tenant",render:e=>h(e.microsoft_tenant)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)}]},okta:{providerText:R.okta,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.generic_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.generic_client_secret})},{label:"Authorization Endpoint",render:e=>_(e.generic_authorization_endpoint)},{label:"Token Endpoint",render:e=>_(e.generic_token_endpoint)},{label:"User Info Endpoint",render:e=>_(e.generic_userinfo_endpoint)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)},g?{label:"Team IDs JWT Field",render:e=>x(e)}:null]},generic:{providerText:R.generic,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.generic_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.generic_client_secret})},{label:"Authorization Endpoint",render:e=>_(e.generic_authorization_endpoint)},{label:"Token Endpoint",render:e=>_(e.generic_token_endpoint)},{label:"User Info Endpoint",render:e=>_(e.generic_userinfo_endpoint)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)},g?{label:"Team IDs JWT Field",render:e=>x(e)}:null]}};return(0,l.jsxs)(l.Fragment,{children:[i?(0,l.jsx)(eg,{}):(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsx)(w.Card,{children:(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(F.default,{className:"w-6 h-6 text-gray-400"}),(0,l.jsxs)("div",{children:[(0,l.jsx)(e_,{level:3,children:"SSO Configuration"}),(0,l.jsx)(eh,{type:"secondary",children:"Manage Single Sign-On authentication settings"})]})]}),(0,l.jsx)("div",{className:"flex items-center gap-3",children:u&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k.Button,{icon:(0,l.jsx)(A.Edit,{className:"w-4 h-4"}),onClick:()=>d(!0),children:"Edit SSO Settings"}),(0,l.jsx)(k.Button,{danger:!0,icon:(0,l.jsx)(P.Trash2,{className:"w-4 h-4"}),onClick:()=>n(!0),children:"Delete SSO Settings"})]})})]}),u?(()=>{if(!e?.values||!m)return null;let{values:t}=e,s=y[m];return s?(0,l.jsxs)(T.Descriptions,{bordered:!0,...f,children:[(0,l.jsx)(T.Descriptions.Item,{label:"Provider",children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[M[m]&&(0,l.jsx)("img",{src:M[m],alt:m,style:{height:24,width:24,objectFit:"contain"}}),(0,l.jsx)("span",{children:s.providerText})]})}),s.fields.map((e,s)=>e&&(0,l.jsx)(T.Descriptions.Item,{label:e.label,children:e.render(t)},s))]}):null})():(0,l.jsx)(ed,{onAdd:()=>o(!0)})]})}),p&&(0,l.jsx)(en,{roleMappings:e?.values.role_mappings})]}),(0,l.jsx)(J,{isVisible:r,onCancel:()=>n(!1),onSuccess:()=>s()}),(0,l.jsx)(K,{isVisible:a,onCancel:()=>o(!1),onSuccess:()=>{o(!1),s()}}),(0,l.jsx)(Q,{isVisible:c,onCancel:()=>d(!1),onSuccess:()=>{d(!1),s()}})]})}e.s(["default",()=>ex],37329);var ef=e.i(912598);let ey=(0,b.createQueryKeys)("uiSettings");e.s(["useUpdateUISettings",0,e=>{let l=(0,ef.useQueryClient)();return(0,q.useMutation)({mutationFn:async l=>{if(!e)throw Error("Access token is required");return(0,m.updateUiSettings)(e,l)},onSuccess:()=>{l.invalidateQueries({queryKey:ey.all})}})}],100070)},105278,e=>{"use strict";var l=e.i(843476),t=e.i(135214),s=e.i(994388),i=e.i(366283),r=e.i(304967),n=e.i(269200),a=e.i(942232),o=e.i(977572),c=e.i(427612),d=e.i(64848),u=e.i(496020),m=e.i(560445),p=e.i(464571),g=e.i(808613),_=e.i(311451),h=e.i(212931),x=e.i(653496),f=e.i(898586),y=e.i(271645),j=e.i(700514),S=e.i(727749),v=e.i(764205),b=e.i(461451),I=e.i(37329),C=e.i(292639),k=e.i(100070),w=e.i(111672);let T={"api-keys":"Manage virtual keys for API access and authentication","llm-playground":"Interactive playground for testing LLM requests",models:"Configure and manage LLM models and endpoints",agents:"Create and manage AI agents","mcp-servers":"Configure Model Context Protocol servers",guardrails:"Set up content moderation and safety guardrails",policies:"Define access control and usage policies","search-tools":"Configure RAG search and retrieval tools","vector-stores":"Manage vector databases for embeddings",new_usage:"View usage analytics and metrics",logs:"Access request and response logs",users:"Manage internal user accounts and permissions",teams:"Create and manage teams for access control",organizations:"Manage organizations and their members",budgets:"Set and monitor spending budgets",api_ref:"Browse API documentation and endpoints","model-hub-table":"Explore available AI models and providers","learning-resources":"Access tutorials and documentation",caching:"Configure response caching settings","transform-request":"Set up request transformation rules","cost-tracking":"Track and analyze API costs","ui-theme":"Customize dashboard appearance","tag-management":"Organize resources with tags",prompts:"Manage and version prompt templates","claude-code-plugins":"Configure Claude Code plugins",usage:"View legacy usage dashboard","router-settings":"Configure routing and load balancing settings","logging-and-alerts":"Set up logging and alert configurations","admin-panel":"Access admin panel and settings"};var O=e.i(708347);let E=e=>!e||0===e.length||e.some(e=>O.internalUserRoles.includes(e));var N=e.i(536916),A=e.i(362024),F=e.i(770914),P=e.i(262218);function M({enabledPagesInternalUsers:e,enabledPagesPropertyDescription:t,isUpdating:s,onUpdate:i}){let r=null!=e,n=(0,y.useMemo)(()=>{let e;return e=[],w.menuGroups.forEach(l=>{l.items.forEach(t=>{if(t.page&&"tools"!==t.page&&"experimental"!==t.page&&"settings"!==t.page&&E(t.roles)){let s="string"==typeof t.label?t.label:t.key;e.push({page:t.page,label:s,group:l.groupLabel,description:T[t.page]||"No description available"})}if(t.children){let s="string"==typeof t.label?t.label:t.key;t.children.forEach(t=>{if(E(t.roles)){let i="string"==typeof t.label?t.label:t.key;e.push({page:t.page,label:i,group:`${l.groupLabel} > ${s}`,description:T[t.page]||"No description available"})}})}})}),e},[]),a=(0,y.useMemo)(()=>{let e={};return n.forEach(l=>{e[l.group]||(e[l.group]=[]),e[l.group].push(l)}),e},[n]),[o,c]=(0,y.useState)(e||[]);return(0,y.useMemo)(()=>{e?c(e):c([])},[e]),(0,l.jsxs)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsxs)(F.Space,{align:"center",children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Internal User Page Visibility"}),!r&&(0,l.jsx)(P.Tag,{color:"default",style:{marginLeft:"8px"},children:"Not set (all pages visible)"}),r&&(0,l.jsxs)(P.Tag,{color:"blue",style:{marginLeft:"8px"},children:[o.length," page",1!==o.length?"s":""," selected"]})]}),t&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:t}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px",fontStyle:"italic"},children:"By default, all pages are visible to internal users. Select specific pages to restrict visibility."}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px",color:"#8b5cf6"},children:"Note: Only pages accessible to internal user roles are shown here. Admin-only pages are excluded as they cannot be made visible to internal users regardless of this setting."})]}),(0,l.jsx)(A.Collapse,{items:[{key:"page-visibility",label:"Configure Page Visibility",children:(0,l.jsxs)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,l.jsx)(N.Checkbox.Group,{value:o,onChange:c,style:{width:"100%"},children:(0,l.jsx)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:Object.entries(a).map(([e,t])=>(0,l.jsxs)("div",{children:[(0,l.jsx)(f.Typography.Text,{strong:!0,style:{fontSize:"11px",color:"#6b7280",letterSpacing:"0.05em",display:"block",marginBottom:"8px"},children:e}),(0,l.jsx)(F.Space,{direction:"vertical",size:"small",style:{marginLeft:"16px",width:"100%"},children:t.map(e=>(0,l.jsx)("div",{style:{marginBottom:"4px"},children:(0,l.jsx)(N.Checkbox,{value:e.page,children:(0,l.jsxs)(F.Space,{direction:"vertical",size:0,children:[(0,l.jsx)(f.Typography.Text,{children:e.label}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px"},children:e.description})]})})},e.page))})]},e))})}),(0,l.jsxs)(F.Space,{children:[(0,l.jsx)(p.Button,{type:"primary",onClick:()=>{i({enabled_ui_pages_internal_users:o.length>0?o:null})},loading:s,disabled:s,children:"Save Page Visibility Settings"}),r&&(0,l.jsx)(p.Button,{onClick:()=>{c([]),i({enabled_ui_pages_internal_users:null})},loading:s,disabled:s,children:"Reset to Default (All Pages)"})]})]})}]})]})}var R=e.i(175712),U=e.i(312361),B=e.i(981339),L=e.i(790848);function z(){let{accessToken:e}=(0,t.default)(),{data:s,isLoading:i,isError:r,error:n}=(0,C.useUISettings)(),{mutate:a,isPending:o,error:c}=(0,k.useUpdateUISettings)(e),d=s?.field_schema,u=d?.properties?.disable_model_add_for_internal_users,p=d?.properties?.disable_team_admin_delete_team_user,g=d?.properties?.require_auth_for_public_ai_hub,_=d?.properties?.enabled_ui_pages_internal_users,h=s?.values??{},x=!!h.disable_model_add_for_internal_users,y=!!h.disable_team_admin_delete_team_user;return(0,l.jsx)(R.Card,{title:"UI Settings",children:i?(0,l.jsx)(B.Skeleton,{active:!0}):r?(0,l.jsx)(m.Alert,{type:"error",message:"Could not load UI settings",description:n instanceof Error?n.message:void 0}):(0,l.jsxs)(F.Space,{direction:"vertical",size:"large",style:{width:"100%"},children:[d?.description&&(0,l.jsx)(f.Typography.Paragraph,{style:{marginBottom:0},children:d.description}),c&&(0,l.jsx)(m.Alert,{type:"error",message:"Could not update UI settings",description:c instanceof Error?c.message:void 0}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:x,disabled:o,loading:o,onChange:e=>{a({disable_model_add_for_internal_users:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":u?.description??"Disable model add for internal users"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Disable model add for internal users"}),u?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:u.description})]})]}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:y,disabled:o,loading:o,onChange:e=>{a({disable_team_admin_delete_team_user:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":p?.description??"Disable team admin delete team user"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Disable team admin delete team user"}),p?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:p.description})]})]}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:h.require_auth_for_public_ai_hub,disabled:o,loading:o,onChange:e=>{a({require_auth_for_public_ai_hub:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":g?.description??"Require authentication for public AI Hub"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Require authentication for public AI Hub"}),g?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:g.description})]})]}),(0,l.jsx)(U.Divider,{}),(0,l.jsx)(M,{enabledPagesInternalUsers:h.enabled_ui_pages_internal_users,enabledPagesPropertyDescription:_?.description,isUpdating:o,onUpdate:e=>{a(e,{onSuccess:()=>{S.default.success("Page visibility settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})}})]})})}var D=e.i(199133),G=e.i(599724),V=e.i(779241),q=e.i(190702);let H={google:"https://artificialanalysis.ai/img/logos/google_small.svg",microsoft:"https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg",okta:"https://www.okta.com/sites/default/files/Okta_Logo_BrightBlue_Medium.png",generic:""},$={google:{envVarMap:{google_client_id:"GOOGLE_CLIENT_ID",google_client_secret:"GOOGLE_CLIENT_SECRET"},fields:[{label:"Google Client ID",name:"google_client_id"},{label:"Google Client Secret",name:"google_client_secret"}]},microsoft:{envVarMap:{microsoft_client_id:"MICROSOFT_CLIENT_ID",microsoft_client_secret:"MICROSOFT_CLIENT_SECRET",microsoft_tenant:"MICROSOFT_TENANT"},fields:[{label:"Microsoft Client ID",name:"microsoft_client_id"},{label:"Microsoft Client Secret",name:"microsoft_client_secret"},{label:"Microsoft Tenant",name:"microsoft_tenant"}]},okta:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint",placeholder:"https://your-domain/authorize"},{label:"Token Endpoint",name:"generic_token_endpoint",placeholder:"https://your-domain/token"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint",placeholder:"https://your-domain/userinfo"}]},generic:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint"},{label:"Token Endpoint",name:"generic_token_endpoint"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint"}]}},W=({isAddSSOModalVisible:e,isInstructionsModalVisible:t,handleAddSSOOk:s,handleAddSSOCancel:i,handleShowInstructions:r,handleInstructionsOk:n,handleInstructionsCancel:a,form:o,accessToken:c,ssoConfigured:d=!1})=>{let[u,m]=(0,y.useState)(!1);(0,y.useEffect)(()=>{(async()=>{if(e&&c)try{let e=await (0,v.getSSOSettings)(c);if(console.log("Raw SSO data received:",e),e&&e.values){console.log("SSO values:",e.values),console.log("user_email from API:",e.values.user_email);let l=null;e.values.google_client_id?l="google":e.values.microsoft_client_id?l="microsoft":e.values.generic_client_id&&(l=e.values.generic_authorization_endpoint?.includes("okta")||e.values.generic_authorization_endpoint?.includes("auth0")?"okta":"generic");let t={};if(e.values.role_mappings){let l=e.values.role_mappings,s=e=>e&&0!==e.length?e.join(", "):"";t={use_role_mappings:!0,group_claim:l.group_claim,default_role:l.default_role||"internal_user",proxy_admin_teams:s(l.roles?.proxy_admin),admin_viewer_teams:s(l.roles?.proxy_admin_viewer),internal_user_teams:s(l.roles?.internal_user),internal_viewer_teams:s(l.roles?.internal_user_viewer)}}let s={sso_provider:l,proxy_base_url:e.values.proxy_base_url,user_email:e.values.user_email,...e.values,...t};console.log("Setting form values:",s),o.resetFields(),setTimeout(()=>{o.setFieldsValue(s),console.log("Form values set, current form values:",o.getFieldsValue())},100)}}catch(e){console.error("Failed to load SSO settings:",e)}})()},[e,c,o]);let x=async e=>{if(!c)return void S.default.fromBackend("No access token available");try{let{proxy_admin_teams:l,admin_viewer_teams:t,internal_user_teams:s,internal_viewer_teams:i,default_role:n,group_claim:a,use_role_mappings:o,...d}=e,u={...d};if(o){let e=e=>e&&""!==e.trim()?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):[];u.role_mappings={provider:"generic",group_claim:a,default_role:({internal_user_viewer:"internal_user_viewer",internal_user:"internal_user",proxy_admin_viewer:"proxy_admin_viewer",proxy_admin:"proxy_admin"})[n]||"internal_user",roles:{proxy_admin:e(l),proxy_admin_viewer:e(t),internal_user:e(s),internal_user_viewer:e(i)}}}await (0,v.updateSSOSettings)(c,u),r(e)}catch(e){S.default.fromBackend("Failed to save SSO settings: "+(0,q.parseErrorMessage)(e))}},f=async()=>{if(!c)return void S.default.fromBackend("No access token available");try{await (0,v.updateSSOSettings)(c,{google_client_id:null,google_client_secret:null,microsoft_client_id:null,microsoft_client_secret:null,microsoft_tenant:null,generic_client_id:null,generic_client_secret:null,generic_authorization_endpoint:null,generic_token_endpoint:null,generic_userinfo_endpoint:null,proxy_base_url:null,user_email:null,sso_provider:null,role_mappings:null}),o.resetFields(),m(!1),s(),S.default.success("SSO settings cleared successfully")}catch(e){console.error("Failed to clear SSO settings:",e),S.default.fromBackend("Failed to clear SSO settings")}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(h.Modal,{title:d?"Edit SSO Settings":"Add SSO",open:e,width:800,footer:null,onOk:s,onCancel:i,children:(0,l.jsxs)(g.Form,{form:o,onFinish:x,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.Form.Item,{label:"SSO Provider",name:"sso_provider",rules:[{required:!0,message:"Please select an SSO provider"}],children:(0,l.jsx)(D.Select,{children:Object.entries(H).map(([e,t])=>(0,l.jsx)(D.Select.Option,{value:e,children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0"},children:[t&&(0,l.jsx)("img",{src:t,alt:e,style:{height:24,width:24,marginRight:12,objectFit:"contain"}}),(0,l.jsxs)("span",{children:["okta"===e.toLowerCase()?"Okta / Auth0":e.charAt(0).toUpperCase()+e.slice(1)," ","SSO"]})]})},e))})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t,s=e("sso_provider");return s&&(t=$[s])?t.fields.map(e=>(0,l.jsx)(g.Form.Item,{label:e.label,name:e.name,rules:[{required:!0,message:`Please enter the ${e.label.toLowerCase()}`}],children:e.name.includes("client")?(0,l.jsx)(_.Input.Password,{}):(0,l.jsx)(V.TextInput,{placeholder:e.placeholder})},e.name)):null}}),(0,l.jsx)(g.Form.Item,{label:"Proxy Admin Email",name:"user_email",rules:[{required:!0,message:"Please enter the email of the proxy admin"}],children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Proxy Base URL",name:"proxy_base_url",normalize:e=>e?.trim(),rules:[{required:!0,message:"Please enter the proxy base url"},{pattern:/^https?:\/\/.+/,message:"URL must start with http:// or https://"},{validator:(e,l)=>l&&/^https?:\/\/.+/.test(l)&&l.endsWith("/")?Promise.reject("URL must not end with a trailing slash"):Promise.resolve()}],children:(0,l.jsx)(V.TextInput,{placeholder:"https://example.com"})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(g.Form.Item,{label:"Use Role Mappings",name:"use_role_mappings",valuePropName:"checked",children:(0,l.jsx)(N.Checkbox,{})}):null}}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings,children:({getFieldValue:e})=>e("use_role_mappings")?(0,l.jsx)(g.Form.Item,{label:"Group Claim",name:"group_claim",rules:[{required:!0,message:"Please enter the group claim"}],children:(0,l.jsx)(V.TextInput,{})}):null}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings,children:({getFieldValue:e})=>e("use_role_mappings")?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.Form.Item,{label:"Default Role",name:"default_role",initialValue:"Internal User",children:(0,l.jsxs)(D.Select,{children:[(0,l.jsx)(D.Select.Option,{value:"internal_user_viewer",children:"Internal Viewer"}),(0,l.jsx)(D.Select.Option,{value:"internal_user",children:"Internal User"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin_viewer",children:"Admin Viewer"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin",children:"Proxy Admin"})]})}),(0,l.jsx)(g.Form.Item,{label:"Proxy Admin Teams",name:"proxy_admin_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Admin Viewer Teams",name:"admin_viewer_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Internal User Teams",name:"internal_user_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Internal Viewer Teams",name:"internal_viewer_teams",children:(0,l.jsx)(V.TextInput,{})})]}):null})]}),(0,l.jsxs)("div",{style:{textAlign:"right",marginTop:"10px",display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"8px"},children:[d&&(0,l.jsx)(p.Button,{onClick:()=>m(!0),style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#5558eb",e.currentTarget.style.borderColor="#5558eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1",e.currentTarget.style.borderColor="#6366f1"},children:"Clear"}),(0,l.jsx)(p.Button,{htmlType:"submit",children:"Save"})]})]})}),(0,l.jsxs)(h.Modal,{title:"Confirm Clear SSO Settings",open:u,onOk:f,onCancel:()=>m(!1),okText:"Yes, Clear",cancelText:"Cancel",okButtonProps:{danger:!0,style:{backgroundColor:"#dc2626",borderColor:"#dc2626"}},children:[(0,l.jsx)("p",{children:"Are you sure you want to clear all SSO settings? This action cannot be undone."}),(0,l.jsx)("p",{children:"Users will no longer be able to login using SSO after this change."})]}),(0,l.jsxs)(h.Modal,{title:"SSO Setup Instructions",open:t,width:800,footer:null,onOk:n,onCancel:a,children:[(0,l.jsx)("p",{children:"Follow these steps to complete the SSO setup:"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"1. DO NOT Exit this TAB"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"2. Open a new tab, visit your proxy base url"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"3. Confirm your SSO is configured correctly and you can login on the new Tab"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"4. If Step 3 is successful, you can close this tab"}),(0,l.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,l.jsx)(p.Button,{onClick:n,children:"Done"})})]})]})},K=({accessToken:e,onSuccess:t})=>{let[s]=g.Form.useForm(),[i,r]=(0,y.useState)(!1);(0,y.useEffect)(()=>{(async()=>{if(e)try{let l=await (0,v.getSSOSettings)(e);if(l&&l.values){let e=l.values.ui_access_mode,t={};e&&"object"==typeof e?t={ui_access_mode_type:e.type,restricted_sso_group:e.restricted_sso_group,sso_group_jwt_field:e.sso_group_jwt_field}:"string"==typeof e&&(t={ui_access_mode_type:e,restricted_sso_group:l.values.restricted_sso_group,sso_group_jwt_field:l.values.team_ids_jwt_field||l.values.sso_group_jwt_field}),s.setFieldsValue(t)}}catch(e){console.error("Failed to load UI access settings:",e)}})()},[e,s]);let n=async l=>{if(!e)return void S.default.fromBackend("No access token available");r(!0);try{let s;s="all_authenticated_users"===l.ui_access_mode_type?{ui_access_mode:"none"}:{ui_access_mode:{type:l.ui_access_mode_type,restricted_sso_group:l.restricted_sso_group,sso_group_jwt_field:l.sso_group_jwt_field}},await (0,v.updateSSOSettings)(e,s),t()}catch(e){console.error("Failed to save UI access settings:",e),S.default.fromBackend("Failed to save UI access settings")}finally{r(!1)}};return(0,l.jsxs)("div",{style:{padding:"16px"},children:[(0,l.jsx)("div",{style:{marginBottom:"16px"},children:(0,l.jsx)(G.Text,{style:{fontSize:"14px",color:"#6b7280"},children:"Configure who can access the UI interface and how group information is extracted from JWT tokens."})}),(0,l.jsxs)(g.Form,{form:s,onFinish:n,layout:"vertical",children:[(0,l.jsx)(g.Form.Item,{label:"UI Access Mode",name:"ui_access_mode_type",tooltip:"Controls who can access the UI interface",children:(0,l.jsxs)(D.Select,{placeholder:"Select access mode",children:[(0,l.jsx)(D.Select.Option,{value:"all_authenticated_users",children:"All Authenticated Users"}),(0,l.jsx)(D.Select.Option,{value:"restricted_sso_group",children:"Restricted SSO Group"})]})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.ui_access_mode_type!==l.ui_access_mode_type,children:({getFieldValue:e})=>"restricted_sso_group"===e("ui_access_mode_type")?(0,l.jsx)(g.Form.Item,{label:"Restricted SSO Group",name:"restricted_sso_group",rules:[{required:!0,message:"Please enter the restricted SSO group"}],children:(0,l.jsx)(V.TextInput,{placeholder:"ui-access-group"})}):null}),(0,l.jsx)(g.Form.Item,{label:"SSO Group JWT Field",name:"sso_group_jwt_field",tooltip:"JWT field name that contains team/group information. Use dot notation to access nested fields.",children:(0,l.jsx)(V.TextInput,{placeholder:"groups"})}),(0,l.jsx)("div",{style:{textAlign:"right",marginTop:"16px"},children:(0,l.jsx)(p.Button,{type:"primary",htmlType:"submit",loading:i,style:{backgroundColor:"#6366f1",borderColor:"#6366f1"},children:"Update UI Access Control"})})]})]})},{Title:Y,Paragraph:J,Text:Q}=f.Typography;e.s(["default",0,({proxySettings:e})=>{let{premiumUser:f,accessToken:C,userId:k}=(0,t.default)(),[w]=g.Form.useForm(),[T,O]=(0,y.useState)(!1),[E,N]=(0,y.useState)(!1),[A,F]=(0,y.useState)(!1),[P,M]=(0,y.useState)(!1),[R,U]=(0,y.useState)(!1),[B,L]=(0,y.useState)(!1),[D,G]=(0,y.useState)([]),[V,q]=(0,y.useState)(null),[H,$]=(0,y.useState)(!1),Z=(0,j.useBaseUrl)(),X="All IP Addresses Allowed",ee=Z;ee+="/fallback/login";let el=async()=>{if(C)try{let e=await (0,v.getSSOSettings)(C);if(e&&e.values){let l=e.values.google_client_id&&e.values.google_client_secret,t=e.values.microsoft_client_id&&e.values.microsoft_client_secret,s=e.values.generic_client_id&&e.values.generic_client_secret;$(l||t||s)}else $(!1)}catch(e){console.error("Error checking SSO configuration:",e),$(!1)}},et=async()=>{try{if(!0!==f)return void S.default.fromBackend("This feature is only available for premium users. Please upgrade your account.");if(C){let e=await (0,v.getAllowedIPs)(C);G(e&&e.length>0?e:[X])}else G([X])}catch(e){console.error("Error fetching allowed IPs:",e),S.default.fromBackend(`Failed to fetch allowed IPs ${e}`),G([X])}finally{!0===f&&F(!0)}},es=async e=>{try{if(C){await (0,v.addAllowedIP)(C,e.ip);let l=await (0,v.getAllowedIPs)(C);G(l),S.default.success("IP address added successfully")}}catch(e){console.error("Error adding IP:",e),S.default.fromBackend(`Failed to add IP address ${e}`)}finally{M(!1)}},ei=async e=>{q(e),U(!0)},er=async()=>{if(V&&C)try{await (0,v.deleteAllowedIP)(C,V);let e=await (0,v.getAllowedIPs)(C);G(e.length>0?e:[X]),S.default.success("IP address deleted successfully")}catch(e){console.error("Error deleting IP:",e),S.default.fromBackend(`Failed to delete IP address ${e}`)}finally{U(!1),q(null)}};(0,y.useEffect)(()=>{el()},[C,f,el]);let en=()=>{L(!1)},ea=[{key:"sso-settings",label:"SSO Settings",children:(0,l.jsx)(I.default,{})},{key:"security-settings",label:"Security Settings",children:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(r.Card,{children:[(0,l.jsx)(Y,{level:4,children:" ✨ Security Settings"}),(0,l.jsx)(m.Alert,{message:"SSO Configuration Deprecated",description:"Editing SSO Settings on this page is deprecated and will be removed in a future version. Please use the SSO Settings tab for SSO configuration.",type:"warning",showIcon:!0}),(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem",marginLeft:"0.5rem"},children:[(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:()=>O(!0),children:H?"Edit SSO Settings":"Add SSO"})}),(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:et,children:"Allowed IPs"})}),(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:()=>!0===f?L(!0):S.default.fromBackend("Only premium users can configure UI access control"),children:"UI Access Control"})})]})]}),(0,l.jsxs)("div",{className:"flex justify-start mb-4",children:[(0,l.jsx)(W,{isAddSSOModalVisible:T,isInstructionsModalVisible:E,handleAddSSOOk:()=>{O(!1),w.resetFields(),C&&f&&el()},handleAddSSOCancel:()=>{O(!1),w.resetFields()},handleShowInstructions:e=>{O(!1),N(!0)},handleInstructionsOk:()=>{N(!1),C&&f&&el()},handleInstructionsCancel:()=>{N(!1),C&&f&&el()},form:w,accessToken:C,ssoConfigured:H}),(0,l.jsx)(h.Modal,{title:"Manage Allowed IP Addresses",width:800,open:A,onCancel:()=>F(!1),footer:[(0,l.jsx)(s.Button,{className:"mx-1",onClick:()=>M(!0),children:"Add IP Address"},"add"),(0,l.jsx)(s.Button,{onClick:()=>F(!1),children:"Close"},"close")],children:(0,l.jsxs)(n.Table,{children:[(0,l.jsx)(c.TableHead,{children:(0,l.jsxs)(u.TableRow,{children:[(0,l.jsx)(d.TableHeaderCell,{children:"IP Address"}),(0,l.jsx)(d.TableHeaderCell,{className:"text-right",children:"Action"})]})}),(0,l.jsx)(a.TableBody,{children:D.map((e,t)=>(0,l.jsxs)(u.TableRow,{children:[(0,l.jsx)(o.TableCell,{children:e}),(0,l.jsx)(o.TableCell,{className:"text-right",children:e!==X&&(0,l.jsx)(s.Button,{onClick:()=>ei(e),color:"red",size:"xs",children:"Delete"})})]},t))})]})}),(0,l.jsx)(h.Modal,{title:"Add Allowed IP Address",open:P,onCancel:()=>M(!1),footer:null,children:(0,l.jsxs)(g.Form,{onFinish:es,children:[(0,l.jsx)(g.Form.Item,{name:"ip",rules:[{required:!0,message:"Please enter an IP address"}],children:(0,l.jsx)(_.Input,{placeholder:"Enter IP address"})}),(0,l.jsx)(g.Form.Item,{children:(0,l.jsx)(p.Button,{htmlType:"submit",children:"Add IP Address"})})]})}),(0,l.jsx)(h.Modal,{title:"Confirm Delete",open:R,onCancel:()=>U(!1),onOk:er,footer:[(0,l.jsx)(s.Button,{className:"mx-1",onClick:()=>er(),children:"Yes"},"delete"),(0,l.jsx)(s.Button,{onClick:()=>U(!1),children:"Close"},"close")],children:(0,l.jsxs)(Q,{children:["Are you sure you want to delete the IP address: ",V,"?"]})}),(0,l.jsx)(h.Modal,{title:"UI Access Control Settings",open:B,width:600,footer:null,onOk:en,onCancel:()=>{L(!1)},children:(0,l.jsx)(K,{accessToken:C,onSuccess:()=>{en(),S.default.success("UI Access Control settings updated successfully")}})})]}),(0,l.jsxs)(i.Callout,{title:"Login without SSO",color:"teal",children:["If you need to login without sso, you can access"," ",(0,l.jsxs)("a",{href:ee,target:"_blank",rel:"noopener noreferrer",children:[(0,l.jsx)("b",{children:ee})," "]})]})]})},{key:"scim",label:"SCIM",children:(0,l.jsx)(b.default,{accessToken:C,userID:k,proxySettings:e})},{key:"ui-settings",label:"UI Settings",children:(0,l.jsx)(z,{})}];return(0,l.jsxs)("div",{className:"w-full m-2 mt-2 p-8",children:[(0,l.jsx)(Y,{level:4,children:"Admin Access "}),(0,l.jsx)(J,{children:"Go to 'Internal Users' page to add other admins."}),(0,l.jsx)(x.Tabs,{items:ea})]})}],105278)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/187c9fbc53b920aa.js b/litellm/proxy/_experimental/out/_next/static/chunks/187c9fbc53b920aa.js deleted file mode 100644 index 05c28ab0897..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/187c9fbc53b920aa.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,998183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(151836)._(e.r(998183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(o.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${a}${u}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},718967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return j},NormalizeError:function(){return x},PageNotFoundError:function(){return y},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class x extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function b(e){return JSON.stringify({message:e.message,stack:e.stack})}},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(718967),a=e.r(652817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return v},useLinkStatus:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(151836),s=e.r(843476),i=o._(e.r(271645)),l=e.r(195057),c=e.r(8372),u=e.r(818581),d=e.r(718967),f=e.r(405550);e.r(233525);let h=e.r(91949),p=e.r(573668),m=e.r(509396);function g(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function v(t){var r;let n,a,o,[l,v]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),y=(0,i.useRef)(null),{href:j,as:w,children:b,prefetch:S=null,passHref:E,replace:L,shallow:P,scroll:N,onClick:T,onMouseEnter:C,onTouchStart:_,legacyBehavior:O=!1,onNavigate:z,ref:R,unstable_dynamicOnHover:k,...M}=t;n=b,O&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let B=i.default.useContext(c.AppRouterContext),U=!1!==S,A=!1!==S?null===(r=S)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:I,as:$}=i.default.useMemo(()=>{let e=g(j);return{href:e,as:w?g(w):e}},[j,w]);if(O){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=i.default.Children.only(n)}let D=O?a&&"object"==typeof a&&a.ref:R,H=i.default.useCallback(e=>(null!==B&&(y.current=(0,h.mountLinkInstance)(e,I,B,A,U,v)),()=>{y.current&&((0,h.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,h.unmountPrefetchableInstance)(e)}),[U,I,B,A,v]),F={ref:(0,u.useMergedRef)(H,D),onClick(t){O||"function"!=typeof T||T(t),O&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!B||t.defaultPrevented||function(t,r,n,a,o,s,l){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,p.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(699781);i.default.startTransition(()=>{d(n||r,o?"replace":"push",s??!0,a.current)})}}(t,I,$,y,L,N,z)},onMouseEnter(e){O||"function"!=typeof C||C(e),O&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),B&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){O||"function"!=typeof _||_(e),O&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),B&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,d.isAbsoluteUrl)($)?F.href=$:O&&!E&&("a"!==a.type||"href"in a.props)||(F.href=(0,f.addBasePath)($)),o=O?i.default.cloneElement(a,F):(0,s.jsx)("a",{...M,...F,children:n}),(0,s.jsx)(x.Provider,{value:l,children:o})}e.r(284508);let x=(0,i.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(x);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},402874,636772,e=>{"use strict";var t=e.i(843476),r=e.i(764205),n=e.i(266027);let a=(0,e.i(243652).createQueryKeys)("healthReadiness"),o=async()=>{let e=(0,r.getProxyBaseUrl)(),t=await fetch(`${e}/health/readiness`);if(!t.ok)throw Error(`Failed to fetch health readiness: ${t.statusText}`);return t.json()};var s=e.i(275144),i=e.i(268004),l=e.i(62478);e.i(247167);var c=e.i(931067),u=e.i(271645);let d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};var f=e.i(9583),h=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:d}))});let p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z"}}]},name:"menu-unfold",theme:"outlined"};var m=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:p}))}),g=e.i(790848),v=e.i(262218),x=e.i(522016),y=e.i(115571);function j(e){let t=t=>{"disableShowPrompts"===t.key&&e()},r=t=>{let{key:r}=t.detail;"disableShowPrompts"===r&&e()};return window.addEventListener("storage",t),window.addEventListener(y.LOCAL_STORAGE_EVENT,r),()=>{window.removeEventListener("storage",t),window.removeEventListener(y.LOCAL_STORAGE_EVENT,r)}}function w(){return"true"===(0,y.getLocalStorageItem)("disableShowPrompts")}function b(){return(0,u.useSyncExternalStore)(j,w)}e.s(["useDisableShowPrompts",()=>b],636772);let S={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"}}]},name:"github",theme:"outlined"};var E=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:S}))});let L={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 00-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z"}}]},name:"slack",theme:"outlined"};var P=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:L}))}),N=e.i(464571);let T=()=>b()?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.Button,{href:"https://www.litellm.ai/support",target:"_blank",rel:"noopener noreferrer",icon:(0,t.jsx)(P,{}),className:"shadow-md shadow-indigo-500/20 hover:shadow-indigo-500/50 transition-shadow",children:"Join Slack"}),(0,t.jsx)(N.Button,{href:"https://github.com/BerriAI/litellm",target:"_blank",rel:"noopener noreferrer",className:"shadow-md shadow-indigo-500/20 hover:shadow-indigo-500/50 transition-shadow",icon:(0,t.jsx)(E,{}),children:"Star us on GitHub"})]});var C=e.i(135214);let _={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z"}}]},name:"crown",theme:"outlined"};var O=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:_}))}),z=e.i(755151);let R={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z"}}]},name:"logout",theme:"outlined"};var k=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:R}))});let M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"}}]},name:"mail",theme:"outlined"};var B=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:M}))}),U=e.i(602073),A=e.i(771674),I=e.i(312361),$=e.i(326373),D=e.i(770914),H=e.i(592968);let{Text:F}=e.i(898586).Typography,K=({onLogout:e})=>{let{userId:r,userEmail:n,userRole:a,premiumUser:o}=(0,C.default)(),s=b(),[i,l]=(0,u.useState)(!1);(0,u.useEffect)(()=>{l("true"===(0,y.getLocalStorageItem)("disableShowNewBadge"))},[]);let c=[{key:"logout",label:(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(k,{}),"Logout"]}),onClick:e}];return(0,t.jsx)($.Dropdown,{menu:{items:c},popupRender:e=>(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow-lg",children:[(0,t.jsxs)(D.Space,{direction:"vertical",size:"small",style:{width:"100%",padding:"12px"},children:[(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(B,{}),(0,t.jsx)(F,{type:"secondary",children:n||"-"})]}),o?(0,t.jsx)(v.Tag,{icon:(0,t.jsx)(O,{}),color:"gold",children:"Premium"}):(0,t.jsx)(H.Tooltip,{title:"Upgrade to Premium for advanced features",placement:"left",children:(0,t.jsx)(v.Tag,{icon:(0,t.jsx)(O,{}),children:"Standard"})})]}),(0,t.jsx)(I.Divider,{style:{margin:"8px 0"}}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(A.UserOutlined,{}),(0,t.jsx)(F,{type:"secondary",children:"User ID"})]}),(0,t.jsx)(F,{copyable:!0,ellipsis:!0,style:{maxWidth:"150px"},title:r||"-",children:r||"-"})]}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(U.SafetyOutlined,{}),(0,t.jsx)(F,{type:"secondary",children:"Role"})]}),(0,t.jsx)(F,{children:a})]}),(0,t.jsx)(I.Divider,{style:{margin:"8px 0"}}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsx)(F,{type:"secondary",children:"Hide New Feature Indicators"}),(0,t.jsx)(g.Switch,{size:"small",checked:i,onChange:e=>{l(e),e?(0,y.setLocalStorageItem)("disableShowNewBadge","true"):(0,y.removeLocalStorageItem)("disableShowNewBadge"),(0,y.emitLocalStorageChange)("disableShowNewBadge")},"aria-label":"Toggle hide new feature indicators"})]}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsx)(F,{type:"secondary",children:"Hide All Prompts"}),(0,t.jsx)(g.Switch,{size:"small",checked:s,onChange:e=>{e?(0,y.setLocalStorageItem)("disableShowPrompts","true"):(0,y.removeLocalStorageItem)("disableShowPrompts"),(0,y.emitLocalStorageChange)("disableShowPrompts")},"aria-label":"Toggle hide all prompts"})]})]}),(0,t.jsx)(I.Divider,{style:{margin:0}}),u.default.cloneElement(e,{style:{boxShadow:"none"}})]}),children:(0,t.jsx)(N.Button,{type:"text",children:(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(A.UserOutlined,{}),(0,t.jsx)(F,{children:"User"}),(0,t.jsx)(z.DownOutlined,{})]})})})};e.s(["default",0,({userID:e,userEmail:c,userRole:d,premiumUser:f,proxySettings:p,setProxySettings:g,accessToken:y,isPublicPage:j=!1,sidebarCollapsed:w=!1,onToggleSidebar:b,isDarkMode:S,toggleDarkMode:E})=>{let L=(0,r.getProxyBaseUrl)(),[P,N]=(0,u.useState)(""),{logoUrl:C}=(0,s.useTheme)(),{data:_}=(0,n.useQuery)({queryKey:a.detail("readiness"),queryFn:o,staleTime:3e5}),O=_?.litellm_version,z=C||`${L}/get_image`;return(0,u.useEffect)(()=>{(async()=>{if(y){let e=await (0,l.fetchProxySettings)(y);console.log("response from fetchProxySettings",e),e&&g(e)}})()},[y]),(0,u.useEffect)(()=>{N(p?.PROXY_LOGOUT_URL||"")},[p]),(0,t.jsx)("nav",{className:"bg-white border-b border-gray-200 sticky top-0 z-10",children:(0,t.jsx)("div",{className:"w-full",children:(0,t.jsxs)("div",{className:"flex items-center h-14 px-4",children:[(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0",children:[b&&(0,t.jsx)("button",{onClick:b,className:"flex items-center justify-center w-10 h-10 mr-2 text-gray-600 hover:text-gray-900 hover:bg-gray-100 rounded transition-colors",title:w?"Expand sidebar":"Collapse sidebar",children:(0,t.jsx)("span",{className:"text-lg",children:w?(0,t.jsx)(m,{}):(0,t.jsx)(h,{})})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.default,{href:L||"/",className:"flex items-center",children:(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("div",{className:"h-10 max-w-48 flex items-center justify-center overflow-hidden",children:(0,t.jsx)("img",{src:z,alt:"LiteLLM Brand",className:"max-w-full max-h-full w-auto h-auto object-contain"})})})}),O&&(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("span",{className:"absolute -top-1 -left-2 text-lg animate-bounce",style:{animationDuration:"2s"},title:"Thanks for using LiteLLM!",children:"❄️"}),(0,t.jsx)(v.Tag,{className:"relative text-xs font-medium cursor-pointer z-10",children:(0,t.jsxs)("a",{href:"https://docs.litellm.ai/release_notes",target:"_blank",rel:"noopener noreferrer",className:"flex-shrink-0",children:["v",O]})})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-5 ml-auto",children:[(0,t.jsx)(T,{}),!1,(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 hover:text-gray-900 transition-colors",children:"Docs"}),!j&&(0,t.jsx)(K,{onLogout:()=>{(0,i.clearTokenCookies)(),window.location.href=P}})]})]})})})}],402874)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/193ac6435f936582.js b/litellm/proxy/_experimental/out/_next/static/chunks/193ac6435f936582.js new file mode 100644 index 00000000000..31bd2d2e20d --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/193ac6435f936582.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,349356,e=>{e.v({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"})},137429,e=>{e.v({0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"})},921511,e=>{"use strict";var a=e.i(843476),l=e.i(271645),i=e.i(199133),t=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:o,accessToken:c,disabled:s})=>{let[u,d]=(0,l.useState)([]),[n,g]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{(async()=>{if(c){g(!0);try{let e=await (0,t.getPoliciesList)(c);console.log("Policies response:",e),e.policies&&(console.log("Policies data:",e.policies),d(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{g(!1)}}})()},[c]),(0,a.jsx)("div",{children:(0,a.jsx)(i.Select,{mode:"multiple",disabled:s,placeholder:s?"Setting policies is a premium feature.":"Select policies",onChange:a=>{console.log("Selected policies:",a),e(a)},value:r,loading:n,className:o,allowClear:!0,options:u.map(e=>(console.log("Mapping policy:",e),{label:`${e.policy_name}${e.description?` - ${e.description}`:""}`,value:e.policy_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},916940,e=>{"use strict";var a=e.i(843476),l=e.i(271645),i=e.i(199133),t=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:o,accessToken:c,placeholder:s="Select vector stores",disabled:u=!1})=>{let[d,n]=(0,l.useState)([]),[g,p]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{(async()=>{if(c){p(!0);try{let e=await (0,t.vectorStoreListCall)(c);e.data&&n(e.data)}catch(e){console.error("Error fetching vector stores:",e)}finally{p(!1)}}})()},[c]),(0,a.jsx)("div",{children:(0,a.jsx)(i.Select,{mode:"multiple",placeholder:s,onChange:e,value:r,loading:g,className:o,allowClear:!0,options:d.map(e=>({label:`${e.vector_store_name||e.vector_store_id} (${e.vector_store_id})`,value:e.vector_store_id,title:e.vector_store_description||e.vector_store_id})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:u})})}])},737434,e=>{"use strict";var a=e.i(184163);e.s(["DownloadOutlined",()=>a.default])},891547,e=>{"use strict";var a=e.i(843476),l=e.i(271645),i=e.i(199133),t=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:o,accessToken:c,disabled:s})=>{let[u,d]=(0,l.useState)([]),[n,g]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{(async()=>{if(c){g(!0);try{let e=await (0,t.getGuardrailsList)(c);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),d(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{g(!1)}}})()},[c]),(0,a.jsx)("div",{children:(0,a.jsx)(i.Select,{mode:"multiple",disabled:s,placeholder:s?"Setting guardrails is a premium feature.":"Select guardrails",onChange:a=>{console.log("Selected guardrails:",a),e(a)},value:r,loading:n,className:o,allowClear:!0,options:u.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},133574,e=>{"use strict";var a=e.i(843476),l=e.i(220486),i=e.i(135214),t=e.i(271645),r=e.i(62478);e.s(["default",0,()=>{let{token:e,accessToken:o,userRole:c,userId:s,disabledPersonalKeyCreation:u}=(0,i.default)(),[d,n]=(0,t.useState)(void 0);return(0,t.useEffect)(()=>{(async()=>{if(o){let e=await (0,r.fetchProxySettings)(o);e&&n({PROXY_BASE_URL:e.PROXY_BASE_URL||void 0,LITELLM_UI_API_DOC_BASE_URL:e.LITELLM_UI_API_DOC_BASE_URL})}})()},[o]),(0,a.jsx)(l.default,{accessToken:o,token:e,userRole:c,userID:s,disabledPersonalKeyCreation:u,proxySettings:d})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1a01cb4063a7b21e.js b/litellm/proxy/_experimental/out/_next/static/chunks/1a01cb4063a7b21e.js new file mode 100644 index 00000000000..b5d87ff9d29 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/1a01cb4063a7b21e.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,349356,e=>{e.v({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"})},137429,e=>{e.v({0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"})},530212,e=>{"use strict";var t=e.i(271645);let n=t.forwardRef(function(e,n){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:n},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,n],530212)},519756,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"};var a=e.i(9583),i=n.forwardRef(function(e,i){return n.createElement(a.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["UploadOutlined",0,i],519756)},603908,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["default",()=>t])},916925,e=>{"use strict";var t,n=((t={}).A2A_Agent="A2A Agent",t.AIML="AI/ML API",t.Bedrock="Amazon Bedrock",t.Anthropic="Anthropic",t.AssemblyAI="AssemblyAI",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.Cerebras="Cerebras",t.Cohere="Cohere",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.ElevenLabs="ElevenLabs",t.FalAI="Fal AI",t.FireworksAI="Fireworks AI",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.Hosted_Vllm="vllm",t.Infinity="Infinity",t.JinaAI="Jina AI",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.Ollama="Ollama",t.OpenAI="OpenAI",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.Perplexity="Perplexity",t.RunwayML="RunwayML",t.Sambanova="Sambanova",t.Snowflake="Snowflake",t.TogetherAI="TogetherAI",t.Triton="Triton",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.xAI="xAI",t.SAP="SAP Generative AI Hub",t.Watsonx="Watsonx",t);let r={A2A_Agent:"a2a_agent",AIML:"aiml",OpenAI:"openai",OpenAI_Text:"text-completion-openai",Azure:"azure",Azure_AI_Studio:"azure_ai",Anthropic:"anthropic",Google_AI_Studio:"gemini",Bedrock:"bedrock",Groq:"groq",MiniMax:"minimax",MistralAI:"mistral",Cohere:"cohere",OpenAI_Compatible:"openai",OpenAI_Text_Compatible:"text-completion-openai",Vertex_AI:"vertex_ai",Databricks:"databricks",Dashscope:"dashscope",xAI:"xai",Deepseek:"deepseek",Ollama:"ollama",AssemblyAI:"assemblyai",Cerebras:"cerebras",Sambanova:"sambanova",Perplexity:"perplexity",RunwayML:"runwayml",TogetherAI:"together_ai",Openrouter:"openrouter",Oracle:"oci",Snowflake:"snowflake",FireworksAI:"fireworks_ai",GradientAI:"gradient_ai",Triton:"triton",Deepgram:"deepgram",ElevenLabs:"elevenlabs",FalAI:"fal_ai",SageMaker:"sagemaker_chat",Voyage:"voyage",JinaAI:"jina_ai",VolcEngine:"volcengine",DeepInfra:"deepinfra",Hosted_Vllm:"hosted_vllm",Infinity:"infinity",SAP:"sap",Watsonx:"watsonx"},a="../ui/assets/logos/",i={"A2A Agent":`${a}a2a_agent.png`,"AI/ML API":`${a}aiml_api.svg`,Anthropic:`${a}anthropic.svg`,AssemblyAI:`${a}assemblyai_small.png`,Azure:`${a}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${a}microsoft_azure.svg`,"Amazon Bedrock":`${a}bedrock.svg`,"AWS SageMaker":`${a}bedrock.svg`,Cerebras:`${a}cerebras.svg`,Cohere:`${a}cohere.svg`,"Databricks (Qwen API)":`${a}databricks.svg`,Dashscope:`${a}dashscope.svg`,Deepseek:`${a}deepseek.svg`,"Fireworks AI":`${a}fireworks.svg`,Groq:`${a}groq.svg`,"Google AI Studio":`${a}google.svg`,vllm:`${a}vllm.png`,Infinity:`${a}infinity.png`,MiniMax:`${a}minimax.svg`,"Mistral AI":`${a}mistral.svg`,Ollama:`${a}ollama.svg`,OpenAI:`${a}openai_small.svg`,"OpenAI Text Completion":`${a}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${a}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${a}openai_small.svg`,Openrouter:`${a}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${a}oracle.svg`,Perplexity:`${a}perplexity-ai.svg`,RunwayML:`${a}runwayml.png`,Sambanova:`${a}sambanova.svg`,Snowflake:`${a}snowflake.svg`,TogetherAI:`${a}togetherai.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${a}google.svg`,xAI:`${a}xai.svg`,GradientAI:`${a}gradientai.svg`,Triton:`${a}nvidia_triton.png`,Deepgram:`${a}deepgram.png`,ElevenLabs:`${a}elevenlabs.png`,"Fal AI":`${a}fal_ai.jpg`,"Voyage AI":`${a}voyage.webp`,"Jina AI":`${a}jina.png`,VolcEngine:`${a}volcengine.png`,DeepInfra:`${a}deepinfra.png`,"SAP Generative AI Hub":`${a}sap.png`};e.s(["Providers",()=>n,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(r).find(t=>r[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let a=n[t];return{logo:i[a],displayName:a}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let n=r[e];console.log(`Provider mapped to: ${n}`);let a=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let r=t.litellm_provider;(r===n||"string"==typeof r&&r.includes(n))&&a.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&a.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&a.push(e)}))),a},"providerLogoMap",0,i,"provider_map",0,r])},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},309821,e=>{"use strict";e.i(247167);var t=e.i(271645);e.i(262370);var n=e.i(135551),r=e.i(201072),a=e.i(121229),i=e.i(726289),o=e.i(864517),l=e.i(343794),s=e.i(529681),c=e.i(242064),d=e.i(931067),u=e.i(209428),m=e.i(703923),p={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},f=function(){var e=(0,t.useRef)([]),n=(0,t.useRef)(null);return(0,t.useEffect)(function(){var t=Date.now(),r=!1;e.current.forEach(function(e){if(e){r=!0;var a=e.style;a.transitionDuration=".3s, .3s, .3s, .06s",n.current&&t-n.current<100&&(a.transitionDuration="0s, 0s")}}),r&&(n.current=Date.now())}),e.current},g=e.i(410160),v=e.i(392221),h=e.i(654310),b=0,y=(0,h.default)();let $=function(e){var n=t.useState(),r=(0,v.default)(n,2),a=r[0],i=r[1];return t.useEffect(function(){var e;i("rc_progress_".concat((y?(e=b,b+=1):e="TEST_OR_SSR",e)))},[]),e||a};var x=function(e){var n=e.bg,r=e.children;return t.createElement("div",{style:{width:"100%",height:"100%",background:n}},r)};function k(e,t){return Object.keys(e).map(function(n){var r=parseFloat(n),a="".concat(Math.floor(r*t),"%");return"".concat(e[n]," ").concat(a)})}var C=t.forwardRef(function(e,n){var r=e.prefixCls,a=e.color,i=e.gradientId,o=e.radius,l=e.style,s=e.ptg,c=e.strokeLinecap,d=e.strokeWidth,u=e.size,m=e.gapDegree,p=a&&"object"===(0,g.default)(a),f=u/2,v=t.createElement("circle",{className:"".concat(r,"-circle-path"),r:o,cx:f,cy:f,stroke:p?"#FFF":void 0,strokeLinecap:c,strokeWidth:d,opacity:+(0!==s),style:l,ref:n});if(!p)return v;var h="".concat(i,"-conic"),b=k(a,(360-m)/360),y=k(a,1),$="conic-gradient(from ".concat(m?"".concat(180+m/2,"deg"):"0deg",", ").concat(b.join(", "),")"),C="linear-gradient(to ".concat(m?"bottom":"top",", ").concat(y.join(", "),")");return t.createElement(t.Fragment,null,t.createElement("mask",{id:h},v),t.createElement("foreignObject",{x:0,y:0,width:u,height:u,mask:"url(#".concat(h,")")},t.createElement(x,{bg:C},t.createElement(x,{bg:$}))))}),O=function(e,t,n,r,a,i,o,l,s,c){var d=arguments.length>10&&void 0!==arguments[10]?arguments[10]:0,u=(100-r)/100*t;return"round"===s&&100!==r&&(u+=c/2)>=t&&(u=t-.01),{stroke:"string"==typeof l?l:void 0,strokeDasharray:"".concat(t,"px ").concat(e),strokeDashoffset:u+d,transform:"rotate(".concat(a+n/100*360*((360-i)/360)+(0===i?0:({bottom:0,top:180,left:90,right:-90})[o]),"deg)"),transformOrigin:"".concat(50,"px ").concat(50,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},w=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function S(e){var t=null!=e?e:[];return Array.isArray(t)?t:[t]}let A=function(e){var n,r,a,i,o=(0,u.default)((0,u.default)({},p),e),s=o.id,c=o.prefixCls,v=o.steps,h=o.strokeWidth,b=o.trailWidth,y=o.gapDegree,x=void 0===y?0:y,k=o.gapPosition,A=o.trailColor,I=o.strokeLinecap,E=o.style,j=o.className,N=o.strokeColor,M=o.percent,z=(0,m.default)(o,w),P=$(s),D="".concat(P,"-gradient"),_=50-h/2,R=2*Math.PI*_,L=x>0?90+x/2:-90,T=(360-x)/360*R,W="object"===(0,g.default)(v)?v:{count:v,gap:2},B=W.count,V=W.gap,H=S(M),F=S(N),G=F.find(function(e){return e&&"object"===(0,g.default)(e)}),X=G&&"object"===(0,g.default)(G)?"butt":I,q=O(R,T,0,100,L,x,k,A,X,h),K=f();return t.createElement("svg",(0,d.default)({className:(0,l.default)("".concat(c,"-circle"),j),viewBox:"0 0 ".concat(100," ").concat(100),style:E,id:s,role:"presentation"},z),!B&&t.createElement("circle",{className:"".concat(c,"-circle-trail"),r:_,cx:50,cy:50,stroke:A,strokeLinecap:X,strokeWidth:b||h,style:q}),B?(n=Math.round(B*(H[0]/100)),r=100/B,a=0,Array(B).fill(null).map(function(e,i){var o=i<=n-1?F[0]:A,l=o&&"object"===(0,g.default)(o)?"url(#".concat(D,")"):void 0,s=O(R,T,a,r,L,x,k,o,"butt",h,V);return a+=(T-s.strokeDashoffset+V)*100/T,t.createElement("circle",{key:i,className:"".concat(c,"-circle-path"),r:_,cx:50,cy:50,stroke:l,strokeWidth:h,opacity:1,style:s,ref:function(e){K[i]=e}})})):(i=0,H.map(function(e,n){var r=F[n]||F[F.length-1],a=O(R,T,i,e,L,x,k,r,X,h);return i+=e,t.createElement(C,{key:n,color:r,ptg:e,radius:_,prefixCls:c,gradientId:D,style:a,strokeLinecap:X,strokeWidth:h,gapDegree:x,ref:function(e){K[n]=e},size:100})}).reverse()))};var I=e.i(491816);e.i(765846);var E=e.i(896091);function j(e){return!e||e<0?0:e>100?100:e}function N({success:e,successPercent:t}){let n=t;return e&&"progress"in e&&(n=e.progress),e&&"percent"in e&&(n=e.percent),n}let M=(e,t,n)=>{var r,a,i,o;let l=-1,s=-1;if("step"===t){let t=n.steps,r=n.strokeWidth;"string"==typeof e||void 0===e?(l="small"===e?2:14,s=null!=r?r:8):"number"==typeof e?[l,s]=[e,e]:[l=14,s=8]=Array.isArray(e)?e:[e.width,e.height],l*=t}else if("line"===t){let t=null==n?void 0:n.strokeWidth;"string"==typeof e||void 0===e?s=t||("small"===e?6:8):"number"==typeof e?[l,s]=[e,e]:[l=-1,s=8]=Array.isArray(e)?e:[e.width,e.height]}else("circle"===t||"dashboard"===t)&&("string"==typeof e||void 0===e?[l,s]="small"===e?[60,60]:[120,120]:"number"==typeof e?[l,s]=[e,e]:Array.isArray(e)&&(l=null!=(a=null!=(r=e[0])?r:e[1])?a:120,s=null!=(o=null!=(i=e[0])?i:e[1])?o:120));return[l,s]},z=e=>{let{prefixCls:n,trailColor:r=null,strokeLinecap:a="round",gapPosition:i,gapDegree:o,width:s=120,type:c,children:d,success:u,size:m=s,steps:p}=e,[f,g]=M(m,"circle"),{strokeWidth:v}=e;void 0===v&&(v=Math.max(3/f*100,6));let h=t.useMemo(()=>o||0===o?o:"dashboard"===c?75:void 0,[o,c]),b=(({percent:e,success:t,successPercent:n})=>{let r=j(N({success:t,successPercent:n}));return[r,j(j(e)-r)]})(e),y="[object Object]"===Object.prototype.toString.call(e.strokeColor),$=(({success:e={},strokeColor:t})=>{let{strokeColor:n}=e;return[n||E.presetPrimaryColors.green,t||null]})({success:u,strokeColor:e.strokeColor}),x=(0,l.default)(`${n}-inner`,{[`${n}-circle-gradient`]:y}),k=t.createElement(A,{steps:p,percent:p?b[1]:b,strokeWidth:v,trailWidth:v,strokeColor:p?$[1]:$,strokeLinecap:a,trailColor:r,prefixCls:n,gapDegree:h,gapPosition:i||"dashboard"===c&&"bottom"||void 0}),C=f<=20,O=t.createElement("div",{className:x,style:{width:f,height:g,fontSize:.15*f+6}},k,!C&&d);return C?t.createElement(I.default,{title:d},O):O};e.i(296059);var P=e.i(694758),D=e.i(915654),_=e.i(183293),R=e.i(246422),L=e.i(838378);let T="--progress-line-stroke-color",W="--progress-percent",B=e=>{let t=e?"100%":"-100%";return new P.Keyframes(`antProgress${e?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${t}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${t}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},V=(0,R.genStyleHooks)("Progress",e=>{let t=e.calc(e.marginXXS).div(2).equal(),n=(0,L.mergeToken)(e,{progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:"2.4s"});return[(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Object.assign(Object.assign({},(0,_.resetComponent)(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize},[`${t}-outer`]:{display:"inline-flex",alignItems:"center",width:"100%"},[`${t}-inner`]:{position:"relative",display:"inline-block",width:"100%",flex:1,overflow:"hidden",verticalAlign:"middle",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.defaultColor}},[`${t}-success-bg, ${t}-bg`]:{position:"relative",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-layout-bottom`]:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",[`${t}-text`]:{width:"max-content",marginInlineStart:0,marginTop:e.marginXXS}},[`${t}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${T})`]},height:"100%",width:`calc(1 / var(${W}) * 100%)`,display:"block"},[`&${t}-bg-inner`]:{minWidth:"max-content","&::after":{content:"none"},[`${t}-text-inner`]:{color:e.colorWhite,[`&${t}-text-bright`]:{color:"rgba(0, 0, 0, 0.45)"}}}},[`${t}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:"2em",whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[n]:{fontSize:e.fontSize},[`&${t}-text-outer`]:{width:"max-content"},[`&${t}-text-outer${t}-text-start`]:{width:"max-content",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${t}-text-inner`]:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",marginInlineStart:0,padding:`0 ${(0,D.unit)(e.paddingXXS)}`,[`&${t}-text-start`]:{justifyContent:"start"},[`&${t}-text-end`]:{justifyContent:"end"}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:B(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${t}-rtl${t}-status-active`]:{[`${t}-bg::before`]:{animationName:B(!0)}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}})(n),(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.remainingColor},[`&${t}-circle ${t}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${t}-circle ${t}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[n]:{fontSize:e.circleIconFontSize}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:"bottom"}}}})(n),(e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.defaultColor}}}}}})(n),(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}})(n)]},e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}));var H=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let F=e=>{let{prefixCls:n,direction:r,percent:a,size:i,strokeWidth:o,strokeColor:s,strokeLinecap:c="round",children:d,trailColor:u=null,percentPosition:m,success:p}=e,{align:f,type:g}=m,v=s&&"string"!=typeof s?((e,t)=>{let{from:n=E.presetPrimaryColors.blue,to:r=E.presetPrimaryColors.blue,direction:a="rtl"===t?"to left":"to right"}=e,i=H(e,["from","to","direction"]);if(0!==Object.keys(i).length){let e,t=(e=[],Object.keys(i).forEach(t=>{let n=Number.parseFloat(t.replace(/%/g,""));Number.isNaN(n)||e.push({key:n,value:i[t]})}),(e=e.sort((e,t)=>e.key-t.key)).map(({key:e,value:t})=>`${t} ${e}%`).join(", ")),n=`linear-gradient(${a}, ${t})`;return{background:n,[T]:n}}let o=`linear-gradient(${a}, ${n}, ${r})`;return{background:o,[T]:o}})(s,r):{[T]:s,background:s},h="square"===c||"butt"===c?0:void 0,[b,y]=M(null!=i?i:[-1,o||("small"===i?6:8)],"line",{strokeWidth:o}),$=Object.assign(Object.assign({width:`${j(a)}%`,height:y,borderRadius:h},v),{[W]:j(a)/100}),x=N(e),k={width:`${j(x)}%`,height:y,borderRadius:h,backgroundColor:null==p?void 0:p.strokeColor},C=t.createElement("div",{className:`${n}-inner`,style:{backgroundColor:u||void 0,borderRadius:h}},t.createElement("div",{className:(0,l.default)(`${n}-bg`,`${n}-bg-${g}`),style:$},"inner"===g&&d),void 0!==x&&t.createElement("div",{className:`${n}-success-bg`,style:k})),O="outer"===g&&"start"===f,w="outer"===g&&"end"===f;return"outer"===g&&"center"===f?t.createElement("div",{className:`${n}-layout-bottom`},C,d):t.createElement("div",{className:`${n}-outer`,style:{width:b<0?"100%":b}},O&&d,C,w&&d)},G=e=>{let{size:n,steps:r,rounding:a=Math.round,percent:i=0,strokeWidth:o=8,strokeColor:s,trailColor:c=null,prefixCls:d,children:u}=e,m=a(i/100*r),[p,f]=M(null!=n?n:["small"===n?2:14,o],"step",{steps:r,strokeWidth:o}),g=p/r,v=Array.from({length:r});for(let e=0;et.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let q=["normal","exception","active","success"],K=t.forwardRef((e,d)=>{let u,{prefixCls:m,className:p,rootClassName:f,steps:g,strokeColor:v,percent:h=0,size:b="default",showInfo:y=!0,type:$="line",status:x,format:k,style:C,percentPosition:O={}}=e,w=X(e,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style","percentPosition"]),{align:S="end",type:A="outer"}=O,I=Array.isArray(v)?v[0]:v,E="string"==typeof v||Array.isArray(v)?v:void 0,P=t.useMemo(()=>{if(I){let e="string"==typeof I?I:Object.values(I)[0];return new n.FastColor(e).isLight()}return!1},[v]),D=t.useMemo(()=>{var t,n;let r=N(e);return Number.parseInt(void 0!==r?null==(t=null!=r?r:0)?void 0:t.toString():null==(n=null!=h?h:0)?void 0:n.toString(),10)},[h,e.success,e.successPercent]),_=t.useMemo(()=>!q.includes(x)&&D>=100?"success":x||"normal",[x,D]),{getPrefixCls:R,direction:L,progress:T}=t.useContext(c.ConfigContext),W=R("progress",m),[B,H,K]=V(W),U="line"===$,Y=U&&!g,J=t.useMemo(()=>{let n;if(!y)return null;let s=N(e),c=k||(e=>`${e}%`),d=U&&P&&"inner"===A;return"inner"===A||k||"exception"!==_&&"success"!==_?n=c(j(h),j(s)):"exception"===_?n=U?t.createElement(i.default,null):t.createElement(o.default,null):"success"===_&&(n=U?t.createElement(r.default,null):t.createElement(a.default,null)),t.createElement("span",{className:(0,l.default)(`${W}-text`,{[`${W}-text-bright`]:d,[`${W}-text-${S}`]:Y,[`${W}-text-${A}`]:Y}),title:"string"==typeof n?n:void 0},n)},[y,h,D,_,$,W,k]);"line"===$?u=g?t.createElement(G,Object.assign({},e,{strokeColor:E,prefixCls:W,steps:"object"==typeof g?g.count:g}),J):t.createElement(F,Object.assign({},e,{strokeColor:I,prefixCls:W,direction:L,percentPosition:{align:S,type:A}}),J):("circle"===$||"dashboard"===$)&&(u=t.createElement(z,Object.assign({},e,{strokeColor:I,prefixCls:W,progressStatus:_}),J));let Q=(0,l.default)(W,`${W}-status-${_}`,{[`${W}-${"dashboard"===$&&"circle"||$}`]:"line"!==$,[`${W}-inline-circle`]:"circle"===$&&M(b,"circle")[0]<=20,[`${W}-line`]:Y,[`${W}-line-align-${S}`]:Y,[`${W}-line-position-${A}`]:Y,[`${W}-steps`]:g,[`${W}-show-info`]:y,[`${W}-${b}`]:"string"==typeof b,[`${W}-rtl`]:"rtl"===L},null==T?void 0:T.className,p,f,H,K);return B(t.createElement("div",Object.assign({ref:d,style:Object.assign(Object.assign({},null==T?void 0:T.style),C),className:Q,role:"progressbar","aria-valuenow":D,"aria-valuemin":0,"aria-valuemax":100},(0,s.default)(w,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),u))});e.s(["default",0,K],309821)},94629,e=>{"use strict";var t=e.i(271645);let n=t.forwardRef(function(e,n){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:n},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,n],94629)},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var a=e.i(9583),i=n.forwardRef(function(e,i){return n.createElement(a.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["ClockCircleOutlined",0,i],637235)},56456,e=>{"use strict";var t=e.i(739295);e.s(["LoadingOutlined",()=>t.default])},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var a=e.i(9583),i=n.forwardRef(function(e,i){return n.createElement(a.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["DollarOutlined",0,i],458505)},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),r=e.i(914949),a=e.i(404948);let i=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,i],836938);var o=e.i(613541),l=e.i(763731),s=e.i(242064),c=e.i(491816);e.i(793154);var d=e.i(880476),u=e.i(183293),m=e.i(717356),p=e.i(320560),f=e.i(307358),g=e.i(246422),v=e.i(838378),h=e.i(617933);let b=(0,g.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:n}=e,r=(0,v.mergeToken)(e,{popoverBg:t,popoverColor:n});return[(e=>{let{componentCls:t,popoverColor:n,titleMinWidth:r,fontWeightStrong:a,innerPadding:i,boxShadowSecondary:o,colorTextHeading:l,borderRadiusLG:s,zIndexPopup:c,titleMarginBottom:d,colorBgElevated:m,popoverBg:f,titleBorderBottom:g,innerContentPadding:v,titlePadding:h}=e;return[{[t]:Object.assign(Object.assign({},(0,u.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":m,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:"padding-box",borderRadius:s,boxShadow:o,padding:i},[`${t}-title`]:{minWidth:r,marginBottom:d,color:l,fontWeight:a,borderBottom:g,padding:h},[`${t}-inner-content`]:{color:n,padding:v}})},(0,p.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(r),(e=>{let{componentCls:t}=e;return{[t]:h.PresetColors.map(n=>{let r=e[`${n}6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:"transparent"}}}})}})(r),(0,m.initZoomMotion)(r,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:n,fontHeight:r,padding:a,wireframe:i,zIndexPopupBase:o,borderRadiusLG:l,marginXS:s,lineType:c,colorSplit:d,paddingSM:u}=e,m=n-r;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:o+30},(0,f.getArrowToken)(e)),(0,p.getArrowOffsetToken)({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:12*!i,titleMarginBottom:i?0:s,titlePadding:i?`${m/2}px ${a}px ${m/2-t}px`:0,titleBorderBottom:i?`${t}px ${c} ${d}`:"none",innerContentPadding:i?`${u}px ${a}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let $=({title:e,content:n,prefixCls:r})=>e||n?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${r}-title`},e),n&&t.createElement("div",{className:`${r}-inner-content`},n)):null,x=e=>{let{hashId:r,prefixCls:a,className:o,style:l,placement:s="top",title:c,content:u,children:m}=e,p=i(c),f=i(u),g=(0,n.default)(r,a,`${a}-pure`,`${a}-placement-${s}`,o);return t.createElement("div",{className:g,style:l},t.createElement("div",{className:`${a}-arrow`}),t.createElement(d.Popup,Object.assign({},e,{className:r,prefixCls:a}),m||t.createElement($,{prefixCls:a,title:p,content:f})))},k=e=>{let{prefixCls:r,className:a}=e,i=y(e,["prefixCls","className"]),{getPrefixCls:o}=t.useContext(s.ConfigContext),l=o("popover",r),[c,d,u]=b(l);return c(t.createElement(x,Object.assign({},i,{prefixCls:l,hashId:d,className:(0,n.default)(a,u)})))};e.s(["Overlay",0,$,"default",0,k],310730);var C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let O=t.forwardRef((e,d)=>{var u,m;let{prefixCls:p,title:f,content:g,overlayClassName:v,placement:h="top",trigger:y="hover",children:x,mouseEnterDelay:k=.1,mouseLeaveDelay:O=.1,onOpenChange:w,overlayStyle:S={},styles:A,classNames:I}=e,E=C(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:j,className:N,style:M,classNames:z,styles:P}=(0,s.useComponentConfig)("popover"),D=j("popover",p),[_,R,L]=b(D),T=j(),W=(0,n.default)(v,R,L,N,z.root,null==I?void 0:I.root),B=(0,n.default)(z.body,null==I?void 0:I.body),[V,H]=(0,r.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(m=e.defaultOpen)?m:e.defaultVisible}),F=(e,t)=>{H(e,!0),null==w||w(e,t)},G=i(f),X=i(g);return _(t.createElement(c.default,Object.assign({placement:h,trigger:y,mouseEnterDelay:k,mouseLeaveDelay:O},E,{prefixCls:D,classNames:{root:W,body:B},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},P.root),M),S),null==A?void 0:A.root),body:Object.assign(Object.assign({},P.body),null==A?void 0:A.body)},ref:d,open:V,onOpenChange:e=>{F(e)},overlay:G||X?t.createElement($,{prefixCls:D,title:G,content:X}):null,transitionName:(0,o.getTransitionName)(T,"zoom-big",E.transitionName),"data-popover-inject":!0}),(0,l.cloneElement)(x,{onKeyDown:e=>{var n,r;(0,t.isValidElement)(x)&&(null==(r=null==x?void 0:(n=x.props).onKeyDown)||r.call(n,e)),e.keyCode===a.default.ESC&&F(!1,e)}})))});O._InternalPanelDoNotUseOrYouWillBeFired=k,e.s(["default",0,O],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var a=e.i(9583),i=n.forwardRef(function(e,i){return n.createElement(a.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["CodeOutlined",0,i],245094)},872934,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM770.87 199.13l-52.2-52.2a8.01 8.01 0 014.7-13.6l179.4-21c5.1-.6 9.5 3.7 8.9 8.9l-21 179.4c-.8 6.6-8.9 9.4-13.6 4.7l-52.4-52.4-256.2 256.2a8.03 8.03 0 01-11.3 0l-42.4-42.4a8.03 8.03 0 010-11.3l256.1-256.3z"}}]},name:"export",theme:"outlined"};var a=e.i(9583),i=n.forwardRef(function(e,i){return n.createElement(a.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["ExportOutlined",0,i],872934)},903446,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["default",()=>t])},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},573421,e=>{"use strict";e.i(247167);var t=e.i(8211),n=e.i(271645),r=e.i(343794),a=e.i(887719),i=e.i(908206),o=e.i(242064),l=e.i(721132),s=e.i(517455),c=e.i(264042),d=e.i(150073),u=e.i(165370),m=e.i(244451);let p=n.default.createContext({});p.Consumer;var f=e.i(763731),g=e.i(211576),v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let h=n.default.forwardRef((e,t)=>{let a,{prefixCls:i,children:l,actions:s,extra:c,styles:d,className:u,classNames:m,colStyle:h}=e,b=v(e,["prefixCls","children","actions","extra","styles","className","classNames","colStyle"]),{grid:y,itemLayout:$}=(0,n.useContext)(p),{getPrefixCls:x,list:k}=(0,n.useContext)(o.ConfigContext),C=e=>{var t,n;return(0,r.default)(null==(n=null==(t=null==k?void 0:k.item)?void 0:t.classNames)?void 0:n[e],null==m?void 0:m[e])},O=e=>{var t,n;return Object.assign(Object.assign({},null==(n=null==(t=null==k?void 0:k.item)?void 0:t.styles)?void 0:n[e]),null==d?void 0:d[e])},w=x("list",i),S=s&&s.length>0&&n.default.createElement("ul",{className:(0,r.default)(`${w}-item-action`,C("actions")),key:"actions",style:O("actions")},s.map((e,t)=>n.default.createElement("li",{key:`${w}-item-action-${t}`},e,t!==s.length-1&&n.default.createElement("em",{className:`${w}-item-action-split`})))),A=n.default.createElement(y?"div":"li",Object.assign({},b,y?{}:{ref:t},{className:(0,r.default)(`${w}-item`,{[`${w}-item-no-flex`]:!("vertical"===$?!!c:(a=!1,n.Children.forEach(l,e=>{"string"==typeof e&&(a=!0)}),!(a&&n.Children.count(l)>1)))},u)}),"vertical"===$&&c?[n.default.createElement("div",{className:`${w}-item-main`,key:"content"},l,S),n.default.createElement("div",{className:(0,r.default)(`${w}-item-extra`,C("extra")),key:"extra",style:O("extra")},c)]:[l,S,(0,f.cloneElement)(c,{key:"extra"})]);return y?n.default.createElement(g.Col,{ref:t,flex:1,style:h},A):A});h.Meta=e=>{var{prefixCls:t,className:a,avatar:i,title:l,description:s}=e,c=v(e,["prefixCls","className","avatar","title","description"]);let{getPrefixCls:d}=(0,n.useContext)(o.ConfigContext),u=d("list",t),m=(0,r.default)(`${u}-item-meta`,a),p=n.default.createElement("div",{className:`${u}-item-meta-content`},l&&n.default.createElement("h4",{className:`${u}-item-meta-title`},l),s&&n.default.createElement("div",{className:`${u}-item-meta-description`},s));return n.default.createElement("div",Object.assign({},c,{className:m}),i&&n.default.createElement("div",{className:`${u}-item-meta-avatar`},i),(l||s)&&p)},e.i(296059);var b=e.i(915654),y=e.i(183293),$=e.i(246422),x=e.i(838378);let k=(0,$.genStyleHooks)("List",e=>{let t=(0,x.mergeToken)(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG});return[(e=>{let{componentCls:t,antCls:n,controlHeight:r,minHeight:a,paddingSM:i,marginLG:o,padding:l,itemPadding:s,colorPrimary:c,itemPaddingSM:d,itemPaddingLG:u,paddingXS:m,margin:p,colorText:f,colorTextDescription:g,motionDurationSlow:v,lineWidth:h,headerBg:$,footerBg:x,emptyTextPadding:k,metaMarginBottom:C,avatarMarginRight:O,titleMarginBottom:w,descriptionFontSize:S}=e;return{[t]:Object.assign(Object.assign({},(0,y.resetComponent)(e)),{position:"relative","--rc-virtual-list-scrollbar-bg":e.colorSplit,"*":{outline:"none"},[`${t}-header`]:{background:$},[`${t}-footer`]:{background:x},[`${t}-header, ${t}-footer`]:{paddingBlock:i},[`${t}-pagination`]:{marginBlockStart:o,[`${n}-pagination-options`]:{textAlign:"start"}},[`${t}-spin`]:{minHeight:a,textAlign:"center"},[`${t}-items`]:{margin:0,padding:0,listStyle:"none"},[`${t}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:s,color:f,[`${t}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${t}-item-meta-avatar`]:{marginInlineEnd:O},[`${t}-item-meta-content`]:{flex:"1 0",width:0,color:f},[`${t}-item-meta-title`]:{margin:`0 0 ${(0,b.unit)(e.marginXXS)} 0`,color:f,fontSize:e.fontSize,lineHeight:e.lineHeight,"> a":{color:f,transition:`all ${v}`,"&:hover":{color:c}}},[`${t}-item-meta-description`]:{color:g,fontSize:S,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:"0 0 auto",marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:"none","& > li":{position:"relative",display:"inline-block",padding:`0 ${(0,b.unit)(m)}`,color:g,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:"center","&:first-child":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:h,height:e.calc(e.fontHeight).sub(e.calc(e.marginXXS).mul(2)).equal(),transform:"translateY(-50%)",backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${(0,b.unit)(l)} 0`,color:g,fontSize:e.fontSizeSM,textAlign:"center"},[`${t}-empty-text`]:{padding:k,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:"center"},[`${t}-item-no-flex`]:{display:"block"}}),[`${t}-grid ${n}-col > ${t}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:p,paddingBlock:0,borderBlockEnd:"none"},[`${t}-vertical ${t}-item`]:{alignItems:"initial",[`${t}-item-main`]:{display:"block",flex:1},[`${t}-item-extra`]:{marginInlineStart:o},[`${t}-item-meta`]:{marginBlockEnd:C,[`${t}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:w,color:f,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:l,marginInlineStart:"auto","> li":{padding:`0 ${(0,b.unit)(l)}`,"&:first-child":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBlockEnd:"none"}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:r},[`${t}-split${t}-something-after-last-item ${n}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:u},[`${t}-sm ${t}-item`]:{padding:d},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:"right"}}}}})(t),(e=>{let{listBorderedCls:t,componentCls:n,paddingLG:r,margin:a,itemPaddingSM:i,itemPaddingLG:o,marginLG:l,borderRadiusLG:s}=e,c=(0,b.unit)(e.calc(s).sub(e.lineWidth).equal());return{[t]:{border:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:s,[`${n}-header`]:{borderRadius:`${c} ${c} 0 0`},[`${n}-footer`]:{borderRadius:`0 0 ${c} ${c}`},[`${n}-header,${n}-footer,${n}-item`]:{paddingInline:r},[`${n}-pagination`]:{margin:`${(0,b.unit)(a)} ${(0,b.unit)(l)}`}},[`${t}${n}-sm`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:i}},[`${t}${n}-lg`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:o}}}})(t),(e=>{let{componentCls:t,screenSM:n,screenMD:r,marginLG:a,marginSM:i,margin:o}=e;return{[`@media screen and (max-width:${r}px)`]:{[t]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:a}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:a}}}},[`@media screen and (max-width: ${n}px)`]:{[t]:{[`${t}-item`]:{flexWrap:"wrap",[`${t}-action`]:{marginInlineStart:i}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:"wrap-reverse",[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${(0,b.unit)(o)}`}}}}}})(t)]},e=>({contentWidth:220,itemPadding:`${(0,b.unit)(e.paddingContentVertical)} 0`,itemPaddingSM:`${(0,b.unit)(e.paddingContentVerticalSM)} ${(0,b.unit)(e.paddingContentHorizontal)}`,itemPaddingLG:`${(0,b.unit)(e.paddingContentVerticalLG)} ${(0,b.unit)(e.paddingContentHorizontalLG)}`,headerBg:"transparent",footerBg:"transparent",emptyTextPadding:e.padding,metaMarginBottom:e.padding,avatarMarginRight:e.padding,titleMarginBottom:e.paddingSM,descriptionFontSize:e.fontSize}));var C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let O=n.forwardRef(function(e,f){let{pagination:g=!1,prefixCls:v,bordered:h=!1,split:b=!0,className:y,rootClassName:$,style:x,children:O,itemLayout:w,loadMore:S,grid:A,dataSource:I=[],size:E,header:j,footer:N,loading:M=!1,rowKey:z,renderItem:P,locale:D}=e,_=C(e,["pagination","prefixCls","bordered","split","className","rootClassName","style","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),R=g&&"object"==typeof g?g:{},[L,T]=n.useState(R.defaultCurrent||1),[W,B]=n.useState(R.defaultPageSize||10),{getPrefixCls:V,direction:H,className:F,style:G}=(0,o.useComponentConfig)("list"),{renderEmpty:X}=n.useContext(o.ConfigContext),q=e=>(t,n)=>{var r;T(t),B(n),g&&(null==(r=null==g?void 0:g[e])||r.call(g,t,n))},K=q("onChange"),U=q("onShowSizeChange"),Y=!!(S||g||N),J=V("list",v),[Q,Z,ee]=k(J),et=M;"boolean"==typeof et&&(et={spinning:et});let en=!!(null==et?void 0:et.spinning),er=(0,s.default)(E),ea="";switch(er){case"large":ea="lg";break;case"small":ea="sm"}let ei=(0,r.default)(J,{[`${J}-vertical`]:"vertical"===w,[`${J}-${ea}`]:ea,[`${J}-split`]:b,[`${J}-bordered`]:h,[`${J}-loading`]:en,[`${J}-grid`]:!!A,[`${J}-something-after-last-item`]:Y,[`${J}-rtl`]:"rtl"===H},F,y,$,Z,ee),eo=(0,a.default)({current:1,total:0,position:"bottom"},{total:I.length,current:L,pageSize:W},g||{}),el=Math.ceil(eo.total/eo.pageSize);eo.current=Math.min(eo.current,el);let es=g&&n.createElement("div",{className:(0,r.default)(`${J}-pagination`)},n.createElement(u.default,Object.assign({align:"end"},eo,{onChange:K,onShowSizeChange:U}))),ec=(0,t.default)(I);g&&I.length>(eo.current-1)*eo.pageSize&&(ec=(0,t.default)(I).splice((eo.current-1)*eo.pageSize,eo.pageSize));let ed=Object.keys(A||{}).some(e=>["xs","sm","md","lg","xl","xxl"].includes(e)),eu=(0,d.default)(ed),em=n.useMemo(()=>{for(let e=0;e{if(!A)return;let e=em&&A[em]?A[em]:A.column;if(e)return{width:`${100/e}%`,maxWidth:`${100/e}%`}},[JSON.stringify(A),em]),ef=en&&n.createElement("div",{style:{minHeight:53}});if(ec.length>0){let e=ec.map((e,t)=>{let r;return P?((r="function"==typeof z?z(e):z?e[z]:e.key)||(r=`list-item-${t}`),n.createElement(n.Fragment,{key:r},P(e,t))):null});ef=A?n.createElement(c.Row,{gutter:A.gutter},n.Children.map(e,e=>n.createElement("div",{key:null==e?void 0:e.key,style:ep},e))):n.createElement("ul",{className:`${J}-items`},e)}else O||en||(ef=n.createElement("div",{className:`${J}-empty-text`},(null==D?void 0:D.emptyText)||(null==X?void 0:X("List"))||n.createElement(l.default,{componentName:"List"})));let eg=eo.position,ev=n.useMemo(()=>({grid:A,itemLayout:w}),[JSON.stringify(A),w]);return Q(n.createElement(p.Provider,{value:ev},n.createElement("div",Object.assign({ref:f,style:Object.assign(Object.assign({},G),x),className:ei},_),("top"===eg||"both"===eg)&&es,j&&n.createElement("div",{className:`${J}-header`},j),n.createElement(m.default,Object.assign({},et),ef,O),N&&n.createElement("div",{className:`${J}-footer`},N),S||("bottom"===eg||"both"===eg)&&es)))});O.Item=h,e.s(["List",0,O],573421)},608856,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),r=e.i(209428),a=e.i(392221),i=e.i(951160),o=e.i(174428),l=t.createContext(null),s=t.createContext({}),c=e.i(211577),d=e.i(931067),u=e.i(361275),m=e.i(404948),p=e.i(244009),f=e.i(703923),g=e.i(611935),v=["prefixCls","className","containerRef"];let h=function(e){var r=e.prefixCls,a=e.className,i=e.containerRef,o=(0,f.default)(e,v),l=t.useContext(s).panel,c=(0,g.useComposeRef)(l,i);return t.createElement("div",(0,d.default)({className:(0,n.default)("".concat(r,"-content"),a),role:"dialog",ref:c},(0,p.default)(e,{aria:!0}),{"aria-modal":"true"},o))};var b=e.i(883110);function y(e){return"string"==typeof e&&String(Number(e))===e?((0,b.default)(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}e.i(654310);var $={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"},x=t.forwardRef(function(e,i){var o,s,f,g=e.prefixCls,v=e.open,b=e.placement,x=e.inline,k=e.push,C=e.forceRender,O=e.autoFocus,w=e.keyboard,S=e.classNames,A=e.rootClassName,I=e.rootStyle,E=e.zIndex,j=e.className,N=e.id,M=e.style,z=e.motion,P=e.width,D=e.height,_=e.children,R=e.mask,L=e.maskClosable,T=e.maskMotion,W=e.maskClassName,B=e.maskStyle,V=e.afterOpenChange,H=e.onClose,F=e.onMouseEnter,G=e.onMouseOver,X=e.onMouseLeave,q=e.onClick,K=e.onKeyDown,U=e.onKeyUp,Y=e.styles,J=e.drawerRender,Q=t.useRef(),Z=t.useRef(),ee=t.useRef();t.useImperativeHandle(i,function(){return Q.current}),t.useEffect(function(){if(v&&O){var e;null==(e=Q.current)||e.focus({preventScroll:!0})}},[v]);var et=t.useState(!1),en=(0,a.default)(et,2),er=en[0],ea=en[1],ei=t.useContext(l),eo=null!=(o=null!=(s=null==(f="boolean"==typeof k?k?{}:{distance:0}:k||{})?void 0:f.distance)?s:null==ei?void 0:ei.pushDistance)?o:180,el=t.useMemo(function(){return{pushDistance:eo,push:function(){ea(!0)},pull:function(){ea(!1)}}},[eo]);t.useEffect(function(){var e,t;v?null==ei||null==(e=ei.push)||e.call(ei):null==ei||null==(t=ei.pull)||t.call(ei)},[v]),t.useEffect(function(){return function(){var e;null==ei||null==(e=ei.pull)||e.call(ei)}},[]);var es=t.createElement(u.default,(0,d.default)({key:"mask"},T,{visible:R&&v}),function(e,a){var i=e.className,o=e.style;return t.createElement("div",{className:(0,n.default)("".concat(g,"-mask"),i,null==S?void 0:S.mask,W),style:(0,r.default)((0,r.default)((0,r.default)({},o),B),null==Y?void 0:Y.mask),onClick:L&&v?H:void 0,ref:a})}),ec="function"==typeof z?z(b):z,ed={};if(er&&eo)switch(b){case"top":ed.transform="translateY(".concat(eo,"px)");break;case"bottom":ed.transform="translateY(".concat(-eo,"px)");break;case"left":ed.transform="translateX(".concat(eo,"px)");break;default:ed.transform="translateX(".concat(-eo,"px)")}"left"===b||"right"===b?ed.width=y(P):ed.height=y(D);var eu={onMouseEnter:F,onMouseOver:G,onMouseLeave:X,onClick:q,onKeyDown:K,onKeyUp:U},em=t.createElement(u.default,(0,d.default)({key:"panel"},ec,{visible:v,forceRender:C,onVisibleChanged:function(e){null==V||V(e)},removeOnLeave:!1,leavedClassName:"".concat(g,"-content-wrapper-hidden")}),function(a,i){var o=a.className,l=a.style,s=t.createElement(h,(0,d.default)({id:N,containerRef:i,prefixCls:g,className:(0,n.default)(j,null==S?void 0:S.content),style:(0,r.default)((0,r.default)({},M),null==Y?void 0:Y.content)},(0,p.default)(e,{aria:!0}),eu),_);return t.createElement("div",(0,d.default)({className:(0,n.default)("".concat(g,"-content-wrapper"),null==S?void 0:S.wrapper,o),style:(0,r.default)((0,r.default)((0,r.default)({},ed),l),null==Y?void 0:Y.wrapper)},(0,p.default)(e,{data:!0})),J?J(s):s)}),ep=(0,r.default)({},I);return E&&(ep.zIndex=E),t.createElement(l.Provider,{value:el},t.createElement("div",{className:(0,n.default)(g,"".concat(g,"-").concat(b),A,(0,c.default)((0,c.default)({},"".concat(g,"-open"),v),"".concat(g,"-inline"),x)),style:ep,tabIndex:-1,ref:Q,onKeyDown:function(e){var t,n,r=e.keyCode,a=e.shiftKey;switch(r){case m.default.TAB:r===m.default.TAB&&(a||document.activeElement!==ee.current?a&&document.activeElement===Z.current&&(null==(n=ee.current)||n.focus({preventScroll:!0})):null==(t=Z.current)||t.focus({preventScroll:!0}));break;case m.default.ESC:H&&w&&(e.stopPropagation(),H(e))}}},es,t.createElement("div",{tabIndex:0,ref:Z,style:$,"aria-hidden":"true","data-sentinel":"start"}),em,t.createElement("div",{tabIndex:0,ref:ee,style:$,"aria-hidden":"true","data-sentinel":"end"})))});let k=function(e){var n=e.open,l=e.prefixCls,c=e.placement,d=e.autoFocus,u=e.keyboard,m=e.width,p=e.mask,f=void 0===p||p,g=e.maskClosable,v=e.getContainer,h=e.forceRender,b=e.afterOpenChange,y=e.destroyOnClose,$=e.onMouseEnter,k=e.onMouseOver,C=e.onMouseLeave,O=e.onClick,w=e.onKeyDown,S=e.onKeyUp,A=e.panelRef,I=t.useState(!1),E=(0,a.default)(I,2),j=E[0],N=E[1],M=t.useState(!1),z=(0,a.default)(M,2),P=z[0],D=z[1];(0,o.default)(function(){D(!0)},[]);var _=!!P&&void 0!==n&&n,R=t.useRef(),L=t.useRef();(0,o.default)(function(){_&&(L.current=document.activeElement)},[_]);var T=t.useMemo(function(){return{panel:A}},[A]);if(!h&&!j&&!_&&y)return null;var W=(0,r.default)((0,r.default)({},e),{},{open:_,prefixCls:void 0===l?"rc-drawer":l,placement:void 0===c?"right":c,autoFocus:void 0===d||d,keyboard:void 0===u||u,width:void 0===m?378:m,mask:f,maskClosable:void 0===g||g,inline:!1===v,afterOpenChange:function(e){var t,n;N(e),null==b||b(e),e||!L.current||null!=(t=R.current)&&t.contains(L.current)||null==(n=L.current)||n.focus({preventScroll:!0})},ref:R},{onMouseEnter:$,onMouseOver:k,onMouseLeave:C,onClick:O,onKeyDown:w,onKeyUp:S});return t.createElement(s.Provider,{value:T},t.createElement(i.default,{open:_||h||j,autoDestroy:!1,getContainer:v,autoLock:f&&(_||j)},t.createElement(x,W)))};var C=e.i(981444),O=e.i(617206),w=e.i(122767),S=e.i(613541),A=e.i(340010),I=e.i(242064),E=e.i(922611),j=e.i(563113),N=e.i(185793);let M=e=>{var r,a,i,o;let l,{prefixCls:s,ariaId:c,title:d,footer:u,extra:m,closable:p,loading:f,onClose:g,headerStyle:v,bodyStyle:h,footerStyle:b,children:y,classNames:$,styles:x}=e,k=(0,I.useComponentConfig)("drawer");l=!1===p?void 0:void 0===p||!0===p?"start":(null==p?void 0:p.placement)==="end"?"end":"start";let C=t.useCallback(e=>t.createElement("button",{type:"button",onClick:g,className:(0,n.default)(`${s}-close`,{[`${s}-close-${l}`]:"end"===l})},e),[g,s,l]),[O,w]=(0,j.useClosable)((0,j.pickClosable)(e),(0,j.pickClosable)(k),{closable:!0,closeIconRender:C});return t.createElement(t.Fragment,null,d||O?t.createElement("div",{style:Object.assign(Object.assign(Object.assign({},null==(i=k.styles)?void 0:i.header),v),null==x?void 0:x.header),className:(0,n.default)(`${s}-header`,{[`${s}-header-close-only`]:O&&!d&&!m},null==(o=k.classNames)?void 0:o.header,null==$?void 0:$.header)},t.createElement("div",{className:`${s}-header-title`},"start"===l&&w,d&&t.createElement("div",{className:`${s}-title`,id:c},d)),m&&t.createElement("div",{className:`${s}-extra`},m),"end"===l&&w):null,t.createElement("div",{className:(0,n.default)(`${s}-body`,null==$?void 0:$.body,null==(r=k.classNames)?void 0:r.body),style:Object.assign(Object.assign(Object.assign({},null==(a=k.styles)?void 0:a.body),h),null==x?void 0:x.body)},f?t.createElement(N.default,{active:!0,title:!1,paragraph:{rows:5},className:`${s}-body-skeleton`}):y),(()=>{var e,r;if(!u)return null;let a=`${s}-footer`;return t.createElement("div",{className:(0,n.default)(a,null==(e=k.classNames)?void 0:e.footer,null==$?void 0:$.footer),style:Object.assign(Object.assign(Object.assign({},null==(r=k.styles)?void 0:r.footer),b),null==x?void 0:x.footer)},u)})())};e.i(296059);var z=e.i(915654),P=e.i(183293),D=e.i(246422),_=e.i(838378);let R=(e,t)=>({"&-enter, &-appear":Object.assign(Object.assign({},e),{"&-active":t}),"&-leave":Object.assign(Object.assign({},t),{"&-active":e})}),L=(e,t)=>Object.assign({"&-enter, &-appear, &-leave":{"&-start":{transition:"none"},"&-active":{transition:`all ${t}`}}},R({opacity:e},{opacity:1})),T=(0,D.genStyleHooks)("Drawer",e=>{let t=(0,_.mergeToken)(e,{});return[(e=>{let{borderRadiusSM:t,componentCls:n,zIndexPopup:r,colorBgMask:a,colorBgElevated:i,motionDurationSlow:o,motionDurationMid:l,paddingXS:s,padding:c,paddingLG:d,fontSizeLG:u,lineHeightLG:m,lineWidth:p,lineType:f,colorSplit:g,marginXS:v,colorIcon:h,colorIconHover:b,colorBgTextHover:y,colorBgTextActive:$,colorText:x,fontWeightStrong:k,footerPaddingBlock:C,footerPaddingInline:O,calc:w}=e,S=`${n}-content-wrapper`;return{[n]:{position:"fixed",inset:0,zIndex:r,pointerEvents:"none",color:x,"&-pure":{position:"relative",background:i,display:"flex",flexDirection:"column",[`&${n}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${n}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${n}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${n}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:"absolute"},[`${n}-mask`]:{position:"absolute",inset:0,zIndex:r,background:a,pointerEvents:"auto"},[S]:{position:"absolute",zIndex:r,maxWidth:"100vw",transition:`all ${o}`,"&-hidden":{display:"none"}},[`&-left > ${S}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${S}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${S}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${S}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${n}-content`]:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"auto",background:i,pointerEvents:"auto"},[`${n}-header`]:{display:"flex",flex:0,alignItems:"center",padding:`${(0,z.unit)(c)} ${(0,z.unit)(d)}`,fontSize:u,lineHeight:m,borderBottom:`${(0,z.unit)(p)} ${f} ${g}`,"&-title":{display:"flex",flex:1,alignItems:"center",minWidth:0,minHeight:0}},[`${n}-extra`]:{flex:"none"},[`${n}-close`]:Object.assign({display:"inline-flex",width:w(u).add(s).equal(),height:w(u).add(s).equal(),borderRadius:t,justifyContent:"center",alignItems:"center",color:h,fontWeight:k,fontSize:u,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",textDecoration:"none",background:"transparent",border:0,cursor:"pointer",transition:`all ${l}`,textRendering:"auto",[`&${n}-close-end`]:{marginInlineStart:v},[`&:not(${n}-close-end)`]:{marginInlineEnd:v},"&:hover":{color:b,backgroundColor:y,textDecoration:"none"},"&:active":{backgroundColor:$}},(0,P.genFocusStyle)(e)),[`${n}-title`]:{flex:1,margin:0,fontWeight:e.fontWeightStrong,fontSize:u,lineHeight:m},[`${n}-body`]:{flex:1,minWidth:0,minHeight:0,padding:d,overflow:"auto",[`${n}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center"}},[`${n}-footer`]:{flexShrink:0,padding:`${(0,z.unit)(C)} ${(0,z.unit)(O)}`,borderTop:`${(0,z.unit)(p)} ${f} ${g}`},"&-rtl":{direction:"rtl"}}}})(t),(e=>{let{componentCls:t,motionDurationSlow:n}=e;return{[t]:{[`${t}-mask-motion`]:L(0,n),[`${t}-panel-motion`]:["left","right","top","bottom"].reduce((e,t)=>{let r;return Object.assign(Object.assign({},e),{[`&-${t}`]:[L(.7,n),R({transform:(r="100%",({left:`translateX(-${r})`,right:`translateX(${r})`,top:`translateY(-${r})`,bottom:`translateY(${r})`})[t])},{transform:"none"})]})},{})}}})(t)]},e=>({zIndexPopup:e.zIndexPopupBase,footerPaddingBlock:e.paddingXS,footerPaddingInline:e.padding}));var W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let B={distance:180},V=e=>{let{rootClassName:r,width:a,height:i,size:o="default",mask:l=!0,push:s=B,open:c,afterOpenChange:d,onClose:u,prefixCls:m,getContainer:p,panelRef:f=null,style:v,className:h,"aria-labelledby":b,visible:y,afterVisibleChange:$,maskStyle:x,drawerStyle:j,contentWrapperStyle:N,destroyOnClose:z,destroyOnHidden:P}=e,D=W(e,["rootClassName","width","height","size","mask","push","open","afterOpenChange","onClose","prefixCls","getContainer","panelRef","style","className","aria-labelledby","visible","afterVisibleChange","maskStyle","drawerStyle","contentWrapperStyle","destroyOnClose","destroyOnHidden"]),_=(0,C.default)(),R=D.title?_:void 0,{getPopupContainer:L,getPrefixCls:V,direction:H,className:F,style:G,classNames:X,styles:q}=(0,I.useComponentConfig)("drawer"),K=V("drawer",m),[U,Y,J]=T(K),Q=void 0===p&&L?()=>L(document.body):p,Z=(0,n.default)({"no-mask":!l,[`${K}-rtl`]:"rtl"===H},r,Y,J),ee=t.useMemo(()=>null!=a?a:"large"===o?736:378,[a,o]),et=t.useMemo(()=>null!=i?i:"large"===o?736:378,[i,o]),en={motionName:(0,S.getTransitionName)(K,"mask-motion"),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500},er=(0,E.usePanelRef)(),ea=(0,g.composeRef)(f,er),[ei,eo]=(0,w.useZIndex)("Drawer",D.zIndex),{classNames:el={},styles:es={}}=D;return U(t.createElement(O.default,{form:!0,space:!0},t.createElement(A.default.Provider,{value:eo},t.createElement(k,Object.assign({prefixCls:K,onClose:u,maskMotion:en,motion:e=>({motionName:(0,S.getTransitionName)(K,`panel-motion-${e}`),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500})},D,{classNames:{mask:(0,n.default)(el.mask,X.mask),content:(0,n.default)(el.content,X.content),wrapper:(0,n.default)(el.wrapper,X.wrapper)},styles:{mask:Object.assign(Object.assign(Object.assign({},es.mask),x),q.mask),content:Object.assign(Object.assign(Object.assign({},es.content),j),q.content),wrapper:Object.assign(Object.assign(Object.assign({},es.wrapper),N),q.wrapper)},open:null!=c?c:y,mask:l,push:s,width:ee,height:et,style:Object.assign(Object.assign({},G),v),className:(0,n.default)(F,h),rootClassName:Z,getContainer:Q,afterOpenChange:null!=d?d:$,panelRef:ea,zIndex:ei,"aria-labelledby":null!=b?b:R,destroyOnClose:null!=P?P:z}),t.createElement(M,Object.assign({prefixCls:K},D,{ariaId:R,onClose:u}))))))};V._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,style:a,className:i,placement:o="right"}=e,l=W(e,["prefixCls","style","className","placement"]),{getPrefixCls:s}=t.useContext(I.ConfigContext),c=s("drawer",r),[d,u,m]=T(c),p=(0,n.default)(c,`${c}-pure`,`${c}-${o}`,u,m,i);return d(t.createElement("div",{className:p,style:a},t.createElement(M,Object.assign({prefixCls:c},l))))},e.s(["Drawer",0,V],608856)},675879,e=>{"use strict";var t=e.i(843476),n=e.i(191403),r=e.i(135214);e.s(["default",0,()=>{let{accessToken:e}=(0,r.default)();return(0,t.jsx)(n.default,{accessToken:e})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/87a251aeda49f573.js b/litellm/proxy/_experimental/out/_next/static/chunks/1ab4ccc7c0ba9eff.js similarity index 65% rename from litellm/proxy/_experimental/out/_next/static/chunks/87a251aeda49f573.js rename to litellm/proxy/_experimental/out/_next/static/chunks/1ab4ccc7c0ba9eff.js index abfbd9d5b5a..72a6c4543bc 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/87a251aeda49f573.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/1ab4ccc7c0ba9eff.js @@ -1,14 +1,14 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,735049,e=>{"use strict";var t=e.i(654310),n=function(e){if((0,t.default)()&&window.document.documentElement){var n=Array.isArray(e)?e:[e],l=window.document.documentElement;return n.some(function(e){return e in l.style})}return!1},l=function(e,t){if(!n(e))return!1;var l=document.createElement("div"),a=l.style[e];return l.style[e]=t,l.style[e]!==a};function a(e,t){return Array.isArray(e)||void 0===t?n(e):l(e,t)}e.s(["isStyleSupport",()=>a])},563113,887719,e=>{"use strict";var t=e.i(271645),n=e.i(864517),l=e.i(244009),a=e.i(408850),o=e.i(87414);let r=function(...e){let t={};return e.forEach(e=>{e&&Object.keys(e).forEach(n=>{void 0!==e[n]&&(t[n]=e[n])})}),t};function i(e){if(!e)return;let{closable:t,closeIcon:n}=e;return{closable:t,closeIcon:n}}function s(e){let{closable:n,closeIcon:l}=e||{};return t.default.useMemo(()=>{if(!n&&(!1===n||!1===l||null===l))return!1;if(void 0===n&&void 0===l)return null;let e={closeIcon:"boolean"!=typeof l&&null!==l?l:void 0};return n&&"object"==typeof n&&(e=Object.assign(Object.assign({},e),n)),e},[n,l])}e.s(["default",0,r],887719);let c={};e.s(["pickClosable",()=>i,"useClosable",0,(e,i,u=c)=>{let d=s(e),f=s(i),[m]=(0,a.useLocale)("global",o.default.global),g="boolean"!=typeof d&&!!(null==d?void 0:d.disabled),p=t.default.useMemo(()=>Object.assign({closeIcon:t.default.createElement(n.default,null)},u),[u]),b=t.default.useMemo(()=>!1!==d&&(d?r(p,f,d):!1!==f&&(f?r(p,f):!!p.closable&&p)),[d,f,p]);return t.default.useMemo(()=>{var e,n;if(!1===b)return[!1,null,g,{}];let{closeIconRender:a}=p,{closeIcon:o}=b,r=o,i=(0,l.default)(b,!0);return null!=r&&(a&&(r=a(o)),r=t.default.isValidElement(r)?t.default.cloneElement(r,Object.assign(Object.assign(Object.assign({},r.props),{"aria-label":null!=(n=null==(e=r.props)?void 0:e["aria-label"])?n:m.close}),i)):t.default.createElement("span",Object.assign({"aria-label":m.close},i),r)),[!0,r,g,i]},[g,m.close,b,p])}],563113)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),l=e.i(242064),a=e.i(529681);let o=e=>{let{prefixCls:l,className:a,style:o,size:r,shape:i}=e,s=(0,n.default)({[`${l}-lg`]:"large"===r,[`${l}-sm`]:"small"===r}),c=(0,n.default)({[`${l}-circle`]:"circle"===i,[`${l}-square`]:"square"===i,[`${l}-round`]:"round"===i}),u=t.useMemo(()=>"number"==typeof r?{width:r,height:r,lineHeight:`${r}px`}:{},[r]);return t.createElement("span",{className:(0,n.default)(l,s,c,a),style:Object.assign(Object.assign({},u),o)})};e.i(296059);var r=e.i(694758),i=e.i(915654),s=e.i(246422),c=e.i(838378);let u=new r.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),d=e=>({height:e,lineHeight:(0,i.unit)(e)}),f=e=>Object.assign({width:e},d(e)),m=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},d(e)),g=e=>Object.assign({width:e},d(e)),p=(e,t,n)=>{let{skeletonButtonCls:l}=e;return{[`${n}${l}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${l}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},d(e)),v=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:n}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:l,skeletonParagraphCls:a,skeletonButtonCls:o,skeletonInputCls:r,skeletonImageCls:i,controlHeight:s,controlHeightLG:c,controlHeightSM:d,gradientFromColor:v,padding:y,marginSM:$,borderRadius:C,titleHeight:h,blockRadius:x,paragraphLiHeight:O,controlHeightXS:E,paragraphMarginTop:j}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:y,verticalAlign:"top",[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:v},f(s)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:Object.assign({},f(c)),[`${n}-sm`]:Object.assign({},f(d))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[l]:{width:"100%",height:h,background:v,borderRadius:x,[`+ ${a}`]:{marginBlockStart:d}},[a]:{padding:0,"> li":{width:"100%",height:O,listStyle:"none",background:v,borderRadius:x,"+ li":{marginBlockStart:E}}},[`${a}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${l}, ${a} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[l]:{marginBlockStart:$,[`+ ${a}`]:{marginBlockStart:j}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:l,controlHeightLG:a,controlHeightSM:o,gradientFromColor:r,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:r,borderRadius:t,width:i(l).mul(2).equal(),minWidth:i(l).mul(2).equal()},b(l,i))},p(e,l,n)),{[`${n}-lg`]:Object.assign({},b(a,i))}),p(e,a,`${n}-lg`)),{[`${n}-sm`]:Object.assign({},b(o,i))}),p(e,o,`${n}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:n,controlHeight:l,controlHeightLG:a,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:n},f(l)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},f(a)),[`${t}${t}-sm`]:Object.assign({},f(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:n,skeletonInputCls:l,controlHeightLG:a,controlHeightSM:o,gradientFromColor:r,calc:i}=e;return{[l]:Object.assign({display:"inline-block",verticalAlign:"top",background:r,borderRadius:n},m(t,i)),[`${l}-lg`]:Object.assign({},m(a,i)),[`${l}-sm`]:Object.assign({},m(o,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:n,gradientFromColor:l,borderRadiusSM:a,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:l,borderRadius:a},g(o(n).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},g(n)),{maxWidth:o(n).mul(4).equal(),maxHeight:o(n).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[r]:{width:"100%"}},[`${t}${t}-active`]:{[` +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,563113,887719,e=>{"use strict";var t=e.i(271645),n=e.i(864517),l=e.i(244009),a=e.i(408850),o=e.i(87414);let r=function(...e){let t={};return e.forEach(e=>{e&&Object.keys(e).forEach(n=>{void 0!==e[n]&&(t[n]=e[n])})}),t};function i(e){if(!e)return;let{closable:t,closeIcon:n}=e;return{closable:t,closeIcon:n}}function s(e){let{closable:n,closeIcon:l}=e||{};return t.default.useMemo(()=>{if(!n&&(!1===n||!1===l||null===l))return!1;if(void 0===n&&void 0===l)return null;let e={closeIcon:"boolean"!=typeof l&&null!==l?l:void 0};return n&&"object"==typeof n&&(e=Object.assign(Object.assign({},e),n)),e},[n,l])}e.s(["default",0,r],887719);let c={};e.s(["pickClosable",()=>i,"useClosable",0,(e,i,u=c)=>{let d=s(e),f=s(i),[m]=(0,a.useLocale)("global",o.default.global),g="boolean"!=typeof d&&!!(null==d?void 0:d.disabled),p=t.default.useMemo(()=>Object.assign({closeIcon:t.default.createElement(n.default,null)},u),[u]),b=t.default.useMemo(()=>!1!==d&&(d?r(p,f,d):!1!==f&&(f?r(p,f):!!p.closable&&p)),[d,f,p]);return t.default.useMemo(()=>{var e,n;if(!1===b)return[!1,null,g,{}];let{closeIconRender:a}=p,{closeIcon:o}=b,r=o,i=(0,l.default)(b,!0);return null!=r&&(a&&(r=a(o)),r=t.default.isValidElement(r)?t.default.cloneElement(r,Object.assign(Object.assign(Object.assign({},r.props),{"aria-label":null!=(n=null==(e=r.props)?void 0:e["aria-label"])?n:m.close}),i)):t.default.createElement("span",Object.assign({"aria-label":m.close},i),r)),[!0,r,g,i]},[g,m.close,b,p])}],563113)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),l=e.i(242064),a=e.i(529681);let o=e=>{let{prefixCls:l,className:a,style:o,size:r,shape:i}=e,s=(0,n.default)({[`${l}-lg`]:"large"===r,[`${l}-sm`]:"small"===r}),c=(0,n.default)({[`${l}-circle`]:"circle"===i,[`${l}-square`]:"square"===i,[`${l}-round`]:"round"===i}),u=t.useMemo(()=>"number"==typeof r?{width:r,height:r,lineHeight:`${r}px`}:{},[r]);return t.createElement("span",{className:(0,n.default)(l,s,c,a),style:Object.assign(Object.assign({},u),o)})};e.i(296059);var r=e.i(694758),i=e.i(915654),s=e.i(246422),c=e.i(838378);let u=new r.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),d=e=>({height:e,lineHeight:(0,i.unit)(e)}),f=e=>Object.assign({width:e},d(e)),m=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},d(e)),g=e=>Object.assign({width:e},d(e)),p=(e,t,n)=>{let{skeletonButtonCls:l}=e;return{[`${n}${l}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${l}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},d(e)),v=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:n}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:l,skeletonParagraphCls:a,skeletonButtonCls:o,skeletonInputCls:r,skeletonImageCls:i,controlHeight:s,controlHeightLG:c,controlHeightSM:d,gradientFromColor:v,padding:$,marginSM:C,borderRadius:y,titleHeight:h,blockRadius:x,paragraphLiHeight:O,controlHeightXS:j,paragraphMarginTop:E}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:$,verticalAlign:"top",[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:v},f(s)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:Object.assign({},f(c)),[`${n}-sm`]:Object.assign({},f(d))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[l]:{width:"100%",height:h,background:v,borderRadius:x,[`+ ${a}`]:{marginBlockStart:d}},[a]:{padding:0,"> li":{width:"100%",height:O,listStyle:"none",background:v,borderRadius:x,"+ li":{marginBlockStart:j}}},[`${a}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${l}, ${a} > li`]:{borderRadius:y}}},[`${t}-with-avatar ${t}-content`]:{[l]:{marginBlockStart:C,[`+ ${a}`]:{marginBlockStart:E}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:l,controlHeightLG:a,controlHeightSM:o,gradientFromColor:r,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:r,borderRadius:t,width:i(l).mul(2).equal(),minWidth:i(l).mul(2).equal()},b(l,i))},p(e,l,n)),{[`${n}-lg`]:Object.assign({},b(a,i))}),p(e,a,`${n}-lg`)),{[`${n}-sm`]:Object.assign({},b(o,i))}),p(e,o,`${n}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:n,controlHeight:l,controlHeightLG:a,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:n},f(l)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},f(a)),[`${t}${t}-sm`]:Object.assign({},f(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:n,skeletonInputCls:l,controlHeightLG:a,controlHeightSM:o,gradientFromColor:r,calc:i}=e;return{[l]:Object.assign({display:"inline-block",verticalAlign:"top",background:r,borderRadius:n},m(t,i)),[`${l}-lg`]:Object.assign({},m(a,i)),[`${l}-sm`]:Object.assign({},m(o,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:n,gradientFromColor:l,borderRadiusSM:a,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:l,borderRadius:a},g(o(n).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},g(n)),{maxWidth:o(n).mul(4).equal(),maxHeight:o(n).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[r]:{width:"100%"}},[`${t}${t}-active`]:{[` ${l}, ${a} > li, ${n}, ${o}, ${r}, ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:u,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,c.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:n(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:n}=e;return{color:t,colorGradientEnd:n,gradientFromColor:t,gradientToColor:n,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),y=e=>{let{prefixCls:l,className:a,style:o,rows:r=0}=e,i=Array.from({length:r}).map((n,l)=>t.createElement("li",{key:l,style:{width:((e,t)=>{let{width:n,rows:l=2}=t;return Array.isArray(n)?n[e]:l-1===e?n:void 0})(l,e)}}));return t.createElement("ul",{className:(0,n.default)(l,a),style:o},i)},$=({prefixCls:e,className:l,width:a,style:o})=>t.createElement("h3",{className:(0,n.default)(e,l),style:Object.assign({width:a},o)});function C(e){return e&&"object"==typeof e?e:{}}let h=e=>{let{prefixCls:a,loading:r,className:i,rootClassName:s,style:c,children:u,avatar:d=!1,title:f=!0,paragraph:m=!0,active:g,round:p}=e,{getPrefixCls:b,direction:h,className:x,style:O}=(0,l.useComponentConfig)("skeleton"),E=b("skeleton",a),[j,k,w]=v(E);if(r||!("loading"in e)){let e,l,a=!!d,r=!!f,u=!!m;if(a){let n=Object.assign(Object.assign({prefixCls:`${E}-avatar`},r&&!u?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(d));e=t.createElement("div",{className:`${E}-header`},t.createElement(o,Object.assign({},n)))}if(r||u){let e,n;if(r){let n=Object.assign(Object.assign({prefixCls:`${E}-title`},!a&&u?{width:"38%"}:a&&u?{width:"50%"}:{}),C(f));e=t.createElement($,Object.assign({},n))}if(u){let e,l=Object.assign(Object.assign({prefixCls:`${E}-paragraph`},(e={},a&&r||(e.width="61%"),!a&&r?e.rows=3:e.rows=2,e)),C(m));n=t.createElement(y,Object.assign({},l))}l=t.createElement("div",{className:`${E}-content`},e,n)}let b=(0,n.default)(E,{[`${E}-with-avatar`]:a,[`${E}-active`]:g,[`${E}-rtl`]:"rtl"===h,[`${E}-round`]:p},x,i,s,k,w);return j(t.createElement("div",{className:b,style:Object.assign(Object.assign({},O),c)},e,l))}return null!=u?u:null};h.Button=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,block:u=!1,size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),y=(0,a.default)(e,["prefixCls"]),$=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c,[`${m}-block`]:u},i,s,p,b);return g(t.createElement("div",{className:$},t.createElement(o,Object.assign({prefixCls:`${m}-button`,size:d},y))))},h.Avatar=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,shape:u="circle",size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),y=(0,a.default)(e,["prefixCls","className"]),$=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c},i,s,p,b);return g(t.createElement("div",{className:$},t.createElement(o,Object.assign({prefixCls:`${m}-avatar`,shape:u,size:d},y))))},h.Input=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,block:u,size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),y=(0,a.default)(e,["prefixCls"]),$=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c,[`${m}-block`]:u},i,s,p,b);return g(t.createElement("div",{className:$},t.createElement(o,Object.assign({prefixCls:`${m}-input`,size:d},y))))},h.Image=e=>{let{prefixCls:a,className:o,rootClassName:r,style:i,active:s}=e,{getPrefixCls:c}=t.useContext(l.ConfigContext),u=c("skeleton",a),[d,f,m]=v(u),g=(0,n.default)(u,`${u}-element`,{[`${u}-active`]:s},o,r,f,m);return d(t.createElement("div",{className:g},t.createElement("div",{className:(0,n.default)(`${u}-image`,o),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${u}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${u}-image-path`})))))},h.Node=e=>{let{prefixCls:a,className:o,rootClassName:r,style:i,active:s,children:c}=e,{getPrefixCls:u}=t.useContext(l.ConfigContext),d=u("skeleton",a),[f,m,g]=v(d),p=(0,n.default)(d,`${d}-element`,{[`${d}-active`]:s},m,o,r,g);return f(t.createElement("div",{className:p},t.createElement("div",{className:(0,n.default)(`${d}-image`,o),style:i},c)))},e.s(["default",0,h],185793)},212931,285781,922611,709656,e=>{"use strict";let t;e.i(247167);var n=e.i(8211),l=e.i(271645),a=e.i(609587),o=e.i(242064),r=e.i(783164),i=e.i(201072),s=e.i(726289),c=e.i(562901),u=e.i(779573),d=e.i(343794),f=e.i(122767),m=e.i(613541),g=e.i(408850),p=e.i(719581),b=e.i(290967),v=e.i(920228),y=e.i(62405);let $=e=>"function"==typeof(null==e?void 0:e.then),C=e=>{let{type:t,children:n,prefixCls:a,buttonProps:o,close:r,autoFocus:i,emitEvent:s,isSilent:c,quitOnNullishReturnValue:u,actionFn:d}=e,f=l.useRef(!1),m=l.useRef(null),[g,p]=(0,b.default)(!1),C=(...e)=>{null==r||r.apply(void 0,e)};return l.useEffect(()=>{let e=null;return i&&(e=setTimeout(()=>{var e;null==(e=m.current)||e.focus({preventScroll:!0})})),()=>{e&&clearTimeout(e)}},[i]),l.createElement(v.default,Object.assign({},(0,y.convertLegacyProps)(t),{onClick:e=>{let t;if(!f.current){var n;if(f.current=!0,!d)return void C();if(s){if(t=d(e),u&&!$(t)){f.current=!1,C(e);return}}else if(d.length)t=d(r),f.current=!1;else if(!$(t=d()))return void C();$(n=t)&&(p(!0),n.then((...e)=>{p(!1,!0),C.apply(void 0,e),f.current=!1},e=>{if(p(!1,!0),f.current=!1,null==c||!c())return Promise.reject(e)}))}},loading:g,prefixCls:a},o,{ref:m}),n)};e.s(["default",0,C],285781);let h=l.default.createContext({}),{Provider:x}=h,O=()=>{let{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:n,isSilent:a,mergedOkCancel:o,rootPrefixCls:r,close:i,onCancel:s,onConfirm:c}=(0,l.useContext)(h);return o?l.default.createElement(C,{isSilent:a,actionFn:s,close:(...e)=>{null==i||i.apply(void 0,e),null==c||c(!1)},autoFocus:"cancel"===e,buttonProps:t,prefixCls:`${r}-btn`},n):null},E=()=>{let{autoFocusButton:e,close:t,isSilent:n,okButtonProps:a,rootPrefixCls:o,okTextLocale:r,okType:i,onConfirm:s,onOk:c}=(0,l.useContext)(h);return l.default.createElement(C,{isSilent:n,type:i||"primary",actionFn:c,close:(...e)=>{null==t||t.apply(void 0,e),null==s||s(!0)},autoFocus:"ok"===e,buttonProps:a,prefixCls:`${o}-btn`},r)};var j=e.i(864517),k=e.i(931067),w=e.i(392221),S=e.i(951160),N=l.createContext({}),T=e.i(209428),I=e.i(216459),P=e.i(981444),R=e.i(404948),B=e.i(244009);function M(e,t,n){var l=t;return!l&&n&&(l="".concat(e,"-").concat(n)),l}function z(e,t){var n=e["page".concat(t?"Y":"X","Offset")],l="scroll".concat(t?"Top":"Left");if("number"!=typeof n){var a=e.document;"number"!=typeof(n=a.documentElement[l])&&(n=a.body[l])}return n}var H=e.i(361275),q=e.i(410160),A=e.i(611935);let L=l.memo(function(e){return e.children},function(e,t){return!t.shouldUpdate});var F={width:0,height:0,overflow:"hidden",outline:"none"},W={outline:"none"},D=l.default.forwardRef(function(e,t){var n=e.prefixCls,a=e.className,o=e.style,r=e.title,i=e.ariaId,s=e.footer,c=e.closable,u=e.closeIcon,f=e.onClose,m=e.children,g=e.bodyStyle,p=e.bodyProps,b=e.modalRender,v=e.onMouseDown,y=e.onMouseUp,$=e.holderRef,C=e.visible,h=e.forceRender,x=e.width,O=e.height,E=e.classNames,j=e.styles,w=l.default.useContext(N).panel,S=(0,A.useComposeRef)($,w),I=(0,l.useRef)(),P=(0,l.useRef)();l.default.useImperativeHandle(t,function(){return{focus:function(){var e;null==(e=I.current)||e.focus({preventScroll:!0})},changeActive:function(e){var t=document.activeElement;e&&t===P.current?I.current.focus({preventScroll:!0}):e||t!==I.current||P.current.focus({preventScroll:!0})}}});var R={};void 0!==x&&(R.width=x),void 0!==O&&(R.height=O);var M=s?l.default.createElement("div",{className:(0,d.default)("".concat(n,"-footer"),null==E?void 0:E.footer),style:(0,T.default)({},null==j?void 0:j.footer)},s):null,z=r?l.default.createElement("div",{className:(0,d.default)("".concat(n,"-header"),null==E?void 0:E.header),style:(0,T.default)({},null==j?void 0:j.header)},l.default.createElement("div",{className:"".concat(n,"-title"),id:i},r)):null,H=(0,l.useMemo)(function(){return"object"===(0,q.default)(c)&&null!==c?c:c?{closeIcon:null!=u?u:l.default.createElement("span",{className:"".concat(n,"-close-x")})}:{}},[c,u,n]),D=(0,B.default)(H,!0),G="object"===(0,q.default)(c)&&c.disabled,X=c?l.default.createElement("button",(0,k.default)({type:"button",onClick:f,"aria-label":"Close"},D,{className:"".concat(n,"-close"),disabled:G}),H.closeIcon):null,U=l.default.createElement("div",{className:(0,d.default)("".concat(n,"-content"),null==E?void 0:E.content),style:null==j?void 0:j.content},X,z,l.default.createElement("div",(0,k.default)({className:(0,d.default)("".concat(n,"-body"),null==E?void 0:E.body),style:(0,T.default)((0,T.default)({},g),null==j?void 0:j.body)},p),m),M);return l.default.createElement("div",{key:"dialog-element",role:"dialog","aria-labelledby":r?i:null,"aria-modal":"true",ref:S,style:(0,T.default)((0,T.default)({},o),R),className:(0,d.default)(n,a),onMouseDown:v,onMouseUp:y},l.default.createElement("div",{ref:I,tabIndex:0,style:W},l.default.createElement(L,{shouldUpdate:C||h},b?b(U):U)),l.default.createElement("div",{tabIndex:0,ref:P,style:F}))}),G=l.forwardRef(function(e,t){var n=e.prefixCls,a=e.title,o=e.style,r=e.className,i=e.visible,s=e.forceRender,c=e.destroyOnClose,u=e.motionName,f=e.ariaId,m=e.onVisibleChanged,g=e.mousePosition,p=(0,l.useRef)(),b=l.useState(),v=(0,w.default)(b,2),y=v[0],$=v[1],C={};function h(){var e,t,n,l,a,o=(n={left:(t=(e=p.current).getBoundingClientRect()).left,top:t.top},a=(l=e.ownerDocument).defaultView||l.parentWindow,n.left+=z(a),n.top+=z(a,!0),n);$(g&&(g.x||g.y)?"".concat(g.x-o.left,"px ").concat(g.y-o.top,"px"):"")}return y&&(C.transformOrigin=y),l.createElement(H.default,{visible:i,onVisibleChanged:m,onAppearPrepare:h,onEnterPrepare:h,forceRender:s,motionName:u,removeOnLeave:c,ref:p},function(i,s){var c=i.className,u=i.style;return l.createElement(D,(0,k.default)({},e,{ref:t,title:a,ariaId:f,prefixCls:n,holderRef:s,style:(0,T.default)((0,T.default)((0,T.default)({},u),o),C),className:(0,d.default)(r,c)}))})});G.displayName="Content";let X=function(e){var t=e.prefixCls,n=e.style,a=e.visible,o=e.maskProps,r=e.motionName,i=e.className;return l.createElement(H.default,{key:"mask",visible:a,motionName:r,leavedClassName:"".concat(t,"-mask-hidden")},function(e,a){var r=e.className,s=e.style;return l.createElement("div",(0,k.default)({ref:a,style:(0,T.default)((0,T.default)({},s),n),className:(0,d.default)("".concat(t,"-mask"),r,i)},o))})};e.i(883110);let U=function(e){var t=e.prefixCls,n=void 0===t?"rc-dialog":t,a=e.zIndex,o=e.visible,r=void 0!==o&&o,i=e.keyboard,s=void 0===i||i,c=e.focusTriggerAfterClose,u=void 0===c||c,f=e.wrapStyle,m=e.wrapClassName,g=e.wrapProps,p=e.onClose,b=e.afterOpenChange,v=e.afterClose,y=e.transitionName,$=e.animation,C=e.closable,h=e.mask,x=void 0===h||h,O=e.maskTransitionName,E=e.maskAnimation,j=e.maskClosable,S=e.maskStyle,N=e.maskProps,z=e.rootClassName,H=e.classNames,q=e.styles,A=(0,l.useRef)(),L=(0,l.useRef)(),F=(0,l.useRef)(),W=l.useState(r),D=(0,w.default)(W,2),U=D[0],K=D[1],V=(0,P.default)();function Y(e){null==p||p(e)}var _=(0,l.useRef)(!1),Z=(0,l.useRef)(),J=null;(void 0===j||j)&&(J=function(e){_.current?_.current=!1:L.current===e.target&&Y(e)}),(0,l.useEffect)(function(){r&&(K(!0),(0,I.default)(L.current,document.activeElement)||(A.current=document.activeElement))},[r]),(0,l.useEffect)(function(){return function(){clearTimeout(Z.current)}},[]);var Q=(0,T.default)((0,T.default)((0,T.default)({zIndex:a},f),null==q?void 0:q.wrapper),{},{display:U?null:"none"});return l.createElement("div",(0,k.default)({className:(0,d.default)("".concat(n,"-root"),z)},(0,B.default)(e,{data:!0})),l.createElement(X,{prefixCls:n,visible:x&&r,motionName:M(n,O,E),style:(0,T.default)((0,T.default)({zIndex:a},S),null==q?void 0:q.mask),maskProps:N,className:null==H?void 0:H.mask}),l.createElement("div",(0,k.default)({tabIndex:-1,onKeyDown:function(e){if(s&&e.keyCode===R.default.ESC){e.stopPropagation(),Y(e);return}r&&e.keyCode===R.default.TAB&&F.current.changeActive(!e.shiftKey)},className:(0,d.default)("".concat(n,"-wrap"),m,null==H?void 0:H.wrapper),ref:L,onClick:J,style:Q},g),l.createElement(G,(0,k.default)({},e,{onMouseDown:function(){clearTimeout(Z.current),_.current=!0},onMouseUp:function(){Z.current=setTimeout(function(){_.current=!1})},ref:F,closable:void 0===C||C,ariaId:V,prefixCls:n,visible:r&&U,onClose:Y,onVisibleChanged:function(e){if(e){if(!(0,I.default)(L.current,document.activeElement)){var t;null==(t=F.current)||t.focus()}}else{if(K(!1),x&&A.current&&u){try{A.current.focus({preventScroll:!0})}catch(e){}A.current=null}U&&(null==v||v())}null==b||b(e)},motionName:M(n,y,$)}))))};var K=function(e){var t=e.visible,n=e.getContainer,a=e.forceRender,o=e.destroyOnClose,r=void 0!==o&&o,i=e.afterClose,s=e.panelRef,c=l.useState(t),u=(0,w.default)(c,2),d=u[0],f=u[1],m=l.useMemo(function(){return{panel:s}},[s]);return(l.useEffect(function(){t&&f(!0)},[t]),a||!r||d)?l.createElement(N.Provider,{value:m},l.createElement(S.default,{open:t||a||d,autoDestroy:!1,getContainer:n,autoLock:t||d},l.createElement(U,(0,k.default)({},e,{destroyOnClose:r,afterClose:function(){null==i||i(),f(!1)}})))):null};K.displayName="Dialog";var V=e.i(617206),Y=e.i(563113),_=e.i(654310);e.i(735049);var Z=e.i(340010),J=e.i(321883),Q=e.i(185793),ee=e.i(175066);function et(){}let en=l.createContext({add:et,remove:et});function el(e){let t=l.useContext(en),n=l.useRef(null);return(0,ee.default)(l=>{if(l){let a=e?l.querySelector(e):l;a&&(t.add(a),n.current=a)}else t.remove(n.current)})}e.s(["usePanelRef",()=>el],922611);var ea=e.i(937328);let eo=()=>{let{cancelButtonProps:e,cancelTextLocale:t,onCancel:n}=(0,l.useContext)(h);return l.default.createElement(v.default,Object.assign({onClick:n},e),t)},er=()=>{let{confirmLoading:e,okButtonProps:t,okType:n,okTextLocale:a,onOk:o}=(0,l.useContext)(h);return l.default.createElement(v.default,Object.assign({},(0,y.convertLegacyProps)(n),{loading:e,onClick:o},t),a)};var ei=e.i(606780);function es(e,t){return l.default.createElement("span",{className:`${e}-close-x`},t||l.default.createElement(j.default,{className:`${e}-close-icon`}))}let ec=e=>{let t,{okText:n,okType:a="primary",cancelText:o,confirmLoading:r,onOk:i,onCancel:s,okButtonProps:c,cancelButtonProps:u,footer:d}=e,[f]=(0,g.useLocale)("Modal",(0,ei.getConfirmLocale)()),m=n||(null==f?void 0:f.okText),p=o||(null==f?void 0:f.cancelText),b=l.default.useMemo(()=>({confirmLoading:r,okButtonProps:c,cancelButtonProps:u,okTextLocale:m,cancelTextLocale:p,okType:a,onOk:i,onCancel:s}),[r,c,u,m,p,a,i,s]);return"function"==typeof d||void 0===d?(t=l.default.createElement(l.default.Fragment,null,l.default.createElement(eo,null),l.default.createElement(er,null)),"function"==typeof d&&(t=d(t,{OkBtn:er,CancelBtn:eo})),t=l.default.createElement(x,{value:b},t)):t=d,l.default.createElement(ea.DisabledContextProvider,{disabled:!1},t)};e.i(296059);var eu=e.i(915654),ed=e.i(756570),ef=e.i(183293),em=e.i(694758),eg=e.i(402366);let ep=new em.Keyframes("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),eb=new em.Keyframes("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),ev=(e,t=!1)=>{let{antCls:n}=e,l=`${n}-fade`,a=t?"&":"";return[(0,eg.initMotion)(l,ep,eb,e.motionDurationMid,t),{[` + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:u,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,c.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:n(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:n}=e;return{color:t,colorGradientEnd:n,gradientFromColor:t,gradientToColor:n,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),$=e=>{let{prefixCls:l,className:a,style:o,rows:r=0}=e,i=Array.from({length:r}).map((n,l)=>t.createElement("li",{key:l,style:{width:((e,t)=>{let{width:n,rows:l=2}=t;return Array.isArray(n)?n[e]:l-1===e?n:void 0})(l,e)}}));return t.createElement("ul",{className:(0,n.default)(l,a),style:o},i)},C=({prefixCls:e,className:l,width:a,style:o})=>t.createElement("h3",{className:(0,n.default)(e,l),style:Object.assign({width:a},o)});function y(e){return e&&"object"==typeof e?e:{}}let h=e=>{let{prefixCls:a,loading:r,className:i,rootClassName:s,style:c,children:u,avatar:d=!1,title:f=!0,paragraph:m=!0,active:g,round:p}=e,{getPrefixCls:b,direction:h,className:x,style:O}=(0,l.useComponentConfig)("skeleton"),j=b("skeleton",a),[E,k,w]=v(j);if(r||!("loading"in e)){let e,l,a=!!d,r=!!f,u=!!m;if(a){let n=Object.assign(Object.assign({prefixCls:`${j}-avatar`},r&&!u?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),y(d));e=t.createElement("div",{className:`${j}-header`},t.createElement(o,Object.assign({},n)))}if(r||u){let e,n;if(r){let n=Object.assign(Object.assign({prefixCls:`${j}-title`},!a&&u?{width:"38%"}:a&&u?{width:"50%"}:{}),y(f));e=t.createElement(C,Object.assign({},n))}if(u){let e,l=Object.assign(Object.assign({prefixCls:`${j}-paragraph`},(e={},a&&r||(e.width="61%"),!a&&r?e.rows=3:e.rows=2,e)),y(m));n=t.createElement($,Object.assign({},l))}l=t.createElement("div",{className:`${j}-content`},e,n)}let b=(0,n.default)(j,{[`${j}-with-avatar`]:a,[`${j}-active`]:g,[`${j}-rtl`]:"rtl"===h,[`${j}-round`]:p},x,i,s,k,w);return E(t.createElement("div",{className:b,style:Object.assign(Object.assign({},O),c)},e,l))}return null!=u?u:null};h.Button=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,block:u=!1,size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),$=(0,a.default)(e,["prefixCls"]),C=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c,[`${m}-block`]:u},i,s,p,b);return g(t.createElement("div",{className:C},t.createElement(o,Object.assign({prefixCls:`${m}-button`,size:d},$))))},h.Avatar=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,shape:u="circle",size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),$=(0,a.default)(e,["prefixCls","className"]),C=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c},i,s,p,b);return g(t.createElement("div",{className:C},t.createElement(o,Object.assign({prefixCls:`${m}-avatar`,shape:u,size:d},$))))},h.Input=e=>{let{prefixCls:r,className:i,rootClassName:s,active:c,block:u,size:d="default"}=e,{getPrefixCls:f}=t.useContext(l.ConfigContext),m=f("skeleton",r),[g,p,b]=v(m),$=(0,a.default)(e,["prefixCls"]),C=(0,n.default)(m,`${m}-element`,{[`${m}-active`]:c,[`${m}-block`]:u},i,s,p,b);return g(t.createElement("div",{className:C},t.createElement(o,Object.assign({prefixCls:`${m}-input`,size:d},$))))},h.Image=e=>{let{prefixCls:a,className:o,rootClassName:r,style:i,active:s}=e,{getPrefixCls:c}=t.useContext(l.ConfigContext),u=c("skeleton",a),[d,f,m]=v(u),g=(0,n.default)(u,`${u}-element`,{[`${u}-active`]:s},o,r,f,m);return d(t.createElement("div",{className:g},t.createElement("div",{className:(0,n.default)(`${u}-image`,o),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${u}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${u}-image-path`})))))},h.Node=e=>{let{prefixCls:a,className:o,rootClassName:r,style:i,active:s,children:c}=e,{getPrefixCls:u}=t.useContext(l.ConfigContext),d=u("skeleton",a),[f,m,g]=v(d),p=(0,n.default)(d,`${d}-element`,{[`${d}-active`]:s},m,o,r,g);return f(t.createElement("div",{className:p},t.createElement("div",{className:(0,n.default)(`${d}-image`,o),style:i},c)))},e.s(["default",0,h],185793)},212931,285781,922611,709656,e=>{"use strict";let t;e.i(247167);var n=e.i(8211),l=e.i(271645),a=e.i(609587),o=e.i(242064),r=e.i(783164),i=e.i(201072),s=e.i(726289),c=e.i(562901),u=e.i(779573),d=e.i(343794),f=e.i(122767),m=e.i(613541),g=e.i(408850),p=e.i(719581),b=e.i(290967),v=e.i(920228),$=e.i(62405);let C=e=>"function"==typeof(null==e?void 0:e.then),y=e=>{let{type:t,children:n,prefixCls:a,buttonProps:o,close:r,autoFocus:i,emitEvent:s,isSilent:c,quitOnNullishReturnValue:u,actionFn:d}=e,f=l.useRef(!1),m=l.useRef(null),[g,p]=(0,b.default)(!1),y=(...e)=>{null==r||r.apply(void 0,e)};return l.useEffect(()=>{let e=null;return i&&(e=setTimeout(()=>{var e;null==(e=m.current)||e.focus({preventScroll:!0})})),()=>{e&&clearTimeout(e)}},[i]),l.createElement(v.default,Object.assign({},(0,$.convertLegacyProps)(t),{onClick:e=>{let t;if(!f.current){var n;if(f.current=!0,!d)return void y();if(s){if(t=d(e),u&&!C(t)){f.current=!1,y(e);return}}else if(d.length)t=d(r),f.current=!1;else if(!C(t=d()))return void y();C(n=t)&&(p(!0),n.then((...e)=>{p(!1,!0),y.apply(void 0,e),f.current=!1},e=>{if(p(!1,!0),f.current=!1,null==c||!c())return Promise.reject(e)}))}},loading:g,prefixCls:a},o,{ref:m}),n)};e.s(["default",0,y],285781);let h=l.default.createContext({}),{Provider:x}=h,O=()=>{let{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:n,isSilent:a,mergedOkCancel:o,rootPrefixCls:r,close:i,onCancel:s,onConfirm:c}=(0,l.useContext)(h);return o?l.default.createElement(y,{isSilent:a,actionFn:s,close:(...e)=>{null==i||i.apply(void 0,e),null==c||c(!1)},autoFocus:"cancel"===e,buttonProps:t,prefixCls:`${r}-btn`},n):null},j=()=>{let{autoFocusButton:e,close:t,isSilent:n,okButtonProps:a,rootPrefixCls:o,okTextLocale:r,okType:i,onConfirm:s,onOk:c}=(0,l.useContext)(h);return l.default.createElement(y,{isSilent:n,type:i||"primary",actionFn:c,close:(...e)=>{null==t||t.apply(void 0,e),null==s||s(!0)},autoFocus:"ok"===e,buttonProps:a,prefixCls:`${o}-btn`},r)};var E=e.i(864517),k=e.i(931067),w=e.i(392221),S=e.i(951160),N=l.createContext({}),T=e.i(209428),I=e.i(216459),P=e.i(981444),R=e.i(404948),B=e.i(244009);function M(e,t,n){var l=t;return!l&&n&&(l="".concat(e,"-").concat(n)),l}function z(e,t){var n=e["page".concat(t?"Y":"X","Offset")],l="scroll".concat(t?"Top":"Left");if("number"!=typeof n){var a=e.document;"number"!=typeof(n=a.documentElement[l])&&(n=a.body[l])}return n}var H=e.i(361275),q=e.i(410160),L=e.i(611935);let A=l.memo(function(e){return e.children},function(e,t){return!t.shouldUpdate});var F={width:0,height:0,overflow:"hidden",outline:"none"},W={outline:"none"},D=l.default.forwardRef(function(e,t){var n=e.prefixCls,a=e.className,o=e.style,r=e.title,i=e.ariaId,s=e.footer,c=e.closable,u=e.closeIcon,f=e.onClose,m=e.children,g=e.bodyStyle,p=e.bodyProps,b=e.modalRender,v=e.onMouseDown,$=e.onMouseUp,C=e.holderRef,y=e.visible,h=e.forceRender,x=e.width,O=e.height,j=e.classNames,E=e.styles,w=l.default.useContext(N).panel,S=(0,L.useComposeRef)(C,w),I=(0,l.useRef)(),P=(0,l.useRef)();l.default.useImperativeHandle(t,function(){return{focus:function(){var e;null==(e=I.current)||e.focus({preventScroll:!0})},changeActive:function(e){var t=document.activeElement;e&&t===P.current?I.current.focus({preventScroll:!0}):e||t!==I.current||P.current.focus({preventScroll:!0})}}});var R={};void 0!==x&&(R.width=x),void 0!==O&&(R.height=O);var M=s?l.default.createElement("div",{className:(0,d.default)("".concat(n,"-footer"),null==j?void 0:j.footer),style:(0,T.default)({},null==E?void 0:E.footer)},s):null,z=r?l.default.createElement("div",{className:(0,d.default)("".concat(n,"-header"),null==j?void 0:j.header),style:(0,T.default)({},null==E?void 0:E.header)},l.default.createElement("div",{className:"".concat(n,"-title"),id:i},r)):null,H=(0,l.useMemo)(function(){return"object"===(0,q.default)(c)&&null!==c?c:c?{closeIcon:null!=u?u:l.default.createElement("span",{className:"".concat(n,"-close-x")})}:{}},[c,u,n]),D=(0,B.default)(H,!0),G="object"===(0,q.default)(c)&&c.disabled,X=c?l.default.createElement("button",(0,k.default)({type:"button",onClick:f,"aria-label":"Close"},D,{className:"".concat(n,"-close"),disabled:G}),H.closeIcon):null,U=l.default.createElement("div",{className:(0,d.default)("".concat(n,"-content"),null==j?void 0:j.content),style:null==E?void 0:E.content},X,z,l.default.createElement("div",(0,k.default)({className:(0,d.default)("".concat(n,"-body"),null==j?void 0:j.body),style:(0,T.default)((0,T.default)({},g),null==E?void 0:E.body)},p),m),M);return l.default.createElement("div",{key:"dialog-element",role:"dialog","aria-labelledby":r?i:null,"aria-modal":"true",ref:S,style:(0,T.default)((0,T.default)({},o),R),className:(0,d.default)(n,a),onMouseDown:v,onMouseUp:$},l.default.createElement("div",{ref:I,tabIndex:0,style:W},l.default.createElement(A,{shouldUpdate:y||h},b?b(U):U)),l.default.createElement("div",{tabIndex:0,ref:P,style:F}))}),G=l.forwardRef(function(e,t){var n=e.prefixCls,a=e.title,o=e.style,r=e.className,i=e.visible,s=e.forceRender,c=e.destroyOnClose,u=e.motionName,f=e.ariaId,m=e.onVisibleChanged,g=e.mousePosition,p=(0,l.useRef)(),b=l.useState(),v=(0,w.default)(b,2),$=v[0],C=v[1],y={};function h(){var e,t,n,l,a,o=(n={left:(t=(e=p.current).getBoundingClientRect()).left,top:t.top},a=(l=e.ownerDocument).defaultView||l.parentWindow,n.left+=z(a),n.top+=z(a,!0),n);C(g&&(g.x||g.y)?"".concat(g.x-o.left,"px ").concat(g.y-o.top,"px"):"")}return $&&(y.transformOrigin=$),l.createElement(H.default,{visible:i,onVisibleChanged:m,onAppearPrepare:h,onEnterPrepare:h,forceRender:s,motionName:u,removeOnLeave:c,ref:p},function(i,s){var c=i.className,u=i.style;return l.createElement(D,(0,k.default)({},e,{ref:t,title:a,ariaId:f,prefixCls:n,holderRef:s,style:(0,T.default)((0,T.default)((0,T.default)({},u),o),y),className:(0,d.default)(r,c)}))})});G.displayName="Content";let X=function(e){var t=e.prefixCls,n=e.style,a=e.visible,o=e.maskProps,r=e.motionName,i=e.className;return l.createElement(H.default,{key:"mask",visible:a,motionName:r,leavedClassName:"".concat(t,"-mask-hidden")},function(e,a){var r=e.className,s=e.style;return l.createElement("div",(0,k.default)({ref:a,style:(0,T.default)((0,T.default)({},s),n),className:(0,d.default)("".concat(t,"-mask"),r,i)},o))})};e.i(883110);let U=function(e){var t=e.prefixCls,n=void 0===t?"rc-dialog":t,a=e.zIndex,o=e.visible,r=void 0!==o&&o,i=e.keyboard,s=void 0===i||i,c=e.focusTriggerAfterClose,u=void 0===c||c,f=e.wrapStyle,m=e.wrapClassName,g=e.wrapProps,p=e.onClose,b=e.afterOpenChange,v=e.afterClose,$=e.transitionName,C=e.animation,y=e.closable,h=e.mask,x=void 0===h||h,O=e.maskTransitionName,j=e.maskAnimation,E=e.maskClosable,S=e.maskStyle,N=e.maskProps,z=e.rootClassName,H=e.classNames,q=e.styles,L=(0,l.useRef)(),A=(0,l.useRef)(),F=(0,l.useRef)(),W=l.useState(r),D=(0,w.default)(W,2),U=D[0],K=D[1],V=(0,P.default)();function Y(e){null==p||p(e)}var _=(0,l.useRef)(!1),Z=(0,l.useRef)(),J=null;(void 0===E||E)&&(J=function(e){_.current?_.current=!1:A.current===e.target&&Y(e)}),(0,l.useEffect)(function(){r&&(K(!0),(0,I.default)(A.current,document.activeElement)||(L.current=document.activeElement))},[r]),(0,l.useEffect)(function(){return function(){clearTimeout(Z.current)}},[]);var Q=(0,T.default)((0,T.default)((0,T.default)({zIndex:a},f),null==q?void 0:q.wrapper),{},{display:U?null:"none"});return l.createElement("div",(0,k.default)({className:(0,d.default)("".concat(n,"-root"),z)},(0,B.default)(e,{data:!0})),l.createElement(X,{prefixCls:n,visible:x&&r,motionName:M(n,O,j),style:(0,T.default)((0,T.default)({zIndex:a},S),null==q?void 0:q.mask),maskProps:N,className:null==H?void 0:H.mask}),l.createElement("div",(0,k.default)({tabIndex:-1,onKeyDown:function(e){if(s&&e.keyCode===R.default.ESC){e.stopPropagation(),Y(e);return}r&&e.keyCode===R.default.TAB&&F.current.changeActive(!e.shiftKey)},className:(0,d.default)("".concat(n,"-wrap"),m,null==H?void 0:H.wrapper),ref:A,onClick:J,style:Q},g),l.createElement(G,(0,k.default)({},e,{onMouseDown:function(){clearTimeout(Z.current),_.current=!0},onMouseUp:function(){Z.current=setTimeout(function(){_.current=!1})},ref:F,closable:void 0===y||y,ariaId:V,prefixCls:n,visible:r&&U,onClose:Y,onVisibleChanged:function(e){if(e){if(!(0,I.default)(A.current,document.activeElement)){var t;null==(t=F.current)||t.focus()}}else{if(K(!1),x&&L.current&&u){try{L.current.focus({preventScroll:!0})}catch(e){}L.current=null}U&&(null==v||v())}null==b||b(e)},motionName:M(n,$,C)}))))};var K=function(e){var t=e.visible,n=e.getContainer,a=e.forceRender,o=e.destroyOnClose,r=void 0!==o&&o,i=e.afterClose,s=e.panelRef,c=l.useState(t),u=(0,w.default)(c,2),d=u[0],f=u[1],m=l.useMemo(function(){return{panel:s}},[s]);return(l.useEffect(function(){t&&f(!0)},[t]),a||!r||d)?l.createElement(N.Provider,{value:m},l.createElement(S.default,{open:t||a||d,autoDestroy:!1,getContainer:n,autoLock:t||d},l.createElement(U,(0,k.default)({},e,{destroyOnClose:r,afterClose:function(){null==i||i(),f(!1)}})))):null};K.displayName="Dialog";var V=e.i(617206),Y=e.i(563113),_=e.i(654310);e.i(735049);var Z=e.i(340010),J=e.i(321883),Q=e.i(185793),ee=e.i(175066);function et(){}let en=l.createContext({add:et,remove:et});function el(e){let t=l.useContext(en),n=l.useRef(null);return(0,ee.default)(l=>{if(l){let a=e?l.querySelector(e):l;a&&(t.add(a),n.current=a)}else t.remove(n.current)})}e.s(["usePanelRef",()=>el],922611);var ea=e.i(937328);let eo=()=>{let{cancelButtonProps:e,cancelTextLocale:t,onCancel:n}=(0,l.useContext)(h);return l.default.createElement(v.default,Object.assign({onClick:n},e),t)},er=()=>{let{confirmLoading:e,okButtonProps:t,okType:n,okTextLocale:a,onOk:o}=(0,l.useContext)(h);return l.default.createElement(v.default,Object.assign({},(0,$.convertLegacyProps)(n),{loading:e,onClick:o},t),a)};var ei=e.i(606780);function es(e,t){return l.default.createElement("span",{className:`${e}-close-x`},t||l.default.createElement(E.default,{className:`${e}-close-icon`}))}let ec=e=>{let t,{okText:n,okType:a="primary",cancelText:o,confirmLoading:r,onOk:i,onCancel:s,okButtonProps:c,cancelButtonProps:u,footer:d}=e,[f]=(0,g.useLocale)("Modal",(0,ei.getConfirmLocale)()),m=n||(null==f?void 0:f.okText),p=o||(null==f?void 0:f.cancelText),b=l.default.useMemo(()=>({confirmLoading:r,okButtonProps:c,cancelButtonProps:u,okTextLocale:m,cancelTextLocale:p,okType:a,onOk:i,onCancel:s}),[r,c,u,m,p,a,i,s]);return"function"==typeof d||void 0===d?(t=l.default.createElement(l.default.Fragment,null,l.default.createElement(eo,null),l.default.createElement(er,null)),"function"==typeof d&&(t=d(t,{OkBtn:er,CancelBtn:eo})),t=l.default.createElement(x,{value:b},t)):t=d,l.default.createElement(ea.DisabledContextProvider,{disabled:!1},t)};e.i(296059);var eu=e.i(915654),ed=e.i(756570),ef=e.i(183293),em=e.i(694758),eg=e.i(402366);let ep=new em.Keyframes("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),eb=new em.Keyframes("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),ev=(e,t=!1)=>{let{antCls:n}=e,l=`${n}-fade`,a=t?"&":"";return[(0,eg.initMotion)(l,ep,eb,e.motionDurationMid,t),{[` ${a}${l}-enter, ${a}${l}-appear - `]:{opacity:0,animationTimingFunction:"linear"},[`${a}${l}-leave`]:{animationTimingFunction:"linear"}}]};e.s(["initFadeMotion",0,ev],709656);var ey=e.i(717356),e$=e.i(246422),eC=e.i(838378);function eh(e){return{position:e,inset:0}}let ex=e=>{let t=e.padding,n=e.fontSizeHeading5,l=e.lineHeightHeading5;return(0,eC.mergeToken)(e,{modalHeaderHeight:e.calc(e.calc(l).mul(n).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},eO=e=>({footerBg:"transparent",headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${(0,eu.unit)(e.paddingMD)} ${(0,eu.unit)(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${(0,eu.unit)(e.padding)} ${(0,eu.unit)(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${(0,eu.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${(0,eu.unit)(e.paddingXS)} ${(0,eu.unit)(e.padding)}`:0,footerBorderTop:e.wireframe?`${(0,eu.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",footerBorderRadius:e.wireframe?`0 0 ${(0,eu.unit)(e.borderRadiusLG)} ${(0,eu.unit)(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${(0,eu.unit)(2*e.padding)} ${(0,eu.unit)(2*e.padding)} ${(0,eu.unit)(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),eE=(0,e$.genStyleHooks)("Modal",e=>{let t=ex(e);return[(e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl"},[`${t}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[t]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{maxWidth:"calc(100vw - 16px)",margin:`${(0,eu.unit)(e.marginXS)} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:Object.assign(Object.assign({},(0,ef.resetComponent)(e)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${(0,eu.unit)(e.calc(e.margin).mul(2).equal())})`,margin:"0 auto",paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.titleFontSize,lineHeight:e.titleLineHeight,wordWrap:"break-word"},[`${t}-content`]:{position:"relative",backgroundColor:e.contentBg,backgroundClip:"padding-box",border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadow,pointerEvents:"auto",padding:e.contentPadding},[`${t}-close`]:Object.assign({position:"absolute",top:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),insetInlineEnd:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),zIndex:e.calc(e.zIndexPopupBase).add(10).equal(),padding:0,color:e.modalCloseIconColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:e.borderRadiusSM,width:e.modalCloseBtnSize,height:e.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:"flex",fontSize:e.fontSizeLG,fontStyle:"normal",lineHeight:(0,eu.unit)(e.modalCloseBtnSize),justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:disabled":{pointerEvents:"none"},"&:hover":{color:e.modalCloseIconHoverColor,backgroundColor:e.colorBgTextHover,textDecoration:"none"},"&:active":{backgroundColor:e.colorBgTextActive}},(0,ef.genFocusStyle)(e)),[`${t}-header`]:{color:e.colorText,background:e.headerBg,borderRadius:`${(0,eu.unit)(e.borderRadiusLG)} ${(0,eu.unit)(e.borderRadiusLG)} 0 0`,marginBottom:e.headerMarginBottom,padding:e.headerPadding,borderBottom:e.headerBorderBottom},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:"break-word",padding:e.bodyPadding,[`${t}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",margin:`${(0,eu.unit)(e.margin)} auto`}},[`${t}-footer`]:{textAlign:"end",background:e.footerBg,marginTop:e.footerMarginTop,padding:e.footerPadding,borderTop:e.footerBorderTop,borderRadius:e.footerBorderRadius,[`> ${e.antCls}-btn + ${e.antCls}-btn`]:{marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:"hidden"}})},{[`${t}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${t}-content, + `]:{opacity:0,animationTimingFunction:"linear"},[`${a}${l}-leave`]:{animationTimingFunction:"linear"}}]};e.s(["initFadeMotion",0,ev],709656);var e$=e.i(717356),eC=e.i(246422),ey=e.i(838378);function eh(e){return{position:e,inset:0}}let ex=e=>{let t=e.padding,n=e.fontSizeHeading5,l=e.lineHeightHeading5;return(0,ey.mergeToken)(e,{modalHeaderHeight:e.calc(e.calc(l).mul(n).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},eO=e=>({footerBg:"transparent",headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${(0,eu.unit)(e.paddingMD)} ${(0,eu.unit)(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${(0,eu.unit)(e.padding)} ${(0,eu.unit)(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${(0,eu.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${(0,eu.unit)(e.paddingXS)} ${(0,eu.unit)(e.padding)}`:0,footerBorderTop:e.wireframe?`${(0,eu.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",footerBorderRadius:e.wireframe?`0 0 ${(0,eu.unit)(e.borderRadiusLG)} ${(0,eu.unit)(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${(0,eu.unit)(2*e.padding)} ${(0,eu.unit)(2*e.padding)} ${(0,eu.unit)(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),ej=(0,eC.genStyleHooks)("Modal",e=>{let t=ex(e);return[(e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl"},[`${t}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[t]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{maxWidth:"calc(100vw - 16px)",margin:`${(0,eu.unit)(e.marginXS)} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:Object.assign(Object.assign({},(0,ef.resetComponent)(e)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${(0,eu.unit)(e.calc(e.margin).mul(2).equal())})`,margin:"0 auto",paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.titleFontSize,lineHeight:e.titleLineHeight,wordWrap:"break-word"},[`${t}-content`]:{position:"relative",backgroundColor:e.contentBg,backgroundClip:"padding-box",border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadow,pointerEvents:"auto",padding:e.contentPadding},[`${t}-close`]:Object.assign({position:"absolute",top:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),insetInlineEnd:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),zIndex:e.calc(e.zIndexPopupBase).add(10).equal(),padding:0,color:e.modalCloseIconColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:e.borderRadiusSM,width:e.modalCloseBtnSize,height:e.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:"flex",fontSize:e.fontSizeLG,fontStyle:"normal",lineHeight:(0,eu.unit)(e.modalCloseBtnSize),justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:disabled":{pointerEvents:"none"},"&:hover":{color:e.modalCloseIconHoverColor,backgroundColor:e.colorBgTextHover,textDecoration:"none"},"&:active":{backgroundColor:e.colorBgTextActive}},(0,ef.genFocusStyle)(e)),[`${t}-header`]:{color:e.colorText,background:e.headerBg,borderRadius:`${(0,eu.unit)(e.borderRadiusLG)} ${(0,eu.unit)(e.borderRadiusLG)} 0 0`,marginBottom:e.headerMarginBottom,padding:e.headerPadding,borderBottom:e.headerBorderBottom},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:"break-word",padding:e.bodyPadding,[`${t}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",margin:`${(0,eu.unit)(e.margin)} auto`}},[`${t}-footer`]:{textAlign:"end",background:e.footerBg,marginTop:e.footerMarginTop,padding:e.footerPadding,borderTop:e.footerBorderTop,borderRadius:e.footerBorderRadius,[`> ${e.antCls}-btn + ${e.antCls}-btn`]:{marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:"hidden"}})},{[`${t}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${t}-content, ${t}-body, - ${t}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${t}-confirm-body`]:{marginBottom:"auto"}}}]})(t),(e=>{let{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl",[`${t}-confirm-body`]:{direction:"rtl"}}}}})(t),(e=>{let{componentCls:t,antCls:n}=e;return[{[`${t}-root`]:{[`${t}${n}-zoom-enter, ${t}${n}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:e.motionDurationSlow,userSelect:"none"},[`${t}${n}-zoom-leave ${t}-content`]:{pointerEvents:"none"},[`${t}-mask`]:Object.assign(Object.assign({},eh("fixed")),{zIndex:e.zIndexPopupBase,height:"100%",backgroundColor:e.colorBgMask,pointerEvents:"none",[`${t}-hidden`]:{display:"none"}}),[`${t}-wrap`]:Object.assign(Object.assign({},eh("fixed")),{zIndex:e.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"})}},{[`${t}-root`]:ev(e)}]})(t),(0,ey.initZoomMotion)(t,"zoom"),(e=>{let{componentCls:t}=e,l=(0,ed.getMediaSize)(e),a=Object.assign({},l);delete a.xs;let o=`--${t.replace(".","")}-`,r=Object.keys(a).map(e=>({[`@media (min-width: ${(0,eu.unit)(a[e])})`]:{width:`var(${o}${e}-width)`}}));return{[`${t}-root`]:{[t]:[].concat((0,n.default)(Object.keys(l).map((e,t)=>{let n=Object.keys(l)[t-1];return n?{[`${o}${e}-width`]:`var(${o}${n}-width)`}:null})),[{width:`var(${o}xs-width)`}],(0,n.default)(r))}}})(t)]},eO,{unitless:{titleLineHeight:!0}});var ej=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};(0,_.default)()&&window.document.documentElement&&document.documentElement.addEventListener("click",e=>{t={x:e.pageX,y:e.pageY},setTimeout(()=>{t=null},100)},!0);let ek=e=>{let{prefixCls:n,className:a,rootClassName:r,open:i,wrapClassName:s,centered:c,getContainer:u,focusTriggerAfterClose:g=!0,style:p,visible:b,width:v=520,footer:y,classNames:$,styles:C,children:h,loading:x,confirmLoading:O,zIndex:E,mousePosition:k,onOk:w,onCancel:S,destroyOnHidden:N,destroyOnClose:T,panelRef:I=null,modalRender:P}=e,R=ej(e,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","focusTriggerAfterClose","style","visible","width","footer","classNames","styles","children","loading","confirmLoading","zIndex","mousePosition","onOk","onCancel","destroyOnHidden","destroyOnClose","panelRef","modalRender"]),{getPopupContainer:B,getPrefixCls:M,direction:z,modal:H}=l.useContext(o.ConfigContext),q=e=>{O||null==S||S(e)},L=M("modal",n),F=M(),W=(0,J.default)(L),[D,G,X]=eE(L,W),U=(0,d.default)(s,{[`${L}-centered`]:null!=c?c:null==H?void 0:H.centered,[`${L}-wrap-rtl`]:"rtl"===z}),_=null===y||x?null:l.createElement(ec,Object.assign({},e,{onOk:e=>{null==w||w(e)},onCancel:q})),[ee,et,en,ea]=(0,Y.useClosable)((0,Y.pickClosable)(e),(0,Y.pickClosable)(H),{closable:!0,closeIcon:l.createElement(j.default,{className:`${L}-close-icon`}),closeIconRender:e=>es(L,e)}),eo=P?e=>l.createElement("div",{className:`${L}-render`},P(e)):void 0,er=el(`.${L}-${P?"render":"content"}`),ei=(0,A.composeRef)(I,er),[eu,ed]=(0,f.useZIndex)("Modal",E),[ef,em]=l.useMemo(()=>v&&"object"==typeof v?[void 0,v]:[v,void 0],[v]),eg=l.useMemo(()=>{let e={};return em&&Object.keys(em).forEach(t=>{let n=em[t];void 0!==n&&(e[`--${L}-${t}-width`]="number"==typeof n?`${n}px`:n)}),e},[L,em]);return D(l.createElement(V.default,{form:!0,space:!0},l.createElement(Z.default.Provider,{value:ed},l.createElement(K,Object.assign({width:ef},R,{zIndex:eu,getContainer:void 0===u?B:u,prefixCls:L,rootClassName:(0,d.default)(G,r,X,W),footer:_,visible:null!=i?i:b,mousePosition:null!=k?k:t,onClose:q,closable:ee?Object.assign({disabled:en,closeIcon:et},ea):ee,closeIcon:et,focusTriggerAfterClose:g,transitionName:(0,m.getTransitionName)(F,"zoom",e.transitionName),maskTransitionName:(0,m.getTransitionName)(F,"fade",e.maskTransitionName),className:(0,d.default)(G,a,null==H?void 0:H.className),style:Object.assign(Object.assign(Object.assign({},null==H?void 0:H.style),p),eg),classNames:Object.assign(Object.assign(Object.assign({},null==H?void 0:H.classNames),$),{wrapper:(0,d.default)(U,null==$?void 0:$.wrapper)}),styles:Object.assign(Object.assign({},null==H?void 0:H.styles),C),panelRef:ei,destroyOnClose:null!=N?N:T,modalRender:eo}),x?l.createElement(Q.default,{active:!0,title:!1,paragraph:{rows:4},className:`${L}-body-skeleton`}):h))))},ew=(0,e$.genSubStyleComponent)(["Modal","confirm"],e=>(e=>{let{componentCls:t,titleFontSize:n,titleLineHeight:l,modalConfirmIconSize:a,fontSize:o,lineHeight:r,modalTitleHeight:i,fontHeight:s,confirmBodyPadding:c}=e,u=`${t}-confirm`;return{[u]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${u}-body-wrapper`]:Object.assign({},(0,ef.clearFix)()),[`&${t} ${t}-body`]:{padding:c},[`${u}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${e.iconCls}`]:{flex:"none",fontSize:a,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(s).sub(a).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(i).sub(a).equal()).div(2).equal()}},[`${u}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:e.marginXS,maxWidth:`calc(100% - ${(0,eu.unit)(e.marginSM)})`},[`${e.iconCls} + ${u}-paragraph`]:{maxWidth:`calc(100% - ${(0,eu.unit)(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${u}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:n,lineHeight:l},[`${u}-content`]:{color:e.colorText,fontSize:o,lineHeight:r},[`${u}-btns`]:{textAlign:"end",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${u}-error ${u}-body > ${e.iconCls}`]:{color:e.colorError},[`${u}-warning ${u}-body > ${e.iconCls}, - ${u}-confirm ${u}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${u}-info ${u}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${u}-success ${u}-body > ${e.iconCls}`]:{color:e.colorSuccess}}})(ex(e)),eO,{order:-1e3});var eS=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eN=e=>{let{prefixCls:t,icon:n,okText:a,cancelText:o,confirmPrefixCls:r,type:f,okCancel:m,footer:p,locale:b}=e,v=eS(e,["prefixCls","icon","okText","cancelText","confirmPrefixCls","type","okCancel","footer","locale"]),y=n;if(!n&&null!==n)switch(f){case"info":y=l.createElement(u.default,null);break;case"success":y=l.createElement(i.default,null);break;case"error":y=l.createElement(s.default,null);break;default:y=l.createElement(c.default,null)}let $=null!=m?m:"confirm"===f,C=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),[h]=(0,g.useLocale)("Modal"),j=b||h,k=a||($?null==j?void 0:j.okText:null==j?void 0:j.justOkText),w=o||(null==j?void 0:j.cancelText),S=l.useMemo(()=>Object.assign({autoFocusButton:C,cancelTextLocale:w,okTextLocale:k,mergedOkCancel:$},v),[C,w,k,$,v]),N=l.createElement(l.Fragment,null,l.createElement(O,null),l.createElement(E,null)),T=void 0!==e.title&&null!==e.title,I=`${r}-body`;return l.createElement("div",{className:`${r}-body-wrapper`},l.createElement("div",{className:(0,d.default)(I,{[`${I}-has-title`]:T})},y,l.createElement("div",{className:`${r}-paragraph`},T&&l.createElement("span",{className:`${r}-title`},e.title),l.createElement("div",{className:`${r}-content`},e.content))),void 0===p||"function"==typeof p?l.createElement(x,{value:S},l.createElement("div",{className:`${r}-btns`},"function"==typeof p?p(N,{OkBtn:E,CancelBtn:O}):N)):p,l.createElement(ew,{prefixCls:t}))},eT=e=>{let{close:t,zIndex:n,maskStyle:a,direction:o,prefixCls:r,wrapClassName:i,rootPrefixCls:s,bodyStyle:c,closable:u=!1,onConfirm:g,styles:b,title:v}=e,y=`${r}-confirm`,$=e.width||416,C=e.style||{},h=void 0===e.mask||e.mask,x=void 0!==e.maskClosable&&e.maskClosable,O=(0,d.default)(y,`${y}-${e.type}`,{[`${y}-rtl`]:"rtl"===o},e.className),[,E]=(0,p.default)(),j=l.useMemo(()=>void 0!==n?n:E.zIndexPopupBase+f.CONTAINER_MAX_OFFSET,[n,E]);return l.createElement(ek,Object.assign({},e,{className:O,wrapClassName:(0,d.default)({[`${y}-centered`]:!!e.centered},i),onCancel:()=>{null==t||t({triggerCancel:!0}),null==g||g(!1)},title:v,footer:null,transitionName:(0,m.getTransitionName)(s||"","zoom",e.transitionName),maskTransitionName:(0,m.getTransitionName)(s||"","fade",e.maskTransitionName),mask:h,maskClosable:x,style:C,styles:Object.assign({body:c,mask:a},b),width:$,zIndex:j,closable:u}),l.createElement(eN,Object.assign({},e,{confirmPrefixCls:y})))},eI=e=>{let{rootPrefixCls:t,iconPrefixCls:n,direction:o,theme:r}=e;return l.createElement(a.default,{prefixCls:t,iconPrefixCls:n,direction:o,theme:r},l.createElement(eT,Object.assign({},e)))},eP=[],eR="",eB=e=>{var t,n;let{prefixCls:a,getContainer:r,direction:i}=e,s=(0,ei.getConfirmLocale)(),c=(0,l.useContext)(o.ConfigContext),u=eR||c.getPrefixCls(),d=a||`${u}-modal`,f=r;return!1===f&&(f=void 0),l.default.createElement(eI,Object.assign({},e,{rootPrefixCls:u,prefixCls:d,iconPrefixCls:c.iconPrefixCls,theme:c.theme,direction:null!=i?i:c.direction,locale:null!=(n=null==(t=c.locale)?void 0:t.Modal)?n:s,getContainer:f}))};function eM(e){let t,o,i=(0,a.globalConfig)(),s=document.createDocumentFragment(),c=Object.assign(Object.assign({},e),{close:f,open:!0});function u(...t){var l;t.some(e=>null==e?void 0:e.triggerCancel)&&(null==(l=e.onCancel)||l.call.apply(l,[e,()=>{}].concat((0,n.default)(t.slice(1)))));for(let e=0;e{clearTimeout(t),t=setTimeout(()=>{let t=i.getPrefixCls(void 0,eR),n=i.getIconPrefixCls(),c=i.getTheme(),u=l.default.createElement(eB,Object.assign({},e));o=(0,r.unstableSetRender)()(l.default.createElement(a.default,{prefixCls:t,iconPrefixCls:n,theme:c},"function"==typeof i.holderRender?i.holderRender(u):u),s)})};function f(...t){(c=Object.assign(Object.assign({},c),{open:!1,afterClose:()=>{"function"==typeof e.afterClose&&e.afterClose(),u.apply(this,t)}})).visible&&delete c.visible,d(c)}return d(c),eP.push(f),{destroy:f,update:function(e){d(c="function"==typeof e?e(c):Object.assign(Object.assign({},c),e))}}}function ez(e){return Object.assign(Object.assign({},e),{type:"warning"})}function eH(e){return Object.assign(Object.assign({},e),{type:"info"})}function eq(e){return Object.assign(Object.assign({},e),{type:"success"})}function eA(e){return Object.assign(Object.assign({},e),{type:"error"})}function eL(e){return Object.assign(Object.assign({},e),{type:"confirm"})}var eF=e.i(805484),eW=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eD=(0,eF.withPureRenderTheme)(e=>{let{prefixCls:t,className:n,closeIcon:a,closable:r,type:i,title:s,children:c,footer:u}=e,f=eW(e,["prefixCls","className","closeIcon","closable","type","title","children","footer"]),{getPrefixCls:m}=l.useContext(o.ConfigContext),g=m(),p=t||m("modal"),b=(0,J.default)(g),[v,y,$]=eE(p,b),C=`${p}-confirm`,h={};return h=i?{closable:null!=r&&r,title:"",footer:"",children:l.createElement(eN,Object.assign({},e,{prefixCls:p,confirmPrefixCls:C,rootPrefixCls:g,content:c}))}:{closable:null==r||r,title:s,footer:null!==u&&l.createElement(ec,Object.assign({},e)),children:c},v(l.createElement(D,Object.assign({prefixCls:p,className:(0,d.default)(y,`${p}-pure-panel`,i&&C,i&&`${C}-${i}`,n,$,b)},f,{closeIcon:es(p,a),closable:r},h)))});var eG=e.i(87414),eX=e.i(929447),eU=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eK=l.forwardRef((e,t)=>{var a,{afterClose:r,config:i}=e,s=eU(e,["afterClose","config"]);let[c,u]=l.useState(!0),[d,f]=l.useState(i),{direction:m,getPrefixCls:g}=l.useContext(o.ConfigContext),p=g("modal"),b=g(),v=(...e)=>{var t;u(!1),e.some(e=>null==e?void 0:e.triggerCancel)&&(null==(t=d.onCancel)||t.call.apply(t,[d,()=>{}].concat((0,n.default)(e.slice(1)))))};l.useImperativeHandle(t,()=>({destroy:v,update:e=>{f(t=>{let n="function"==typeof e?e(t):e;return Object.assign(Object.assign({},t),n)})}}));let y=null!=(a=d.okCancel)?a:"confirm"===d.type,[$]=(0,eX.default)("Modal",eG.default.Modal);return l.createElement(eI,Object.assign({prefixCls:p,rootPrefixCls:b},d,{close:v,open:c,afterClose:()=>{var e;r(),null==(e=d.afterClose)||e.call(d)},okText:d.okText||(y?null==$?void 0:$.okText:null==$?void 0:$.justOkText),direction:d.direction||m,cancelText:d.cancelText||(null==$?void 0:$.cancelText)},s))}),eV=0,eY=l.memo(l.forwardRef((e,t)=>{let[a,o]=(()=>{let[e,t]=l.useState([]);return[e,l.useCallback(e=>(t(t=>[].concat((0,n.default)(t),[e])),()=>{t(t=>t.filter(t=>t!==e))}),[])]})();return l.useImperativeHandle(t,()=>({patchElement:o}),[o]),l.createElement(l.Fragment,null,a)}));function e_(e){return eM(ez(e))}ek.useModal=function(){let e=l.useRef(null),[t,a]=l.useState([]);l.useEffect(()=>{t.length&&((0,n.default)(t).forEach(e=>{e()}),a([]))},[t]);let o=l.useCallback(t=>function(o){var r;let i,s;eV+=1;let c=l.createRef(),u=new Promise(e=>{i=e}),d=!1,f=l.createElement(eK,{key:`modal-${eV}`,config:t(o),ref:c,afterClose:()=>{null==s||s()},isSilent:()=>d,onConfirm:e=>{i(e)}});return(s=null==(r=e.current)?void 0:r.patchElement(f))&&eP.push(s),{destroy:()=>{function e(){var e;null==(e=c.current)||e.destroy()}c.current?e():a(t=>[].concat((0,n.default)(t),[e]))},update:e=>{function t(){var t;null==(t=c.current)||t.update(e)}c.current?t():a(e=>[].concat((0,n.default)(e),[t]))},then:e=>(d=!0,u.then(e))}},[]);return[l.useMemo(()=>({info:o(eH),success:o(eq),error:o(eA),warning:o(ez),confirm:o(eL)}),[o]),l.createElement(eY,{key:"modal-holder",ref:e})]},ek.info=function(e){return eM(eH(e))},ek.success=function(e){return eM(eq(e))},ek.error=function(e){return eM(eA(e))},ek.warning=e_,ek.warn=e_,ek.confirm=function(e){return eM(eL(e))},ek.destroyAll=function(){for(;eP.length;){let e=eP.pop();e&&e()}},ek.config=function({rootPrefixCls:e}){eR=e},ek._InternalPanelDoNotUseOrYouWillBeFired=eD,e.s(["Modal",0,ek],212931)}]); \ No newline at end of file + ${t}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${t}-confirm-body`]:{marginBottom:"auto"}}}]})(t),(e=>{let{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl",[`${t}-confirm-body`]:{direction:"rtl"}}}}})(t),(e=>{let{componentCls:t,antCls:n}=e;return[{[`${t}-root`]:{[`${t}${n}-zoom-enter, ${t}${n}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:e.motionDurationSlow,userSelect:"none"},[`${t}${n}-zoom-leave ${t}-content`]:{pointerEvents:"none"},[`${t}-mask`]:Object.assign(Object.assign({},eh("fixed")),{zIndex:e.zIndexPopupBase,height:"100%",backgroundColor:e.colorBgMask,pointerEvents:"none",[`${t}-hidden`]:{display:"none"}}),[`${t}-wrap`]:Object.assign(Object.assign({},eh("fixed")),{zIndex:e.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"})}},{[`${t}-root`]:ev(e)}]})(t),(0,e$.initZoomMotion)(t,"zoom"),(e=>{let{componentCls:t}=e,l=(0,ed.getMediaSize)(e),a=Object.assign({},l);delete a.xs;let o=`--${t.replace(".","")}-`,r=Object.keys(a).map(e=>({[`@media (min-width: ${(0,eu.unit)(a[e])})`]:{width:`var(${o}${e}-width)`}}));return{[`${t}-root`]:{[t]:[].concat((0,n.default)(Object.keys(l).map((e,t)=>{let n=Object.keys(l)[t-1];return n?{[`${o}${e}-width`]:`var(${o}${n}-width)`}:null})),[{width:`var(${o}xs-width)`}],(0,n.default)(r))}}})(t)]},eO,{unitless:{titleLineHeight:!0}});var eE=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};(0,_.default)()&&window.document.documentElement&&document.documentElement.addEventListener("click",e=>{t={x:e.pageX,y:e.pageY},setTimeout(()=>{t=null},100)},!0);let ek=e=>{let{prefixCls:n,className:a,rootClassName:r,open:i,wrapClassName:s,centered:c,getContainer:u,focusTriggerAfterClose:g=!0,style:p,visible:b,width:v=520,footer:$,classNames:C,styles:y,children:h,loading:x,confirmLoading:O,zIndex:j,mousePosition:k,onOk:w,onCancel:S,destroyOnHidden:N,destroyOnClose:T,panelRef:I=null,modalRender:P}=e,R=eE(e,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","focusTriggerAfterClose","style","visible","width","footer","classNames","styles","children","loading","confirmLoading","zIndex","mousePosition","onOk","onCancel","destroyOnHidden","destroyOnClose","panelRef","modalRender"]),{getPopupContainer:B,getPrefixCls:M,direction:z,modal:H}=l.useContext(o.ConfigContext),q=e=>{O||null==S||S(e)},A=M("modal",n),F=M(),W=(0,J.default)(A),[D,G,X]=ej(A,W),U=(0,d.default)(s,{[`${A}-centered`]:null!=c?c:null==H?void 0:H.centered,[`${A}-wrap-rtl`]:"rtl"===z}),_=null===$||x?null:l.createElement(ec,Object.assign({},e,{onOk:e=>{null==w||w(e)},onCancel:q})),[ee,et,en,ea]=(0,Y.useClosable)((0,Y.pickClosable)(e),(0,Y.pickClosable)(H),{closable:!0,closeIcon:l.createElement(E.default,{className:`${A}-close-icon`}),closeIconRender:e=>es(A,e)}),eo=P?e=>l.createElement("div",{className:`${A}-render`},P(e)):void 0,er=el(`.${A}-${P?"render":"content"}`),ei=(0,L.composeRef)(I,er),[eu,ed]=(0,f.useZIndex)("Modal",j),[ef,em]=l.useMemo(()=>v&&"object"==typeof v?[void 0,v]:[v,void 0],[v]),eg=l.useMemo(()=>{let e={};return em&&Object.keys(em).forEach(t=>{let n=em[t];void 0!==n&&(e[`--${A}-${t}-width`]="number"==typeof n?`${n}px`:n)}),e},[A,em]);return D(l.createElement(V.default,{form:!0,space:!0},l.createElement(Z.default.Provider,{value:ed},l.createElement(K,Object.assign({width:ef},R,{zIndex:eu,getContainer:void 0===u?B:u,prefixCls:A,rootClassName:(0,d.default)(G,r,X,W),footer:_,visible:null!=i?i:b,mousePosition:null!=k?k:t,onClose:q,closable:ee?Object.assign({disabled:en,closeIcon:et},ea):ee,closeIcon:et,focusTriggerAfterClose:g,transitionName:(0,m.getTransitionName)(F,"zoom",e.transitionName),maskTransitionName:(0,m.getTransitionName)(F,"fade",e.maskTransitionName),className:(0,d.default)(G,a,null==H?void 0:H.className),style:Object.assign(Object.assign(Object.assign({},null==H?void 0:H.style),p),eg),classNames:Object.assign(Object.assign(Object.assign({},null==H?void 0:H.classNames),C),{wrapper:(0,d.default)(U,null==C?void 0:C.wrapper)}),styles:Object.assign(Object.assign({},null==H?void 0:H.styles),y),panelRef:ei,destroyOnClose:null!=N?N:T,modalRender:eo}),x?l.createElement(Q.default,{active:!0,title:!1,paragraph:{rows:4},className:`${A}-body-skeleton`}):h))))},ew=(0,eC.genSubStyleComponent)(["Modal","confirm"],e=>(e=>{let{componentCls:t,titleFontSize:n,titleLineHeight:l,modalConfirmIconSize:a,fontSize:o,lineHeight:r,modalTitleHeight:i,fontHeight:s,confirmBodyPadding:c}=e,u=`${t}-confirm`;return{[u]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${u}-body-wrapper`]:Object.assign({},(0,ef.clearFix)()),[`&${t} ${t}-body`]:{padding:c},[`${u}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${e.iconCls}`]:{flex:"none",fontSize:a,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(s).sub(a).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(i).sub(a).equal()).div(2).equal()}},[`${u}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:e.marginXS,maxWidth:`calc(100% - ${(0,eu.unit)(e.marginSM)})`},[`${e.iconCls} + ${u}-paragraph`]:{maxWidth:`calc(100% - ${(0,eu.unit)(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${u}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:n,lineHeight:l},[`${u}-content`]:{color:e.colorText,fontSize:o,lineHeight:r},[`${u}-btns`]:{textAlign:"end",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${u}-error ${u}-body > ${e.iconCls}`]:{color:e.colorError},[`${u}-warning ${u}-body > ${e.iconCls}, + ${u}-confirm ${u}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${u}-info ${u}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${u}-success ${u}-body > ${e.iconCls}`]:{color:e.colorSuccess}}})(ex(e)),eO,{order:-1e3});var eS=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eN=e=>{let{prefixCls:t,icon:n,okText:a,cancelText:o,confirmPrefixCls:r,type:f,okCancel:m,footer:p,locale:b}=e,v=eS(e,["prefixCls","icon","okText","cancelText","confirmPrefixCls","type","okCancel","footer","locale"]),$=n;if(!n&&null!==n)switch(f){case"info":$=l.createElement(u.default,null);break;case"success":$=l.createElement(i.default,null);break;case"error":$=l.createElement(s.default,null);break;default:$=l.createElement(c.default,null)}let C=null!=m?m:"confirm"===f,y=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),[h]=(0,g.useLocale)("Modal"),E=b||h,k=a||(C?null==E?void 0:E.okText:null==E?void 0:E.justOkText),w=o||(null==E?void 0:E.cancelText),S=l.useMemo(()=>Object.assign({autoFocusButton:y,cancelTextLocale:w,okTextLocale:k,mergedOkCancel:C},v),[y,w,k,C,v]),N=l.createElement(l.Fragment,null,l.createElement(O,null),l.createElement(j,null)),T=void 0!==e.title&&null!==e.title,I=`${r}-body`;return l.createElement("div",{className:`${r}-body-wrapper`},l.createElement("div",{className:(0,d.default)(I,{[`${I}-has-title`]:T})},$,l.createElement("div",{className:`${r}-paragraph`},T&&l.createElement("span",{className:`${r}-title`},e.title),l.createElement("div",{className:`${r}-content`},e.content))),void 0===p||"function"==typeof p?l.createElement(x,{value:S},l.createElement("div",{className:`${r}-btns`},"function"==typeof p?p(N,{OkBtn:j,CancelBtn:O}):N)):p,l.createElement(ew,{prefixCls:t}))},eT=e=>{let{close:t,zIndex:n,maskStyle:a,direction:o,prefixCls:r,wrapClassName:i,rootPrefixCls:s,bodyStyle:c,closable:u=!1,onConfirm:g,styles:b,title:v}=e,$=`${r}-confirm`,C=e.width||416,y=e.style||{},h=void 0===e.mask||e.mask,x=void 0!==e.maskClosable&&e.maskClosable,O=(0,d.default)($,`${$}-${e.type}`,{[`${$}-rtl`]:"rtl"===o},e.className),[,j]=(0,p.default)(),E=l.useMemo(()=>void 0!==n?n:j.zIndexPopupBase+f.CONTAINER_MAX_OFFSET,[n,j]);return l.createElement(ek,Object.assign({},e,{className:O,wrapClassName:(0,d.default)({[`${$}-centered`]:!!e.centered},i),onCancel:()=>{null==t||t({triggerCancel:!0}),null==g||g(!1)},title:v,footer:null,transitionName:(0,m.getTransitionName)(s||"","zoom",e.transitionName),maskTransitionName:(0,m.getTransitionName)(s||"","fade",e.maskTransitionName),mask:h,maskClosable:x,style:y,styles:Object.assign({body:c,mask:a},b),width:C,zIndex:E,closable:u}),l.createElement(eN,Object.assign({},e,{confirmPrefixCls:$})))},eI=e=>{let{rootPrefixCls:t,iconPrefixCls:n,direction:o,theme:r}=e;return l.createElement(a.default,{prefixCls:t,iconPrefixCls:n,direction:o,theme:r},l.createElement(eT,Object.assign({},e)))},eP=[],eR="",eB=e=>{var t,n;let{prefixCls:a,getContainer:r,direction:i}=e,s=(0,ei.getConfirmLocale)(),c=(0,l.useContext)(o.ConfigContext),u=eR||c.getPrefixCls(),d=a||`${u}-modal`,f=r;return!1===f&&(f=void 0),l.default.createElement(eI,Object.assign({},e,{rootPrefixCls:u,prefixCls:d,iconPrefixCls:c.iconPrefixCls,theme:c.theme,direction:null!=i?i:c.direction,locale:null!=(n=null==(t=c.locale)?void 0:t.Modal)?n:s,getContainer:f}))};function eM(e){let t,o,i=(0,a.globalConfig)(),s=document.createDocumentFragment(),c=Object.assign(Object.assign({},e),{close:f,open:!0});function u(...t){var l;t.some(e=>null==e?void 0:e.triggerCancel)&&(null==(l=e.onCancel)||l.call.apply(l,[e,()=>{}].concat((0,n.default)(t.slice(1)))));for(let e=0;e{clearTimeout(t),t=setTimeout(()=>{let t=i.getPrefixCls(void 0,eR),n=i.getIconPrefixCls(),c=i.getTheme(),u=l.default.createElement(eB,Object.assign({},e));o=(0,r.unstableSetRender)()(l.default.createElement(a.default,{prefixCls:t,iconPrefixCls:n,theme:c},"function"==typeof i.holderRender?i.holderRender(u):u),s)})};function f(...t){(c=Object.assign(Object.assign({},c),{open:!1,afterClose:()=>{"function"==typeof e.afterClose&&e.afterClose(),u.apply(this,t)}})).visible&&delete c.visible,d(c)}return d(c),eP.push(f),{destroy:f,update:function(e){d(c="function"==typeof e?e(c):Object.assign(Object.assign({},c),e))}}}function ez(e){return Object.assign(Object.assign({},e),{type:"warning"})}function eH(e){return Object.assign(Object.assign({},e),{type:"info"})}function eq(e){return Object.assign(Object.assign({},e),{type:"success"})}function eL(e){return Object.assign(Object.assign({},e),{type:"error"})}function eA(e){return Object.assign(Object.assign({},e),{type:"confirm"})}var eF=e.i(805484),eW=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eD=(0,eF.withPureRenderTheme)(e=>{let{prefixCls:t,className:n,closeIcon:a,closable:r,type:i,title:s,children:c,footer:u}=e,f=eW(e,["prefixCls","className","closeIcon","closable","type","title","children","footer"]),{getPrefixCls:m}=l.useContext(o.ConfigContext),g=m(),p=t||m("modal"),b=(0,J.default)(g),[v,$,C]=ej(p,b),y=`${p}-confirm`,h={};return h=i?{closable:null!=r&&r,title:"",footer:"",children:l.createElement(eN,Object.assign({},e,{prefixCls:p,confirmPrefixCls:y,rootPrefixCls:g,content:c}))}:{closable:null==r||r,title:s,footer:null!==u&&l.createElement(ec,Object.assign({},e)),children:c},v(l.createElement(D,Object.assign({prefixCls:p,className:(0,d.default)($,`${p}-pure-panel`,i&&y,i&&`${y}-${i}`,n,C,b)},f,{closeIcon:es(p,a),closable:r},h)))});var eG=e.i(87414),eX=e.i(929447),eU=function(e,t){var n={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&0>t.indexOf(l)&&(n[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,l=Object.getOwnPropertySymbols(e);at.indexOf(l[a])&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(n[l[a]]=e[l[a]]);return n};let eK=l.forwardRef((e,t)=>{var a,{afterClose:r,config:i}=e,s=eU(e,["afterClose","config"]);let[c,u]=l.useState(!0),[d,f]=l.useState(i),{direction:m,getPrefixCls:g}=l.useContext(o.ConfigContext),p=g("modal"),b=g(),v=(...e)=>{var t;u(!1),e.some(e=>null==e?void 0:e.triggerCancel)&&(null==(t=d.onCancel)||t.call.apply(t,[d,()=>{}].concat((0,n.default)(e.slice(1)))))};l.useImperativeHandle(t,()=>({destroy:v,update:e=>{f(t=>{let n="function"==typeof e?e(t):e;return Object.assign(Object.assign({},t),n)})}}));let $=null!=(a=d.okCancel)?a:"confirm"===d.type,[C]=(0,eX.default)("Modal",eG.default.Modal);return l.createElement(eI,Object.assign({prefixCls:p,rootPrefixCls:b},d,{close:v,open:c,afterClose:()=>{var e;r(),null==(e=d.afterClose)||e.call(d)},okText:d.okText||($?null==C?void 0:C.okText:null==C?void 0:C.justOkText),direction:d.direction||m,cancelText:d.cancelText||(null==C?void 0:C.cancelText)},s))}),eV=0,eY=l.memo(l.forwardRef((e,t)=>{let[a,o]=(()=>{let[e,t]=l.useState([]);return[e,l.useCallback(e=>(t(t=>[].concat((0,n.default)(t),[e])),()=>{t(t=>t.filter(t=>t!==e))}),[])]})();return l.useImperativeHandle(t,()=>({patchElement:o}),[o]),l.createElement(l.Fragment,null,a)}));function e_(e){return eM(ez(e))}ek.useModal=function(){let e=l.useRef(null),[t,a]=l.useState([]);l.useEffect(()=>{t.length&&((0,n.default)(t).forEach(e=>{e()}),a([]))},[t]);let o=l.useCallback(t=>function(o){var r;let i,s;eV+=1;let c=l.createRef(),u=new Promise(e=>{i=e}),d=!1,f=l.createElement(eK,{key:`modal-${eV}`,config:t(o),ref:c,afterClose:()=>{null==s||s()},isSilent:()=>d,onConfirm:e=>{i(e)}});return(s=null==(r=e.current)?void 0:r.patchElement(f))&&eP.push(s),{destroy:()=>{function e(){var e;null==(e=c.current)||e.destroy()}c.current?e():a(t=>[].concat((0,n.default)(t),[e]))},update:e=>{function t(){var t;null==(t=c.current)||t.update(e)}c.current?t():a(e=>[].concat((0,n.default)(e),[t]))},then:e=>(d=!0,u.then(e))}},[]);return[l.useMemo(()=>({info:o(eH),success:o(eq),error:o(eL),warning:o(ez),confirm:o(eA)}),[o]),l.createElement(eY,{key:"modal-holder",ref:e})]},ek.info=function(e){return eM(eH(e))},ek.success=function(e){return eM(eq(e))},ek.error=function(e){return eM(eL(e))},ek.warning=e_,ek.warn=e_,ek.confirm=function(e){return eM(eA(e))},ek.destroyAll=function(){for(;eP.length;){let e=eP.pop();e&&e()}},ek.config=function({rootPrefixCls:e}){eR=e},ek._InternalPanelDoNotUseOrYouWillBeFired=eD,e.s(["Modal",0,ek],212931)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1b1b0930772e484a.js b/litellm/proxy/_experimental/out/_next/static/chunks/1b1b0930772e484a.js deleted file mode 100644 index 45a247e8846..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/1b1b0930772e484a.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,326373,e=>{"use strict";var t=e.i(21539);e.s(["Dropdown",()=>t.default])},275144,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(764205);let a=(0,r.createContext)(void 0);e.s(["ThemeProvider",0,({children:e,accessToken:o})=>{let[s,i]=(0,r.useState)(null);return(0,r.useEffect)(()=>{(async()=>{try{let e=(0,n.getProxyBaseUrl)(),t=e?`${e}/get/ui_theme_settings`:"/get/ui_theme_settings",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(r.ok){let e=await r.json();e.values?.logo_url&&i(e.values.logo_url)}}catch(e){console.warn("Failed to load logo settings from backend:",e)}})()},[]),(0,t.jsx)(a.Provider,{value:{logoUrl:s,setLogoUrl:i},children:e})},"useTheme",0,()=>{let e=(0,r.useContext)(a);if(!e)throw Error("useTheme must be used within a ThemeProvider");return e}])},998183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(151836)._(e.r(998183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(o.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${a}${u}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},718967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return w},NormalizeError:function(){return x},PageNotFoundError:function(){return y},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class x extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function b(e){return JSON.stringify({message:e.message,stack:e.stack})}},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(718967),a=e.r(652817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return v},useLinkStatus:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(151836),s=e.r(843476),i=o._(e.r(271645)),l=e.r(195057),c=e.r(8372),u=e.r(818581),d=e.r(718967),f=e.r(405550);e.r(233525);let h=e.r(91949),p=e.r(573668),m=e.r(509396);function g(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function v(t){var r;let n,a,o,[l,v]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),y=(0,i.useRef)(null),{href:w,as:j,children:b,prefetch:S=null,passHref:E,replace:P,shallow:L,scroll:T,onClick:_,onMouseEnter:C,onTouchStart:N,legacyBehavior:O=!1,onNavigate:z,ref:R,unstable_dynamicOnHover:k,...M}=t;n=b,O&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let B=i.default.useContext(c.AppRouterContext),U=!1!==S,A=!1!==S?null===(r=S)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:I,as:$}=i.default.useMemo(()=>{let e=g(w);return{href:e,as:j?g(j):e}},[w,j]);if(O){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=i.default.Children.only(n)}let D=O?a&&"object"==typeof a&&a.ref:R,H=i.default.useCallback(e=>(null!==B&&(y.current=(0,h.mountLinkInstance)(e,I,B,A,U,v)),()=>{y.current&&((0,h.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,h.unmountPrefetchableInstance)(e)}),[U,I,B,A,v]),F={ref:(0,u.useMergedRef)(H,D),onClick(t){O||"function"!=typeof _||_(t),O&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!B||t.defaultPrevented||function(t,r,n,a,o,s,l){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,p.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(699781);i.default.startTransition(()=>{d(n||r,o?"replace":"push",s??!0,a.current)})}}(t,I,$,y,P,T,z)},onMouseEnter(e){O||"function"!=typeof C||C(e),O&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),B&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)},onTouchStart:function(e){O||"function"!=typeof N||N(e),O&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),B&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===k)}};return(0,d.isAbsoluteUrl)($)?F.href=$:O&&!E&&("a"!==a.type||"href"in a.props)||(F.href=(0,f.addBasePath)($)),o=O?i.default.cloneElement(a,F):(0,s.jsx)("a",{...M,...F,children:n}),(0,s.jsx)(x.Provider,{value:l,children:o})}e.r(284508);let x=(0,i.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(x);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},402874,636772,e=>{"use strict";var t=e.i(843476),r=e.i(764205),n=e.i(266027);let a=(0,e.i(243652).createQueryKeys)("healthReadiness"),o=async()=>{let e=(0,r.getProxyBaseUrl)(),t=await fetch(`${e}/health/readiness`);if(!t.ok)throw Error(`Failed to fetch health readiness: ${t.statusText}`);return t.json()};var s=e.i(275144),i=e.i(268004),l=e.i(62478);e.i(247167);var c=e.i(931067),u=e.i(271645);let d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};var f=e.i(9583),h=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:d}))});let p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z"}}]},name:"menu-unfold",theme:"outlined"};var m=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:p}))}),g=e.i(790848),v=e.i(262218),x=e.i(522016),y=e.i(115571);function w(e){let t=t=>{"disableShowPrompts"===t.key&&e()},r=t=>{let{key:r}=t.detail;"disableShowPrompts"===r&&e()};return window.addEventListener("storage",t),window.addEventListener(y.LOCAL_STORAGE_EVENT,r),()=>{window.removeEventListener("storage",t),window.removeEventListener(y.LOCAL_STORAGE_EVENT,r)}}function j(){return"true"===(0,y.getLocalStorageItem)("disableShowPrompts")}function b(){return(0,u.useSyncExternalStore)(w,j)}e.s(["useDisableShowPrompts",()=>b],636772);let S={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"}}]},name:"github",theme:"outlined"};var E=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:S}))});let P={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 00-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z"}}]},name:"slack",theme:"outlined"};var L=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:P}))}),T=e.i(464571);let _=()=>b()?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.Button,{href:"https://www.litellm.ai/support",target:"_blank",rel:"noopener noreferrer",icon:(0,t.jsx)(L,{}),className:"shadow-md shadow-indigo-500/20 hover:shadow-indigo-500/50 transition-shadow",children:"Join Slack"}),(0,t.jsx)(T.Button,{href:"https://github.com/BerriAI/litellm",target:"_blank",rel:"noopener noreferrer",className:"shadow-md shadow-indigo-500/20 hover:shadow-indigo-500/50 transition-shadow",icon:(0,t.jsx)(E,{}),children:"Star us on GitHub"})]});var C=e.i(135214);let N={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z"}}]},name:"crown",theme:"outlined"};var O=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:N}))}),z=e.i(755151);let R={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z"}}]},name:"logout",theme:"outlined"};var k=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:R}))});let M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"}}]},name:"mail",theme:"outlined"};var B=u.forwardRef(function(e,t){return u.createElement(f.default,(0,c.default)({},e,{ref:t,icon:M}))}),U=e.i(602073),A=e.i(771674),I=e.i(312361),$=e.i(326373),D=e.i(770914),H=e.i(592968);let{Text:F}=e.i(898586).Typography,K=({onLogout:e})=>{let{userId:r,userEmail:n,userRole:a,premiumUser:o}=(0,C.default)(),s=b(),[i,l]=(0,u.useState)(!1);(0,u.useEffect)(()=>{l("true"===(0,y.getLocalStorageItem)("disableShowNewBadge"))},[]);let c=[{key:"logout",label:(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(k,{}),"Logout"]}),onClick:e}];return(0,t.jsx)($.Dropdown,{menu:{items:c},popupRender:e=>(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow-lg",children:[(0,t.jsxs)(D.Space,{direction:"vertical",size:"small",style:{width:"100%",padding:"12px"},children:[(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(B,{}),(0,t.jsx)(F,{type:"secondary",children:n||"-"})]}),o?(0,t.jsx)(v.Tag,{icon:(0,t.jsx)(O,{}),color:"gold",children:"Premium"}):(0,t.jsx)(H.Tooltip,{title:"Upgrade to Premium for advanced features",placement:"left",children:(0,t.jsx)(v.Tag,{icon:(0,t.jsx)(O,{}),children:"Standard"})})]}),(0,t.jsx)(I.Divider,{style:{margin:"8px 0"}}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(A.UserOutlined,{}),(0,t.jsx)(F,{type:"secondary",children:"User ID"})]}),(0,t.jsx)(F,{copyable:!0,ellipsis:!0,style:{maxWidth:"150px"},title:r||"-",children:r||"-"})]}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(U.SafetyOutlined,{}),(0,t.jsx)(F,{type:"secondary",children:"Role"})]}),(0,t.jsx)(F,{children:a})]}),(0,t.jsx)(I.Divider,{style:{margin:"8px 0"}}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsx)(F,{type:"secondary",children:"Hide New Feature Indicators"}),(0,t.jsx)(g.Switch,{size:"small",checked:i,onChange:e=>{l(e),e?(0,y.setLocalStorageItem)("disableShowNewBadge","true"):(0,y.removeLocalStorageItem)("disableShowNewBadge"),(0,y.emitLocalStorageChange)("disableShowNewBadge")},"aria-label":"Toggle hide new feature indicators"})]}),(0,t.jsxs)(D.Space,{style:{width:"100%",justifyContent:"space-between"},children:[(0,t.jsx)(F,{type:"secondary",children:"Hide All Prompts"}),(0,t.jsx)(g.Switch,{size:"small",checked:s,onChange:e=>{e?(0,y.setLocalStorageItem)("disableShowPrompts","true"):(0,y.removeLocalStorageItem)("disableShowPrompts"),(0,y.emitLocalStorageChange)("disableShowPrompts")},"aria-label":"Toggle hide all prompts"})]})]}),(0,t.jsx)(I.Divider,{style:{margin:0}}),u.default.cloneElement(e,{style:{boxShadow:"none"}})]}),children:(0,t.jsx)(T.Button,{type:"text",children:(0,t.jsxs)(D.Space,{children:[(0,t.jsx)(A.UserOutlined,{}),(0,t.jsx)(F,{children:"User"}),(0,t.jsx)(z.DownOutlined,{})]})})})};e.s(["default",0,({userID:e,userEmail:c,userRole:d,premiumUser:f,proxySettings:p,setProxySettings:g,accessToken:y,isPublicPage:w=!1,sidebarCollapsed:j=!1,onToggleSidebar:b,isDarkMode:S,toggleDarkMode:E})=>{let P=(0,r.getProxyBaseUrl)(),[L,T]=(0,u.useState)(""),{logoUrl:C}=(0,s.useTheme)(),{data:N}=(0,n.useQuery)({queryKey:a.detail("readiness"),queryFn:o,staleTime:3e5}),O=N?.litellm_version,z=C||`${P}/get_image`;return(0,u.useEffect)(()=>{(async()=>{if(y){let e=await (0,l.fetchProxySettings)(y);console.log("response from fetchProxySettings",e),e&&g(e)}})()},[y]),(0,u.useEffect)(()=>{T(p?.PROXY_LOGOUT_URL||"")},[p]),(0,t.jsx)("nav",{className:"bg-white border-b border-gray-200 sticky top-0 z-10",children:(0,t.jsx)("div",{className:"w-full",children:(0,t.jsxs)("div",{className:"flex items-center h-14 px-4",children:[(0,t.jsxs)("div",{className:"flex items-center flex-shrink-0",children:[b&&(0,t.jsx)("button",{onClick:b,className:"flex items-center justify-center w-10 h-10 mr-2 text-gray-600 hover:text-gray-900 hover:bg-gray-100 rounded transition-colors",title:j?"Expand sidebar":"Collapse sidebar",children:(0,t.jsx)("span",{className:"text-lg",children:j?(0,t.jsx)(m,{}):(0,t.jsx)(h,{})})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.default,{href:P||"/",className:"flex items-center",children:(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("div",{className:"h-10 max-w-48 flex items-center justify-center overflow-hidden",children:(0,t.jsx)("img",{src:z,alt:"LiteLLM Brand",className:"max-w-full max-h-full w-auto h-auto object-contain"})})})}),O&&(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("span",{className:"absolute -top-1 -left-2 text-lg animate-bounce",style:{animationDuration:"2s"},title:"Thanks for using LiteLLM!",children:"❄️"}),(0,t.jsx)(v.Tag,{className:"relative text-xs font-medium cursor-pointer z-10",children:(0,t.jsxs)("a",{href:"https://docs.litellm.ai/release_notes",target:"_blank",rel:"noopener noreferrer",className:"flex-shrink-0",children:["v",O]})})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-5 ml-auto",children:[(0,t.jsx)(_,{}),!1,(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 hover:text-gray-900 transition-colors",children:"Docs"}),!w&&(0,t.jsx)(K,{onLogout:()=>{(0,i.clearTokenCookies)(),window.location.href=L}})]})]})})})}],402874)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1b8186fdb9bf9067.js b/litellm/proxy/_experimental/out/_next/static/chunks/1b8186fdb9bf9067.js new file mode 100644 index 00000000000..6ea3d96ca61 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/1b8186fdb9bf9067.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},350967,46757,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l={0:"grid-cols-none",1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6",7:"grid-cols-7",8:"grid-cols-8",9:"grid-cols-9",10:"grid-cols-10",11:"grid-cols-11",12:"grid-cols-12"},n={0:"sm:grid-cols-none",1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6",7:"sm:grid-cols-7",8:"sm:grid-cols-8",9:"sm:grid-cols-9",10:"sm:grid-cols-10",11:"sm:grid-cols-11",12:"sm:grid-cols-12"},i={0:"md:grid-cols-none",1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8",9:"md:grid-cols-9",10:"md:grid-cols-10",11:"md:grid-cols-11",12:"md:grid-cols-12"},o={0:"lg:grid-cols-none",1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6",7:"lg:grid-cols-7",8:"lg:grid-cols-8",9:"lg:grid-cols-9",10:"lg:grid-cols-10",11:"lg:grid-cols-11",12:"lg:grid-cols-12"},c={1:"col-span-1",2:"col-span-2",3:"col-span-3",4:"col-span-4",5:"col-span-5",6:"col-span-6",7:"col-span-7",8:"col-span-8",9:"col-span-9",10:"col-span-10",11:"col-span-11",12:"col-span-12",13:"col-span-13"},d={1:"sm:col-span-1",2:"sm:col-span-2",3:"sm:col-span-3",4:"sm:col-span-4",5:"sm:col-span-5",6:"sm:col-span-6",7:"sm:col-span-7",8:"sm:col-span-8",9:"sm:col-span-9",10:"sm:col-span-10",11:"sm:col-span-11",12:"sm:col-span-12",13:"sm:col-span-13"},m={1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3",4:"md:col-span-4",5:"md:col-span-5",6:"md:col-span-6",7:"md:col-span-7",8:"md:col-span-8",9:"md:col-span-9",10:"md:col-span-10",11:"md:col-span-11",12:"md:col-span-12",13:"md:col-span-13"},u={1:"lg:col-span-1",2:"lg:col-span-2",3:"lg:col-span-3",4:"lg:col-span-4",5:"lg:col-span-5",6:"lg:col-span-6",7:"lg:col-span-7",8:"lg:col-span-8",9:"lg:col-span-9",10:"lg:col-span-10",11:"lg:col-span-11",12:"lg:col-span-12",13:"lg:col-span-13"};e.s(["colSpan",()=>c,"colSpanLg",()=>u,"colSpanMd",()=>m,"colSpanSm",()=>d,"gridCols",()=>l,"gridColsLg",()=>o,"gridColsMd",()=>i,"gridColsSm",()=>n],46757);let g=(0,a.makeClassName)("Grid"),p=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"",x=s.default.forwardRef((e,a)=>{let{numItems:c=1,numItemsSm:d,numItemsMd:m,numItemsLg:u,children:x,className:h}=e,f=(0,t.__rest)(e,["numItems","numItemsSm","numItemsMd","numItemsLg","children","className"]),b=p(c,l),y=p(d,n),v=p(m,i),j=p(u,o),w=(0,r.tremorTwMerge)(b,y,v,j);return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(g("root"),"grid",w,h)},f),x)});x.displayName="Grid",e.s(["Grid",()=>x],350967)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),a=e.i(343794),s=e.i(242064),l=e.i(763731),n=e.i(174428);let i=80*Math.PI,o=e=>{let{dotClassName:t,style:s,hasCircleCls:l}=e;return r.createElement("circle",{className:(0,a.default)(`${t}-circle`,{[`${t}-circle-bg`]:l}),r:40,cx:50,cy:50,strokeWidth:20,style:s})},c=({percent:e,prefixCls:t})=>{let s=`${t}-dot`,l=`${s}-holder`,c=`${l}-hidden`,[d,m]=r.useState(!1);(0,n.default)(()=>{0!==e&&m(!0)},[0!==e]);let u=Math.max(Math.min(e,100),0);if(!d)return null;let g={strokeDashoffset:`${i/4}`,strokeDasharray:`${i*u/100} ${i*(100-u)/100}`};return r.createElement("span",{className:(0,a.default)(l,`${s}-progress`,u<=0&&c)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u},r.createElement(o,{dotClassName:s,hasCircleCls:!0}),r.createElement(o,{dotClassName:s,style:g})))};function d(e){let{prefixCls:t,percent:s=0}=e,l=`${t}-dot`,n=`${l}-holder`,i=`${n}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,a.default)(n,s>0&&i)},r.createElement("span",{className:(0,a.default)(l,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(c,{prefixCls:t,percent:s}))}function m(e){var t;let{prefixCls:s,indicator:n,percent:i}=e,o=`${s}-dot`;return n&&r.isValidElement(n)?(0,l.cloneElement)(n,{className:(0,a.default)(null==(t=n.props)?void 0:t.className,o),percent:i}):r.createElement(d,{prefixCls:s,percent:i})}e.i(296059);var u=e.i(694758),g=e.i(183293),p=e.i(246422),x=e.i(838378);let h=new u.Keyframes("antSpinMove",{to:{opacity:1}}),f=new u.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),b=(0,p.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:h,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:f,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,x.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),y=[[30,.05],[70,.03],[96,.01]];var v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var s=0,a=Object.getOwnPropertySymbols(e);st.indexOf(a[s])&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(r[a[s]]=e[a[s]]);return r};let j=e=>{var l;let{prefixCls:n,spinning:i=!0,delay:o=0,className:c,rootClassName:d,size:u="default",tip:g,wrapperClassName:p,style:x,children:h,fullscreen:f=!1,indicator:j,percent:w}=e,N=v(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:k,direction:S,className:C,style:M,indicator:T}=(0,s.useComponentConfig)("spin"),E=k("spin",n),[O,$,_]=b(E),[P,L]=r.useState(()=>i&&(!i||!o||!!Number.isNaN(Number(o)))),D=function(e,t){let[a,s]=r.useState(0),l=r.useRef(null),n="auto"===t;return r.useEffect(()=>(n&&e&&(s(0),l.current=setInterval(()=>{s(e=>{let t=100-e;for(let r=0;r{l.current&&(clearInterval(l.current),l.current=null)}),[n,e]),n?a:t}(P,w);r.useEffect(()=>{if(i){let e=function(e,t,r){var a,s=r||{},l=s.noTrailing,n=void 0!==l&&l,i=s.noLeading,o=void 0!==i&&i,c=s.debounceMode,d=void 0===c?void 0:c,m=!1,u=0;function g(){a&&clearTimeout(a)}function p(){for(var r=arguments.length,s=Array(r),l=0;le?o?(u=Date.now(),n||(a=setTimeout(d?x:p,e))):p():!0!==n&&(a=setTimeout(d?x:p,void 0===d?e-c:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly;g(),m=!(void 0!==t&&t)},p}(o,()=>{L(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}L(!1)},[o,i]);let z=r.useMemo(()=>void 0!==h&&!f,[h,f]),I=(0,a.default)(E,C,{[`${E}-sm`]:"small"===u,[`${E}-lg`]:"large"===u,[`${E}-spinning`]:P,[`${E}-show-text`]:!!g,[`${E}-rtl`]:"rtl"===S},c,!f&&d,$,_),R=(0,a.default)(`${E}-container`,{[`${E}-blur`]:P}),A=null!=(l=null!=j?j:T)?l:t,F=Object.assign(Object.assign({},M),x),B=r.createElement("div",Object.assign({},N,{style:F,className:I,"aria-live":"polite","aria-busy":P}),r.createElement(m,{prefixCls:E,indicator:A,percent:D}),g&&(z||f)?r.createElement("div",{className:`${E}-text`},g):null);return O(z?r.createElement("div",Object.assign({},N,{className:(0,a.default)(`${E}-nested-loading`,p,$,_)}),P&&r.createElement("div",{key:"loading"},B),r.createElement("div",{className:R,key:"container"},h)):f?r.createElement("div",{className:(0,a.default)(`${E}-fullscreen`,{[`${E}-fullscreen-show`]:P},d,$,_)},B):B)};j.setDefaultIndicator=e=>{t=e},e.s(["default",0,j],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},955135,e=>{"use strict";var t=e.i(597440);e.s(["DeleteOutlined",()=>t.default])},519756,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["UploadOutlined",0,l],519756)},533882,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(250980),s=e.i(797672),l=e.i(68155),n=e.i(304967),i=e.i(629569),o=e.i(599724),c=e.i(269200),d=e.i(427612),m=e.i(64848),u=e.i(942232),g=e.i(496020),p=e.i(977572),x=e.i(992619),h=e.i(727749);e.s(["default",0,({accessToken:e,initialModelAliases:f={},onAliasUpdate:b,showExampleConfig:y=!0})=>{let[v,j]=(0,r.useState)([]),[w,N]=(0,r.useState)({aliasName:"",targetModel:""}),[k,S]=(0,r.useState)(null);(0,r.useEffect)(()=>{j(Object.entries(f).map(([e,t],r)=>({id:`${r}-${e}`,aliasName:e,targetModel:t})))},[f]);let C=()=>{if(!k)return;if(!k.aliasName||!k.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.id!==k.id&&e.aliasName===k.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=v.map(e=>e.id===k.id?k:e);j(e),S(null);let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),h.default.success("Alias updated successfully")},M=()=>{S(null)},T=v.reduce((e,t)=>(e[t.aliasName]=t.targetModel,e),{});return(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:w.aliasName,onChange:e=>N({...w,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model"}),(0,t.jsx)(x.default,{accessToken:e,value:w.targetModel,placeholder:"Select target model",onChange:e=>N({...w,targetModel:e}),showLabel:!1})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:()=>{if(!w.aliasName||!w.targetModel)return void h.default.fromBackend("Please provide both alias name and target model");if(v.some(e=>e.aliasName===w.aliasName))return void h.default.fromBackend("An alias with this name already exists");let e=[...v,{id:`${Date.now()}-${w.aliasName}`,aliasName:w.aliasName,targetModel:w.targetModel}];j(e),N({aliasName:"",targetModel:""});let t={};e.forEach(e=>{t[e.aliasName]=e.targetModel}),b&&b(t),h.default.success("Alias added successfully")},disabled:!w.aliasName||!w.targetModel,className:`flex items-center px-4 py-2 rounded-md text-sm ${!w.aliasName||!w.targetModel?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(a.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(o.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(c.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(d.TableHead,{children:(0,t.jsxs)(g.TableRow,{children:[(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Target Model"}),(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(u.TableBody,{children:[v.map(r=>(0,t.jsx)(g.TableRow,{className:"h-8",children:k&&k.id===r.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:k.aliasName,onChange:e=>S({...k,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(p.TableCell,{className:"py-0.5",children:(0,t.jsx)(x.default,{accessToken:e,value:k.targetModel,onChange:e=>S({...k,targetModel:e}),showLabel:!1,style:{height:"32px"}})}),(0,t.jsx)(p.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:C,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:M,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.TableCell,{className:"py-0.5 text-sm text-gray-900",children:r.aliasName}),(0,t.jsx)(p.TableCell,{className:"py-0.5 text-sm text-gray-500",children:r.targetModel}),(0,t.jsx)(p.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{S({...r})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(s.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>{var e;let t,a;return e=r.id,j(t=v.filter(t=>t.id!==e)),a={},void(t.forEach(e=>{a[e.aliasName]=e.targetModel}),b&&b(a),h.default.success("Alias deleted successfully"))},className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(l.TrashIcon,{className:"w-3 h-3"})})]})})]})},r.id)),0===v.length&&(0,t.jsx)(g.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),y&&(0,t.jsxs)(n.Card,{children:[(0,t.jsx)(i.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(o.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["model_aliases:",0===Object.keys(T).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{})," # No aliases configured yet"]}):Object.entries(T).map(([e,r])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),' "',e,'": "',r,'"']},e))]})})]})]})}])},651904,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(266484);e.s(["default",0,function({value:e,onChange:s,premiumUser:l=!1,disabledCallbacks:n=[],onDisabledCallbacksChange:i}){return l?(0,t.jsx)(a.default,{value:e,onChange:s,disabledCallbacks:n,onDisabledCallbacksChange:i}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 mb-3",children:[(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ langfuse-logging"}),(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-green-50 border border-green-200 text-green-800 text-sm font-medium opacity-50",children:"✨ datadog-logging"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(r.Text,{className:"text-sm text-yellow-800",children:["Setting Key/Team logging settings is a LiteLLM Enterprise feature. Global Logging Settings are available for all free users. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})}])},384767,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(271645),s=e.i(389083);let l=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"}))});var n=e.i(764205);let i=function({vectorStores:e,accessToken:i}){let[o,c]=(0,a.useState)([]);return(0,a.useEffect)(()=>{(async()=>{if(i&&0!==e.length)try{let e=await (0,n.vectorStoreListCall)(i);e.data&&c(e.data.map(e=>({vector_store_id:e.vector_store_id,vector_store_name:e.vector_store_name})))}catch(e){console.error("Error fetching vector stores:",e)}})()},[i,e.length]),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Vector Stores"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:e.length})]}),e.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.map((e,r)=>{let a;return(0,t.jsx)("div",{className:"inline-flex items-center px-3 py-1.5 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-sm font-medium",children:(a=o.find(t=>t.vector_store_id===e))?`${a.vector_store_name||a.vector_store_id} (${a.vector_store_id})`:e},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No vector stores configured"})]})]})},o=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"}))});var c=e.i(871943),d=e.i(502547),m=e.i(592968);let u=function({mcpServers:l,mcpAccessGroups:i=[],mcpToolPermissions:u={},accessToken:g}){let[p,x]=(0,a.useState)([]),[h,f]=(0,a.useState)([]),[b,y]=(0,a.useState)(new Set);(0,a.useEffect)(()=>{(async()=>{if(g&&l.length>0)try{let e=await (0,n.fetchMCPServers)(g);e&&Array.isArray(e)?x(e):e.data&&Array.isArray(e.data)&&x(e.data)}catch(e){console.error("Error fetching MCP servers:",e)}})()},[g,l.length]),(0,a.useEffect)(()=>{(async()=>{if(g&&i.length>0)try{let t=await e.A(601236).then(e=>e.fetchMCPAccessGroups(g));f(Array.isArray(t)?t:t.data||[])}catch(e){console.error("Error fetching MCP access groups:",e)}})()},[g,i.length]);let v=[...l.map(e=>({type:"server",value:e})),...i.map(e=>({type:"accessGroup",value:e}))],j=v.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"MCP Servers"}),(0,t.jsx)(s.Badge,{color:"blue",size:"xs",children:j})]}),j>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:v.map((e,r)=>{let a="server"===e.type?u[e.value]:void 0,s=a&&a.length>0,l=b.has(e.value);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{onClick:()=>{var t;return s&&(t=e.value,void y(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r}))},className:`flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 transition-all ${s?"cursor-pointer hover:bg-gray-50 hover:border-gray-300":"bg-white"}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"server"===e.type?(0,t.jsx)(m.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-blue-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=p.find(t=>t.server_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.alias} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})}),s&&(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0 whitespace-nowrap",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-600",children:a.length}),(0,t.jsx)("span",{className:"text-xs text-gray-500",children:1===a.length?"tool":"tools"}),l?(0,t.jsx)(c.ChevronDownIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"}):(0,t.jsx)(d.ChevronRightIcon,{className:"h-3.5 w-3.5 text-gray-400 ml-0.5"})]})]}),s&&l&&(0,t.jsx)("div",{className:"ml-4 pl-4 border-l-2 border-blue-200 pb-1",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.map((e,r)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 rounded-lg bg-blue-50 border border-blue-200 text-blue-800 text-xs font-medium",children:e},r))})})]},r)})}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No MCP servers or access groups configured"})]})]})},g=a.forwardRef(function(e,t){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"}))}),p=function({agents:e,agentAccessGroups:l=[],accessToken:i}){let[o,c]=(0,a.useState)([]);(0,a.useEffect)(()=>{(async()=>{if(i&&e.length>0)try{let e=await (0,n.getAgentsList)(i);e&&e.agents&&Array.isArray(e.agents)&&c(e.agents)}catch(e){console.error("Error fetching agents:",e)}})()},[i,e.length]);let d=[...e.map(e=>({type:"agent",value:e})),...l.map(e=>({type:"accessGroup",value:e}))],u=d.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(g,{className:"h-4 w-4 text-purple-600"}),(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Agents"}),(0,t.jsx)(s.Badge,{color:"purple",size:"xs",children:u})]}),u>0?(0,t.jsx)("div",{className:"max-h-[400px] overflow-y-auto space-y-2 pr-1",children:d.map((e,r)=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)("div",{className:"flex items-center gap-3 py-2 px-3 rounded-lg border border-gray-200 bg-white",children:(0,t.jsx)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:"agent"===e.type?(0,t.jsx)(m.Tooltip,{title:`Full ID: ${e.value}`,placement:"top",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-purple-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:(e=>{let t=o.find(t=>t.agent_id===e);if(t){let r=e.length>7?`${e.slice(0,3)}...${e.slice(-4)}`:e;return`${t.agent_name} (${r})`}return e})(e.value)})]})}):(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:"inline-block w-1.5 h-1.5 bg-green-500 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900 truncate",children:e.value}),(0,t.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold text-green-600 bg-green-50 border border-green-200 rounded uppercase tracking-wide flex-shrink-0",children:"Group"})]})})})},r))}):(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-gray-50 border border-gray-200",children:[(0,t.jsx)(g,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)(r.Text,{className:"text-gray-500 text-sm",children:"No agents or access groups configured"})]})]})};e.s(["default",0,function({objectPermission:e,variant:a="card",className:s="",accessToken:l}){let n=e?.vector_stores||[],o=e?.mcp_servers||[],c=e?.mcp_access_groups||[],d=e?.mcp_tool_permissions||{},m=e?.agents||[],g=e?.agent_access_groups||[],x=(0,t.jsxs)("div",{className:"card"===a?"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6":"space-y-4",children:[(0,t.jsx)(i,{vectorStores:n,accessToken:l}),(0,t.jsx)(u,{mcpServers:o,mcpAccessGroups:c,mcpToolPermissions:d,accessToken:l}),(0,t.jsx)(p,{agents:m,agentAccessGroups:g,accessToken:l})]});return"card"===a?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${s}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(r.Text,{className:"font-semibold text-gray-900",children:"Object Permissions"}),(0,t.jsx)(r.Text,{className:"text-xs text-gray-500",children:"Access control for Vector Stores and MCP Servers"})]})}),x]}):(0,t.jsxs)("div",{className:`${s}`,children:[(0,t.jsx)(r.Text,{className:"font-medium text-gray-900 mb-3",children:"Object Permissions"}),x]})}],384767)},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(429427),a=e.i(371330),s=e.i(271645),l=e.i(394487),n=e.i(503269),i=e.i(214520),o=e.i(746725),c=e.i(914189),d=e.i(144279),m=e.i(294316),u=e.i(601893),g=e.i(140721),p=e.i(942803),x=e.i(233538),h=e.i(694421),f=e.i(700020),b=e.i(35889),y=e.i(998348),v=e.i(722678);let j=(0,s.createContext)(null);j.displayName="GroupContext";let w=s.Fragment,N=Object.assign((0,f.forwardRefWithAs)(function(e,t){var w;let N=(0,s.useId)(),k=(0,p.useProvidedId)(),S=(0,u.useDisabled)(),{id:C=k||`headlessui-switch-${N}`,disabled:M=S||!1,checked:T,defaultChecked:E,onChange:O,name:$,value:_,form:P,autoFocus:L=!1,...D}=e,z=(0,s.useContext)(j),[I,R]=(0,s.useState)(null),A=(0,s.useRef)(null),F=(0,m.useSyncRefs)(A,t,null===z?null:z.setSwitch,R),B=(0,i.useDefaultValue)(E),[G,q]=(0,n.useControllable)(T,O,null!=B&&B),H=(0,o.useDisposables)(),[V,X]=(0,s.useState)(!1),W=(0,c.useEvent)(()=>{X(!0),null==q||q(!G),H.nextFrame(()=>{X(!1)})}),K=(0,c.useEvent)(e=>{if((0,x.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),W()}),U=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),W()):e.key===y.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),J=(0,c.useEvent)(e=>e.preventDefault()),Y=(0,v.useLabelledBy)(),Q=(0,b.useDescribedBy)(),{isFocusVisible:Z,focusProps:ee}=(0,r.useFocusRing)({autoFocus:L}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:M}),{pressed:ea,pressProps:es}=(0,l.useActivePress)({disabled:M}),el=(0,s.useMemo)(()=>({checked:G,disabled:M,hover:et,focus:Z,active:ea,autofocus:L,changing:V}),[G,et,Z,ea,M,V,L]),en=(0,f.mergeProps)({id:C,ref:F,role:"switch",type:(0,d.useResolveButtonType)(e,I),tabIndex:-1===e.tabIndex?0:null!=(w=e.tabIndex)?w:0,"aria-checked":G,"aria-labelledby":Y,"aria-describedby":Q,disabled:M||void 0,autoFocus:L,onClick:K,onKeyUp:U,onKeyPress:J},ee,er,es),ei=(0,s.useCallback)(()=>{if(void 0!==B)return null==q?void 0:q(B)},[q,B]),eo=(0,f.useRender)();return s.default.createElement(s.default.Fragment,null,null!=$&&s.default.createElement(g.FormFields,{disabled:M,data:{[$]:_||"on"},overrides:{type:"checkbox",checked:G},form:P,onReset:ei}),eo({ourProps:en,theirProps:D,slot:el,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,s.useState)(null),[l,n]=(0,v.useLabels)(),[i,o]=(0,b.useDescriptions)(),c=(0,s.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),d=(0,f.useRender)();return s.default.createElement(o,{name:"Switch.Description",value:i},s.default.createElement(n,{name:"Switch.Label",value:l,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},s.default.createElement(j.Provider,{value:c},d({ourProps:{},theirProps:e,slot:{},defaultTag:w,name:"Switch.Group"}))))},Label:v.Label,Description:b.Description});var k=e.i(888288),S=e.i(95779),C=e.i(444755),M=e.i(673706),T=e.i(829087);let E=(0,M.makeClassName)("Switch"),O=s.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:l=!1,onChange:n,color:i,name:o,error:c,errorMessage:d,disabled:m,required:u,tooltip:g,id:p}=e,x=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,M.getColorClassNames)(i,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,M.getColorClassNames)(i,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[f,b]=(0,k.default)(l,a),[y,v]=(0,s.useState)(!1),{tooltipProps:j,getReferenceProps:w}=(0,T.useTooltip)(300);return s.default.createElement("div",{className:"flex flex-row items-center justify-start"},s.default.createElement(T.default,Object.assign({text:g},j)),s.default.createElement("div",Object.assign({ref:(0,M.mergeRefs)([r,j.refs.setReference]),className:(0,C.tremorTwMerge)(E("root"),"flex flex-row relative h-5")},x,w),s.default.createElement("input",{type:"checkbox",className:(0,C.tremorTwMerge)(E("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:o,required:u,checked:f,onChange:e=>{e.preventDefault()}}),s.default.createElement(N,{checked:f,onChange:e=>{b(e),null==n||n(e)},disabled:m,className:(0,C.tremorTwMerge)(E("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",m?"cursor-not-allowed":""),onFocus:()=>v(!0),onBlur:()=>v(!1),id:p},s.default.createElement("span",{className:(0,C.tremorTwMerge)(E("sr-only"),"sr-only")},"Switch ",f?"on":"off"),s.default.createElement("span",{"aria-hidden":"true",className:(0,C.tremorTwMerge)(E("background"),f?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),s.default.createElement("span",{"aria-hidden":"true",className:(0,C.tremorTwMerge)(E("round"),f?(0,C.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,C.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&d?s.default.createElement("p",{className:(0,C.tremorTwMerge)(E("errorMessage"),"text-sm text-red-500 mt-1 ")},d):null)});O.displayName="Switch",e.s(["Switch",()=>O],793130)},37727,e=>{"use strict";var t=e.i(841947);e.s(["X",()=>t.default])},603908,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["default",()=>t])},158392,419470,e=>{"use strict";var t=e.i(843476),r=e.i(779241);let a={ttl:3600,lowest_latency_buffer:0},s=({routingStrategyArgs:e})=>{let s={ttl:"Sliding window to look back over when calculating the average latency of a deployment. Default - 1 hour (in seconds).",lowest_latency_buffer:"Shuffle between deployments within this % of the lowest latency. Default - 0 (i.e. always pick lowest latency)."};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Latency-Based Configuration"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Fine-tune latency-based routing behavior"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e||a).map(([e,a])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:e.replace(/_/g," ")}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s[e]||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:"object"==typeof a?JSON.stringify(a,null,2):a?.toString(),className:"font-mono text-sm w-full"})]})},e))})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"})]})},l=({routerSettings:e,routerFieldsMetadata:a})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Reliability & Retries"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure retry logic and failure handling"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3",children:Object.entries(e).filter(([e,t])=>"fallbacks"!=e&&"context_window_fallbacks"!=e&&"routing_strategy_args"!=e&&"routing_strategy"!=e&&"enable_tag_filtering"!=e).map(([e,s])=>(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:a[e]?.ui_field_name||e}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:a[e]?.field_description||""}),(0,t.jsx)(r.TextInput,{name:e,defaultValue:null==s||"null"===s?"":"object"==typeof s?JSON.stringify(s,null,2):s?.toString()||"",placeholder:"—",className:"font-mono text-sm w-full"})]})},e))})]});var n=e.i(199133);let i=({selectedStrategy:e,availableStrategies:r,routingStrategyDescriptions:a,routerFieldsMetadata:s,onStrategyChange:l})=>(0,t.jsxs)("div",{className:"space-y-2 max-w-3xl",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:s.routing_strategy?.ui_field_name||"Routing Strategy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 mb-2",children:s.routing_strategy?.field_description||""})]}),(0,t.jsx)("div",{className:"routing-strategy-select max-w-3xl",children:(0,t.jsx)(n.Select,{value:e,onChange:l,style:{width:"100%"},size:"large",children:r.map(e=>(0,t.jsx)(n.Select.Option,{value:e,label:e,children:(0,t.jsxs)("div",{className:"flex flex-col gap-0.5 py-1",children:[(0,t.jsx)("span",{className:"font-mono text-sm font-medium",children:e}),a[e]&&(0,t.jsx)("span",{className:"text-xs text-gray-500 font-normal",children:a[e]})]})},e))})})]});var o=e.i(793130);let c=({enabled:e,routerFieldsMetadata:r,onToggle:a})=>(0,t.jsx)("div",{className:"space-y-3 max-w-3xl",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:r.enable_tag_filtering?.ui_field_name||"Enable Tag Filtering"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500 mt-0.5",children:[r.enable_tag_filtering?.field_description||"",r.enable_tag_filtering?.link&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("a",{href:r.enable_tag_filtering.link,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Learn more"})]})]})]}),(0,t.jsx)(o.Switch,{checked:e,onChange:a,className:"ml-4"})]})});e.s(["default",0,({value:e,onChange:r,routerFieldsMetadata:a,availableRoutingStrategies:n,routingStrategyDescriptions:o})=>(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Routing Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure how requests are routed to deployments"})]}),n.length>0&&(0,t.jsx)(i,{selectedStrategy:e.selectedStrategy||e.routerSettings.routing_strategy||null,availableStrategies:n,routingStrategyDescriptions:o,routerFieldsMetadata:a,onStrategyChange:t=>{r({...e,selectedStrategy:t})}}),(0,t.jsx)(c,{enabled:e.enableTagFiltering,routerFieldsMetadata:a,onToggle:t=>{r({...e,enableTagFiltering:t})}})]}),(0,t.jsx)("div",{className:"border-t border-gray-200"}),"latency-based-routing"===e.selectedStrategy&&(0,t.jsx)(s,{routingStrategyArgs:e.routerSettings.routing_strategy_args}),(0,t.jsx)(l,{routerSettings:e.routerSettings,routerFieldsMetadata:a})]})],158392);var d=e.i(994388),m=e.i(998573),u=e.i(653496),g=e.i(603908),g=g,p=e.i(271645),x=e.i(592968),h=e.i(475254);let f=(0,h.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),b=(0,h.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var y=e.i(37727);function v({group:e,onChange:r,availableModels:a,maxFallbacks:s}){let l=a.filter(t=>t!==e.primaryModel),i=e.fallbackModels.length{let a=[...e.fallbackModels];a.includes(t)&&(a=a.filter(e=>e!==t)),r({...e,primaryModel:t,fallbackModels:a})},showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:a.map(e=>({label:e,value:e}))}),!e.primaryModel&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-amber-600 text-xs bg-amber-50 p-2 rounded",children:[(0,t.jsx)(f,{className:"w-4 h-4"}),(0,t.jsx)("span",{children:"Select a model to begin configuring fallbacks"})]})]}),(0,t.jsx)("div",{className:"flex items-center justify-center -my-4 z-10",children:(0,t.jsxs)("div",{className:"bg-indigo-50 text-indigo-500 px-4 py-1 rounded-full text-xs font-bold border border-indigo-100 flex items-center gap-2 shadow-sm",children:[(0,t.jsx)(b,{className:"w-4 h-4"}),"IF FAILS, TRY..."]})}),(0,t.jsxs)("div",{className:`transition-opacity duration-300 ${!e.primaryModel?"opacity-50 pointer-events-none":"opacity-100"}`,children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-700 mb-2",children:["Fallback Chain ",(0,t.jsx)("span",{className:"text-red-500",children:"*"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500 font-normal ml-2",children:["(Max ",s," fallbacks at a time)"]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(n.Select,{mode:"multiple",className:"w-full",size:"large",placeholder:i?"Select fallback models to add...":`Maximum ${s} fallbacks reached`,value:e.fallbackModels,onChange:t=>{let a=t.slice(0,s);r({...e,fallbackModels:a})},disabled:!e.primaryModel,options:l.map(e=>({label:e,value:e})),optionRender:(r,a)=>{let s=e.fallbackModels.includes(r.value),l=s?e.fallbackModels.indexOf(r.value)+1:null;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[s&&null!==l&&(0,t.jsx)("span",{className:"flex items-center justify-center w-5 h-5 rounded bg-indigo-100 text-indigo-600 text-xs font-bold",children:l}),(0,t.jsx)("span",{children:r.label})]})},maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(x.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})}),showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1 ml-1",children:i?`Search and select multiple models. Selected models will appear below in order. (${e.fallbackModels.length}/${s} used)`:`Maximum ${s} fallbacks reached. Remove some to add more.`})]}),(0,t.jsx)("div",{className:"space-y-2 min-h-[100px]",children:0===e.fallbackModels.length?(0,t.jsxs)("div",{className:"h-32 border-2 border-dashed border-gray-300 rounded-lg flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)("span",{className:"text-sm",children:"No fallback models selected"}),(0,t.jsx)("span",{className:"text-xs mt-1",children:"Add models from the dropdown above"})]}):e.fallbackModels.map((a,s)=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-3 bg-white rounded-lg border border-gray-200 hover:border-indigo-300 hover:shadow-sm transition-all",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded bg-gray-100 text-gray-400 group-hover:text-indigo-500 group-hover:bg-indigo-50",children:(0,t.jsx)("span",{className:"text-xs font-bold",children:s+1})}),(0,t.jsx)("div",{children:(0,t.jsx)("span",{className:"font-medium text-gray-800",children:a})})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t;return t=e.fallbackModels.filter((e,t)=>t!==s),void r({...e,fallbackModels:t})},className:"opacity-0 group-hover:opacity-100 transition-opacity text-gray-400 hover:text-red-500 p-1",children:(0,t.jsx)(y.X,{className:"w-4 h-4"})})]},`${a}-${s}`))})]})]})]})}function j({groups:e,onGroupsChange:r,availableModels:a,maxFallbacks:s=10,maxGroups:l=5}){let[n,i]=(0,p.useState)(e.length>0?e[0].id:"1");(0,p.useEffect)(()=>{e.length>0?e.some(e=>e.id===n)||i(e[0].id):i("1")},[e]);let o=()=>{if(e.length>=l)return;let t=Date.now().toString();r([...e,{id:t,primaryModel:null,fallbackModels:[]}]),i(t)},c=t=>{r(e.map(e=>e.id===t.id?t:e))},x=e.map((r,l)=>{let n=r.primaryModel?r.primaryModel:`Group ${l+1}`;return{key:r.id,label:n,closable:e.length>1,children:(0,t.jsx)(v,{group:r,onChange:c,availableModels:a,maxFallbacks:s})}});return 0===e.length?(0,t.jsxs)("div",{className:"text-center py-12 bg-gray-50 rounded-lg border border-dashed border-gray-300",children:[(0,t.jsx)("p",{className:"text-gray-500 mb-4",children:"No fallback groups configured"}),(0,t.jsx)(d.Button,{variant:"primary",onClick:o,icon:()=>(0,t.jsx)(g.default,{className:"w-4 h-4"}),children:"Create First Group"})]}):(0,t.jsx)(u.Tabs,{type:"editable-card",activeKey:n,onChange:i,onEdit:(t,a)=>{"add"===a?o():"remove"===a&&e.length>1&&(t=>{if(1===e.length)return m.message.warning("At least one group is required");let a=e.filter(e=>e.id!==t);r(a),n===t&&a.length>0&&i(a[a.length-1].id)})(t)},items:x,className:"fallback-tabs",tabBarStyle:{marginBottom:0},hideAdd:e.length>=l})}e.s(["FallbackSelectionForm",()=>j],419470)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},964306,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["XCircleIcon",0,r],964306)},663435,e=>{"use strict";var t=e.i(843476),r=e.i(199133);e.s(["default",0,({teams:e,value:a,onChange:s,disabled:l})=>(console.log("disabled",l),(0,t.jsx)(r.Select,{showSearch:!0,placeholder:"Search or select a team",value:a,onChange:s,disabled:l,allowClear:!0,filterOption:(t,r)=>{if(!r)return!1;let a=e?.find(e=>e.team_id===r.key);if(!a)return!1;let s=t.toLowerCase().trim(),l=(a.team_alias||"").toLowerCase(),n=(a.team_id||"").toLowerCase();return l.includes(s)||n.includes(s)},optionFilterProp:"children",children:e?.map(e=>(0,t.jsxs)(r.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)("span",{className:"text-gray-500",children:["(",e.team_id,")"]})]},e.team_id))}))])},285027,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"}}]},name:"warning",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["WarningOutlined",0,l],285027)},737434,e=>{"use strict";var t=e.i(184163);e.s(["DownloadOutlined",()=>t.default])},743151,(e,t,r)=>{"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CopyToClipboard=void 0;var s=i(e.r(271645)),l=i(e.r(844343)),n=["text","onCopy","options","children"];function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}(e,n),a=s.default.Children.only(t);return s.default.cloneElement(a,c(c({},r),{},{onClick:this.onClick}))}}],function(e,t){for(var r=0;r{"use strict";var a=e.r(743151).CopyToClipboard;a.CopyToClipboard=a,t.exports=a}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/1dd9f70d4267e53d.js b/litellm/proxy/_experimental/out/_next/static/chunks/1dd9f70d4267e53d.js deleted file mode 100644 index 771239c646e..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/1dd9f70d4267e53d.js +++ /dev/null @@ -1,8 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),o=e.i(271645);let n=o.default.forwardRef((e,n)=>{let{color:i,className:l,children:s}=e;return o.default.createElement("p",{ref:n,className:(0,r.tremorTwMerge)("text-tremor-default",i?(0,a.getColorClassNames)(i,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),l)},s)});n.displayName="Text",e.s(["default",()=>n],936325),e.s(["Text",()=>n],599724)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),o=e.i(95779),n=e.i(444755),i=e.i(673706);let l=(0,i.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,n.tremorTwMerge)(l("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,i.getColorClassNames)(c,o.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});s.displayName="Card",e.s(["Card",()=>s],304967)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let o=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],n=e=>({_s:e,status:o[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),i=e=>e?6:5,l=(e,t,r,a,o)=>{clearTimeout(a.current);let i=n(e);t(i),r.current=i,o&&o({current:i})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},b=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,c.makeClassName)("Button"),p=({loading:e,iconSize:t,iconPosition:r,Icon:o,needMargin:n,transitionStatus:i})=>{let l=n?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(f("icon"),"animate-spin shrink-0",l,m.default,m[i]),style:{transition:"width 150ms"}}):a.default.createElement(o,{className:(0,d.tremorTwMerge)(f("icon"),"shrink-0",t,l)})},h=a.default.forwardRef((e,o)=>{let{icon:u,iconPosition:m=s.HorizontalPositions.Left,size:h=s.Sizes.SM,color:C,variant:v="primary",disabled:$,loading:w=!1,loadingText:y,children:x,tooltip:k,className:N}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),j=w||$,E=void 0!==u||w,T=w&&y,S=!(!x&&!T),R=(0,d.tremorTwMerge)(g[h].height,g[h].width),z="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",B=b(v,C),M=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[h],{tooltipProps:P,getReferenceProps:I}=(0,r.useTooltip)(300),[q,H]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:o,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,b]=(0,a.useState)(()=>n(d?2:i(c))),f=(0,a.useRef)(g),p=(0,a.useRef)(0),[h,C]="object"==typeof s?[s.enter,s.exit]:[s,s],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return i(t)}})(f.current._s,u);e&&l(e,b,f,p,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let n=e=>{switch(l(e,b,f,p,m),e){case 1:h>=0&&(p.current=((...e)=>setTimeout(...e))(v,h));break;case 4:C>=0&&(p.current=((...e)=>setTimeout(...e))(v,C));break;case 0:case 3:p.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||n(e+1)},0)}},s=f.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||n(e?+!r:2):s&&n(t?o?3:4:i(u))},[v,m,e,t,r,o,h,C,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{H(w)},[w]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([o,P.refs.setReference]),className:(0,d.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",z,M.paddingX,M.paddingY,M.fontSize,B.textColor,B.bgColor,B.borderColor,B.hoverBorderColor,j?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(b(v,C).hoverTextColor,b(v,C).hoverBgColor,b(v,C).hoverBorderColor),N),disabled:j},I,O),a.default.createElement(r.default,Object.assign({text:k},P)),E&&m!==s.HorizontalPositions.Right?a.default.createElement(p,{loading:w,iconSize:R,iconPosition:m,Icon:u,transitionStatus:q.status,needMargin:S}):null,T||x?a.default.createElement("span",{className:(0,d.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},T?y:x):null,E&&m===s.HorizontalPositions.Right?a.default.createElement(p,{loading:w,iconSize:R,iconPosition:m,Icon:u,transitionStatus:q.status,needMargin:S}):null)});h.displayName="Button",e.s(["Button",()=>h],994388)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),o=e.i(529681);let n=e=>{let{prefixCls:a,className:o,style:n,size:i,shape:l}=e,s=(0,r.default)({[`${a}-lg`]:"large"===i,[`${a}-sm`]:"small"===i}),d=(0,r.default)({[`${a}-circle`]:"circle"===l,[`${a}-square`]:"square"===l,[`${a}-round`]:"round"===l}),c=t.useMemo(()=>"number"==typeof i?{width:i,height:i,lineHeight:`${i}px`}:{},[i]);return t.createElement("span",{className:(0,r.default)(a,s,d,o),style:Object.assign(Object.assign({},c),n)})};e.i(296059);var i=e.i(694758),l=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new i.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,l.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),b=e=>Object.assign({width:e},u(e)),f=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},p=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),h=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:o,skeletonButtonCls:n,skeletonInputCls:i,skeletonImageCls:l,controlHeight:s,controlHeightLG:d,controlHeightSM:u,gradientFromColor:h,padding:C,marginSM:v,borderRadius:$,titleHeight:w,blockRadius:y,paragraphLiHeight:x,controlHeightXS:k,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:h},m(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:w,background:h,borderRadius:y,[`+ ${o}`]:{marginBlockStart:u}},[o]:{padding:0,"> li":{width:"100%",height:x,listStyle:"none",background:h,borderRadius:y,"+ li":{marginBlockStart:k}}},[`${o}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${o} > li`]:{borderRadius:$}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${o}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:o,controlHeightSM:n,gradientFromColor:i,calc:l}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:t,width:l(a).mul(2).equal(),minWidth:l(a).mul(2).equal()},p(a,l))},f(e,a,r)),{[`${r}-lg`]:Object.assign({},p(o,l))}),f(e,o,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},p(n,l))}),f(e,n,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:o,controlHeightSM:n}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(o)),[`${t}${t}-sm`]:Object.assign({},m(n))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:o,controlHeightSM:n,gradientFromColor:i,calc:l}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:r},g(t,l)),[`${a}-lg`]:Object.assign({},g(o,l)),[`${a}-sm`]:Object.assign({},g(n,l))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:o,calc:n}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:o},b(n(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},b(r)),{maxWidth:n(r).mul(4).equal(),maxHeight:n(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[n]:{width:"100%"},[i]:{width:"100%"}},[`${t}${t}-active`]:{[` - ${a}, - ${o} > li, - ${r}, - ${n}, - ${i}, - ${l} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:o,style:n,rows:i=0}=e,l=Array.from({length:i}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:n},l)},v=({prefixCls:e,className:a,width:o,style:n})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},n)});function $(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:o,loading:i,className:l,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:b,round:f}=e,{getPrefixCls:p,direction:w,className:y,style:x}=(0,a.useComponentConfig)("skeleton"),k=p("skeleton",o),[N,O,j]=h(k);if(i||!("loading"in e)){let e,a,o=!!u,i=!!m,c=!!g;if(o){let r=Object.assign(Object.assign({prefixCls:`${k}-avatar`},i&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),$(u));e=t.createElement("div",{className:`${k}-header`},t.createElement(n,Object.assign({},r)))}if(i||c){let e,r;if(i){let r=Object.assign(Object.assign({prefixCls:`${k}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),$(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${k}-paragraph`},(e={},o&&i||(e.width="61%"),!o&&i?e.rows=3:e.rows=2,e)),$(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${k}-content`},e,r)}let p=(0,r.default)(k,{[`${k}-with-avatar`]:o,[`${k}-active`]:b,[`${k}-rtl`]:"rtl"===w,[`${k}-round`]:f},y,l,s,O,j);return N(t.createElement("div",{className:p,style:Object.assign(Object.assign({},x),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[b,f,p]=h(g),C=(0,o.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,p);return b(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${g}-button`,size:u},C))))},w.Avatar=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[b,f,p]=h(g),C=(0,o.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},l,s,f,p);return b(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},C))))},w.Input=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[b,f,p]=h(g),C=(0,o.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,p);return b(t.createElement("div",{className:v},t.createElement(n,Object.assign({prefixCls:`${g}-input`,size:u},C))))},w.Image=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[u,m,g]=h(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},n,i,m,g);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,n),style:l},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",o),[m,g,b]=h(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,n,i,b);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,n),style:l},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["default",0,n],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",l)},r.default.createElement("table",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),i))});n.displayName="Table",e.s(["Table",()=>n],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",l)},s),i))});n.displayName="TableHead",e.s(["TableHead",()=>n],427612)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("row"),l)},s),i))});n.displayName="TableRow",e.s(["TableRow",()=>n],496020)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",l)},s),i))});n.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>n],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",l)},s),i))});n.displayName="TableBody",e.s(["TableBody",()=>n],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",l)},s),i))});n.displayName="TableCell",e.s(["TableCell",()=>n],977572)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},278587,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,r],278587)},207670,e=>{"use strict";function t(){for(var e,t,r=0,a="",o=arguments.length;rt,"default",0,t])},981339,e=>{"use strict";var t=e.i(185793);e.s(["Skeleton",()=>t.default])},906579,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(361275),o=e.i(702779),n=e.i(763731),i=e.i(242064);e.i(296059);var l=e.i(915654),s=e.i(694758),d=e.i(183293),c=e.i(403541),u=e.i(246422),m=e.i(838378);let g=new s.Keyframes("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),b=new s.Keyframes("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),f=new s.Keyframes("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),p=new s.Keyframes("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),h=new s.Keyframes("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),C=new s.Keyframes("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),v=e=>{let{fontHeight:t,lineWidth:r,marginXS:a,colorBorderBg:o}=e,n=e.colorTextLightSolid,i=e.colorError,l=e.colorErrorHover;return(0,m.mergeToken)(e,{badgeFontHeight:t,badgeShadowSize:r,badgeTextColor:n,badgeColor:i,badgeColorHover:l,badgeShadowColor:o,badgeProcessingDuration:"1.2s",badgeRibbonOffset:a,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},$=e=>{let{fontSize:t,lineHeight:r,fontSizeSM:a,lineWidth:o}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*r)-2*o,indicatorHeightSM:t,dotSize:a/2,textFontSize:a,textFontSizeSM:a,textFontWeight:"normal",statusSize:a/2}},w=(0,u.genStyleHooks)("Badge",e=>(e=>{let{componentCls:t,iconCls:r,antCls:a,badgeShadowSize:o,textFontSize:n,textFontSizeSM:i,statusSize:s,dotSize:u,textFontWeight:m,indicatorHeight:v,indicatorHeightSM:$,marginXS:w,calc:y}=e,x=`${a}-scroll-number`,k=(0,c.genPresetColor)(e,(e,{darkColor:r})=>({[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r},"a:hover &":{background:r}}}));return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:v,height:v,color:e.badgeTextColor,fontWeight:m,fontSize:n,lineHeight:(0,l.unit)(v),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:y(v).div(2).equal(),boxShadow:`0 0 0 ${(0,l.unit)(o)} ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:$,height:$,fontSize:i,lineHeight:(0,l.unit)($),borderRadius:y($).div(2).equal()},[`${t}-multiple-words`]:{padding:`0 ${(0,l.unit)(e.paddingXS)}`,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:u,minWidth:u,height:u,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,l.unit)(o)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${x}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${r}-spin`]:{animationName:C,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:s,height:s,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfo,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:o,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:g,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:w,color:e.colorText,fontSize:e.fontSize}}}),k),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:b,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:f,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:p,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:h,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${x}-custom-component, ${t}-count`]:{transform:"none"},[`${x}-custom-component, ${x}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[x]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${x}-only`]:{position:"relative",display:"inline-block",height:v,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${x}-only-unit`]:{height:v,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${x}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${x}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}})(v(e)),$),y=(0,u.genStyleHooks)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:r,marginXS:a,badgeRibbonOffset:o,calc:n}=e,i=`${t}-ribbon`,s=`${t}-ribbon-wrapper`,u=(0,c.genPresetColor)(e,(e,{darkColor:t})=>({[`&${i}-color-${e}`]:{background:t,color:t}}));return{[s]:{position:"relative"},[i]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:a,padding:`0 ${(0,l.unit)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,l.unit)(r),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${i}-text`]:{color:e.badgeTextColor},[`${i}-corner`]:{position:"absolute",top:"100%",width:o,height:o,color:"currentcolor",border:`${(0,l.unit)(n(o).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter}}),u),{[`&${i}-placement-end`]:{insetInlineEnd:n(o).mul(-1).equal(),borderEndEndRadius:0,[`${i}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${i}-placement-start`]:{insetInlineStart:n(o).mul(-1).equal(),borderEndStartRadius:0,[`${i}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}})(v(e)),$),x=e=>{let a,{prefixCls:o,value:n,current:i,offset:l=0}=e;return l&&(a={position:"absolute",top:`${l}00%`,left:0}),t.createElement("span",{style:a,className:(0,r.default)(`${o}-only-unit`,{current:i})},n)},k=e=>{let r,a,{prefixCls:o,count:n,value:i}=e,l=Number(i),s=Math.abs(n),[d,c]=t.useState(l),[u,m]=t.useState(s),g=()=>{c(l),m(s)};if(t.useEffect(()=>{let e=setTimeout(g,1e3);return()=>clearTimeout(e)},[l]),d===l||Number.isNaN(l)||Number.isNaN(d))r=[t.createElement(x,Object.assign({},e,{key:l,current:!0}))],a={transition:"none"};else{r=[];let o=l+10,n=[];for(let e=l;e<=o;e+=1)n.push(e);let i=ue%10===d);r=(i<0?n.slice(0,c+1):n.slice(c)).map((r,a)=>t.createElement(x,Object.assign({},e,{key:r,value:r%10,offset:i<0?a-c:a,current:a===c}))),a={transform:`translateY(${-function(e,t,r){let a=e,o=0;for(;(a+10)%10!==t;)a+=r,o+=r;return o}(d,l,i)}00%)`}}return t.createElement("span",{className:`${o}-only`,style:a,onTransitionEnd:g},r)};var N=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let O=t.forwardRef((e,a)=>{let{prefixCls:o,count:l,className:s,motionClassName:d,style:c,title:u,show:m,component:g="sup",children:b}=e,f=N(e,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:p}=t.useContext(i.ConfigContext),h=p("scroll-number",o),C=Object.assign(Object.assign({},f),{"data-show":m,style:c,className:(0,r.default)(h,s,d),title:u}),v=l;if(l&&Number(l)%1==0){let e=String(l).split("");v=t.createElement("bdi",null,e.map((r,a)=>t.createElement(k,{prefixCls:h,count:Number(l),value:r,key:e.length-a})))}return((null==c?void 0:c.borderColor)&&(C.style=Object.assign(Object.assign({},c),{boxShadow:`0 0 0 1px ${c.borderColor} inset`})),b)?(0,n.cloneElement)(b,e=>({className:(0,r.default)(`${h}-custom-component`,null==e?void 0:e.className,d)})):t.createElement(g,Object.assign({},C,{ref:a}),v)});var j=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let E=t.forwardRef((e,l)=>{var s,d,c,u,m;let{prefixCls:g,scrollNumberPrefixCls:b,children:f,status:p,text:h,color:C,count:v=null,overflowCount:$=99,dot:y=!1,size:x="default",title:k,offset:N,style:E,className:T,rootClassName:S,classNames:R,styles:z,showZero:B=!1}=e,M=j(e,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:P,direction:I,badge:q}=t.useContext(i.ConfigContext),H=P("badge",g),[_,F,D]=w(H),A=v>$?`${$}+`:v,L="0"===A||0===A||"0"===h||0===h,W=null===v||L&&!B,K=(null!=p||null!=C)&&W,X=null!=p||!L,Y=y&&!L,Q=Y?"":A,Z=(0,t.useMemo)(()=>((null==Q||""===Q)&&(null==h||""===h)||L&&!B)&&!Y,[Q,L,B,Y,h]),U=(0,t.useRef)(v);Z||(U.current=v);let V=U.current,G=(0,t.useRef)(Q);Z||(G.current=Q);let J=G.current,ee=(0,t.useRef)(Y);Z||(ee.current=Y);let et=(0,t.useMemo)(()=>{if(!N)return Object.assign(Object.assign({},null==q?void 0:q.style),E);let e={marginTop:N[1]};return"rtl"===I?e.left=Number.parseInt(N[0],10):e.right=-Number.parseInt(N[0],10),Object.assign(Object.assign(Object.assign({},e),null==q?void 0:q.style),E)},[I,N,E,null==q?void 0:q.style]),er=null!=k?k:"string"==typeof V||"number"==typeof V?V:void 0,ea=!Z&&(0===h?B:!!h&&!0!==h),eo=ea?t.createElement("span",{className:`${H}-status-text`},h):null,en=V&&"object"==typeof V?(0,n.cloneElement)(V,e=>({style:Object.assign(Object.assign({},et),e.style)})):void 0,ei=(0,o.isPresetColor)(C,!1),el=(0,r.default)(null==R?void 0:R.indicator,null==(s=null==q?void 0:q.classNames)?void 0:s.indicator,{[`${H}-status-dot`]:K,[`${H}-status-${p}`]:!!p,[`${H}-color-${C}`]:ei}),es={};C&&!ei&&(es.color=C,es.background=C);let ed=(0,r.default)(H,{[`${H}-status`]:K,[`${H}-not-a-wrapper`]:!f,[`${H}-rtl`]:"rtl"===I},T,S,null==q?void 0:q.className,null==(d=null==q?void 0:q.classNames)?void 0:d.root,null==R?void 0:R.root,F,D);if(!f&&K&&(h||X||!W)){let e=et.color;return _(t.createElement("span",Object.assign({},M,{className:ed,style:Object.assign(Object.assign(Object.assign({},null==z?void 0:z.root),null==(c=null==q?void 0:q.styles)?void 0:c.root),et)}),t.createElement("span",{className:el,style:Object.assign(Object.assign(Object.assign({},null==z?void 0:z.indicator),null==(u=null==q?void 0:q.styles)?void 0:u.indicator),es)}),ea&&t.createElement("span",{style:{color:e},className:`${H}-status-text`},h)))}return _(t.createElement("span",Object.assign({ref:l},M,{className:ed,style:Object.assign(Object.assign({},null==(m=null==q?void 0:q.styles)?void 0:m.root),null==z?void 0:z.root)}),f,t.createElement(a.default,{visible:!Z,motionName:`${H}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{var a,o;let n=P("scroll-number",b),i=ee.current,l=(0,r.default)(null==R?void 0:R.indicator,null==(a=null==q?void 0:q.classNames)?void 0:a.indicator,{[`${H}-dot`]:i,[`${H}-count`]:!i,[`${H}-count-sm`]:"small"===x,[`${H}-multiple-words`]:!i&&J&&J.toString().length>1,[`${H}-status-${p}`]:!!p,[`${H}-color-${C}`]:ei}),s=Object.assign(Object.assign(Object.assign({},null==z?void 0:z.indicator),null==(o=null==q?void 0:q.styles)?void 0:o.indicator),et);return C&&!ei&&((s=s||{}).background=C),t.createElement(O,{prefixCls:n,show:!Z,motionClassName:e,className:l,count:J,title:er,style:s,key:"scrollNumber"},en)}),eo))});E.Ribbon=e=>{let{className:a,prefixCls:n,style:l,color:s,children:d,text:c,placement:u="end",rootClassName:m}=e,{getPrefixCls:g,direction:b}=t.useContext(i.ConfigContext),f=g("ribbon",n),p=`${f}-wrapper`,[h,C,v]=y(f,p),$=(0,o.isPresetColor)(s,!1),w=(0,r.default)(f,`${f}-placement-${u}`,{[`${f}-rtl`]:"rtl"===b,[`${f}-color-${s}`]:$},a),x={},k={};return s&&!$&&(x.background=s,k.color=s),h(t.createElement("div",{className:(0,r.default)(p,m,C,v)},d,t.createElement("div",{className:(0,r.default)(w,C),style:Object.assign(Object.assign({},x),l)},t.createElement("span",{className:`${f}-text`},c),t.createElement("div",{className:`${f}-corner`,style:k}))))},e.s(["Badge",0,E],906579)},785242,e=>{"use strict";var t=e.i(619273),r=e.i(266027),a=e.i(912598),o=e.i(135214),n=e.i(270345),i=e.i(243652),l=e.i(764205);let s=(0,i.createQueryKeys)("teams"),d=async(e,t,r,a={})=>{try{let o=(0,l.getProxyBaseUrl)(),n=new URLSearchParams(Object.entries({team_id:a.teamID,organization_id:a.organizationID,team_alias:a.team_alias,user_id:a.userID,page:t,page_size:r,sort_by:a.sortBy,sort_order:a.sortOrder,status:"deleted"}).filter(([,e])=>null!=e).map(([e,t])=>[e,String(t)])),i=`${o?`${o}/v2/team/list`:"/v2/team/list"}?${n}`,s=await fetch(i,{method:"GET",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=(0,l.deriveErrorMessage)(e);throw(0,l.handleError)(t),Error(t)}let d=await s.json();if(console.log("/team/list?status=deleted API Response:",d),d&&"object"==typeof d&&"teams"in d)return d.teams;return d}catch(e){throw console.error("Failed to list deleted teams:",e),e}},c=(0,i.createQueryKeys)("deletedTeams");e.s(["useDeletedTeams",0,(e,a,n={})=>{let{accessToken:i}=(0,o.default)();return(0,r.useQuery)({queryKey:c.list({page:e,limit:a,...n}),queryFn:async()=>await d(i,e,a,n),enabled:!!i,staleTime:3e4,placeholderData:t.keepPreviousData})},"useTeam",0,e=>{let{accessToken:t}=(0,o.default)(),n=(0,a.useQueryClient)();return(0,r.useQuery)({queryKey:s.detail(e),enabled:!!(t&&e),queryFn:async()=>{if(!t||!e)throw Error("Missing auth or teamId");return(0,l.teamInfoCall)(t,e)},initialData:()=>{if(!e)return;let t=n.getQueryData(s.list({}));return t?.find(t=>t.team_id===e)}})},"useTeams",0,()=>{let{accessToken:e,userId:t,userRole:a}=(0,o.default)();return(0,r.useQuery)({queryKey:s.list({}),queryFn:async()=>await (0,n.fetchTeams)(e,t,a,null),enabled:!!e})}])},738014,e=>{"use strict";var t=e.i(135214),r=e.i(764205),a=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:n,userRole:i}=(0,t.default)();return(0,a.useQuery)({queryKey:o.detail(n),queryFn:async()=>{let t=await (0,r.userInfoCall)(e,n,i,!1,null,null);return console.log(`userInfo: ${JSON.stringify(t)}`),t.user_info},enabled:!!(e&&n&&i)})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/249ef9d7a08bbfa1.js b/litellm/proxy/_experimental/out/_next/static/chunks/249ef9d7a08bbfa1.js new file mode 100644 index 00000000000..a84767094ef --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/249ef9d7a08bbfa1.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,582458,e=>{"use strict";let t=(0,e.i(475254).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["default",()=>t])},788191,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["PlayCircleOutlined",0,i],788191)},19732,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"}}]},name:"experiment",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ExperimentOutlined",0,i],19732)},993914,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["FileTextOutlined",0,i],993914)},645526,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z"}}]},name:"team",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TeamOutlined",0,i],645526)},153702,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z"}}]},name:"bar-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BarChartOutlined",0,i],153702)},299251,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z"}}]},name:"bank",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BankOutlined",0,i],299251)},777579,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"}}]},name:"line-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["LineChartOutlined",0,i],777579)},438957,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z"}}]},name:"key",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["KeyOutlined",0,i],438957)},232164,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z"}}]},name:"tags",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TagsOutlined",0,i],232164)},210612,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["DatabaseOutlined",0,i],210612)},218129,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ApiOutlined",0,i],218129)},366308,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ToolOutlined",0,i],366308)},313603,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["SettingOutlined",0,i],313603)},531278,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],531278)},372943,899268,e=>{"use strict";e.i(247167);var t=e.i(8211),a=e.i(271645),s=e.i(343794),r=e.i(529681),i=e.i(242064),l=e.i(704914),c=e.i(876556),n=e.i(290224),d=e.i(251224),o=function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&0>t.indexOf(s)&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,s=Object.getOwnPropertySymbols(e);rt.indexOf(s[r])&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(a[s[r]]=e[s[r]]);return a};function m({suffixCls:e,tagName:t,displayName:s}){return s=>a.forwardRef((r,i)=>a.createElement(s,Object.assign({ref:i,suffixCls:e,tagName:t},r)))}let u=a.forwardRef((e,t)=>{let{prefixCls:r,suffixCls:l,className:c,tagName:n}=e,m=o(e,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:u}=a.useContext(i.ConfigContext),f=u("layout",r),[h,x,g]=(0,d.default)(f),v=l?`${f}-${l}`:f;return h(a.createElement(n,Object.assign({className:(0,s.default)(r||v,c,x,g),ref:t},m)))}),f=a.forwardRef((e,m)=>{let{direction:u}=a.useContext(i.ConfigContext),[f,h]=a.useState([]),{prefixCls:x,className:g,rootClassName:v,children:p,hasSider:y,tagName:b,style:N}=e,w=o(e,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),j=(0,r.default)(w,["suffixCls"]),{getPrefixCls:L,className:z,style:M}=(0,i.useComponentConfig)("layout"),O=L("layout",x),k="boolean"==typeof y?y:!!f.length||(0,c.default)(p).some(e=>e.type===n.default),[C,H,_]=(0,d.default)(O),V=(0,s.default)(O,{[`${O}-has-sider`]:k,[`${O}-rtl`]:"rtl"===u},z,g,v,H,_),E=a.useMemo(()=>({siderHook:{addSider:e=>{h(a=>[].concat((0,t.default)(a),[e]))},removeSider:e=>{h(t=>t.filter(t=>t!==e))}}}),[]);return C(a.createElement(l.LayoutContext.Provider,{value:E},a.createElement(b,Object.assign({ref:m,className:V,style:Object.assign(Object.assign({},M),N)},j),p)))}),h=m({tagName:"div",displayName:"Layout"})(f),x=m({suffixCls:"header",tagName:"header",displayName:"Header"})(u),g=m({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(u),v=m({suffixCls:"content",tagName:"main",displayName:"Content"})(u);h.Header=x,h.Footer=g,h.Content=v,h.Sider=n.default,h._InternalSiderContext=n.SiderContext,e.s(["Layout",0,h],372943);var p=e.i(60699);e.s(["Menu",()=>p.default],899268)},592143,e=>{"use strict";var t=e.i(609587);e.s(["ConfigProvider",()=>t.default])},182399,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z"}}]},name:"block",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BlockOutlined",0,i],182399)},477189,457202,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["AppstoreOutlined",0,i],477189);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z"}}]},name:"audit",theme:"outlined"};var c=a.forwardRef(function(e,s){return a.createElement(r.default,(0,t.default)({},e,{ref:s,icon:l}))});e.s(["AuditOutlined",0,c],457202)},878894,87316,664659,655900,299023,25652,882293,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default],878894);var a=e.i(475254);let s=(0,a.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",()=>s],87316);let r=(0,a.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>r],664659);let i=(0,a.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",()=>i],655900);let l=(0,a.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["Minus",()=>l],299023);let c=(0,a.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>c],25652);let n=(0,a.default)("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["UserCheck",()=>n],882293)},761911,98740,e=>{"use strict";let t=(0,e.i(475254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["default",()=>t],98740),e.s(["Users",()=>t],761911)},190983,e=>{"use strict";var t=e.i(843476),a=e.i(371401);e.i(389083);var s=e.i(878894),r=e.i(87316);e.i(664659),e.i(655900);var i=e.i(531278),l=e.i(299023),c=e.i(25652),n=e.i(882293),d=e.i(761911),o=e.i(271645),m=e.i(764205);let u=(...e)=>e.filter(Boolean).join(" ");function f({accessToken:e,width:f=220}){let h=(0,a.useDisableUsageIndicator)(),[x,g]=(0,o.useState)(!1),[v,p]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),[N,w]=(0,o.useState)(null),[j,L]=(0,o.useState)(!1),[z,M]=(0,o.useState)(null);(0,o.useEffect)(()=>{(async()=>{if(e){L(!0),M(null);try{let[t,a]=await Promise.all([(0,m.getRemainingUsers)(e),(0,m.getLicenseInfo)(e).catch(()=>null)]);b(t),w(a)}catch(e){console.error("Failed to fetch usage data:",e),M("Failed to load usage data")}finally{L(!1)}}})()},[e]);let O=N?.expiration_date?(e=>{if(!e)return null;let t=new Date(e+"T00:00:00Z"),a=new Date;return a.setHours(0,0,0,0),Math.ceil((t.getTime()-a.getTime())/864e5)})(N.expiration_date):null,k=null!==O&&O<0,C=null!==O&&O>=0&&O<30,{isOverLimit:H,isNearLimit:_,usagePercentage:V,userMetrics:E,teamMetrics:R}=(e=>{if(!e)return{isOverLimit:!1,isNearLimit:!1,usagePercentage:0,userMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0},teamMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0}};let t=e.total_users?e.total_users_used/e.total_users*100:0,a=t>100,s=t>=80&&t<=100,r=e.total_teams?e.total_teams_used/e.total_teams*100:0,i=r>100,l=r>=80&&r<=100,c=a||i;return{isOverLimit:c,isNearLimit:(s||l)&&!c,usagePercentage:Math.max(t,r),userMetrics:{isOverLimit:a,isNearLimit:s,usagePercentage:t},teamMetrics:{isOverLimit:i,isNearLimit:l,usagePercentage:r}}})(y),B=H||_||k||C,S=H||k,U=(_||C)&&!S;return h||!e||y?.total_users===null&&y?.total_teams===null?null:(0,t.jsx)("div",{className:"fixed bottom-4 left-4 z-50",style:{width:`${Math.min(f,220)}px`},children:(0,t.jsx)(()=>v?(0,t.jsx)("button",{onClick:()=>p(!1),className:u("bg-white border border-gray-200 rounded-lg shadow-sm p-3 hover:shadow-md transition-all w-full"),title:"Show usage details",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Users,{className:"h-4 w-4 flex-shrink-0"}),B&&(0,t.jsx)("span",{className:"flex-shrink-0",children:S?(0,t.jsx)(s.AlertTriangle,{className:"h-3 w-3"}):U?(0,t.jsx)(c.TrendingUp,{className:"h-3 w-3"}):null}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium truncate",children:[y&&null!==y.total_users&&(0,t.jsxs)("span",{className:u("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",E.isOverLimit&&"bg-red-50 text-red-700 border-red-200",E.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!E.isOverLimit&&!E.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["U: ",y.total_users_used,"/",y.total_users]}),y&&null!==y.total_teams&&(0,t.jsxs)("span",{className:u("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",R.isOverLimit&&"bg-red-50 text-red-700 border-red-200",R.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!R.isOverLimit&&!R.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["T: ",y.total_teams_used,"/",y.total_teams]}),N?.expiration_date&&null!==O&&(0,t.jsx)("span",{className:u("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",k&&"bg-red-50 text-red-700 border-red-200",C&&"bg-yellow-50 text-yellow-700 border-yellow-200",!k&&!C&&"bg-gray-50 text-gray-700 border-gray-200"),children:O<0?"Exp!":`${O}d`}),!y||null===y.total_users&&null===y.total_teams&&!N&&(0,t.jsx)("span",{className:"truncate",children:"Usage"})]})]})}):j?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2",children:[(0,t.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate",children:"Loading..."})]})}):z||!y?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 group w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate block",children:z||"No data"})}),(0,t.jsx)("button",{onClick:()=>p(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(l.Minus,{className:"h-3 w-3 text-gray-400"})})]})}):(0,t.jsxs)("div",{className:u("bg-white border rounded-lg shadow-sm p-3 transition-all duration-200 group w-full"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[(0,t.jsx)(d.Users,{className:"h-4 w-4 flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-sm truncate",children:"Usage"})]}),(0,t.jsx)("button",{onClick:()=>p(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(l.Minus,{className:"h-3 w-3 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"space-y-3 text-sm",children:[N?.has_license&&N.expiration_date&&(0,t.jsxs)("div",{className:u("space-y-1 border rounded-md p-2",k&&"border-red-200 bg-red-50",C&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(r.Calendar,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"License"}),(0,t.jsx)("span",{className:u("ml-1 px-1.5 py-0.5 rounded border",k&&"bg-red-50 text-red-700 border-red-200",C&&"bg-yellow-50 text-yellow-700 border-yellow-200",!k&&!C&&"bg-gray-50 text-gray-600 border-gray-200"),children:k?"Expired":C?"Expiring soon":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Status:"}),(0,t.jsx)("span",{className:u("font-medium text-right",k&&"text-red-600",C&&"text-yellow-600"),children:(e=>{if(null===e)return"No expiration";if(e<0)return"Expired";if(0===e)return"Expires today";if(1===e)return"1 day remaining";if(e<30)return`${e} days remaining`;if(e<60)return"1 month remaining";let t=Math.floor(e/30);return`${t} months remaining`})(O)})]}),N.license_type&&(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Type:"}),(0,t.jsx)("span",{className:"font-medium text-right capitalize",children:N.license_type})]})]}),null!==y.total_users&&(0,t.jsxs)("div",{className:u("space-y-1 border rounded-md p-2",E.isOverLimit&&"border-red-200 bg-red-50",E.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(d.Users,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Users"}),(0,t.jsx)("span",{className:u("ml-1 px-1.5 py-0.5 rounded border",E.isOverLimit&&"bg-red-50 text-red-700 border-red-200",E.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!E.isOverLimit&&!E.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:E.isOverLimit?"Over limit":E.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[y.total_users_used,"/",y.total_users]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:u("font-medium text-right",E.isOverLimit&&"text-red-600",E.isNearLimit&&"text-yellow-600"),children:y.total_users_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(E.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:u("h-2 rounded-full transition-all duration-300",E.isOverLimit&&"bg-red-500",E.isNearLimit&&"bg-yellow-500",!E.isOverLimit&&!E.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(E.usagePercentage,100)}%`}})})]}),null!==y.total_teams&&(0,t.jsxs)("div",{className:u("space-y-1 border rounded-md p-2",R.isOverLimit&&"border-red-200 bg-red-50",R.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(n.UserCheck,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Teams"}),(0,t.jsx)("span",{className:u("ml-1 px-1.5 py-0.5 rounded border",R.isOverLimit&&"bg-red-50 text-red-700 border-red-200",R.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!R.isOverLimit&&!R.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:R.isOverLimit?"Over limit":R.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[y.total_teams_used,"/",y.total_teams]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:u("font-medium text-right",R.isOverLimit&&"text-red-600",R.isNearLimit&&"text-yellow-600"),children:y.total_teams_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(R.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:u("h-2 rounded-full transition-all duration-300",R.isOverLimit&&"bg-red-500",R.isNearLimit&&"bg-yellow-500",!R.isOverLimit&&!R.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(R.usagePercentage,100)}%`}})})]})]})]}),{})})}e.s(["default",()=>f])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/25d1ef14bd591cf9.js b/litellm/proxy/_experimental/out/_next/static/chunks/25d1ef14bd591cf9.js new file mode 100644 index 00000000000..d6753e1b12b --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/25d1ef14bd591cf9.js @@ -0,0 +1,8 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,244451,e=>{"use strict";let t;e.i(247167);var o=e.i(271645),n=e.i(343794),r=e.i(242064),i=e.i(763731),l=e.i(174428);let a=80*Math.PI,d=e=>{let{dotClassName:t,style:r,hasCircleCls:i}=e;return o.createElement("circle",{className:(0,n.default)(`${t}-circle`,{[`${t}-circle-bg`]:i}),r:40,cx:50,cy:50,strokeWidth:20,style:r})},s=({percent:e,prefixCls:t})=>{let r=`${t}-dot`,i=`${r}-holder`,s=`${i}-hidden`,[c,u]=o.useState(!1);(0,l.default)(()=>{0!==e&&u(!0)},[0!==e]);let p=Math.max(Math.min(e,100),0);if(!c)return null;let b={strokeDashoffset:`${a/4}`,strokeDasharray:`${a*p/100} ${a*(100-p)/100}`};return o.createElement("span",{className:(0,n.default)(i,`${r}-progress`,p<=0&&s)},o.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":p},o.createElement(d,{dotClassName:r,hasCircleCls:!0}),o.createElement(d,{dotClassName:r,style:b})))};function c(e){let{prefixCls:t,percent:r=0}=e,i=`${t}-dot`,l=`${i}-holder`,a=`${l}-hidden`;return o.createElement(o.Fragment,null,o.createElement("span",{className:(0,n.default)(l,r>0&&a)},o.createElement("span",{className:(0,n.default)(i,`${t}-dot-spin`)},[1,2,3,4].map(e=>o.createElement("i",{className:`${t}-dot-item`,key:e})))),o.createElement(s,{prefixCls:t,percent:r}))}function u(e){var t;let{prefixCls:r,indicator:l,percent:a}=e,d=`${r}-dot`;return l&&o.isValidElement(l)?(0,i.cloneElement)(l,{className:(0,n.default)(null==(t=l.props)?void 0:t.className,d),percent:a}):o.createElement(c,{prefixCls:r,percent:a})}e.i(296059);var p=e.i(694758),b=e.i(183293),f=e.i(246422),m=e.i(838378);let g=new p.Keyframes("antSpinMove",{to:{opacity:1}}),h=new p.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),v=(0,f.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:o}=e;return{[t]:Object.assign(Object.assign({},(0,b.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:o(o(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:o(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:o(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:o(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:o(o(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:o(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:o(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:o(o(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:o(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:o(e.dotSize).sub(o(e.marginXXS).div(2)).div(2).equal(),height:o(e.dotSize).sub(o(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:g,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:h,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:o(o(e.dotSizeSM).sub(o(e.marginXXS).div(2))).div(2).equal(),height:o(o(e.dotSizeSM).sub(o(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:o(o(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:o(o(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,m.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:o}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:o}}),$=[[30,.05],[70,.03],[96,.01]];var y=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);rt.indexOf(n[r])&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o};let C=e=>{var i;let{prefixCls:l,spinning:a=!0,delay:d=0,className:s,rootClassName:c,size:p="default",tip:b,wrapperClassName:f,style:m,children:g,fullscreen:h=!1,indicator:C,percent:S}=e,k=y(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:x,direction:w,className:E,style:O,indicator:I}=(0,r.useComponentConfig)("spin"),z=x("spin",l),[j,N,R]=v(z),[D,B]=o.useState(()=>a&&(!a||!d||!!Number.isNaN(Number(d)))),P=function(e,t){let[n,r]=o.useState(0),i=o.useRef(null),l="auto"===t;return o.useEffect(()=>(l&&e&&(r(0),i.current=setInterval(()=>{r(e=>{let t=100-e;for(let o=0;o<$.length;o+=1){let[n,r]=$[o];if(e<=n)return e+t*r}return e})},200)),()=>{i.current&&(clearInterval(i.current),i.current=null)}),[l,e]),l?n:t}(D,S);o.useEffect(()=>{if(a){let e=function(e,t,o){var n,r=o||{},i=r.noTrailing,l=void 0!==i&&i,a=r.noLeading,d=void 0!==a&&a,s=r.debounceMode,c=void 0===s?void 0:s,u=!1,p=0;function b(){n&&clearTimeout(n)}function f(){for(var o=arguments.length,r=Array(o),i=0;ie?d?(p=Date.now(),l||(n=setTimeout(c?m:f,e))):f():!0!==l&&(n=setTimeout(c?m:f,void 0===c?e-s:e)))}return f.cancel=function(e){var t=(e||{}).upcomingOnly;b(),u=!(void 0!==t&&t)},f}(d,()=>{B(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}B(!1)},[d,a]);let q=o.useMemo(()=>void 0!==g&&!h,[g,h]),T=(0,n.default)(z,E,{[`${z}-sm`]:"small"===p,[`${z}-lg`]:"large"===p,[`${z}-spinning`]:D,[`${z}-show-text`]:!!b,[`${z}-rtl`]:"rtl"===w},s,!h&&c,N,R),M=(0,n.default)(`${z}-container`,{[`${z}-blur`]:D}),L=null!=(i=null!=C?C:I)?i:t,H=Object.assign(Object.assign({},O),m),X=o.createElement("div",Object.assign({},k,{style:H,className:T,"aria-live":"polite","aria-busy":D}),o.createElement(u,{prefixCls:z,indicator:L,percent:P}),b&&(q||h)?o.createElement("div",{className:`${z}-text`},b):null);return j(q?o.createElement("div",Object.assign({},k,{className:(0,n.default)(`${z}-nested-loading`,f,N,R)}),D&&o.createElement("div",{key:"loading"},X),o.createElement("div",{className:M,key:"container"},g)):h?o.createElement("div",{className:(0,n.default)(`${z}-fullscreen`,{[`${z}-fullscreen-show`]:D},c,N,R)},X):X)};C.setDefaultIndicator=e=>{t=e},e.s(["default",0,C],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},91874,e=>{"use strict";var t=e.i(931067),o=e.i(209428),n=e.i(211577),r=e.i(392221),i=e.i(703923),l=e.i(343794),a=e.i(914949),d=e.i(271645),s=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,d.forwardRef)(function(e,c){var u=e.prefixCls,p=void 0===u?"rc-checkbox":u,b=e.className,f=e.style,m=e.checked,g=e.disabled,h=e.defaultChecked,v=e.type,$=void 0===v?"checkbox":v,y=e.title,C=e.onChange,S=(0,i.default)(e,s),k=(0,d.useRef)(null),x=(0,d.useRef)(null),w=(0,a.default)(void 0!==h&&h,{value:m}),E=(0,r.default)(w,2),O=E[0],I=E[1];(0,d.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=k.current)||t.focus(e)},blur:function(){var e;null==(e=k.current)||e.blur()},input:k.current,nativeElement:x.current}});var z=(0,l.default)(p,b,(0,n.default)((0,n.default)({},"".concat(p,"-checked"),O),"".concat(p,"-disabled"),g));return d.createElement("span",{className:z,title:y,style:f,ref:x},d.createElement("input",(0,t.default)({},S,{className:"".concat(p,"-input"),ref:k,onChange:function(t){g||("checked"in e||I(t.target.checked),null==C||C({target:(0,o.default)((0,o.default)({},e),{},{type:$,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:g,checked:!!O,type:$})),d.createElement("span",{className:"".concat(p,"-inner")}))});e.s(["default",0,c])},421512,236836,e=>{"use strict";let t=e.i(271645).default.createContext(null);e.s(["default",0,t],421512),e.i(296059);var o=e.i(915654),n=e.i(183293),r=e.i(246422),i=e.i(838378);function l(e,t){return(e=>{let{checkboxCls:t}=e,r=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,n.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[r]:Object.assign(Object.assign({},(0,n.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${r}`]:{marginInlineStart:0},[`&${r}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,n.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,n.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,o.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,o.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` + ${r}:not(${r}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${r}:not(${r}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` + ${r}-checked:not(${r}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,i.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let a=(0,r.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[l(t,e)]);e.s(["default",0,a,"getStyle",()=>l],236836)},681216,e=>{"use strict";var t=e.i(271645),o=e.i(963188);function n(e){let n=t.default.useRef(null),r=()=>{o.default.cancel(n.current),n.current=null};return[()=>{r(),n.current=(0,o.default)(()=>{n.current=null})},t=>{n.current&&(t.stopPropagation(),r()),null==e||e(t)}]}e.s(["default",()=>n])},374276,e=>{"use strict";e.i(247167);var t=e.i(271645),o=e.i(343794),n=e.i(91874),r=e.i(611935),i=e.i(121872),l=e.i(26905),a=e.i(242064),d=e.i(937328),s=e.i(321883),c=e.i(62139),u=e.i(421512),p=e.i(236836),b=e.i(681216),f=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);rt.indexOf(n[r])&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o};let m=t.forwardRef((e,m)=>{var g;let{prefixCls:h,className:v,rootClassName:$,children:y,indeterminate:C=!1,style:S,onMouseEnter:k,onMouseLeave:x,skipGroup:w=!1,disabled:E}=e,O=f(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:I,direction:z,checkbox:j}=t.useContext(a.ConfigContext),N=t.useContext(u.default),{isFormItemInput:R}=t.useContext(c.FormItemInputContext),D=t.useContext(d.default),B=null!=(g=(null==N?void 0:N.disabled)||E)?g:D,P=t.useRef(O.value),q=t.useRef(null),T=(0,r.composeRef)(m,q);t.useEffect(()=>{null==N||N.registerValue(O.value)},[]),t.useEffect(()=>{if(!w)return O.value!==P.current&&(null==N||N.cancelValue(P.current),null==N||N.registerValue(O.value),P.current=O.value),()=>null==N?void 0:N.cancelValue(O.value)},[O.value]),t.useEffect(()=>{var e;(null==(e=q.current)?void 0:e.input)&&(q.current.input.indeterminate=C)},[C]);let M=I("checkbox",h),L=(0,s.default)(M),[H,X,F]=(0,p.default)(M,L),G=Object.assign({},O);N&&!w&&(G.onChange=(...e)=>{O.onChange&&O.onChange.apply(O,e),N.toggleOption&&N.toggleOption({label:y,value:O.value})},G.name=N.name,G.checked=N.value.includes(O.value));let A=(0,o.default)(`${M}-wrapper`,{[`${M}-rtl`]:"rtl"===z,[`${M}-wrapper-checked`]:G.checked,[`${M}-wrapper-disabled`]:B,[`${M}-wrapper-in-form-item`]:R},null==j?void 0:j.className,v,$,F,L,X),W=(0,o.default)({[`${M}-indeterminate`]:C},l.TARGET_CLS,X),[_,V]=(0,b.default)(G.onClick);return H(t.createElement(i.default,{component:"Checkbox",disabled:B},t.createElement("label",{className:A,style:Object.assign(Object.assign({},null==j?void 0:j.style),S),onMouseEnter:k,onMouseLeave:x,onClick:_},t.createElement(n.default,Object.assign({},G,{onClick:V,prefixCls:M,className:W,disabled:B,ref:T})),null!=y&&t.createElement("span",{className:`${M}-label`},y))))});var g=e.i(8211),h=e.i(529681),v=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);rt.indexOf(n[r])&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o};let $=t.forwardRef((e,n)=>{let{defaultValue:r,children:i,options:l=[],prefixCls:d,className:c,rootClassName:b,style:f,onChange:$}=e,y=v(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:C,direction:S}=t.useContext(a.ConfigContext),[k,x]=t.useState(y.value||r||[]),[w,E]=t.useState([]);t.useEffect(()=>{"value"in y&&x(y.value||[])},[y.value]);let O=t.useMemo(()=>l.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[l]),I=e=>{E(t=>t.filter(t=>t!==e))},z=e=>{E(t=>[].concat((0,g.default)(t),[e]))},j=e=>{let t=k.indexOf(e.value),o=(0,g.default)(k);-1===t?o.push(e.value):o.splice(t,1),"value"in y||x(o),null==$||$(o.filter(e=>w.includes(e)).sort((e,t)=>O.findIndex(t=>t.value===e)-O.findIndex(e=>e.value===t)))},N=C("checkbox",d),R=`${N}-group`,D=(0,s.default)(N),[B,P,q]=(0,p.default)(N,D),T=(0,h.default)(y,["value","disabled"]),M=l.length?O.map(e=>t.createElement(m,{prefixCls:N,key:e.value.toString(),disabled:"disabled"in e?e.disabled:y.disabled,value:e.value,checked:k.includes(e.value),onChange:e.onChange,className:(0,o.default)(`${R}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):i,L=t.useMemo(()=>({toggleOption:j,value:k,disabled:y.disabled,name:y.name,registerValue:z,cancelValue:I}),[j,k,y.disabled,y.name,z,I]),H=(0,o.default)(R,{[`${R}-rtl`]:"rtl"===S},c,b,q,D,P);return B(t.createElement("div",Object.assign({className:H,style:f},T,{ref:n}),t.createElement(u.default.Provider,{value:L},M)))});m.Group=$,m.__ANT_CHECKBOX=!0,e.s(["default",0,m],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},544195,e=>{"use strict";var t=e.i(271645),o=e.i(343794),n=e.i(981444),r=e.i(914949),i=e.i(244009),l=e.i(242064),a=e.i(321883),d=e.i(517455);let s=t.createContext(null),c=s.Provider,u=t.createContext(null),p=u.Provider;e.i(247167);var b=e.i(91874),f=e.i(611935),m=e.i(121872),g=e.i(26905),h=e.i(681216),v=e.i(937328),$=e.i(62139);e.i(296059);var y=e.i(915654),C=e.i(183293),S=e.i(246422),k=e.i(838378);let x=(0,S.genStyleHooks)("Radio",e=>{let{controlOutline:t,controlOutlineWidth:o}=e,n=`0 0 0 ${(0,y.unit)(o)} ${t}`,r=(0,k.mergeToken)(e,{radioFocusShadow:n,radioButtonFocusShadow:n});return[(e=>{let{componentCls:t,antCls:o}=e,n=`${t}-group`;return{[n]:Object.assign(Object.assign({},(0,C.resetComponent)(e)),{display:"inline-block",fontSize:0,[`&${n}-rtl`]:{direction:"rtl"},[`&${n}-block`]:{display:"flex"},[`${o}-badge ${o}-badge-count`]:{zIndex:1},[`> ${o}-badge:not(:first-child) > ${o}-button-wrapper`]:{borderInlineStart:"none"}})}})(r),(e=>{let{componentCls:t,wrapperMarginInlineEnd:o,colorPrimary:n,radioSize:r,motionDurationSlow:i,motionDurationMid:l,motionEaseInOutCirc:a,colorBgContainer:d,colorBorder:s,lineWidth:c,colorBgContainerDisabled:u,colorTextDisabled:p,paddingXS:b,dotColorDisabled:f,lineType:m,radioColor:g,radioBgColor:h,calc:v}=e,$=`${t}-inner`,S=v(r).sub(v(4).mul(2)),k=v(1).mul(r).equal({unit:!0});return{[`${t}-wrapper`]:Object.assign(Object.assign({},(0,C.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:o,cursor:"pointer","&:last-child":{marginInlineEnd:0},[`&${t}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:e.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},"&-block":{flex:1,justifyContent:"center"},[`${t}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${(0,y.unit)(c)} ${m} ${n}`,borderRadius:"50%",visibility:"hidden",opacity:0,content:'""'},[t]:Object.assign(Object.assign({},(0,C.resetComponent)(e)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${t}-wrapper:hover &, + &:hover ${$}`]:{borderColor:n},[`${t}-input:focus-visible + ${$}`]:(0,C.genFocusOutline)(e),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:"visible"},[`${t}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:k,height:k,marginBlockStart:v(1).mul(r).div(-2).equal({unit:!0}),marginInlineStart:v(1).mul(r).div(-2).equal({unit:!0}),backgroundColor:g,borderBlockStart:0,borderInlineStart:0,borderRadius:k,transform:"scale(0)",opacity:0,transition:`all ${i} ${a}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:k,height:k,backgroundColor:d,borderColor:s,borderStyle:"solid",borderWidth:c,borderRadius:"50%",transition:`all ${l}`},[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${t}-checked`]:{[$]:{borderColor:n,backgroundColor:h,"&::after":{transform:`scale(${e.calc(e.dotSize).div(r).equal()})`,opacity:1,transition:`all ${i} ${a}`}}},[`${t}-disabled`]:{cursor:"not-allowed",[$]:{backgroundColor:u,borderColor:s,cursor:"not-allowed","&::after":{backgroundColor:f}},[`${t}-input`]:{cursor:"not-allowed"},[`${t}-disabled + span`]:{color:p,cursor:"not-allowed"},[`&${t}-checked`]:{[$]:{"&::after":{transform:`scale(${v(S).div(r).equal()})`}}}},[`span${t} + *`]:{paddingInlineStart:b,paddingInlineEnd:b}})}})(r),(e=>{let{buttonColor:t,controlHeight:o,componentCls:n,lineWidth:r,lineType:i,colorBorder:l,motionDurationMid:a,buttonPaddingInline:d,fontSize:s,buttonBg:c,fontSizeLG:u,controlHeightLG:p,controlHeightSM:b,paddingXS:f,borderRadius:m,borderRadiusSM:g,borderRadiusLG:h,buttonCheckedBg:v,buttonSolidCheckedColor:$,colorTextDisabled:S,colorBgContainerDisabled:k,buttonCheckedBgDisabled:x,buttonCheckedColorDisabled:w,colorPrimary:E,colorPrimaryHover:O,colorPrimaryActive:I,buttonSolidCheckedBg:z,buttonSolidCheckedHoverBg:j,buttonSolidCheckedActiveBg:N,calc:R}=e;return{[`${n}-button-wrapper`]:{position:"relative",display:"inline-block",height:o,margin:0,paddingInline:d,paddingBlock:0,color:t,fontSize:s,lineHeight:(0,y.unit)(R(o).sub(R(r).mul(2)).equal()),background:c,border:`${(0,y.unit)(r)} ${i} ${l}`,borderBlockStartWidth:R(r).add(.02).equal(),borderInlineEndWidth:r,cursor:"pointer",transition:`color ${a},background ${a},box-shadow ${a}`,a:{color:t},[`> ${n}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:last-child)":{marginInlineEnd:R(r).mul(-1).equal()},"&:first-child":{borderInlineStart:`${(0,y.unit)(r)} ${i} ${l}`,borderStartStartRadius:m,borderEndStartRadius:m},"&:last-child":{borderStartEndRadius:m,borderEndEndRadius:m},"&:first-child:last-child":{borderRadius:m},[`${n}-group-large &`]:{height:p,fontSize:u,lineHeight:(0,y.unit)(R(p).sub(R(r).mul(2)).equal()),"&:first-child":{borderStartStartRadius:h,borderEndStartRadius:h},"&:last-child":{borderStartEndRadius:h,borderEndEndRadius:h}},[`${n}-group-small &`]:{height:b,paddingInline:R(f).sub(r).equal(),paddingBlock:0,lineHeight:(0,y.unit)(R(b).sub(R(r).mul(2)).equal()),"&:first-child":{borderStartStartRadius:g,borderEndStartRadius:g},"&:last-child":{borderStartEndRadius:g,borderEndEndRadius:g}},"&:hover":{position:"relative",color:E},"&:has(:focus-visible)":(0,C.genFocusOutline)(e),[`${n}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${n}-button-wrapper-disabled)`]:{zIndex:1,color:E,background:v,borderColor:E,"&::before":{backgroundColor:E},"&:first-child":{borderColor:E},"&:hover":{color:O,borderColor:O,"&::before":{backgroundColor:O}},"&:active":{color:I,borderColor:I,"&::before":{backgroundColor:I}}},[`${n}-group-solid &-checked:not(${n}-button-wrapper-disabled)`]:{color:$,background:z,borderColor:z,"&:hover":{color:$,background:j,borderColor:j},"&:active":{color:$,background:N,borderColor:N}},"&-disabled":{color:S,backgroundColor:k,borderColor:l,cursor:"not-allowed","&:first-child, &:hover":{color:S,backgroundColor:k,borderColor:l}},[`&-disabled${n}-button-wrapper-checked`]:{color:w,backgroundColor:x,borderColor:l,boxShadow:"none"},"&-block":{flex:1,textAlign:"center"}}}})(r)]},e=>{let{wireframe:t,padding:o,marginXS:n,lineWidth:r,fontSizeLG:i,colorText:l,colorBgContainer:a,colorTextDisabled:d,controlItemBgActiveDisabled:s,colorTextLightSolid:c,colorPrimary:u,colorPrimaryHover:p,colorPrimaryActive:b,colorWhite:f}=e;return{radioSize:i,dotSize:t?i-8:i-(4+r)*2,dotColorDisabled:d,buttonSolidCheckedColor:c,buttonSolidCheckedBg:u,buttonSolidCheckedHoverBg:p,buttonSolidCheckedActiveBg:b,buttonBg:a,buttonCheckedBg:a,buttonColor:l,buttonCheckedBgDisabled:s,buttonCheckedColorDisabled:d,buttonPaddingInline:o-r,wrapperMarginInlineEnd:n,radioColor:t?u:f,radioBgColor:t?a:u}},{unitless:{radioSize:!0,dotSize:!0}});var w=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);rt.indexOf(n[r])&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o};let E=t.forwardRef((e,n)=>{var r,i;let d=t.useContext(s),c=t.useContext(u),{getPrefixCls:p,direction:y,radio:C}=t.useContext(l.ConfigContext),S=t.useRef(null),k=(0,f.composeRef)(n,S),{isFormItemInput:E}=t.useContext($.FormItemInputContext),{prefixCls:O,className:I,rootClassName:z,children:j,style:N,title:R}=e,D=w(e,["prefixCls","className","rootClassName","children","style","title"]),B=p("radio",O),P="button"===((null==d?void 0:d.optionType)||c),q=P?`${B}-button`:B,T=(0,a.default)(B),[M,L,H]=x(B,T),X=Object.assign({},D),F=t.useContext(v.default);d&&(X.name=d.name,X.onChange=t=>{var o,n;null==(o=e.onChange)||o.call(e,t),null==(n=null==d?void 0:d.onChange)||n.call(d,t)},X.checked=e.value===d.value,X.disabled=null!=(r=X.disabled)?r:d.disabled),X.disabled=null!=(i=X.disabled)?i:F;let G=(0,o.default)(`${q}-wrapper`,{[`${q}-wrapper-checked`]:X.checked,[`${q}-wrapper-disabled`]:X.disabled,[`${q}-wrapper-rtl`]:"rtl"===y,[`${q}-wrapper-in-form-item`]:E,[`${q}-wrapper-block`]:!!(null==d?void 0:d.block)},null==C?void 0:C.className,I,z,L,H,T),[A,W]=(0,h.default)(X.onClick);return M(t.createElement(m.default,{component:"Radio",disabled:X.disabled},t.createElement("label",{className:G,style:Object.assign(Object.assign({},null==C?void 0:C.style),N),onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,title:R,onClick:A},t.createElement(b.default,Object.assign({},X,{className:(0,o.default)(X.className,{[g.TARGET_CLS]:!P}),type:"radio",prefixCls:q,ref:k,onClick:W})),void 0!==j?t.createElement("span",{className:`${q}-label`},j):null)))});var O=e.i(286039);let I=t.forwardRef((e,s)=>{let{getPrefixCls:u,direction:p}=t.useContext(l.ConfigContext),{name:b}=t.useContext($.FormItemInputContext),f=(0,n.default)((0,O.toNamePathStr)(b)),{prefixCls:m,className:g,rootClassName:h,options:v,buttonStyle:y="outline",disabled:C,children:S,size:k,style:w,id:I,optionType:z,name:j=f,defaultValue:N,value:R,block:D=!1,onChange:B,onMouseEnter:P,onMouseLeave:q,onFocus:T,onBlur:M}=e,[L,H]=(0,r.default)(N,{value:R}),X=t.useCallback(t=>{let o=t.target.value;"value"in e||H(o),o!==L&&(null==B||B(t))},[L,H,B]),F=u("radio",m),G=`${F}-group`,A=(0,a.default)(F),[W,_,V]=x(F,A),K=S;v&&v.length>0&&(K=v.map(e=>"string"==typeof e||"number"==typeof e?t.createElement(E,{key:e.toString(),prefixCls:F,disabled:C,value:e,checked:L===e},e):t.createElement(E,{key:`radio-group-value-options-${e.value}`,prefixCls:F,disabled:e.disabled||C,value:e.value,checked:L===e.value,title:e.title,style:e.style,className:e.className,id:e.id,required:e.required},e.label)));let U=(0,d.default)(k),J=(0,o.default)(G,`${G}-${y}`,{[`${G}-${U}`]:U,[`${G}-rtl`]:"rtl"===p,[`${G}-block`]:D},g,h,_,V,A),Q=t.useMemo(()=>({onChange:X,value:L,disabled:C,name:j,optionType:z,block:D}),[X,L,C,j,z,D]);return W(t.createElement("div",Object.assign({},(0,i.default)(e,{aria:!0,data:!0}),{className:J,style:w,onMouseEnter:P,onMouseLeave:q,onFocus:T,onBlur:M,id:I,ref:s}),t.createElement(c,{value:Q},K)))}),z=t.memo(I);var j=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);rt.indexOf(n[r])&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]]);return o};let N=t.forwardRef((e,o)=>{let{getPrefixCls:n}=t.useContext(l.ConfigContext),{prefixCls:r}=e,i=j(e,["prefixCls"]),a=n("radio",r);return t.createElement(p,{value:"button"},t.createElement(E,Object.assign({prefixCls:a},i,{type:"radio",ref:o})))});E.Button=N,E.Group=z,E.__ANT_RADIO=!0,e.s(["default",0,E],544195)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/2703702968738794.js b/litellm/proxy/_experimental/out/_next/static/chunks/2703702968738794.js new file mode 100644 index 00000000000..345b6677b82 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/2703702968738794.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,988297,e=>{"use strict";var s=e.i(271645);let a=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4v16m8-8H4"}))});e.s(["PlusIcon",0,a],988297)},500727,e=>{"use strict";var s=e.i(266027),a=e.i(243652),t=e.i(764205),l=e.i(135214);let r=(0,a.createQueryKeys)("mcpServers");e.s(["useMCPServers",0,()=>{let{accessToken:e}=(0,l.default)();return(0,s.useQuery)({queryKey:r.list({}),queryFn:async()=>await (0,t.fetchMCPServers)(e),enabled:!!e})}])},841947,e=>{"use strict";let s=(0,e.i(475254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>s])},916940,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select vector stores",disabled:o=!1})=>{let[d,u]=(0,a.useState)([]),[m,p]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(n){p(!0);try{let e=await (0,l.vectorStoreListCall)(n);e.data&&u(e.data)}catch(e){console.error("Error fetching vector stores:",e)}finally{p(!1)}}})()},[n]),(0,s.jsx)("div",{children:(0,s.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:e,value:r,loading:m,className:i,allowClear:!0,options:d.map(e=>({label:`${e.vector_store_name||e.vector_store_id} (${e.vector_store_id})`,value:e.vector_store_id,title:e.vector_store_description||e.vector_store_id})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})})}])},213205,e=>{"use strict";e.i(247167);var s=e.i(931067),a=e.i(271645);let t={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"user-add",theme:"outlined"};var l=e.i(9583),r=a.forwardRef(function(e,r){return a.createElement(l.default,(0,s.default)({},e,{ref:r,icon:t}))});e.s(["UserAddOutlined",0,r],213205)},355619,e=>{"use strict";var s=e.i(764205);let a=async(e,a,t)=>{try{if(null===e||null===a)return;if(null!==t){let l=(await (0,s.modelAvailableCall)(t,e,a,!0,null,!0)).data.map(e=>e.id),r=[],i=[];return l.forEach(e=>{e.endsWith("/*")?r.push(e):i.push(e)}),[...r,...i]}}catch(e){console.error("Error fetching user models:",e)}};e.s(["fetchAvailableModelsForTeamOrKey",0,a,"getModelDisplayName",0,e=>{if("all-proxy-models"===e)return"All Proxy Models";if(e.endsWith("/*")){let s=e.replace("/*","");return`All ${s} models`}return e},"unfurlWildcardModelsInList",0,(e,s)=>{let a=[],t=[];return console.log("teamModels",e),console.log("allModels",s),e.forEach(e=>{if(e.endsWith("/*")){let l=e.replace("/*",""),r=s.filter(e=>e.startsWith(l+"/"));t.push(...r),a.push(e)}else t.push(e)}),[...a,...t].filter((e,s,a)=>a.indexOf(e)===s)}])},552130,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select agents",disabled:o=!1})=>{let[d,u]=(0,a.useState)([]),[m,p]=(0,a.useState)([]),[g,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{if(n){x(!0);try{let e=await (0,l.getAgentsList)(n),s=e?.agents||[];u(s);let a=new Set;s.forEach(e=>{let s=e.agent_access_groups;s&&Array.isArray(s)&&s.forEach(e=>a.add(e))}),p(Array.from(a))}catch(e){console.error("Error fetching agents:",e)}finally{x(!1)}}})()},[n]);let h=[...m.map(e=>({label:e,value:`group:${e}`,isAccessGroup:!0,searchText:`${e} Access Group`})),...d.map(e=>({label:`${e.agent_name||e.agent_id}`,value:e.agent_id,isAccessGroup:!1,searchText:`${e.agent_name||e.agent_id} ${e.agent_id} Agent`}))],f=[...r?.agents||[],...(r?.accessGroups||[]).map(e=>`group:${e}`)];return(0,s.jsx)("div",{children:(0,s.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:s=>{e({agents:s.filter(e=>!e.startsWith("group:")),accessGroups:s.filter(e=>e.startsWith("group:")).map(e=>e.replace("group:",""))})},value:f,loading:g,className:i,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:o,filterOption:(e,s)=>(h.find(e=>e.value===s?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:h.map(e=>(0,s.jsx)(t.Select.Option,{value:e.value,label:e.label,children:(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#722ed1",flexShrink:0}}),(0,s.jsx)("span",{style:{flex:1},children:e.label}),(0,s.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#722ed1",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"Agent"})]})},e.value))})})}])},557662,e=>{"use strict";let s="../ui/assets/logos/",a=[{id:"arize",displayName:"Arize",logo:`${s}arize.png`,supports_key_team_logging:!0,dynamic_params:{arize_api_key:"password",arize_space_id:"password"},description:"Arize Logging Integration"},{id:"braintrust",displayName:"Braintrust",logo:`${s}braintrust.png`,supports_key_team_logging:!1,dynamic_params:{braintrust_api_key:"password",braintrust_project_name:"text"},description:"Braintrust Logging Integration"},{id:"custom_callback_api",displayName:"Custom Callback API",logo:`${s}custom.svg`,supports_key_team_logging:!0,dynamic_params:{custom_callback_api_url:"text",custom_callback_api_headers:"text"},description:"Custom Callback API Logging Integration"},{id:"datadog",displayName:"Datadog",logo:`${s}datadog.png`,supports_key_team_logging:!1,dynamic_params:{dd_api_key:"password",dd_site:"text"},description:"Datadog Logging Integration"},{id:"lago",displayName:"Lago",logo:`${s}lago.svg`,supports_key_team_logging:!1,dynamic_params:{lago_api_url:"text",lago_api_key:"password"},description:"Lago Billing Logging Integration"},{id:"langfuse",displayName:"Langfuse",logo:`${s}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v2 Logging Integration"},{id:"langfuse_otel",displayName:"Langfuse OTEL",logo:`${s}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v3 OTEL Logging Integration"},{id:"langsmith",displayName:"LangSmith",logo:`${s}langsmith.png`,supports_key_team_logging:!0,dynamic_params:{langsmith_api_key:"password",langsmith_project:"text",langsmith_base_url:"text",langsmith_sampling_rate:"number"},description:"Langsmith Logging Integration"},{id:"openmeter",displayName:"OpenMeter",logo:`${s}openmeter.png`,supports_key_team_logging:!1,dynamic_params:{openmeter_api_key:"password",openmeter_base_url:"text"},description:"OpenMeter Logging Integration"},{id:"otel",displayName:"Open Telemetry",logo:`${s}otel.png`,supports_key_team_logging:!1,dynamic_params:{otel_endpoint:"text",otel_headers:"text"},description:"OpenTelemetry Logging Integration"},{id:"s3",displayName:"S3",logo:`${s}aws.svg`,supports_key_team_logging:!1,dynamic_params:{s3_bucket_name:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"S3 Bucket (AWS) Logging Integration"},{id:"SQS",displayName:"SQS",logo:`${s}aws.svg`,supports_key_team_logging:!1,dynamic_params:{sqs_queue_url:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"SQS Queue (AWS) Logging Integration"}],t=a.reduce((e,s)=>(e[s.displayName]=s,e),{}),l=a.reduce((e,s)=>(e[s.displayName]=s.id,e),{}),r=a.reduce((e,s)=>(e[s.id]=s.displayName,e),{});e.s(["callbackInfo",0,t,"callback_map",0,l,"mapDisplayToInternalNames",0,e=>e.map(e=>l[e]||e),"mapInternalToDisplayNames",0,e=>e.map(e=>r[e]||e),"reverse_callback_map",0,r])},844565,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select pass through routes",disabled:o=!1,teamId:d})=>{let[u,m]=(0,a.useState)([]),[p,g]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(n){g(!0);try{let e=await (0,l.getPassThroughEndpointsCall)(n,d);if(e.endpoints){let s=e.endpoints.map(e=>e.path);m(s)}}catch(e){console.error("Error fetching pass through routes:",e)}finally{g(!1)}}})()},[n,d]),(0,s.jsx)(t.Select,{mode:"tags",placeholder:c,onChange:e,value:r,loading:p,className:i,allowClear:!0,options:u.map(e=>({label:e,value:e})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})}])},810757,477386,e=>{"use strict";var s=e.i(271645);let a=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}))});e.s(["CogIcon",0,a],810757);let t=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"}))});e.s(["BanIcon",0,t],477386)},266484,e=>{"use strict";var s=e.i(843476),a=e.i(199133),t=e.i(592968),l=e.i(312361),r=e.i(827252),i=e.i(994388),n=e.i(304967),c=e.i(779241),o=e.i(988297),d=e.i(68155),u=e.i(810757),m=e.i(477386),p=e.i(557662),g=e.i(435451);let{Option:x}=a.Select;e.s(["default",0,({value:e=[],onChange:h,disabledCallbacks:f=[],onDisabledCallbacksChange:v})=>{let y=Object.entries(p.callbackInfo).filter(([e,s])=>s.supports_key_team_logging).map(([e,s])=>e),b=Object.keys(p.callbackInfo),_=e=>{h?.(e)},j=(s,a,t)=>{let l=[...e];if("callback_name"===a){let e=p.callback_map[t]||t;l[s]={...l[s],[a]:e,callback_vars:{}}}else l[s]={...l[s],[a]:t};_(l)},N=(s,a,t)=>{let l=[...e];l[s]={...l[s],callback_vars:{...l[s].callback_vars,[a]:t}},_(l)};return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(m.BanIcon,{className:"w-5 h-5 text-red-500"}),(0,s.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Disabled Callbacks"}),(0,s.jsx)(t.Tooltip,{title:"Select callbacks to disable for this key. Disabled callbacks will not receive any logging data.",children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Disabled Callbacks"}),(0,s.jsx)(a.Select,{mode:"multiple",placeholder:"Select callbacks to disable",value:f,onChange:e=>{let s=(0,p.mapDisplayToInternalNames)(e);v?.(s)},style:{width:"100%"},optionLabelProp:"label",children:b.map(e=>{let a=p.callbackInfo[e]?.logo,l=p.callbackInfo[e]?.description;return(0,s.jsx)(x,{value:e,label:e,children:(0,s.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,s.jsx)("img",{src:a,alt:e,className:"w-4 h-4 object-contain",onError:s=>{let a=s.target,t=a.parentElement;if(t){let s=document.createElement("div");s.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",s.textContent=e.charAt(0),t.replaceChild(s,a)}}}),(0,s.jsx)("span",{children:e})]})})},e)})}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"Select callbacks that should be disabled for this key. These callbacks will not receive any logging data."})]})]}),(0,s.jsx)(l.Divider,{}),(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(u.CogIcon,{className:"w-5 h-5 text-blue-500"}),(0,s.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Logging Integrations"}),(0,s.jsx)(t.Tooltip,{title:"Configure callback logging integrations for this team.",children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,s.jsx)(i.Button,{variant:"secondary",onClick:()=>{_([...e,{callback_name:"",callback_type:"success",callback_vars:{}}])},icon:o.PlusIcon,size:"sm",className:"hover:border-blue-400 hover:text-blue-500",type:"button",children:"Add Integration"})]}),(0,s.jsx)("div",{className:"space-y-4",children:e.map((l,o)=>{let u=l.callback_name?Object.entries(p.callback_map).find(([e,s])=>s===l.callback_name)?.[0]:void 0,m=u?p.callbackInfo[u]?.logo:null;return(0,s.jsxs)(n.Card,{className:"border border-gray-200 shadow-sm hover:shadow-md transition-shadow duration-200",decoration:"top",decorationColor:"blue",children:[(0,s.jsxs)("div",{className:"flex justify-between items-start mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[m&&(0,s.jsx)("img",{src:m,alt:u,className:"w-5 h-5 object-contain"}),(0,s.jsxs)("span",{className:"text-sm font-medium",children:[u||"New Integration"," Configuration"]})]}),(0,s.jsx)(i.Button,{variant:"light",onClick:()=>{_(e.filter((e,s)=>s!==o))},icon:d.TrashIcon,size:"xs",color:"red",className:"hover:bg-red-50",type:"button",children:"Remove"})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Integration Type"}),(0,s.jsx)(a.Select,{value:u,placeholder:"Select integration",onChange:e=>j(o,"callback_name",e),className:"w-full",optionLabelProp:"label",children:y.map(e=>{let a=p.callbackInfo[e]?.logo,l=p.callbackInfo[e]?.description;return(0,s.jsx)(x,{value:e,label:e,children:(0,s.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,s.jsx)("img",{src:a,alt:e,className:"w-4 h-4 object-contain",onError:s=>{let a=s.target,t=a.parentElement;if(t){let s=document.createElement("div");s.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",s.textContent=e.charAt(0),t.replaceChild(s,a)}}}),(0,s.jsx)("span",{children:e})]})})},e)})})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Event Type"}),(0,s.jsxs)(a.Select,{value:l.callback_type,onChange:e=>j(o,"callback_type",e),className:"w-full",children:[(0,s.jsx)(x,{value:"success",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,s.jsx)("span",{children:"Success Only"})]})}),(0,s.jsx)(x,{value:"failure",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-red-500 rounded-full"}),(0,s.jsx)("span",{children:"Failure Only"})]})}),(0,s.jsx)(x,{value:"success_and_failure",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,s.jsx)("span",{children:"Success & Failure"})]})})]})]})]}),((e,a)=>{if(!e.callback_name)return null;let l=Object.entries(p.callback_map).find(([s,a])=>a===e.callback_name)?.[0];if(!l)return null;let i=p.callbackInfo[l]?.dynamic_params||{};return 0===Object.keys(i).length?null:(0,s.jsxs)("div",{className:"mt-6 pt-4 border-t border-gray-100",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2 mb-4",children:[(0,s.jsx)("div",{className:"w-3 h-3 bg-blue-100 rounded-full flex items-center justify-center",children:(0,s.jsx)("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"})}),(0,s.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Integration Parameters"})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4",children:Object.entries(i).map(([l,i])=>(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("label",{className:"text-sm font-medium text-gray-700 capitalize flex items-center space-x-1",children:[(0,s.jsx)("span",{children:l.replace(/_/g," ")}),(0,s.jsx)(t.Tooltip,{title:`Environment variable reference recommended: os.environ/${l.toUpperCase()}`,children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help text-xs"})}),"password"===i&&(0,s.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Sensitive"}),"number"===i&&(0,s.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Number"})]}),"number"===i&&(0,s.jsx)("span",{className:"text-xs text-gray-500",children:"Value must be between 0 and 1"}),"number"===i?(0,s.jsx)(g.default,{step:.01,width:400,placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(a,l,e.target.value)}):(0,s.jsx)(c.TextInput,{type:"password"===i?"password":"text",placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(a,l,e.target.value)})]},l))})]})})(l,o)]})]},o)})}),0===e.length&&(0,s.jsxs)("div",{className:"text-center py-12 text-gray-500 border-2 border-dashed border-gray-200 rounded-lg bg-gray-50/50",children:[(0,s.jsx)(u.CogIcon,{className:"w-12 h-12 text-gray-300 mb-3 mx-auto"}),(0,s.jsx)("div",{className:"text-base font-medium mb-1",children:"No logging integrations configured"}),(0,s.jsx)("div",{className:"text-sm text-gray-400",children:'Click "Add Integration" to configure logging for this team'})]})]})}])},9314,263147,e=>{"use strict";var s=e.i(843476),a=e.i(199133),t=e.i(981339),l=e.i(645526),r=e.i(599724),i=e.i(266027),n=e.i(243652),c=e.i(764205),o=e.i(708347),d=e.i(135214);let u=(0,n.createQueryKeys)("accessGroups"),m=async e=>{let s=(0,c.getProxyBaseUrl)(),a=`${s}/v1/access_group`,t=await fetch(a,{method:"GET",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!t.ok){let e=await t.json(),s=(0,c.deriveErrorMessage)(e);throw(0,c.handleError)(s),Error(s)}return t.json()},p=()=>{let{accessToken:e,userRole:s}=(0,d.default)();return(0,i.useQuery)({queryKey:u.list({}),queryFn:async()=>m(e),enabled:!!e&&o.all_admin_roles.includes(s||"")})};e.s(["accessGroupKeys",0,u,"useAccessGroups",0,p],263147),e.s(["default",0,({value:e,onChange:i,placeholder:n="Select access groups",disabled:c=!1,style:o,className:d,showLabel:u=!1,labelText:m="Access Group",allowClear:g=!0})=>{let{data:x,isLoading:h,isError:f}=p();if(h)return(0,s.jsxs)("div",{children:[u&&(0,s.jsxs)(r.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,s.jsx)(l.TeamOutlined,{className:"mr-2"})," ",m]}),(0,s.jsx)(t.Skeleton.Input,{active:!0,block:!0,style:{height:32,...o}})]});let v=(x??[]).map(e=>({label:(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-medium",children:e.access_group_name})," ",(0,s.jsxs)("span",{className:"text-gray-400 text-xs",children:["(",e.access_group_id,")"]})]}),value:e.access_group_id,selectedLabel:e.access_group_name,searchText:`${e.access_group_name} ${e.access_group_id}`}));return(0,s.jsxs)("div",{children:[u&&(0,s.jsxs)(r.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,s.jsx)(l.TeamOutlined,{className:"mr-2"})," ",m]}),(0,s.jsx)(a.Select,{mode:"multiple",value:e,placeholder:n,onChange:i,disabled:c,allowClear:g,showSearch:!0,style:{width:"100%",...o},className:`rounded-md ${d??""}`,notFoundContent:f?(0,s.jsx)("span",{className:"text-red-500",children:"Failed to load access groups"}):"No access groups found",filterOption:(e,s)=>(v.find(e=>e.value===s?.value)?.searchText??"").toLowerCase().includes(e.toLowerCase()),optionLabelProp:"selectedLabel",options:v.map(e=>({label:e.label,value:e.value,selectedLabel:e.selectedLabel}))})]})}],9314)},75921,e=>{"use strict";var s=e.i(843476),a=e.i(266027),t=e.i(243652),l=e.i(764205),r=e.i(135214);let i=(0,t.createQueryKeys)("mcpAccessGroups");var n=e.i(500727),c=e.i(199133);e.s(["default",0,({onChange:e,value:t,className:o,accessToken:d,placeholder:u="Select MCP servers",disabled:m=!1})=>{let{data:p=[],isLoading:g}=(0,n.useMCPServers)(),{data:x=[],isLoading:h}=(()=>{let{accessToken:e}=(0,r.default)();return(0,a.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.fetchMCPAccessGroups)(e),enabled:!!e})})(),f=[...x.map(e=>({label:e,value:e,isAccessGroup:!0,searchText:`${e} Access Group`})),...p.map(e=>({label:`${e.server_name||e.server_id} (${e.server_id})`,value:e.server_id,isAccessGroup:!1,searchText:`${e.server_name||e.server_id} ${e.server_id} MCP Server`}))],v=[...t?.servers||[],...t?.accessGroups||[]];return(0,s.jsx)("div",{children:(0,s.jsx)(c.Select,{mode:"multiple",placeholder:u,onChange:s=>{e({servers:s.filter(e=>!x.includes(e)),accessGroups:s.filter(e=>x.includes(e))})},value:v,loading:g||h,className:o,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:m,filterOption:(e,s)=>(f.find(e=>e.value===s?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:f.map(e=>(0,s.jsx)(c.Select.Option,{value:e.value,label:e.label,children:(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#1890ff",flexShrink:0}}),(0,s.jsx)("span",{style:{flex:1},children:e.label}),(0,s.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#1890ff",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"MCP Server"})]})},e.value))})})}],75921)},390605,995926,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(764205),l=e.i(599724),r=e.i(482725),i=e.i(536916),n=e.i(841947);e.s(["XIcon",()=>n.default],995926);var n=n,c=e.i(500727);e.s(["default",0,({accessToken:e,selectedServers:o,toolPermissions:d,onChange:u,disabled:m=!1})=>{let{data:p=[]}=(0,c.useMCPServers)(),[g,x]=(0,a.useState)({}),[h,f]=(0,a.useState)({}),[v,y]=(0,a.useState)({}),b=(0,a.useMemo)(()=>0===o.length?[]:p.filter(e=>o.includes(e.server_id)),[p,o]),_=async s=>{f(e=>({...e,[s]:!0})),y(e=>({...e,[s]:""}));try{let a=await (0,t.listMCPTools)(e,s);a.error?(y(e=>({...e,[s]:a.message||"Failed to fetch tools"})),x(e=>({...e,[s]:[]}))):x(e=>({...e,[s]:a.tools||[]}))}catch(e){console.error(`Error fetching tools for server ${s}:`,e),y(e=>({...e,[s]:"Failed to fetch tools"})),x(e=>({...e,[s]:[]}))}finally{f(e=>({...e,[s]:!1}))}};return((0,a.useEffect)(()=>{b.forEach(e=>{g[e.server_id]||h[e.server_id]||_(e.server_id)})},[b]),0===o.length)?null:(0,s.jsx)("div",{className:"space-y-4",children:b.map(e=>{let a=e.server_name||e.alias||e.server_id,t=g[e.server_id]||[],c=d[e.server_id]||[],o=h[e.server_id],p=v[e.server_id];return(0,s.jsxs)("div",{className:"border rounded-lg bg-gray-50",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-4 border-b bg-white rounded-t-lg",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(l.Text,{className:"font-semibold text-gray-900",children:a}),e.description&&(0,s.jsx)(l.Text,{className:"text-sm text-gray-500",children:e.description})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var s;let a;return a=g[s=e.server_id]||[],void u({...d,[s]:a.map(e=>e.name)})},disabled:m||o,children:"Select All"}),(0,s.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var s;return s=e.server_id,void u({...d,[s]:[]})},disabled:m||o,children:"Deselect All"}),(0,s.jsx)("button",{type:"button",className:"text-gray-400 hover:text-gray-600",onClick:()=>{},children:(0,s.jsx)(n.default,{className:"w-4 h-4"})})]})]}),(0,s.jsxs)("div",{className:"p-4",children:[(0,s.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 mb-3",children:"Available Tools"}),o&&(0,s.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,s.jsx)(r.Spin,{size:"large"}),(0,s.jsx)(l.Text,{className:"ml-3 text-gray-500",children:"Loading tools..."})]}),p&&!o&&(0,s.jsxs)("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg text-center",children:[(0,s.jsx)(l.Text,{className:"text-red-600 font-medium",children:"Unable to load tools"}),(0,s.jsx)(l.Text,{className:"text-sm text-red-500 mt-1",children:p})]}),!o&&!p&&t.length>0&&(0,s.jsx)("div",{className:"space-y-2",children:t.map(a=>{let t=c.includes(a.name);return(0,s.jsxs)("div",{className:"flex items-start gap-2",children:[(0,s.jsx)(i.Checkbox,{checked:t,onChange:()=>{var s,t;let l,r;return s=e.server_id,t=a.name,r=(l=d[s]||[]).includes(t)?l.filter(e=>e!==t):[...l,t],void u({...d,[s]:r})},disabled:m}),(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(l.Text,{className:"font-medium text-gray-900",children:a.name}),(0,s.jsxs)(l.Text,{className:"text-sm text-gray-500",children:["- ",a.description||"No description"]})]})})]},a.name)})}),!o&&!p&&0===t.length&&(0,s.jsx)("div",{className:"text-center py-6",children:(0,s.jsx)(l.Text,{className:"text-gray-500",children:"No tools available"})})]})]},e.server_id)})})}],390605)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/2f04fe05bcb1c150.js b/litellm/proxy/_experimental/out/_next/static/chunks/2f04fe05bcb1c150.js new file mode 100644 index 00000000000..4c4035cbb00 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/2f04fe05bcb1c150.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,846835,e=>{"use strict";var t=e.i(843476),l=e.i(655913),a=e.i(38419),r=e.i(78334),i=e.i(555436),s=e.i(284614);let n=({filters:e,showFilters:n,onToggleFilters:o,onChange:d,onReset:c})=>{let u=!!(e.org_id||e.org_alias);return(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(l.FilterInput,{placeholder:"Search by Organization Name",value:e.org_alias,onChange:e=>d("org_alias",e),icon:i.Search,className:"w-64"}),(0,t.jsx)(a.FiltersButton,{onClick:()=>o(!n),active:n,hasActiveFilters:u}),(0,t.jsx)(r.ResetFiltersButton,{onClick:c})]}),n&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:(0,t.jsx)(l.FilterInput,{placeholder:"Search by Organization ID",value:e.org_id,onChange:e=>d("org_id",e),icon:s.User,className:"w-64"})})]})};var o=e.i(827252),d=e.i(871943),c=e.i(502547),u=e.i(278587),m=e.i(389083),g=e.i(994388),h=e.i(304967),x=e.i(309426),p=e.i(350967),b=e.i(752978),f=e.i(197647),j=e.i(653824),_=e.i(269200),v=e.i(942232),y=e.i(977572),C=e.i(427612),w=e.i(64848),T=e.i(496020),N=e.i(881073),S=e.i(404206),O=e.i(723731),z=e.i(599724),I=e.i(779241),F=e.i(808613),$=e.i(311451),M=e.i(212931),k=e.i(199133),P=e.i(592968),E=e.i(271645),B=e.i(500330),R=e.i(127952),D=e.i(902555),A=e.i(355619),L=e.i(75921),q=e.i(162386),U=e.i(727749),H=e.i(764205),K=e.i(785242),Q=e.i(980187),V=e.i(530212),W=e.i(591935),G=e.i(68155),Z=e.i(629569),J=e.i(464571),Y=e.i(678784),X=e.i(118366),ee=e.i(907308),et=e.i(384767),el=e.i(435451),ea=e.i(276173),er=e.i(916940);let ei=({organizationId:e,onClose:l,accessToken:a,is_org_admin:r,is_proxy_admin:i,userModels:s,editOrg:n})=>{let[o,d]=(0,E.useState)(null),[c,u]=(0,E.useState)(!0),[x]=F.Form.useForm(),[M,P]=(0,E.useState)(!1),[R,D]=(0,E.useState)(!1),[A,ei]=(0,E.useState)(!1),[es,en]=(0,E.useState)(null),[eo,ed]=(0,E.useState)({}),[ec,eu]=(0,E.useState)(!1),em=r||i,{data:eg}=(0,K.useTeams)(),eh=(0,E.useMemo)(()=>(0,Q.createTeamAliasMap)(eg),[eg]),ex=async()=>{try{if(u(!0),!a)return;let t=await (0,H.organizationInfoCall)(a,e);d(t)}catch(e){U.default.fromBackend("Failed to load organization information"),console.error("Error fetching organization info:",e)}finally{u(!1)}};(0,E.useEffect)(()=>{ex()},[e,a]);let ep=async t=>{try{if(null==a)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,H.organizationMemberAddCall)(a,e,l),U.default.success("Organization member added successfully"),D(!1),x.resetFields(),ex()}catch(e){U.default.fromBackend("Failed to add organization member"),console.error("Error adding organization member:",e)}},eb=async t=>{try{if(!a)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,H.organizationMemberUpdateCall)(a,e,l),U.default.success("Organization member updated successfully"),ei(!1),x.resetFields(),ex()}catch(e){U.default.fromBackend("Failed to update organization member"),console.error("Error updating organization member:",e)}},ef=async t=>{try{if(!a)return;await (0,H.organizationMemberDeleteCall)(a,e,t.user_id),U.default.success("Organization member deleted successfully"),ei(!1),x.resetFields(),ex()}catch(e){U.default.fromBackend("Failed to delete organization member"),console.error("Error deleting organization member:",e)}},ej=async t=>{try{if(!a)return;eu(!0);let l={organization_id:e,organization_alias:t.organization_alias,models:t.models,litellm_budget_table:{tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,max_budget:t.max_budget,budget_duration:t.budget_duration},metadata:t.metadata?JSON.parse(t.metadata):null};if((void 0!==t.vector_stores||void 0!==t.mcp_servers_and_groups)&&(l.object_permission={...o?.object_permission,vector_stores:t.vector_stores||[]},void 0!==t.mcp_servers_and_groups)){let{servers:e,accessGroups:a}=t.mcp_servers_and_groups||{servers:[],accessGroups:[]};e&&e.length>0&&(l.object_permission.mcp_servers=e),a&&a.length>0&&(l.object_permission.mcp_access_groups=a)}await (0,H.organizationUpdateCall)(a,l),U.default.success("Organization settings updated successfully"),P(!1),ex()}catch(e){U.default.fromBackend("Failed to update organization settings"),console.error("Error updating organization:",e)}finally{eu(!1)}};if(c)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!o)return(0,t.jsx)("div",{className:"p-4",children:"Organization not found"});let e_=async(e,t)=>{await (0,B.copyToClipboard)(e)&&(ed(e=>({...e,[t]:!0})),setTimeout(()=>{ed(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"w-full h-screen p-4 bg-white",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Button,{icon:V.ArrowLeftIcon,onClick:l,variant:"light",className:"mb-4",children:"Back to Organizations"}),(0,t.jsx)(Z.Title,{children:o.organization_alias}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(z.Text,{className:"text-gray-500 font-mono",children:o.organization_id}),(0,t.jsx)(J.Button,{type:"text",size:"small",icon:eo["org-id"]?(0,t.jsx)(Y.CheckIcon,{size:12}):(0,t.jsx)(X.CopyIcon,{size:12}),onClick:()=>e_(o.organization_id,"org-id"),className:`left-2 z-10 transition-all duration-200 ${eo["org-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsxs)(j.TabGroup,{defaultIndex:2*!!n,children:[(0,t.jsxs)(N.TabList,{className:"mb-4",children:[(0,t.jsx)(f.Tab,{children:"Overview"}),(0,t.jsx)(f.Tab,{children:"Members"}),(0,t.jsx)(f.Tab,{children:"Settings"})]}),(0,t.jsxs)(O.TabPanels,{children:[(0,t.jsx)(S.TabPanel,{children:(0,t.jsxs)(p.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(z.Text,{children:"Organization Details"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(z.Text,{children:["Created: ",new Date(o.created_at).toLocaleDateString()]}),(0,t.jsxs)(z.Text,{children:["Updated: ",new Date(o.updated_at).toLocaleDateString()]}),(0,t.jsxs)(z.Text,{children:["Created By: ",o.created_by]})]})]}),(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(z.Text,{children:"Budget Status"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(Z.Title,{children:["$",(0,B.formatNumberWithCommas)(o.spend,4)]}),(0,t.jsxs)(z.Text,{children:["of"," ",null===o.litellm_budget_table.max_budget?"Unlimited":`$${(0,B.formatNumberWithCommas)(o.litellm_budget_table.max_budget,4)}`]}),o.litellm_budget_table.budget_duration&&(0,t.jsxs)(z.Text,{className:"text-gray-500",children:["Reset: ",o.litellm_budget_table.budget_duration]})]})]}),(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(z.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(z.Text,{children:["TPM: ",o.litellm_budget_table.tpm_limit||"Unlimited"]}),(0,t.jsxs)(z.Text,{children:["RPM: ",o.litellm_budget_table.rpm_limit||"Unlimited"]}),o.litellm_budget_table.max_parallel_requests&&(0,t.jsxs)(z.Text,{children:["Max Parallel Requests: ",o.litellm_budget_table.max_parallel_requests]})]})]}),(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(z.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:0===o.models.length?(0,t.jsx)(m.Badge,{color:"red",children:"All proxy models"}):o.models.map((e,l)=>(0,t.jsx)(m.Badge,{color:"red",children:e},l))})]}),(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(z.Text,{children:"Teams"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:o.teams?.map((e,l)=>(0,t.jsx)(m.Badge,{color:"red",children:eh[e.team_id]||e.team_id},l))})]}),(0,t.jsx)(et.default,{objectPermission:o.object_permission,variant:"card",accessToken:a})]})}),(0,t.jsx)(S.TabPanel,{children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(h.Card,{className:"w-full mx-auto flex-auto overflow-y-auto max-h-[75vh]",children:(0,t.jsxs)(_.Table,{children:[(0,t.jsx)(C.TableHead,{children:(0,t.jsxs)(T.TableRow,{children:[(0,t.jsx)(w.TableHeaderCell,{children:"User ID"}),(0,t.jsx)(w.TableHeaderCell,{children:"Role"}),(0,t.jsx)(w.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(w.TableHeaderCell,{children:"Created At"}),(0,t.jsx)(w.TableHeaderCell,{})]})}),(0,t.jsx)(v.TableBody,{children:o.members&&o.members.length>0?o.members.map((e,l)=>(0,t.jsxs)(T.TableRow,{children:[(0,t.jsx)(y.TableCell,{children:(0,t.jsx)(z.Text,{className:"font-mono",children:e.user_id})}),(0,t.jsx)(y.TableCell,{children:(0,t.jsx)(z.Text,{className:"font-mono",children:e.user_role})}),(0,t.jsx)(y.TableCell,{children:(0,t.jsxs)(z.Text,{children:["$",(0,B.formatNumberWithCommas)(e.spend,4)]})}),(0,t.jsx)(y.TableCell,{children:(0,t.jsx)(z.Text,{children:new Date(e.created_at).toLocaleString()})}),(0,t.jsx)(y.TableCell,{children:em&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b.Icon,{icon:W.PencilAltIcon,size:"sm",onClick:()=>{en({role:e.user_role,user_email:e.user_email,user_id:e.user_id}),ei(!0)}}),(0,t.jsx)(b.Icon,{icon:G.TrashIcon,size:"sm",onClick:()=>{ef(e)}})]})})]},l)):(0,t.jsx)(T.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:5,className:"text-center py-8",children:(0,t.jsx)(z.Text,{className:"text-gray-500",children:"No members found"})})})})]})}),em&&(0,t.jsx)(g.Button,{onClick:()=>{D(!0)},children:"Add Member"})]})}),(0,t.jsx)(S.TabPanel,{children:(0,t.jsxs)(h.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(Z.Title,{children:"Organization Settings"}),em&&!M&&(0,t.jsx)(g.Button,{onClick:()=>P(!0),children:"Edit Settings"})]}),M?(0,t.jsxs)(F.Form,{form:x,onFinish:ej,initialValues:{organization_alias:o.organization_alias,models:o.models,tpm_limit:o.litellm_budget_table.tpm_limit,rpm_limit:o.litellm_budget_table.rpm_limit,max_budget:o.litellm_budget_table.max_budget,budget_duration:o.litellm_budget_table.budget_duration,metadata:o.metadata?JSON.stringify(o.metadata,null,2):"",vector_stores:o.object_permission?.vector_stores||[],mcp_servers_and_groups:{servers:o.object_permission?.mcp_servers||[],accessGroups:o.object_permission?.mcp_access_groups||[]}},layout:"vertical",children:[(0,t.jsx)(F.Form.Item,{label:"Organization Name",name:"organization_alias",rules:[{required:!0,message:"Please input an organization name"}],children:(0,t.jsx)(I.TextInput,{})}),(0,t.jsx)(F.Form.Item,{label:"Models",name:"models",children:(0,t.jsx)(q.ModelSelect,{value:x.getFieldValue("models"),onChange:e=>x.setFieldValue("models",e),context:"organization",options:{includeSpecialOptions:!0,showAllProxyModelsOverride:!0}})}),(0,t.jsx)(F.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(F.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(k.Select,{placeholder:"n/a",children:[(0,t.jsx)(k.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(k.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(k.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(F.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(F.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(F.Form.Item,{label:"Vector Stores",name:"vector_stores",children:(0,t.jsx)(er.default,{onChange:e=>x.setFieldValue("vector_stores",e),value:x.getFieldValue("vector_stores"),accessToken:a||"",placeholder:"Select vector stores"})}),(0,t.jsx)(F.Form.Item,{label:"MCP Servers & Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(L.default,{onChange:e=>x.setFieldValue("mcp_servers_and_groups",e),value:x.getFieldValue("mcp_servers_and_groups"),accessToken:a||"",placeholder:"Select MCP servers and access groups"})}),(0,t.jsx)(F.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)($.Input.TextArea,{rows:4})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(g.Button,{variant:"secondary",onClick:()=>P(!1),disabled:ec,children:"Cancel"}),(0,t.jsx)(g.Button,{type:"submit",loading:ec,children:"Save Changes"})]})})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Organization Name"}),(0,t.jsx)("div",{children:o.organization_alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Organization ID"}),(0,t.jsx)("div",{className:"font-mono",children:o.organization_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Created At"}),(0,t.jsx)("div",{children:new Date(o.created_at).toLocaleString()})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:o.models.map((e,l)=>(0,t.jsx)(m.Badge,{color:"red",children:e},l))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)("div",{children:["TPM: ",o.litellm_budget_table.tpm_limit||"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",o.litellm_budget_table.rpm_limit||"Unlimited"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(z.Text,{className:"font-medium",children:"Budget"}),(0,t.jsxs)("div",{children:["Max:"," ",null!==o.litellm_budget_table.max_budget?`$${(0,B.formatNumberWithCommas)(o.litellm_budget_table.max_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Reset: ",o.litellm_budget_table.budget_duration||"Never"]})]}),(0,t.jsx)(et.default,{objectPermission:o.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:a})]})]})})]})]}),(0,t.jsx)(ee.default,{isVisible:R,onCancel:()=>D(!1),onSubmit:ep,accessToken:a,title:"Add Organization Member",roles:[{label:"org_admin",value:"org_admin",description:"Can add and remove members, and change their roles."},{label:"internal_user",value:"internal_user",description:"Can view/create keys for themselves within organization."},{label:"internal_user_viewer",value:"internal_user_viewer",description:"Can only view their keys within organization."}],defaultRole:"internal_user"}),(0,t.jsx)(ea.default,{visible:A,onCancel:()=>ei(!1),onSubmit:eb,initialData:es,mode:"edit",config:{title:"Edit Member",showEmail:!0,showUserId:!0,roleOptions:[{label:"Org Admin",value:"org_admin"},{label:"Internal User",value:"internal_user"},{label:"Internal User Viewer",value:"internal_user_viewer"}]}})]})},es=async(e,t,l=null,a=null)=>{t(await (0,H.organizationListCall)(e,l,a))};e.s(["default",0,({organizations:e,userRole:l,userModels:a,accessToken:r,lastRefreshed:i,handleRefreshClick:s,currentOrg:K,guardrailsList:Q=[],setOrganizations:V,premiumUser:W})=>{let[G,Z]=(0,E.useState)(null),[J,Y]=(0,E.useState)(!1),[X,ee]=(0,E.useState)(!1),[et,ea]=(0,E.useState)(null),[en,eo]=(0,E.useState)(!1),[ed,ec]=(0,E.useState)(!1),[eu]=F.Form.useForm(),[em,eg]=(0,E.useState)({}),[eh,ex]=(0,E.useState)(!1),[ep,eb]=(0,E.useState)({org_id:"",org_alias:"",sort_by:"created_at",sort_order:"desc"}),ef=async()=>{if(et&&r)try{eo(!0),await (0,H.organizationDeleteCall)(r,et),U.default.success("Organization deleted successfully"),ee(!1),ea(null),await es(r,V,ep.org_id||null,ep.org_alias||null)}catch(e){console.error("Error deleting organization:",e)}finally{eo(!1)}},ej=async e=>{try{if(!r)return;console.log(`values in organizations new create call: ${JSON.stringify(e)}`),(e.allowed_vector_store_ids&&e.allowed_vector_store_ids.length>0||e.allowed_mcp_servers_and_groups&&(e.allowed_mcp_servers_and_groups.servers?.length>0||e.allowed_mcp_servers_and_groups.accessGroups?.length>0))&&(e.object_permission={},e.allowed_vector_store_ids&&e.allowed_vector_store_ids.length>0&&(e.object_permission.vector_stores=e.allowed_vector_store_ids,delete e.allowed_vector_store_ids),e.allowed_mcp_servers_and_groups&&(e.allowed_mcp_servers_and_groups.servers?.length>0&&(e.object_permission.mcp_servers=e.allowed_mcp_servers_and_groups.servers),e.allowed_mcp_servers_and_groups.accessGroups?.length>0&&(e.object_permission.mcp_access_groups=e.allowed_mcp_servers_and_groups.accessGroups),delete e.allowed_mcp_servers_and_groups)),await (0,H.organizationCreateCall)(r,e),U.default.success("Organization created successfully"),ec(!1),eu.resetFields(),es(r,V,ep.org_id||null,ep.org_alias||null)}catch(e){console.error("Error creating organization:",e)}};return W?(0,t.jsxs)("div",{className:"w-full mx-4 h-[75vh]",children:[(0,t.jsx)(p.Grid,{numItems:1,className:"gap-2 p-8 w-full mt-2",children:(0,t.jsxs)(x.Col,{numColSpan:1,className:"flex flex-col gap-2",children:[("Admin"===l||"Org Admin"===l)&&(0,t.jsx)(g.Button,{className:"w-fit",onClick:()=>ec(!0),children:"+ Create New Organization"}),G?(0,t.jsx)(ei,{organizationId:G,onClose:()=>{Z(null),Y(!1)},accessToken:r,is_org_admin:!0,is_proxy_admin:"Admin"===l,userModels:a,editOrg:J}):(0,t.jsxs)(j.TabGroup,{className:"gap-2 h-[75vh] w-full",children:[(0,t.jsxs)(N.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsx)("div",{className:"flex",children:(0,t.jsx)(f.Tab,{children:"Your Organizations"})}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[i&&(0,t.jsxs)(z.Text,{children:["Last Refreshed: ",i]}),(0,t.jsx)(b.Icon,{icon:u.RefreshIcon,variant:"shadow",size:"xs",className:"self-center",onClick:s})]})]}),(0,t.jsx)(O.TabPanels,{children:(0,t.jsxs)(S.TabPanel,{children:[(0,t.jsx)(z.Text,{children:"Click on “Organization ID” to view organization details."}),(0,t.jsx)(p.Grid,{numItems:1,className:"gap-2 pt-2 pb-2 h-[75vh] w-full mt-2",children:(0,t.jsx)(x.Col,{numColSpan:1,children:(0,t.jsxs)(h.Card,{className:"w-full mx-auto flex-auto overflow-hidden overflow-y-auto max-h-[50vh]",children:[(0,t.jsx)("div",{className:"border-b px-6 py-4",children:(0,t.jsx)("div",{className:"flex flex-col space-y-4",children:(0,t.jsx)(n,{filters:ep,showFilters:eh,onToggleFilters:ex,onChange:(e,t)=>{let l={...ep,[e]:t};eb(l),r&&(0,H.organizationListCall)(r,l.org_id||null,l.org_alias||null).then(e=>{e&&V(e)}).catch(e=>{console.error("Error fetching organizations:",e)})},onReset:()=>{eb({org_id:"",org_alias:"",sort_by:"created_at",sort_order:"desc"}),r&&(0,H.organizationListCall)(r,null,null).then(e=>{e&&V(e)}).catch(e=>{console.error("Error fetching organizations:",e)})}})})}),(0,t.jsxs)(_.Table,{children:[(0,t.jsx)(C.TableHead,{children:(0,t.jsxs)(T.TableRow,{children:[(0,t.jsx)(w.TableHeaderCell,{children:"Organization ID"}),(0,t.jsx)(w.TableHeaderCell,{children:"Organization Name"}),(0,t.jsx)(w.TableHeaderCell,{children:"Created"}),(0,t.jsx)(w.TableHeaderCell,{children:"Spend (USD)"}),(0,t.jsx)(w.TableHeaderCell,{children:"Budget (USD)"}),(0,t.jsx)(w.TableHeaderCell,{children:"Models"}),(0,t.jsx)(w.TableHeaderCell,{children:"TPM / RPM Limits"}),(0,t.jsx)(w.TableHeaderCell,{children:"Info"}),(0,t.jsx)(w.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(v.TableBody,{children:e&&e.length>0?e.sort((e,t)=>new Date(t.created_at).getTime()-new Date(e.created_at).getTime()).map(e=>(0,t.jsxs)(T.TableRow,{children:[(0,t.jsx)(y.TableCell,{children:(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(P.Tooltip,{title:e.organization_id,children:(0,t.jsxs)(g.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate max-w-[200px]",onClick:()=>Z(e.organization_id),children:[e.organization_id?.slice(0,7),"..."]})})})}),(0,t.jsx)(y.TableCell,{children:e.organization_alias}),(0,t.jsx)(y.TableCell,{children:e.created_at?new Date(e.created_at).toLocaleDateString():"N/A"}),(0,t.jsx)(y.TableCell,{children:(0,B.formatNumberWithCommas)(e.spend,4)}),(0,t.jsx)(y.TableCell,{children:e.litellm_budget_table?.max_budget!==null&&e.litellm_budget_table?.max_budget!==void 0?e.litellm_budget_table?.max_budget:"No limit"}),(0,t.jsx)(y.TableCell,{style:{maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:e.models.length>3?"px-0":"",children:(0,t.jsx)("div",{className:"flex flex-col",children:Array.isArray(e.models)?(0,t.jsx)("div",{className:"flex flex-col",children:0===e.models.length?(0,t.jsx)(m.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,t.jsx)(z.Text,{children:"All Proxy Models"})}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"flex items-start",children:[e.models.length>3&&(0,t.jsx)("div",{children:(0,t.jsx)(b.Icon,{icon:em[e.organization_id||""]?d.ChevronDownIcon:c.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>{eg(t=>({...t,[e.organization_id||""]:!t[e.organization_id||""]}))}})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.models.slice(0,3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(m.Badge,{size:"xs",color:"red",children:(0,t.jsx)(z.Text,{children:"All Proxy Models"})},l):(0,t.jsx)(m.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(z.Text,{children:e.length>30?`${(0,A.getModelDisplayName)(e).slice(0,30)}...`:(0,A.getModelDisplayName)(e)})},l)),e.models.length>3&&!em[e.organization_id||""]&&(0,t.jsx)(m.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,t.jsxs)(z.Text,{children:["+",e.models.length-3," ",e.models.length-3==1?"more model":"more models"]})}),em[e.organization_id||""]&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e.models.slice(3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(m.Badge,{size:"xs",color:"red",children:(0,t.jsx)(z.Text,{children:"All Proxy Models"})},l+3):(0,t.jsx)(m.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(z.Text,{children:e.length>30?`${(0,A.getModelDisplayName)(e).slice(0,30)}...`:(0,A.getModelDisplayName)(e)})},l+3))})]})]})})}):null})}),(0,t.jsx)(y.TableCell,{children:(0,t.jsxs)(z.Text,{children:["TPM:"," ",e.litellm_budget_table?.tpm_limit?e.litellm_budget_table?.tpm_limit:"Unlimited",(0,t.jsx)("br",{}),"RPM:"," ",e.litellm_budget_table?.rpm_limit?e.litellm_budget_table?.rpm_limit:"Unlimited"]})}),(0,t.jsx)(y.TableCell,{children:(0,t.jsxs)(z.Text,{children:[e.members?.length||0," Members"]})}),(0,t.jsx)(y.TableCell,{children:"Admin"===l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.default,{variant:"Edit",tooltipText:"Edit organization",onClick:()=>{Z(e.organization_id),Y(!0)}}),(0,t.jsx)(D.default,{variant:"Delete",tooltipText:"Delete organization",onClick:()=>{var t;(t=e.organization_id)&&(ea(t),ee(!0))}})]})})]},e.organization_id)):null})]})]})})})]})})]})]})}),(0,t.jsx)(M.Modal,{title:"Create Organization",visible:ed,width:800,footer:null,onCancel:()=>{ec(!1),eu.resetFields()},children:(0,t.jsxs)(F.Form,{form:eu,onFinish:ej,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsx)(F.Form.Item,{label:"Organization Name",name:"organization_alias",rules:[{required:!0,message:"Please input an organization name"}],children:(0,t.jsx)(I.TextInput,{placeholder:""})}),(0,t.jsx)(F.Form.Item,{label:"Models",name:"models",children:(0,t.jsx)(q.ModelSelect,{options:{showAllProxyModelsOverride:!0,includeSpecialOptions:!0},value:eu.getFieldValue("models"),onChange:e=>eu.setFieldValue("models",e),context:"organization"})}),(0,t.jsx)(F.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,width:200})}),(0,t.jsx)(F.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(k.Select,{defaultValue:null,placeholder:"n/a",children:[(0,t.jsx)(k.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(k.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(k.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(F.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(el.default,{step:1,width:400})}),(0,t.jsx)(F.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(el.default,{step:1,width:400})}),(0,t.jsx)(F.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Vector Stores"," ",(0,t.jsx)(P.Tooltip,{title:"Select which vector stores this organization can access by default. Leave empty for access to all vector stores",children:(0,t.jsx)(o.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_vector_store_ids",className:"mt-4",help:"Select vector stores this organization can access. Leave empty for access to all vector stores",children:(0,t.jsx)(er.default,{onChange:e=>eu.setFieldValue("allowed_vector_store_ids",e),value:eu.getFieldValue("allowed_vector_store_ids"),accessToken:r||"",placeholder:"Select vector stores (optional)"})}),(0,t.jsx)(F.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed MCP Servers"," ",(0,t.jsx)(P.Tooltip,{title:"Select which MCP servers and access groups this organization can access by default.",children:(0,t.jsx)(o.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_mcp_servers_and_groups",className:"mt-4",help:"Select MCP servers and access groups this organization can access.",children:(0,t.jsx)(L.default,{onChange:e=>eu.setFieldValue("allowed_mcp_servers_and_groups",e),value:eu.getFieldValue("allowed_mcp_servers_and_groups"),accessToken:r||"",placeholder:"Select MCP servers and access groups (optional)"})}),(0,t.jsx)(F.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)($.Input.TextArea,{rows:4})}),(0,t.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,t.jsx)(g.Button,{type:"submit",children:"Create Organization"})})]})}),(0,t.jsx)(R.default,{isOpen:X,title:"Delete Organization?",message:"Are you sure you want to delete this organization? This action cannot be undone.",resourceInformationTitle:"Organization Information",resourceInformation:[{label:"Organization ID",value:et,code:!0}],onCancel:()=>{ee(!1),ea(null)},onOk:ef,confirmLoading:en})]}):(0,t.jsx)("div",{children:(0,t.jsxs)(z.Text,{children:["This is a LiteLLM Enterprise feature, and requires a valid key to use. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",children:"here"}),"."]})})},"fetchOrganizations",0,es],846835)},738014,e=>{"use strict";var t=e.i(135214),l=e.i(764205),a=e.i(266027);let r=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:i,userRole:s}=(0,t.default)();return(0,a.useQuery)({queryKey:r.detail(i),queryFn:async()=>{let t=await (0,l.userInfoCall)(e,i,s,!1,null,null);return console.log(`userInfo: ${JSON.stringify(t)}`),t.user_info},enabled:!!(e&&i&&s)})}])},906579,e=>{"use strict";e.i(247167);var t=e.i(271645),l=e.i(343794),a=e.i(361275),r=e.i(702779),i=e.i(763731),s=e.i(242064);e.i(296059);var n=e.i(915654),o=e.i(694758),d=e.i(183293),c=e.i(403541),u=e.i(246422),m=e.i(838378);let g=new o.Keyframes("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),h=new o.Keyframes("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),x=new o.Keyframes("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),p=new o.Keyframes("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),b=new o.Keyframes("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),f=new o.Keyframes("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),j=e=>{let{fontHeight:t,lineWidth:l,marginXS:a,colorBorderBg:r}=e,i=e.colorTextLightSolid,s=e.colorError,n=e.colorErrorHover;return(0,m.mergeToken)(e,{badgeFontHeight:t,badgeShadowSize:l,badgeTextColor:i,badgeColor:s,badgeColorHover:n,badgeShadowColor:r,badgeProcessingDuration:"1.2s",badgeRibbonOffset:a,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},_=e=>{let{fontSize:t,lineHeight:l,fontSizeSM:a,lineWidth:r}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*l)-2*r,indicatorHeightSM:t,dotSize:a/2,textFontSize:a,textFontSizeSM:a,textFontWeight:"normal",statusSize:a/2}},v=(0,u.genStyleHooks)("Badge",e=>(e=>{let{componentCls:t,iconCls:l,antCls:a,badgeShadowSize:r,textFontSize:i,textFontSizeSM:s,statusSize:o,dotSize:u,textFontWeight:m,indicatorHeight:j,indicatorHeightSM:_,marginXS:v,calc:y}=e,C=`${a}-scroll-number`,w=(0,c.genPresetColor)(e,(e,{darkColor:l})=>({[`&${t} ${t}-color-${e}`]:{background:l,[`&:not(${t}-count)`]:{color:l},"a:hover &":{background:l}}}));return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:j,height:j,color:e.badgeTextColor,fontWeight:m,fontSize:i,lineHeight:(0,n.unit)(j),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:y(j).div(2).equal(),boxShadow:`0 0 0 ${(0,n.unit)(r)} ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:_,height:_,fontSize:s,lineHeight:(0,n.unit)(_),borderRadius:y(_).div(2).equal()},[`${t}-multiple-words`]:{padding:`0 ${(0,n.unit)(e.paddingXS)}`,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:u,minWidth:u,height:u,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,n.unit)(r)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${C}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${l}-spin`]:{animationName:f,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:o,height:o,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfo,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:r,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:g,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:v,color:e.colorText,fontSize:e.fontSize}}}),w),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:h,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:x,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:p,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:b,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${C}-custom-component, ${t}-count`]:{transform:"none"},[`${C}-custom-component, ${C}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[C]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${C}-only`]:{position:"relative",display:"inline-block",height:j,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${C}-only-unit`]:{height:j,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${C}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${C}-custom-component`]:{transform:"translate(-50%, -50%)"}}})}})(j(e)),_),y=(0,u.genStyleHooks)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:l,marginXS:a,badgeRibbonOffset:r,calc:i}=e,s=`${t}-ribbon`,o=`${t}-ribbon-wrapper`,u=(0,c.genPresetColor)(e,(e,{darkColor:t})=>({[`&${s}-color-${e}`]:{background:t,color:t}}));return{[o]:{position:"relative"},[s]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:a,padding:`0 ${(0,n.unit)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,n.unit)(l),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${s}-text`]:{color:e.badgeTextColor},[`${s}-corner`]:{position:"absolute",top:"100%",width:r,height:r,color:"currentcolor",border:`${(0,n.unit)(i(r).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter}}),u),{[`&${s}-placement-end`]:{insetInlineEnd:i(r).mul(-1).equal(),borderEndEndRadius:0,[`${s}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${s}-placement-start`]:{insetInlineStart:i(r).mul(-1).equal(),borderEndStartRadius:0,[`${s}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}})(j(e)),_),C=e=>{let a,{prefixCls:r,value:i,current:s,offset:n=0}=e;return n&&(a={position:"absolute",top:`${n}00%`,left:0}),t.createElement("span",{style:a,className:(0,l.default)(`${r}-only-unit`,{current:s})},i)},w=e=>{let l,a,{prefixCls:r,count:i,value:s}=e,n=Number(s),o=Math.abs(i),[d,c]=t.useState(n),[u,m]=t.useState(o),g=()=>{c(n),m(o)};if(t.useEffect(()=>{let e=setTimeout(g,1e3);return()=>clearTimeout(e)},[n]),d===n||Number.isNaN(n)||Number.isNaN(d))l=[t.createElement(C,Object.assign({},e,{key:n,current:!0}))],a={transition:"none"};else{l=[];let r=n+10,i=[];for(let e=n;e<=r;e+=1)i.push(e);let s=ue%10===d);l=(s<0?i.slice(0,c+1):i.slice(c)).map((l,a)=>t.createElement(C,Object.assign({},e,{key:l,value:l%10,offset:s<0?a-c:a,current:a===c}))),a={transform:`translateY(${-function(e,t,l){let a=e,r=0;for(;(a+10)%10!==t;)a+=l,r+=l;return r}(d,n,s)}00%)`}}return t.createElement("span",{className:`${r}-only`,style:a,onTransitionEnd:g},l)};var T=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let N=t.forwardRef((e,a)=>{let{prefixCls:r,count:n,className:o,motionClassName:d,style:c,title:u,show:m,component:g="sup",children:h}=e,x=T(e,["prefixCls","count","className","motionClassName","style","title","show","component","children"]),{getPrefixCls:p}=t.useContext(s.ConfigContext),b=p("scroll-number",r),f=Object.assign(Object.assign({},x),{"data-show":m,style:c,className:(0,l.default)(b,o,d),title:u}),j=n;if(n&&Number(n)%1==0){let e=String(n).split("");j=t.createElement("bdi",null,e.map((l,a)=>t.createElement(w,{prefixCls:b,count:Number(n),value:l,key:e.length-a})))}return((null==c?void 0:c.borderColor)&&(f.style=Object.assign(Object.assign({},c),{boxShadow:`0 0 0 1px ${c.borderColor} inset`})),h)?(0,i.cloneElement)(h,e=>({className:(0,l.default)(`${b}-custom-component`,null==e?void 0:e.className,d)})):t.createElement(g,Object.assign({},f,{ref:a}),j)});var S=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let O=t.forwardRef((e,n)=>{var o,d,c,u,m;let{prefixCls:g,scrollNumberPrefixCls:h,children:x,status:p,text:b,color:f,count:j=null,overflowCount:_=99,dot:y=!1,size:C="default",title:w,offset:T,style:O,className:z,rootClassName:I,classNames:F,styles:$,showZero:M=!1}=e,k=S(e,["prefixCls","scrollNumberPrefixCls","children","status","text","color","count","overflowCount","dot","size","title","offset","style","className","rootClassName","classNames","styles","showZero"]),{getPrefixCls:P,direction:E,badge:B}=t.useContext(s.ConfigContext),R=P("badge",g),[D,A,L]=v(R),q=j>_?`${_}+`:j,U="0"===q||0===q||"0"===b||0===b,H=null===j||U&&!M,K=(null!=p||null!=f)&&H,Q=null!=p||!U,V=y&&!U,W=V?"":q,G=(0,t.useMemo)(()=>((null==W||""===W)&&(null==b||""===b)||U&&!M)&&!V,[W,U,M,V,b]),Z=(0,t.useRef)(j);G||(Z.current=j);let J=Z.current,Y=(0,t.useRef)(W);G||(Y.current=W);let X=Y.current,ee=(0,t.useRef)(V);G||(ee.current=V);let et=(0,t.useMemo)(()=>{if(!T)return Object.assign(Object.assign({},null==B?void 0:B.style),O);let e={marginTop:T[1]};return"rtl"===E?e.left=Number.parseInt(T[0],10):e.right=-Number.parseInt(T[0],10),Object.assign(Object.assign(Object.assign({},e),null==B?void 0:B.style),O)},[E,T,O,null==B?void 0:B.style]),el=null!=w?w:"string"==typeof J||"number"==typeof J?J:void 0,ea=!G&&(0===b?M:!!b&&!0!==b),er=ea?t.createElement("span",{className:`${R}-status-text`},b):null,ei=J&&"object"==typeof J?(0,i.cloneElement)(J,e=>({style:Object.assign(Object.assign({},et),e.style)})):void 0,es=(0,r.isPresetColor)(f,!1),en=(0,l.default)(null==F?void 0:F.indicator,null==(o=null==B?void 0:B.classNames)?void 0:o.indicator,{[`${R}-status-dot`]:K,[`${R}-status-${p}`]:!!p,[`${R}-color-${f}`]:es}),eo={};f&&!es&&(eo.color=f,eo.background=f);let ed=(0,l.default)(R,{[`${R}-status`]:K,[`${R}-not-a-wrapper`]:!x,[`${R}-rtl`]:"rtl"===E},z,I,null==B?void 0:B.className,null==(d=null==B?void 0:B.classNames)?void 0:d.root,null==F?void 0:F.root,A,L);if(!x&&K&&(b||Q||!H)){let e=et.color;return D(t.createElement("span",Object.assign({},k,{className:ed,style:Object.assign(Object.assign(Object.assign({},null==$?void 0:$.root),null==(c=null==B?void 0:B.styles)?void 0:c.root),et)}),t.createElement("span",{className:en,style:Object.assign(Object.assign(Object.assign({},null==$?void 0:$.indicator),null==(u=null==B?void 0:B.styles)?void 0:u.indicator),eo)}),ea&&t.createElement("span",{style:{color:e},className:`${R}-status-text`},b)))}return D(t.createElement("span",Object.assign({ref:n},k,{className:ed,style:Object.assign(Object.assign({},null==(m=null==B?void 0:B.styles)?void 0:m.root),null==$?void 0:$.root)}),x,t.createElement(a.default,{visible:!G,motionName:`${R}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{var a,r;let i=P("scroll-number",h),s=ee.current,n=(0,l.default)(null==F?void 0:F.indicator,null==(a=null==B?void 0:B.classNames)?void 0:a.indicator,{[`${R}-dot`]:s,[`${R}-count`]:!s,[`${R}-count-sm`]:"small"===C,[`${R}-multiple-words`]:!s&&X&&X.toString().length>1,[`${R}-status-${p}`]:!!p,[`${R}-color-${f}`]:es}),o=Object.assign(Object.assign(Object.assign({},null==$?void 0:$.indicator),null==(r=null==B?void 0:B.styles)?void 0:r.indicator),et);return f&&!es&&((o=o||{}).background=f),t.createElement(N,{prefixCls:i,show:!G,motionClassName:e,className:n,count:X,title:el,style:o,key:"scrollNumber"},ei)}),er))});O.Ribbon=e=>{let{className:a,prefixCls:i,style:n,color:o,children:d,text:c,placement:u="end",rootClassName:m}=e,{getPrefixCls:g,direction:h}=t.useContext(s.ConfigContext),x=g("ribbon",i),p=`${x}-wrapper`,[b,f,j]=y(x,p),_=(0,r.isPresetColor)(o,!1),v=(0,l.default)(x,`${x}-placement-${u}`,{[`${x}-rtl`]:"rtl"===h,[`${x}-color-${o}`]:_},a),C={},w={};return o&&!_&&(C.background=o,w.color=o),b(t.createElement("div",{className:(0,l.default)(p,m,f,j)},d,t.createElement("div",{className:(0,l.default)(v,f),style:Object.assign(Object.assign({},C),n)},t.createElement("span",{className:`${x}-text`},c),t.createElement("div",{className:`${x}-corner`,style:w}))))},e.s(["Badge",0,O],906579)},785242,e=>{"use strict";var t=e.i(619273),l=e.i(266027),a=e.i(912598),r=e.i(135214),i=e.i(270345),s=e.i(243652),n=e.i(764205);let o=(0,s.createQueryKeys)("teams"),d=async(e,t,l,a={})=>{try{let r=(0,n.getProxyBaseUrl)(),i=new URLSearchParams(Object.entries({team_id:a.teamID,organization_id:a.organizationID,team_alias:a.team_alias,user_id:a.userID,page:t,page_size:l,sort_by:a.sortBy,sort_order:a.sortOrder,status:"deleted"}).filter(([,e])=>null!=e).map(([e,t])=>[e,String(t)])),s=`${r?`${r}/v2/team/list`:"/v2/team/list"}?${i}`,o=await fetch(s,{method:"GET",headers:{[(0,n.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=(0,n.deriveErrorMessage)(e);throw(0,n.handleError)(t),Error(t)}let d=await o.json();if(console.log("/team/list?status=deleted API Response:",d),d&&"object"==typeof d&&"teams"in d)return d.teams;return d}catch(e){throw console.error("Failed to list deleted teams:",e),e}},c=(0,s.createQueryKeys)("deletedTeams");e.s(["useDeletedTeams",0,(e,a,i={})=>{let{accessToken:s}=(0,r.default)();return(0,l.useQuery)({queryKey:c.list({page:e,limit:a,...i}),queryFn:async()=>await d(s,e,a,i),enabled:!!s,staleTime:3e4,placeholderData:t.keepPreviousData})},"useTeam",0,e=>{let{accessToken:t}=(0,r.default)(),i=(0,a.useQueryClient)();return(0,l.useQuery)({queryKey:o.detail(e),enabled:!!(t&&e),queryFn:async()=>{if(!t||!e)throw Error("Missing auth or teamId");return(0,n.teamInfoCall)(t,e)},initialData:()=>{if(!e)return;let t=i.getQueryData(o.list({}));return t?.find(t=>t.team_id===e)}})},"useTeams",0,()=>{let{accessToken:e,userId:t,userRole:a}=(0,r.default)();return(0,l.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,i.fetchTeams)(e,t,a,null),enabled:!!e})}])},980187,e=>{"use strict";e.s(["createTeamAliasMap",0,e=>e?e.reduce((e,t)=>(e[t.team_id]=t.team_alias,e),{}):{},"resolveTeamAliasFromTeamID",0,(e,t)=>{let l=t.find(t=>t.team_id===e);return l?l.team_alias:null}])},655913,38419,78334,54943,555436,e=>{"use strict";var t=e.i(843476),l=e.i(115504),a=e.i(311451),r=e.i(374009),i=e.i(271645);e.s(["FilterInput",0,({placeholder:e,value:s,onChange:n,icon:o,className:d})=>{let[c,u]=(0,i.useState)(s);(0,i.useEffect)(()=>{u(s)},[s]);let m=(0,i.useMemo)(()=>(0,r.default)(e=>n(e),300),[n]);(0,i.useEffect)(()=>()=>{m.cancel()},[m]);let g=(0,i.useCallback)(e=>{let t=e.target.value;u(t),m(t)},[m]);return(0,t.jsx)(a.Input,{placeholder:e,value:c,onChange:g,prefix:o?(0,t.jsx)(o,{size:16,className:"text-gray-500"}):void 0,className:(0,l.cx)("w-64",d)})}],655913);var s=e.i(906579),n=e.i(464571),o=e.i(475254);let d=(0,o.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);e.s(["FiltersButton",0,({onClick:e,active:l,hasActiveFilters:a,label:r="Filters"})=>(0,t.jsx)(s.Badge,{color:"blue",dot:a,children:(0,t.jsx)(n.Button,{type:"default",onClick:e,icon:(0,t.jsx)(d,{size:16}),className:l?"bg-gray-100":"",children:r})})],38419);let c=(0,o.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["ResetFiltersButton",0,({onClick:e,label:l="Reset Filters"})=>(0,t.jsx)(n.Button,{type:"default",onClick:e,icon:(0,t.jsx)(c,{size:16}),children:l})],78334);let u=(0,o.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["default",()=>u],54943),e.s(["Search",()=>u],555436)},846753,e=>{"use strict";let t=(0,e.i(475254).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["default",()=>t])},284614,e=>{"use strict";var t=e.i(846753);e.s(["User",()=>t.default])},109799,e=>{"use strict";var t=e.i(135214),l=e.i(764205),a=e.i(266027),r=e.i(912598);let i=(0,e.i(243652).createQueryKeys)("organizations");e.s(["useOrganization",0,e=>{let s=(0,r.useQueryClient)(),{accessToken:n}=(0,t.default)();return(0,a.useQuery)({queryKey:i.detail(e),enabled:!!(n&&e),queryFn:async()=>{if(!n||!e)throw Error("Missing auth or teamId");return(0,l.organizationInfoCall)(n,e)},initialData:()=>{if(!e)return;let t=s.getQueryData(i.list({}));return t?.find(t=>t.organization_id===e)}})},"useOrganizations",0,()=>{let{accessToken:e,userId:r,userRole:s}=(0,t.default)();return(0,a.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.organizationListCall)(e),enabled:!!(e&&r&&s)})}])},625901,e=>{"use strict";var t=e.i(266027),l=e.i(869230),a=e.i(992571),r=class extends l.QueryObserver{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,a.infiniteQueryBehavior)()})}getOptimisticResult(e){return e.behavior=(0,a.infiniteQueryBehavior)(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:l}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:s,isError:n,isRefetchError:o}=r,d=l.fetchMeta?.fetchMore?.direction,c=n&&"forward"===d,u=i&&"forward"===d,m=n&&"backward"===d,g=i&&"backward"===d;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,a.hasNextPage)(t,l.data),hasPreviousPage:(0,a.hasPreviousPage)(t,l.data),isFetchNextPageError:c,isFetchingNextPage:u,isFetchPreviousPageError:m,isFetchingPreviousPage:g,isRefetchError:o&&!c&&!m,isRefetching:s&&!u&&!g}}},i=e.i(469637),s=e.i(243652),n=e.i(764205),o=e.i(135214);let d=(0,s.createQueryKeys)("models"),c=(0,s.createQueryKeys)("modelHub"),u=(0,s.createQueryKeys)("allProxyModels");(0,s.createQueryKeys)("selectedTeamModels");let m=(0,s.createQueryKeys)("infiniteModels");e.s(["useAllProxyModels",0,()=>{let{accessToken:e,userId:l,userRole:a}=(0,o.default)();return(0,t.useQuery)({queryKey:u.list({}),queryFn:async()=>await (0,n.modelAvailableCall)(e,l,a,!0,null,!0,!1,"expand"),enabled:!!(e&&l&&a)})},"useInfiniteModelInfo",0,(e=50,t)=>{var l;let{accessToken:a,userId:s,userRole:d}=(0,o.default)();return l={queryKey:m.list({filters:{...s&&{userId:s},...d&&{userRole:d},size:e,...t&&{search:t}}}),queryFn:async({pageParam:l})=>await (0,n.modelInfoCall)(a,s,d,l,e,t),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{let{accessToken:e}=(0,o.default)();return(0,t.useQuery)({queryKey:c.list({}),queryFn:async()=>await (0,n.modelHubCall)(e),enabled:!!e})},"useModelsInfo",0,(e=1,l=50,a,r,i,s,c)=>{let{accessToken:u,userId:m,userRole:g}=(0,o.default)();return(0,t.useQuery)({queryKey:d.list({filters:{...m&&{userId:m},...g&&{userRole:g},page:e,size:l,...a&&{search:a},...r&&{modelId:r},...i&&{teamId:i},...s&&{sortBy:s},...c&&{sortOrder:c}}}),queryFn:async()=>await (0,n.modelInfoCall)(u,m,g,e,l,a,r,i,s,c),enabled:!!(u&&m&&g)})}],625901)},907308,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(212931),r=e.i(808613),i=e.i(464571),s=e.i(199133),n=e.i(592968),o=e.i(374009),d=e.i(764205);e.s(["default",0,({isVisible:e,onCancel:c,onSubmit:u,accessToken:m,title:g="Add Team Member",roles:h=[{label:"admin",value:"admin",description:"Admin role. Can create team keys, add members, and manage settings."},{label:"user",value:"user",description:"User role. Can view team info, but not manage it."}],defaultRole:x="user"})=>{let[p]=r.Form.useForm(),[b,f]=(0,l.useState)([]),[j,_]=(0,l.useState)(!1),[v,y]=(0,l.useState)("user_email"),C=async(e,t)=>{if(!e)return void f([]);_(!0);try{let l=new URLSearchParams;if(l.append(t,e),null==m)return;let a=(await (0,d.userFilterUICall)(m,l)).map(e=>({label:"user_email"===t?`${e.user_email}`:`${e.user_id}`,value:"user_email"===t?e.user_email:e.user_id,user:e}));f(a)}catch(e){console.error("Error fetching users:",e)}finally{_(!1)}},w=(0,l.useCallback)((0,o.default)((e,t)=>C(e,t),300),[]),T=(e,t)=>{y(t),w(e,t)},N=(e,t)=>{let l=t.user;p.setFieldsValue({user_email:l.user_email,user_id:l.user_id,role:p.getFieldValue("role")})};return(0,t.jsx)(a.Modal,{title:g,open:e,onCancel:()=>{p.resetFields(),f([]),c()},footer:null,width:800,children:(0,t.jsxs)(r.Form,{form:p,onFinish:u,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",initialValues:{role:x},children:[(0,t.jsx)(r.Form.Item,{label:"Email",name:"user_email",className:"mb-4",children:(0,t.jsx)(s.Select,{showSearch:!0,className:"w-full",placeholder:"Search by email",filterOption:!1,onSearch:e=>T(e,"user_email"),onSelect:(e,t)=>N(e,t),options:"user_email"===v?b:[],loading:j,allowClear:!0})}),(0,t.jsx)("div",{className:"text-center mb-4",children:"OR"}),(0,t.jsx)(r.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(s.Select,{showSearch:!0,className:"w-full",placeholder:"Search by user ID",filterOption:!1,onSearch:e=>T(e,"user_id"),onSelect:(e,t)=>N(e,t),options:"user_id"===v?b:[],loading:j,allowClear:!0})}),(0,t.jsx)(r.Form.Item,{label:"Member Role",name:"role",className:"mb-4",children:(0,t.jsx)(s.Select,{defaultValue:x,children:h.map(e=>(0,t.jsx)(s.Select.Option,{value:e.value,children:(0,t.jsxs)(n.Tooltip,{title:e.description,children:[(0,t.jsx)("span",{className:"font-medium",children:e.label}),(0,t.jsxs)("span",{className:"ml-2 text-gray-500 text-sm",children:["- ",e.description]})]})},e.value))})}),(0,t.jsx)("div",{className:"text-right mt-4",children:(0,t.jsx)(i.Button,{type:"default",htmlType:"submit",children:"Add Member"})})]})})}])},162386,e=>{"use strict";var t=e.i(843476),l=e.i(625901),a=e.i(109799),r=e.i(785242),i=e.i(738014),s=e.i(199133),n=e.i(981339),o=e.i(592968);let d={label:"All Proxy Models",value:"all-proxy-models"},c={label:"No Default Models",value:"no-default-models"},u=[d,c],m={user:({allProxyModels:e,userModels:t,options:l})=>t&&l?.includeUserModels?t:[],team:({allProxyModels:e,selectedOrganization:t,userModels:l})=>t?t.models.includes(d.value)||0===t.models.length?e:e.filter(e=>t.models.includes(e)):e??[],organization:({allProxyModels:e})=>e,global:({allProxyModels:e})=>e};e.s(["ModelSelect",0,e=>{let{teamID:g,organizationID:h,options:x,context:p,dataTestId:b,value:f=[],onChange:j,style:_}=e,{includeUserModels:v,showAllTeamModelsOption:y,showAllProxyModelsOverride:C,includeSpecialOptions:w}=x||{},{data:T,isLoading:N}=(0,l.useAllProxyModels)(),{data:S,isLoading:O}=(0,r.useTeam)(g),{data:z,isLoading:I}=(0,a.useOrganization)(h),{data:F,isLoading:$}=(0,i.useCurrentUser)(),M=e=>u.some(t=>t.value===e),k=f.some(M),P=z?.models.includes(d.value)||z?.models.length===0;if(N||O||I||$)return(0,t.jsx)(n.Skeleton.Input,{active:!0,block:!0});let{wildcard:E,regular:B}=(e=>{let t=[],l=[];for(let a of e)a.endsWith("/*")?t.push(a):l.push(a);return{wildcard:t,regular:l}})(((e,t,l)=>{let a=Array.from(new Map(e.map(e=>[e.id,e])).values()).map(e=>e.id);if(t.options?.showAllProxyModelsOverride)return a;let r=m[t.context];return r?r({allProxyModels:a,...l,options:t.options}):[]})(T?.data??[],e,{selectedTeam:S,selectedOrganization:z,userModels:F?.models}));return(0,t.jsx)(s.Select,{"data-testid":b,value:f,onChange:e=>{let t=e.filter(M);j(t.length>0?[t[t.length-1]]:e)},style:_,options:[w?{label:(0,t.jsx)("span",{children:"Special Options"}),title:"Special Options",options:[...C||P&&w||"global"===p?[{label:(0,t.jsx)("span",{children:"All Proxy Models"}),value:d.value,disabled:f.length>0&&f.some(e=>M(e)&&e!==d.value),key:d.value}]:[],{label:(0,t.jsx)("span",{children:"No Default Models"}),value:c.value,disabled:f.length>0&&f.some(e=>M(e)&&e!==c.value),key:c.value}]}:[],...E.length>0?[{label:(0,t.jsx)("span",{children:"Wildcard Options"}),title:"Wildcard Options",options:E.map(e=>{let l=e.replace("/*",""),a=l.charAt(0).toUpperCase()+l.slice(1);return{label:(0,t.jsx)("span",{children:`All ${a} models`}),value:e,disabled:k}})}]:[],{label:(0,t.jsx)("span",{children:"Models"}),title:"Models",options:B.map(e=>({label:(0,t.jsx)("span",{children:e}),value:e,disabled:k}))}],mode:"multiple",placeholder:"Select Models",allowClear:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(o.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})})})}],162386)},276173,e=>{"use strict";var t=e.i(843476),l=e.i(599724),a=e.i(779241),r=e.i(464571),i=e.i(808613),s=e.i(212931),n=e.i(199133),o=e.i(271645),d=e.i(435451);e.s(["default",0,({visible:e,onCancel:c,onSubmit:u,initialData:m,mode:g,config:h})=>{let x,[p]=i.Form.useForm(),[b,f]=(0,o.useState)(!1);console.log("Initial Data:",m),(0,o.useEffect)(()=>{if(e)if("edit"===g&&m){let e={...m,role:m.role||h.defaultRole,max_budget_in_team:m.max_budget_in_team||null,tpm_limit:m.tpm_limit||null,rpm_limit:m.rpm_limit||null};console.log("Setting form values:",e),p.setFieldsValue(e)}else p.resetFields(),p.setFieldsValue({role:h.defaultRole||h.roleOptions[0]?.value})},[e,m,g,p,h.defaultRole,h.roleOptions]);let j=async e=>{try{f(!0);let t=Object.entries(e).reduce((e,[t,l])=>{if("string"==typeof l){let a=l.trim();return""===a&&("max_budget_in_team"===t||"tpm_limit"===t||"rpm_limit"===t)?{...e,[t]:null}:{...e,[t]:a}}return{...e,[t]:l}},{});console.log("Submitting form data:",t),await Promise.resolve(u(t)),p.resetFields()}catch(e){console.error("Form submission error:",e)}finally{f(!1)}};return(0,t.jsx)(s.Modal,{title:h.title||("add"===g?"Add Member":"Edit Member"),open:e,width:1e3,footer:null,onCancel:c,children:(0,t.jsxs)(i.Form,{form:p,onFinish:j,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[h.showEmail&&(0,t.jsx)(i.Form.Item,{label:"Email",name:"user_email",className:"mb-4",rules:[{type:"email",message:"Please enter a valid email!"}],children:(0,t.jsx)(a.TextInput,{placeholder:"user@example.com"})}),h.showEmail&&h.showUserId&&(0,t.jsx)("div",{className:"text-center mb-4",children:(0,t.jsx)(l.Text,{children:"OR"})}),h.showUserId&&(0,t.jsx)(i.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(a.TextInput,{placeholder:"user_123"})}),(0,t.jsx)(i.Form.Item,{label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"Role"}),"edit"===g&&m&&(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["(Current: ",(x=m.role,h.roleOptions.find(e=>e.value===x)?.label||x),")"]})]}),name:"role",className:"mb-4",rules:[{required:!0,message:"Please select a role!"}],children:(0,t.jsx)(n.Select,{children:"edit"===g&&m?[...h.roleOptions.filter(e=>e.value===m.role),...h.roleOptions.filter(e=>e.value!==m.role)].map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value)):h.roleOptions.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))})}),h.additionalFields?.map(e=>(0,t.jsx)(i.Form.Item,{label:e.label,name:e.name,className:"mb-4",rules:e.rules,children:(e=>{switch(e.type){case"input":return(0,t.jsx)(a.TextInput,{placeholder:e.placeholder});case"numerical":return(0,t.jsx)(d.default,{step:e.step||1,min:e.min||0,style:{width:"100%"},placeholder:e.placeholder||"Enter a numerical value"});case"select":return(0,t.jsx)(n.Select,{children:e.options?.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))});default:return null}})(e)},e.name)),(0,t.jsxs)("div",{className:"text-right mt-6",children:[(0,t.jsx)(r.Button,{onClick:c,className:"mr-2",disabled:b,children:"Cancel"}),(0,t.jsx)(r.Button,{type:"default",htmlType:"submit",loading:b,children:"add"===g?b?"Adding...":"Add Member":b?"Saving...":"Save Changes"})]})]})})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/2fdd60613421a228.js b/litellm/proxy/_experimental/out/_next/static/chunks/2fdd60613421a228.js new file mode 100644 index 00000000000..8001fbc422a --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/2fdd60613421a228.js @@ -0,0 +1,8 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},983561,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"robot",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["RobotOutlined",0,o],983561)},992619,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(779241),l=e.i(599724),o=e.i(199133),i=e.i(983561),n=e.i(689020);e.s(["default",0,({accessToken:e,value:s,placeholder:d="Select a Model",onChange:c,disabled:m=!1,style:u,className:g,showLabel:f=!0,labelText:b="Select Model"})=>{let[h,p]=(0,r.useState)(s),[C,x]=(0,r.useState)(!1),[v,k]=(0,r.useState)([]),w=(0,r.useRef)(null);return(0,r.useEffect)(()=>{p(s)},[s]),(0,r.useEffect)(()=>{e&&(async()=>{try{let t=await (0,n.fetchAvailableModels)(e);console.log("Fetched models for selector:",t),t.length>0&&k(t)}catch(e){console.error("Error fetching model info:",e)}})()},[e]),(0,t.jsxs)("div",{children:[f&&(0,t.jsxs)(l.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(i.RobotOutlined,{className:"mr-2"})," ",b]}),(0,t.jsx)(o.Select,{value:h,placeholder:d,onChange:e=>{"custom"===e?(x(!0),p(void 0)):(x(!1),p(e),c&&c(e))},options:[...Array.from(new Set(v.map(e=>e.model_group))).map((e,t)=>({value:e,label:e,key:t})),{value:"custom",label:"Enter custom model",key:"custom"}],style:{width:"100%",...u},showSearch:!0,className:`rounded-md ${g||""}`,disabled:m}),C&&(0,t.jsx)(a.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{p(e),c&&c(e)},500)},disabled:m})]})}])},797672,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))});e.s(["PencilIcon",0,r],797672)},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),l=e.i(673706),o=e.i(271645);let i=o.default.forwardRef((e,i)=>{let{color:n,children:s,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return o.default.createElement("p",Object.assign({ref:i,className:(0,a.tremorTwMerge)("font-medium text-tremor-title",n?(0,l.getColorClassNames)(n,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),s)});i.displayName="Title",e.s(["Title",()=>i],629569)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:i,className:n,children:s}=e;return l.default.createElement("p",{ref:o,className:(0,r.tremorTwMerge)("text-tremor-default",i?(0,a.getColorClassNames)(i,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),n)},s)});o.displayName="Text",e.s(["default",()=>o],936325),e.s(["Text",()=>o],599724)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),o=e.i(444755),i=e.i(673706);let n=(0,i.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:m,className:u}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(n("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,i.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),u)},g),m)});s.displayName="Card",e.s(["Card",()=>s],304967)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],o=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),i=e=>e?6:5,n=(e,t,r,a,l)=>{clearTimeout(a.current);let i=o(e);t(i),r.current=i,l&&l({current:i})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var u=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},f=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,u.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},b=(0,c.makeClassName)("Button"),h=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:o,transitionStatus:i})=>{let n=o?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),u={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(m,{className:(0,d.tremorTwMerge)(b("icon"),"animate-spin shrink-0",n,u.default,u[i]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(b("icon"),"shrink-0",t,n)})},p=a.default.forwardRef((e,l)=>{let{icon:m,iconPosition:u=s.HorizontalPositions.Left,size:p=s.Sizes.SM,color:C,variant:x="primary",disabled:v,loading:k=!1,loadingText:w,children:$,tooltip:N,className:y}=e,T=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),j=k||v,E=void 0!==m||k,O=k&&w,M=!(!$&&!O),S=(0,d.tremorTwMerge)(g[p].height,g[p].width),z="light"!==x?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",R=f(x,C),B=("light"!==x?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[p],{tooltipProps:P,getReferenceProps:q}=(0,r.useTooltip)(300),[H,_]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:u}={})=>{let[g,f]=(0,a.useState)(()=>o(d?2:i(c))),b=(0,a.useRef)(g),h=(0,a.useRef)(0),[p,C]="object"==typeof s?[s.enter,s.exit]:[s,s],x=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return i(t)}})(b.current._s,m);e&&n(e,f,b,h,u)},[u,m]);return[g,(0,a.useCallback)(a=>{let o=e=>{switch(n(e,f,b,h,u),e){case 1:p>=0&&(h.current=((...e)=>setTimeout(...e))(x,p));break;case 4:C>=0&&(h.current=((...e)=>setTimeout(...e))(x,C));break;case 0:case 3:h.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||o(e+1)},0)}},s=b.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||o(e?+!r:2):s&&o(t?l?3:4:i(m))},[x,u,e,t,r,l,p,C,m]),x]})({timeout:50});return(0,a.useEffect)(()=>{_(k)},[k]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,P.refs.setReference]),className:(0,d.tremorTwMerge)(b("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",z,B.paddingX,B.paddingY,B.fontSize,R.textColor,R.bgColor,R.borderColor,R.hoverBorderColor,j?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(f(x,C).hoverTextColor,f(x,C).hoverBgColor,f(x,C).hoverBorderColor),y),disabled:j},q,T),a.default.createElement(r.default,Object.assign({text:N},P)),E&&u!==s.HorizontalPositions.Right?a.default.createElement(h,{loading:k,iconSize:S,iconPosition:u,Icon:m,transitionStatus:H.status,needMargin:M}):null,O||$?a.default.createElement("span",{className:(0,d.tremorTwMerge)(b("text"),"text-tremor-default whitespace-nowrap")},O?w:$):null,E&&u===s.HorizontalPositions.Right?a.default.createElement(h,{loading:k,iconSize:S,iconPosition:u,Icon:m,transitionStatus:H.status,needMargin:M}):null)});p.displayName="Button",e.s(["Button",()=>p],994388)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let o=e=>{let{prefixCls:a,className:l,style:o,size:i,shape:n}=e,s=(0,r.default)({[`${a}-lg`]:"large"===i,[`${a}-sm`]:"small"===i}),d=(0,r.default)({[`${a}-circle`]:"circle"===n,[`${a}-square`]:"square"===n,[`${a}-round`]:"round"===n}),c=t.useMemo(()=>"number"==typeof i?{width:i,height:i,lineHeight:`${i}px`}:{},[i]);return t.createElement("span",{className:(0,r.default)(a,s,d,l),style:Object.assign(Object.assign({},c),o)})};e.i(296059);var i=e.i(694758),n=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new i.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,n.unit)(e)}),u=e=>Object.assign({width:e},m(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),f=e=>Object.assign({width:e},m(e)),b=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},h=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),p=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:o,skeletonInputCls:i,skeletonImageCls:n,controlHeight:s,controlHeightLG:d,controlHeightSM:m,gradientFromColor:p,padding:C,marginSM:x,borderRadius:v,titleHeight:k,blockRadius:w,paragraphLiHeight:$,controlHeightXS:N,paragraphMarginTop:y}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:p},u(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},u(d)),[`${r}-sm`]:Object.assign({},u(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:k,background:p,borderRadius:w,[`+ ${l}`]:{marginBlockStart:m}},[l]:{padding:0,"> li":{width:"100%",height:$,listStyle:"none",background:p,borderRadius:w,"+ li":{marginBlockStart:N}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:v}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:x,[`+ ${l}`]:{marginBlockStart:y}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:i,calc:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:t,width:n(a).mul(2).equal(),minWidth:n(a).mul(2).equal()},h(a,n))},b(e,a,r)),{[`${r}-lg`]:Object.assign({},h(l,n))}),b(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},h(o,n))}),b(e,o,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},u(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},u(l)),[`${t}${t}-sm`]:Object.assign({},u(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:i,calc:n}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:r},g(t,n)),[`${a}-lg`]:Object.assign({},g(l,n)),[`${a}-sm`]:Object.assign({},g(o,n))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},f(o(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},f(r)),{maxWidth:o(r).mul(4).equal(),maxHeight:o(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[i]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${a}, + ${l} > li, + ${r}, + ${o}, + ${i}, + ${n} + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:l,style:o,rows:i=0}=e,n=Array.from({length:i}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:o},n)},x=({prefixCls:e,className:a,width:l,style:o})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},o)});function v(e){return e&&"object"==typeof e?e:{}}let k=e=>{let{prefixCls:l,loading:i,className:n,rootClassName:s,style:d,children:c,avatar:m=!1,title:u=!0,paragraph:g=!0,active:f,round:b}=e,{getPrefixCls:h,direction:k,className:w,style:$}=(0,a.useComponentConfig)("skeleton"),N=h("skeleton",l),[y,T,j]=p(N);if(i||!("loading"in e)){let e,a,l=!!m,i=!!u,c=!!g;if(l){let r=Object.assign(Object.assign({prefixCls:`${N}-avatar`},i&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),v(m));e=t.createElement("div",{className:`${N}-header`},t.createElement(o,Object.assign({},r)))}if(i||c){let e,r;if(i){let r=Object.assign(Object.assign({prefixCls:`${N}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),v(u));e=t.createElement(x,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${N}-paragraph`},(e={},l&&i||(e.width="61%"),!l&&i?e.rows=3:e.rows=2,e)),v(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${N}-content`},e,r)}let h=(0,r.default)(N,{[`${N}-with-avatar`]:l,[`${N}-active`]:f,[`${N}-rtl`]:"rtl"===k,[`${N}-round`]:b},w,n,s,T,j);return y(t.createElement("div",{className:h,style:Object.assign(Object.assign({},$),d)},e,a))}return null!=c?c:null};k.Button=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-button`,size:m},C))))},k.Avatar=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls","className"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:m},C))))},k.Input=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,block:c,size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-input`,size:m},C))))},k.Image=e=>{let{prefixCls:l,className:o,rootClassName:i,style:n,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[m,u,g]=p(c),f=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},o,i,u,g);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${c}-image`,o),style:n},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},k.Node=e=>{let{prefixCls:l,className:o,rootClassName:i,style:n,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),m=c("skeleton",l),[u,g,f]=p(m),b=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:s},g,o,i,f);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${m}-image`,o),style:n},d)))},e.s(["default",0,k],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["default",0,o],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",n)},r.default.createElement("table",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),i))});o.displayName="Table",e.s(["Table",()=>o],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",n)},s),i))});o.displayName="TableHead",e.s(["TableHead",()=>o],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",n)},s),i))});o.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>o],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("row"),n)},s),i))});o.displayName="TableRow",e.s(["TableRow",()=>o],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",n)},s),i))});o.displayName="TableCell",e.s(["TableCell",()=>o],977572)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",n)},s),i))});o.displayName="TableBody",e.s(["TableBody",()=>o],942232)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",()=>t])},981339,e=>{"use strict";var t=e.i(185793);e.s(["Skeleton",()=>t.default])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],678745),e.s(["CheckIcon",()=>t],678784)},500330,e=>{"use strict";var t=e.i(727749);function r(e,t){let r=structuredClone(e);for(let[e,a]of Object.entries(t))e in r&&(r[e]=a);return r}let a=(e,t=0,r=!1,a=!0)=>{if(null==e||!Number.isFinite(e)||0===e&&!a)return"-";let l={minimumFractionDigits:t,maximumFractionDigits:t};if(!r)return e.toLocaleString("en-US",l);let o=e<0?"-":"",i=Math.abs(e),n=i,s="";return i>=1e6?(n=i/1e6,s="M"):i>=1e3&&(n=i/1e3,s="K"),`${o}${n.toLocaleString("en-US",l)}${s}`},l=async(e,r="Copied to clipboard")=>{if(!e)return!1;if(!navigator||!navigator.clipboard||!navigator.clipboard.writeText)return o(e,r);try{return await navigator.clipboard.writeText(e),t.default.success(r),!0}catch(t){return console.error("Clipboard API failed: ",t),o(e,r)}},o=(e,r)=>{try{let a=document.createElement("textarea");a.value=e,a.style.position="fixed",a.style.left="-999999px",a.style.top="-999999px",a.setAttribute("readonly",""),document.body.appendChild(a),a.focus(),a.select();let l=document.execCommand("copy");if(document.body.removeChild(a),l)return t.default.success(r),!0;throw Error("execCommand failed")}catch(e){return t.default.fromBackend("Failed to copy to clipboard"),console.error("Failed to copy: ",e),!1}};e.s(["copyToClipboard",0,l,"formatNumberWithCommas",0,a,"getSpendString",0,(e,t=6)=>{if(null==e||!Number.isFinite(e)||0===e)return"-";let r=a(e,t,!1,!1);if(0===Number(r.replace(/,/g,""))){let e=(1/10**t).toFixed(t);return`< $${e}`}return`$${r}`},"updateExistingKeys",()=>r])},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3014691f-ba91873bc8fe3fad.js b/litellm/proxy/_experimental/out/_next/static/chunks/3014691f-ba91873bc8fe3fad.js deleted file mode 100644 index 7c0c47c8894..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/3014691f-ba91873bc8fe3fad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3665],{84566:function(e,t,s){s.d(t,{GH$:function(){return l}});var c=s(2265);let l=({color:e="currentColor",size:t=24,className:s,...l})=>c.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:t,height:t,fill:e,...l,className:"remixicon "+(s||"")},c.createElement("path",{d:"M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM17.4571 9.45711L16.0429 8.04289L11 13.0858L8.20711 10.2929L6.79289 11.7071L11 15.9142L17.4571 9.45711Z"}))}}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/315cda92f466b9ec.js b/litellm/proxy/_experimental/out/_next/static/chunks/315cda92f466b9ec.js new file mode 100644 index 00000000000..41cb66a2b5f --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/315cda92f466b9ec.js @@ -0,0 +1,8 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},983561,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"robot",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["RobotOutlined",0,o],983561)},992619,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(779241),l=e.i(599724),o=e.i(199133),i=e.i(983561),n=e.i(689020);e.s(["default",0,({accessToken:e,value:s,placeholder:d="Select a Model",onChange:c,disabled:m=!1,style:u,className:g,showLabel:f=!0,labelText:b="Select Model"})=>{let[h,p]=(0,r.useState)(s),[C,x]=(0,r.useState)(!1),[v,k]=(0,r.useState)([]),w=(0,r.useRef)(null);return(0,r.useEffect)(()=>{p(s)},[s]),(0,r.useEffect)(()=>{e&&(async()=>{try{let t=await (0,n.fetchAvailableModels)(e);console.log("Fetched models for selector:",t),t.length>0&&k(t)}catch(e){console.error("Error fetching model info:",e)}})()},[e]),(0,t.jsxs)("div",{children:[f&&(0,t.jsxs)(l.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(i.RobotOutlined,{className:"mr-2"})," ",b]}),(0,t.jsx)(o.Select,{value:h,placeholder:d,onChange:e=>{"custom"===e?(x(!0),p(void 0)):(x(!1),p(e),c&&c(e))},options:[...Array.from(new Set(v.map(e=>e.model_group))).map((e,t)=>({value:e,label:e,key:t})),{value:"custom",label:"Enter custom model",key:"custom"}],style:{width:"100%",...u},showSearch:!0,className:`rounded-md ${g||""}`,disabled:m}),C&&(0,t.jsx)(a.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{p(e),c&&c(e)},500)},disabled:m})]})}])},797672,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))});e.s(["PencilIcon",0,r],797672)},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),l=e.i(673706),o=e.i(271645);let i=o.default.forwardRef((e,i)=>{let{color:n,children:s,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return o.default.createElement("p",Object.assign({ref:i,className:(0,a.tremorTwMerge)("font-medium text-tremor-title",n?(0,l.getColorClassNames)(n,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),s)});i.displayName="Title",e.s(["Title",()=>i],629569)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:i,className:n,children:s}=e;return l.default.createElement("p",{ref:o,className:(0,r.tremorTwMerge)("text-tremor-default",i?(0,a.getColorClassNames)(i,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),n)},s)});o.displayName="Text",e.s(["default",()=>o],936325),e.s(["Text",()=>o],599724)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),o=e.i(444755),i=e.i(673706);let n=(0,i.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:m,className:u}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(n("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,i.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),u)},g),m)});s.displayName="Card",e.s(["Card",()=>s],304967)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],o=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),i=e=>e?6:5,n=(e,t,r,a,l)=>{clearTimeout(a.current);let i=o(e);t(i),r.current=i,l&&l({current:i})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var u=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},f=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,u.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},b=(0,c.makeClassName)("Button"),h=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:o,transitionStatus:i})=>{let n=o?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),u={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(m,{className:(0,d.tremorTwMerge)(b("icon"),"animate-spin shrink-0",n,u.default,u[i]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(b("icon"),"shrink-0",t,n)})},p=a.default.forwardRef((e,l)=>{let{icon:m,iconPosition:u=s.HorizontalPositions.Left,size:p=s.Sizes.SM,color:C,variant:x="primary",disabled:v,loading:k=!1,loadingText:w,children:$,tooltip:N,className:y}=e,T=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),j=k||v,E=void 0!==m||k,O=k&&w,M=!(!$&&!O),S=(0,d.tremorTwMerge)(g[p].height,g[p].width),z="light"!==x?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",R=f(x,C),B=("light"!==x?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[p],{tooltipProps:P,getReferenceProps:q}=(0,r.useTooltip)(300),[H,_]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:u}={})=>{let[g,f]=(0,a.useState)(()=>o(d?2:i(c))),b=(0,a.useRef)(g),h=(0,a.useRef)(0),[p,C]="object"==typeof s?[s.enter,s.exit]:[s,s],x=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return i(t)}})(b.current._s,m);e&&n(e,f,b,h,u)},[u,m]);return[g,(0,a.useCallback)(a=>{let o=e=>{switch(n(e,f,b,h,u),e){case 1:p>=0&&(h.current=((...e)=>setTimeout(...e))(x,p));break;case 4:C>=0&&(h.current=((...e)=>setTimeout(...e))(x,C));break;case 0:case 3:h.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||o(e+1)},0)}},s=b.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||o(e?+!r:2):s&&o(t?l?3:4:i(m))},[x,u,e,t,r,l,p,C,m]),x]})({timeout:50});return(0,a.useEffect)(()=>{_(k)},[k]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,P.refs.setReference]),className:(0,d.tremorTwMerge)(b("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",z,B.paddingX,B.paddingY,B.fontSize,R.textColor,R.bgColor,R.borderColor,R.hoverBorderColor,j?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(f(x,C).hoverTextColor,f(x,C).hoverBgColor,f(x,C).hoverBorderColor),y),disabled:j},q,T),a.default.createElement(r.default,Object.assign({text:N},P)),E&&u!==s.HorizontalPositions.Right?a.default.createElement(h,{loading:k,iconSize:S,iconPosition:u,Icon:m,transitionStatus:H.status,needMargin:M}):null,O||$?a.default.createElement("span",{className:(0,d.tremorTwMerge)(b("text"),"text-tremor-default whitespace-nowrap")},O?w:$):null,E&&u===s.HorizontalPositions.Right?a.default.createElement(h,{loading:k,iconSize:S,iconPosition:u,Icon:m,transitionStatus:H.status,needMargin:M}):null)});p.displayName="Button",e.s(["Button",()=>p],994388)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let o=e=>{let{prefixCls:a,className:l,style:o,size:i,shape:n}=e,s=(0,r.default)({[`${a}-lg`]:"large"===i,[`${a}-sm`]:"small"===i}),d=(0,r.default)({[`${a}-circle`]:"circle"===n,[`${a}-square`]:"square"===n,[`${a}-round`]:"round"===n}),c=t.useMemo(()=>"number"==typeof i?{width:i,height:i,lineHeight:`${i}px`}:{},[i]);return t.createElement("span",{className:(0,r.default)(a,s,d,l),style:Object.assign(Object.assign({},c),o)})};e.i(296059);var i=e.i(694758),n=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new i.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,n.unit)(e)}),u=e=>Object.assign({width:e},m(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),f=e=>Object.assign({width:e},m(e)),b=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},h=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),p=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:o,skeletonInputCls:i,skeletonImageCls:n,controlHeight:s,controlHeightLG:d,controlHeightSM:m,gradientFromColor:p,padding:C,marginSM:x,borderRadius:v,titleHeight:k,blockRadius:w,paragraphLiHeight:$,controlHeightXS:N,paragraphMarginTop:y}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:p},u(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},u(d)),[`${r}-sm`]:Object.assign({},u(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:k,background:p,borderRadius:w,[`+ ${l}`]:{marginBlockStart:m}},[l]:{padding:0,"> li":{width:"100%",height:$,listStyle:"none",background:p,borderRadius:w,"+ li":{marginBlockStart:N}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:v}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:x,[`+ ${l}`]:{marginBlockStart:y}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:i,calc:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:t,width:n(a).mul(2).equal(),minWidth:n(a).mul(2).equal()},h(a,n))},b(e,a,r)),{[`${r}-lg`]:Object.assign({},h(l,n))}),b(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},h(o,n))}),b(e,o,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},u(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},u(l)),[`${t}${t}-sm`]:Object.assign({},u(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:i,calc:n}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:r},g(t,n)),[`${a}-lg`]:Object.assign({},g(l,n)),[`${a}-sm`]:Object.assign({},g(o,n))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},f(o(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},f(r)),{maxWidth:o(r).mul(4).equal(),maxHeight:o(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[i]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${a}, + ${l} > li, + ${r}, + ${o}, + ${i}, + ${n} + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:l,style:o,rows:i=0}=e,n=Array.from({length:i}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:o},n)},x=({prefixCls:e,className:a,width:l,style:o})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},o)});function v(e){return e&&"object"==typeof e?e:{}}let k=e=>{let{prefixCls:l,loading:i,className:n,rootClassName:s,style:d,children:c,avatar:m=!1,title:u=!0,paragraph:g=!0,active:f,round:b}=e,{getPrefixCls:h,direction:k,className:w,style:$}=(0,a.useComponentConfig)("skeleton"),N=h("skeleton",l),[y,T,j]=p(N);if(i||!("loading"in e)){let e,a,l=!!m,i=!!u,c=!!g;if(l){let r=Object.assign(Object.assign({prefixCls:`${N}-avatar`},i&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),v(m));e=t.createElement("div",{className:`${N}-header`},t.createElement(o,Object.assign({},r)))}if(i||c){let e,r;if(i){let r=Object.assign(Object.assign({prefixCls:`${N}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),v(u));e=t.createElement(x,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${N}-paragraph`},(e={},l&&i||(e.width="61%"),!l&&i?e.rows=3:e.rows=2,e)),v(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${N}-content`},e,r)}let h=(0,r.default)(N,{[`${N}-with-avatar`]:l,[`${N}-active`]:f,[`${N}-rtl`]:"rtl"===k,[`${N}-round`]:b},w,n,s,T,j);return y(t.createElement("div",{className:h,style:Object.assign(Object.assign({},$),d)},e,a))}return null!=c?c:null};k.Button=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-button`,size:m},C))))},k.Avatar=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls","className"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:m},C))))},k.Input=e=>{let{prefixCls:i,className:n,rootClassName:s,active:d,block:c,size:m="default"}=e,{getPrefixCls:u}=t.useContext(a.ConfigContext),g=u("skeleton",i),[f,b,h]=p(g),C=(0,l.default)(e,["prefixCls"]),x=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},n,s,b,h);return f(t.createElement("div",{className:x},t.createElement(o,Object.assign({prefixCls:`${g}-input`,size:m},C))))},k.Image=e=>{let{prefixCls:l,className:o,rootClassName:i,style:n,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[m,u,g]=p(c),f=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},o,i,u,g);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${c}-image`,o),style:n},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},k.Node=e=>{let{prefixCls:l,className:o,rootClassName:i,style:n,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),m=c("skeleton",l),[u,g,f]=p(m),b=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:s},g,o,i,f);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${m}-image`,o),style:n},d)))},e.s(["default",0,k],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["default",0,o],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",n)},r.default.createElement("table",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),i))});o.displayName="Table",e.s(["Table",()=>o],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",n)},s),i))});o.displayName="TableHead",e.s(["TableHead",()=>o],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",n)},s),i))});o.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>o],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",n)},s),i))});o.displayName="TableBody",e.s(["TableBody",()=>o],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("row"),n)},s),i))});o.displayName="TableRow",e.s(["TableRow",()=>o],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),o=r.default.forwardRef((e,o)=>{let{children:i,className:n}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",n)},s),i))});o.displayName="TableCell",e.s(["TableCell",()=>o],977572)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",()=>t])},981339,e=>{"use strict";var t=e.i(185793);e.s(["Skeleton",()=>t.default])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],678745),e.s(["CheckIcon",()=>t],678784)},500330,e=>{"use strict";var t=e.i(727749);function r(e,t){let r=structuredClone(e);for(let[e,a]of Object.entries(t))e in r&&(r[e]=a);return r}let a=(e,t=0,r=!1,a=!0)=>{if(null==e||!Number.isFinite(e)||0===e&&!a)return"-";let l={minimumFractionDigits:t,maximumFractionDigits:t};if(!r)return e.toLocaleString("en-US",l);let o=e<0?"-":"",i=Math.abs(e),n=i,s="";return i>=1e6?(n=i/1e6,s="M"):i>=1e3&&(n=i/1e3,s="K"),`${o}${n.toLocaleString("en-US",l)}${s}`},l=async(e,r="Copied to clipboard")=>{if(!e)return!1;if(!navigator||!navigator.clipboard||!navigator.clipboard.writeText)return o(e,r);try{return await navigator.clipboard.writeText(e),t.default.success(r),!0}catch(t){return console.error("Clipboard API failed: ",t),o(e,r)}},o=(e,r)=>{try{let a=document.createElement("textarea");a.value=e,a.style.position="fixed",a.style.left="-999999px",a.style.top="-999999px",a.setAttribute("readonly",""),document.body.appendChild(a),a.focus(),a.select();let l=document.execCommand("copy");if(document.body.removeChild(a),l)return t.default.success(r),!0;throw Error("execCommand failed")}catch(e){return t.default.fromBackend("Failed to copy to clipboard"),console.error("Failed to copy: ",e),!1}};e.s(["copyToClipboard",0,l,"formatNumberWithCommas",0,a,"getSpendString",0,(e,t=6)=>{if(null==e||!Number.isFinite(e)||0===e)return"-";let r=a(e,t,!1,!1);if(0===Number(r.replace(/,/g,""))){let e=(1/10**t).toFixed(t);return`< $${e}`}return`$${r}`},"updateExistingKeys",()=>r])},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/33b32c9f63756046.js b/litellm/proxy/_experimental/out/_next/static/chunks/33b32c9f63756046.js deleted file mode 100644 index edfd768f325..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/33b32c9f63756046.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,438957,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z"}}]},name:"key",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["KeyOutlined",0,i],438957)},210612,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["DatabaseOutlined",0,i],210612)},232164,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z"}}]},name:"tags",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TagsOutlined",0,i],232164)},218129,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ApiOutlined",0,i],218129)},366308,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ToolOutlined",0,i],366308)},313603,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["SettingOutlined",0,i],313603)},531278,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],531278)},788191,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["PlayCircleOutlined",0,i],788191)},19732,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"}}]},name:"experiment",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["ExperimentOutlined",0,i],19732)},299251,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z"}}]},name:"bank",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BankOutlined",0,i],299251)},153702,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z"}}]},name:"bar-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BarChartOutlined",0,i],153702)},777579,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"}}]},name:"line-chart",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["LineChartOutlined",0,i],777579)},645526,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z"}}]},name:"team",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["TeamOutlined",0,i],645526)},477189,457202,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["AppstoreOutlined",0,i],477189);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z"}}]},name:"audit",theme:"outlined"};var c=a.forwardRef(function(e,s){return a.createElement(r.default,(0,t.default)({},e,{ref:s,icon:l}))});e.s(["AuditOutlined",0,c],457202)},182399,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z"}}]},name:"block",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["BlockOutlined",0,i],182399)},592143,e=>{"use strict";var t=e.i(609587);e.s(["ConfigProvider",()=>t.default])},372943,899268,e=>{"use strict";e.i(247167);var t=e.i(8211),a=e.i(271645),s=e.i(343794),r=e.i(529681),i=e.i(242064),l=e.i(704914),c=e.i(876556),n=e.i(290224),d=e.i(251224),o=function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&0>t.indexOf(s)&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,s=Object.getOwnPropertySymbols(e);rt.indexOf(s[r])&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(a[s[r]]=e[s[r]]);return a};function m({suffixCls:e,tagName:t,displayName:s}){return s=>a.forwardRef((r,i)=>a.createElement(s,Object.assign({ref:i,suffixCls:e,tagName:t},r)))}let u=a.forwardRef((e,t)=>{let{prefixCls:r,suffixCls:l,className:c,tagName:n}=e,m=o(e,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:u}=a.useContext(i.ConfigContext),f=u("layout",r),[h,g,v]=(0,d.default)(f),x=l?`${f}-${l}`:f;return h(a.createElement(n,Object.assign({className:(0,s.default)(r||x,c,g,v),ref:t},m)))}),f=a.forwardRef((e,m)=>{let{direction:u}=a.useContext(i.ConfigContext),[f,h]=a.useState([]),{prefixCls:g,className:v,rootClassName:x,children:y,hasSider:p,tagName:b,style:N}=e,w=o(e,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),j=(0,r.default)(w,["suffixCls"]),{getPrefixCls:L,className:z,style:O}=(0,i.useComponentConfig)("layout"),M=L("layout",g),C="boolean"==typeof p?p:!!f.length||(0,c.default)(y).some(e=>e.type===n.default),[H,k,V]=(0,d.default)(M),_=(0,s.default)(M,{[`${M}-has-sider`]:C,[`${M}-rtl`]:"rtl"===u},z,v,x,k,V),R=a.useMemo(()=>({siderHook:{addSider:e=>{h(a=>[].concat((0,t.default)(a),[e]))},removeSider:e=>{h(t=>t.filter(t=>t!==e))}}}),[]);return H(a.createElement(l.LayoutContext.Provider,{value:R},a.createElement(b,Object.assign({ref:m,className:_,style:Object.assign(Object.assign({},O),N)},j),y)))}),h=m({tagName:"div",displayName:"Layout"})(f),g=m({suffixCls:"header",tagName:"header",displayName:"Header"})(u),v=m({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(u),x=m({suffixCls:"content",tagName:"main",displayName:"Content"})(u);h.Header=g,h.Footer=v,h.Content=x,h.Sider=n.default,h._InternalSiderContext=n.SiderContext,e.s(["Layout",0,h],372943);var y=e.i(60699);e.s(["Menu",()=>y.default],899268)},878894,664659,655900,299023,25652,882293,e=>{"use strict";var t=e.i(582458);e.s(["AlertTriangle",()=>t.default],878894);var a=e.i(475254);let s=(0,a.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>s],664659);let r=(0,a.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",()=>r],655900);let i=(0,a.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["Minus",()=>i],299023);let l=(0,a.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>l],25652);let c=(0,a.default)("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["UserCheck",()=>c],882293)},761911,e=>{"use strict";let t=(0,e.i(475254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],761911)},297178,e=>{"use strict";var t=e.i(843476);e.i(389083);var a=e.i(878894);e.i(664659),e.i(655900);var s=e.i(531278),r=e.i(299023),i=e.i(25652),l=e.i(882293),c=e.i(761911),n=e.i(271645),d=e.i(764205);let o=(...e)=>e.filter(Boolean).join(" ");function m({accessToken:e,width:m=220}){let[u,f]=(0,n.useState)(!1),[h,g]=(0,n.useState)(!1),[v,x]=(0,n.useState)(null),[y,p]=(0,n.useState)(!1),[b,N]=(0,n.useState)(null);(0,n.useEffect)(()=>{(async()=>{if(e){p(!0),N(null);try{let t=await (0,d.getRemainingUsers)(e);x(t)}catch(e){console.error("Failed to fetch usage data:",e),N("Failed to load usage data")}finally{p(!1)}}})()},[e]);let{isOverLimit:w,isNearLimit:j,usagePercentage:L,userMetrics:z,teamMetrics:O}=(e=>{if(!e)return{isOverLimit:!1,isNearLimit:!1,usagePercentage:0,userMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0},teamMetrics:{isOverLimit:!1,isNearLimit:!1,usagePercentage:0}};let t=e.total_users?e.total_users_used/e.total_users*100:0,a=t>100,s=t>=80&&t<=100,r=e.total_teams?e.total_teams_used/e.total_teams*100:0,i=r>100,l=r>=80&&r<=100,c=a||i;return{isOverLimit:c,isNearLimit:(s||l)&&!c,usagePercentage:Math.max(t,r),userMetrics:{isOverLimit:a,isNearLimit:s,usagePercentage:t},teamMetrics:{isOverLimit:i,isNearLimit:l,usagePercentage:r}}})(v);return e&&(v?.total_users!==null||v?.total_teams!==null)?(0,t.jsx)("div",{className:"fixed bottom-4 left-4 z-50",style:{width:`${Math.min(m,220)}px`},children:(0,t.jsx)(()=>h?(0,t.jsx)("button",{onClick:()=>g(!1),className:o("bg-white border border-gray-200 rounded-lg shadow-sm p-3 hover:shadow-md transition-all w-full"),title:"Show usage details",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(c.Users,{className:"h-4 w-4 flex-shrink-0"}),(w||j)&&(0,t.jsx)("span",{className:"flex-shrink-0",children:w?(0,t.jsx)(a.AlertTriangle,{className:"h-3 w-3"}):j?(0,t.jsx)(i.TrendingUp,{className:"h-3 w-3"}):null}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium truncate",children:[v&&null!==v.total_users&&(0,t.jsxs)("span",{className:o("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",z.isOverLimit&&"bg-red-50 text-red-700 border-red-200",z.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!z.isOverLimit&&!z.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["U: ",v.total_users_used,"/",v.total_users]}),v&&null!==v.total_teams&&(0,t.jsxs)("span",{className:o("flex-shrink-0 px-1.5 py-0.5 rounded text-xs border",O.isOverLimit&&"bg-red-50 text-red-700 border-red-200",O.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!O.isOverLimit&&!O.isNearLimit&&"bg-gray-50 text-gray-700 border-gray-200"),children:["T: ",v.total_teams_used,"/",v.total_teams]}),!v||null===v.total_users&&null===v.total_teams&&(0,t.jsx)("span",{className:"truncate",children:"Usage"})]})]})}):y?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2",children:[(0,t.jsx)(s.Loader2,{className:"h-4 w-4 animate-spin"}),(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate",children:"Loading..."})]})}):b||!v?(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg shadow-sm p-4 group w-full",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("span",{className:"text-sm text-gray-500 truncate block",children:b||"No data"})}),(0,t.jsx)("button",{onClick:()=>g(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(r.Minus,{className:"h-3 w-3 text-gray-400"})})]})}):(0,t.jsxs)("div",{className:o("bg-white border rounded-lg shadow-sm p-3 transition-all duration-200 group w-full"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[(0,t.jsx)(c.Users,{className:"h-4 w-4 flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-sm truncate",children:"Usage"})]}),(0,t.jsx)("button",{onClick:()=>g(!0),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-gray-100 rounded transition-all flex-shrink-0",title:"Minimize",children:(0,t.jsx)(r.Minus,{className:"h-3 w-3 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"space-y-3 text-sm",children:[null!==v.total_users&&(0,t.jsxs)("div",{className:o("space-y-1 border rounded-md p-2",z.isOverLimit&&"border-red-200 bg-red-50",z.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(c.Users,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Users"}),(0,t.jsx)("span",{className:o("ml-1 px-1.5 py-0.5 rounded border",z.isOverLimit&&"bg-red-50 text-red-700 border-red-200",z.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!z.isOverLimit&&!z.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:z.isOverLimit?"Over limit":z.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[v.total_users_used,"/",v.total_users]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:o("font-medium text-right",z.isOverLimit&&"text-red-600",z.isNearLimit&&"text-yellow-600"),children:v.total_users_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(z.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:o("h-2 rounded-full transition-all duration-300",z.isOverLimit&&"bg-red-500",z.isNearLimit&&"bg-yellow-500",!z.isOverLimit&&!z.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(z.usagePercentage,100)}%`}})})]}),null!==v.total_teams&&(0,t.jsxs)("div",{className:o("space-y-1 border rounded-md p-2",O.isOverLimit&&"border-red-200 bg-red-50",O.isNearLimit&&"border-yellow-200 bg-yellow-50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-600 mb-1",children:[(0,t.jsx)(l.UserCheck,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"font-medium",children:"Teams"}),(0,t.jsx)("span",{className:o("ml-1 px-1.5 py-0.5 rounded border",O.isOverLimit&&"bg-red-50 text-red-700 border-red-200",O.isNearLimit&&"bg-yellow-50 text-yellow-700 border-yellow-200",!O.isOverLimit&&!O.isNearLimit&&"bg-gray-50 text-gray-600 border-gray-200"),children:O.isOverLimit?"Over limit":O.isNearLimit?"Near limit":"OK"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Used:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[v.total_teams_used,"/",v.total_teams]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Remaining:"}),(0,t.jsx)("span",{className:o("font-medium text-right",O.isOverLimit&&"text-red-600",O.isNearLimit&&"text-yellow-600"),children:v.total_teams_remaining})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)("span",{className:"text-gray-600 text-xs",children:"Usage:"}),(0,t.jsxs)("span",{className:"font-medium text-right",children:[Math.round(O.usagePercentage),"%"]})]}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2",children:(0,t.jsx)("div",{className:o("h-2 rounded-full transition-all duration-300",O.isOverLimit&&"bg-red-500",O.isNearLimit&&"bg-yellow-500",!O.isOverLimit&&!O.isNearLimit&&"bg-green-500"),style:{width:`${Math.min(O.usagePercentage,100)}%`}})})]})]})]}),{})}):null}e.s(["default",()=>m])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3454255bdea68dda.js b/litellm/proxy/_experimental/out/_next/static/chunks/3454255bdea68dda.js new file mode 100644 index 00000000000..bf0ddbc8fc5 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/3454255bdea68dda.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,233525,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"warnOnce",{enumerable:!0,get:function(){return s}});let s=e=>{}},349356,e=>{e.v({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"})},137429,e=>{e.v({0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"})},992571,e=>{"use strict";var t=e.i(619273);function i(e){return{onFetch:(i,r)=>{let n=i.options,u=i.fetchOptions?.meta?.fetchMore?.direction,o=i.state.data?.pages||[],h=i.state.data?.pageParams||[],c={pages:[],pageParams:[]},l=0,d=async()=>{let r=!1,d=(0,t.ensureQueryFn)(i.options,i.fetchOptions),f=async(e,s,a)=>{let n;if(r)return Promise.reject();if(null==s&&e.pages.length)return Promise.resolve(e);let u=(n={client:i.client,queryKey:i.queryKey,pageParam:s,direction:a?"backward":"forward",meta:i.options.meta},(0,t.addConsumeAwareSignal)(n,()=>i.signal,()=>r=!0),n),o=await d(u),{maxPages:h}=i.options,c=a?t.addToStart:t.addToEnd;return{pages:c(e.pages,o,h),pageParams:c(e.pageParams,s,h)}};if(u&&o.length){let e="backward"===u,t={pages:o,pageParams:h},i=(e?a:s)(n,t);c=await f(t,i,e)}else{let t=e??o.length;do{let e=0===l?h[0]??n.initialPageParam:s(n,c);if(l>0&&null==e)break;c=await f(c,e),l++}while(li.options.persister?.(d,{client:i.client,queryKey:i.queryKey,meta:i.options.meta,signal:i.signal},r):i.fetchFn=d}}}function s(e,{pages:t,pageParams:i}){let s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,i[s],i):void 0}function a(e,{pages:t,pageParams:i}){return t.length>0?e.getPreviousPageParam?.(t[0],t,i[0],i):void 0}function r(e,t){return!!t&&null!=s(e,t)}function n(e,t){return!!t&&!!e.getPreviousPageParam&&null!=a(e,t)}e.s(["hasNextPage",()=>r,"hasPreviousPage",()=>n,"infiniteQueryBehavior",()=>i])},114272,e=>{"use strict";var t=e.i(540143),i=e.i(88587),s=e.i(936553),a=class extends i.Removable{#e;#t;#i;#s;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#i=e.mutationCache,this.#t=[],this.state=e.state||r(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#i.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#i.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||("pending"===this.state.status?this.scheduleGc():this.#i.remove(this))}continue(){return this.#s?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#a({type:"continue"})},i={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#s=(0,s.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(e,i):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#a({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#a({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#i.canRun(this)});let a="pending"===this.state.status,r=!this.#s.canStart();try{if(a)t();else{this.#a({type:"pending",variables:e,isPaused:r}),this.#i.config.onMutate&&await this.#i.config.onMutate(e,this,i);let t=await this.options.onMutate?.(e,i);t!==this.state.context&&this.#a({type:"pending",context:t,variables:e,isPaused:r})}let s=await this.#s.start();return await this.#i.config.onSuccess?.(s,e,this.state.context,this,i),await this.options.onSuccess?.(s,e,this.state.context,i),await this.#i.config.onSettled?.(s,null,this.state.variables,this.state.context,this,i),await this.options.onSettled?.(s,null,e,this.state.context,i),this.#a({type:"success",data:s}),s}catch(t){try{await this.#i.config.onError?.(t,e,this.state.context,this,i)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,i)}catch(e){Promise.reject(e)}try{await this.#i.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,i)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,i)}catch(e){Promise.reject(e)}throw this.#a({type:"error",error:t}),t}finally{this.#i.runNext(this)}}#a(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),t.notifyManager.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#i.notify({mutation:this,type:"updated",action:e})})}};function r(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}e.s(["Mutation",()=>a,"getDefaultState",()=>r])},317751,e=>{"use strict";var t=e.i(619273),i=e.i(286491),s=e.i(540143),a=e.i(915823),r=class extends a.Subscribable{constructor(e={}){super(),this.config=e,this.#r=new Map}#r;build(e,s,a){let r=s.queryKey,n=s.queryHash??(0,t.hashQueryKeyByOptions)(r,s),u=this.get(n);return u||(u=new i.Query({client:e,queryKey:r,queryHash:n,options:e.defaultQueryOptions(s),state:a,defaultOptions:e.getQueryDefaults(r)}),this.add(u)),u}add(e){this.#r.has(e.queryHash)||(this.#r.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#r.get(e.queryHash);t&&(e.destroy(),t===e&&this.#r.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){s.notifyManager.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#r.get(e)}getAll(){return[...this.#r.values()]}find(e){let i={exact:!0,...e};return this.getAll().find(e=>(0,t.matchQuery)(i,e))}findAll(e={}){let i=this.getAll();return Object.keys(e).length>0?i.filter(i=>(0,t.matchQuery)(e,i)):i}notify(e){s.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){s.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){s.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},n=e.i(114272),u=a,o=class extends u.Subscribable{constructor(e={}){super(),this.config=e,this.#n=new Set,this.#u=new Map,this.#o=0}#n;#u;#o;build(e,t,i){let s=new n.Mutation({client:e,mutationCache:this,mutationId:++this.#o,options:e.defaultMutationOptions(t),state:i});return this.add(s),s}add(e){this.#n.add(e);let t=h(e);if("string"==typeof t){let i=this.#u.get(t);i?i.push(e):this.#u.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#n.delete(e)){let t=h(e);if("string"==typeof t){let i=this.#u.get(t);if(i)if(i.length>1){let t=i.indexOf(e);-1!==t&&i.splice(t,1)}else i[0]===e&&this.#u.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=h(e);if("string"!=typeof t)return!0;{let i=this.#u.get(t),s=i?.find(e=>"pending"===e.state.status);return!s||s===e}}runNext(e){let t=h(e);if("string"!=typeof t)return Promise.resolve();{let i=this.#u.get(t)?.find(t=>t!==e&&t.state.isPaused);return i?.continue()??Promise.resolve()}}clear(){s.notifyManager.batch(()=>{this.#n.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#n.clear(),this.#u.clear()})}getAll(){return Array.from(this.#n)}find(e){let i={exact:!0,...e};return this.getAll().find(e=>(0,t.matchMutation)(i,e))}findAll(e={}){return this.getAll().filter(i=>(0,t.matchMutation)(e,i))}notify(e){s.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return s.notifyManager.batch(()=>Promise.all(e.map(e=>e.continue().catch(t.noop))))}};function h(e){return e.options.scope?.id}var c=e.i(175555),l=e.i(814448),d=e.i(992571),f=class{#h;#i;#c;#l;#d;#f;#y;#p;constructor(e={}){this.#h=e.queryCache||new r,this.#i=e.mutationCache||new o,this.#c=e.defaultOptions||{},this.#l=new Map,this.#d=new Map,this.#f=0}mount(){this.#f++,1===this.#f&&(this.#y=c.focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#h.onFocus())}),this.#p=l.onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#h.onOnline())}))}unmount(){this.#f--,0===this.#f&&(this.#y?.(),this.#y=void 0,this.#p?.(),this.#p=void 0)}isFetching(e){return this.#h.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#i.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#h.get(t.queryHash)?.state.data}ensureQueryData(e){let i=this.defaultQueryOptions(e),s=this.#h.build(this,i),a=s.state.data;return void 0===a?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,t.resolveStaleTime)(i.staleTime,s))&&this.prefetchQuery(i),Promise.resolve(a))}getQueriesData(e){return this.#h.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,i,s){let a=this.defaultQueryOptions({queryKey:e}),r=this.#h.get(a.queryHash),n=r?.state.data,u=(0,t.functionalUpdate)(i,n);if(void 0!==u)return this.#h.build(this,a).setData(u,{...s,manual:!0})}setQueriesData(e,t,i){return s.notifyManager.batch(()=>this.#h.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,i)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#h.get(t.queryHash)?.state}removeQueries(e){let t=this.#h;s.notifyManager.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let i=this.#h;return s.notifyManager.batch(()=>(i.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,i={}){let a={revert:!0,...i};return Promise.all(s.notifyManager.batch(()=>this.#h.findAll(e).map(e=>e.cancel(a)))).then(t.noop).catch(t.noop)}invalidateQueries(e,t={}){return s.notifyManager.batch(()=>(this.#h.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,i={}){let a={...i,cancelRefetch:i.cancelRefetch??!0};return Promise.all(s.notifyManager.batch(()=>this.#h.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let i=e.fetch(void 0,a);return a.throwOnError||(i=i.catch(t.noop)),"paused"===e.state.fetchStatus?Promise.resolve():i}))).then(t.noop)}fetchQuery(e){let i=this.defaultQueryOptions(e);void 0===i.retry&&(i.retry=!1);let s=this.#h.build(this,i);return s.isStaleByTime((0,t.resolveStaleTime)(i.staleTime,s))?s.fetch(i):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(t.noop).catch(t.noop)}fetchInfiniteQuery(e){return e.behavior=(0,d.infiniteQueryBehavior)(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(t.noop).catch(t.noop)}ensureInfiniteQueryData(e){return e.behavior=(0,d.infiniteQueryBehavior)(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return l.onlineManager.isOnline()?this.#i.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#h}getMutationCache(){return this.#i}getDefaultOptions(){return this.#c}setDefaultOptions(e){this.#c=e}setQueryDefaults(e,i){this.#l.set((0,t.hashKey)(e),{queryKey:e,defaultOptions:i})}getQueryDefaults(e){let i=[...this.#l.values()],s={};return i.forEach(i=>{(0,t.partialMatchKey)(e,i.queryKey)&&Object.assign(s,i.defaultOptions)}),s}setMutationDefaults(e,i){this.#d.set((0,t.hashKey)(e),{mutationKey:e,defaultOptions:i})}getMutationDefaults(e){let i=[...this.#d.values()],s={};return i.forEach(i=>{(0,t.partialMatchKey)(e,i.mutationKey)&&Object.assign(s,i.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let i={...this.#c.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return i.queryHash||(i.queryHash=(0,t.hashQueryKeyByOptions)(i.queryKey,i)),void 0===i.refetchOnReconnect&&(i.refetchOnReconnect="always"!==i.networkMode),void 0===i.throwOnError&&(i.throwOnError=!!i.suspense),!i.networkMode&&i.persister&&(i.networkMode="offlineFirst"),i.queryFn===t.skipToken&&(i.enabled=!1),i}defaultMutationOptions(e){return e?._defaulted?e:{...this.#c.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#h.clear(),this.#i.clear()}};e.s(["QueryClient",()=>f],317751)},86408,e=>{"use strict";var t=e.i(843476),i=e.i(271645),s=e.i(618566),a=e.i(934879),r=e.i(317751),n=e.i(912598);let u=new r.QueryClient;function o(){let e=(0,s.useSearchParams)().get("key"),[r,o]=(0,i.useState)(null);return console.log("PublicModelHubTable accessToken:",r),(0,i.useEffect)(()=>{e&&o(e)},[e]),(0,t.jsx)(n.QueryClientProvider,{client:u,children:(0,t.jsx)(a.default,{accessToken:r,publicPage:!0,premiumUser:!1,userRole:null})})}function h(){return(0,t.jsx)(i.Suspense,{fallback:(0,t.jsx)("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:(0,t.jsx)(o,{})})}e.s(["default",()=>h])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/372bf25298c509b0.js b/litellm/proxy/_experimental/out/_next/static/chunks/372bf25298c509b0.js deleted file mode 100644 index 33a167fe735..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/372bf25298c509b0.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,349356,e=>{e.v({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"})},137429,e=>{e.v({0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"})},653496,e=>{"use strict";var r=e.i(721369);e.s(["Tabs",()=>r.default])},250980,e=>{"use strict";var r=e.i(271645);let a=r.forwardRef(function(e,a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlusCircleIcon",0,a],250980)},502547,e=>{"use strict";var r=e.i(271645);let a=r.forwardRef(function(e,a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"}))});e.s(["ChevronRightIcon",0,a],502547)},94629,e=>{"use strict";var r=e.i(271645);let a=r.forwardRef(function(e,a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,a],94629)},166406,e=>{"use strict";var r=e.i(190144);e.s(["CopyOutlined",()=>r.default])},916925,e=>{"use strict";var r,a=((r={}).A2A_Agent="A2A Agent",r.AIML="AI/ML API",r.Bedrock="Amazon Bedrock",r.Anthropic="Anthropic",r.AssemblyAI="AssemblyAI",r.SageMaker="AWS SageMaker",r.Azure="Azure",r.Azure_AI_Studio="Azure AI Foundry (Studio)",r.Cerebras="Cerebras",r.Cohere="Cohere",r.Dashscope="Dashscope",r.Databricks="Databricks (Qwen API)",r.DeepInfra="DeepInfra",r.Deepgram="Deepgram",r.Deepseek="Deepseek",r.ElevenLabs="ElevenLabs",r.FalAI="Fal AI",r.FireworksAI="Fireworks AI",r.Google_AI_Studio="Google AI Studio",r.GradientAI="GradientAI",r.Groq="Groq",r.Hosted_Vllm="vllm",r.Infinity="Infinity",r.JinaAI="Jina AI",r.MiniMax="MiniMax",r.MistralAI="Mistral AI",r.Ollama="Ollama",r.OpenAI="OpenAI",r.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",r.OpenAI_Text="OpenAI Text Completion",r.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",r.Openrouter="Openrouter",r.Oracle="Oracle Cloud Infrastructure (OCI)",r.Perplexity="Perplexity",r.RunwayML="RunwayML",r.Sambanova="Sambanova",r.Snowflake="Snowflake",r.TogetherAI="TogetherAI",r.Triton="Triton",r.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",r.VolcEngine="VolcEngine",r.Voyage="Voyage AI",r.xAI="xAI",r.SAP="SAP Generative AI Hub",r.Watsonx="Watsonx",r);let t={A2A_Agent:"a2a_agent",AIML:"aiml",OpenAI:"openai",OpenAI_Text:"text-completion-openai",Azure:"azure",Azure_AI_Studio:"azure_ai",Anthropic:"anthropic",Google_AI_Studio:"gemini",Bedrock:"bedrock",Groq:"groq",MiniMax:"minimax",MistralAI:"mistral",Cohere:"cohere",OpenAI_Compatible:"openai",OpenAI_Text_Compatible:"text-completion-openai",Vertex_AI:"vertex_ai",Databricks:"databricks",Dashscope:"dashscope",xAI:"xai",Deepseek:"deepseek",Ollama:"ollama",AssemblyAI:"assemblyai",Cerebras:"cerebras",Sambanova:"sambanova",Perplexity:"perplexity",RunwayML:"runwayml",TogetherAI:"together_ai",Openrouter:"openrouter",Oracle:"oci",Snowflake:"snowflake",FireworksAI:"fireworks_ai",GradientAI:"gradient_ai",Triton:"triton",Deepgram:"deepgram",ElevenLabs:"elevenlabs",FalAI:"fal_ai",SageMaker:"sagemaker_chat",Voyage:"voyage",JinaAI:"jina_ai",VolcEngine:"volcengine",DeepInfra:"deepinfra",Hosted_Vllm:"hosted_vllm",Infinity:"infinity",SAP:"sap",Watsonx:"watsonx"},o="../ui/assets/logos/",i={"A2A Agent":`${o}a2a_agent.png`,"AI/ML API":`${o}aiml_api.svg`,Anthropic:`${o}anthropic.svg`,AssemblyAI:`${o}assemblyai_small.png`,Azure:`${o}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${o}microsoft_azure.svg`,"Amazon Bedrock":`${o}bedrock.svg`,"AWS SageMaker":`${o}bedrock.svg`,Cerebras:`${o}cerebras.svg`,Cohere:`${o}cohere.svg`,"Databricks (Qwen API)":`${o}databricks.svg`,Dashscope:`${o}dashscope.svg`,Deepseek:`${o}deepseek.svg`,"Fireworks AI":`${o}fireworks.svg`,Groq:`${o}groq.svg`,"Google AI Studio":`${o}google.svg`,vllm:`${o}vllm.png`,Infinity:`${o}infinity.png`,MiniMax:`${o}minimax.svg`,"Mistral AI":`${o}mistral.svg`,Ollama:`${o}ollama.svg`,OpenAI:`${o}openai_small.svg`,"OpenAI Text Completion":`${o}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${o}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${o}openai_small.svg`,Openrouter:`${o}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${o}oracle.svg`,Perplexity:`${o}perplexity-ai.svg`,RunwayML:`${o}runwayml.png`,Sambanova:`${o}sambanova.svg`,Snowflake:`${o}snowflake.svg`,TogetherAI:`${o}togetherai.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${o}google.svg`,xAI:`${o}xai.svg`,GradientAI:`${o}gradientai.svg`,Triton:`${o}nvidia_triton.png`,Deepgram:`${o}deepgram.png`,ElevenLabs:`${o}elevenlabs.png`,"Fal AI":`${o}fal_ai.jpg`,"Voyage AI":`${o}voyage.webp`,"Jina AI":`${o}jina.png`,VolcEngine:`${o}volcengine.png`,DeepInfra:`${o}deepinfra.png`,"SAP Generative AI Hub":`${o}sap.png`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let r=Object.keys(t).find(r=>t[r].toLowerCase()===e.toLowerCase());if(!r)return{logo:"",displayName:e};let o=a[r];return{logo:i[o],displayName:o}},"getProviderModels",0,(e,r)=>{console.log(`Provider key: ${e}`);let a=t[e];console.log(`Provider mapped to: ${a}`);let o=[];return e&&"object"==typeof r&&(Object.entries(r).forEach(([e,r])=>{if(null!==r&&"object"==typeof r&&"litellm_provider"in r){let t=r.litellm_provider;(t===a||"string"==typeof t&&t.includes(a))&&o.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(r).forEach(([e,r])=>{null!==r&&"object"==typeof r&&"litellm_provider"in r&&"cohere_chat"===r.litellm_provider&&o.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(r).forEach(([e,r])=>{null!==r&&"object"==typeof r&&"litellm_provider"in r&&"sagemaker_chat"===r.litellm_provider&&o.push(e)}))),o},"providerLogoMap",0,i,"provider_map",0,t])},195529,e=>{"use strict";var r=e.i(843476),a=e.i(934879),t=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,premiumUser:o,userRole:i}=(0,t.default)();return(0,r.jsx)(a.default,{accessToken:e,publicPage:!1,premiumUser:o,userRole:i})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3754e5316d782fdf.js b/litellm/proxy/_experimental/out/_next/static/chunks/3754e5316d782fdf.js deleted file mode 100644 index e8d90c02029..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/3754e5316d782fdf.js +++ /dev/null @@ -1,10 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,161059,836991,147612,e=>{"use strict";var t=e.i(843476),l=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(135214);let i=(0,a.createQueryKeys)("credentials"),n=()=>{let{accessToken:e}=(0,r.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.credentialListCall)(e),enabled:!!e})},o=(0,a.createQueryKeys)("modelCostMap"),d=()=>(0,s.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,l.modelCostMap)(),staleTime:6e4,gcTime:6e4});var c=e.i(625901),m=e.i(292639),u=e.i(785242),h=e.i(152990),x=e.i(682830),p=e.i(271645),g=e.i(269200),f=e.i(427612),j=e.i(64848),_=e.i(942232),b=e.i(496020),y=e.i(977572),v=e.i(464571),N=e.i(326373),w=e.i(94629),C=e.i(360820),S=e.i(871943);let k=p.forwardRef(function(e,t){return p.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),p.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,k],836991);let T=({sortState:e,onSortChange:l})=>{let s=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(C.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(S.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(k,{className:"h-4 w-4"})}];return(0,t.jsx)(N.Dropdown,{menu:{items:s,onClick:({key:e})=>{"asc"===e?l("asc"):"desc"===e?l("desc"):"reset"===e&&l(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(v.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(C.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(S.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(w.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})};function F({data:e=[],columns:l,isLoading:s=!1,sorting:a=[],onSortingChange:r,pagination:i,onPaginationChange:n,enablePagination:o=!1}){let[d]=p.default.useState("onChange"),[c,m]=p.default.useState({}),[u,v]=p.default.useState({}),N=(0,h.useReactTable)({data:e,columns:l,state:{sorting:a,columnSizing:c,columnVisibility:u,...o&&i?{pagination:i}:{}},columnResizeMode:d,onSortingChange:r,onColumnSizingChange:m,onColumnVisibilityChange:v,...o&&n?{onPaginationChange:n}:{},getCoreRowModel:(0,x.getCoreRowModel)(),...o?{getPaginationRowModel:(0,x.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,manualSorting:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(g.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:N.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(f.TableHead,{children:N.getHeaderGroups().map(e=>(0,t.jsx)(b.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(j.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,h.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&r&&(0,t.jsx)(T,{sortState:!1!==e.column.getIsSorted()&&e.column.getIsSorted(),onSortChange:t=>{!1===t?r([]):r([{id:e.column.id,desc:"desc"===t}])},columnId:e.column.id})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(_.TableBody,{children:s?(0,t.jsx)(b.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):N.getRowModel().rows.length>0?N.getRowModel().rows.map(e=>(0,t.jsx)(b.TableRow,{children:e.getVisibleCells().map(e=>(0,t.jsx)(y.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,h.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(b.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}let I=p.forwardRef(function(e,t){return p.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),p.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"}))});var A=e.i(68155),P=e.i(389083),M=e.i(994388),E=e.i(752978),L=e.i(282786),R=e.i(592968),O=e.i(898586),B=e.i(770914);e.i(247167);var z=e.i(343794),V=e.i(529681),q=e.i(908286),D=e.i(242064),$=e.i(246422),G=e.i(838378);let H=["wrap","nowrap","wrap-reverse"],U=["flex-start","flex-end","start","end","center","space-between","space-around","space-evenly","stretch","normal","left","right"],J=["center","start","end","flex-start","flex-end","self-start","self-end","baseline","normal","stretch"],K=function(e,t){let l,s,a;return(0,z.default)(Object.assign(Object.assign(Object.assign({},(l=!0===t.wrap?"wrap":t.wrap,{[`${e}-wrap-${l}`]:l&&H.includes(l)})),(s={},J.forEach(l=>{s[`${e}-align-${l}`]=t.align===l}),s[`${e}-align-stretch`]=!t.align&&!!t.vertical,s)),(a={},U.forEach(l=>{a[`${e}-justify-${l}`]=t.justify===l}),a)))},W=(0,$.genStyleHooks)("Flex",e=>{let{paddingXS:t,padding:l,paddingLG:s}=e,a=(0,G.mergeToken)(e,{flexGapSM:t,flexGap:l,flexGapLG:s});return[(e=>{let{componentCls:t}=e;return{[t]:{display:"flex",margin:0,padding:0,"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"},"&:empty":{display:"none"}}}})(a),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}})(a),(e=>{let{componentCls:t}=e,l={};return H.forEach(e=>{l[`${t}-wrap-${e}`]={flexWrap:e}}),l})(a),(e=>{let{componentCls:t}=e,l={};return J.forEach(e=>{l[`${t}-align-${e}`]={alignItems:e}}),l})(a),(e=>{let{componentCls:t}=e,l={};return U.forEach(e=>{l[`${t}-justify-${e}`]={justifyContent:e}}),l})(a)]},()=>({}),{resetStyle:!1});var Q=function(e,t){var l={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&0>t.indexOf(s)&&(l[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,s=Object.getOwnPropertySymbols(e);at.indexOf(s[a])&&Object.prototype.propertyIsEnumerable.call(e,s[a])&&(l[s[a]]=e[s[a]]);return l};let Y=p.default.forwardRef((e,t)=>{let{prefixCls:l,rootClassName:s,className:a,style:r,flex:i,gap:n,vertical:o=!1,component:d="div",children:c}=e,m=Q(e,["prefixCls","rootClassName","className","style","flex","gap","vertical","component","children"]),{flex:u,direction:h,getPrefixCls:x}=p.default.useContext(D.ConfigContext),g=x("flex",l),[f,j,_]=W(g),b=null!=o?o:null==u?void 0:u.vertical,y=(0,z.default)(a,s,null==u?void 0:u.className,g,j,_,K(g,e),{[`${g}-rtl`]:"rtl"===h,[`${g}-gap-${n}`]:(0,q.isPresetSize)(n),[`${g}-vertical`]:b}),v=Object.assign(Object.assign({},null==u?void 0:u.style),r);return i&&(v.flex=i),n&&!(0,q.isPresetSize)(n)&&(v.gap=n),f(p.default.createElement(d,Object.assign({ref:t,className:y,style:v},(0,V.default)(m,["justify","wrap","align"])),c))});var X=e.i(418371);let{Text:Z}=O.Typography,ee=e=>e?.model_info?.team_public_model_name?e.model_info.team_public_model_name:e?.model_name||"-";var et=e.i(827252),el=e.i(350967),es=e.i(206929),ea=e.i(35983),er=e.i(404206),ei=e.i(599724),en=e.i(981339),eo=e.i(482725),ed=e.i(374009);let ec=(e,t)=>{if(!e?.data)return{data:[]};let l=JSON.parse(JSON.stringify(e.data));for(let e=0;e"model"!==e&&"api_base"!==e))),l[e].provider=n,l[e].input_cost=o,l[e].output_cost=d,l[e].litellm_model_name=a,l[e].input_cost&&(l[e].input_cost=(1e6*Number(l[e].input_cost)).toFixed(2)),l[e].output_cost&&(l[e].output_cost=(1e6*Number(l[e].output_cost)).toFixed(2)),l[e].max_tokens=c,l[e].max_input_tokens=m,l[e].api_base=s?.litellm_params?.api_base,l[e].cleanedLitellmParams=u}return{data:l}},em=({selectedModelGroup:e,setSelectedModelGroup:l,availableModelGroups:s,availableModelAccessGroups:a,setSelectedModelId:i,setSelectedTeamId:n})=>{let{data:o,isLoading:m}=d(),{userId:h,userRole:x,premiumUser:g}=(0,r.default)(),{data:f,isLoading:j}=(0,u.useTeams)(),[_,b]=(0,p.useState)(""),[y,v]=(0,p.useState)(""),[N,w]=(0,p.useState)("current_team"),[C,S]=(0,p.useState)("personal"),[k,T]=(0,p.useState)(!1),[O,z]=(0,p.useState)(null),[V,q]=(0,p.useState)(new Set),[D,$]=(0,p.useState)(1),[G]=(0,p.useState)(50),[H,U]=(0,p.useState)({pageIndex:0,pageSize:50}),[J,K]=(0,p.useState)([]),W=(0,p.useMemo)(()=>(0,ed.default)(e=>{v(e),$(1),U(e=>({...e,pageIndex:0}))},200),[]);(0,p.useEffect)(()=>(W(_),()=>{W.cancel()}),[_,W]);let Q="personal"===C?void 0:C.team_id,em=(0,p.useMemo)(()=>{if(0===J.length)return;let e=J[0];return({input_cost:"costs",model_info_db_model:"status",model_info_created_by:"created_at",model_info_updated_at:"updated_at"})[e.id]||e.id},[J]),eu=(0,p.useMemo)(()=>{if(0!==J.length)return J[0].desc?"desc":"asc"},[J]),{data:eh,isLoading:ex}=(0,c.useModelsInfo)(D,G,y||void 0,void 0,Q,em,eu),ep=ex||m,eg=e=>null!=o&&"object"==typeof o&&e in o?o[e].litellm_provider:"openai",ef=(0,p.useMemo)(()=>eh?ec(eh,eg):{data:[]},[eh,o]),ej=(0,p.useMemo)(()=>eh?{total_count:eh.total_count??0,current_page:eh.current_page??1,total_pages:eh.total_pages??1,size:eh.size??G}:{total_count:0,current_page:1,total_pages:1,size:G},[eh,G]),e_=(0,p.useMemo)(()=>ef&&ef.data&&0!==ef.data.length?ef.data.filter(t=>{let l="all"===e||t.model_name===e||!e||"wildcard"===e&&t.model_name?.includes("*"),s="all"===O||t.model_info.access_groups?.includes(O)||!O;return l&&s}):[],[ef,e,O]);return(0,p.useEffect)(()=>{U(e=>({...e,pageIndex:0})),$(1)},[e,O]),(0,p.useEffect)(()=>{$(1),U(e=>({...e,pageIndex:0}))},[Q]),(0,p.useEffect)(()=>{$(1),U(e=>({...e,pageIndex:0}))},[J]),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(el.Grid,{children:(0,t.jsx)("div",{className:"flex flex-col space-y-4",children:(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(ei.Text,{className:"text-lg font-semibold text-gray-900",children:"Current Team:"}),ep?(0,t.jsx)(en.Skeleton.Input,{active:!0,style:{width:320,height:36}}):(0,t.jsxs)(es.Select,{className:"w-80",defaultValue:"personal",value:"personal"===C?"personal":C.team_id,onValueChange:e=>{if("personal"===e)S("personal"),$(1),U(e=>({...e,pageIndex:0}));else{let t=f?.find(t=>t.team_id===e);t&&(S(t),$(1),U(e=>({...e,pageIndex:0})))}},children:[(0,t.jsx)(ea.SelectItem,{value:"personal",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:"Personal"})]})}),j?(0,t.jsx)(ea.SelectItem,{value:"loading",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eo.Spin,{size:"small"}),(0,t.jsx)("span",{className:"font-medium text-gray-500",children:"Loading teams..."})]})}):f?.filter(e=>e.team_id).map(e=>(0,t.jsx)(ea.SelectItem,{value:e.team_id,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:e.team_alias?`${e.team_alias.slice(0,30)}...`:`Team ${e.team_id.slice(0,30)}...`})]})},e.team_id))]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(ei.Text,{className:"text-lg font-semibold text-gray-900",children:"View:"}),ep?(0,t.jsx)(en.Skeleton.Input,{active:!0,style:{width:256,height:36}}):(0,t.jsxs)(es.Select,{className:"w-64",defaultValue:"current_team",value:N,onValueChange:e=>w(e),children:[(0,t.jsx)(ea.SelectItem,{value:"current_team",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-purple-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:"Current Team Models"})]})}),(0,t.jsx)(ea.SelectItem,{value:"all",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-gray-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:"All Available Models"})]})})]})]})]}),"current_team"===N&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-3",children:[(0,t.jsx)(et.InfoCircleOutlined,{className:"text-gray-400 mt-0.5 flex-shrink-0 text-xs"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"personal"===C?(0,t.jsxs)("span",{children:["To access these models: Create a Virtual Key without selecting a team on the"," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]}):(0,t.jsxs)("span",{children:['To access these models: Create a Virtual Key and select Team as "',"string"!=typeof C?C.team_alias||C.team_id:"",'" on the'," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]})})]})]}),(0,t.jsx)("div",{className:"border-b px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative w-64",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search model names...",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:_,onChange:e=>b(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("button",{className:`px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2 ${k?"bg-gray-100":""}`,onClick:()=>T(!k),children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filters"]}),(0,t.jsxs)("button",{className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",onClick:()=>{b(""),l("all"),z(null),S("personal"),w("current_team"),$(1),U({pageIndex:0,pageSize:50}),K([])},children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),"Reset Filters"]})]}),k&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[(0,t.jsx)("div",{className:"w-64",children:(0,t.jsxs)(es.Select,{value:e??"all",onValueChange:e=>l("all"===e?"all":e),placeholder:"Filter by Public Model Name",children:[(0,t.jsx)(ea.SelectItem,{value:"all",children:"All Models"}),(0,t.jsx)(ea.SelectItem,{value:"wildcard",children:"Wildcard Models (*)"}),s.map((e,l)=>(0,t.jsx)(ea.SelectItem,{value:e,children:e},l))]})}),(0,t.jsx)("div",{className:"w-64",children:(0,t.jsxs)(es.Select,{value:O??"all",onValueChange:e=>z("all"===e?null:e),placeholder:"Filter by Model Access Group",children:[(0,t.jsx)(ea.SelectItem,{value:"all",children:"All Model Access Groups"}),a.map((e,l)=>(0,t.jsx)(ea.SelectItem,{value:e,children:e},l))]})})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[ep?(0,t.jsx)(en.Skeleton.Input,{active:!0,style:{width:184,height:20}}):(0,t.jsx)("span",{className:"text-sm text-gray-700",children:ej.total_count>0?`Showing ${(D-1)*G+1} - ${Math.min(D*G,ej.total_count)} of ${ej.total_count} results`:"Showing 0 results"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[ep?(0,t.jsx)(en.Skeleton.Button,{active:!0,style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>{$(D-1),U(e=>({...e,pageIndex:0}))},disabled:1===D,className:`px-3 py-1 text-sm border rounded-md ${1===D?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),ep?(0,t.jsx)(en.Skeleton.Button,{active:!0,style:{width:56,height:30}}):(0,t.jsx)("button",{onClick:()=>{$(D+1),U(e=>({...e,pageIndex:0}))},disabled:D>=ej.total_pages,className:`px-3 py-1 text-sm border rounded-md ${D>=ej.total_pages?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})]})]})}),(0,t.jsx)(F,{columns:[{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model ID"}),accessorKey:"model_info.id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)(R.Tooltip,{title:l.model_info.id,children:(0,t.jsx)(Z,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer w-full block",style:{fontSize:14,padding:"1px 8px"},onClick:()=>i(l.model_info.id),children:l.model_info.id})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Information"}),accessorKey:"model_name",size:250,minSize:120,cell:({row:e})=>{let l=e.original,s=ee(e.original)||"-",a=(0,t.jsxs)(B.Space,{direction:"vertical",size:12,style:{minWidth:220},children:[(0,t.jsxs)(Y,{align:"center",gap:8,children:[(0,t.jsx)(X.ProviderLogo,{provider:l.provider}),(0,t.jsx)(Z,{type:"secondary",style:{fontSize:12},ellipsis:!0,children:l.provider||"Unknown provider"})]}),(0,t.jsxs)(B.Space,{direction:"vertical",size:6,children:[(0,t.jsxs)(B.Space,{direction:"vertical",size:2,style:{width:"100%"},children:[(0,t.jsx)(Z,{type:"secondary",style:{fontSize:11},children:"Public Model Name"}),(0,t.jsx)(Z,{strong:!0,style:{fontSize:13,maxWidth:480},ellipsis:!0,title:s,children:s})]}),(0,t.jsxs)(B.Space,{direction:"vertical",size:2,children:[(0,t.jsx)(Z,{type:"secondary",style:{fontSize:11},children:"LiteLLM Model Name"}),(0,t.jsx)(Z,{style:{fontSize:13},copyable:{text:l.litellm_model_name||"-"},ellipsis:!0,title:l.litellm_model_name||"-",children:l.litellm_model_name||"-"})]})]})]});return(0,t.jsx)(L.Popover,{content:a,placement:"right",arrow:{pointAtCenter:!0},styles:{root:{maxWidth:500}},children:(0,t.jsxs)("div",{className:"flex items-start space-x-2 min-w-0 w-full cursor-pointer",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:l.provider?(0,t.jsx)(X.ProviderLogo,{provider:l.provider}):(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",children:"-"})}),(0,t.jsxs)("div",{className:"flex flex-col min-w-0 flex-1",children:[(0,t.jsx)(Z,{ellipsis:!0,className:"text-gray-900",style:{fontSize:12,fontWeight:500,lineHeight:"16px"},children:s}),(0,t.jsx)(Z,{ellipsis:!0,type:"secondary",style:{fontSize:12,lineHeight:"16px",marginTop:2},children:l.litellm_model_name||"-"})]})]})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Credentials"}),accessorKey:"litellm_credential_name",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.litellm_params?.litellm_credential_name;return s?(0,t.jsx)(R.Tooltip,{title:`Credential: ${s}`,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2 min-w-0 w-full",children:[(0,t.jsx)(I,{className:"w-4 h-4 text-blue-500 flex-shrink-0"}),(0,t.jsx)("span",{className:"text-xs truncate",title:s,children:s})]})}):(0,t.jsxs)("div",{className:"flex items-center space-x-2 min-w-0 w-full",children:[(0,t.jsx)(I,{className:"w-4 h-4 text-gray-300 flex-shrink-0"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"No credentials"})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Created By"}),accessorKey:"model_info.created_by",sortingFn:"datetime",size:160,minSize:100,cell:({row:e})=>{let l=e.original,s=!l.model_info?.db_model,a=l.model_info.created_by,r=l.model_info.created_at?new Date(l.model_info.created_at).toLocaleDateString():null;return(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-gray-900 truncate",title:s?"Defined in config":a||"Unknown",children:s?"Defined in config":a||"Unknown"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate mt-0.5",title:s?"Config file":r||"Unknown date",children:s?"-":r||"Unknown date"})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Updated At"}),accessorKey:"model_info.updated_at",sortingFn:"datetime",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("span",{className:"text-xs",children:l.model_info.updated_at?new Date(l.model_info.updated_at).toLocaleDateString():"-"})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Costs"}),accessorKey:"input_cost",size:120,minSize:80,cell:({row:e})=>{let l=e.original,s=l.input_cost,a=l.output_cost;return s||a?(0,t.jsx)(R.Tooltip,{title:"Cost per 1M tokens",children:(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[s&&(0,t.jsxs)("div",{className:"text-xs font-medium text-gray-900 truncate",children:["In: $",s]}),a&&(0,t.jsxs)("div",{className:"text-xs text-gray-500 truncate mt-0.5",children:["Out: $",a]})]})}):(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"-"})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Team ID"}),accessorKey:"model_info.team_id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return l.model_info.team_id?(0,t.jsx)("div",{className:"overflow-hidden w-full",children:(0,t.jsx)(R.Tooltip,{title:l.model_info.team_id,children:(0,t.jsxs)(M.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate w-full",onClick:()=>n(l.model_info.team_id),children:[l.model_info.team_id.slice(0,7),"..."]})})}):"-"}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Access Group"}),accessorKey:"model_info.model_access_group",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.model_info.access_groups;if(!s||0===s.length)return"-";let a=l.model_info.id,r=V.has(a),i=s.length>1;return(0,t.jsxs)("div",{className:"flex items-center gap-1 overflow-hidden w-full",children:[(0,t.jsx)(P.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:s[0]}),(r||!i&&2===s.length)&&s.slice(1).map((e,l)=>(0,t.jsx)(P.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:e},l+1)),i&&(0,t.jsx)("button",{onClick:e=>{let t;e.stopPropagation(),t=new Set(V),r?t.delete(a):t.add(a),q(t)},className:"text-xs text-blue-600 hover:text-blue-800 px-1 py-0.5 rounded hover:bg-blue-50 h-5 leading-tight flex-shrink-0 whitespace-nowrap",children:r?"−":`+${s.length-1}`})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Status"}),accessorKey:"model_info.db_model",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("div",{className:` - inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium - ${l.model_info.db_model?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-600"} - `,children:l.model_info.db_model?"DB Model":"Config Model"})}},{id:"actions",header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Actions"}),size:60,minSize:40,enableResizing:!1,cell:({row:e})=>{let l=e.original,s="Admin"===x||l.model_info?.created_by===h,a=!l.model_info?.db_model;return(0,t.jsx)("div",{className:"flex items-center justify-end gap-2 pr-4",children:a?(0,t.jsx)(R.Tooltip,{title:"Config model cannot be deleted on the dashboard. Please delete it from the config file.",children:(0,t.jsx)(E.Icon,{icon:A.TrashIcon,size:"sm",className:"opacity-50 cursor-not-allowed"})}):(0,t.jsx)(R.Tooltip,{title:"Delete model",children:(0,t.jsx)(E.Icon,{icon:A.TrashIcon,size:"sm",onClick:()=>{s&&i(l.model_info.id)},className:s?"cursor-pointer hover:text-red-600":"opacity-50 cursor-not-allowed"})})})}}],data:e_,isLoading:ex,sorting:J,onSortingChange:K,pagination:H,onPaginationChange:U,enablePagination:!0})]})})})})};var eu=e.i(629569),eh=e.i(28651);let ex={"BadRequestError (400)":"BadRequestErrorRetries","AuthenticationError (401)":"AuthenticationErrorRetries","TimeoutError (408)":"TimeoutErrorRetries","RateLimitError (429)":"RateLimitErrorRetries","ContentPolicyViolationError (400)":"ContentPolicyViolationErrorRetries","InternalServerError (500)":"InternalServerErrorRetries"},ep=({selectedModelGroup:e,setSelectedModelGroup:l,availableModelGroups:s,globalRetryPolicy:a,setGlobalRetryPolicy:r,defaultRetry:i,modelGroupRetryPolicy:n,setModelGroupRetryPolicy:o,handleSaveRetrySettings:d})=>(0,t.jsxs)(er.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mb-6",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(ei.Text,{children:"Retry Policy Scope:"}),(0,t.jsxs)(es.Select,{className:"ml-2 w-48",defaultValue:"global",value:"global"===e?"global":e||s[0],onValueChange:e=>l(e),children:[(0,t.jsx)(ea.SelectItem,{value:"global",children:"Global Default"}),s.map((e,s)=>(0,t.jsx)(ea.SelectItem,{value:e,onClick:()=>l(e),children:e},s))]})]})}),"global"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu.Title,{children:"Global Retry Policy"}),(0,t.jsx)(ei.Text,{className:"mb-6",children:"Default retry settings applied to all model groups unless overridden"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eu.Title,{children:["Retry Policy for ",e]}),(0,t.jsx)(ei.Text,{className:"mb-6",children:"Model-specific retry settings. Falls back to global defaults if not set."})]}),ex&&(0,t.jsx)("table",{children:(0,t.jsx)("tbody",{children:Object.entries(ex).map(([l,s],d)=>{let c;if("global"===e)c=a?.[s]??i;else{let t=n?.[e]?.[s];c=null!=t?t:a?.[s]??i}return(0,t.jsxs)("tr",{className:"flex justify-between items-center mt-2",children:[(0,t.jsxs)("td",{children:[(0,t.jsx)(ei.Text,{children:l}),"global"!==e&&(0,t.jsxs)(ei.Text,{className:"text-xs text-gray-500 ml-2",children:["(Global: ",a?.[s]??i,")"]})]}),(0,t.jsx)("td",{children:(0,t.jsx)(eh.InputNumber,{className:"ml-5",value:c,min:0,step:1,onChange:t=>{"global"===e?r(e=>null==t?e:{...e??{},[s]:t}):o(l=>{let a=l?.[e]??{};return{...l??{},[e]:{...a,[s]:t}}})}})})]},d)})})}),(0,t.jsx)(M.Button,{className:"mt-6 mr-8",onClick:d,children:"Save"})]});var eg=e.i(883552),ef=e.i(212931),ej=e.i(262218),e_=e.i(175712),eb=e.i(91979),ey=e.i(637235),ev=e.i(724154),eN=e.i(727749);let{Text:ew}=O.Typography,eC=({accessToken:e,onReloadSuccess:s,buttonText:a="Reload Price Data",showIcon:r=!0,size:i="middle",type:n="primary",className:o=""})=>{let[d,c]=(0,p.useState)(!1),[m,u]=(0,p.useState)(!1),[h,x]=(0,p.useState)(!1),[g,f]=(0,p.useState)(!1),[j,_]=(0,p.useState)(6),[b,y]=(0,p.useState)(null),[N,w]=(0,p.useState)(!1);(0,p.useEffect)(()=>{C();let e=setInterval(()=>{C()},3e4);return()=>clearInterval(e)},[e]);let C=async()=>{if(e){w(!0);try{console.log("Fetching reload status...");let t=await (0,l.getModelCostMapReloadStatus)(e);console.log("Received status:",t),y(t)}catch(e){console.error("Failed to fetch reload status:",e),y({scheduled:!1,interval_hours:null,last_run:null,next_run:null})}finally{w(!1)}}},S=async()=>{if(!e)return void eN.default.fromBackend("No access token available");c(!0);try{let t=await (0,l.reloadModelCostMap)(e);"success"===t.status?(eN.default.success(`Price data reloaded successfully! ${t.models_count||0} models updated.`),s?.(),await C()):eN.default.fromBackend("Failed to reload price data")}catch(e){console.error("Error reloading price data:",e),eN.default.fromBackend("Failed to reload price data. Please try again.")}finally{c(!1)}},k=async()=>{if(!e)return void eN.default.fromBackend("No access token available");if(j<=0)return void eN.default.fromBackend("Hours must be greater than 0");u(!0);try{let t=await (0,l.scheduleModelCostMapReload)(e,j);"success"===t.status?(eN.default.success(`Periodic reload scheduled for every ${j} hours`),f(!1),await C()):eN.default.fromBackend("Failed to schedule periodic reload")}catch(e){console.error("Error scheduling reload:",e),eN.default.fromBackend("Failed to schedule periodic reload. Please try again.")}finally{u(!1)}},T=async()=>{if(!e)return void eN.default.fromBackend("No access token available");x(!0);try{let t=await (0,l.cancelModelCostMapReload)(e);"success"===t.status?(eN.default.success("Periodic reload cancelled successfully"),await C()):eN.default.fromBackend("Failed to cancel periodic reload")}catch(e){console.error("Error cancelling reload:",e),eN.default.fromBackend("Failed to cancel periodic reload. Please try again.")}finally{x(!1)}},F=e=>{if(!e)return"Never";try{return new Date(e).toLocaleString()}catch{return e}};return(0,t.jsxs)("div",{className:o,children:[(0,t.jsxs)(B.Space,{direction:"horizontal",size:"middle",style:{marginBottom:16},children:[(0,t.jsx)(eg.Popconfirm,{title:"Hard Refresh Price Data",description:"This will immediately fetch the latest pricing information from the remote source. Continue?",onConfirm:S,okText:"Yes",cancelText:"No",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"}},children:(0,t.jsx)(v.Button,{type:n,size:i,loading:d,icon:r?(0,t.jsx)(eb.ReloadOutlined,{}):void 0,style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"},children:a})}),b?.scheduled?(0,t.jsx)(v.Button,{type:"default",size:i,danger:!0,icon:(0,t.jsx)(ev.StopOutlined,{}),loading:h,onClick:T,style:{borderColor:"#ff4d4f",color:"#ff4d4f",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Cancel Periodic Reload"}):(0,t.jsx)(v.Button,{type:"default",size:i,icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),onClick:()=>f(!0),style:{borderColor:"#d9d9d9",color:"#6366f1",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Set Up Periodic Reload"})]}),b&&(0,t.jsx)(e_.Card,{size:"small",style:{backgroundColor:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:8},children:(0,t.jsxs)(B.Space,{direction:"vertical",size:"small",style:{width:"100%"},children:[b.scheduled?(0,t.jsx)("div",{children:(0,t.jsxs)(ej.Tag,{color:"green",icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),children:["Scheduled every ",b.interval_hours," hours"]})}):(0,t.jsx)(ew,{type:"secondary",children:"No periodic reload scheduled"}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(ew,{type:"secondary",style:{fontSize:"12px"},children:"Last run:"}),(0,t.jsx)(ew,{style:{fontSize:"12px"},children:F(b.last_run)})]}),b.scheduled&&(0,t.jsxs)(t.Fragment,{children:[b.next_run&&(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(ew,{type:"secondary",style:{fontSize:"12px"},children:"Next run:"}),(0,t.jsx)(ew,{style:{fontSize:"12px"},children:F(b.next_run)})]}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(ew,{type:"secondary",style:{fontSize:"12px"},children:"Status:"}),(0,t.jsx)(ej.Tag,{color:b?.scheduled?b.last_run?"success":"processing":"default",children:b?.scheduled?b.last_run?"Active":"Ready":"Not scheduled"})]})]})]})}),(0,t.jsxs)(ef.Modal,{title:"Set Up Periodic Reload",open:g,onOk:k,onCancel:()=>f(!1),confirmLoading:m,okText:"Schedule",cancelText:"Cancel",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white"}},children:[(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(ew,{children:"Set up automatic reload of price data every:"})}),(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(eh.InputNumber,{min:1,max:168,value:j,onChange:e=>_(e||6),addonAfter:"hours",style:{width:"100%"}})}),(0,t.jsx)("div",{children:(0,t.jsxs)(ew,{type:"secondary",children:["This will automatically fetch the latest pricing data from the remote source every ",j," hours."]})})]})]})},eS=()=>{let{accessToken:e}=(0,r.default)(),{refetch:l}=d();return(0,t.jsx)(er.TabPanel,{children:(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(eu.Title,{children:"Price Data Management"}),(0,t.jsx)(ei.Text,{className:"text-tremor-content",children:"Manage model pricing data and configure automatic reload schedules"})]}),(0,t.jsx)(eC,{accessToken:e,onReloadSuccess:()=>{l()},buttonText:"Reload Price Data",size:"middle",type:"primary",className:"w-full"})]})})};var ek=e.i(916925);let eT=async(e,t,l)=>{try{console.log("handling submit for formValues:",e);let t=e.model_mappings||[];if("model_mappings"in e&&delete e.model_mappings,e.model&&e.model.includes("all-wildcard")){let l=e.custom_llm_provider,s=(ek.provider_map[l]??l.toLowerCase())+"/*";e.model_name=s,t.push({public_name:s,litellm_model:s}),e.model=s}let l=[];for(let s of t){let t={},a={},r=s.public_name;for(let[l,r]of(t.model=s.litellm_model,e.input_cost_per_token&&(e.input_cost_per_token=Number(e.input_cost_per_token)/1e6),e.output_cost_per_token&&(e.output_cost_per_token=Number(e.output_cost_per_token)/1e6),t.model=s.litellm_model,console.log("formValues add deployment:",e),Object.entries(e)))if(""!==r&&"custom_pricing"!==l&&"pricing_model"!==l&&"cache_control"!==l)if("model_name"==l)t.model=r;else if("custom_llm_provider"==l){console.log("custom_llm_provider:",r);let e=ek.provider_map[r]??r.toLowerCase();t.custom_llm_provider=e,console.log("custom_llm_provider mappingResult:",e)}else if("model"==l)continue;else if("base_model"===l)a[l]=r;else if("team_id"===l)a.team_id=r;else if("model_access_group"===l)a.access_groups=r;else if("mode"==l)console.log("placing mode in modelInfo"),a.mode=r,delete t.mode;else if("custom_model_name"===l)t.model=r;else if("litellm_extra_params"==l){console.log("litellm_extra_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r)}catch(e){throw eN.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[l,s]of Object.entries(e))t[l]=s}}else if("model_info_params"==l){console.log("model_info_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r)}catch(e){throw eN.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[t,l]of Object.entries(e))a[t]=l}}else if("input_cost_per_token"===l||"output_cost_per_token"===l||"input_cost_per_second"===l){r&&(t[l]=Number(r));continue}else t[l]=r;l.push({litellmParamsObj:t,modelInfoObj:a,modelName:r})}return l}catch(e){eN.default.fromBackend("Failed to create model: "+e)}},eF=async(e,t,s,a)=>{try{let r=await eT(e,t,s);if(!r||0===r.length)return;for(let e of r){let{litellmParamsObj:s,modelInfoObj:a,modelName:r}=e,i={model_name:r,litellm_params:s,model_info:a},n=await (0,l.modelCreateCall)(t,i);console.log(`response for model create call: ${n.data}`)}a&&a(),s.resetFields()}catch(e){eN.default.fromBackend("Failed to add model: "+e)}};var eI=e.i(591935),eA=e.i(304967),eP=e.i(808613),eM=e.i(127952),eE=e.i(779241),eL=e.i(199133);let eR=(0,a.createQueryKeys)("providerFields"),eO=()=>(0,s.useQuery)({queryKey:eR.list({}),queryFn:async()=>await (0,l.getProviderCreateMetadata)(),staleTime:864e5,gcTime:864e5});var eB=e.i(519756),ez=e.i(178654),eV=e.i(311451),eq=e.i(621192),eD=e.i(515831);let{Link:e$}=O.Typography,eG=e=>{let t="password"===e.field_type?"password":"select"===e.field_type?"select":"upload"===e.field_type?"upload":"textarea"===e.field_type?"textarea":"text";return{key:e.key,label:e.label,placeholder:e.placeholder??void 0,tooltip:e.tooltip??void 0,required:e.required??!1,type:t,options:e.options??void 0,defaultValue:e.default_value??void 0}},eH={},eU=({selectedProvider:e,uploadProps:l})=>{let s=ek.Providers[e],a=eP.Form.useFormInstance(),{data:r,isLoading:i,error:n}=eO(),o=p.default.useMemo(()=>{if(!r)return null;let e={};return r.forEach(t=>{let l=t.provider_display_name,s=t.credential_fields.map(eG);e[l]=s,t.provider&&(e[t.provider]=s),t.litellm_provider&&(e[t.litellm_provider]=s)}),e},[r]);p.default.useEffect(()=>{o&&Object.assign(eH,o)},[o]);let d=p.default.useMemo(()=>{let t=eH[s]??eH[e];if(t)return t;if(!r)return[];let l=r.find(t=>t.provider_display_name===s||t.provider===e||t.litellm_provider===e);if(!l)return[];let a=l.credential_fields.map(eG);return eH[l.provider_display_name]=a,l.provider&&(eH[l.provider]=a),l.litellm_provider&&(eH[l.litellm_provider]=a),a},[s,e,r]),c={name:"file",accept:".json",beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;console.log(`Setting field value from JSON, length: ${t.length}`),a.setFieldsValue({vertex_credentials:t}),console.log("Form values after setting:",a.getFieldsValue())}},t.readAsText(e)}return!1},onChange(e){console.log("Upload onChange triggered in ProviderSpecificFields"),console.log("Current form values:",a.getFieldsValue()),"uploading"!==e.file.status&&console.log(e.file,e.fileList)}};return(0,t.jsxs)(t.Fragment,{children:[i&&0===d.length&&(0,t.jsx)(eq.Row,{children:(0,t.jsx)(ez.Col,{span:24,children:(0,t.jsx)(ei.Text,{className:"mb-2",children:"Loading provider fields..."})})}),n&&0===d.length&&(0,t.jsx)(eq.Row,{children:(0,t.jsx)(ez.Col,{span:24,children:(0,t.jsx)(ei.Text,{className:"mb-2 text-red-500",children:n instanceof Error?n.message:"Failed to load provider credential fields"})})}),d.map(e=>(0,t.jsxs)(p.default.Fragment,{children:[(0,t.jsx)(eP.Form.Item,{label:e.label,name:e.key,rules:e.required?[{required:!0,message:"Required"}]:void 0,tooltip:e.tooltip,className:"vertex_credentials"===e.key?"mb-0":void 0,children:"select"===e.type?(0,t.jsx)(eL.Select,{placeholder:e.placeholder,defaultValue:e.defaultValue,children:e.options?.map(e=>(0,t.jsx)(eL.Select.Option,{value:e,children:e},e))}):"upload"===e.type?(0,t.jsx)(eD.Upload,{...c,onChange:t=>{l?.onChange&&l.onChange(t),setTimeout(()=>{let t=a.getFieldValue(e.key);console.log(`${e.key} value after upload:`,JSON.stringify(t))},500)},children:(0,t.jsx)(v.Button,{icon:(0,t.jsx)(eB.UploadOutlined,{}),children:"Click to Upload"})}):"textarea"===e.type?(0,t.jsx)(eV.Input.TextArea,{placeholder:e.placeholder,defaultValue:e.defaultValue,rows:6,style:{fontFamily:"monospace",fontSize:"12px"}}):(0,t.jsx)(eE.TextInput,{placeholder:e.placeholder,type:"password"===e.type?"password":"text",defaultValue:e.defaultValue})}),"vertex_credentials"===e.key&&(0,t.jsx)(eq.Row,{children:(0,t.jsx)(ez.Col,{children:(0,t.jsx)(ei.Text,{className:"mb-3 mt-1",children:"Give a gcp service account(.json file)"})})}),"base_model"===e.key&&(0,t.jsxs)(eq.Row,{children:[(0,t.jsx)(ez.Col,{span:10}),(0,t.jsx)(ez.Col,{span:10,children:(0,t.jsxs)(ei.Text,{className:"mb-2",children:["The actual model your azure deployment uses. Used for accurate cost tracking. Select name from"," ",(0,t.jsx)(e$,{href:"https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json",target:"_blank",children:"here"})]})})]})]},e.key))]})},{Link:eJ}=O.Typography,eK=({open:e,onCancel:l,onAddCredential:s,uploadProps:a})=>{let[r]=eP.Form.useForm(),[i,n]=(0,p.useState)(ek.Providers.OpenAI);return(0,t.jsx)(ef.Modal,{title:"Add New Credential",open:e,onCancel:()=>{l(),r.resetFields()},footer:null,width:600,children:(0,t.jsxs)(eP.Form,{form:r,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),r.resetFields()},layout:"vertical",children:[(0,t.jsx)(eP.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),(0,t.jsx)(eP.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(eL.Select,{showSearch:!0,onChange:e=>{n(e),r.setFieldValue("custom_llm_provider",e)},children:Object.entries(ek.Providers).map(([e,l])=>(0,t.jsx)(eL.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:ek.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eU,{selectedProvider:i,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(R.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eJ,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Button,{onClick:()=>{l(),r.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(v.Button,{htmlType:"submit",children:"Add Credential"})]})]})]})})},{Link:eW}=O.Typography;function eQ({open:e,onCancel:l,onUpdateCredential:s,uploadProps:a,existingCredential:r}){let[i]=eP.Form.useForm(),[n,o]=(0,p.useState)(ek.Providers.Anthropic);return(0,p.useEffect)(()=>{if(r){let e=Object.entries(r.credential_values||{}).reduce((e,[t,l])=>(e[t]=l??null,e),{});i.setFieldsValue({credential_name:r.credential_name,custom_llm_provider:r.credential_info.custom_llm_provider,...e}),o(r.credential_info.custom_llm_provider)}},[r]),(0,t.jsx)(ef.Modal,{title:"Edit Credential",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,destroyOnHidden:!0,children:(0,t.jsxs)(eP.Form,{form:i,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),i.resetFields()},layout:"vertical",children:[(0,t.jsx)(eP.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:r?.credential_name,children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter a friendly name for these credentials",disabled:!!r?.credential_name})}),(0,t.jsx)(eP.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(eL.Select,{showSearch:!0,onChange:e=>{o(e),i.setFieldValue("custom_llm_provider",e)},children:Object.entries(ek.Providers).map(([e,l])=>(0,t.jsx)(eL.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:ek.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eU,{selectedProvider:n,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(R.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eW,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(v.Button,{htmlType:"submit",children:"Update Credential"})]})]})]})})}let eY=({uploadProps:e})=>{let{accessToken:s}=(0,r.default)(),{data:a,refetch:i}=n(),o=a?.credentials||[],[d,c]=(0,p.useState)(!1),[m,u]=(0,p.useState)(!1),[h,x]=(0,p.useState)(null),[v,N]=(0,p.useState)(null),[w,C]=(0,p.useState)(!1),[S,k]=(0,p.useState)(!1),[T]=eP.Form.useForm(),F=["credential_name","custom_llm_provider"],I=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!F.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialUpdateCall)(s,e.credential_name,a),eN.default.success("Credential updated successfully"),u(!1),await i()},E=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!F.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialCreateCall)(s,a),eN.default.success("Credential added successfully"),c(!1),await i()},L=async()=>{if(s&&v){k(!0);try{await (0,l.credentialDeleteCall)(s,v.credential_name),eN.default.success("Credential deleted successfully"),await i()}catch(e){eN.default.error("Failed to delete credential")}finally{N(null),C(!1),k(!1)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto p-2",children:[(0,t.jsx)(M.Button,{onClick:()=>c(!0),children:"Add Credential"}),(0,t.jsx)("div",{className:"flex justify-between items-center mt-4 mb-4",children:(0,t.jsx)(ei.Text,{children:"Configured credentials for different AI providers. Add and manage your API credentials."})}),(0,t.jsx)(eA.Card,{children:(0,t.jsxs)(g.Table,{children:[(0,t.jsx)(f.TableHead,{children:(0,t.jsxs)(b.TableRow,{children:[(0,t.jsx)(j.TableHeaderCell,{children:"Credential Name"}),(0,t.jsx)(j.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(j.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(_.TableBody,{children:o&&0!==o.length?o.map((e,l)=>{var s;let a,r;return(0,t.jsxs)(b.TableRow,{children:[(0,t.jsx)(y.TableCell,{children:e.credential_name}),(0,t.jsx)(y.TableCell,{children:(s=e.credential_info?.custom_llm_provider||"-",r=(a={openai:"blue",azure:"indigo",anthropic:"purple",default:"gray"})[s.toLowerCase()]||a.default,(0,t.jsx)(P.Badge,{color:r,size:"xs",children:s}))}),(0,t.jsxs)(y.TableCell,{children:[(0,t.jsx)(M.Button,{icon:eI.PencilAltIcon,variant:"light",size:"sm",onClick:()=>{x(e),u(!0)}}),(0,t.jsx)(M.Button,{icon:A.TrashIcon,variant:"light",size:"sm",onClick:()=>{N(e),C(!0)},className:"ml-2"})]})]},l)}):(0,t.jsx)(b.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:4,className:"text-center py-4 text-gray-500",children:"No credentials configured"})})})]})}),d&&(0,t.jsx)(eK,{onAddCredential:E,open:d,onCancel:()=>c(!1),uploadProps:e}),m&&(0,t.jsx)(eQ,{open:m,existingCredential:h,onUpdateCredential:I,uploadProps:e,onCancel:()=>u(!1)}),(0,t.jsx)(eM.default,{isOpen:w,onCancel:()=>{N(null),C(!1)},onOk:L,title:"Delete Credential?",message:"Are you sure you want to delete this credential? This action cannot be undone and may break existing integrations.",resourceInformationTitle:"Credential Information",resourceInformation:[{label:"Credential Name",value:v?.credential_name},{label:"Provider",value:v?.credential_info?.custom_llm_provider||"-"}],confirmLoading:S,requiredConfirmation:v?.credential_name})]})};var eX=e.i(708347),eZ=e.i(278587),e0=e.i(912598),e1=e.i(309426),e2=e.i(197647),e4=e.i(653824),e5=e.i(881073),e6=e.i(723731),e3=e.i(475647),e8=e.i(437902),e7=e.i(312361),e9=e.i(285027),te=e.i(166406);let{Text:tt}=O.Typography,tl=({formValues:e,accessToken:s,testMode:a,modelName:r="this model",onClose:i,onTestComplete:n})=>{var o,d,c;let m,u,[h,x]=p.default.useState(null),[g,f]=p.default.useState(null),[j,_]=p.default.useState(null),[b,y]=p.default.useState(!0),[N,w]=p.default.useState(!1),[C,S]=p.default.useState(!1),k=async()=>{y(!0),S(!1),x(null),f(null),_(null),w(!1),await new Promise(e=>setTimeout(e,100));try{console.log("Testing connection with form values:",e);let t=await eT(e,s,null);if(!t){console.log("No result from prepareModelAddRequest"),x("Failed to prepare model data. Please check your form inputs."),w(!1),y(!1);return}console.log("Result from prepareModelAddRequest:",t);let{litellmParamsObj:a,modelInfoObj:r,modelName:i}=t[0],n=await (0,l.testConnectionRequest)(s,a,r,r?.mode);if("success"===n.status)eN.default.success("Connection test successful!"),x(null),w(!0);else{let e=n.result?.error||n.message||"Unknown error";x(e),f(a),_(n.result?.raw_request_typed_dict),w(!1)}}catch(e){console.error("Test connection error:",e),x(e instanceof Error?e.message:String(e)),w(!1)}finally{y(!1),n&&n()}};p.default.useEffect(()=>{let e=setTimeout(()=>{k()},200);return()=>clearTimeout(e)},[]);let T=e=>e?e.split("stack trace:")[0].trim().replace(/^litellm\.(.*?)Error: /,""):"Unknown error",F="string"==typeof h?T(h):h?.message?T(h.message):"Unknown error",I=j?(o=j.raw_request_api_base,d=j.raw_request_body,c=j.raw_request_headers||{},m=JSON.stringify(d,null,2).split("\n").map(e=>` ${e}`).join("\n"),u=Object.entries(c).map(([e,t])=>`-H '${e}: ${t}'`).join(" \\\n "),`curl -X POST \\ - ${o} \\ - ${u?`${u} \\ - `:""}-H 'Content-Type: application/json' \\ - -d '{ -${m} - }'`):"";return(0,t.jsxs)("div",{style:{padding:"24px",borderRadius:"8px",backgroundColor:"#fff"},children:[b?(0,t.jsxs)("div",{style:{textAlign:"center",padding:"32px 20px"},className:"jsx-dc9a0e2d897fe63b",children:[(0,t.jsx)("div",{style:{marginBottom:"16px"},className:"jsx-dc9a0e2d897fe63b loading-spinner",children:(0,t.jsx)("div",{style:{border:"3px solid #f3f3f3",borderTop:"3px solid #1890ff",borderRadius:"50%",width:"30px",height:"30px",animation:"spin 1s linear infinite",margin:"0 auto"},className:"jsx-dc9a0e2d897fe63b"})}),(0,t.jsxs)(tt,{style:{fontSize:"16px"},children:["Testing connection to ",r,"..."]}),(0,t.jsx)(e8.default,{id:"dc9a0e2d897fe63b",children:"@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"})]}):N?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"32px 20px"},children:[(0,t.jsx)("div",{style:{color:"#52c41a",fontSize:"24px",display:"flex",alignItems:"center"},children:(0,t.jsx)("svg",{viewBox:"64 64 896 896",focusable:"false","data-icon":"check-circle",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"})})}),(0,t.jsxs)(tt,{type:"success",style:{fontSize:"18px",fontWeight:500,marginLeft:"10px"},children:["Connection to ",r," successful!"]})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"20px"},children:[(0,t.jsx)(e9.WarningOutlined,{style:{color:"#ff4d4f",fontSize:"24px",marginRight:"12px"}}),(0,t.jsxs)(tt,{type:"danger",style:{fontSize:"18px",fontWeight:500},children:["Connection to ",r," failed"]})]}),(0,t.jsxs)("div",{style:{backgroundColor:"#fff2f0",border:"1px solid #ffccc7",borderRadius:"8px",padding:"16px",marginBottom:"20px",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)"},children:[(0,t.jsxs)(tt,{strong:!0,style:{display:"block",marginBottom:"8px"},children:["Error:"," "]}),(0,t.jsx)(tt,{type:"danger",style:{fontSize:"14px",lineHeight:"1.5"},children:F}),h&&(0,t.jsx)("div",{style:{marginTop:"12px"},children:(0,t.jsx)(v.Button,{type:"link",onClick:()=>S(!C),style:{paddingLeft:0,height:"auto"},children:C?"Hide Details":"Show Details"})})]}),C&&(0,t.jsxs)("div",{style:{marginBottom:"20px"},children:[(0,t.jsx)(tt,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"Troubleshooting Details"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"200px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:"string"==typeof h?h:JSON.stringify(h,null,2)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(tt,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"API Request"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"250px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:I||"No request data available"}),(0,t.jsx)(v.Button,{style:{marginTop:"8px"},icon:(0,t.jsx)(te.CopyOutlined,{}),onClick:()=>{navigator.clipboard.writeText(I||""),eN.default.success("Copied to clipboard")},children:"Copy to Clipboard"})]})]})}),(0,t.jsx)(e7.Divider,{style:{margin:"24px 0 16px"}}),(0,t.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:(0,t.jsx)(v.Button,{type:"link",href:"https://docs.litellm.ai/docs/providers",target:"_blank",icon:(0,t.jsx)(et.InfoCircleOutlined,{}),children:"View Documentation"})})]})},ts=async(e,t,s,a)=>{try{console.log("=== AUTO ROUTER SUBMIT HANDLER CALLED ==="),console.log("handling auto router submit for formValues:",e),console.log("Access token:",t?"Present":"Missing"),console.log("Form:",s?"Present":"Missing"),console.log("Callback:",a?"Present":"Missing");let r={model_name:e.auto_router_name,litellm_params:{model:`auto_router/${e.auto_router_name}`,auto_router_config:JSON.stringify(e.auto_router_config),auto_router_default_model:e.auto_router_default_model},model_info:{}};e.auto_router_embedding_model&&"custom"!==e.auto_router_embedding_model?r.litellm_params.auto_router_embedding_model=e.auto_router_embedding_model:e.custom_embedding_model&&(r.litellm_params.auto_router_embedding_model=e.custom_embedding_model),e.team_id&&(r.model_info.team_id=e.team_id),e.model_access_group&&e.model_access_group.length>0&&(r.model_info.access_groups=e.model_access_group),console.log("Auto router configuration to be created:",r),console.log("Auto router config (stringified):",r.litellm_params.auto_router_config),console.log("Calling modelCreateCall with:",{accessToken:t?"Present":"Missing",config:r});let i=await (0,l.modelCreateCall)(t,r);console.log("response for auto router create call:",i),s.resetFields()}catch(e){console.error("Failed to add auto router:",e),eN.default.fromBackend("Failed to add auto router: "+e)}};var ta=e.i(689020),tr=e.i(362024),ti=e.i(646563),tn=e.i(955135),to=e.i(755151);let{TextArea:td}=eV.Input,{Panel:tc}=tr.Collapse,tm=({modelInfo:e,value:l,onChange:s})=>{let[a,r]=(0,p.useState)([]),[i,n]=(0,p.useState)(!1),[o,d]=(0,p.useState)([]);(0,p.useEffect)(()=>{if(l?.routes){let e=l.routes.map((e,t)=>({id:e.id||`route-${t}-${Date.now()}`,model:e.name||e.model||"",utterances:e.utterances||[],description:e.description||"",score_threshold:e.score_threshold||.5}));r(e),d(e.map(e=>e.id))}else r([]),d([])},[l]);let c=(e,t,l)=>{let s=a.map(s=>s.id===e?{...s,[t]:l}:s);r(s),m(s)},m=e=>{let t={routes:e.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))};s?.(t)},u=e.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"w-full max-w-none",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6 w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ei.Text,{className:"text-lg font-semibold",children:"Routes Configuration"}),(0,t.jsx)(R.Tooltip,{title:"Configure routing logic to automatically select the best model based on user input patterns",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(v.Button,{type:"primary",icon:(0,t.jsx)(ti.PlusOutlined,{}),onClick:()=>{let e=`route-${Date.now()}`,t=[...a,{id:e,model:"",utterances:[],description:"",score_threshold:.5}];r(t),m(t),d(t=>[...t,e])},className:"bg-blue-600 hover:bg-blue-700",children:"Add Route"})]}),0===a.length?(0,t.jsx)("div",{className:"text-center py-12 text-gray-500 bg-gray-50 rounded-lg border-2 border-dashed border-gray-200 mb-6",children:(0,t.jsx)(ei.Text,{children:"No routes configured. Click “Add Route” to get started."})}):(0,t.jsx)("div",{className:"space-y-3 mb-6 w-full",children:a.map((e,l)=>(0,t.jsx)(e_.Card,{className:"border border-gray-200 shadow-sm w-full",bodyStyle:{padding:0},children:(0,t.jsx)(tr.Collapse,{ghost:!0,expandIcon:({isActive:e})=>(0,t.jsx)(to.DownOutlined,{rotate:180*!!e}),activeKey:o,onChange:e=>d(Array.isArray(e)?e:[e].filter(Boolean)),items:[{key:e.id,label:(0,t.jsxs)("div",{className:"flex justify-between items-center py-2",children:[(0,t.jsxs)(ei.Text,{className:"font-medium text-base",children:["Route ",l+1,": ",e.model||"Unnamed"]}),(0,t.jsx)(v.Button,{type:"text",danger:!0,icon:(0,t.jsx)(tn.DeleteOutlined,{}),onClick:t=>{var l;let s;t.stopPropagation(),l=e.id,r(s=a.filter(e=>e.id!==l)),m(s),d(e=>e.filter(e=>e!==l))},className:"mr-2"})]}),children:(0,t.jsxs)("div",{className:"px-6 pb-6 w-full",children:[(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(ei.Text,{className:"text-sm font-medium mb-2 block",children:"Model"}),(0,t.jsx)(eL.Select,{value:e.model,onChange:t=>c(e.id,"model",t),placeholder:"Select model",showSearch:!0,style:{width:"100%"},options:u})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(ei.Text,{className:"text-sm font-medium mb-2 block",children:"Description"}),(0,t.jsx)(td,{value:e.description,onChange:t=>c(e.id,"description",t.target.value),placeholder:"Describe when this route should be used...",rows:2,style:{width:"100%"}})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(ei.Text,{className:"text-sm font-medium",children:"Score Threshold"}),(0,t.jsx)(R.Tooltip,{title:"Minimum similarity score to route to this model (0-1)",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(eh.InputNumber,{value:e.score_threshold,onChange:t=>c(e.id,"score_threshold",t||0),min:0,max:1,step:.1,style:{width:"100%"},placeholder:"0.5"})]}),(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(ei.Text,{className:"text-sm font-medium",children:"Example Utterances"}),(0,t.jsx)(R.Tooltip,{title:"Training examples for this route. Type an utterance and press Enter to add it.",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(ei.Text,{className:"text-xs text-gray-500 mb-2",children:"Type an utterance and press Enter to add it. You can also paste multiple lines."}),(0,t.jsx)(eL.Select,{mode:"tags",value:e.utterances,onChange:t=>c(e.id,"utterances",t),placeholder:"Type an utterance and press Enter...",style:{width:"100%"},tokenSeparators:["\n"],maxTagCount:"responsive",allowClear:!0})]})]})}]})},e.id))}),(0,t.jsxs)("div",{className:"border-t pt-6 w-full",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4 w-full",children:[(0,t.jsx)(ei.Text,{className:"text-lg font-semibold",children:"JSON Preview"}),(0,t.jsx)(v.Button,{type:"link",onClick:()=>n(!i),className:"text-blue-600 p-0",children:i?"Hide":"Show"})]}),i&&(0,t.jsx)(e_.Card,{className:"bg-gray-50 w-full",children:(0,t.jsx)("pre",{className:"text-sm overflow-auto max-h-64 w-full",children:JSON.stringify({routes:a.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))},null,2)})})]})]})},{Title:tu,Link:th}=O.Typography,tx=({form:e,handleOk:s,accessToken:a,userRole:r})=>{let[i,n]=(0,p.useState)(!1),[o,d]=(0,p.useState)(!1),[c,m]=(0,p.useState)(""),[u,h]=(0,p.useState)([]),[x,g]=(0,p.useState)([]),[f,j]=(0,p.useState)(!1),[_,b]=(0,p.useState)(!1),[y,N]=(0,p.useState)(null);(0,p.useEffect)(()=>{(async()=>{h((await (0,l.modelAvailableCall)(a,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[a]),(0,p.useEffect)(()=>{(async()=>{try{let e=await (0,ta.fetchAvailableModels)(a);console.log("Fetched models for auto router:",e),g(e)}catch(e){console.error("Error fetching model info for auto router:",e)}})()},[a]);let w=eX.all_admin_roles.includes(r),C=async()=>{d(!0),m(`test-${Date.now()}`),n(!0)},S=()=>{console.log("Auto router submit triggered!"),console.log("Router config:",y);let t=e.getFieldsValue();(console.log("Form values:",t),t.auto_router_name)?t.auto_router_default_model?(e.setFieldsValue({custom_llm_provider:"auto_router",model:t.auto_router_name,api_key:"not_required_for_auto_router"}),y&&y.routes&&0!==y.routes.length)?y.routes.filter(e=>!e.name||!e.description||0===e.utterances.length).length>0?eN.default.fromBackend("Please ensure all routes have a target model, description, and at least one utterance"):e.validateFields().then(t=>{console.log("Form validation passed, submitting with values:",t);let l={...t,auto_router_config:y};console.log("Final submit values:",l),ts(l,a,e,s)}).catch(e=>{console.error("Validation failed:",e);let t=e.errorFields||[];if(t.length>0){let e=t.map(e=>{let t=e.name[0];return({auto_router_name:"Auto Router Name",auto_router_default_model:"Default Model",auto_router_embedding_model:"Embedding Model"})[t]||t});eN.default.fromBackend(`Please fill in the following required fields: ${e.join(", ")}`)}else eN.default.fromBackend("Please fill in all required fields")}):eN.default.fromBackend("Please configure at least one route for the auto router"):eN.default.fromBackend("Please select a Default Model"):eN.default.fromBackend("Please enter an Auto Router Name")};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tu,{level:2,children:"Add Auto Router"}),(0,t.jsx)(ei.Text,{className:"text-gray-600 mb-6",children:"Create an auto router with intelligent routing logic that automatically selects the best model based on user input patterns and semantic matching."}),(0,t.jsx)(e_.Card,{children:(0,t.jsxs)(eP.Form,{form:e,onFinish:S,labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsx)(eP.Form.Item,{rules:[{required:!0,message:"Auto router name is required"}],label:"Auto Router Name",name:"auto_router_name",tooltip:"Unique name for this auto router configuration",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(eE.TextInput,{placeholder:"e.g., auto_router_1, smart_routing"})}),(0,t.jsx)("div",{className:"w-full mb-4",children:(0,t.jsx)(tm,{modelInfo:x,value:y,onChange:t=>{N(t),e.setFieldValue("auto_router_config",t)}})}),(0,t.jsx)(eP.Form.Item,{rules:[{required:!0,message:"Default model is required"}],label:"Default Model",name:"auto_router_default_model",tooltip:"Fallback model to use when auto routing logic cannot determine the best model",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(eL.Select,{placeholder:"Select a default model",onChange:e=>{j("custom"===e)},options:[...Array.from(new Set(x.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0})}),(0,t.jsx)(eP.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",tooltip:"Optional: Embedding model to use for semantic routing decisions",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(eL.Select,{value:e.getFieldValue("auto_router_embedding_model"),placeholder:"Select an embedding model (optional)",onChange:t=>{b("custom"===t),e.setFieldValue("auto_router_embedding_model",t)},options:[...Array.from(new Set(x.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0,allowClear:!0})}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),w&&(0,t.jsx)(eP.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to control who can access this auto router",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:u.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(R.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(O.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(v.Button,{onClick:C,loading:o,children:"Test Connect"}),(0,t.jsx)(v.Button,{onClick:()=>{console.log("Add Auto Router button clicked!"),console.log("Current router config:",y),console.log("Current form values:",e.getFieldsValue()),S()},children:"Add Auto Router"})]})]})]})}),(0,t.jsx)(ef.Modal,{title:"Connection Test Results",open:i,onCancel:()=>{n(!1),d(!1)},footer:[(0,t.jsx)(v.Button,{onClick:()=>{n(!1),d(!1)},children:"Close"},"close")],width:700,children:i&&(0,t.jsx)(tl,{formValues:e.getFieldsValue(),accessToken:a,testMode:"chat",modelName:e.getFieldValue("auto_router_name"),onClose:()=>{n(!1),d(!1)},onTestComplete:()=>d(!1)},c)})]})},tp=(0,a.createQueryKeys)("guardrails"),tg=(0,a.createQueryKeys)("tags");var tf=e.i(793130),tj=e.i(560445),t_=e.i(663435),tb=e.i(790848),ty=e.i(677667),tv=e.i(898667),tN=e.i(130643),tw=e.i(635432),tC=e.i(564897),tS=e.i(435451);let{Text:tk}=O.Typography,tT=({form:e,showCacheControl:l,onCacheControlChange:s})=>{let a=t=>{let l=e.getFieldValue("litellm_extra_params");try{let s=l?JSON.parse(l):{};t.length>0?s.cache_control_injection_points=t:delete s.cache_control_injection_points,Object.keys(s).length>0?e.setFieldValue("litellm_extra_params",JSON.stringify(s,null,2)):e.setFieldValue("litellm_extra_params","")}catch(e){console.error("Error updating cache control points:",e)}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eP.Form.Item,{label:"Cache Control Injection Points",name:"cache_control",valuePropName:"checked",className:"mb-4",tooltip:"Tell litellm where to inject cache control checkpoints. You can specify either by role (to apply to all messages of that role) or by specific message index.",children:(0,t.jsx)(tb.Switch,{onChange:s,className:"bg-gray-600"})}),l&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(tk,{className:"text-sm text-gray-500 block mb-4",children:"Providers like Anthropic, Bedrock API require users to specify where to inject cache control checkpoints, litellm can automatically add them for you as a cost saving feature."}),(0,t.jsx)(eP.Form.List,{name:"cache_control_injection_points",initialValue:[{location:"message"}],children:(l,{add:s,remove:r})=>(0,t.jsxs)(t.Fragment,{children:[l.map((s,i)=>(0,t.jsxs)("div",{className:"flex items-center mb-4 gap-4",children:[(0,t.jsx)(eP.Form.Item,{...s,label:"Type",name:[s.name,"location"],initialValue:"message",className:"mb-0",style:{width:"180px"},children:(0,t.jsx)(eL.Select,{disabled:!0,options:[{value:"message",label:"Message"}]})}),(0,t.jsx)(eP.Form.Item,{...s,label:"Role",name:[s.name,"role"],className:"mb-0",style:{width:"180px"},tooltip:"LiteLLM will mark all messages of this role as cacheable",children:(0,t.jsx)(eL.Select,{placeholder:"Select a role",allowClear:!0,options:[{value:"user",label:"User"},{value:"system",label:"System"},{value:"assistant",label:"Assistant"}],onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),(0,t.jsx)(eP.Form.Item,{...s,label:"Index",name:[s.name,"index"],className:"mb-0",style:{width:"180px"},tooltip:"(Optional) If set litellm will mark the message at this index as cacheable",children:(0,t.jsx)(tS.default,{type:"number",placeholder:"Optional",step:1,onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),l.length>1&&(0,t.jsx)(tC.MinusCircleOutlined,{className:"text-red-500 cursor-pointer text-lg ml-12",onClick:()=>{r(s.name),setTimeout(()=>{a(e.getFieldValue("cache_control_points"))},0)}})]},s.key)),(0,t.jsx)(eP.Form.Item,{children:(0,t.jsxs)("button",{type:"button",className:"flex items-center justify-center w-full border border-dashed border-gray-300 py-2 px-4 text-gray-600 hover:text-blue-600 hover:border-blue-300 transition-all rounded",onClick:()=>s(),children:[(0,t.jsx)(ti.PlusOutlined,{className:"mr-2"}),"Add Injection Point"]})})]})})]})]})};var tF=e.i(122550);let{Link:tI}=O.Typography,tA=({showAdvancedSettings:e,setShowAdvancedSettings:l,teams:s,guardrailsList:a,tagsList:r})=>{let[i]=eP.Form.useForm(),[n,o]=p.default.useState(!1),[d,c]=p.default.useState("per_token"),[m,u]=p.default.useState(!1),h=(e,t)=>t&&(isNaN(Number(t))||0>Number(t))?Promise.reject("Please enter a valid positive number"):Promise.resolve();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(ty.Accordion,{className:"mt-2 mb-4",children:[(0,t.jsx)(tv.AccordionHeader,{children:(0,t.jsx)("b",{children:"Advanced Settings"})}),(0,t.jsx)(tN.AccordionBody,{children:(0,t.jsxs)("div",{className:"bg-white rounded-lg",children:[(0,t.jsx)(eP.Form.Item,{label:"Custom Pricing",name:"custom_pricing",valuePropName:"checked",className:"mb-4",children:(0,t.jsx)(tb.Switch,{onChange:e=>{o(e),e||i.setFieldsValue({input_cost_per_token:void 0,output_cost_per_token:void 0,input_cost_per_second:void 0})},className:"bg-gray-600"})}),(0,t.jsx)(eP.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(R.Tooltip,{title:"Apply safety guardrails to this key to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",className:"mt-4",help:"Select existing guardrails. Go to 'Guardrails' tab to create new guardrails.",children:(0,t.jsx)(eL.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:a.map(e=>({value:e,label:e}))})}),(0,t.jsx)(eP.Form.Item,{label:"Tags",name:"tags",className:"mb-4",children:(0,t.jsx)(eL.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter tags",options:Object.values(r).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}),n&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(eP.Form.Item,{label:"Pricing Model",name:"pricing_model",className:"mb-4",children:(0,t.jsx)(eL.Select,{defaultValue:"per_token",onChange:e=>c(e),options:[{value:"per_token",label:"Per Million Tokens"},{value:"per_second",label:"Per Second"}]})}),"per_token"===d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eP.Form.Item,{label:"Input Cost (per 1M tokens)",name:"input_cost_per_token",rules:[{validator:h}],className:"mb-4",children:(0,t.jsx)(eE.TextInput,{})}),(0,t.jsx)(eP.Form.Item,{label:"Output Cost (per 1M tokens)",name:"output_cost_per_token",rules:[{validator:h}],className:"mb-4",children:(0,t.jsx)(eE.TextInput,{})})]}):(0,t.jsx)(eP.Form.Item,{label:"Cost Per Second",name:"input_cost_per_second",rules:[{validator:h}],className:"mb-4",children:(0,t.jsx)(eE.TextInput,{})})]}),(0,t.jsx)(eP.Form.Item,{label:"Use in pass through routes",name:"use_in_pass_through",valuePropName:"checked",className:"mb-4 mt-4",tooltip:(0,t.jsxs)("span",{children:["Allow using these credentials in pass through routes."," ",(0,t.jsx)(tI,{href:"https://docs.litellm.ai/docs/pass_through/vertex_ai",target:"_blank",children:"Learn more"})]}),children:(0,t.jsx)(tb.Switch,{onChange:e=>{let t=i.getFieldValue("litellm_extra_params");try{let l=t?JSON.parse(t):{};e?l.use_in_pass_through=!0:delete l.use_in_pass_through,Object.keys(l).length>0?i.setFieldValue("litellm_extra_params",JSON.stringify(l,null,2)):i.setFieldValue("litellm_extra_params","")}catch(t){e?i.setFieldValue("litellm_extra_params",JSON.stringify({use_in_pass_through:!0},null,2)):i.setFieldValue("litellm_extra_params","")}},className:"bg-gray-600"})}),(0,t.jsx)(tT,{form:i,showCacheControl:m,onCacheControlChange:e=>{if(u(e),!e){let e=i.getFieldValue("litellm_extra_params");try{let t=e?JSON.parse(e):{};delete t.cache_control_injection_points,Object.keys(t).length>0?i.setFieldValue("litellm_extra_params",JSON.stringify(t,null,2)):i.setFieldValue("litellm_extra_params","")}catch(e){i.setFieldValue("litellm_extra_params","")}}}}),(0,t.jsx)(eP.Form.Item,{label:"LiteLLM Params",name:"litellm_extra_params",tooltip:"Optional litellm params used for making a litellm.completion() call.",className:"mb-4 mt-4",rules:[{validator:tF.formItemValidateJSON}],children:(0,t.jsx)(tw.default,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}),(0,t.jsxs)(eq.Row,{className:"mb-4",children:[(0,t.jsx)(ez.Col,{span:10}),(0,t.jsx)(ez.Col,{span:10,children:(0,t.jsxs)(ei.Text,{className:"text-gray-600 text-sm",children:["Pass JSON of litellm supported params"," ",(0,t.jsx)(tI,{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",children:"litellm.completion() call"})]})})]}),(0,t.jsx)(eP.Form.Item,{label:"Model Info",name:"model_info_params",tooltip:"Optional model info params. Returned when calling `/model/info` endpoint.",className:"mb-0",rules:[{validator:tF.formItemValidateJSON}],children:(0,t.jsx)(tw.default,{rows:4,placeholder:'{ "mode": "chat" }'})})]})})]})})};var tP=e.i(291542),tM=e.i(750113);let tE=({content:e,children:l,width:s="auto",className:a=""})=>{let[r,i]=(0,p.useState)(!1),[n,o]=(0,p.useState)("top"),d=(0,p.useRef)(null);return(0,t.jsxs)("div",{className:"relative inline-block",ref:d,children:[l||(0,t.jsx)(tM.QuestionCircleOutlined,{className:"ml-1 text-gray-500 cursor-help",onMouseEnter:()=>{if(d.current){let e=d.current.getBoundingClientRect(),t=e.top,l=window.innerHeight-e.bottom;t<300&&l>300?o("bottom"):o("top")}i(!0)},onMouseLeave:()=>i(!1)}),r&&(0,t.jsxs)("div",{className:`absolute left-1/2 -translate-x-1/2 z-50 bg-black/90 text-white p-2 rounded-md text-sm font-normal shadow-lg ${a}`,style:{["top"===n?"bottom":"top"]:"100%",width:s,marginBottom:"top"===n?"8px":"0",marginTop:"bottom"===n?"8px":"0"},children:[e,(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 w-0 h-0",style:{top:"top"===n?"100%":"auto",bottom:"bottom"===n?"100%":"auto",borderTop:"top"===n?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderBottom:"bottom"===n?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderLeft:"6px solid transparent",borderRight:"6px solid transparent"}})]})]})},tL=()=>{let e=eP.Form.useFormInstance(),[l,s]=(0,p.useState)(0),a=eP.Form.useWatch("model",e)||[],r=Array.isArray(a)?a:[a],i=eP.Form.useWatch("custom_model_name",e),n=!r.includes("all-wildcard"),o=eP.Form.useWatch("custom_llm_provider",e);if((0,p.useEffect)(()=>{if(i&&r.includes("custom")){let t=(e.getFieldValue("model_mappings")||[]).map(e=>"custom"===e.public_name||"custom"===e.litellm_model?o===ek.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:e);e.setFieldValue("model_mappings",t),s(e=>e+1)}},[i,r,o,e]),(0,p.useEffect)(()=>{if(r.length>0&&!r.includes("all-wildcard")){let t=e.getFieldValue("model_mappings")||[];if(t.length!==r.length||!r.every(e=>t.some(t=>"custom"===e?"custom"===t.litellm_model||t.litellm_model===i:o===ek.Providers.Azure?t.litellm_model===`azure/${e}`:t.litellm_model===e))){let t=r.map(e=>"custom"===e&&i?o===ek.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:o===ek.Providers.Azure?{public_name:e,litellm_model:`azure/${e}`}:{public_name:e,litellm_model:e});e.setFieldValue("model_mappings",t),s(e=>e+1)}}},[r,i,o,e]),!n)return null;let d=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"mb-2 font-normal",children:"The name you specify in your API calls to LiteLLM Proxy"}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Example:"})," If you name your public model"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"example-name"}),", and choose"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"openai/qwen-plus-latest"})," as the LiteLLM model"]}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Usage:"})," You make an API call to the LiteLLM proxy with"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:'model = "example-name"'})]}),(0,t.jsxs)("div",{className:"font-normal",children:[(0,t.jsx)("strong",{children:"Result:"})," LiteLLM sends"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"qwen-plus-latest"})," to the provider"]})]}),c=(0,t.jsx)("div",{children:"The model name LiteLLM will send to the LLM API"}),m=[{title:(0,t.jsxs)("span",{className:"flex items-center",children:["Public Model Name",(0,t.jsx)(tE,{content:d,width:"500px"})]}),dataIndex:"public_name",key:"public_name",render:(l,s,a)=>(0,t.jsx)(eE.TextInput,{value:l,onChange:t=>{let l=t.target.value,s=[...e.getFieldValue("model_mappings")],r=o===ek.Providers.Anthropic,i=l.endsWith("-1m"),n=e.getFieldValue("litellm_extra_params"),d=!n||""===n.trim(),c=l;if(r&&i&&d){let t=JSON.stringify({extra_headers:{"anthropic-beta":"context-1m-2025-08-07"}},null,2);e.setFieldValue("litellm_extra_params",t),c=l.slice(0,-3)}s[a].public_name=c,e.setFieldValue("model_mappings",s)}})},{title:(0,t.jsxs)("span",{className:"flex items-center",children:["LiteLLM Model Name",(0,t.jsx)(tE,{content:c,width:"360px"})]}),dataIndex:"litellm_model",key:"litellm_model"}];return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eP.Form.Item,{label:"Model Mappings",name:"model_mappings",tooltip:"Map public model names to LiteLLM model names for load balancing",labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",rules:[{required:!0,validator:async(e,t)=>{if(!t||0===t.length)throw Error("At least one model mapping is required");if(t.filter(e=>!e.public_name||""===e.public_name.trim()).length>0)throw Error("All model mappings must have valid public names")}}],children:(0,t.jsx)(tP.Table,{dataSource:e.getFieldValue("model_mappings"),columns:m,pagination:!1,size:"small"},l)})})},tR=({selectedProvider:e,providerModels:l,getPlaceholder:s})=>{let a=eP.Form.useFormInstance(),r=t=>{let l=t.target.value,s=(a.getFieldValue("model_mappings")||[]).map(t=>"custom"===t.public_name||"custom"===t.litellm_model?e===ek.Providers.Azure?{public_name:l,litellm_model:`azure/${l}`}:{public_name:l,litellm_model:l}:t);a.setFieldsValue({model_mappings:s})};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eP.Form.Item,{label:"LiteLLM Model Name(s)",tooltip:"The model name LiteLLM will send to the LLM API",className:"mb-0",children:[(0,t.jsx)(eP.Form.Item,{name:"model",rules:[{required:!0,message:`Please enter ${e===ek.Providers.Azure?"a deployment name":"at least one model"}.`}],noStyle:!0,children:e===ek.Providers.Azure||e===ek.Providers.OpenAI_Compatible||e===ek.Providers.Ollama?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eE.TextInput,{placeholder:s(e),onChange:e===ek.Providers.Azure?e=>{let t=e.target.value,l=t?[{public_name:t,litellm_model:`azure/${t}`}]:[];a.setFieldsValue({model:t,model_mappings:l})}:void 0})}):l.length>0?(0,t.jsx)(eL.Select,{mode:"multiple",allowClear:!0,showSearch:!0,placeholder:"Select models",onChange:t=>{let l=Array.isArray(t)?t:[t];if(l.includes("all-wildcard"))a.setFieldsValue({model_name:void 0,model_mappings:[]});else if(JSON.stringify(a.getFieldValue("model"))!==JSON.stringify(l)){let t=l.map(t=>e===ek.Providers.Azure?{public_name:t,litellm_model:`azure/${t}`}:{public_name:t,litellm_model:t});a.setFieldsValue({model:l,model_mappings:t})}},optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{label:"Custom Model Name (Enter below)",value:"custom"},{label:`All ${e} Models (Wildcard)`,value:"all-wildcard"},...l.map(e=>({label:e,value:e}))],style:{width:"100%"}}):(0,t.jsx)(eE.TextInput,{placeholder:s(e)})}),(0,t.jsx)(eP.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.model!==t.model,children:({getFieldValue:l})=>{let s=l("model")||[];return(Array.isArray(s)?s:[s]).includes("custom")&&(0,t.jsx)(eP.Form.Item,{name:"custom_model_name",rules:[{required:!0,message:"Please enter a custom model name."}],className:"mt-2",children:(0,t.jsx)(eE.TextInput,{placeholder:e===ek.Providers.Azure?"Enter Azure deployment name":"Enter custom model name",onChange:r})})}})]}),(0,t.jsxs)(eq.Row,{children:[(0,t.jsx)(ez.Col,{span:10}),(0,t.jsx)(ez.Col,{span:14,children:(0,t.jsx)(ei.Text,{className:"mb-3 mt-1",children:e===ek.Providers.Azure?"Your deployment name will be saved as the public model name, and LiteLLM will use 'azure/deployment-name' internally":"The model name LiteLLM will send to the LLM API"})})]})]})},tO=[{value:"chat",label:"Chat - /chat/completions"},{value:"completion",label:"Completion - /completions"},{value:"embedding",label:"Embedding - /embeddings"},{value:"audio_speech",label:"Audio Speech - /audio/speech"},{value:"audio_transcription",label:"Audio Transcription - /audio/transcriptions"},{value:"image_generation",label:"Image Generation - /images/generations"},{value:"video_generation",label:"Video Generation - /videos"},{value:"rerank",label:"Rerank - /rerank"},{value:"realtime",label:"Realtime - /realtime"},{value:"batch",label:"Batch - /batch"},{value:"ocr",label:"OCR - /ocr"}],{Title:tB,Link:tz}=O.Typography,tV=({form:e,handleOk:a,selectedProvider:i,setSelectedProvider:n,providerModels:o,setProviderModelsFn:d,getPlaceholder:c,uploadProps:m,showAdvancedSettings:u,setShowAdvancedSettings:h,teams:x,credentials:g})=>{let[f,j]=(0,p.useState)("chat"),[_,b]=(0,p.useState)(!1),[y,N]=(0,p.useState)(!1),[w,C]=(0,p.useState)(""),{accessToken:S,userRole:k,premiumUser:T,userId:F}=(0,r.default)(),{data:I,isLoading:A,error:P}=eO(),{data:M,isLoading:E,error:L}=(()=>{let{accessToken:e,userId:t,userRole:a}=(0,r.default)();return(0,s.useQuery)({queryKey:tp.list({}),queryFn:async()=>(await (0,l.getGuardrailsList)(e)).guardrails.map(e=>e.guardrail_name),enabled:!!(e&&t&&a)})})(),{data:B,isLoading:z,error:V}=(()=>{let{accessToken:e,userId:t,userRole:a}=(0,r.default)();return(0,s.useQuery)({queryKey:tg.list({}),queryFn:async()=>await (0,l.tagListCall)(e),enabled:!!(e&&t&&a)})})(),q=async()=>{N(!0),C(`test-${Date.now()}`),b(!0)},[D,$]=(0,p.useState)(!1),[G,H]=(0,p.useState)([]),[U,J]=(0,p.useState)(null);(0,p.useEffect)(()=>{(async()=>{H((await (0,l.modelAvailableCall)(S,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[S]);let K=(0,p.useMemo)(()=>I?[...I].sort((e,t)=>e.provider_display_name.localeCompare(t.provider_display_name)):[],[I]),W=P?P instanceof Error?P.message:"Failed to load providers":null,Q=eX.all_admin_roles.includes(k),Y=(0,eX.isUserTeamAdminForAnyTeam)(x,F);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tB,{level:2,children:"Add Model"}),(0,t.jsx)(e_.Card,{children:(0,t.jsx)(eP.Form,{form:e,onFinish:async e=>{console.log("🔥 Form onFinish triggered with values:",e),await a().then(()=>{J(null)})},onFinishFailed:e=>{console.log("💥 Form onFinishFailed triggered:",e)},labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:(0,t.jsxs)(t.Fragment,{children:[Y&&!Q&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eP.Form.Item,{label:"Select Team",name:"team_id",rules:[{required:!0,message:"Please select a team to continue"}],tooltip:"Select the team for which you want to add this model",children:(0,t.jsx)(t_.default,{teams:x,onChange:e=>{J(e)}})}),!U&&(0,t.jsx)(tj.Alert,{message:"Team Selection Required",description:"As a team admin, you need to select your team first before adding models.",type:"info",showIcon:!0,className:"mb-4"})]}),(Q||Y&&U)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eP.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"E.g. OpenAI, Azure OpenAI, Anthropic, Bedrock, etc.",labelCol:{span:10},labelAlign:"left",children:(0,t.jsxs)(eL.Select,{virtual:!1,showSearch:!0,loading:A,placeholder:A?"Loading providers...":"Select a provider",optionFilterProp:"data-label",onChange:t=>{n(t),d(t),e.setFieldsValue({custom_llm_provider:t}),e.setFieldsValue({model:[],model_name:void 0})},children:[W&&0===K.length&&(0,t.jsx)(eL.Select.Option,{value:"",children:W},"__error"),K.map(e=>{let l=e.provider_display_name,s=e.provider;return ek.providerLogoMap[l],(0,t.jsx)(eL.Select.Option,{value:s,"data-label":l,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(X.ProviderLogo,{provider:s,className:"w-5 h-5"}),(0,t.jsx)("span",{children:l})]})},s)})]})}),(0,t.jsx)(tR,{selectedProvider:i,providerModels:o,getPlaceholder:c}),(0,t.jsx)(tL,{}),(0,t.jsx)(eP.Form.Item,{label:"Mode",name:"mode",className:"mb-1",children:(0,t.jsx)(eL.Select,{style:{width:"100%"},value:f,onChange:e=>j(e),options:tO})}),(0,t.jsxs)(eq.Row,{children:[(0,t.jsx)(ez.Col,{span:10}),(0,t.jsx)(ez.Col,{span:10,children:(0,t.jsxs)(ei.Text,{className:"mb-5 mt-1",children:[(0,t.jsx)("strong",{children:"Optional"})," - LiteLLM endpoint to use when health checking this model"," ",(0,t.jsx)(tz,{href:"https://docs.litellm.ai/docs/proxy/health#health",target:"_blank",children:"Learn more"})]})})]}),(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(O.Typography.Text,{className:"text-sm text-gray-500 mb-2",children:"Either select existing credentials OR enter new provider credentials below"})}),(0,t.jsx)(eP.Form.Item,{label:"Existing Credentials",name:"litellm_credential_name",initialValue:null,children:(0,t.jsx)(eL.Select,{showSearch:!0,placeholder:"Select or search for existing credentials",optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{value:null,label:"None"},...g.map(e=>({value:e.credential_name,label:e.credential_name}))],allowClear:!0})}),(0,t.jsx)(eP.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.litellm_credential_name!==t.litellm_credential_name||e.provider!==t.provider,children:({getFieldValue:e})=>{let l=e("litellm_credential_name");return(console.log("🔑 Credential Name Changed:",l),l)?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"OR"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(0,t.jsx)(eU,{selectedProvider:i,uploadProps:m})]})}}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Model Info Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(Q||!Y)&&(0,t.jsx)(eP.Form.Item,{label:"Team-BYOK Model",tooltip:"Only use this model + credential combination for this team. Useful when teams want to onboard their own OpenAI keys.",className:"mb-4",children:(0,t.jsx)(R.Tooltip,{title:T?"":"This is an enterprise-only feature. Upgrade to premium to restrict model+credential combinations to a specific team.",placement:"top",children:(0,t.jsx)(tf.Switch,{checked:D,onChange:t=>{$(t),t||e.setFieldValue("team_id",void 0)},disabled:!T})})}),D&&(Q||!Y)&&(0,t.jsx)(eP.Form.Item,{label:"Select Team",name:"team_id",className:"mb-4",tooltip:"Only keys for this team will be able to call this model.",rules:[{required:D&&!Q,message:"Please select a team."}],children:(0,t.jsx)(t_.default,{teams:x,disabled:!T})}),Q&&(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eP.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to give users access to select models, and add new ones to the group over time.",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:G.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})}),(0,t.jsx)(tA,{showAdvancedSettings:u,setShowAdvancedSettings:h,teams:x,guardrailsList:M||[],tagsList:B||{}})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(R.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(O.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(v.Button,{onClick:q,loading:y,children:"Test Connect"}),(0,t.jsx)(v.Button,{htmlType:"submit",children:"Add Model"})]})]})]})})}),(0,t.jsx)(ef.Modal,{title:"Connection Test Results",open:_,onCancel:()=>{b(!1),N(!1)},footer:[(0,t.jsx)(v.Button,{onClick:()=>{b(!1),N(!1)},children:"Close"},"close")],width:700,children:_&&(0,t.jsx)(tl,{formValues:e.getFieldsValue(),accessToken:S,testMode:f,modelName:e.getFieldValue("model_name")||e.getFieldValue("model"),onClose:()=>{b(!1),N(!1)},onTestComplete:()=>N(!1)},w)})]})},tq=({form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:n,uploadProps:o,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u,accessToken:h,userRole:x})=>{let[p]=eP.Form.useForm();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(e4.TabGroup,{className:"w-full",children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Add Model"}),(0,t.jsx)(e2.Tab,{children:"Add Auto Router"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(tV,{form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:n,uploadProps:o,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u})}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(tx,{form:p,handleOk:()=>{p.validateFields().then(e=>{ts(e,h,p,l)}).catch(e=>{console.error("Validation failed:",e)})},accessToken:h,userRole:x})})]})]})})};var tD=e.i(798496),t$=e.i(536916),tG=e.i(502275),tH=e.i(122577);let tU=[{pattern:/Missing .* API Key/i,replacement:"Missing API Key"},{pattern:/Connection timeout/i,replacement:"Connection timeout"},{pattern:/Network.*not.*ok/i,replacement:"Network connection failed"},{pattern:/403.*Forbidden/i,replacement:"Access forbidden - check API key permissions"},{pattern:/401.*Unauthorized/i,replacement:"Unauthorized - invalid API key"},{pattern:/429.*rate limit/i,replacement:"Rate limit exceeded"},{pattern:/500.*Internal Server Error/i,replacement:"Provider internal server error"},{pattern:/litellm\.AuthenticationError/i,replacement:"Authentication failed"},{pattern:/litellm\.RateLimitError/i,replacement:"Rate limit exceeded"},{pattern:/litellm\.APIError/i,replacement:"API error"}],tJ=({accessToken:e,modelData:s,all_models_on_proxy:a,getDisplayModelName:r,setSelectedModelId:i,teams:n})=>{let o,d,c,m,[u,h]=(0,p.useState)({}),[x,g]=(0,p.useState)([]),[f,j]=(0,p.useState)(!1),[_,b]=(0,p.useState)(!1),[y,N]=(0,p.useState)(null),[w,C]=(0,p.useState)(!1),[S,k]=(0,p.useState)(null);(0,p.useRef)(null),(0,p.useEffect)(()=>{e&&s?.data&&(async()=>{let t={};s.data.forEach(e=>{t[e.model_name]={status:"none",lastCheck:"None",lastSuccess:"None",loading:!1,error:void 0,fullError:void 0,successResponse:void 0}});try{let a=await (0,l.latestHealthChecksCall)(e);a&&a.latest_health_checks&&"object"==typeof a.latest_health_checks&&Object.entries(a.latest_health_checks).forEach(([e,l])=>{if(!l)return;let a=null,r=s.data.find(t=>t.model_name===e);if(r)a=r.model_name;else{let t=s.data.find(t=>t.model_info&&t.model_info.id===e);if(t)a=t.model_name;else if(l.model_name){let e=s.data.find(e=>e.model_name===l.model_name);e&&(a=e.model_name)}}if(a){let e=l.error_message||void 0;t[a]={status:l.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():"None",loading:!1,error:e?T(e):void 0,fullError:e,successResponse:"healthy"===l.status?l:void 0}}})}catch(e){console.warn("Failed to load health check history (using default states):",e)}h(t)})()},[e,s]);let T=e=>{if(!e)return"Health check failed";let t="string"==typeof e?e:JSON.stringify(e),l=t.match(/(\w+Error):\s*(\d{3})/i);if(l)return`${l[1]}: ${l[2]}`;let s=t.match(/(AuthenticationError|RateLimitError|BadRequestError|InternalServerError|TimeoutError|NotFoundError|ForbiddenError|ServiceUnavailableError|BadGatewayError|ContentPolicyViolationError|\w+Error)/i),a=t.match(/\b(400|401|403|404|408|429|500|502|503|504)\b/);if(s&&a)return`${s[1]}: ${a[1]}`;if(a){let e=a[1];return`${({400:"BadRequestError",401:"AuthenticationError",403:"ForbiddenError",404:"NotFoundError",408:"TimeoutError",429:"RateLimitError",500:"InternalServerError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError"})[e]}: ${e}`}if(s){let e=s[1],t={AuthenticationError:"401",RateLimitError:"429",BadRequestError:"400",InternalServerError:"500",TimeoutError:"408",NotFoundError:"404",ForbiddenError:"403",ServiceUnavailableError:"503",BadGatewayError:"502",GatewayTimeoutError:"504",ContentPolicyViolationError:"400"}[e];return t?`${e}: ${t}`:e}for(let{pattern:e,replacement:l}of tU)if(e.test(t))return l;if(/missing.*api.*key|invalid.*key|unauthorized/i.test(t))return"AuthenticationError: 401";if(/rate.*limit|too.*many.*requests/i.test(t))return"RateLimitError: 429";if(/timeout|timed.*out/i.test(t))return"TimeoutError: 408";if(/not.*found/i.test(t))return"NotFoundError: 404";if(/forbidden|access.*denied/i.test(t))return"ForbiddenError: 403";if(/internal.*server.*error/i.test(t))return"InternalServerError: 500";let r=t.replace(/[\n\r]+/g," ").replace(/\s+/g," ").trim(),i=r.split(/[.!?]/),n=i[0]?.trim();return n&&n.length>0?n.length>100?n.substring(0,97)+"...":n:r.length>100?r.substring(0,97)+"...":r},F=async t=>{if(e){h(e=>({...e,[t]:{...e[t],loading:!0,status:"checking"}}));try{let a=await (0,l.individualModelHealthCheckCall)(e,t),r=new Date().toLocaleString();if(a.unhealthy_count>0&&a.unhealthy_endpoints&&a.unhealthy_endpoints.length>0){let e=a.unhealthy_endpoints[0]?.error||"Health check failed",l=T(e);h(s=>({...s,[t]:{status:"unhealthy",lastCheck:r,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else h(e=>({...e,[t]:{status:"healthy",lastCheck:r,lastSuccess:r,loading:!1,successResponse:a}}));try{let a=await (0,l.latestHealthChecksCall)(e),r=s.data.find(e=>e.model_name===t);if(r){let e=r.model_info.id,l=a.latest_health_checks?.[e];if(l){let e=l.error_message||void 0;h(s=>({...s,[t]:{status:l.status||s[t]?.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():s[t]?.lastCheck||"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():s[t]?.lastSuccess||"None",loading:!1,error:e?T(e):s[t]?.error,fullError:e||s[t]?.fullError,successResponse:"healthy"===l.status?l:s[t]?.successResponse}}))}}}catch(e){console.debug("Could not fetch updated status from database (non-critical):",e)}}catch(a){let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=T(l);h(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}}},I=async()=>{let t=x.length>0?x:a,r=t.reduce((e,t)=>(e[t]={...u[t],loading:!0,status:"checking"},e),{});h(e=>({...e,...r}));let i={},n=t.map(async t=>{if(e)try{let s=await (0,l.individualModelHealthCheckCall)(e,t);i[t]=s;let a=new Date().toLocaleString();if(s.unhealthy_count>0&&s.unhealthy_endpoints&&s.unhealthy_endpoints.length>0){let e=s.unhealthy_endpoints[0]?.error||"Health check failed",l=T(e);h(s=>({...s,[t]:{status:"unhealthy",lastCheck:a,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else h(e=>({...e,[t]:{status:"healthy",lastCheck:a,lastSuccess:a,loading:!1,successResponse:s}}))}catch(a){console.error(`Health check failed for ${t}:`,a);let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=T(l);h(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}});await Promise.allSettled(n);try{if(!e)return;let a=await (0,l.latestHealthChecksCall)(e);a.latest_health_checks&&Object.entries(a.latest_health_checks).forEach(([e,l])=>{let a=s.data.find(t=>t.model_info.id===e);if(a&&t.includes(a.model_name)&&l){let e=a.model_name,t=l.error_message||void 0;h(s=>{let a=s[e];return{...s,[e]:{status:l.status||a?.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastCheck||"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastSuccess||"None",loading:!1,error:t?T(t):a?.error,fullError:t||a?.fullError,successResponse:"healthy"===l.status?l:a?.successResponse}}})}})}catch(e){console.warn("Failed to fetch updated health statuses from database (non-critical):",e)}},A=e=>{j(e),e?g(a):g([])},E=()=>{b(!1),N(null)},L=()=>{C(!1),k(null)};return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Model Health Status"}),(0,t.jsx)(ei.Text,{className:"text-gray-600 mt-1",children:"Run health checks on individual models to verify they are working correctly"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[x.length>0&&(0,t.jsx)(M.Button,{size:"sm",variant:"light",onClick:()=>A(!1),className:"px-3 py-1 text-sm",children:"Clear Selection"}),(0,t.jsx)(M.Button,{size:"sm",variant:"secondary",onClick:I,disabled:Object.values(u).some(e=>e.loading),className:"px-3 py-1 text-sm",children:x.length>0&&x.length{t?g(t=>[...t,e]):(g(t=>t.filter(t=>t!==e)),j(!1))},d=e=>{switch(e){case"healthy":return(0,t.jsx)(P.Badge,{color:"emerald",children:"healthy"});case"unhealthy":return(0,t.jsx)(P.Badge,{color:"red",children:"unhealthy"});case"checking":return(0,t.jsx)(P.Badge,{color:"blue",children:"checking"});case"none":return(0,t.jsx)(P.Badge,{color:"gray",children:"none"});default:return(0,t.jsx)(P.Badge,{color:"gray",children:"unknown"})}},c=(e,t,l)=>{N({modelName:e,cleanedError:t,fullError:l}),b(!0)},m=(e,t)=>{k({modelName:e,response:t}),C(!0)},[{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(t$.Checkbox,{checked:f,indeterminate:x.length>0&&!f,onChange:e=>A(e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)("span",{children:"Model ID"})]}),accessorKey:"model_info.id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_name,a=x.includes(s);return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(t$.Checkbox,{checked:a,onChange:e=>o(s,e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)(R.Tooltip,{title:l.model_info.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>i&&i(l.model_info.id),children:l.model_info.id})})]})}},{header:"Model Name",accessorKey:"model_name",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=r(l)||l.model_name;return(0,t.jsx)("div",{className:"font-medium text-sm",children:(0,t.jsx)(R.Tooltip,{title:s,children:(0,t.jsx)("div",{className:"truncate max-w-[200px]",children:s})})})}},{header:"Team Alias",accessorKey:"model_info.team_id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_info?.team_id;if(!s)return(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"-"});let a=n?.find(e=>e.team_id===s),r=a?.team_alias||s;return(0,t.jsx)("div",{className:"text-sm",children:(0,t.jsx)(R.Tooltip,{title:r,children:(0,t.jsx)("div",{className:"truncate max-w-[150px]",children:r})})})}},{header:"Health Status",accessorKey:"health_status",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("health_status")||"unknown",a=t.getValue("health_status")||"unknown",r={healthy:0,checking:1,unknown:2,unhealthy:3};return(r[s]??4)-(r[a]??4)},cell:({row:e})=>{let l=e.original,s={status:l.health_status,loading:l.health_loading,error:l.health_error};if(s.loading)return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}),(0,t.jsx)(ei.Text,{className:"text-gray-600 text-sm",children:"Checking..."})]});let a=l.model_name,r="healthy"===s.status&&u[a]?.successResponse;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[d(s.status),r&&m&&(0,t.jsx)(R.Tooltip,{title:"View response details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>m(a,u[a]?.successResponse),className:"p-1 text-green-600 hover:text-green-800 hover:bg-green-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tG.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Error Details",accessorKey:"health_error",enableSorting:!1,cell:({row:e})=>{let l=e.original.model_name,s=u[l];if(!s?.error)return(0,t.jsx)(ei.Text,{className:"text-gray-400 text-sm",children:"No errors"});let a=s.error,r=s.fullError||s.error;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"max-w-[200px]",children:(0,t.jsx)(R.Tooltip,{title:a,placement:"top",children:(0,t.jsx)(ei.Text,{className:"text-red-600 text-sm truncate",children:a})})}),c&&r!==a&&(0,t.jsx)(R.Tooltip,{title:"View full error details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>c(l,a,r),className:"p-1 text-red-600 hover:text-red-800 hover:bg-red-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tG.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Last Check",accessorKey:"last_check",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_check")||"Never checked",a=t.getValue("last_check")||"Never checked";if("Never checked"===s&&"Never checked"===a)return 0;if("Never checked"===s)return 1;if("Never checked"===a)return -1;if("Check in progress..."===s&&"Check in progress..."===a)return 0;if("Check in progress..."===s)return -1;if("Check in progress..."===a)return 1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=e.original;return(0,t.jsx)(ei.Text,{className:"text-gray-600 text-sm",children:l.health_loading?"Check in progress...":l.last_check})}},{header:"Last Success",accessorKey:"last_success",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_success")||"Never succeeded",a=t.getValue("last_success")||"Never succeeded";if("Never succeeded"===s&&"Never succeeded"===a)return 0;if("Never succeeded"===s)return 1;if("Never succeeded"===a)return -1;if("None"===s&&"None"===a)return 0;if("None"===s)return 1;if("None"===a)return -1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=u[e.original.model_name],s=l?.lastSuccess||"None";return(0,t.jsx)(ei.Text,{className:"text-gray-600 text-sm",children:s})}},{header:"Actions",id:"actions",cell:({row:e})=>{let l=e.original,s=l.model_name,a=l.health_status&&"none"!==l.health_status,r=l.health_loading?"Checking...":a?"Re-run Health Check":"Run Health Check";return(0,t.jsx)(R.Tooltip,{title:r,placement:"top",children:(0,t.jsx)("button",{className:`p-2 rounded-md transition-colors ${l.health_loading?"text-gray-400 cursor-not-allowed bg-gray-100":"text-indigo-600 hover:text-indigo-700 hover:bg-indigo-50"}`,onClick:()=>{l.health_loading||F(s)},disabled:l.health_loading,children:l.health_loading?(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}):a?(0,t.jsx)(eZ.RefreshIcon,{className:"h-4 w-4"}):(0,t.jsx)(tH.PlayIcon,{className:"h-4 w-4"})})})},enableSorting:!1}]),data:s.data.map(e=>{let t=u[e.model_name]||{status:"none",lastCheck:"None",loading:!1};return{model_name:e.model_name,model_info:e.model_info,provider:e.provider,litellm_model_name:e.litellm_model_name,health_status:t.status,last_check:t.lastCheck,last_success:t.lastSuccess||"None",health_loading:t.loading,health_error:t.error,health_full_error:t.fullError}}),isLoading:!1})}),(0,t.jsx)(ef.Modal,{title:y?`Health Check Error - ${y.modelName}`:"Error Details",open:_,onCancel:E,footer:[(0,t.jsx)(v.Button,{onClick:E,children:"Close"},"close")],width:800,children:y&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Error:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,t.jsx)(ei.Text,{className:"text-red-800",children:y.cleanedError})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Full Error Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:y.fullError})})]})]})}),(0,t.jsx)(ef.Modal,{title:S?`Health Check Response - ${S.modelName}`:"Response Details",open:w,onCancel:L,footer:[(0,t.jsx)(v.Button,{onClick:L,children:"Close"},"close")],width:800,children:S&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Status:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-green-50 border border-green-200 rounded-md",children:(0,t.jsx)(ei.Text,{className:"text-green-800",children:"Health check passed successfully"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Response Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:JSON.stringify(S.response,null,2)})})]})]})})]})};var tK=e.i(250980),tW=e.i(797672),tQ=e.i(502547);let tY=({accessToken:e,initialModelGroupAlias:s={},onAliasUpdate:a})=>{let[r,i]=(0,p.useState)([]),[n,o]=(0,p.useState)({aliasName:"",targetModelGroup:""}),[d,c]=(0,p.useState)(null),[m,u]=(0,p.useState)(!0);(0,p.useEffect)(()=>{i(Object.entries(s).map(([e,t],l)=>({id:`${l}-${e}`,aliasName:e,targetModelGroup:"string"==typeof t?t:t?.model??""})))},[s]);let h=async t=>{if(!e)return console.error("Access token is missing"),!1;try{let s={};return t.forEach(e=>{s[e.aliasName]=e.targetModelGroup}),console.log("Saving model group alias:",s),await (0,l.setCallbacksCall)(e,{router_settings:{model_group_alias:s}}),a&&a(s),!0}catch(e){return console.error("Failed to save model group alias settings:",e),eN.default.fromBackend("Failed to save model group alias settings"),!1}},x=async()=>{if(!n.aliasName||!n.targetModelGroup)return void eN.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.aliasName===n.aliasName))return void eN.default.fromBackend("An alias with this name already exists");let e=[...r,{id:`${Date.now()}-${n.aliasName}`,aliasName:n.aliasName,targetModelGroup:n.targetModelGroup}];await h(e)&&(i(e),o({aliasName:"",targetModelGroup:""}),eN.default.success("Alias added successfully"))},v=async()=>{if(!d)return;if(!d.aliasName||!d.targetModelGroup)return void eN.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.id!==d.id&&e.aliasName===d.aliasName))return void eN.default.fromBackend("An alias with this name already exists");let e=r.map(e=>e.id===d.id?d:e);await h(e)&&(i(e),c(null),eN.default.success("Alias updated successfully"))},N=()=>{c(null)},w=async e=>{let t=r.filter(t=>t.id!==e);await h(t)&&(i(t),eN.default.success("Alias deleted successfully"))},C=r.reduce((e,t)=>(e[t.aliasName]=t.targetModelGroup,e),{});return(0,t.jsxs)(eA.Card,{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between cursor-pointer",onClick:()=>u(!m),children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(eu.Title,{className:"mb-0",children:"Model Group Alias Settings"}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Create aliases for your model groups to simplify API calls. For example, you can create an alias 'gpt-4o' that points to 'gpt-4o-mini-openai' model group."})]}),(0,t.jsx)("div",{className:"flex items-center",children:m?(0,t.jsx)(S.ChevronDownIcon,{className:"w-5 h-5 text-gray-500"}):(0,t.jsx)(tQ.ChevronRightIcon,{className:"w-5 h-5 text-gray-500"})})]}),m&&(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(ei.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:n.aliasName,onChange:e=>o({...n,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model Group"}),(0,t.jsx)("input",{type:"text",value:n.targetModelGroup,onChange:e=>o({...n,targetModelGroup:e.target.value}),placeholder:"e.g., gpt-4o-mini-openai",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:x,disabled:!n.aliasName||!n.targetModelGroup,className:`flex items-center px-4 py-2 rounded-md text-sm ${!n.aliasName||!n.targetModelGroup?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(tK.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(ei.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(g.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(f.TableHead,{children:(0,t.jsxs)(b.TableRow,{children:[(0,t.jsx)(j.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(j.TableHeaderCell,{className:"py-1 h-8",children:"Target Model Group"}),(0,t.jsx)(j.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(_.TableBody,{children:[r.map(e=>(0,t.jsx)(b.TableRow,{className:"h-8",children:d&&d.id===e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.aliasName,onChange:e=>c({...d,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.targetModelGroup,onChange:e=>c({...d,targetModelGroup:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:v,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:N,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-900",children:e.aliasName}),(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-500",children:e.targetModelGroup}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{c({...e})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(tW.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>w(e.id),className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(A.TrashIcon,{className:"w-3 h-3"})})]})})]})},e.id)),0===r.length&&(0,t.jsx)(b.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(eu.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(ei.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config.yaml:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["router_settings:",(0,t.jsx)("br",{})," model_group_alias:",0===Object.keys(C).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{})," # No aliases configured yet"]}):Object.entries(C).map(([e,l])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),' "',e,'": "',l,'"']},e))]})})]})]})]})};var tX=e.i(530212),tZ=e.i(678784),t0=e.i(118366),t1=e.i(500330);let t2=({isVisible:e,onCancel:s,onSuccess:a,modelData:r,accessToken:i,userRole:n})=>{let[o]=eP.Form.useForm(),[d,c]=(0,p.useState)(!1),[m,u]=(0,p.useState)([]),[h,x]=(0,p.useState)([]),[g,f]=(0,p.useState)(!1),[j,_]=(0,p.useState)(!1),[b,y]=(0,p.useState)(null);(0,p.useEffect)(()=>{e&&r&&N()},[e,r]),(0,p.useEffect)(()=>{let t=async()=>{if(i)try{let e=await (0,l.modelAvailableCall)(i,"","",!1,null,!0,!0);u(e.data.map(e=>e.id))}catch(e){console.error("Error fetching model access groups:",e)}},s=async()=>{if(i)try{let e=await (0,ta.fetchAvailableModels)(i);x(e)}catch(e){console.error("Error fetching model info:",e)}};e&&(t(),s())},[e,i]);let N=()=>{try{let e=null;r.litellm_params?.auto_router_config&&(e="string"==typeof r.litellm_params.auto_router_config?JSON.parse(r.litellm_params.auto_router_config):r.litellm_params.auto_router_config),y(e),o.setFieldsValue({auto_router_name:r.model_name,auto_router_default_model:r.litellm_params?.auto_router_default_model||"",auto_router_embedding_model:r.litellm_params?.auto_router_embedding_model||"",model_access_group:r.model_info?.access_groups||[]});let t=new Set(h.map(e=>e.model_group));f(!t.has(r.litellm_params?.auto_router_default_model)),_(!t.has(r.litellm_params?.auto_router_embedding_model))}catch(e){console.error("Error parsing auto router config:",e),eN.default.fromBackend("Error loading auto router configuration")}},w=async()=>{try{c(!0);let e=await o.validateFields(),t={...r.litellm_params,auto_router_config:JSON.stringify(b),auto_router_default_model:e.auto_router_default_model,auto_router_embedding_model:e.auto_router_embedding_model||void 0},n={...r.model_info,access_groups:e.model_access_group||[]},d={model_name:e.auto_router_name,litellm_params:t,model_info:n};await (0,l.modelPatchUpdateCall)(i,d,r.model_info.id);let m={...r,model_name:e.auto_router_name,litellm_params:t,model_info:n};eN.default.success("Auto router configuration updated successfully"),a(m),s()}catch(e){console.error("Error updating auto router:",e),eN.default.fromBackend("Failed to update auto router configuration")}finally{c(!1)}},C=h.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsx)(ef.Modal,{title:"Edit Auto Router Configuration",open:e,onCancel:s,footer:[(0,t.jsx)(v.Button,{onClick:s,children:"Cancel"},"cancel"),(0,t.jsx)(v.Button,{loading:d,onClick:w,children:"Save Changes"},"submit")],width:1e3,destroyOnHidden:!0,children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(ei.Text,{className:"text-gray-600",children:"Edit the auto router configuration including routing logic, default models, and access settings."}),(0,t.jsxs)(eP.Form,{form:o,layout:"vertical",className:"space-y-4",children:[(0,t.jsx)(eP.Form.Item,{label:"Auto Router Name",name:"auto_router_name",rules:[{required:!0,message:"Auto router name is required"}],children:(0,t.jsx)(eE.TextInput,{placeholder:"e.g., auto_router_1, smart_routing"})}),(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)(tm,{modelInfo:h,value:b,onChange:e=>{y(e)}})}),(0,t.jsx)(eP.Form.Item,{label:"Default Model",name:"auto_router_default_model",rules:[{required:!0,message:"Default model is required"}],children:(0,t.jsx)(eL.Select,{placeholder:"Select a default model",onChange:e=>{f("custom"===e)},options:[...C,{value:"custom",label:"Enter custom model name"}],showSearch:!0})}),(0,t.jsx)(eP.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",children:(0,t.jsx)(eL.Select,{placeholder:"Select an embedding model (optional)",onChange:e=>{_("custom"===e)},options:[...C,{value:"custom",label:"Enter custom model name"}],showSearch:!0,allowClear:!0})}),"Admin"===n&&(0,t.jsx)(eP.Form.Item,{label:"Model Access Groups",name:"model_access_group",tooltip:"Control who can access this auto router",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:m.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})]})]})})},{Title:t4,Link:t5}=O.Typography,t6=({isVisible:e,onCancel:l,onAddCredential:s,existingCredential:a,setIsCredentialModalOpen:r})=>{let[i]=eP.Form.useForm();return console.log(`existingCredential in add credentials tab: ${JSON.stringify(a)}`),(0,t.jsx)(ef.Modal,{title:"Reuse Credentials",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,children:(0,t.jsxs)(eP.Form,{form:i,onFinish:e=>{s(e),i.resetFields(),r(!1)},layout:"vertical",children:[(0,t.jsx)(eP.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:a?.credential_name,children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),Object.entries(a?.credential_values||{}).map(([e,l])=>(0,t.jsx)(eP.Form.Item,{label:e,name:e,initialValue:l,children:(0,t.jsx)(eE.TextInput,{placeholder:`Enter ${e}`,disabled:!0})},e)),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(R.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(t5,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(v.Button,{htmlType:"submit",children:"Reuse Credentials"})]})]})]})})};function t3({modelId:e,onClose:s,accessToken:a,userID:r,userRole:i,onModelUpdate:n,modelAccessGroups:o}){let m,[u]=eP.Form.useForm(),[h,x]=(0,p.useState)(null),[g,f]=(0,p.useState)(!1),[j,_]=(0,p.useState)(!1),[b,y]=(0,p.useState)(!1),[N,w]=(0,p.useState)(!1),[C,S]=(0,p.useState)(!1),[k,T]=(0,p.useState)(!1),[F,P]=(0,p.useState)(null),[E,L]=(0,p.useState)(!1),[O,B]=(0,p.useState)({}),[z,V]=(0,p.useState)(!1),[q,D]=(0,p.useState)([]),[$,G]=(0,p.useState)({}),{data:H,isLoading:U}=(0,c.useModelsInfo)(1,50,void 0,e),{data:J}=d(),{data:K}=(0,c.useModelHub)(),W=e=>null!=J&&"object"==typeof J&&e in J?J[e].litellm_provider:"openai",Q=(0,p.useMemo)(()=>H?.data&&0!==H.data.length&&ec(H,W).data[0]||null,[H,J]),Y=("Admin"===i||Q?.model_info?.created_by===r)&&Q?.model_info?.db_model,X="Admin"===i,Z=Q?.litellm_params?.auto_router_config!=null,es=Q?.litellm_params?.litellm_credential_name!=null&&Q?.litellm_params?.litellm_credential_name!=void 0;(0,p.useEffect)(()=>{if(Q&&!h){let e=Q;e.litellm_model_name||(e={...e,litellm_model_name:e?.litellm_params?.litellm_model_name??e?.litellm_params?.model??e?.model_info?.key??null}),x(e),e?.litellm_params?.cache_control_injection_points&&L(!0)}},[Q,h]),(0,p.useEffect)(()=>{let t=async()=>{if(!a||Q)return;let t=(await (0,l.modelInfoV1Call)(a,e)).data[0];t&&!t.litellm_model_name&&(t={...t,litellm_model_name:t?.litellm_params?.litellm_model_name??t?.litellm_params?.model??t?.model_info?.key??null}),x(t),t?.litellm_params?.cache_control_injection_points&&L(!0)},s=async()=>{if(a)try{let e=(await (0,l.getGuardrailsList)(a)).guardrails.map(e=>e.guardrail_name);D(e)}catch(e){console.error("Failed to fetch guardrails:",e)}},r=async()=>{if(a)try{let e=await (0,l.tagListCall)(a);G(e)}catch(e){console.error("Failed to fetch tags:",e)}};(async()=>{if(!a||es)return;let t=await (0,l.credentialGetCall)(a,null,e);P({credential_name:t.credential_name,credential_values:t.credential_values,credential_info:t.credential_info})})(),t(),s(),r()},[a,e]);let ea=async t=>{if(!a)return;let s={credential_name:t.credential_name,model_id:e,credential_info:{custom_llm_provider:h.litellm_params?.custom_llm_provider}};eN.default.info("Storing credential.."),await (0,l.credentialCreateCall)(a,s),eN.default.success("Credential stored successfully")},en=async t=>{try{let s;if(!a)return;S(!0);let r={};try{r=t.litellm_extra_params?JSON.parse(t.litellm_extra_params):{}}catch(e){eN.default.fromBackend("Invalid JSON in LiteLLM Params"),S(!1);return}let i={...t.litellm_params,...r,model:t.litellm_model_name,api_base:t.api_base,custom_llm_provider:t.custom_llm_provider,organization:t.organization,tpm:t.tpm,rpm:t.rpm,max_retries:t.max_retries,timeout:t.timeout,stream_timeout:t.stream_timeout,input_cost_per_token:t.input_cost/1e6,output_cost_per_token:t.output_cost/1e6,tags:t.tags};t.guardrails&&(i.guardrails=t.guardrails),t.cache_control&&t.cache_control_injection_points?.length>0?i.cache_control_injection_points=t.cache_control_injection_points:delete i.cache_control_injection_points;try{s=t.model_info?JSON.parse(t.model_info):Q.model_info,t.model_access_group&&(s={...s,access_groups:t.model_access_group}),void 0!==t.health_check_model&&(s={...s,health_check_model:t.health_check_model})}catch(e){eN.default.fromBackend("Invalid JSON in Model Info");return}let o={model_name:t.model_name,litellm_params:i,model_info:s};await (0,l.modelPatchUpdateCall)(a,o,e);let d={...h,model_name:t.model_name,litellm_model_name:t.litellm_model_name,litellm_params:i,model_info:s};x(d),n&&n(d),eN.default.success("Model settings updated successfully"),w(!1),T(!1)}catch(e){console.error("Error updating model:",e),eN.default.fromBackend("Failed to update model settings")}finally{S(!1)}};if(U)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(M.Button,{icon:tX.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(ei.Text,{children:"Loading..."})]});if(!Q)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(M.Button,{icon:tX.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(ei.Text,{children:"Model not found"})]});let eo=async()=>{if(a)try{eN.default.info("Testing connection...");let e=await (0,l.testConnectionRequest)(a,{custom_llm_provider:h.litellm_params.custom_llm_provider,litellm_credential_name:h.litellm_params.litellm_credential_name,model:h.litellm_model_name},{mode:h.model_info?.mode},h.model_info?.mode);if("success"===e.status)eN.default.success("Connection test successful!");else throw Error(e?.result?.error||e?.message||"Unknown error")}catch(e){e instanceof Error?eN.default.error("Error testing connection: "+(0,tF.truncateString)(e.message,100)):eN.default.error("Error testing connection: "+String(e))}},ed=async()=>{try{if(_(!0),!a)return;await (0,l.modelDeleteCall)(a,e),eN.default.success("Model deleted successfully"),n&&n({deleted:!0,model_info:{id:e}}),s()}catch(e){console.error("Error deleting the model:",e),eN.default.fromBackend("Failed to delete model")}finally{_(!1),f(!1)}},em=async(e,t)=>{await (0,t1.copyToClipboard)(e)&&(B(e=>({...e,[t]:!0})),setTimeout(()=>{B(e=>({...e,[t]:!1}))},2e3))},eh=Q.litellm_model_name.includes("*");return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(M.Button,{icon:tX.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsxs)(eu.Title,{children:["Public Model Name: ",ee(Q)]}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(ei.Text,{className:"text-gray-500 font-mono",children:Q.model_info.id}),(0,t.jsx)(v.Button,{type:"text",size:"small",icon:O["model-id"]?(0,t.jsx)(tZ.CheckIcon,{size:12}):(0,t.jsx)(t0.CopyIcon,{size:12}),onClick:()=>em(Q.model_info.id,"model-id"),className:`left-2 z-10 transition-all duration-200 ${O["model-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(M.Button,{variant:"secondary",icon:eZ.RefreshIcon,onClick:eo,className:"flex items-center gap-2","data-testid":"test-connection-button",children:"Test Connection"}),(0,t.jsx)(M.Button,{icon:I,variant:"secondary",onClick:()=>y(!0),className:"flex items-center",disabled:!X,"data-testid":"reuse-credentials-button",children:"Re-use Credentials"}),(0,t.jsx)(M.Button,{icon:A.TrashIcon,variant:"secondary",onClick:()=>f(!0),className:"flex items-center text-red-500 border-red-500 hover:text-red-700",disabled:!Y,"data-testid":"delete-model-button",children:"Delete Model"})]})]}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-6",children:[(0,t.jsx)(e2.Tab,{children:"Overview"}),(0,t.jsx)(e2.Tab,{children:"Raw JSON"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(er.TabPanel,{children:[(0,t.jsxs)(el.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6 mb-6",children:[(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"Provider"}),(0,t.jsxs)("div",{className:"mt-2 flex items-center space-x-2",children:[Q.provider&&(0,t.jsx)("img",{src:(0,ek.getProviderLogoAndName)(Q.provider).logo,alt:`${Q.provider} logo`,className:"w-4 h-4",onError:e=>{let t=e.currentTarget,l=t.parentElement;if(l&&l.contains(t))try{let e=document.createElement("div");e.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=Q.provider?.charAt(0)||"-",l.replaceChild(e,t)}catch(e){console.error("Failed to replace provider logo fallback:",e)}}}),(0,t.jsx)(eu.Title,{children:Q.provider||"Not Set"})]})]}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"LiteLLM Model"}),(0,t.jsx)("div",{className:"mt-2 overflow-hidden",children:(0,t.jsx)(R.Tooltip,{title:Q.litellm_model_name||"Not Set",children:(0,t.jsx)("div",{className:"break-all text-sm font-medium leading-relaxed cursor-pointer",children:Q.litellm_model_name||"Not Set"})})})]}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"Pricing"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(ei.Text,{children:["Input: $",Q.input_cost,"/1M tokens"]}),(0,t.jsxs)(ei.Text,{children:["Output: $",Q.output_cost,"/1M tokens"]})]})]})]}),(0,t.jsxs)("div",{className:"mb-6 text-sm text-gray-500 flex items-center gap-x-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Created At"," ",Q.model_info.created_at?new Date(Q.model_info.created_at).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}):"Not Set"]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})}),"Created By ",Q.model_info.created_by||"Not Set"]})]}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Model Settings"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[Z&&Y&&!k&&(0,t.jsx)(M.Button,{onClick:()=>V(!0),className:"flex items-center",children:"Edit Auto Router"}),Y?!k&&(0,t.jsx)(M.Button,{onClick:()=>T(!0),className:"flex items-center",children:"Edit Settings"}):(0,t.jsx)(R.Tooltip,{title:"Only DB models can be edited. You must be an admin or the creator of the model to edit it.",children:(0,t.jsx)(et.InfoCircleOutlined,{})})]})]}),h?(0,t.jsx)(eP.Form,{form:u,onFinish:en,initialValues:{model_name:h.model_name,litellm_model_name:h.litellm_model_name,api_base:h.litellm_params.api_base,custom_llm_provider:h.litellm_params.custom_llm_provider,organization:h.litellm_params.organization,tpm:h.litellm_params.tpm,rpm:h.litellm_params.rpm,max_retries:h.litellm_params.max_retries,timeout:h.litellm_params.timeout,stream_timeout:h.litellm_params.stream_timeout,input_cost:h.litellm_params.input_cost_per_token?1e6*h.litellm_params.input_cost_per_token:h.model_info?.input_cost_per_token*1e6||null,output_cost:h.litellm_params?.output_cost_per_token?1e6*h.litellm_params.output_cost_per_token:h.model_info?.output_cost_per_token*1e6||null,cache_control:!!h.litellm_params?.cache_control_injection_points,cache_control_injection_points:h.litellm_params?.cache_control_injection_points||[],model_access_group:Array.isArray(h.model_info?.access_groups)?h.model_info.access_groups:[],guardrails:Array.isArray(h.litellm_params?.guardrails)?h.litellm_params.guardrails:[],tags:Array.isArray(h.litellm_params?.tags)?h.litellm_params.tags:[],health_check_model:eh?h.model_info?.health_check_model:null,litellm_extra_params:JSON.stringify(h.litellm_params||{},null,2)},layout:"vertical",onValuesChange:()=>w(!0),children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Model Name"}),k?(0,t.jsx)(eP.Form.Item,{name:"model_name",className:"mb-0",children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"LiteLLM Model Name"}),k?(0,t.jsx)(eP.Form.Item,{name:"litellm_model_name",className:"mb-0",children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter LiteLLM model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Input Cost (per 1M tokens)"}),k?(0,t.jsx)(eP.Form.Item,{name:"input_cost",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter input cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.input_cost_per_token?(h.litellm_params?.input_cost_per_token*1e6).toFixed(4):h?.model_info?.input_cost_per_token?(1e6*h.model_info.input_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Output Cost (per 1M tokens)"}),k?(0,t.jsx)(eP.Form.Item,{name:"output_cost",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter output cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.output_cost_per_token?(1e6*h.litellm_params.output_cost_per_token).toFixed(4):h?.model_info?.output_cost_per_token?(1e6*h.model_info.output_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"API Base"}),k?(0,t.jsx)(eP.Form.Item,{name:"api_base",className:"mb-0",children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter API base"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.api_base||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Custom LLM Provider"}),k?(0,t.jsx)(eP.Form.Item,{name:"custom_llm_provider",className:"mb-0",children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter custom LLM provider"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.custom_llm_provider||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Organization"}),k?(0,t.jsx)(eP.Form.Item,{name:"organization",className:"mb-0",children:(0,t.jsx)(eE.TextInput,{placeholder:"Enter organization"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.organization||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"TPM (Tokens per Minute)"}),k?(0,t.jsx)(eP.Form.Item,{name:"tpm",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter TPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"RPM (Requests per Minute)"}),k?(0,t.jsx)(eP.Form.Item,{name:"rpm",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter RPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.rpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Max Retries"}),k?(0,t.jsx)(eP.Form.Item,{name:"max_retries",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter max retries"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.max_retries||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Timeout (seconds)"}),k?(0,t.jsx)(eP.Form.Item,{name:"timeout",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Stream Timeout (seconds)"}),k?(0,t.jsx)(eP.Form.Item,{name:"stream_timeout",className:"mb-0",children:(0,t.jsx)(tS.default,{placeholder:"Enter stream timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.stream_timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Model Access Groups"}),k?(0,t.jsx)(eP.Form.Item,{name:"model_access_group",className:"mb-0",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:o?.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.access_groups?Array.isArray(h.model_info.access_groups)?h.model_info.access_groups.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.model_info.access_groups.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:e},l))}):"No groups assigned":h.model_info.access_groups:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(ei.Text,{className:"font-medium",children:["Guardrails",(0,t.jsx)(R.Tooltip,{title:"Apply safety guardrails to this model to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),k?(0,t.jsx)(eP.Form.Item,{name:"guardrails",className:"mb-0",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing guardrails or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:q.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.guardrails?Array.isArray(h.litellm_params.guardrails)?h.litellm_params.guardrails.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.guardrails.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800",children:e},l))}):"No guardrails assigned":h.litellm_params.guardrails:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Tags"}),k?(0,t.jsx)(eP.Form.Item,{name:"tags",className:"mb-0",children:(0,t.jsx)(eL.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing tags or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:Object.values($).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tags?Array.isArray(h.litellm_params.tags)?h.litellm_params.tags.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.tags.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800",children:e},l))}):"No tags assigned":h.litellm_params.tags:"Not Set"})]}),eh&&(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Health Check Model"}),k?(0,t.jsx)(eP.Form.Item,{name:"health_check_model",className:"mb-0",children:(0,t.jsx)(eL.Select,{showSearch:!0,placeholder:"Select existing health check model",optionFilterProp:"children",allowClear:!0,options:(m=Q.litellm_model_name.split("/")[0],K?.data?.filter(e=>e.providers?.includes(m)&&e.model_group!==Q.litellm_model_name).map(e=>({value:e.model_group,label:e.model_group}))||[])})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.health_check_model||"Not Set"})]}),k?(0,t.jsx)(tT,{form:u,showCacheControl:E,onCacheControlChange:e=>L(e)}):(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Cache Control"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.cache_control_injection_points?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:"Enabled"}),(0,t.jsx)("div",{className:"mt-2",children:h.litellm_params.cache_control_injection_points.map((e,l)=>(0,t.jsxs)("div",{className:"text-sm text-gray-600 mb-1",children:["Location: ",e.location,",",e.role&&(0,t.jsxs)("span",{children:[" Role: ",e.role]}),void 0!==e.index&&(0,t.jsxs)("span",{children:[" Index: ",e.index]})]},l))})]}):"Disabled"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Model Info"}),k?(0,t.jsx)(eP.Form.Item,{name:"model_info",className:"mb-0",children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{"gpt-4": 100, "claude-v1": 200}',defaultValue:JSON.stringify(Q.model_info,null,2)})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.model_info,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(ei.Text,{className:"font-medium",children:["LiteLLM Params",(0,t.jsx)(R.Tooltip,{title:"Optional litellm params used for making a litellm.completion() call. Some params are automatically added by LiteLLM.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(et.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),k?(0,t.jsx)(eP.Form.Item,{name:"litellm_extra_params",rules:[{validator:tF.formItemValidateJSON}],children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.litellm_params,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:Q.model_info.team_id||"Not Set"})]})]}),k&&(0,t.jsxs)("div",{className:"mt-6 flex justify-end gap-2",children:[(0,t.jsx)(M.Button,{variant:"secondary",onClick:()=>{u.resetFields(),w(!1),T(!1)},disabled:C,children:"Cancel"}),(0,t.jsx)(M.Button,{variant:"primary",onClick:()=>u.submit(),loading:C,children:"Save Changes"})]})]})}):(0,t.jsx)(ei.Text,{children:"Loading..."})]})]}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(eA.Card,{children:(0,t.jsx)("pre",{className:"bg-gray-100 p-4 rounded text-xs overflow-auto",children:JSON.stringify(Q,null,2)})})})]})]}),(0,t.jsx)(eM.default,{isOpen:g,title:"Delete Model",alertMessage:"This action cannot be undone.",message:"Are you sure you want to delete this model?",resourceInformationTitle:"Model Information",resourceInformation:[{label:"Model Name",value:Q?.model_name||"Not Set"},{label:"LiteLLM Model Name",value:Q?.litellm_model_name||"Not Set"},{label:"Provider",value:Q?.provider||"Not Set"},{label:"Created By",value:Q?.model_info?.created_by||"Not Set"}],onCancel:()=>f(!1),onOk:ed,confirmLoading:j}),b&&!es?(0,t.jsx)(t6,{isVisible:b,onCancel:()=>y(!1),onAddCredential:ea,existingCredential:F,setIsCredentialModalOpen:y}):(0,t.jsx)(ef.Modal,{open:b,onCancel:()=>y(!1),title:"Using Existing Credential",children:(0,t.jsx)(ei.Text,{children:Q.litellm_params.litellm_credential_name})}),(0,t.jsx)(t2,{isVisible:z,onCancel:()=>V(!1),onSuccess:e=>{x(e),n&&n(e)},modelData:h||Q,accessToken:a||"",userRole:i||""})]})}var t8=e.i(906579),t7=e.i(37091),t9=e.i(218129);let le=({value:e={},onChange:l})=>{let[s,a]=(0,p.useState)(Object.entries(e)),r=(e,t,r)=>{let i=[...s];i[e]=[t,r],a(i),l?.(Object.fromEntries(i))};return(0,t.jsxs)("div",{children:[s.map(([e,i],n)=>(0,t.jsxs)(B.Space,{style:{display:"flex",marginBottom:8},align:"center",children:[(0,t.jsx)(eE.TextInput,{placeholder:"Header Name",value:e,onChange:e=>r(n,e.target.value,i)}),(0,t.jsx)(eE.TextInput,{placeholder:"Header Value",value:i,onChange:t=>r(n,e,t.target.value)}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(tC.MinusCircleOutlined,{onClick:()=>{let e;a(e=s.filter((e,t)=>t!==n)),l?.(Object.fromEntries(e))},style:{cursor:"pointer"}})})]},n)),(0,t.jsx)(v.Button,{type:"dashed",onClick:()=>{a([...s,["",""]])},icon:(0,t.jsx)(ti.PlusOutlined,{}),children:"Add Header"})]})};var lt=e.i(240647);let ll=({pathValue:e,targetValue:s,includeSubpath:a})=>{let r=(0,l.getProxyBaseUrl)();return e&&s?(0,t.jsxs)(eA.Card,{className:"p-5",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Preview"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-5",children:"How your requests will be routed"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"Basic routing:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:e?`${r}${e}`:""})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lt.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:s})]})]})]}),a&&(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"With subpaths:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint + subpath"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[e&&`${r}${e}`,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lt.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[s,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]})]}),(0,t.jsxs)("div",{className:"mt-3 text-sm text-gray-600",children:["Any path after ",e," will be appended to the target URL"]})]})}),!a&&(0,t.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md border border-blue-200",children:(0,t.jsxs)("div",{className:"flex items-start",children:[(0,t.jsx)(et.InfoCircleOutlined,{className:"text-blue-500 mt-0.5 mr-2 flex-shrink-0"}),(0,t.jsxs)("div",{className:"text-sm text-blue-700",children:[(0,t.jsx)("span",{className:"font-medium",children:"Not seeing the routing you wanted?"})," Try enabling - Include Subpaths - above - this allows subroutes like"," ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded font-mono text-xs",children:"/api/v1/models"})," to be forwarded automatically."]})]})})]})]}):null},ls=({premiumUser:e,authEnabled:l,onAuthChange:s})=>(0,t.jsxs)(eA.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Security"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-4",children:"When enabled, requests to this endpoint will require a valid LiteLLM Virtual Key"}),e?(0,t.jsx)(eP.Form.Item,{name:"auth",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(tb.Switch,{checked:l,onChange:e=>{s(e)}})}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-3",children:[(0,t.jsx)(tb.Switch,{disabled:!0,checked:!1,style:{outline:"2px solid #d1d5db",outlineOffset:"2px"}}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-400",children:"Authentication (Premium)"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(ei.Text,{className:"text-sm text-yellow-800",children:["Setting authentication for pass-through endpoints is a LiteLLM Enterprise feature. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})]});var la=e.i(891547);let lr=({accessToken:e,value:l={},onChange:s,disabled:a=!1})=>{let[r,i]=(0,p.useState)(Object.keys(l)),[n,o]=(0,p.useState)(l);(0,p.useEffect)(()=>{o(l),i(Object.keys(l))},[l]);let d=(e,t,l)=>{let a=n[e]||{},r={...n,[e]:{...a,[t]:l.length>0?l:void 0}};r[e]?.request_fields||r[e]?.response_fields||(r[e]=null),o(r),s&&s(r)};return(0,t.jsxs)(eA.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Guardrails"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-6",children:"Configure guardrails to enforce policies on requests and responses. Guardrails are opt-in for passthrough endpoints."}),(0,t.jsx)(tj.Alert,{message:(0,t.jsxs)("span",{children:["Field-Level Targeting"," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/pass_through_guardrails#field-level-targeting",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"(Learn More)"})]}),description:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{children:"Optionally specify which fields to check. If left empty, the entire request/response is sent to the guardrail."}),(0,t.jsxs)("div",{className:"text-xs space-y-1 mt-2",children:[(0,t.jsx)("div",{className:"font-medium",children:"Common Examples:"}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"query"})," - Single field"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"documents[*].text"})," - All text in documents array"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"messages[*].content"})," - All message contents"]})]})]}),type:"info",showIcon:!0,className:"mb-4"}),(0,t.jsx)(eP.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Select Guardrails",(0,t.jsx)(R.Tooltip,{title:"Choose which guardrails should run on this endpoint. Org/team/key level guardrails will also be included.",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),children:(0,t.jsx)(la.default,{accessToken:e,value:r,onChange:e=>{i(e);let t={};e.forEach(e=>{t[e]=n[e]||null}),o(t),s&&s(t)},disabled:a})}),r.length>0&&(0,t.jsxs)("div",{className:"mt-6 space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Field Targeting (Optional)"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"💡 Tip: Leave empty to check entire payload"})]}),r.map(e=>(0,t.jsxs)(eA.Card,{className:"p-4 bg-gray-50",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 mb-3",children:e}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Request Fields (pre_call)",(0,t.jsx)(R.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which request fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• query"}),(0,t.jsx)("div",{children:"• documents[*].text"}),(0,t.jsx)("div",{children:"• messages[*].content"})]})]}),children:(0,t.jsx)(et.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let t=n[e]?.request_fields||[];d(e,"request_fields",[...t,"query"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ query"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t=n[e]?.request_fields||[];d(e,"request_fields",[...t,"documents[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ documents[*]"})]})]}),(0,t.jsx)(eL.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., query, documents[*].text)",value:n[e]?.request_fields||[],onChange:t=>d(e,"request_fields",t),disabled:a,tokenSeparators:[","]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Response Fields (post_call)",(0,t.jsx)(R.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which response fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• results[*].text"}),(0,t.jsx)("div",{children:"• choices[*].message.content"})]})]}),children:(0,t.jsx)(et.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsx)("div",{className:"flex gap-1",children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=n[e]?.response_fields||[];d(e,"response_fields",[...t,"results[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ results[*]"})})]}),(0,t.jsx)(eL.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., results[*].text)",value:n[e]?.response_fields||[],onChange:t=>d(e,"response_fields",t),disabled:a,tokenSeparators:[","]})]})]})]},e))]})]})},{Option:li}=eL.Select,ln=({accessToken:e,setPassThroughItems:s,passThroughItems:a,premiumUser:r=!1})=>{let[i]=eP.Form.useForm(),[n,o]=(0,p.useState)(!1),[d,c]=(0,p.useState)(!1),[m,u]=(0,p.useState)(""),[h,x]=(0,p.useState)(""),[g,f]=(0,p.useState)(""),[j,_]=(0,p.useState)(!0),[b,y]=(0,p.useState)(!1),[v,N]=(0,p.useState)({}),w=()=>{i.resetFields(),x(""),f(""),_(!0),N({}),o(!1)},C=async t=>{console.log("addPassThrough called with:",t),c(!0);try{!r&&"auth"in t&&delete t.auth,v&&Object.keys(v).length>0&&(t.guardrails=v),console.log(`formValues: ${JSON.stringify(t)}`);let n=(await (0,l.createPassThroughEndpoint)(e,t)).endpoints[0],d=[...a,n];s(d),eN.default.success("Pass-through endpoint created successfully"),i.resetFields(),x(""),f(""),_(!0),N({}),o(!1)}catch(e){eN.default.fromBackend("Error creating pass-through endpoint: "+e)}finally{c(!1)}};return(0,t.jsxs)("div",{children:[(0,t.jsx)(M.Button,{className:"mx-auto mb-4 mt-4",onClick:()=>o(!0),children:"+ Add Pass-Through Endpoint"}),(0,t.jsx)(ef.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:[(0,t.jsx)(t9.ApiOutlined,{className:"text-xl text-blue-500"}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add Pass-Through Endpoint"})]}),open:n,width:1e3,onCancel:w,footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)(tj.Alert,{message:"What is a Pass-Through Endpoint?",description:"Route requests from your LiteLLM proxy to any external API. Perfect for custom models, image generation APIs, or any service you want to proxy through LiteLLM.",type:"info",showIcon:!0,className:"mb-6"}),(0,t.jsxs)(eP.Form,{form:i,onFinish:C,layout:"vertical",className:"space-y-6",initialValues:{include_subpath:!0,path:h,target:g},children:[(0,t.jsxs)(eA.Card,{className:"p-5",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Configuration"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-5",children:"Configure how requests to your domain will be forwarded to the target API"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsx)(eP.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Path Prefix"}),name:"path",rules:[{required:!0,message:"Path is required",pattern:/^\//}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example: /bria, /adobe-photoshop, /elasticsearch"}),className:"mb-4",children:(0,t.jsx)("div",{className:"flex items-center",children:(0,t.jsx)(eE.TextInput,{placeholder:"bria",value:h,onChange:e=>{var t;let l;return l=t=e.target.value,void(t&&!t.startsWith("/")&&(l="/"+t),x(l),i.setFieldsValue({path:l}))},className:"flex-1"})})}),(0,t.jsx)(eP.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Target URL"}),name:"target",rules:[{required:!0,message:"Target URL is required"},{type:"url",message:"Please enter a valid URL"}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example:https://engine.prod.bria-api.com"}),className:"mb-4",children:(0,t.jsx)(eE.TextInput,{placeholder:"https://engine.prod.bria-api.com",value:g,onChange:e=>{f(e.target.value),i.setFieldsValue({target:e.target.value})}})}),(0,t.jsxs)("div",{className:"flex items-center justify-between py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Include Subpaths"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Forward all subpaths to the target API (recommended for REST APIs)"})]}),(0,t.jsx)(eP.Form.Item,{name:"include_subpath",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(tf.Switch,{checked:j,onChange:_})})]})]})]}),(0,t.jsx)(ll,{pathValue:h,targetValue:g,includeSubpath:j}),(0,t.jsxs)(eA.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Headers"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-6",children:"Add headers that will be sent with every request to the target API"}),(0,t.jsx)(eP.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authentication Headers",(0,t.jsx)(R.Tooltip,{title:"Authentication and other headers to forward with requests",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"headers",rules:[{required:!0,message:"Please configure the headers"}],extra:(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-2",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Add authentication tokens and other required headers"}),(0,t.jsx)("div",{children:"Common examples: auth_token, Authorization, x-api-key"})]}),children:(0,t.jsx)(le,{})})]}),(0,t.jsx)(ls,{premiumUser:r,authEnabled:b,onAuthChange:e=>{y(e),i.setFieldsValue({auth:e})}}),(0,t.jsx)(lr,{accessToken:e,value:v,onChange:N}),(0,t.jsxs)(eA.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Billing"}),(0,t.jsx)(t7.Subtitle,{className:"text-gray-600 mb-6",children:"Optional cost tracking for this endpoint"}),(0,t.jsx)(eP.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Cost Per Request (USD)",(0,t.jsx)(R.Tooltip,{title:"Optional: Track costs for requests to this endpoint",children:(0,t.jsx)(et.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:"cost_per_request",extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-2",children:"The cost charged for each request through this endpoint"}),children:(0,t.jsx)(tS.default,{min:0,step:.001,precision:4,placeholder:"2.0000",size:"large"})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:[(0,t.jsx)(M.Button,{variant:"secondary",onClick:w,children:"Cancel"}),(0,t.jsx)(M.Button,{variant:"primary",loading:d,onClick:()=>{console.log("Submit button clicked"),i.submit()},children:d?"Creating...":"Add Pass-Through Endpoint"})]})]})]})})]})};var lo=e.i(286536),ld=e.i(77705);let lc=({value:e})=>{let[l,s]=(0,p.useState)(!1),a=JSON.stringify(e,null,2);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("pre",{className:"font-mono text-xs bg-gray-50 p-2 rounded max-w-md overflow-auto",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(ld.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lo.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lm=({endpointData:e,onClose:s,accessToken:a,isAdmin:r,premiumUser:i=!1,onEndpointUpdated:n})=>{let[o,d]=(0,p.useState)(e),[c,m]=(0,p.useState)(!1),[u,h]=(0,p.useState)(!1),[x,g]=(0,p.useState)(e?.auth||!1),[f,j]=(0,p.useState)(e?.guardrails||{}),[_]=eP.Form.useForm(),b=async e=>{try{if(!a||!o?.id)return;let t={};if(e.headers)try{t="string"==typeof e.headers?JSON.parse(e.headers):e.headers}catch(e){eN.default.fromBackend("Invalid JSON format for headers");return}let s={path:o.path,target:e.target,headers:t,include_subpath:e.include_subpath,cost_per_request:e.cost_per_request,auth:i?e.auth:void 0,guardrails:f&&Object.keys(f).length>0?f:void 0};await (0,l.updatePassThroughEndpoint)(a,o.id,s),d({...o,...s}),h(!1),n&&n()}catch(e){console.error("Error updating endpoint:",e),eN.default.fromBackend("Failed to update pass through endpoint")}},y=async()=>{try{if(!a||!o?.id)return;await (0,l.deletePassThroughEndpointsCall)(a,o.id),eN.default.success("Pass through endpoint deleted successfully"),s(),n&&n()}catch(e){console.error("Error deleting endpoint:",e),eN.default.fromBackend("Failed to delete pass through endpoint")}};return c?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):o?(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Button,{onClick:s,className:"mb-4",children:"← Back"}),(0,t.jsxs)(eu.Title,{children:["Pass Through Endpoint: ",o.path]}),(0,t.jsx)(ei.Text,{className:"text-gray-500 font-mono",children:o.id})]})}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Overview"},"overview"),r?(0,t.jsx)(e2.Tab,{children:"Settings"},"settings"):(0,t.jsx)(t.Fragment,{})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(er.TabPanel,{children:[(0,t.jsxs)(el.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"Path"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{className:"font-mono",children:o.path})})]}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"Target"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{children:o.target})})]}),(0,t.jsxs)(eA.Card,{children:[(0,t.jsx)(ei.Text,{children:"Configuration"}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)(P.Badge,{color:o.include_subpath?"green":"gray",children:o.include_subpath?"Include Subpath":"Exact Path"})}),(0,t.jsx)("div",{children:(0,t.jsx)(P.Badge,{color:o.auth?"blue":"gray",children:o.auth?"Auth Required":"No Auth"})}),void 0!==o.cost_per_request&&(0,t.jsx)("div",{children:(0,t.jsxs)(ei.Text,{children:["Cost per request: $",o.cost_per_request]})})]})]})]}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(ll,{pathValue:o.path,targetValue:o.target,includeSubpath:o.include_subpath||!1})}),o.headers&&Object.keys(o.headers).length>0&&(0,t.jsxs)(eA.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Headers"}),(0,t.jsxs)(P.Badge,{color:"blue",children:[Object.keys(o.headers).length," headers configured"]})]}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lc,{value:o.headers})})]}),o.guardrails&&Object.keys(o.guardrails).length>0&&(0,t.jsxs)(eA.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Guardrails"}),(0,t.jsxs)(P.Badge,{color:"purple",children:[Object.keys(o.guardrails).length," guardrails configured"]})]}),(0,t.jsx)("div",{className:"mt-4 space-y-2",children:Object.entries(o.guardrails).map(([e,l])=>(0,t.jsxs)("div",{className:"p-3 bg-gray-50 rounded",children:[(0,t.jsx)("div",{className:"font-medium text-sm",children:e}),l&&(l.request_fields||l.response_fields)&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-gray-600 space-y-1",children:[l.request_fields&&(0,t.jsxs)("div",{children:["Request fields: ",l.request_fields.join(", ")]}),l.response_fields&&(0,t.jsxs)("div",{children:["Response fields: ",l.response_fields.join(", ")]})]}),!l&&(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Uses entire payload"})]},e))})]})]}),r&&(0,t.jsx)(er.TabPanel,{children:(0,t.jsxs)(eA.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoint Settings"}),(0,t.jsx)("div",{className:"space-x-2",children:!u&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(M.Button,{onClick:()=>h(!0),children:"Edit Settings"}),(0,t.jsx)(M.Button,{onClick:y,variant:"secondary",color:"red",children:"Delete Endpoint"})]})})]}),u?(0,t.jsxs)(eP.Form,{form:_,onFinish:b,initialValues:{target:o.target,headers:o.headers?JSON.stringify(o.headers,null,2):"",include_subpath:o.include_subpath||!1,cost_per_request:o.cost_per_request,auth:o.auth||!1},layout:"vertical",children:[(0,t.jsx)(eP.Form.Item,{label:"Target URL",name:"target",rules:[{required:!0,message:"Please input a target URL"}],children:(0,t.jsx)(eE.TextInput,{placeholder:"https://api.example.com"})}),(0,t.jsx)(eP.Form.Item,{label:"Headers (JSON)",name:"headers",children:(0,t.jsx)(eV.Input.TextArea,{rows:5,placeholder:'{"Authorization": "Bearer your-token", "Content-Type": "application/json"}'})}),(0,t.jsx)(eP.Form.Item,{label:"Include Subpath",name:"include_subpath",valuePropName:"checked",children:(0,t.jsx)(tb.Switch,{})}),(0,t.jsx)(eP.Form.Item,{label:"Cost per Request",name:"cost_per_request",children:(0,t.jsx)(eh.InputNumber,{min:0,step:.01,precision:2,placeholder:"0.00",addonBefore:"$"})}),(0,t.jsx)(ls,{premiumUser:i,authEnabled:x,onAuthChange:e=>{g(e),_.setFieldsValue({auth:e})}}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lr,{accessToken:a||"",value:f,onChange:j})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-6",children:[(0,t.jsx)(v.Button,{onClick:()=>h(!1),children:"Cancel"}),(0,t.jsx)(M.Button,{children:"Save Changes"})]})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Path"}),(0,t.jsx)("div",{className:"font-mono",children:o.path})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Target URL"}),(0,t.jsx)("div",{children:o.target})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Include Subpath"}),(0,t.jsx)(P.Badge,{color:o.include_subpath?"green":"gray",children:o.include_subpath?"Yes":"No"})]}),void 0!==o.cost_per_request&&(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Cost per Request"}),(0,t.jsxs)("div",{children:["$",o.cost_per_request]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Authentication Required"}),(0,t.jsx)(P.Badge,{color:o.auth?"green":"gray",children:o.auth?"Yes":"No"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ei.Text,{className:"font-medium",children:"Headers"}),o.headers&&Object.keys(o.headers).length>0?(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(lc,{value:o.headers})}):(0,t.jsx)("div",{className:"text-gray-500",children:"No headers configured"})]})]})]})})]})]})]}):(0,t.jsx)("div",{className:"p-4",children:"Pass through endpoint not found"})};var lu=e.i(149121);let lh=({value:e})=>{let[l,s]=(0,p.useState)(!1),a=JSON.stringify(e);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(ld.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lo.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lx=({accessToken:e,userRole:s,userID:a,modelData:r,premiumUser:i})=>{let[n,o]=(0,p.useState)([]),[d,c]=(0,p.useState)(null),[m,u]=(0,p.useState)(!1),[h,x]=(0,p.useState)(null);(0,p.useEffect)(()=>{e&&s&&a&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{o(e.endpoints)})},[e,s,a]);let g=async e=>{x(e),u(!0)},f=async()=>{if(null!=h&&e){try{await (0,l.deletePassThroughEndpointsCall)(e,h);let t=n.filter(e=>e.id!==h);o(t),eN.default.success("Endpoint deleted successfully.")}catch(e){console.error("Error deleting the endpoint:",e),eN.default.fromBackend("Error deleting the endpoint: "+e)}u(!1),x(null)}},j=[{header:"ID",accessorKey:"id",cell:e=>(0,t.jsx)(R.Tooltip,{title:e.row.original.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>e.row.original.id&&c(e.row.original.id),children:e.row.original.id})})},{header:"Path",accessorKey:"path"},{header:"Target",accessorKey:"target",cell:e=>(0,t.jsx)(ei.Text,{children:e.getValue()})},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Authentication"}),(0,t.jsx)(R.Tooltip,{title:"LiteLLM Virtual Key required to call endpoint",children:(0,t.jsx)(tG.InformationCircleIcon,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),accessorKey:"auth",cell:e=>(0,t.jsx)(t8.Badge,{color:e.getValue()?"green":"gray",children:e.getValue()?"Yes":"No"})},{header:"Headers",accessorKey:"headers",cell:e=>(0,t.jsx)(lh,{value:e.getValue()||{}})},{header:"Actions",id:"actions",cell:({row:e})=>(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)(E.Icon,{icon:eI.PencilAltIcon,size:"sm",onClick:()=>e.original.id&&c(e.original.id),title:"Edit"}),(0,t.jsx)(E.Icon,{icon:A.TrashIcon,size:"sm",onClick:()=>{var t;return t=e.original.id,e.index,void g(t)},title:"Delete"})]})}];if(!e)return null;if(d){console.log("selectedEndpointId",d),console.log("generalSettings",n);let a=n.find(e=>e.id===d);return a?(0,t.jsx)(lm,{endpointData:a,onClose:()=>c(null),accessToken:e,isAdmin:"Admin"===s||"admin"===s,premiumUser:i,onEndpointUpdated:()=>{e&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{o(e.endpoints)})}}):(0,t.jsx)("div",{children:"Endpoint not found"})}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoints"}),(0,t.jsx)(ei.Text,{className:"text-tremor-content",children:"Configure and manage your pass-through endpoints"})]}),(0,t.jsx)(ln,{accessToken:e,setPassThroughItems:o,passThroughItems:n,premiumUser:i}),(0,t.jsx)(lu.DataTable,{data:n,columns:j,renderSubComponent:()=>(0,t.jsx)("div",{}),getRowCanExpand:()=>!1,isLoading:!1,noDataMessage:"No pass-through endpoints configured"}),m&&(0,t.jsx)("div",{className:"fixed z-10 inset-0 overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,t.jsx)("div",{className:"fixed inset-0 transition-opacity","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute inset-0 bg-gray-500 opacity-75"})}),(0,t.jsx)("span",{className:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true",children:""}),(0,t.jsxs)("div",{className:"inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full",children:[(0,t.jsx)("div",{className:"bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4",children:(0,t.jsx)("div",{className:"sm:flex sm:items-start",children:(0,t.jsxs)("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left",children:[(0,t.jsx)("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:"Delete Pass-Through Endpoint"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Are you sure you want to delete this pass-through endpoint? This action cannot be undone."})})]})})}),(0,t.jsxs)("div",{className:"bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse",children:[(0,t.jsx)(M.Button,{onClick:f,color:"red",className:"ml-2",children:"Delete"}),(0,t.jsx)(M.Button,{onClick:()=>{u(!1),x(null)},children:"Cancel"})]})]})]})})]})};e.s(["default",0,lx],147612);var lp=e.i(774197);e.s(["default",0,({premiumUser:e,teams:s})=>{let{accessToken:a,token:i,userRole:o,userId:u}=(0,r.default)(),[h]=eP.Form.useForm(),[x,g]=(0,p.useState)(""),[f,j]=(0,p.useState)([]),[_,b]=(0,p.useState)(ek.Providers.Anthropic),[y,v]=(0,p.useState)(null),[N,w]=(0,p.useState)(null),[C,S]=(0,p.useState)(null),[k,T]=(0,p.useState)(0),[F,I]=(0,p.useState)({}),[A,P]=(0,p.useState)(!1),[M,L]=(0,p.useState)(null),[R,B]=(0,p.useState)(null),[z,V]=(0,p.useState)(0),q=(0,e0.useQueryClient)(),{data:D,isLoading:$,refetch:G}=(0,c.useModelsInfo)(),{data:H,isLoading:U}=d(),{data:J,isLoading:K}=n(),W=J?.credentials||[],{data:Q,isLoading:Y}=(0,m.useUISettings)(),X=(0,p.useMemo)(()=>{if(!D?.data)return[];let e=new Set;for(let t of D.data)e.add(t.model_name);return Array.from(e).sort()},[D?.data]),Z=(0,p.useMemo)(()=>{if(!D?.data)return[];let e=new Set;for(let t of D.data){let l=t.model_info;if(l?.access_groups)for(let t of l.access_groups)e.add(t)}return Array.from(e)},[D?.data]),et=(0,p.useMemo)(()=>D?.data?D.data.map(e=>e.model_name):[],[D?.data]),es=e=>null!=H&&"object"==typeof H&&e in H?H[e].litellm_provider:"openai",ea=(0,p.useMemo)(()=>D?.data?ec(D,es):{data:[]},[D?.data,es]),en=o&&(0,eX.isProxyAdminRole)(o),eo=o&&eX.internalUserRoles.includes(o),ed=u&&(0,eX.isUserTeamAdminForAnyTeam)(s,u),eu=eo&&Q?.values?.disable_model_add_for_internal_users===!0,eh=!en&&(eu||!ed),ex={name:"file",accept:".json",pastable:!1,beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;h.setFieldsValue({vertex_credentials:t})}},t.readAsText(e)}return!1},onChange(e){"done"===e.file.status?eN.default.success(`${e.file.name} file uploaded successfully`):"error"===e.file.status&&eN.default.fromBackend(`${e.file.name} file upload failed.`)}},eg=()=>{g(new Date().toLocaleString()),q.invalidateQueries({queryKey:["models","list"]}),G()},ef=async()=>{if(a)try{let e={router_settings:{}};"global"===y?(C&&(e.router_settings.retry_policy=C),eN.default.success("Global retry settings saved successfully")):(N&&(e.router_settings.model_group_retry_policy=N),eN.default.success(`Retry settings saved successfully for ${y}`)),await (0,l.setCallbacksCall)(a,e)}catch(e){eN.default.fromBackend("Failed to save retry settings")}};if((0,p.useEffect)(()=>{if(!a||!i||!o||!u||!D)return;let e=async()=>{try{let e=(await (0,l.getCallbacksCall)(a,u,o)).router_settings,t=e.model_group_retry_policy,s=e.num_retries;w(t),S(e.retry_policy),T(s);let r=e.model_group_alias||{};I(r)}catch(e){console.error("Error fetching model data:",e)}};a&&i&&o&&u&&D&&e()},[a,i,o,u,D]),o&&"Admin Viewer"==o){let{Title:e,Paragraph:l}=O.Typography;return(0,t.jsxs)("div",{children:[(0,t.jsx)(e,{level:1,children:"Access Denied"}),(0,t.jsx)(l,{children:"Ask your proxy admin for access to view all models"})]})}let ej=async()=>{try{let e=await h.validateFields();await eF(e,a,h,eg)}catch(t){let e=t.errorFields?.map(e=>`${e.name.join(".")}: ${e.errors.join(", ")}`).join(" | ")||"Unknown validation error";eN.default.fromBackend(`Please fill in the following required fields: ${e}`)}};return(Object.keys(ek.Providers).find(e=>ek.Providers[e]===_),R)?(0,t.jsx)("div",{className:"w-full h-full",children:(0,t.jsx)(lp.default,{teamId:R,onClose:()=>B(null),accessToken:a,is_team_admin:"Admin"===o,is_proxy_admin:"Proxy Admin"===o,userModels:et,editTeam:!1,onUpdate:eg,premiumUser:e})}):(0,t.jsx)("div",{className:"w-full mx-4 h-[75vh]",children:(0,t.jsx)(el.Grid,{numItems:1,className:"gap-2 p-8 w-full mt-2",children:(0,t.jsxs)(e1.Col,{numColSpan:1,className:"flex flex-col gap-2",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Model Management"}),eX.all_admin_roles.includes(o)?(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add and manage models for the proxy"}):(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add models for teams you are an admin for."})]})}),(0,t.jsxs)("div",{className:"mb-4 px-4 py-3 bg-blue-50 rounded-lg border border-blue-100 flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex-shrink-0 w-10 h-10 bg-white rounded-full flex items-center justify-center border border-blue-200",children:(0,t.jsx)(e3.PlusCircleOutlined,{style:{fontSize:"18px",color:"#6366f1"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h4",{className:"text-gray-900 font-semibold text-sm m-0",children:"Missing a provider?"}),(0,t.jsx)("p",{className:"text-gray-500 text-xs m-0 mt-0.5",children:"The LiteLLM engineering team is constantly adding support for new LLM models, providers, endpoints. If you don't see the one you need, let us know and we'll prioritize it."})]}),(0,t.jsxs)("a",{href:"https://models.litellm.ai/?request=true",target:"_blank",rel:"noopener noreferrer",className:"flex-shrink-0 inline-flex items-center gap-2 px-4 py-2 bg-[#6366f1] hover:bg-[#5558e3] text-white text-sm font-medium rounded-lg transition-colors",children:["Request Provider",(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]})]}),M&&!($||U||K||Y)?(0,t.jsx)(t3,{modelId:M,onClose:()=>{L(null)},accessToken:a,userID:u,userRole:o,onModelUpdate:e=>{q.invalidateQueries({queryKey:["models","list"]}),eg()},modelAccessGroups:Z}):(0,t.jsxs)(e4.TabGroup,{index:z,onIndexChange:V,className:"gap-2 h-[75vh] w-full ",children:[(0,t.jsxs)(e5.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsxs)("div",{className:"flex",children:[eX.all_admin_roles.includes(o)?(0,t.jsx)(e2.Tab,{children:"All Models"}):(0,t.jsx)(e2.Tab,{children:"Your Models"}),!eh&&(0,t.jsx)(e2.Tab,{children:"Add Model"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"LLM Credentials"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"Pass-Through Endpoints"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"Health Status"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"Model Retry Settings"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"Model Group Alias"}),eX.all_admin_roles.includes(o)&&(0,t.jsx)(e2.Tab,{children:"Price Data Reload"})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[x&&(0,t.jsxs)(ei.Text,{children:["Last Refreshed: ",x]}),(0,t.jsx)(E.Icon,{icon:eZ.RefreshIcon,variant:"shadow",size:"xs",className:"self-center",onClick:eg})]})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsx)(em,{selectedModelGroup:y,setSelectedModelGroup:v,availableModelGroups:X,availableModelAccessGroups:Z,setSelectedModelId:L,setSelectedTeamId:B}),!eh&&(0,t.jsx)(er.TabPanel,{className:"h-full",children:(0,t.jsx)(tq,{form:h,handleOk:ej,selectedProvider:_,setSelectedProvider:b,providerModels:f,setProviderModelsFn:e=>{j((0,ek.getProviderModels)(e,H))},getPlaceholder:ek.getPlaceholder,uploadProps:ex,showAdvancedSettings:A,setShowAdvancedSettings:P,teams:s,credentials:W,accessToken:a,userRole:o})}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(eY,{uploadProps:ex})}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(lx,{accessToken:a,userRole:o,userID:u,modelData:ea,premiumUser:e})}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(tJ,{accessToken:a,modelData:ea,all_models_on_proxy:et,getDisplayModelName:ee,setSelectedModelId:L,teams:s})}),(0,t.jsx)(ep,{selectedModelGroup:y,setSelectedModelGroup:v,availableModelGroups:X,globalRetryPolicy:C,setGlobalRetryPolicy:S,defaultRetry:k,modelGroupRetryPolicy:N,setModelGroupRetryPolicy:w,handleSaveRetrySettings:ef}),(0,t.jsx)(er.TabPanel,{children:(0,t.jsx)(tY,{accessToken:a,initialModelGroupAlias:F,onAliasUpdate:I})}),(0,t.jsx)(eS,{})]})]})]})})})}],161059)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/39160c963fef39df.js b/litellm/proxy/_experimental/out/_next/static/chunks/39160c963fef39df.js deleted file mode 100644 index 635290b020f..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/39160c963fef39df.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,349356,e=>{e.v({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"})},137429,e=>{e.v({0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"})},916925,e=>{"use strict";var t,n=((t={}).A2A_Agent="A2A Agent",t.AIML="AI/ML API",t.Bedrock="Amazon Bedrock",t.Anthropic="Anthropic",t.AssemblyAI="AssemblyAI",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.Cerebras="Cerebras",t.Cohere="Cohere",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.ElevenLabs="ElevenLabs",t.FalAI="Fal AI",t.FireworksAI="Fireworks AI",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.Hosted_Vllm="vllm",t.Infinity="Infinity",t.JinaAI="Jina AI",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.Ollama="Ollama",t.OpenAI="OpenAI",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.Perplexity="Perplexity",t.RunwayML="RunwayML",t.Sambanova="Sambanova",t.Snowflake="Snowflake",t.TogetherAI="TogetherAI",t.Triton="Triton",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.xAI="xAI",t.SAP="SAP Generative AI Hub",t.Watsonx="Watsonx",t);let r={A2A_Agent:"a2a_agent",AIML:"aiml",OpenAI:"openai",OpenAI_Text:"text-completion-openai",Azure:"azure",Azure_AI_Studio:"azure_ai",Anthropic:"anthropic",Google_AI_Studio:"gemini",Bedrock:"bedrock",Groq:"groq",MiniMax:"minimax",MistralAI:"mistral",Cohere:"cohere",OpenAI_Compatible:"openai",OpenAI_Text_Compatible:"text-completion-openai",Vertex_AI:"vertex_ai",Databricks:"databricks",Dashscope:"dashscope",xAI:"xai",Deepseek:"deepseek",Ollama:"ollama",AssemblyAI:"assemblyai",Cerebras:"cerebras",Sambanova:"sambanova",Perplexity:"perplexity",RunwayML:"runwayml",TogetherAI:"together_ai",Openrouter:"openrouter",Oracle:"oci",Snowflake:"snowflake",FireworksAI:"fireworks_ai",GradientAI:"gradient_ai",Triton:"triton",Deepgram:"deepgram",ElevenLabs:"elevenlabs",FalAI:"fal_ai",SageMaker:"sagemaker_chat",Voyage:"voyage",JinaAI:"jina_ai",VolcEngine:"volcengine",DeepInfra:"deepinfra",Hosted_Vllm:"hosted_vllm",Infinity:"infinity",SAP:"sap",Watsonx:"watsonx"},a="../ui/assets/logos/",o={"A2A Agent":`${a}a2a_agent.png`,"AI/ML API":`${a}aiml_api.svg`,Anthropic:`${a}anthropic.svg`,AssemblyAI:`${a}assemblyai_small.png`,Azure:`${a}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${a}microsoft_azure.svg`,"Amazon Bedrock":`${a}bedrock.svg`,"AWS SageMaker":`${a}bedrock.svg`,Cerebras:`${a}cerebras.svg`,Cohere:`${a}cohere.svg`,"Databricks (Qwen API)":`${a}databricks.svg`,Dashscope:`${a}dashscope.svg`,Deepseek:`${a}deepseek.svg`,"Fireworks AI":`${a}fireworks.svg`,Groq:`${a}groq.svg`,"Google AI Studio":`${a}google.svg`,vllm:`${a}vllm.png`,Infinity:`${a}infinity.png`,MiniMax:`${a}minimax.svg`,"Mistral AI":`${a}mistral.svg`,Ollama:`${a}ollama.svg`,OpenAI:`${a}openai_small.svg`,"OpenAI Text Completion":`${a}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${a}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${a}openai_small.svg`,Openrouter:`${a}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${a}oracle.svg`,Perplexity:`${a}perplexity-ai.svg`,RunwayML:`${a}runwayml.png`,Sambanova:`${a}sambanova.svg`,Snowflake:`${a}snowflake.svg`,TogetherAI:`${a}togetherai.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${a}google.svg`,xAI:`${a}xai.svg`,GradientAI:`${a}gradientai.svg`,Triton:`${a}nvidia_triton.png`,Deepgram:`${a}deepgram.png`,ElevenLabs:`${a}elevenlabs.png`,"Fal AI":`${a}fal_ai.jpg`,"Voyage AI":`${a}voyage.webp`,"Jina AI":`${a}jina.png`,VolcEngine:`${a}volcengine.png`,DeepInfra:`${a}deepinfra.png`,"SAP Generative AI Hub":`${a}sap.png`};e.s(["Providers",()=>n,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:o[e],displayName:e}}let t=Object.keys(r).find(t=>r[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let a=n[t];return{logo:o[a],displayName:a}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let n=r[e];console.log(`Provider mapped to: ${n}`);let a=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let r=t.litellm_provider;(r===n||"string"==typeof r&&r.includes(n))&&a.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&a.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&a.push(e)}))),a},"providerLogoMap",0,o,"provider_map",0,r])},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},309821,e=>{"use strict";e.i(247167);var t=e.i(271645);e.i(262370);var n=e.i(135551),r=e.i(201072),a=e.i(121229),o=e.i(726289),i=e.i(864517),l=e.i(343794),s=e.i(529681),c=e.i(242064),d=e.i(931067),u=e.i(209428),m=e.i(703923),p={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},f=function(){var e=(0,t.useRef)([]),n=(0,t.useRef)(null);return(0,t.useEffect)(function(){var t=Date.now(),r=!1;e.current.forEach(function(e){if(e){r=!0;var a=e.style;a.transitionDuration=".3s, .3s, .3s, .06s",n.current&&t-n.current<100&&(a.transitionDuration="0s, 0s")}}),r&&(n.current=Date.now())}),e.current},g=e.i(410160),v=e.i(392221),b=e.i(654310),h=0,y=(0,b.default)();let $=function(e){var n=t.useState(),r=(0,v.default)(n,2),a=r[0],o=r[1];return t.useEffect(function(){var e;o("rc_progress_".concat((y?(e=h,h+=1):e="TEST_OR_SSR",e)))},[]),e||a};var x=function(e){var n=e.bg,r=e.children;return t.createElement("div",{style:{width:"100%",height:"100%",background:n}},r)};function k(e,t){return Object.keys(e).map(function(n){var r=parseFloat(n),a="".concat(Math.floor(r*t),"%");return"".concat(e[n]," ").concat(a)})}var C=t.forwardRef(function(e,n){var r=e.prefixCls,a=e.color,o=e.gradientId,i=e.radius,l=e.style,s=e.ptg,c=e.strokeLinecap,d=e.strokeWidth,u=e.size,m=e.gapDegree,p=a&&"object"===(0,g.default)(a),f=u/2,v=t.createElement("circle",{className:"".concat(r,"-circle-path"),r:i,cx:f,cy:f,stroke:p?"#FFF":void 0,strokeLinecap:c,strokeWidth:d,opacity:+(0!==s),style:l,ref:n});if(!p)return v;var b="".concat(o,"-conic"),h=k(a,(360-m)/360),y=k(a,1),$="conic-gradient(from ".concat(m?"".concat(180+m/2,"deg"):"0deg",", ").concat(h.join(", "),")"),C="linear-gradient(to ".concat(m?"bottom":"top",", ").concat(y.join(", "),")");return t.createElement(t.Fragment,null,t.createElement("mask",{id:b},v),t.createElement("foreignObject",{x:0,y:0,width:u,height:u,mask:"url(#".concat(b,")")},t.createElement(x,{bg:C},t.createElement(x,{bg:$}))))}),O=function(e,t,n,r,a,o,i,l,s,c){var d=arguments.length>10&&void 0!==arguments[10]?arguments[10]:0,u=(100-r)/100*t;return"round"===s&&100!==r&&(u+=c/2)>=t&&(u=t-.01),{stroke:"string"==typeof l?l:void 0,strokeDasharray:"".concat(t,"px ").concat(e),strokeDashoffset:u+d,transform:"rotate(".concat(a+n/100*360*((360-o)/360)+(0===o?0:({bottom:0,top:180,left:90,right:-90})[i]),"deg)"),transformOrigin:"".concat(50,"px ").concat(50,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},w=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function S(e){var t=null!=e?e:[];return Array.isArray(t)?t:[t]}let A=function(e){var n,r,a,o,i=(0,u.default)((0,u.default)({},p),e),s=i.id,c=i.prefixCls,v=i.steps,b=i.strokeWidth,h=i.trailWidth,y=i.gapDegree,x=void 0===y?0:y,k=i.gapPosition,A=i.trailColor,I=i.strokeLinecap,E=i.style,j=i.className,N=i.strokeColor,z=i.percent,M=(0,m.default)(i,w),P=$(s),D="".concat(P,"-gradient"),_=50-b/2,T=2*Math.PI*_,R=x>0?90+x/2:-90,L=(360-x)/360*T,W="object"===(0,g.default)(v)?v:{count:v,gap:2},B=W.count,H=W.gap,V=S(z),F=S(N),G=F.find(function(e){return e&&"object"===(0,g.default)(e)}),X=G&&"object"===(0,g.default)(G)?"butt":I,q=O(T,L,0,100,R,x,k,A,X,b),K=f();return t.createElement("svg",(0,d.default)({className:(0,l.default)("".concat(c,"-circle"),j),viewBox:"0 0 ".concat(100," ").concat(100),style:E,id:s,role:"presentation"},M),!B&&t.createElement("circle",{className:"".concat(c,"-circle-trail"),r:_,cx:50,cy:50,stroke:A,strokeLinecap:X,strokeWidth:h||b,style:q}),B?(n=Math.round(B*(V[0]/100)),r=100/B,a=0,Array(B).fill(null).map(function(e,o){var i=o<=n-1?F[0]:A,l=i&&"object"===(0,g.default)(i)?"url(#".concat(D,")"):void 0,s=O(T,L,a,r,R,x,k,i,"butt",b,H);return a+=(L-s.strokeDashoffset+H)*100/L,t.createElement("circle",{key:o,className:"".concat(c,"-circle-path"),r:_,cx:50,cy:50,stroke:l,strokeWidth:b,opacity:1,style:s,ref:function(e){K[o]=e}})})):(o=0,V.map(function(e,n){var r=F[n]||F[F.length-1],a=O(T,L,o,e,R,x,k,r,X,b);return o+=e,t.createElement(C,{key:n,color:r,ptg:e,radius:_,prefixCls:c,gradientId:D,style:a,strokeLinecap:X,strokeWidth:b,gapDegree:x,ref:function(e){K[n]=e},size:100})}).reverse()))};var I=e.i(491816);e.i(765846);var E=e.i(896091);function j(e){return!e||e<0?0:e>100?100:e}function N({success:e,successPercent:t}){let n=t;return e&&"progress"in e&&(n=e.progress),e&&"percent"in e&&(n=e.percent),n}let z=(e,t,n)=>{var r,a,o,i;let l=-1,s=-1;if("step"===t){let t=n.steps,r=n.strokeWidth;"string"==typeof e||void 0===e?(l="small"===e?2:14,s=null!=r?r:8):"number"==typeof e?[l,s]=[e,e]:[l=14,s=8]=Array.isArray(e)?e:[e.width,e.height],l*=t}else if("line"===t){let t=null==n?void 0:n.strokeWidth;"string"==typeof e||void 0===e?s=t||("small"===e?6:8):"number"==typeof e?[l,s]=[e,e]:[l=-1,s=8]=Array.isArray(e)?e:[e.width,e.height]}else("circle"===t||"dashboard"===t)&&("string"==typeof e||void 0===e?[l,s]="small"===e?[60,60]:[120,120]:"number"==typeof e?[l,s]=[e,e]:Array.isArray(e)&&(l=null!=(a=null!=(r=e[0])?r:e[1])?a:120,s=null!=(i=null!=(o=e[0])?o:e[1])?i:120));return[l,s]},M=e=>{let{prefixCls:n,trailColor:r=null,strokeLinecap:a="round",gapPosition:o,gapDegree:i,width:s=120,type:c,children:d,success:u,size:m=s,steps:p}=e,[f,g]=z(m,"circle"),{strokeWidth:v}=e;void 0===v&&(v=Math.max(3/f*100,6));let b=t.useMemo(()=>i||0===i?i:"dashboard"===c?75:void 0,[i,c]),h=(({percent:e,success:t,successPercent:n})=>{let r=j(N({success:t,successPercent:n}));return[r,j(j(e)-r)]})(e),y="[object Object]"===Object.prototype.toString.call(e.strokeColor),$=(({success:e={},strokeColor:t})=>{let{strokeColor:n}=e;return[n||E.presetPrimaryColors.green,t||null]})({success:u,strokeColor:e.strokeColor}),x=(0,l.default)(`${n}-inner`,{[`${n}-circle-gradient`]:y}),k=t.createElement(A,{steps:p,percent:p?h[1]:h,strokeWidth:v,trailWidth:v,strokeColor:p?$[1]:$,strokeLinecap:a,trailColor:r,prefixCls:n,gapDegree:b,gapPosition:o||"dashboard"===c&&"bottom"||void 0}),C=f<=20,O=t.createElement("div",{className:x,style:{width:f,height:g,fontSize:.15*f+6}},k,!C&&d);return C?t.createElement(I.default,{title:d},O):O};e.i(296059);var P=e.i(694758),D=e.i(915654),_=e.i(183293),T=e.i(246422),R=e.i(838378);let L="--progress-line-stroke-color",W="--progress-percent",B=e=>{let t=e?"100%":"-100%";return new P.Keyframes(`antProgress${e?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${t}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${t}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},H=(0,T.genStyleHooks)("Progress",e=>{let t=e.calc(e.marginXXS).div(2).equal(),n=(0,R.mergeToken)(e,{progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:"2.4s"});return[(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Object.assign(Object.assign({},(0,_.resetComponent)(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize},[`${t}-outer`]:{display:"inline-flex",alignItems:"center",width:"100%"},[`${t}-inner`]:{position:"relative",display:"inline-block",width:"100%",flex:1,overflow:"hidden",verticalAlign:"middle",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.defaultColor}},[`${t}-success-bg, ${t}-bg`]:{position:"relative",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-layout-bottom`]:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",[`${t}-text`]:{width:"max-content",marginInlineStart:0,marginTop:e.marginXXS}},[`${t}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${L})`]},height:"100%",width:`calc(1 / var(${W}) * 100%)`,display:"block"},[`&${t}-bg-inner`]:{minWidth:"max-content","&::after":{content:"none"},[`${t}-text-inner`]:{color:e.colorWhite,[`&${t}-text-bright`]:{color:"rgba(0, 0, 0, 0.45)"}}}},[`${t}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:"2em",whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[n]:{fontSize:e.fontSize},[`&${t}-text-outer`]:{width:"max-content"},[`&${t}-text-outer${t}-text-start`]:{width:"max-content",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${t}-text-inner`]:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",marginInlineStart:0,padding:`0 ${(0,D.unit)(e.paddingXXS)}`,[`&${t}-text-start`]:{justifyContent:"start"},[`&${t}-text-end`]:{justifyContent:"end"}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:B(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${t}-rtl${t}-status-active`]:{[`${t}-bg::before`]:{animationName:B(!0)}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}})(n),(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.remainingColor},[`&${t}-circle ${t}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${t}-circle ${t}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[n]:{fontSize:e.circleIconFontSize}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:"bottom"}}}})(n),(e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.defaultColor}}}}}})(n),(e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}})(n)]},e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}));var V=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let F=e=>{let{prefixCls:n,direction:r,percent:a,size:o,strokeWidth:i,strokeColor:s,strokeLinecap:c="round",children:d,trailColor:u=null,percentPosition:m,success:p}=e,{align:f,type:g}=m,v=s&&"string"!=typeof s?((e,t)=>{let{from:n=E.presetPrimaryColors.blue,to:r=E.presetPrimaryColors.blue,direction:a="rtl"===t?"to left":"to right"}=e,o=V(e,["from","to","direction"]);if(0!==Object.keys(o).length){let e,t=(e=[],Object.keys(o).forEach(t=>{let n=Number.parseFloat(t.replace(/%/g,""));Number.isNaN(n)||e.push({key:n,value:o[t]})}),(e=e.sort((e,t)=>e.key-t.key)).map(({key:e,value:t})=>`${t} ${e}%`).join(", ")),n=`linear-gradient(${a}, ${t})`;return{background:n,[L]:n}}let i=`linear-gradient(${a}, ${n}, ${r})`;return{background:i,[L]:i}})(s,r):{[L]:s,background:s},b="square"===c||"butt"===c?0:void 0,[h,y]=z(null!=o?o:[-1,i||("small"===o?6:8)],"line",{strokeWidth:i}),$=Object.assign(Object.assign({width:`${j(a)}%`,height:y,borderRadius:b},v),{[W]:j(a)/100}),x=N(e),k={width:`${j(x)}%`,height:y,borderRadius:b,backgroundColor:null==p?void 0:p.strokeColor},C=t.createElement("div",{className:`${n}-inner`,style:{backgroundColor:u||void 0,borderRadius:b}},t.createElement("div",{className:(0,l.default)(`${n}-bg`,`${n}-bg-${g}`),style:$},"inner"===g&&d),void 0!==x&&t.createElement("div",{className:`${n}-success-bg`,style:k})),O="outer"===g&&"start"===f,w="outer"===g&&"end"===f;return"outer"===g&&"center"===f?t.createElement("div",{className:`${n}-layout-bottom`},C,d):t.createElement("div",{className:`${n}-outer`,style:{width:h<0?"100%":h}},O&&d,C,w&&d)},G=e=>{let{size:n,steps:r,rounding:a=Math.round,percent:o=0,strokeWidth:i=8,strokeColor:s,trailColor:c=null,prefixCls:d,children:u}=e,m=a(o/100*r),[p,f]=z(null!=n?n:["small"===n?2:14,i],"step",{steps:r,strokeWidth:i}),g=p/r,v=Array.from({length:r});for(let e=0;et.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let q=["normal","exception","active","success"],K=t.forwardRef((e,d)=>{let u,{prefixCls:m,className:p,rootClassName:f,steps:g,strokeColor:v,percent:b=0,size:h="default",showInfo:y=!0,type:$="line",status:x,format:k,style:C,percentPosition:O={}}=e,w=X(e,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style","percentPosition"]),{align:S="end",type:A="outer"}=O,I=Array.isArray(v)?v[0]:v,E="string"==typeof v||Array.isArray(v)?v:void 0,P=t.useMemo(()=>{if(I){let e="string"==typeof I?I:Object.values(I)[0];return new n.FastColor(e).isLight()}return!1},[v]),D=t.useMemo(()=>{var t,n;let r=N(e);return Number.parseInt(void 0!==r?null==(t=null!=r?r:0)?void 0:t.toString():null==(n=null!=b?b:0)?void 0:n.toString(),10)},[b,e.success,e.successPercent]),_=t.useMemo(()=>!q.includes(x)&&D>=100?"success":x||"normal",[x,D]),{getPrefixCls:T,direction:R,progress:L}=t.useContext(c.ConfigContext),W=T("progress",m),[B,V,K]=H(W),U="line"===$,Y=U&&!g,J=t.useMemo(()=>{let n;if(!y)return null;let s=N(e),c=k||(e=>`${e}%`),d=U&&P&&"inner"===A;return"inner"===A||k||"exception"!==_&&"success"!==_?n=c(j(b),j(s)):"exception"===_?n=U?t.createElement(o.default,null):t.createElement(i.default,null):"success"===_&&(n=U?t.createElement(r.default,null):t.createElement(a.default,null)),t.createElement("span",{className:(0,l.default)(`${W}-text`,{[`${W}-text-bright`]:d,[`${W}-text-${S}`]:Y,[`${W}-text-${A}`]:Y}),title:"string"==typeof n?n:void 0},n)},[y,b,D,_,$,W,k]);"line"===$?u=g?t.createElement(G,Object.assign({},e,{strokeColor:E,prefixCls:W,steps:"object"==typeof g?g.count:g}),J):t.createElement(F,Object.assign({},e,{strokeColor:I,prefixCls:W,direction:R,percentPosition:{align:S,type:A}}),J):("circle"===$||"dashboard"===$)&&(u=t.createElement(M,Object.assign({},e,{strokeColor:I,prefixCls:W,progressStatus:_}),J));let Q=(0,l.default)(W,`${W}-status-${_}`,{[`${W}-${"dashboard"===$&&"circle"||$}`]:"line"!==$,[`${W}-inline-circle`]:"circle"===$&&z(h,"circle")[0]<=20,[`${W}-line`]:Y,[`${W}-line-align-${S}`]:Y,[`${W}-line-position-${A}`]:Y,[`${W}-steps`]:g,[`${W}-show-info`]:y,[`${W}-${h}`]:"string"==typeof h,[`${W}-rtl`]:"rtl"===R},null==L?void 0:L.className,p,f,V,K);return B(t.createElement("div",Object.assign({ref:d,style:Object.assign(Object.assign({},null==L?void 0:L.style),C),className:Q,role:"progressbar","aria-valuenow":D,"aria-valuemin":0,"aria-valuemax":100},(0,s.default)(w,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),u))});e.s(["default",0,K],309821)},94629,e=>{"use strict";var t=e.i(271645);let n=t.forwardRef(function(e,n){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:n},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,n],94629)},56456,e=>{"use strict";var t=e.i(739295);e.s(["LoadingOutlined",()=>t.default])},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var a=e.i(9583),o=n.forwardRef(function(e,o){return n.createElement(a.default,(0,t.default)({},e,{ref:o,icon:r}))});e.s(["DollarOutlined",0,o],458505)},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var a=e.i(9583),o=n.forwardRef(function(e,o){return n.createElement(a.default,(0,t.default)({},e,{ref:o,icon:r}))});e.s(["ClockCircleOutlined",0,o],637235)},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),n=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var a=e.i(9583),o=n.forwardRef(function(e,o){return n.createElement(a.default,(0,t.default)({},e,{ref:o,icon:r}))});e.s(["CodeOutlined",0,o],245094)},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),r=e.i(914949),a=e.i(404948);let o=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,o],836938);var i=e.i(613541),l=e.i(763731),s=e.i(242064),c=e.i(491816);e.i(793154);var d=e.i(880476),u=e.i(183293),m=e.i(717356),p=e.i(320560),f=e.i(307358),g=e.i(246422),v=e.i(838378),b=e.i(617933);let h=(0,g.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:n}=e,r=(0,v.mergeToken)(e,{popoverBg:t,popoverColor:n});return[(e=>{let{componentCls:t,popoverColor:n,titleMinWidth:r,fontWeightStrong:a,innerPadding:o,boxShadowSecondary:i,colorTextHeading:l,borderRadiusLG:s,zIndexPopup:c,titleMarginBottom:d,colorBgElevated:m,popoverBg:f,titleBorderBottom:g,innerContentPadding:v,titlePadding:b}=e;return[{[t]:Object.assign(Object.assign({},(0,u.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":m,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:"padding-box",borderRadius:s,boxShadow:i,padding:o},[`${t}-title`]:{minWidth:r,marginBottom:d,color:l,fontWeight:a,borderBottom:g,padding:b},[`${t}-inner-content`]:{color:n,padding:v}})},(0,p.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(r),(e=>{let{componentCls:t}=e;return{[t]:b.PresetColors.map(n=>{let r=e[`${n}6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:"transparent"}}}})}})(r),(0,m.initZoomMotion)(r,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:n,fontHeight:r,padding:a,wireframe:o,zIndexPopupBase:i,borderRadiusLG:l,marginXS:s,lineType:c,colorSplit:d,paddingSM:u}=e,m=n-r;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},(0,f.getArrowToken)(e)),(0,p.getArrowOffsetToken)({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:12*!o,titleMarginBottom:o?0:s,titlePadding:o?`${m/2}px ${a}px ${m/2-t}px`:0,titleBorderBottom:o?`${t}px ${c} ${d}`:"none",innerContentPadding:o?`${u}px ${a}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let $=({title:e,content:n,prefixCls:r})=>e||n?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${r}-title`},e),n&&t.createElement("div",{className:`${r}-inner-content`},n)):null,x=e=>{let{hashId:r,prefixCls:a,className:i,style:l,placement:s="top",title:c,content:u,children:m}=e,p=o(c),f=o(u),g=(0,n.default)(r,a,`${a}-pure`,`${a}-placement-${s}`,i);return t.createElement("div",{className:g,style:l},t.createElement("div",{className:`${a}-arrow`}),t.createElement(d.Popup,Object.assign({},e,{className:r,prefixCls:a}),m||t.createElement($,{prefixCls:a,title:p,content:f})))},k=e=>{let{prefixCls:r,className:a}=e,o=y(e,["prefixCls","className"]),{getPrefixCls:i}=t.useContext(s.ConfigContext),l=i("popover",r),[c,d,u]=h(l);return c(t.createElement(x,Object.assign({},o,{prefixCls:l,hashId:d,className:(0,n.default)(a,u)})))};e.s(["Overlay",0,$,"default",0,k],310730);var C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let O=t.forwardRef((e,d)=>{var u,m;let{prefixCls:p,title:f,content:g,overlayClassName:v,placement:b="top",trigger:y="hover",children:x,mouseEnterDelay:k=.1,mouseLeaveDelay:O=.1,onOpenChange:w,overlayStyle:S={},styles:A,classNames:I}=e,E=C(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:j,className:N,style:z,classNames:M,styles:P}=(0,s.useComponentConfig)("popover"),D=j("popover",p),[_,T,R]=h(D),L=j(),W=(0,n.default)(v,T,R,N,M.root,null==I?void 0:I.root),B=(0,n.default)(M.body,null==I?void 0:I.body),[H,V]=(0,r.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(m=e.defaultOpen)?m:e.defaultVisible}),F=(e,t)=>{V(e,!0),null==w||w(e,t)},G=o(f),X=o(g);return _(t.createElement(c.default,Object.assign({placement:b,trigger:y,mouseEnterDelay:k,mouseLeaveDelay:O},E,{prefixCls:D,classNames:{root:W,body:B},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},P.root),z),S),null==A?void 0:A.root),body:Object.assign(Object.assign({},P.body),null==A?void 0:A.body)},ref:d,open:H,onOpenChange:e=>{F(e)},overlay:G||X?t.createElement($,{prefixCls:D,title:G,content:X}):null,transitionName:(0,i.getTransitionName)(L,"zoom-big",E.transitionName),"data-popover-inject":!0}),(0,l.cloneElement)(x,{onKeyDown:e=>{var n,r;(0,t.isValidElement)(x)&&(null==(r=null==x?void 0:(n=x.props).onKeyDown)||r.call(n,e)),e.keyCode===a.default.ESC&&F(!1,e)}})))});O._InternalPanelDoNotUseOrYouWillBeFired=k,e.s(["default",0,O],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},903446,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["default",()=>t])},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},573421,e=>{"use strict";e.i(247167);var t=e.i(8211),n=e.i(271645),r=e.i(343794),a=e.i(887719),o=e.i(908206),i=e.i(242064),l=e.i(721132),s=e.i(517455),c=e.i(264042),d=e.i(150073),u=e.i(165370),m=e.i(244451);let p=n.default.createContext({});p.Consumer;var f=e.i(763731),g=e.i(211576),v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let b=n.default.forwardRef((e,t)=>{let a,{prefixCls:o,children:l,actions:s,extra:c,styles:d,className:u,classNames:m,colStyle:b}=e,h=v(e,["prefixCls","children","actions","extra","styles","className","classNames","colStyle"]),{grid:y,itemLayout:$}=(0,n.useContext)(p),{getPrefixCls:x,list:k}=(0,n.useContext)(i.ConfigContext),C=e=>{var t,n;return(0,r.default)(null==(n=null==(t=null==k?void 0:k.item)?void 0:t.classNames)?void 0:n[e],null==m?void 0:m[e])},O=e=>{var t,n;return Object.assign(Object.assign({},null==(n=null==(t=null==k?void 0:k.item)?void 0:t.styles)?void 0:n[e]),null==d?void 0:d[e])},w=x("list",o),S=s&&s.length>0&&n.default.createElement("ul",{className:(0,r.default)(`${w}-item-action`,C("actions")),key:"actions",style:O("actions")},s.map((e,t)=>n.default.createElement("li",{key:`${w}-item-action-${t}`},e,t!==s.length-1&&n.default.createElement("em",{className:`${w}-item-action-split`})))),A=n.default.createElement(y?"div":"li",Object.assign({},h,y?{}:{ref:t},{className:(0,r.default)(`${w}-item`,{[`${w}-item-no-flex`]:!("vertical"===$?!!c:(a=!1,n.Children.forEach(l,e=>{"string"==typeof e&&(a=!0)}),!(a&&n.Children.count(l)>1)))},u)}),"vertical"===$&&c?[n.default.createElement("div",{className:`${w}-item-main`,key:"content"},l,S),n.default.createElement("div",{className:(0,r.default)(`${w}-item-extra`,C("extra")),key:"extra",style:O("extra")},c)]:[l,S,(0,f.cloneElement)(c,{key:"extra"})]);return y?n.default.createElement(g.Col,{ref:t,flex:1,style:b},A):A});b.Meta=e=>{var{prefixCls:t,className:a,avatar:o,title:l,description:s}=e,c=v(e,["prefixCls","className","avatar","title","description"]);let{getPrefixCls:d}=(0,n.useContext)(i.ConfigContext),u=d("list",t),m=(0,r.default)(`${u}-item-meta`,a),p=n.default.createElement("div",{className:`${u}-item-meta-content`},l&&n.default.createElement("h4",{className:`${u}-item-meta-title`},l),s&&n.default.createElement("div",{className:`${u}-item-meta-description`},s));return n.default.createElement("div",Object.assign({},c,{className:m}),o&&n.default.createElement("div",{className:`${u}-item-meta-avatar`},o),(l||s)&&p)},e.i(296059);var h=e.i(915654),y=e.i(183293),$=e.i(246422),x=e.i(838378);let k=(0,$.genStyleHooks)("List",e=>{let t=(0,x.mergeToken)(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG});return[(e=>{let{componentCls:t,antCls:n,controlHeight:r,minHeight:a,paddingSM:o,marginLG:i,padding:l,itemPadding:s,colorPrimary:c,itemPaddingSM:d,itemPaddingLG:u,paddingXS:m,margin:p,colorText:f,colorTextDescription:g,motionDurationSlow:v,lineWidth:b,headerBg:$,footerBg:x,emptyTextPadding:k,metaMarginBottom:C,avatarMarginRight:O,titleMarginBottom:w,descriptionFontSize:S}=e;return{[t]:Object.assign(Object.assign({},(0,y.resetComponent)(e)),{position:"relative","--rc-virtual-list-scrollbar-bg":e.colorSplit,"*":{outline:"none"},[`${t}-header`]:{background:$},[`${t}-footer`]:{background:x},[`${t}-header, ${t}-footer`]:{paddingBlock:o},[`${t}-pagination`]:{marginBlockStart:i,[`${n}-pagination-options`]:{textAlign:"start"}},[`${t}-spin`]:{minHeight:a,textAlign:"center"},[`${t}-items`]:{margin:0,padding:0,listStyle:"none"},[`${t}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:s,color:f,[`${t}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${t}-item-meta-avatar`]:{marginInlineEnd:O},[`${t}-item-meta-content`]:{flex:"1 0",width:0,color:f},[`${t}-item-meta-title`]:{margin:`0 0 ${(0,h.unit)(e.marginXXS)} 0`,color:f,fontSize:e.fontSize,lineHeight:e.lineHeight,"> a":{color:f,transition:`all ${v}`,"&:hover":{color:c}}},[`${t}-item-meta-description`]:{color:g,fontSize:S,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:"0 0 auto",marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:"none","& > li":{position:"relative",display:"inline-block",padding:`0 ${(0,h.unit)(m)}`,color:g,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:"center","&:first-child":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:b,height:e.calc(e.fontHeight).sub(e.calc(e.marginXXS).mul(2)).equal(),transform:"translateY(-50%)",backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${(0,h.unit)(l)} 0`,color:g,fontSize:e.fontSizeSM,textAlign:"center"},[`${t}-empty-text`]:{padding:k,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:"center"},[`${t}-item-no-flex`]:{display:"block"}}),[`${t}-grid ${n}-col > ${t}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:p,paddingBlock:0,borderBlockEnd:"none"},[`${t}-vertical ${t}-item`]:{alignItems:"initial",[`${t}-item-main`]:{display:"block",flex:1},[`${t}-item-extra`]:{marginInlineStart:i},[`${t}-item-meta`]:{marginBlockEnd:C,[`${t}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:w,color:f,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:l,marginInlineStart:"auto","> li":{padding:`0 ${(0,h.unit)(l)}`,"&:first-child":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${(0,h.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBlockEnd:"none"}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${(0,h.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${(0,h.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:r},[`${t}-split${t}-something-after-last-item ${n}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${(0,h.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:u},[`${t}-sm ${t}-item`]:{padding:d},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:"right"}}}}})(t),(e=>{let{listBorderedCls:t,componentCls:n,paddingLG:r,margin:a,itemPaddingSM:o,itemPaddingLG:i,marginLG:l,borderRadiusLG:s}=e,c=(0,h.unit)(e.calc(s).sub(e.lineWidth).equal());return{[t]:{border:`${(0,h.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:s,[`${n}-header`]:{borderRadius:`${c} ${c} 0 0`},[`${n}-footer`]:{borderRadius:`0 0 ${c} ${c}`},[`${n}-header,${n}-footer,${n}-item`]:{paddingInline:r},[`${n}-pagination`]:{margin:`${(0,h.unit)(a)} ${(0,h.unit)(l)}`}},[`${t}${n}-sm`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:o}},[`${t}${n}-lg`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:i}}}})(t),(e=>{let{componentCls:t,screenSM:n,screenMD:r,marginLG:a,marginSM:o,margin:i}=e;return{[`@media screen and (max-width:${r}px)`]:{[t]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:a}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:a}}}},[`@media screen and (max-width: ${n}px)`]:{[t]:{[`${t}-item`]:{flexWrap:"wrap",[`${t}-action`]:{marginInlineStart:o}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:"wrap-reverse",[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${(0,h.unit)(i)}`}}}}}})(t)]},e=>({contentWidth:220,itemPadding:`${(0,h.unit)(e.paddingContentVertical)} 0`,itemPaddingSM:`${(0,h.unit)(e.paddingContentVerticalSM)} ${(0,h.unit)(e.paddingContentHorizontal)}`,itemPaddingLG:`${(0,h.unit)(e.paddingContentVerticalLG)} ${(0,h.unit)(e.paddingContentHorizontalLG)}`,headerBg:"transparent",footerBg:"transparent",emptyTextPadding:e.padding,metaMarginBottom:e.padding,avatarMarginRight:e.padding,titleMarginBottom:e.paddingSM,descriptionFontSize:e.fontSize}));var C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let O=n.forwardRef(function(e,f){let{pagination:g=!1,prefixCls:v,bordered:b=!1,split:h=!0,className:y,rootClassName:$,style:x,children:O,itemLayout:w,loadMore:S,grid:A,dataSource:I=[],size:E,header:j,footer:N,loading:z=!1,rowKey:M,renderItem:P,locale:D}=e,_=C(e,["pagination","prefixCls","bordered","split","className","rootClassName","style","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),T=g&&"object"==typeof g?g:{},[R,L]=n.useState(T.defaultCurrent||1),[W,B]=n.useState(T.defaultPageSize||10),{getPrefixCls:H,direction:V,className:F,style:G}=(0,i.useComponentConfig)("list"),{renderEmpty:X}=n.useContext(i.ConfigContext),q=e=>(t,n)=>{var r;L(t),B(n),g&&(null==(r=null==g?void 0:g[e])||r.call(g,t,n))},K=q("onChange"),U=q("onShowSizeChange"),Y=!!(S||g||N),J=H("list",v),[Q,Z,ee]=k(J),et=z;"boolean"==typeof et&&(et={spinning:et});let en=!!(null==et?void 0:et.spinning),er=(0,s.default)(E),ea="";switch(er){case"large":ea="lg";break;case"small":ea="sm"}let eo=(0,r.default)(J,{[`${J}-vertical`]:"vertical"===w,[`${J}-${ea}`]:ea,[`${J}-split`]:h,[`${J}-bordered`]:b,[`${J}-loading`]:en,[`${J}-grid`]:!!A,[`${J}-something-after-last-item`]:Y,[`${J}-rtl`]:"rtl"===V},F,y,$,Z,ee),ei=(0,a.default)({current:1,total:0,position:"bottom"},{total:I.length,current:R,pageSize:W},g||{}),el=Math.ceil(ei.total/ei.pageSize);ei.current=Math.min(ei.current,el);let es=g&&n.createElement("div",{className:(0,r.default)(`${J}-pagination`)},n.createElement(u.default,Object.assign({align:"end"},ei,{onChange:K,onShowSizeChange:U}))),ec=(0,t.default)(I);g&&I.length>(ei.current-1)*ei.pageSize&&(ec=(0,t.default)(I).splice((ei.current-1)*ei.pageSize,ei.pageSize));let ed=Object.keys(A||{}).some(e=>["xs","sm","md","lg","xl","xxl"].includes(e)),eu=(0,d.default)(ed),em=n.useMemo(()=>{for(let e=0;e{if(!A)return;let e=em&&A[em]?A[em]:A.column;if(e)return{width:`${100/e}%`,maxWidth:`${100/e}%`}},[JSON.stringify(A),em]),ef=en&&n.createElement("div",{style:{minHeight:53}});if(ec.length>0){let e=ec.map((e,t)=>{let r;return P?((r="function"==typeof M?M(e):M?e[M]:e.key)||(r=`list-item-${t}`),n.createElement(n.Fragment,{key:r},P(e,t))):null});ef=A?n.createElement(c.Row,{gutter:A.gutter},n.Children.map(e,e=>n.createElement("div",{key:null==e?void 0:e.key,style:ep},e))):n.createElement("ul",{className:`${J}-items`},e)}else O||en||(ef=n.createElement("div",{className:`${J}-empty-text`},(null==D?void 0:D.emptyText)||(null==X?void 0:X("List"))||n.createElement(l.default,{componentName:"List"})));let eg=ei.position,ev=n.useMemo(()=>({grid:A,itemLayout:w}),[JSON.stringify(A),w]);return Q(n.createElement(p.Provider,{value:ev},n.createElement("div",Object.assign({ref:f,style:Object.assign(Object.assign({},G),x),className:eo},_),("top"===eg||"both"===eg)&&es,j&&n.createElement("div",{className:`${J}-header`},j),n.createElement(m.default,Object.assign({},et),ef,O),N&&n.createElement("div",{className:`${J}-footer`},N),S||("bottom"===eg||"both"===eg)&&es)))});O.Item=b,e.s(["List",0,O],573421)},608856,e=>{"use strict";e.i(247167);var t=e.i(271645),n=e.i(343794),r=e.i(209428),a=e.i(392221),o=e.i(951160),i=e.i(174428),l=t.createContext(null),s=t.createContext({}),c=e.i(211577),d=e.i(931067),u=e.i(361275),m=e.i(404948),p=e.i(244009),f=e.i(703923),g=e.i(611935),v=["prefixCls","className","containerRef"];let b=function(e){var r=e.prefixCls,a=e.className,o=e.containerRef,i=(0,f.default)(e,v),l=t.useContext(s).panel,c=(0,g.useComposeRef)(l,o);return t.createElement("div",(0,d.default)({className:(0,n.default)("".concat(r,"-content"),a),role:"dialog",ref:c},(0,p.default)(e,{aria:!0}),{"aria-modal":"true"},i))};var h=e.i(883110);function y(e){return"string"==typeof e&&String(Number(e))===e?((0,h.default)(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}e.i(654310);var $={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"},x=t.forwardRef(function(e,o){var i,s,f,g=e.prefixCls,v=e.open,h=e.placement,x=e.inline,k=e.push,C=e.forceRender,O=e.autoFocus,w=e.keyboard,S=e.classNames,A=e.rootClassName,I=e.rootStyle,E=e.zIndex,j=e.className,N=e.id,z=e.style,M=e.motion,P=e.width,D=e.height,_=e.children,T=e.mask,R=e.maskClosable,L=e.maskMotion,W=e.maskClassName,B=e.maskStyle,H=e.afterOpenChange,V=e.onClose,F=e.onMouseEnter,G=e.onMouseOver,X=e.onMouseLeave,q=e.onClick,K=e.onKeyDown,U=e.onKeyUp,Y=e.styles,J=e.drawerRender,Q=t.useRef(),Z=t.useRef(),ee=t.useRef();t.useImperativeHandle(o,function(){return Q.current}),t.useEffect(function(){if(v&&O){var e;null==(e=Q.current)||e.focus({preventScroll:!0})}},[v]);var et=t.useState(!1),en=(0,a.default)(et,2),er=en[0],ea=en[1],eo=t.useContext(l),ei=null!=(i=null!=(s=null==(f="boolean"==typeof k?k?{}:{distance:0}:k||{})?void 0:f.distance)?s:null==eo?void 0:eo.pushDistance)?i:180,el=t.useMemo(function(){return{pushDistance:ei,push:function(){ea(!0)},pull:function(){ea(!1)}}},[ei]);t.useEffect(function(){var e,t;v?null==eo||null==(e=eo.push)||e.call(eo):null==eo||null==(t=eo.pull)||t.call(eo)},[v]),t.useEffect(function(){return function(){var e;null==eo||null==(e=eo.pull)||e.call(eo)}},[]);var es=t.createElement(u.default,(0,d.default)({key:"mask"},L,{visible:T&&v}),function(e,a){var o=e.className,i=e.style;return t.createElement("div",{className:(0,n.default)("".concat(g,"-mask"),o,null==S?void 0:S.mask,W),style:(0,r.default)((0,r.default)((0,r.default)({},i),B),null==Y?void 0:Y.mask),onClick:R&&v?V:void 0,ref:a})}),ec="function"==typeof M?M(h):M,ed={};if(er&&ei)switch(h){case"top":ed.transform="translateY(".concat(ei,"px)");break;case"bottom":ed.transform="translateY(".concat(-ei,"px)");break;case"left":ed.transform="translateX(".concat(ei,"px)");break;default:ed.transform="translateX(".concat(-ei,"px)")}"left"===h||"right"===h?ed.width=y(P):ed.height=y(D);var eu={onMouseEnter:F,onMouseOver:G,onMouseLeave:X,onClick:q,onKeyDown:K,onKeyUp:U},em=t.createElement(u.default,(0,d.default)({key:"panel"},ec,{visible:v,forceRender:C,onVisibleChanged:function(e){null==H||H(e)},removeOnLeave:!1,leavedClassName:"".concat(g,"-content-wrapper-hidden")}),function(a,o){var i=a.className,l=a.style,s=t.createElement(b,(0,d.default)({id:N,containerRef:o,prefixCls:g,className:(0,n.default)(j,null==S?void 0:S.content),style:(0,r.default)((0,r.default)({},z),null==Y?void 0:Y.content)},(0,p.default)(e,{aria:!0}),eu),_);return t.createElement("div",(0,d.default)({className:(0,n.default)("".concat(g,"-content-wrapper"),null==S?void 0:S.wrapper,i),style:(0,r.default)((0,r.default)((0,r.default)({},ed),l),null==Y?void 0:Y.wrapper)},(0,p.default)(e,{data:!0})),J?J(s):s)}),ep=(0,r.default)({},I);return E&&(ep.zIndex=E),t.createElement(l.Provider,{value:el},t.createElement("div",{className:(0,n.default)(g,"".concat(g,"-").concat(h),A,(0,c.default)((0,c.default)({},"".concat(g,"-open"),v),"".concat(g,"-inline"),x)),style:ep,tabIndex:-1,ref:Q,onKeyDown:function(e){var t,n,r=e.keyCode,a=e.shiftKey;switch(r){case m.default.TAB:r===m.default.TAB&&(a||document.activeElement!==ee.current?a&&document.activeElement===Z.current&&(null==(n=ee.current)||n.focus({preventScroll:!0})):null==(t=Z.current)||t.focus({preventScroll:!0}));break;case m.default.ESC:V&&w&&(e.stopPropagation(),V(e))}}},es,t.createElement("div",{tabIndex:0,ref:Z,style:$,"aria-hidden":"true","data-sentinel":"start"}),em,t.createElement("div",{tabIndex:0,ref:ee,style:$,"aria-hidden":"true","data-sentinel":"end"})))});let k=function(e){var n=e.open,l=e.prefixCls,c=e.placement,d=e.autoFocus,u=e.keyboard,m=e.width,p=e.mask,f=void 0===p||p,g=e.maskClosable,v=e.getContainer,b=e.forceRender,h=e.afterOpenChange,y=e.destroyOnClose,$=e.onMouseEnter,k=e.onMouseOver,C=e.onMouseLeave,O=e.onClick,w=e.onKeyDown,S=e.onKeyUp,A=e.panelRef,I=t.useState(!1),E=(0,a.default)(I,2),j=E[0],N=E[1],z=t.useState(!1),M=(0,a.default)(z,2),P=M[0],D=M[1];(0,i.default)(function(){D(!0)},[]);var _=!!P&&void 0!==n&&n,T=t.useRef(),R=t.useRef();(0,i.default)(function(){_&&(R.current=document.activeElement)},[_]);var L=t.useMemo(function(){return{panel:A}},[A]);if(!b&&!j&&!_&&y)return null;var W=(0,r.default)((0,r.default)({},e),{},{open:_,prefixCls:void 0===l?"rc-drawer":l,placement:void 0===c?"right":c,autoFocus:void 0===d||d,keyboard:void 0===u||u,width:void 0===m?378:m,mask:f,maskClosable:void 0===g||g,inline:!1===v,afterOpenChange:function(e){var t,n;N(e),null==h||h(e),e||!R.current||null!=(t=T.current)&&t.contains(R.current)||null==(n=R.current)||n.focus({preventScroll:!0})},ref:T},{onMouseEnter:$,onMouseOver:k,onMouseLeave:C,onClick:O,onKeyDown:w,onKeyUp:S});return t.createElement(s.Provider,{value:L},t.createElement(o.default,{open:_||b||j,autoDestroy:!1,getContainer:v,autoLock:f&&(_||j)},t.createElement(x,W)))};var C=e.i(981444),O=e.i(617206),w=e.i(122767),S=e.i(613541),A=e.i(340010),I=e.i(242064),E=e.i(922611),j=e.i(563113),N=e.i(185793);let z=e=>{var r,a,o,i;let l,{prefixCls:s,ariaId:c,title:d,footer:u,extra:m,closable:p,loading:f,onClose:g,headerStyle:v,bodyStyle:b,footerStyle:h,children:y,classNames:$,styles:x}=e,k=(0,I.useComponentConfig)("drawer");l=!1===p?void 0:void 0===p||!0===p?"start":(null==p?void 0:p.placement)==="end"?"end":"start";let C=t.useCallback(e=>t.createElement("button",{type:"button",onClick:g,className:(0,n.default)(`${s}-close`,{[`${s}-close-${l}`]:"end"===l})},e),[g,s,l]),[O,w]=(0,j.useClosable)((0,j.pickClosable)(e),(0,j.pickClosable)(k),{closable:!0,closeIconRender:C});return t.createElement(t.Fragment,null,d||O?t.createElement("div",{style:Object.assign(Object.assign(Object.assign({},null==(o=k.styles)?void 0:o.header),v),null==x?void 0:x.header),className:(0,n.default)(`${s}-header`,{[`${s}-header-close-only`]:O&&!d&&!m},null==(i=k.classNames)?void 0:i.header,null==$?void 0:$.header)},t.createElement("div",{className:`${s}-header-title`},"start"===l&&w,d&&t.createElement("div",{className:`${s}-title`,id:c},d)),m&&t.createElement("div",{className:`${s}-extra`},m),"end"===l&&w):null,t.createElement("div",{className:(0,n.default)(`${s}-body`,null==$?void 0:$.body,null==(r=k.classNames)?void 0:r.body),style:Object.assign(Object.assign(Object.assign({},null==(a=k.styles)?void 0:a.body),b),null==x?void 0:x.body)},f?t.createElement(N.default,{active:!0,title:!1,paragraph:{rows:5},className:`${s}-body-skeleton`}):y),(()=>{var e,r;if(!u)return null;let a=`${s}-footer`;return t.createElement("div",{className:(0,n.default)(a,null==(e=k.classNames)?void 0:e.footer,null==$?void 0:$.footer),style:Object.assign(Object.assign(Object.assign({},null==(r=k.styles)?void 0:r.footer),h),null==x?void 0:x.footer)},u)})())};e.i(296059);var M=e.i(915654),P=e.i(183293),D=e.i(246422),_=e.i(838378);let T=(e,t)=>({"&-enter, &-appear":Object.assign(Object.assign({},e),{"&-active":t}),"&-leave":Object.assign(Object.assign({},t),{"&-active":e})}),R=(e,t)=>Object.assign({"&-enter, &-appear, &-leave":{"&-start":{transition:"none"},"&-active":{transition:`all ${t}`}}},T({opacity:e},{opacity:1})),L=(0,D.genStyleHooks)("Drawer",e=>{let t=(0,_.mergeToken)(e,{});return[(e=>{let{borderRadiusSM:t,componentCls:n,zIndexPopup:r,colorBgMask:a,colorBgElevated:o,motionDurationSlow:i,motionDurationMid:l,paddingXS:s,padding:c,paddingLG:d,fontSizeLG:u,lineHeightLG:m,lineWidth:p,lineType:f,colorSplit:g,marginXS:v,colorIcon:b,colorIconHover:h,colorBgTextHover:y,colorBgTextActive:$,colorText:x,fontWeightStrong:k,footerPaddingBlock:C,footerPaddingInline:O,calc:w}=e,S=`${n}-content-wrapper`;return{[n]:{position:"fixed",inset:0,zIndex:r,pointerEvents:"none",color:x,"&-pure":{position:"relative",background:o,display:"flex",flexDirection:"column",[`&${n}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${n}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${n}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${n}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:"absolute"},[`${n}-mask`]:{position:"absolute",inset:0,zIndex:r,background:a,pointerEvents:"auto"},[S]:{position:"absolute",zIndex:r,maxWidth:"100vw",transition:`all ${i}`,"&-hidden":{display:"none"}},[`&-left > ${S}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${S}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${S}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${S}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${n}-content`]:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"auto",background:o,pointerEvents:"auto"},[`${n}-header`]:{display:"flex",flex:0,alignItems:"center",padding:`${(0,M.unit)(c)} ${(0,M.unit)(d)}`,fontSize:u,lineHeight:m,borderBottom:`${(0,M.unit)(p)} ${f} ${g}`,"&-title":{display:"flex",flex:1,alignItems:"center",minWidth:0,minHeight:0}},[`${n}-extra`]:{flex:"none"},[`${n}-close`]:Object.assign({display:"inline-flex",width:w(u).add(s).equal(),height:w(u).add(s).equal(),borderRadius:t,justifyContent:"center",alignItems:"center",color:b,fontWeight:k,fontSize:u,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",textDecoration:"none",background:"transparent",border:0,cursor:"pointer",transition:`all ${l}`,textRendering:"auto",[`&${n}-close-end`]:{marginInlineStart:v},[`&:not(${n}-close-end)`]:{marginInlineEnd:v},"&:hover":{color:h,backgroundColor:y,textDecoration:"none"},"&:active":{backgroundColor:$}},(0,P.genFocusStyle)(e)),[`${n}-title`]:{flex:1,margin:0,fontWeight:e.fontWeightStrong,fontSize:u,lineHeight:m},[`${n}-body`]:{flex:1,minWidth:0,minHeight:0,padding:d,overflow:"auto",[`${n}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center"}},[`${n}-footer`]:{flexShrink:0,padding:`${(0,M.unit)(C)} ${(0,M.unit)(O)}`,borderTop:`${(0,M.unit)(p)} ${f} ${g}`},"&-rtl":{direction:"rtl"}}}})(t),(e=>{let{componentCls:t,motionDurationSlow:n}=e;return{[t]:{[`${t}-mask-motion`]:R(0,n),[`${t}-panel-motion`]:["left","right","top","bottom"].reduce((e,t)=>{let r;return Object.assign(Object.assign({},e),{[`&-${t}`]:[R(.7,n),T({transform:(r="100%",({left:`translateX(-${r})`,right:`translateX(${r})`,top:`translateY(-${r})`,bottom:`translateY(${r})`})[t])},{transform:"none"})]})},{})}}})(t)]},e=>({zIndexPopup:e.zIndexPopupBase,footerPaddingBlock:e.paddingXS,footerPaddingInline:e.padding}));var W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);at.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n};let B={distance:180},H=e=>{let{rootClassName:r,width:a,height:o,size:i="default",mask:l=!0,push:s=B,open:c,afterOpenChange:d,onClose:u,prefixCls:m,getContainer:p,panelRef:f=null,style:v,className:b,"aria-labelledby":h,visible:y,afterVisibleChange:$,maskStyle:x,drawerStyle:j,contentWrapperStyle:N,destroyOnClose:M,destroyOnHidden:P}=e,D=W(e,["rootClassName","width","height","size","mask","push","open","afterOpenChange","onClose","prefixCls","getContainer","panelRef","style","className","aria-labelledby","visible","afterVisibleChange","maskStyle","drawerStyle","contentWrapperStyle","destroyOnClose","destroyOnHidden"]),_=(0,C.default)(),T=D.title?_:void 0,{getPopupContainer:R,getPrefixCls:H,direction:V,className:F,style:G,classNames:X,styles:q}=(0,I.useComponentConfig)("drawer"),K=H("drawer",m),[U,Y,J]=L(K),Q=void 0===p&&R?()=>R(document.body):p,Z=(0,n.default)({"no-mask":!l,[`${K}-rtl`]:"rtl"===V},r,Y,J),ee=t.useMemo(()=>null!=a?a:"large"===i?736:378,[a,i]),et=t.useMemo(()=>null!=o?o:"large"===i?736:378,[o,i]),en={motionName:(0,S.getTransitionName)(K,"mask-motion"),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500},er=(0,E.usePanelRef)(),ea=(0,g.composeRef)(f,er),[eo,ei]=(0,w.useZIndex)("Drawer",D.zIndex),{classNames:el={},styles:es={}}=D;return U(t.createElement(O.default,{form:!0,space:!0},t.createElement(A.default.Provider,{value:ei},t.createElement(k,Object.assign({prefixCls:K,onClose:u,maskMotion:en,motion:e=>({motionName:(0,S.getTransitionName)(K,`panel-motion-${e}`),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500})},D,{classNames:{mask:(0,n.default)(el.mask,X.mask),content:(0,n.default)(el.content,X.content),wrapper:(0,n.default)(el.wrapper,X.wrapper)},styles:{mask:Object.assign(Object.assign(Object.assign({},es.mask),x),q.mask),content:Object.assign(Object.assign(Object.assign({},es.content),j),q.content),wrapper:Object.assign(Object.assign(Object.assign({},es.wrapper),N),q.wrapper)},open:null!=c?c:y,mask:l,push:s,width:ee,height:et,style:Object.assign(Object.assign({},G),v),className:(0,n.default)(F,b),rootClassName:Z,getContainer:Q,afterOpenChange:null!=d?d:$,panelRef:ea,zIndex:eo,"aria-labelledby":null!=h?h:T,destroyOnClose:null!=P?P:M}),t.createElement(z,Object.assign({prefixCls:K},D,{ariaId:T,onClose:u}))))))};H._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,style:a,className:o,placement:i="right"}=e,l=W(e,["prefixCls","style","className","placement"]),{getPrefixCls:s}=t.useContext(I.ConfigContext),c=s("drawer",r),[d,u,m]=L(c),p=(0,n.default)(c,`${c}-pure`,`${c}-${i}`,u,m,o);return d(t.createElement("div",{className:p,style:a},t.createElement(z,Object.assign({prefixCls:c},l))))},e.s(["Drawer",0,H],608856)},675879,e=>{"use strict";var t=e.i(843476),n=e.i(191403),r=e.i(135214);e.s(["default",0,()=>{let{accessToken:e}=(0,r.default)();return(0,t.jsx)(n.default,{accessToken:e})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3b4510be1f4cea1f.js b/litellm/proxy/_experimental/out/_next/static/chunks/3b4510be1f4cea1f.js new file mode 100644 index 00000000000..b8616b01082 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/3b4510be1f4cea1f.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,250980,e=>{"use strict";var s=e.i(271645);let a=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlusCircleIcon",0,a],250980)},988297,e=>{"use strict";var s=e.i(271645);let a=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4v16m8-8H4"}))});e.s(["PlusIcon",0,a],988297)},500727,e=>{"use strict";var s=e.i(266027),a=e.i(243652),t=e.i(764205),l=e.i(135214);let r=(0,a.createQueryKeys)("mcpServers");e.s(["useMCPServers",0,()=>{let{accessToken:e}=(0,l.default)();return(0,s.useQuery)({queryKey:r.list({}),queryFn:async()=>await (0,t.fetchMCPServers)(e),enabled:!!e})}])},841947,e=>{"use strict";let s=(0,e.i(475254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>s])},916940,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select vector stores",disabled:o=!1})=>{let[d,u]=(0,a.useState)([]),[m,p]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(n){p(!0);try{let e=await (0,l.vectorStoreListCall)(n);e.data&&u(e.data)}catch(e){console.error("Error fetching vector stores:",e)}finally{p(!1)}}})()},[n]),(0,s.jsx)("div",{children:(0,s.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:e,value:r,loading:m,className:i,allowClear:!0,options:d.map(e=>({label:`${e.vector_store_name||e.vector_store_id} (${e.vector_store_id})`,value:e.vector_store_id,title:e.vector_store_description||e.vector_store_id})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})})}])},213205,e=>{"use strict";e.i(247167);var s=e.i(931067),a=e.i(271645);let t={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"user-add",theme:"outlined"};var l=e.i(9583),r=a.forwardRef(function(e,r){return a.createElement(l.default,(0,s.default)({},e,{ref:r,icon:t}))});e.s(["UserAddOutlined",0,r],213205)},355619,e=>{"use strict";var s=e.i(764205);let a=async(e,a,t)=>{try{if(null===e||null===a)return;if(null!==t){let l=(await (0,s.modelAvailableCall)(t,e,a,!0,null,!0)).data.map(e=>e.id),r=[],i=[];return l.forEach(e=>{e.endsWith("/*")?r.push(e):i.push(e)}),[...r,...i]}}catch(e){console.error("Error fetching user models:",e)}};e.s(["fetchAvailableModelsForTeamOrKey",0,a,"getModelDisplayName",0,e=>{if("all-proxy-models"===e)return"All Proxy Models";if(e.endsWith("/*")){let s=e.replace("/*","");return`All ${s} models`}return e},"unfurlWildcardModelsInList",0,(e,s)=>{let a=[],t=[];return console.log("teamModels",e),console.log("allModels",s),e.forEach(e=>{if(e.endsWith("/*")){let l=e.replace("/*",""),r=s.filter(e=>e.startsWith(l+"/"));t.push(...r),a.push(e)}else t.push(e)}),[...a,...t].filter((e,s,a)=>a.indexOf(e)===s)}])},552130,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select agents",disabled:o=!1})=>{let[d,u]=(0,a.useState)([]),[m,p]=(0,a.useState)([]),[g,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{if(n){x(!0);try{let e=await (0,l.getAgentsList)(n),s=e?.agents||[];u(s);let a=new Set;s.forEach(e=>{let s=e.agent_access_groups;s&&Array.isArray(s)&&s.forEach(e=>a.add(e))}),p(Array.from(a))}catch(e){console.error("Error fetching agents:",e)}finally{x(!1)}}})()},[n]);let h=[...m.map(e=>({label:e,value:`group:${e}`,isAccessGroup:!0,searchText:`${e} Access Group`})),...d.map(e=>({label:`${e.agent_name||e.agent_id}`,value:e.agent_id,isAccessGroup:!1,searchText:`${e.agent_name||e.agent_id} ${e.agent_id} Agent`}))],f=[...r?.agents||[],...(r?.accessGroups||[]).map(e=>`group:${e}`)];return(0,s.jsx)("div",{children:(0,s.jsx)(t.Select,{mode:"multiple",placeholder:c,onChange:s=>{e({agents:s.filter(e=>!e.startsWith("group:")),accessGroups:s.filter(e=>e.startsWith("group:")).map(e=>e.replace("group:",""))})},value:f,loading:g,className:i,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:o,filterOption:(e,s)=>(h.find(e=>e.value===s?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:h.map(e=>(0,s.jsx)(t.Select.Option,{value:e.value,label:e.label,children:(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#722ed1",flexShrink:0}}),(0,s.jsx)("span",{style:{flex:1},children:e.label}),(0,s.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#722ed1",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"Agent"})]})},e.value))})})}])},557662,e=>{"use strict";let s="../ui/assets/logos/",a=[{id:"arize",displayName:"Arize",logo:`${s}arize.png`,supports_key_team_logging:!0,dynamic_params:{arize_api_key:"password",arize_space_id:"password"},description:"Arize Logging Integration"},{id:"braintrust",displayName:"Braintrust",logo:`${s}braintrust.png`,supports_key_team_logging:!1,dynamic_params:{braintrust_api_key:"password",braintrust_project_name:"text"},description:"Braintrust Logging Integration"},{id:"custom_callback_api",displayName:"Custom Callback API",logo:`${s}custom.svg`,supports_key_team_logging:!0,dynamic_params:{custom_callback_api_url:"text",custom_callback_api_headers:"text"},description:"Custom Callback API Logging Integration"},{id:"datadog",displayName:"Datadog",logo:`${s}datadog.png`,supports_key_team_logging:!1,dynamic_params:{dd_api_key:"password",dd_site:"text"},description:"Datadog Logging Integration"},{id:"lago",displayName:"Lago",logo:`${s}lago.svg`,supports_key_team_logging:!1,dynamic_params:{lago_api_url:"text",lago_api_key:"password"},description:"Lago Billing Logging Integration"},{id:"langfuse",displayName:"Langfuse",logo:`${s}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v2 Logging Integration"},{id:"langfuse_otel",displayName:"Langfuse OTEL",logo:`${s}langfuse.png`,supports_key_team_logging:!0,dynamic_params:{langfuse_public_key:"text",langfuse_secret_key:"password",langfuse_host:"text"},description:"Langfuse v3 OTEL Logging Integration"},{id:"langsmith",displayName:"LangSmith",logo:`${s}langsmith.png`,supports_key_team_logging:!0,dynamic_params:{langsmith_api_key:"password",langsmith_project:"text",langsmith_base_url:"text",langsmith_sampling_rate:"number"},description:"Langsmith Logging Integration"},{id:"openmeter",displayName:"OpenMeter",logo:`${s}openmeter.png`,supports_key_team_logging:!1,dynamic_params:{openmeter_api_key:"password",openmeter_base_url:"text"},description:"OpenMeter Logging Integration"},{id:"otel",displayName:"Open Telemetry",logo:`${s}otel.png`,supports_key_team_logging:!1,dynamic_params:{otel_endpoint:"text",otel_headers:"text"},description:"OpenTelemetry Logging Integration"},{id:"s3",displayName:"S3",logo:`${s}aws.svg`,supports_key_team_logging:!1,dynamic_params:{s3_bucket_name:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"S3 Bucket (AWS) Logging Integration"},{id:"SQS",displayName:"SQS",logo:`${s}aws.svg`,supports_key_team_logging:!1,dynamic_params:{sqs_queue_url:"text",aws_access_key_id:"password",aws_secret_access_key:"password",aws_region:"text"},description:"SQS Queue (AWS) Logging Integration"}],t=a.reduce((e,s)=>(e[s.displayName]=s,e),{}),l=a.reduce((e,s)=>(e[s.displayName]=s.id,e),{}),r=a.reduce((e,s)=>(e[s.id]=s.displayName,e),{});e.s(["callbackInfo",0,t,"callback_map",0,l,"mapDisplayToInternalNames",0,e=>e.map(e=>l[e]||e),"mapInternalToDisplayNames",0,e=>e.map(e=>r[e]||e),"reverse_callback_map",0,r])},844565,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:n,placeholder:c="Select pass through routes",disabled:o=!1,teamId:d})=>{let[u,m]=(0,a.useState)([]),[p,g]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(n){g(!0);try{let e=await (0,l.getPassThroughEndpointsCall)(n,d);if(e.endpoints){let s=e.endpoints.map(e=>e.path);m(s)}}catch(e){console.error("Error fetching pass through routes:",e)}finally{g(!1)}}})()},[n,d]),(0,s.jsx)(t.Select,{mode:"tags",placeholder:c,onChange:e,value:r,loading:p,className:i,allowClear:!0,options:u.map(e=>({label:e,value:e})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"},disabled:o})}])},810757,477386,e=>{"use strict";var s=e.i(271645);let a=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}))});e.s(["CogIcon",0,a],810757);let t=s.forwardRef(function(e,a){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"}))});e.s(["BanIcon",0,t],477386)},266484,e=>{"use strict";var s=e.i(843476),a=e.i(199133),t=e.i(592968),l=e.i(312361),r=e.i(827252),i=e.i(994388),n=e.i(304967),c=e.i(779241),o=e.i(988297),d=e.i(68155),u=e.i(810757),m=e.i(477386),p=e.i(557662),g=e.i(435451);let{Option:x}=a.Select;e.s(["default",0,({value:e=[],onChange:h,disabledCallbacks:f=[],onDisabledCallbacksChange:v})=>{let y=Object.entries(p.callbackInfo).filter(([e,s])=>s.supports_key_team_logging).map(([e,s])=>e),b=Object.keys(p.callbackInfo),_=e=>{h?.(e)},j=(s,a,t)=>{let l=[...e];if("callback_name"===a){let e=p.callback_map[t]||t;l[s]={...l[s],[a]:e,callback_vars:{}}}else l[s]={...l[s],[a]:t};_(l)},N=(s,a,t)=>{let l=[...e];l[s]={...l[s],callback_vars:{...l[s].callback_vars,[a]:t}},_(l)};return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(m.BanIcon,{className:"w-5 h-5 text-red-500"}),(0,s.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Disabled Callbacks"}),(0,s.jsx)(t.Tooltip,{title:"Select callbacks to disable for this key. Disabled callbacks will not receive any logging data.",children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Disabled Callbacks"}),(0,s.jsx)(a.Select,{mode:"multiple",placeholder:"Select callbacks to disable",value:f,onChange:e=>{let s=(0,p.mapDisplayToInternalNames)(e);v?.(s)},style:{width:"100%"},optionLabelProp:"label",children:b.map(e=>{let a=p.callbackInfo[e]?.logo,l=p.callbackInfo[e]?.description;return(0,s.jsx)(x,{value:e,label:e,children:(0,s.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,s.jsx)("img",{src:a,alt:e,className:"w-4 h-4 object-contain",onError:s=>{let a=s.target,t=a.parentElement;if(t){let s=document.createElement("div");s.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",s.textContent=e.charAt(0),t.replaceChild(s,a)}}}),(0,s.jsx)("span",{children:e})]})})},e)})}),(0,s.jsx)("div",{className:"text-xs text-gray-500",children:"Select callbacks that should be disabled for this key. These callbacks will not receive any logging data."})]})]}),(0,s.jsx)(l.Divider,{}),(0,s.jsxs)("div",{className:"flex justify-between items-center",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(u.CogIcon,{className:"w-5 h-5 text-blue-500"}),(0,s.jsx)("span",{className:"text-base font-semibold text-gray-800",children:"Logging Integrations"}),(0,s.jsx)(t.Tooltip,{title:"Configure callback logging integrations for this team.",children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help"})})]}),(0,s.jsx)(i.Button,{variant:"secondary",onClick:()=>{_([...e,{callback_name:"",callback_type:"success",callback_vars:{}}])},icon:o.PlusIcon,size:"sm",className:"hover:border-blue-400 hover:text-blue-500",type:"button",children:"Add Integration"})]}),(0,s.jsx)("div",{className:"space-y-4",children:e.map((l,o)=>{let u=l.callback_name?Object.entries(p.callback_map).find(([e,s])=>s===l.callback_name)?.[0]:void 0,m=u?p.callbackInfo[u]?.logo:null;return(0,s.jsxs)(n.Card,{className:"border border-gray-200 shadow-sm hover:shadow-md transition-shadow duration-200",decoration:"top",decorationColor:"blue",children:[(0,s.jsxs)("div",{className:"flex justify-between items-start mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[m&&(0,s.jsx)("img",{src:m,alt:u,className:"w-5 h-5 object-contain"}),(0,s.jsxs)("span",{className:"text-sm font-medium",children:[u||"New Integration"," Configuration"]})]}),(0,s.jsx)(i.Button,{variant:"light",onClick:()=>{_(e.filter((e,s)=>s!==o))},icon:d.TrashIcon,size:"xs",color:"red",className:"hover:bg-red-50",type:"button",children:"Remove"})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Integration Type"}),(0,s.jsx)(a.Select,{value:u,placeholder:"Select integration",onChange:e=>j(o,"callback_name",e),className:"w-full",optionLabelProp:"label",children:y.map(e=>{let a=p.callbackInfo[e]?.logo,l=p.callbackInfo[e]?.description;return(0,s.jsx)(x,{value:e,label:e,children:(0,s.jsx)(t.Tooltip,{title:l,placement:"right",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,s.jsx)("img",{src:a,alt:e,className:"w-4 h-4 object-contain",onError:s=>{let a=s.target,t=a.parentElement;if(t){let s=document.createElement("div");s.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",s.textContent=e.charAt(0),t.replaceChild(s,a)}}}),(0,s.jsx)("span",{children:e})]})})},e)})})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Event Type"}),(0,s.jsxs)(a.Select,{value:l.callback_type,onChange:e=>j(o,"callback_type",e),className:"w-full",children:[(0,s.jsx)(x,{value:"success",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,s.jsx)("span",{children:"Success Only"})]})}),(0,s.jsx)(x,{value:"failure",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-red-500 rounded-full"}),(0,s.jsx)("span",{children:"Failure Only"})]})}),(0,s.jsx)(x,{value:"success_and_failure",children:(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,s.jsx)("span",{children:"Success & Failure"})]})})]})]})]}),((e,a)=>{if(!e.callback_name)return null;let l=Object.entries(p.callback_map).find(([s,a])=>a===e.callback_name)?.[0];if(!l)return null;let i=p.callbackInfo[l]?.dynamic_params||{};return 0===Object.keys(i).length?null:(0,s.jsxs)("div",{className:"mt-6 pt-4 border-t border-gray-100",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2 mb-4",children:[(0,s.jsx)("div",{className:"w-3 h-3 bg-blue-100 rounded-full flex items-center justify-center",children:(0,s.jsx)("div",{className:"w-1.5 h-1.5 bg-blue-500 rounded-full"})}),(0,s.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Integration Parameters"})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4",children:Object.entries(i).map(([l,i])=>(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("label",{className:"text-sm font-medium text-gray-700 capitalize flex items-center space-x-1",children:[(0,s.jsx)("span",{children:l.replace(/_/g," ")}),(0,s.jsx)(t.Tooltip,{title:`Environment variable reference recommended: os.environ/${l.toUpperCase()}`,children:(0,s.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 cursor-help text-xs"})}),"password"===i&&(0,s.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Sensitive"}),"number"===i&&(0,s.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800",children:"Number"})]}),"number"===i&&(0,s.jsx)("span",{className:"text-xs text-gray-500",children:"Value must be between 0 and 1"}),"number"===i?(0,s.jsx)(g.default,{step:.01,width:400,placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(a,l,e.target.value)}):(0,s.jsx)(c.TextInput,{type:"password"===i?"password":"text",placeholder:`os.environ/${l.toUpperCase()}`,value:e.callback_vars[l]||"",onChange:e=>N(a,l,e.target.value)})]},l))})]})})(l,o)]})]},o)})}),0===e.length&&(0,s.jsxs)("div",{className:"text-center py-12 text-gray-500 border-2 border-dashed border-gray-200 rounded-lg bg-gray-50/50",children:[(0,s.jsx)(u.CogIcon,{className:"w-12 h-12 text-gray-300 mb-3 mx-auto"}),(0,s.jsx)("div",{className:"text-base font-medium mb-1",children:"No logging integrations configured"}),(0,s.jsx)("div",{className:"text-sm text-gray-400",children:'Click "Add Integration" to configure logging for this team'})]})]})}])},9314,263147,e=>{"use strict";var s=e.i(843476),a=e.i(199133),t=e.i(981339),l=e.i(645526),r=e.i(599724),i=e.i(266027),n=e.i(243652),c=e.i(764205),o=e.i(708347),d=e.i(135214);let u=(0,n.createQueryKeys)("accessGroups"),m=async e=>{let s=(0,c.getProxyBaseUrl)(),a=`${s}/v1/access_group`,t=await fetch(a,{method:"GET",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!t.ok){let e=await t.json(),s=(0,c.deriveErrorMessage)(e);throw(0,c.handleError)(s),Error(s)}return t.json()},p=()=>{let{accessToken:e,userRole:s}=(0,d.default)();return(0,i.useQuery)({queryKey:u.list({}),queryFn:async()=>m(e),enabled:!!e&&o.all_admin_roles.includes(s||"")})};e.s(["accessGroupKeys",0,u,"useAccessGroups",0,p],263147),e.s(["default",0,({value:e,onChange:i,placeholder:n="Select access groups",disabled:c=!1,style:o,className:d,showLabel:u=!1,labelText:m="Access Group",allowClear:g=!0})=>{let{data:x,isLoading:h,isError:f}=p();if(h)return(0,s.jsxs)("div",{children:[u&&(0,s.jsxs)(r.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,s.jsx)(l.TeamOutlined,{className:"mr-2"})," ",m]}),(0,s.jsx)(t.Skeleton.Input,{active:!0,block:!0,style:{height:32,...o}})]});let v=(x??[]).map(e=>({label:(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-medium",children:e.access_group_name})," ",(0,s.jsxs)("span",{className:"text-gray-400 text-xs",children:["(",e.access_group_id,")"]})]}),value:e.access_group_id,selectedLabel:e.access_group_name,searchText:`${e.access_group_name} ${e.access_group_id}`}));return(0,s.jsxs)("div",{children:[u&&(0,s.jsxs)(r.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,s.jsx)(l.TeamOutlined,{className:"mr-2"})," ",m]}),(0,s.jsx)(a.Select,{mode:"multiple",value:e,placeholder:n,onChange:i,disabled:c,allowClear:g,showSearch:!0,style:{width:"100%",...o},className:`rounded-md ${d??""}`,notFoundContent:f?(0,s.jsx)("span",{className:"text-red-500",children:"Failed to load access groups"}):"No access groups found",filterOption:(e,s)=>(v.find(e=>e.value===s?.value)?.searchText??"").toLowerCase().includes(e.toLowerCase()),optionLabelProp:"selectedLabel",options:v.map(e=>({label:e.label,value:e.value,selectedLabel:e.selectedLabel}))})]})}],9314)},75921,e=>{"use strict";var s=e.i(843476),a=e.i(266027),t=e.i(243652),l=e.i(764205),r=e.i(135214);let i=(0,t.createQueryKeys)("mcpAccessGroups");var n=e.i(500727),c=e.i(199133);e.s(["default",0,({onChange:e,value:t,className:o,accessToken:d,placeholder:u="Select MCP servers",disabled:m=!1})=>{let{data:p=[],isLoading:g}=(0,n.useMCPServers)(),{data:x=[],isLoading:h}=(()=>{let{accessToken:e}=(0,r.default)();return(0,a.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.fetchMCPAccessGroups)(e),enabled:!!e})})(),f=[...x.map(e=>({label:e,value:e,isAccessGroup:!0,searchText:`${e} Access Group`})),...p.map(e=>({label:`${e.server_name||e.server_id} (${e.server_id})`,value:e.server_id,isAccessGroup:!1,searchText:`${e.server_name||e.server_id} ${e.server_id} MCP Server`}))],v=[...t?.servers||[],...t?.accessGroups||[]];return(0,s.jsx)("div",{children:(0,s.jsx)(c.Select,{mode:"multiple",placeholder:u,onChange:s=>{e({servers:s.filter(e=>!x.includes(e)),accessGroups:s.filter(e=>x.includes(e))})},value:v,loading:g||h,className:o,allowClear:!0,showSearch:!0,style:{width:"100%"},disabled:m,filterOption:(e,s)=>(f.find(e=>e.value===s?.value)?.searchText||"").toLowerCase().includes(e.toLowerCase()),children:f.map(e=>(0,s.jsx)(c.Select.Option,{value:e.value,label:e.label,children:(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e.isAccessGroup?"#52c41a":"#1890ff",flexShrink:0}}),(0,s.jsx)("span",{style:{flex:1},children:e.label}),(0,s.jsx)("span",{style:{color:e.isAccessGroup?"#52c41a":"#1890ff",fontSize:"12px",fontWeight:500,opacity:.8},children:e.isAccessGroup?"Access Group":"MCP Server"})]})},e.value))})})}],75921)},390605,995926,e=>{"use strict";var s=e.i(843476),a=e.i(271645),t=e.i(764205),l=e.i(599724),r=e.i(482725),i=e.i(536916),n=e.i(841947);e.s(["XIcon",()=>n.default],995926);var n=n,c=e.i(500727);e.s(["default",0,({accessToken:e,selectedServers:o,toolPermissions:d,onChange:u,disabled:m=!1})=>{let{data:p=[]}=(0,c.useMCPServers)(),[g,x]=(0,a.useState)({}),[h,f]=(0,a.useState)({}),[v,y]=(0,a.useState)({}),b=(0,a.useMemo)(()=>0===o.length?[]:p.filter(e=>o.includes(e.server_id)),[p,o]),_=async s=>{f(e=>({...e,[s]:!0})),y(e=>({...e,[s]:""}));try{let a=await (0,t.listMCPTools)(e,s);a.error?(y(e=>({...e,[s]:a.message||"Failed to fetch tools"})),x(e=>({...e,[s]:[]}))):x(e=>({...e,[s]:a.tools||[]}))}catch(e){console.error(`Error fetching tools for server ${s}:`,e),y(e=>({...e,[s]:"Failed to fetch tools"})),x(e=>({...e,[s]:[]}))}finally{f(e=>({...e,[s]:!1}))}};return((0,a.useEffect)(()=>{b.forEach(e=>{g[e.server_id]||h[e.server_id]||_(e.server_id)})},[b]),0===o.length)?null:(0,s.jsx)("div",{className:"space-y-4",children:b.map(e=>{let a=e.server_name||e.alias||e.server_id,t=g[e.server_id]||[],c=d[e.server_id]||[],o=h[e.server_id],p=v[e.server_id];return(0,s.jsxs)("div",{className:"border rounded-lg bg-gray-50",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-4 border-b bg-white rounded-t-lg",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(l.Text,{className:"font-semibold text-gray-900",children:a}),e.description&&(0,s.jsx)(l.Text,{className:"text-sm text-gray-500",children:e.description})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var s;let a;return a=g[s=e.server_id]||[],void u({...d,[s]:a.map(e=>e.name)})},disabled:m||o,children:"Select All"}),(0,s.jsx)("button",{type:"button",className:"text-sm text-blue-600 hover:text-blue-700 font-medium",onClick:()=>{var s;return s=e.server_id,void u({...d,[s]:[]})},disabled:m||o,children:"Deselect All"}),(0,s.jsx)("button",{type:"button",className:"text-gray-400 hover:text-gray-600",onClick:()=>{},children:(0,s.jsx)(n.default,{className:"w-4 h-4"})})]})]}),(0,s.jsxs)("div",{className:"p-4",children:[(0,s.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 mb-3",children:"Available Tools"}),o&&(0,s.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,s.jsx)(r.Spin,{size:"large"}),(0,s.jsx)(l.Text,{className:"ml-3 text-gray-500",children:"Loading tools..."})]}),p&&!o&&(0,s.jsxs)("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg text-center",children:[(0,s.jsx)(l.Text,{className:"text-red-600 font-medium",children:"Unable to load tools"}),(0,s.jsx)(l.Text,{className:"text-sm text-red-500 mt-1",children:p})]}),!o&&!p&&t.length>0&&(0,s.jsx)("div",{className:"space-y-2",children:t.map(a=>{let t=c.includes(a.name);return(0,s.jsxs)("div",{className:"flex items-start gap-2",children:[(0,s.jsx)(i.Checkbox,{checked:t,onChange:()=>{var s,t;let l,r;return s=e.server_id,t=a.name,r=(l=d[s]||[]).includes(t)?l.filter(e=>e!==t):[...l,t],void u({...d,[s]:r})},disabled:m}),(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(l.Text,{className:"font-medium text-gray-900",children:a.name}),(0,s.jsxs)(l.Text,{className:"text-sm text-gray-500",children:["- ",a.description||"No description"]})]})})]},a.name)})}),!o&&!p&&0===t.length&&(0,s.jsx)("div",{className:"text-center py-6",children:(0,s.jsx)(l.Text,{className:"text-gray-500",children:"No tools available"})})]})]},e.server_id)})})}],390605)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3d2a01213eb1cc87.js b/litellm/proxy/_experimental/out/_next/static/chunks/3d2a01213eb1cc87.js new file mode 100644 index 00000000000..ce9fe2bad41 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/3d2a01213eb1cc87.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,891547,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:o,disabled:n})=>{let[d,c]=(0,a.useState)([]),[m,u]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(o){u(!0);try{let e=await (0,l.getGuardrailsList)(o);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),c(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{u(!1)}}})()},[o]),(0,t.jsx)("div",{children:(0,t.jsx)(s.Select,{mode:"multiple",disabled:n,placeholder:n?"Setting guardrails is a premium feature.":"Select guardrails",onChange:t=>{console.log("Selected guardrails:",t),e(t)},value:r,loading:m,className:i,allowClear:!0,options:d.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},921511,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:r,className:i,accessToken:o,disabled:n})=>{let[d,c]=(0,a.useState)([]),[m,u]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{(async()=>{if(o){u(!0);try{let e=await (0,l.getPoliciesList)(o);console.log("Policies response:",e),e.policies&&(console.log("Policies data:",e.policies),c(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{u(!1)}}})()},[o]),(0,t.jsx)("div",{children:(0,t.jsx)(s.Select,{mode:"multiple",disabled:n,placeholder:n?"Setting policies is a premium feature.":"Select policies",onChange:t=>{console.log("Selected policies:",t),e(t)},value:r,loading:m,className:i,allowClear:!0,options:d.map(e=>(console.log("Mapping policy:",e),{label:`${e.policy_name}${e.description?` - ${e.description}`:""}`,value:e.policy_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function a(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function s(e,s){let l=t(e);return isNaN(s)?a(e,NaN):(s&&l.setDate(l.getDate()+s),l)}function l(e,s){let l=t(e);if(isNaN(s))return a(e,NaN);if(!s)return l;let r=l.getDate(),i=a(e,l.getTime());return(i.setMonth(l.getMonth()+s+1,0),r>=i.getDate())?i:(l.setFullYear(i.getFullYear(),i.getMonth(),r),l)}e.s(["toDate",()=>t],435684),e.s(["constructFrom",()=>a],96226),e.s(["addDays",()=>s],439189),e.s(["addMonths",()=>l],497245)},20147,e=>{"use strict";var t=e.i(843476),a=e.i(135214),s=e.i(214541),l=e.i(500330),r=e.i(11751),i=e.i(530212),o=e.i(278587),n=e.i(68155),d=e.i(389083),c=e.i(994388),m=e.i(304967),u=e.i(350967),p=e.i(197647),x=e.i(653824),g=e.i(881073),h=e.i(404206),_=e.i(723731),j=e.i(599724),y=e.i(629569),b=e.i(464571),f=e.i(808613),v=e.i(262218),N=e.i(592968),T=e.i(678784),w=e.i(118366),k=e.i(271645),S=e.i(708347),I=e.i(557662);let C=k.forwardRef(function(e,t){return k.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),k.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"}))}),A=({autoRotate:e=!1,rotationInterval:a,lastRotationAt:s,keyRotationAt:l,nextRotationAt:r,variant:i="card",className:n=""})=>{let c=e=>{let t=new Date(e),a=t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),s=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${a} at ${s}`},m=(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"space-y-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.RefreshIcon,{className:"h-4 w-4 text-blue-600"}),(0,t.jsx)(j.Text,{className:"font-semibold text-gray-900",children:"Auto-Rotation"}),(0,t.jsx)(d.Badge,{color:e?"green":"gray",size:"xs",children:e?"Enabled":"Disabled"}),e&&a&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.Text,{className:"text-gray-400",children:"•"}),(0,t.jsxs)(j.Text,{className:"text-sm text-gray-600",children:["Every ",a]})]})]})}),(e||s||l||r)&&(0,t.jsxs)("div",{className:"space-y-3",children:[s&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-gray-50 border border-gray-200 rounded-md",children:[(0,t.jsx)(C,{className:"w-4 h-4 text-gray-500"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(j.Text,{className:"font-medium text-gray-700",children:"Last Rotation"}),(0,t.jsx)(j.Text,{className:"text-sm text-gray-600",children:c(s)})]})]}),(l||r)&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-gray-50 border border-gray-200 rounded-md",children:[(0,t.jsx)(C,{className:"w-4 h-4 text-gray-500"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(j.Text,{className:"font-medium text-gray-700",children:"Next Scheduled Rotation"}),(0,t.jsx)(j.Text,{className:"text-sm text-gray-600",children:c(r||l||"")})]})]}),e&&!s&&!l&&!r&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-gray-50 border border-gray-100 rounded-md",children:[(0,t.jsx)(C,{className:"w-4 h-4 text-gray-500"}),(0,t.jsx)(j.Text,{className:"text-gray-600",children:"No rotation history available"})]})]}),!e&&!s&&!l&&!r&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-gray-50 border border-gray-100 rounded-md",children:[(0,t.jsx)(o.RefreshIcon,{className:"w-4 h-4 text-gray-400"}),(0,t.jsx)(j.Text,{className:"text-gray-600",children:"Auto-rotation is not enabled for this key"})]})]});return"card"===i?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${n}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-semibold text-gray-900",children:"Auto-Rotation"}),(0,t.jsx)(j.Text,{className:"text-xs text-gray-500",children:"Automatic key rotation settings and status for this key"})]})}),m]}):(0,t.jsxs)("div",{className:`${n}`,children:[(0,t.jsx)(j.Text,{className:"font-medium text-gray-900 mb-3",children:"Auto-Rotation"}),m]})};var F=e.i(127952);let D=["logging"],L=e=>e&&"object"==typeof e&&Array.isArray(e.logging)?e.logging:[],M=(e,t=2)=>JSON.stringify(e&&"object"==typeof e?Object.fromEntries(Object.entries(e).filter(([e])=>!D.includes(e))):{},null,t),R=e=>{if(!e||"object"!=typeof e)return e;let{tags:t,...a}=e;return a};var P=e.i(643449),E=e.i(727749),B=e.i(764205),V=e.i(384767),K=e.i(309426),O=e.i(779241),U=e.i(28651),$=e.i(212931),G=e.i(439189),W=e.i(497245),z=e.i(96226),q=e.i(435684);function J(e,t){let{years:a=0,months:s=0,weeks:l=0,days:r=0,hours:i=0,minutes:o=0,seconds:n=0}=t,d=(0,q.toDate)(e),c=s||a?(0,W.addMonths)(d,s+12*a):d,m=r||l?(0,G.addDays)(c,r+7*l):c;return(0,z.constructFrom)(e,m.getTime()+1e3*(n+60*(o+60*i)))}var Y=e.i(237016);function H({selectedToken:e,visible:s,onClose:l,onKeyUpdate:r}){let{accessToken:i}=(0,a.default)(),[o]=f.Form.useForm(),[n,d]=(0,k.useState)(null),[m,p]=(0,k.useState)(null),[x,g]=(0,k.useState)(null),[h,_]=(0,k.useState)(!1),[b,v]=(0,k.useState)(!1),[N,T]=(0,k.useState)(null);(0,k.useEffect)(()=>{s&&e&&i&&(o.setFieldsValue({key_alias:e.key_alias,max_budget:e.max_budget,tpm_limit:e.tpm_limit,rpm_limit:e.rpm_limit,duration:e.duration||""}),T(i),v(e.key_name===i))},[s,e,o,i]),(0,k.useEffect)(()=>{s||(d(null),_(!1),v(!1),T(null),o.resetFields())},[s,o]);let w=e=>{if(!e)return null;try{let t,a=new Date;if(e.endsWith("s"))t=J(a,{seconds:parseInt(e)});else if(e.endsWith("h"))t=J(a,{hours:parseInt(e)});else if(e.endsWith("d"))t=J(a,{days:parseInt(e)});else throw Error("Invalid duration format");return t.toLocaleString()}catch(e){return null}};(0,k.useEffect)(()=>{m?.duration?g(w(m.duration)):g(null)},[m?.duration]);let S=async()=>{if(e&&N){_(!0);try{let t=await o.validateFields(),a=await (0,B.regenerateKeyCall)(N,e.token||e.token_id,t);d(a.key),E.default.success("Virtual Key regenerated successfully"),console.log("Full regenerate response:",a);let s={token:a.token||a.key_id||e.token,key_name:a.key,max_budget:t.max_budget,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,expires:t.duration?w(t.duration):e.expires,...a};console.log("Updated key data with new token:",s),r&&r(s),_(!1)}catch(e){console.error("Error regenerating key:",e),E.default.fromBackend(e),_(!1)}}},I=()=>{d(null),_(!1),v(!1),T(null),o.resetFields(),l()};return(0,t.jsx)($.Modal,{title:"Regenerate Virtual Key",open:s,onCancel:I,footer:n?[(0,t.jsx)(c.Button,{onClick:I,children:"Close"},"close")]:[(0,t.jsx)(c.Button,{onClick:I,className:"mr-2",children:"Cancel"},"cancel"),(0,t.jsx)(c.Button,{onClick:S,disabled:h,children:h?"Regenerating...":"Regenerate"},"regenerate")],children:n?(0,t.jsxs)(u.Grid,{numItems:1,className:"gap-2 w-full",children:[(0,t.jsx)(y.Title,{children:"Regenerated Key"}),(0,t.jsx)(K.Col,{numColSpan:1,children:(0,t.jsxs)("p",{children:["Please replace your old key with the new key generated. For security reasons,"," ",(0,t.jsx)("b",{children:"you will not be able to view it again"})," through your LiteLLM account. If you lose this secret key, you will need to generate a new one."]})}),(0,t.jsxs)(K.Col,{numColSpan:1,children:[(0,t.jsx)(j.Text,{className:"mt-3",children:"Key Alias:"}),(0,t.jsx)("div",{className:"bg-gray-100 p-2 rounded mb-2",children:(0,t.jsx)("pre",{className:"break-words whitespace-normal",children:e?.key_alias||"No alias set"})}),(0,t.jsx)(j.Text,{className:"mt-3",children:"New Virtual Key:"}),(0,t.jsx)("div",{className:"bg-gray-100 p-2 rounded mb-2",children:(0,t.jsx)("pre",{className:"break-words whitespace-normal",children:n})}),(0,t.jsx)(Y.CopyToClipboard,{text:n,onCopy:()=>E.default.success("Virtual Key copied to clipboard"),children:(0,t.jsx)(c.Button,{className:"mt-3",children:"Copy Virtual Key"})})]})]}):(0,t.jsxs)(f.Form,{form:o,layout:"vertical",onValuesChange:e=>{"duration"in e&&p(t=>({...t,duration:e.duration}))},children:[(0,t.jsx)(f.Form.Item,{name:"key_alias",label:"Key Alias",children:(0,t.jsx)(O.TextInput,{disabled:!0})}),(0,t.jsx)(f.Form.Item,{name:"max_budget",label:"Max Budget (USD)",children:(0,t.jsx)(U.InputNumber,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(f.Form.Item,{name:"tpm_limit",label:"TPM Limit",children:(0,t.jsx)(U.InputNumber,{style:{width:"100%"}})}),(0,t.jsx)(f.Form.Item,{name:"rpm_limit",label:"RPM Limit",children:(0,t.jsx)(U.InputNumber,{style:{width:"100%"}})}),(0,t.jsx)(f.Form.Item,{name:"duration",label:"Expire Key (eg: 30s, 30h, 30d)",className:"mt-8",children:(0,t.jsx)(O.TextInput,{placeholder:""})}),(0,t.jsxs)("div",{className:"mt-2 text-sm text-gray-500",children:["Current expiry: ",e?.expires?new Date(e.expires).toLocaleString():"Never"]}),x&&(0,t.jsxs)("div",{className:"mt-2 text-sm text-green-600",children:["New expiry: ",x]})]})})}var Q=e.i(190702),X=e.i(891547),Z=e.i(921511),ee=e.i(827252),et=e.i(311451),ea=e.i(199133),es=e.i(790848),el=e.i(552130),er=e.i(9314),ei=e.i(392110),eo=e.i(844565),en=e.i(939510),ed=e.i(75921),ec=e.i(390605),em=e.i(702597),eu=e.i(435451),ep=e.i(183588),ex=e.i(916940);function eg({keyData:e,onCancel:a,onSubmit:s,teams:l,accessToken:r,userID:i,userRole:o,premiumUser:n=!1}){let[d]=f.Form.useForm(),[m,u]=(0,k.useState)([]),[p,x]=(0,k.useState)({}),g=l?.find(t=>t.team_id===e.team_id),[h,_]=(0,k.useState)([]),[j,y]=(0,k.useState)(Array.isArray(e.metadata?.litellm_disabled_callbacks)?(0,I.mapInternalToDisplayNames)(e.metadata.litellm_disabled_callbacks):[]),[b,v]=(0,k.useState)(e.auto_rotate||!1),[T,w]=(0,k.useState)(e.rotation_interval||""),[S,C]=(0,k.useState)(!1);(0,k.useEffect)(()=>{let t=async()=>{if(i&&o&&r)try{if(null===e.team_id){let e=(await (0,B.modelAvailableCall)(r,i,o)).data.map(e=>e.id);_(e)}else if(g?.team_id){let e=await (0,em.fetchTeamModels)(i,o,r,g.team_id);_(Array.from(new Set([...g.models,...e])))}}catch(e){console.error("Error fetching models:",e)}};(async()=>{if(r)try{let e=await (0,B.getPromptsList)(r);u(e.prompts.map(e=>e.prompt_id))}catch(e){console.error("Failed to fetch prompts:",e)}})(),t()},[i,o,r,g,e.team_id]),(0,k.useEffect)(()=>{d.setFieldValue("disabled_callbacks",j)},[d,j]);let A=e=>e&&({"24h":"daily","7d":"weekly","30d":"monthly"})[e]||null,F={...e,token:e.token||e.token_id,budget_duration:A(e.budget_duration),metadata:M(R(e.metadata)),guardrails:e.metadata?.guardrails,disable_global_guardrails:e.metadata?.disable_global_guardrails||!1,prompts:e.metadata?.prompts,tags:e.metadata?.tags,vector_stores:e.object_permission?.vector_stores||[],mcp_servers_and_groups:{servers:e.object_permission?.mcp_servers||[],accessGroups:e.object_permission?.mcp_access_groups||[]},mcp_tool_permissions:e.object_permission?.mcp_tool_permissions||{},agents_and_groups:{agents:e.object_permission?.agents||[],accessGroups:e.object_permission?.agent_access_groups||[]},logging_settings:L(e.metadata),disabled_callbacks:Array.isArray(e.metadata?.litellm_disabled_callbacks)?(0,I.mapInternalToDisplayNames)(e.metadata.litellm_disabled_callbacks):[],access_group_ids:e.access_group_ids||[],auto_rotate:e.auto_rotate||!1,...e.rotation_interval&&{rotation_interval:e.rotation_interval},allowed_routes:Array.isArray(e.allowed_routes)&&e.allowed_routes.length>0?e.allowed_routes.join(", "):""};(0,k.useEffect)(()=>{d.setFieldsValue({...e,token:e.token||e.token_id,budget_duration:A(e.budget_duration),metadata:M(R(e.metadata)),guardrails:e.metadata?.guardrails,disable_global_guardrails:e.metadata?.disable_global_guardrails||!1,prompts:e.metadata?.prompts,tags:e.metadata?.tags,vector_stores:e.object_permission?.vector_stores||[],mcp_servers_and_groups:{servers:e.object_permission?.mcp_servers||[],accessGroups:e.object_permission?.mcp_access_groups||[]},mcp_tool_permissions:e.object_permission?.mcp_tool_permissions||{},logging_settings:L(e.metadata),disabled_callbacks:Array.isArray(e.metadata?.litellm_disabled_callbacks)?(0,I.mapInternalToDisplayNames)(e.metadata.litellm_disabled_callbacks):[],access_group_ids:e.access_group_ids||[],auto_rotate:e.auto_rotate||!1,...e.rotation_interval&&{rotation_interval:e.rotation_interval},allowed_routes:Array.isArray(e.allowed_routes)&&e.allowed_routes.length>0?e.allowed_routes.join(", "):""})},[e,d]),(0,k.useEffect)(()=>{d.setFieldValue("auto_rotate",b)},[b,d]),(0,k.useEffect)(()=>{T&&d.setFieldValue("rotation_interval",T)},[T,d]),(0,k.useEffect)(()=>{(async()=>{if(r)try{let e=await (0,B.tagListCall)(r);x(e)}catch(e){E.default.fromBackend("Error fetching tags: "+e)}})()},[r]);let D=async e=>{try{if(C(!0),"string"==typeof e.allowed_routes){let t=e.allowed_routes.trim();""===t?e.allowed_routes=[]:e.allowed_routes=t.split(",").map(e=>e.trim()).filter(e=>e.length>0)}await s(e)}finally{C(!1)}};return(0,t.jsxs)(f.Form,{form:d,onFinish:D,initialValues:F,layout:"vertical",children:[(0,t.jsx)(f.Form.Item,{label:"Key Alias",name:"key_alias",children:(0,t.jsx)(O.TextInput,{})}),(0,t.jsx)(f.Form.Item,{label:"Models",name:"models",children:(0,t.jsx)(f.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.allowed_routes!==t.allowed_routes||e.models!==t.models,children:({getFieldValue:e,setFieldValue:a})=>{let s=e("allowed_routes")||"",l="string"==typeof s&&""!==s.trim()?s.split(",").map(e=>e.trim()).filter(e=>e.length>0):[],r=l.includes("management_routes")||l.includes("info_routes"),i=e("models")||[];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ea.Select,{mode:"multiple",placeholder:"Select models",style:{width:"100%"},disabled:r,value:r?[]:i,onChange:e=>a("models",e),children:[h.length>0&&(0,t.jsx)(ea.Select.Option,{value:"all-team-models",children:"All Team Models"}),h.map(e=>(0,t.jsx)(ea.Select.Option,{value:e,children:e},e))]}),r&&(0,t.jsx)("div",{style:{fontSize:"11px",color:"#6b7280",marginTop:"2px"},children:"Models field is disabled for this key type"})]})}})}),(0,t.jsx)(f.Form.Item,{label:"Key Type",children:(0,t.jsx)(f.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.allowed_routes!==t.allowed_routes,children:({getFieldValue:e,setFieldValue:a})=>{var s;let l=e("allowed_routes")||"",r=(s="string"==typeof l&&""!==l.trim()?l.split(",").map(e=>e.trim()).filter(e=>e.length>0):[])&&0!==s.length?s.includes("llm_api_routes")?"llm_api":s.includes("management_routes")?"management":s.includes("info_routes")?"read_only":"default":"default";return(0,t.jsxs)(ea.Select,{placeholder:"Select key type",style:{width:"100%"},optionLabelProp:"label",value:r,onChange:e=>{switch(e){case"default":a("allowed_routes","");break;case"llm_api":a("allowed_routes","llm_api_routes");break;case"management":a("allowed_routes","management_routes"),a("models",[])}},children:[(0,t.jsx)(ea.Select.Option,{value:"default",label:"Default",children:(0,t.jsxs)("div",{style:{padding:"4px 0"},children:[(0,t.jsx)("div",{style:{fontWeight:500},children:"Default"}),(0,t.jsx)("div",{style:{fontSize:"11px",color:"#6b7280",marginTop:"2px"},children:"Can call LLM API + Management routes"})]})}),(0,t.jsx)(ea.Select.Option,{value:"llm_api",label:"LLM API",children:(0,t.jsxs)("div",{style:{padding:"4px 0"},children:[(0,t.jsx)("div",{style:{fontWeight:500},children:"LLM API"}),(0,t.jsx)("div",{style:{fontSize:"11px",color:"#6b7280",marginTop:"2px"},children:"Can call only LLM API routes (chat/completions, embeddings, etc.)"})]})}),(0,t.jsx)(ea.Select.Option,{value:"management",label:"Management",children:(0,t.jsxs)("div",{style:{padding:"4px 0"},children:[(0,t.jsx)("div",{style:{fontWeight:500},children:"Management"}),(0,t.jsx)("div",{style:{fontSize:"11px",color:"#6b7280",marginTop:"2px"},children:"Can call only management routes (user/team/key management)"})]})})]})}})}),(0,t.jsx)(f.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Routes"," ",(0,t.jsx)(N.Tooltip,{title:"List of allowed routes for the key (comma-separated). Can be specific routes (e.g., '/chat/completions') or route patterns (e.g., 'llm_api_routes', 'management_routes', '/keys/*'). Leave empty to allow all routes.",children:(0,t.jsx)(ee.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_routes",children:(0,t.jsx)(et.Input,{placeholder:"Enter allowed routes (comma-separated). Special values: llm_api_routes, management_routes. Examples: llm_api_routes, /chat/completions, /keys/*. Leave empty to allow all routes"})}),(0,t.jsx)(f.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(eu.default,{step:.01,style:{width:"100%"},placeholder:"Enter a numerical value"})}),(0,t.jsx)(f.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(ea.Select,{placeholder:"n/a",children:[(0,t.jsx)(ea.Select.Option,{value:"daily",children:"Daily"}),(0,t.jsx)(ea.Select.Option,{value:"weekly",children:"Weekly"}),(0,t.jsx)(ea.Select.Option,{value:"monthly",children:"Monthly"})]})}),(0,t.jsx)(f.Form.Item,{label:"TPM Limit",name:"tpm_limit",children:(0,t.jsx)(eu.default,{min:0})}),(0,t.jsx)(en.default,{type:"tpm",name:"tpm_limit_type",showDetailedDescriptions:!1}),(0,t.jsx)(f.Form.Item,{label:"RPM Limit",name:"rpm_limit",children:(0,t.jsx)(eu.default,{min:0})}),(0,t.jsx)(en.default,{type:"rpm",name:"rpm_limit_type",showDetailedDescriptions:!1}),(0,t.jsx)(f.Form.Item,{label:"Max Parallel Requests",name:"max_parallel_requests",children:(0,t.jsx)(eu.default,{min:0})}),(0,t.jsx)(f.Form.Item,{label:"Model TPM Limit",name:"model_tpm_limit",children:(0,t.jsx)(et.Input.TextArea,{rows:4,placeholder:'{"gpt-4": 100, "claude-v1": 200}'})}),(0,t.jsx)(f.Form.Item,{label:"Model RPM Limit",name:"model_rpm_limit",children:(0,t.jsx)(et.Input.TextArea,{rows:4,placeholder:'{"gpt-4": 100, "claude-v1": 200}'})}),(0,t.jsx)(f.Form.Item,{label:"Guardrails",name:"guardrails",children:r&&(0,t.jsx)(X.default,{onChange:e=>{d.setFieldValue("guardrails",e)},accessToken:r,disabled:!n})}),(0,t.jsx)(f.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable Global Guardrails"," ",(0,t.jsx)(N.Tooltip,{title:"When enabled, this key will bypass any guardrails configured to run on every request (global guardrails)",children:(0,t.jsx)(ee.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",valuePropName:"checked",children:(0,t.jsx)(es.Switch,{disabled:!n,checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,t.jsx)(f.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(N.Tooltip,{title:"Apply policies to this key to control guardrails and other settings",children:(0,t.jsx)(ee.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"policies",children:r&&(0,t.jsx)(Z.default,{onChange:e=>{d.setFieldValue("policies",e)},accessToken:r,disabled:!n})}),(0,t.jsx)(f.Form.Item,{label:"Tags",name:"tags",children:(0,t.jsx)(ea.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter tags",options:Object.values(p).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}),(0,t.jsx)(f.Form.Item,{label:"Prompts",name:"prompts",children:(0,t.jsx)(N.Tooltip,{title:n?"":"Setting prompts by key is a premium feature",placement:"top",children:(0,t.jsx)(ea.Select,{mode:"tags",style:{width:"100%"},disabled:!n,placeholder:n?Array.isArray(e.metadata?.prompts)&&e.metadata.prompts.length>0?`Current: ${e.metadata.prompts.join(", ")}`:"Select or enter prompts":"Premium feature - Upgrade to set prompts by key",options:m.map(e=>({value:e,label:e}))})})}),(0,t.jsx)(f.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(N.Tooltip,{title:"Assign access groups to this key. Access groups control which models, MCP servers, and agents this key can use",children:(0,t.jsx)(ee.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",children:(0,t.jsx)(er.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(f.Form.Item,{label:"Allowed Pass Through Routes",name:"allowed_passthrough_routes",children:(0,t.jsx)(N.Tooltip,{title:n?"":"Setting allowed pass through routes by key is a premium feature",placement:"top",children:(0,t.jsx)(eo.default,{onChange:e=>d.setFieldValue("allowed_passthrough_routes",e),value:d.getFieldValue("allowed_passthrough_routes"),accessToken:r||"",placeholder:n?Array.isArray(e.metadata?.allowed_passthrough_routes)&&e.metadata.allowed_passthrough_routes.length>0?`Current: ${e.metadata.allowed_passthrough_routes.join(", ")}`:"Select or enter allowed pass through routes":"Premium feature - Upgrade to set allowed pass through routes by key",disabled:!n})})}),(0,t.jsx)(f.Form.Item,{label:"Vector Stores",name:"vector_stores",children:(0,t.jsx)(ex.default,{onChange:e=>d.setFieldValue("vector_stores",e),value:d.getFieldValue("vector_stores"),accessToken:r||"",placeholder:"Select vector stores"})}),(0,t.jsx)(f.Form.Item,{label:"MCP Servers / Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(ed.default,{onChange:e=>d.setFieldValue("mcp_servers_and_groups",e),value:d.getFieldValue("mcp_servers_and_groups"),accessToken:r||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(f.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(et.Input,{type:"hidden"})}),(0,t.jsx)(f.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.mcp_servers_and_groups!==t.mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(ec.default,{accessToken:r||"",selectedServers:d.getFieldValue("mcp_servers_and_groups")?.servers||[],toolPermissions:d.getFieldValue("mcp_tool_permissions")||{},onChange:e=>d.setFieldsValue({mcp_tool_permissions:e})})})}),(0,t.jsx)(f.Form.Item,{label:"Agents / Access Groups",name:"agents_and_groups",children:(0,t.jsx)(el.default,{onChange:e=>d.setFieldValue("agents_and_groups",e),value:d.getFieldValue("agents_and_groups"),accessToken:r||"",placeholder:"Select agents or access groups (optional)"})}),(0,t.jsx)(f.Form.Item,{label:"Team ID",name:"team_id",children:(0,t.jsx)(ea.Select,{placeholder:"Select team",showSearch:!0,style:{width:"100%"},filterOption:(e,t)=>{let a=l?.find(e=>e.team_id===t?.value);return!!a&&(a.team_alias?.toLowerCase().includes(e.toLowerCase())??!1)},children:l?.map(e=>(0,t.jsx)(ea.Select.Option,{value:e.team_id,children:`${e.team_alias} (${e.team_id})`},e.team_id))})}),(0,t.jsx)(f.Form.Item,{label:"Logging Settings",name:"logging_settings",children:(0,t.jsx)(ep.default,{value:d.getFieldValue("logging_settings"),onChange:e=>d.setFieldValue("logging_settings",e),disabledCallbacks:j,onDisabledCallbacksChange:e=>{y((0,I.mapInternalToDisplayNames)(e)),d.setFieldValue("disabled_callbacks",e)}})}),(0,t.jsx)(f.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(et.Input.TextArea,{rows:10})}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(ei.default,{form:d,autoRotationEnabled:b,onAutoRotationChange:v,rotationInterval:T,onRotationIntervalChange:w}),(0,t.jsx)(f.Form.Item,{name:"duration",hidden:!0,initialValue:"",children:(0,t.jsx)(et.Input,{})})]}),(0,t.jsx)(f.Form.Item,{name:"token",hidden:!0,children:(0,t.jsx)(et.Input,{})}),(0,t.jsx)(f.Form.Item,{name:"disabled_callbacks",hidden:!0,children:(0,t.jsx)(et.Input,{})}),(0,t.jsx)(f.Form.Item,{name:"auto_rotate",hidden:!0,children:(0,t.jsx)(et.Input,{})}),(0,t.jsx)(f.Form.Item,{name:"rotation_interval",hidden:!0,children:(0,t.jsx)(et.Input,{})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(c.Button,{variant:"secondary",onClick:a,disabled:S,children:"Cancel"}),(0,t.jsx)(c.Button,{type:"submit",loading:S,children:"Save Changes"})]})})]})}function eh({onClose:e,keyData:C,teams:D,onKeyDataUpdate:K,onDelete:O,backButtonText:U="Back to Keys"}){let{accessToken:$,userId:G,userRole:W,premiumUser:z}=(0,a.default)(),{teams:q}=(0,s.default)(),[J,Y]=(0,k.useState)(!1),[X]=f.Form.useForm(),[Z,ee]=(0,k.useState)(!1),[et,ea]=(0,k.useState)(!1),[es,el]=(0,k.useState)(""),[er,ei]=(0,k.useState)(!1),[eo,en]=(0,k.useState)({}),[ed,ec]=(0,k.useState)(C),[em,eu]=(0,k.useState)(null),[ep,ex]=(0,k.useState)(!1),[eh,e_]=(0,k.useState)({}),[ej,ey]=(0,k.useState)(!1);if((0,k.useEffect)(()=>{C&&ec(C)},[C]),(0,k.useEffect)(()=>{(async()=>{let e=ed?.metadata?.policies;if(!$||!e||!Array.isArray(e)||0===e.length)return;ey(!0);let t={};try{await Promise.all(e.map(async e=>{try{let a=await (0,B.getPolicyInfoWithGuardrails)($,e);t[e]=a.resolved_guardrails||[]}catch(a){console.error(`Failed to fetch guardrails for policy ${e}:`,a),t[e]=[]}})),e_(t)}catch(e){console.error("Failed to fetch policy guardrails:",e)}finally{ey(!1)}})()},[$,ed?.metadata?.policies]),(0,k.useEffect)(()=>{if(ep){let e=setTimeout(()=>{ex(!1)},5e3);return()=>clearTimeout(e)}},[ep]),!ed)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(c.Button,{icon:i.ArrowLeftIcon,variant:"light",onClick:e,className:"mb-4",children:U}),(0,t.jsx)(j.Text,{children:"Key not found"})]});let eb=async e=>{try{if(!$)return;let t=e.token;if(e.key=t,z||(delete e.guardrails,delete e.prompts),e.max_budget=(0,r.mapEmptyStringToNull)(e.max_budget),void 0!==e.vector_stores&&(e.object_permission={...ed.object_permission,vector_stores:e.vector_stores||[]},delete e.vector_stores),void 0!==e.mcp_servers_and_groups){let{servers:t,accessGroups:a}=e.mcp_servers_and_groups||{servers:[],accessGroups:[]};e.object_permission={...ed.object_permission,mcp_servers:t||[],mcp_access_groups:a||[]},delete e.mcp_servers_and_groups}if(void 0!==e.mcp_tool_permissions){let t=e.mcp_tool_permissions||{};Object.keys(t).length>0&&(e.object_permission={...e.object_permission,mcp_tool_permissions:t}),delete e.mcp_tool_permissions}if(void 0!==e.agents_and_groups){let{agents:t,accessGroups:a}=e.agents_and_groups||{agents:[],accessGroups:[]};e.object_permission={...e.object_permission,agents:t||[],agent_access_groups:a||[]},delete e.agents_and_groups}if(e.max_budget=(0,r.mapEmptyStringToNull)(e.max_budget),e.tpm_limit=(0,r.mapEmptyStringToNull)(e.tpm_limit),e.rpm_limit=(0,r.mapEmptyStringToNull)(e.rpm_limit),e.max_parallel_requests=(0,r.mapEmptyStringToNull)(e.max_parallel_requests),e.metadata&&"string"==typeof e.metadata)try{let t=JSON.parse(e.metadata);"tags"in t&&delete t.tags,e.metadata={...t,...Array.isArray(e.tags)&&e.tags.length>0?{tags:e.tags}:{},...e.guardrails?.length>0?{guardrails:e.guardrails}:{},...e.logging_settings?{logging:e.logging_settings}:{},...e.disabled_callbacks?.length>0?{litellm_disabled_callbacks:(0,I.mapDisplayToInternalNames)(e.disabled_callbacks)}:{}}}catch(e){console.error("Error parsing metadata JSON:",e),E.default.error("Invalid metadata JSON");return}else{let{tags:t,...a}=e.metadata||{};e.metadata={...a,...Array.isArray(e.tags)&&e.tags.length>0?{tags:e.tags}:{},...e.guardrails?.length>0?{guardrails:e.guardrails}:{},...e.logging_settings?{logging:e.logging_settings}:{},...e.disabled_callbacks?.length>0?{litellm_disabled_callbacks:(0,I.mapDisplayToInternalNames)(e.disabled_callbacks)}:{}}}"tags"in e&&delete e.tags,delete e.logging_settings,e.budget_duration&&(e.budget_duration=({daily:"24h",weekly:"7d",monthly:"30d"})[e.budget_duration]);let a=await (0,B.keyUpdateCall)($,e);ec(e=>e?{...e,...a}:void 0),K&&K(a),E.default.success("Key updated successfully"),Y(!1)}catch(e){E.default.fromBackend((0,Q.parseErrorMessage)(e)),console.error("Error updating key:",e)}},ef=async()=>{try{if(ea(!0),!$)return;await (0,B.keyDeleteCall)($,ed.token||ed.token_id),E.default.success("Key deleted successfully"),O&&O(),e()}catch(e){console.error("Error deleting the key:",e),E.default.fromBackend(e)}finally{ea(!1),ee(!1),el("")}},ev=async(e,t)=>{await (0,l.copyToClipboard)(e)&&(en(e=>({...e,[t]:!0})),setTimeout(()=>{en(e=>({...e,[t]:!1}))},2e3))},eN=e=>{let t=new Date(e),a=t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),s=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${a} at ${s}`},eT=(0,S.isProxyAdminRole)(W||"")||q&&(0,S.isUserTeamAdminForSingleTeam)(q?.filter(e=>e.team_id===ed.team_id)[0]?.members_with_roles,G||"")||G===ed.user_id&&"Internal Viewer"!==W;return(0,t.jsxs)("div",{className:"w-full h-screen p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(c.Button,{icon:i.ArrowLeftIcon,variant:"light",onClick:e,className:"mb-4",children:U}),(0,t.jsx)(y.Title,{children:ed.key_alias||"Virtual Key"}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer mb-2 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"text-xs text-gray-400 uppercase tracking-wide mt-2",children:"Key ID"}),(0,t.jsx)(j.Text,{className:"text-gray-500 font-mono text-sm",children:ed.token_id||ed.token})]}),(0,t.jsx)(b.Button,{type:"text",size:"small",icon:eo["key-id"]?(0,t.jsx)(T.CheckIcon,{size:12}):(0,t.jsx)(w.CopyIcon,{size:12}),onClick:()=>ev(ed.token_id||ed.token,"key-id"),className:`ml-2 transition-all duration-200${eo["key-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)(j.Text,{className:"text-sm text-gray-500",children:ed.updated_at&&ed.updated_at!==ed.created_at?`Updated: ${eN(ed.updated_at)}`:`Created: ${eN(ed.created_at)}`}),ep&&(0,t.jsx)(d.Badge,{color:"green",size:"xs",className:"animate-pulse",children:"Recently Regenerated"}),em&&(0,t.jsx)(d.Badge,{color:"blue",size:"xs",children:"Regenerated"})]})]}),eT&&(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(N.Tooltip,{title:z?"":"This is a LiteLLM Enterprise feature, and requires a valid key to use.",children:(0,t.jsx)("span",{className:"inline-block",children:(0,t.jsx)(c.Button,{icon:o.RefreshIcon,variant:"secondary",onClick:()=>ei(!0),className:"flex items-center",disabled:!z,children:"Regenerate Key"})})}),(0,t.jsx)(c.Button,{icon:n.TrashIcon,variant:"secondary",onClick:()=>ee(!0),className:"flex items-center text-red-500 border-red-500 hover:text-red-700",children:"Delete Key"})]})]}),(0,t.jsx)(H,{selectedToken:ed,visible:er,onClose:()=>ei(!1),onKeyUpdate:e=>{ec(t=>{if(t)return{...t,...e,created_at:new Date().toLocaleString()}}),eu(new Date),ex(!0),K&&K({...e,created_at:new Date().toLocaleString()})}}),(0,t.jsx)(F.default,{isOpen:Z,title:"Delete Key",alertMessage:"This action is irreversible and will immediately revoke access for any applications using this key.",message:"Are you sure you want to delete this Virtual Key?",resourceInformationTitle:"Key Information",resourceInformation:[{label:"Key Alias",value:ed?.key_alias||"-"},{label:"Key ID",value:ed?.token_id||ed?.token||"-",code:!0},{label:"Team ID",value:ed?.team_id||"-",code:!0},{label:"Spend",value:ed?.spend?`$${(0,l.formatNumberWithCommas)(ed.spend,4)}`:"$0.0000"}],onCancel:()=>{ee(!1),el("")},onOk:ef,confirmLoading:et,requiredConfirmation:ed?.key_alias}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(g.TabList,{className:"mb-4",children:[(0,t.jsx)(p.Tab,{children:"Overview"}),(0,t.jsx)(p.Tab,{children:"Settings"})]}),(0,t.jsxs)(_.TabPanels,{children:[(0,t.jsx)(h.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(j.Text,{children:"Spend"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(y.Title,{children:["$",(0,l.formatNumberWithCommas)(ed.spend,4)]}),(0,t.jsxs)(j.Text,{children:["of"," ",null!==ed.max_budget?`$${(0,l.formatNumberWithCommas)(ed.max_budget)}`:"Unlimited"]})]})]}),(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(j.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(j.Text,{children:["TPM: ",null!==ed.tpm_limit?ed.tpm_limit:"Unlimited"]}),(0,t.jsxs)(j.Text,{children:["RPM: ",null!==ed.rpm_limit?ed.rpm_limit:"Unlimited"]})]})]}),(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(j.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:ed.models&&ed.models.length>0?ed.models.map((e,a)=>(0,t.jsx)(d.Badge,{color:"red",children:e},a)):(0,t.jsx)(j.Text,{children:"No models specified"})})]}),(0,t.jsx)(m.Card,{children:(0,t.jsx)(V.default,{objectPermission:ed.object_permission,variant:"inline",accessToken:$})}),(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(j.Text,{className:"font-medium mb-3",children:"Guardrails"}),Array.isArray(ed.metadata?.guardrails)&&ed.metadata.guardrails.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:ed.metadata.guardrails.map((e,a)=>(0,t.jsx)(d.Badge,{color:"blue",children:e},a))}):(0,t.jsx)(j.Text,{className:"text-gray-500",children:"No guardrails configured"}),"boolean"==typeof ed.metadata?.disable_global_guardrails&&!0===ed.metadata.disable_global_guardrails&&(0,t.jsx)("div",{className:"mt-3 pt-3 border-t border-gray-200",children:(0,t.jsx)(d.Badge,{color:"yellow",children:"Global Guardrails Disabled"})})]}),(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(j.Text,{className:"font-medium mb-3",children:"Policies"}),Array.isArray(ed.metadata?.policies)&&ed.metadata.policies.length>0?(0,t.jsx)("div",{className:"space-y-4",children:ed.metadata.policies.map((e,a)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Badge,{color:"purple",children:e}),ej&&(0,t.jsx)(j.Text,{className:"text-xs text-gray-400",children:"Loading guardrails..."})]}),!ej&&eh[e]&&eh[e].length>0&&(0,t.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-gray-200",children:[(0,t.jsx)(j.Text,{className:"text-xs text-gray-500 mb-1",children:"Resolved Guardrails:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:eh[e].map((e,a)=>(0,t.jsx)(d.Badge,{color:"blue",size:"xs",children:e},a))})]})]},a))}):(0,t.jsx)(j.Text,{className:"text-gray-500",children:"No policies configured"})]}),(0,t.jsx)(P.default,{loggingConfigs:L(ed.metadata),disabledCallbacks:Array.isArray(ed.metadata?.litellm_disabled_callbacks)?(0,I.mapInternalToDisplayNames)(ed.metadata.litellm_disabled_callbacks):[],variant:"card"}),(0,t.jsx)(A,{autoRotate:ed.auto_rotate,rotationInterval:ed.rotation_interval,lastRotationAt:ed.last_rotation_at,keyRotationAt:ed.key_rotation_at,nextRotationAt:ed.next_rotation_at,variant:"card"})]})}),(0,t.jsx)(h.TabPanel,{children:(0,t.jsxs)(m.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(y.Title,{children:"Key Settings"}),!J&&W&&S.rolesWithWriteAccess.includes(W)&&(0,t.jsx)(c.Button,{onClick:()=>Y(!0),children:"Edit Settings"})]}),J?(0,t.jsx)(eg,{keyData:ed,onCancel:()=>Y(!1),onSubmit:eb,teams:D,accessToken:$,userID:G,userRole:W,premiumUser:z}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Key ID"}),(0,t.jsx)(j.Text,{className:"font-mono",children:ed.token_id||ed.token})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Key Alias"}),(0,t.jsx)(j.Text,{children:ed.key_alias||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Secret Key"}),(0,t.jsx)(j.Text,{className:"font-mono",children:ed.key_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)(j.Text,{children:ed.team_id||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Organization"}),(0,t.jsx)(j.Text,{children:ed.organization_id||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Created"}),(0,t.jsx)(j.Text,{children:eN(ed.created_at)})]}),em&&(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Last Regenerated"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Text,{children:eN(em)}),(0,t.jsx)(d.Badge,{color:"green",size:"xs",children:"Recent"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Expires"}),(0,t.jsx)(j.Text,{children:ed.expires?eN(ed.expires):"Never"})]}),(0,t.jsx)(A,{autoRotate:ed.auto_rotate,rotationInterval:ed.rotation_interval,lastRotationAt:ed.last_rotation_at,keyRotationAt:ed.key_rotation_at,nextRotationAt:ed.next_rotation_at,variant:"inline",className:"pt-4 border-t border-gray-200"}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Spend"}),(0,t.jsxs)(j.Text,{children:["$",(0,l.formatNumberWithCommas)(ed.spend,4)," USD"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Budget"}),(0,t.jsx)(j.Text,{children:null!==ed.max_budget?`$${(0,l.formatNumberWithCommas)(ed.max_budget,2)}`:"Unlimited"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Tags"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:Array.isArray(ed.metadata?.tags)&&ed.metadata.tags.length>0?ed.metadata.tags.map((e,a)=>(0,t.jsx)("span",{className:"px-2 mr-2 py-1 bg-blue-100 rounded text-xs",children:e},a)):"No tags specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Prompts"}),(0,t.jsx)(j.Text,{children:Array.isArray(ed.metadata?.prompts)&&ed.metadata.prompts.length>0?ed.metadata.prompts.map((e,a)=>(0,t.jsx)("span",{className:"px-2 mr-2 py-1 bg-blue-100 rounded text-xs",children:e},a)):"No prompts specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Allowed Routes"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:Array.isArray(ed.allowed_routes)&&ed.allowed_routes.length>0?ed.allowed_routes.map((e,a)=>(0,t.jsx)("span",{className:"px-2 py-1 bg-blue-100 rounded text-xs",children:e},a)):(0,t.jsx)(v.Tag,{color:"green",children:"All routes allowed"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Allowed Pass Through Routes"}),(0,t.jsx)(j.Text,{children:Array.isArray(ed.metadata?.allowed_passthrough_routes)&&ed.metadata.allowed_passthrough_routes.length>0?ed.metadata.allowed_passthrough_routes.map((e,a)=>(0,t.jsx)("span",{className:"px-2 mr-2 py-1 bg-blue-100 rounded text-xs",children:e},a)):"No pass through routes specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Disable Global Guardrails"}),(0,t.jsx)(j.Text,{children:ed.metadata?.disable_global_guardrails===!0?(0,t.jsx)(d.Badge,{color:"yellow",children:"Enabled - Global guardrails bypassed"}):(0,t.jsx)(d.Badge,{color:"green",children:"Disabled - Global guardrails active"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:ed.models&&ed.models.length>0?ed.models.map((e,a)=>(0,t.jsx)("span",{className:"px-2 py-1 bg-blue-100 rounded text-xs",children:e},a)):(0,t.jsx)(j.Text,{children:"No models specified"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)(j.Text,{children:["TPM: ",null!==ed.tpm_limit?ed.tpm_limit:"Unlimited"]}),(0,t.jsxs)(j.Text,{children:["RPM: ",null!==ed.rpm_limit?ed.rpm_limit:"Unlimited"]}),(0,t.jsxs)(j.Text,{children:["Max Parallel Requests:"," ",null!==ed.max_parallel_requests?ed.max_parallel_requests:"Unlimited"]}),(0,t.jsxs)(j.Text,{children:["Model TPM Limits:"," ",ed.metadata?.model_tpm_limit?JSON.stringify(ed.metadata.model_tpm_limit):"Unlimited"]}),(0,t.jsxs)(j.Text,{children:["Model RPM Limits:"," ",ed.metadata?.model_rpm_limit?JSON.stringify(ed.metadata.model_rpm_limit):"Unlimited"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Text,{className:"font-medium",children:"Metadata"}),(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:M(R(ed.metadata))})]}),(0,t.jsx)(V.default,{objectPermission:ed.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:$}),(0,t.jsx)(P.default,{loggingConfigs:L(ed.metadata),disabledCallbacks:Array.isArray(ed.metadata?.litellm_disabled_callbacks)?(0,I.mapInternalToDisplayNames)(ed.metadata.litellm_disabled_callbacks):[],variant:"inline",className:"pt-4 border-t border-gray-200"})]})]})})]})]})]})}e.s(["default",()=>eh],20147)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3d673d8e4f7c9d2d.js b/litellm/proxy/_experimental/out/_next/static/chunks/3d673d8e4f7c9d2d.js deleted file mode 100644 index 502a42a3aad..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/3d673d8e4f7c9d2d.js +++ /dev/null @@ -1,14 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),l=e.i(673706),o=e.i(271645);let n=o.default.forwardRef((e,n)=>{let{color:i,children:s,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return o.default.createElement("p",Object.assign({ref:n,className:(0,a.tremorTwMerge)("font-medium text-tremor-title",i?(0,l.getColorClassNames)(i,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),s)});n.displayName="Title",e.s(["Title",()=>n],629569)},91874,681216,e=>{"use strict";var t=e.i(931067),r=e.i(209428),a=e.i(211577),l=e.i(392221),o=e.i(703923),n=e.i(343794),i=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,g=e.className,b=e.style,f=e.checked,p=e.disabled,h=e.defaultChecked,C=e.type,v=void 0===C?"checkbox":C,x=e.title,k=e.onChange,$=(0,o.default)(e,d),w=(0,s.useRef)(null),y=(0,s.useRef)(null),N=(0,i.default)(void 0!==h&&h,{value:f}),O=(0,l.default)(N,2),E=O[0],j=O[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=w.current)||t.focus(e)},blur:function(){var e;null==(e=w.current)||e.blur()},input:w.current,nativeElement:y.current}});var T=(0,n.default)(m,g,(0,a.default)((0,a.default)({},"".concat(m,"-checked"),E),"".concat(m,"-disabled"),p));return s.createElement("span",{className:T,title:x,style:b,ref:y},s.createElement("input",(0,t.default)({},$,{className:"".concat(m,"-input"),ref:w,onChange:function(t){p||("checked"in e||j(t.target.checked),null==k||k({target:(0,r.default)((0,r.default)({},e),{},{type:v,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:p,checked:!!E,type:v})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c],91874);var u=e.i(963188);function m(e){let t=s.default.useRef(null),r=()=>{u.default.cancel(t.current),t.current=null};return[()=>{r(),t.current=(0,u.default)(()=>{t.current=null})},a=>{t.current&&(a.stopPropagation(),r()),null==e||e(a)}]}e.s(["default",()=>m],681216)},374276,236836,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(91874),l=e.i(611935),o=e.i(121872),n=e.i(26905),i=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139);let u=t.default.createContext(null);e.i(296059);var m=e.i(915654),g=e.i(183293),b=e.i(246422),f=e.i(838378);function p(e,t){return(e=>{let{checkboxCls:t}=e,r=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[r]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${r}`]:{marginInlineStart:0},[`&${r}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,g.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,m.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,m.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` - ${r}:not(${r}-disabled), - ${t}:not(${t}-disabled) - `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${r}:not(${r}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` - ${r}-checked:not(${r}-disabled), - ${t}-checked:not(${t}-disabled) - `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,f.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let h=(0,b.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[p(t,e)]);e.s(["default",0,h,"getStyle",()=>p],236836);var C=e.i(681216),v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let x=t.forwardRef((e,m)=>{var g;let{prefixCls:b,className:f,rootClassName:p,children:x,indeterminate:k=!1,style:$,onMouseEnter:w,onMouseLeave:y,skipGroup:N=!1,disabled:O}=e,E=v(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:j,direction:T,checkbox:S}=t.useContext(i.ConfigContext),R=t.useContext(u),{isFormItemInput:M}=t.useContext(c.FormItemInputContext),P=t.useContext(s.default),z=null!=(g=(null==R?void 0:R.disabled)||O)?g:P,B=t.useRef(E.value),q=t.useRef(null),H=(0,l.composeRef)(m,q);t.useEffect(()=>{null==R||R.registerValue(E.value)},[]),t.useEffect(()=>{if(!N)return E.value!==B.current&&(null==R||R.cancelValue(B.current),null==R||R.registerValue(E.value),B.current=E.value),()=>null==R?void 0:R.cancelValue(E.value)},[E.value]),t.useEffect(()=>{var e;(null==(e=q.current)?void 0:e.input)&&(q.current.input.indeterminate=k)},[k]);let I=j("checkbox",b),_=(0,d.default)(I),[A,L,X]=h(I,_),F=Object.assign({},E);R&&!N&&(F.onChange=(...e)=>{E.onChange&&E.onChange.apply(E,e),R.toggleOption&&R.toggleOption({label:x,value:E.value})},F.name=R.name,F.checked=R.value.includes(E.value));let D=(0,r.default)(`${I}-wrapper`,{[`${I}-rtl`]:"rtl"===T,[`${I}-wrapper-checked`]:F.checked,[`${I}-wrapper-disabled`]:z,[`${I}-wrapper-in-form-item`]:M},null==S?void 0:S.className,f,p,X,_,L),Y=(0,r.default)({[`${I}-indeterminate`]:k},n.TARGET_CLS,L),[V,W]=(0,C.default)(F.onClick);return A(t.createElement(o.default,{component:"Checkbox",disabled:z},t.createElement("label",{className:D,style:Object.assign(Object.assign({},null==S?void 0:S.style),$),onMouseEnter:w,onMouseLeave:y,onClick:V},t.createElement(a.default,Object.assign({},F,{onClick:W,prefixCls:I,className:Y,disabled:z,ref:H})),null!=x&&t.createElement("span",{className:`${I}-label`},x))))});var k=e.i(8211),$=e.i(529681),w=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let y=t.forwardRef((e,a)=>{let{defaultValue:l,children:o,options:n=[],prefixCls:s,className:c,rootClassName:m,style:g,onChange:b}=e,f=w(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:p,direction:C}=t.useContext(i.ConfigContext),[v,y]=t.useState(f.value||l||[]),[N,O]=t.useState([]);t.useEffect(()=>{"value"in f&&y(f.value||[])},[f.value]);let E=t.useMemo(()=>n.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[n]),j=e=>{O(t=>t.filter(t=>t!==e))},T=e=>{O(t=>[].concat((0,k.default)(t),[e]))},S=e=>{let t=v.indexOf(e.value),r=(0,k.default)(v);-1===t?r.push(e.value):r.splice(t,1),"value"in f||y(r),null==b||b(r.filter(e=>N.includes(e)).sort((e,t)=>E.findIndex(t=>t.value===e)-E.findIndex(e=>e.value===t)))},R=p("checkbox",s),M=`${R}-group`,P=(0,d.default)(R),[z,B,q]=h(R,P),H=(0,$.default)(f,["value","disabled"]),I=n.length?E.map(e=>t.createElement(x,{prefixCls:R,key:e.value.toString(),disabled:"disabled"in e?e.disabled:f.disabled,value:e.value,checked:v.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${M}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):o,_=t.useMemo(()=>({toggleOption:S,value:v,disabled:f.disabled,name:f.name,registerValue:T,cancelValue:j}),[S,v,f.disabled,f.name,T,j]),A=(0,r.default)(M,{[`${M}-rtl`]:"rtl"===C},c,m,q,P,B);return z(t.createElement("div",Object.assign({className:A,style:g},H,{ref:a}),t.createElement(u.Provider,{value:_},I)))});x.Group=y,x.__ANT_CHECKBOX=!0,e.s(["default",0,x],374276)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:n,className:i,children:s}=e;return l.default.createElement("p",{ref:o,className:(0,r.tremorTwMerge)("text-tremor-default",n?(0,a.getColorClassNames)(n,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},s)});o.displayName="Text",e.s(["default",()=>o],936325),e.s(["Text",()=>o],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let l=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],o=e=>({_s:e,status:l[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),n=e=>e?6:5,i=(e,t,r,a,l)=>{clearTimeout(a.current);let n=o(e);t(n),r.current=n,l&&l({current:n})};var s=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},b=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,c.makeClassName)("Button"),p=({loading:e,iconSize:t,iconPosition:r,Icon:l,needMargin:o,transitionStatus:n})=>{let i=o?r===s.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(f("icon"),"animate-spin shrink-0",i,m.default,m[n]),style:{transition:"width 150ms"}}):a.default.createElement(l,{className:(0,d.tremorTwMerge)(f("icon"),"shrink-0",t,i)})},h=a.default.forwardRef((e,l)=>{let{icon:u,iconPosition:m=s.HorizontalPositions.Left,size:h=s.Sizes.SM,color:C,variant:v="primary",disabled:x,loading:k=!1,loadingText:$,children:w,tooltip:y,className:N}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),E=k||x,j=void 0!==u||k,T=k&&$,S=!(!w&&!T),R=(0,d.tremorTwMerge)(g[h].height,g[h].width),M="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",P=b(v,C),z=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[h],{tooltipProps:B,getReferenceProps:q}=(0,r.useTooltip)(300),[H,I]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:l,timeout:s,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,b]=(0,a.useState)(()=>o(d?2:n(c))),f=(0,a.useRef)(g),p=(0,a.useRef)(0),[h,C]="object"==typeof s?[s.enter,s.exit]:[s,s],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return n(t)}})(f.current._s,u);e&&i(e,b,f,p,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let o=e=>{switch(i(e,b,f,p,m),e){case 1:h>=0&&(p.current=((...e)=>setTimeout(...e))(v,h));break;case 4:C>=0&&(p.current=((...e)=>setTimeout(...e))(v,C));break;case 0:case 3:p.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||o(e+1)},0)}},s=f.current.isEnter;"boolean"!=typeof a&&(a=!s),a?s||o(e?+!r:2):s&&o(t?l?3:4:n(u))},[v,m,e,t,r,l,h,C,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{I(k)},[k]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([l,B.refs.setReference]),className:(0,d.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",M,z.paddingX,z.paddingY,z.fontSize,P.textColor,P.bgColor,P.borderColor,P.hoverBorderColor,E?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(b(v,C).hoverTextColor,b(v,C).hoverBgColor,b(v,C).hoverBorderColor),N),disabled:E},q,O),a.default.createElement(r.default,Object.assign({text:y},B)),j&&m!==s.HorizontalPositions.Right?a.default.createElement(p,{loading:k,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null,T||w?a.default.createElement("span",{className:(0,d.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},T?$:w):null,j&&m===s.HorizontalPositions.Right?a.default.createElement(p,{loading:k,iconSize:R,iconPosition:m,Icon:u,transitionStatus:H.status,needMargin:S}):null)});h.displayName="Button",e.s(["Button",()=>h],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),l=e.i(95779),o=e.i(444755),n=e.i(673706);let i=(0,n.makeClassName)("Card"),s=r.default.forwardRef((e,s)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,n.getColorClassNames)(c,l.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});s.displayName="Card",e.s(["Card",()=>s],304967)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),l=e.i(529681);let o=e=>{let{prefixCls:a,className:l,style:o,size:n,shape:i}=e,s=(0,r.default)({[`${a}-lg`]:"large"===n,[`${a}-sm`]:"small"===n}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,r.default)(a,s,d,l),style:Object.assign(Object.assign({},c),o)})};e.i(296059);var n=e.i(694758),i=e.i(915654),s=e.i(246422),d=e.i(838378);let c=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),b=e=>Object.assign({width:e},u(e)),f=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},p=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),h=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:l,skeletonButtonCls:o,skeletonInputCls:n,skeletonImageCls:i,controlHeight:s,controlHeightLG:d,controlHeightSM:u,gradientFromColor:h,padding:C,marginSM:v,borderRadius:x,titleHeight:k,blockRadius:$,paragraphLiHeight:w,controlHeightXS:y,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:C,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:h},m(s)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:k,background:h,borderRadius:$,[`+ ${l}`]:{marginBlockStart:u}},[l]:{padding:0,"> li":{width:"100%",height:w,listStyle:"none",background:h,borderRadius:$,"+ li":{marginBlockStart:y}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${l} > li`]:{borderRadius:x}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${l}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},p(a,i))},f(e,a,r)),{[`${r}-lg`]:Object.assign({},p(l,i))}),f(e,l,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},p(o,i))}),f(e,o,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:l,controlHeightSM:o}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(l)),[`${t}${t}-sm`]:Object.assign({},m(o))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:l,controlHeightSM:o,gradientFromColor:n,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:r},g(t,i)),[`${a}-lg`]:Object.assign({},g(l,i)),[`${a}-sm`]:Object.assign({},g(o,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:l,calc:o}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:l},b(o(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},b(r)),{maxWidth:o(r).mul(4).equal(),maxHeight:o(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[o]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` - ${a}, - ${l} > li, - ${r}, - ${o}, - ${n}, - ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:l,style:o,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,l),style:o},i)},v=({prefixCls:e,className:a,width:l,style:o})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:l},o)});function x(e){return e&&"object"==typeof e?e:{}}let k=e=>{let{prefixCls:l,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:b,round:f}=e,{getPrefixCls:p,direction:k,className:$,style:w}=(0,a.useComponentConfig)("skeleton"),y=p("skeleton",l),[N,O,E]=h(y);if(n||!("loading"in e)){let e,a,l=!!u,n=!!m,c=!!g;if(l){let r=Object.assign(Object.assign({prefixCls:`${y}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),x(u));e=t.createElement("div",{className:`${y}-header`},t.createElement(o,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${y}-title`},!l&&c?{width:"38%"}:l&&c?{width:"50%"}:{}),x(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${y}-paragraph`},(e={},l&&n||(e.width="61%"),!l&&n?e.rows=3:e.rows=2,e)),x(g));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${y}-content`},e,r)}let p=(0,r.default)(y,{[`${y}-with-avatar`]:l,[`${y}-active`]:b,[`${y}-rtl`]:"rtl"===k,[`${y}-round`]:f},$,i,s,O,E);return N(t.createElement("div",{className:p,style:Object.assign(Object.assign({},w),d)},e,a))}return null!=c?c:null};k.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-button`,size:u},C))))},k.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},C))))},k.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",n),[b,f,p]=h(g),C=(0,l.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,s,f,p);return b(t.createElement("div",{className:v},t.createElement(o,Object.assign({prefixCls:`${g}-input`,size:u},C))))},k.Image=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",l),[u,m,g]=h(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},o,n,m,g);return u(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,o),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},k.Node=e=>{let{prefixCls:l,className:o,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",l),[m,g,b]=h(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,o,n,b);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,o),style:i},d)))},e.s(["default",0,k],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),o=r.forwardRef(function(e,o){return r.createElement(l.default,(0,t.default)({},e,{ref:o,icon:a}))});e.s(["default",0,o],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(l("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});o.displayName="Table",e.s(["Table",()=>o],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});o.displayName="TableHead",e.s(["TableHead",()=>o],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});o.displayName="TableHeaderCell",e.s(["TableHeaderCell",()=>o],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});o.displayName="TableBody",e.s(["TableBody",()=>o],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("row"),i)},s),n))});o.displayName="TableRow",e.s(["TableRow",()=>o],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),o=r.default.forwardRef((e,o)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:o,className:(0,a.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});o.displayName="TableCell",e.s(["TableCell",()=>o],977572)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",()=>t])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/3f369c603677cd7a.js b/litellm/proxy/_experimental/out/_next/static/chunks/3f369c603677cd7a.js new file mode 100644 index 00000000000..2649f4d09d2 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/3f369c603677cd7a.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,475647,286536,77705,e=>{"use strict";e.i(247167);var l=e.i(931067),t=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};var i=e.i(9583),r=t.forwardRef(function(e,r){return t.createElement(i.default,(0,l.default)({},e,{ref:r,icon:s}))});e.s(["PlusCircleOutlined",0,r],475647);var n=e.i(475254);let a=(0,n.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>a],286536);let o=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",()=>o],77705)},111672,e=>{"use strict";var l=e.i(843476),t=e.i(109799),s=e.i(135214),i=e.i(218129),r=e.i(477189),n=e.i(457202),a=e.i(299251),o=e.i(153702);e.i(247167);var c=e.i(931067),d=e.i(271645);let u={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z"}}]},name:"bg-colors",theme:"outlined"};var m=e.i(9583),p=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:u}))}),g=e.i(182399);let _={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z"}}]},name:"book",theme:"outlined"};var h=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:_}))});let x={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z"}}]},name:"credit-card",theme:"outlined"};var f=d.forwardRef(function(e,l){return d.createElement(m.default,(0,c.default)({},e,{ref:l,icon:x}))}),y=e.i(210612),j=e.i(19732),S=e.i(993914),v=e.i(438957),b=e.i(777579),I=e.i(788191),C=e.i(983561),k=e.i(602073),w=e.i(928685),T=e.i(313603),O=e.i(232164),E=e.i(645526),N=e.i(366308),A=e.i(771674),F=e.i(592143),P=e.i(372943),M=e.i(899268),R=e.i(708347),U=e.i(906579),B=e.i(115571);function L(e){let l=l=>{"disableShowNewBadge"===l.key&&e()},t=l=>{let{key:t}=l.detail;"disableShowNewBadge"===t&&e()};return window.addEventListener("storage",l),window.addEventListener(B.LOCAL_STORAGE_EVENT,t),()=>{window.removeEventListener("storage",l),window.removeEventListener(B.LOCAL_STORAGE_EVENT,t)}}function z(){return"true"===(0,B.getLocalStorageItem)("disableShowNewBadge")}var D=e.i(190983);let{Sider:G}=P.Layout,V=[{groupLabel:"AI GATEWAY",items:[{key:"api-keys",page:"api-keys",label:"Virtual Keys",icon:(0,l.jsx)(v.KeyOutlined,{})},{key:"llm-playground",page:"llm-playground",label:"Playground",icon:(0,l.jsx)(I.PlayCircleOutlined,{}),roles:R.rolesWithWriteAccess},{key:"models",page:"models",label:"Models + Endpoints",icon:(0,l.jsx)(g.BlockOutlined,{}),roles:R.rolesWithWriteAccess},{key:"agents",page:"agents",label:"Agents",icon:(0,l.jsx)(C.RobotOutlined,{}),roles:R.rolesWithWriteAccess},{key:"mcp-servers",page:"mcp-servers",label:"MCP Servers",icon:(0,l.jsx)(N.ToolOutlined,{})},{key:"guardrails",page:"guardrails",label:"Guardrails",icon:(0,l.jsx)(k.SafetyOutlined,{}),roles:R.all_admin_roles},{key:"policies",page:"policies",label:(0,l.jsx)("span",{className:"flex items-center gap-4",children:"Policies"}),icon:(0,l.jsx)(n.AuditOutlined,{}),roles:R.all_admin_roles},{key:"tools",page:"tools",label:"Tools",icon:(0,l.jsx)(N.ToolOutlined,{}),children:[{key:"search-tools",page:"search-tools",label:"Search Tools",icon:(0,l.jsx)(w.SearchOutlined,{})},{key:"vector-stores",page:"vector-stores",label:"Vector Stores",icon:(0,l.jsx)(y.DatabaseOutlined,{})}]}]},{groupLabel:"OBSERVABILITY",items:[{key:"new_usage",page:"new_usage",icon:(0,l.jsx)(o.BarChartOutlined,{}),roles:[...R.all_admin_roles,...R.internalUserRoles],label:"Usage"},{key:"logs",page:"logs",label:"Logs",icon:(0,l.jsx)(b.LineChartOutlined,{})}]},{groupLabel:"ACCESS CONTROL",items:[{key:"users",page:"users",label:"Internal Users",icon:(0,l.jsx)(A.UserOutlined,{}),roles:R.all_admin_roles},{key:"teams",page:"teams",label:"Teams",icon:(0,l.jsx)(E.TeamOutlined,{})},{key:"organizations",page:"organizations",label:"Organizations",icon:(0,l.jsx)(a.BankOutlined,{}),roles:R.all_admin_roles},{key:"access-groups",page:"access-groups",label:(0,l.jsxs)("span",{className:"flex items-center gap-2",children:["Access Groups ",(0,l.jsx)(function({children:e,dot:t=!1}){return(0,d.useSyncExternalStore)(L,z)?e?(0,l.jsx)(l.Fragment,{children:e}):null:e?(0,l.jsx)(U.Badge,{color:"blue",count:t?void 0:"New",dot:t,children:e}):(0,l.jsx)(U.Badge,{color:"blue",count:t?void 0:"New",dot:t})},{})]}),icon:(0,l.jsx)(g.BlockOutlined,{}),roles:R.all_admin_roles},{key:"budgets",page:"budgets",label:"Budgets",icon:(0,l.jsx)(f,{}),roles:R.all_admin_roles}]},{groupLabel:"DEVELOPER TOOLS",items:[{key:"api_ref",page:"api_ref",label:"API Reference",icon:(0,l.jsx)(i.ApiOutlined,{})},{key:"model-hub-table",page:"model-hub-table",label:"AI Hub",icon:(0,l.jsx)(r.AppstoreOutlined,{})},{key:"learning-resources",page:"learning-resources",label:"Learning Resources",icon:(0,l.jsx)(h,{}),external_url:"https://models.litellm.ai/cookbook"},{key:"experimental",page:"experimental",label:"Experimental",icon:(0,l.jsx)(j.ExperimentOutlined,{}),children:[{key:"caching",page:"caching",label:"Caching",icon:(0,l.jsx)(y.DatabaseOutlined,{}),roles:R.all_admin_roles},{key:"prompts",page:"prompts",label:"Prompts",icon:(0,l.jsx)(S.FileTextOutlined,{}),roles:R.all_admin_roles},{key:"transform-request",page:"transform-request",label:"API Playground",icon:(0,l.jsx)(i.ApiOutlined,{}),roles:[...R.all_admin_roles,...R.internalUserRoles]},{key:"tag-management",page:"tag-management",label:"Tag Management",icon:(0,l.jsx)(O.TagsOutlined,{}),roles:R.all_admin_roles},{key:"claude-code-plugins",page:"claude-code-plugins",label:"Claude Code Plugins",icon:(0,l.jsx)(N.ToolOutlined,{}),roles:R.all_admin_roles},{key:"4",page:"usage",label:"Old Usage",icon:(0,l.jsx)(o.BarChartOutlined,{})}]}]},{groupLabel:"SETTINGS",roles:R.all_admin_roles,items:[{key:"settings",page:"settings",label:(0,l.jsx)("span",{className:"flex items-center gap-4",children:"Settings"}),icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles,children:[{key:"router-settings",page:"router-settings",label:"Router Settings",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"logging-and-alerts",page:"logging-and-alerts",label:"Logging & Alerts",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"admin-panel",page:"admin-panel",label:"Admin Settings",icon:(0,l.jsx)(T.SettingOutlined,{}),roles:R.all_admin_roles},{key:"cost-tracking",page:"cost-tracking",label:"Cost Tracking",icon:(0,l.jsx)(o.BarChartOutlined,{}),roles:R.all_admin_roles},{key:"ui-theme",page:"ui-theme",label:"UI Theme",icon:(0,l.jsx)(p,{}),roles:R.all_admin_roles}]}]}];e.s(["default",0,({setPage:e,defaultSelectedKey:i,collapsed:r=!1,enabledPagesInternalUsers:n})=>{let a,{userId:o,accessToken:c,userRole:u}=(0,s.default)(),{data:m}=(0,t.useOrganizations)(),p=(0,d.useMemo)(()=>!!o&&!!m&&m.some(e=>e.members?.some(e=>e.user_id===o&&"org_admin"===e.user_role)),[o,m]),g=l=>{let t=new URLSearchParams(window.location.search);t.set("page",l),window.history.pushState(null,"",`?${t.toString()}`),e(l)},_=e=>{let l=(0,R.isAdminRole)(u);return null!=n&&console.log("[LeftNav] Filtering with enabled pages:",{userRole:u,isAdmin:l,enabledPagesInternalUsers:n}),e.map(e=>({...e,children:e.children?_(e.children):void 0})).filter(e=>{if("organizations"===e.key){if(!(!e.roles||e.roles.includes(u)||p))return!1;if(!l&&null!=n){let l=n.includes(e.page);return console.log(`[LeftNav] Page "${e.page}" (${e.key}): ${l?"VISIBLE":"HIDDEN"}`),l}return!0}if(e.roles&&!e.roles.includes(u))return!1;if(!l&&null!=n){if(e.children&&e.children.length>0&&e.children.some(e=>n.includes(e.page)))return console.log(`[LeftNav] Parent "${e.page}" (${e.key}): VISIBLE (has visible children)`),!0;let l=n.includes(e.page);return console.log(`[LeftNav] Page "${e.page}" (${e.key}): ${l?"VISIBLE":"HIDDEN"}`),l}return!0})},h=(e=>{for(let l of V)for(let t of l.items){if(t.page===e)return t.key;if(t.children){let l=t.children.find(l=>l.page===e);if(l)return l.key}}return"api-keys"})(i);return(0,l.jsx)(P.Layout,{children:(0,l.jsxs)(G,{theme:"light",width:220,collapsed:r,collapsedWidth:80,collapsible:!0,trigger:null,style:{transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",position:"relative"},children:[(0,l.jsx)(F.ConfigProvider,{theme:{components:{Menu:{iconSize:15,fontSize:13,itemMarginInline:4,itemPaddingInline:8,itemHeight:30,itemBorderRadius:6,subMenuItemBorderRadius:6,groupTitleFontSize:10,groupTitleLineHeight:1.5}}},children:(0,l.jsx)(M.Menu,{mode:"inline",selectedKeys:[h],defaultOpenKeys:[],inlineCollapsed:r,className:"custom-sidebar-menu",style:{borderRight:0,backgroundColor:"transparent",fontSize:"13px",paddingTop:"4px"},items:(a=[],V.forEach(e=>{if(e.roles&&!e.roles.includes(u))return;let t=_(e.items);0!==t.length&&a.push({type:"group",label:r?null:(0,l.jsx)("span",{style:{fontSize:"10px",fontWeight:600,color:"#6b7280",letterSpacing:"0.05em",padding:"12px 0 4px 12px",display:"block",marginBottom:"2px"},children:e.groupLabel}),children:t.map(e=>({key:e.key,icon:e.icon,label:e.label,children:e.children?.map(e=>({key:e.key,icon:e.icon,label:e.label,onClick:()=>{e.external_url?window.open(e.external_url,"_blank"):g(e.page)}})),onClick:e.children?void 0:()=>{e.external_url?window.open(e.external_url,"_blank"):g(e.page)}}))})}),a)})}),(0,R.isAdminRole)(u)&&!r&&(0,l.jsx)(D.default,{accessToken:c,width:220})]})})},"menuGroups",()=>V],111672)},461451,37329,100070,e=>{"use strict";var l=e.i(843476),t=e.i(271645),s=e.i(304967),i=e.i(629569),r=e.i(599724),n=e.i(350967),a=e.i(994388),o=e.i(366283),c=e.i(779241),d=e.i(114600),u=e.i(808613),m=e.i(764205),p=e.i(237016),g=e.i(596239),_=e.i(438957),h=e.i(166406),x=e.i(270377),f=e.i(475647),y=e.i(190702),j=e.i(727749);e.s(["default",0,({accessToken:e,userID:S,proxySettings:v})=>{let[b]=u.Form.useForm(),[I,C]=(0,t.useState)(!1),[k,w]=(0,t.useState)(null),[T,O]=(0,t.useState)("");(0,t.useEffect)(()=>{let e="";O(e=v&&v.PROXY_BASE_URL&&void 0!==v.PROXY_BASE_URL?v.PROXY_BASE_URL:window.location.origin)},[v]);let E=`${T}/scim/v2`,N=async l=>{if(!e||!S)return void j.default.fromBackend("You need to be logged in to create a SCIM token");try{C(!0);let t={key_alias:l.key_alias||"SCIM Access Token",team_id:null,models:[],allowed_routes:["/scim/*"]},s=await (0,m.keyCreateCall)(e,S,t);w(s),j.default.success("SCIM token created successfully")}catch(e){console.error("Error creating SCIM token:",e),j.default.fromBackend("Failed to create SCIM token: "+(0,y.parseErrorMessage)(e))}finally{C(!1)}};return(0,l.jsx)(n.Grid,{numItems:1,children:(0,l.jsxs)(s.Card,{children:[(0,l.jsx)("div",{className:"flex items-center mb-4",children:(0,l.jsx)(i.Title,{children:"SCIM Configuration"})}),(0,l.jsx)(r.Text,{className:"text-gray-600",children:"System for Cross-domain Identity Management (SCIM) allows you to automatically provision and manage users and groups in LiteLLM."}),(0,l.jsx)(d.Divider,{}),(0,l.jsxs)("div",{className:"space-y-8",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center mb-2",children:[(0,l.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-700 mr-2",children:"1"}),(0,l.jsxs)(i.Title,{className:"text-lg flex items-center",children:[(0,l.jsx)(g.LinkOutlined,{className:"h-5 w-5 mr-2"}),"SCIM Tenant URL"]})]}),(0,l.jsx)(r.Text,{className:"text-gray-600 mb-3",children:"Use this URL in your identity provider SCIM integration settings."}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(c.TextInput,{value:E,disabled:!0,className:"flex-grow"}),(0,l.jsx)(p.CopyToClipboard,{text:E,onCopy:()=>j.default.success("URL copied to clipboard"),children:(0,l.jsxs)(a.Button,{variant:"primary",className:"ml-2 flex items-center",children:[(0,l.jsx)(h.CopyOutlined,{className:"h-4 w-4 mr-1"}),"Copy"]})})]})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center mb-2",children:[(0,l.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-blue-100 text-blue-700 mr-2",children:"2"}),(0,l.jsxs)(i.Title,{className:"text-lg flex items-center",children:[(0,l.jsx)(_.KeyOutlined,{className:"h-5 w-5 mr-2"}),"Authentication Token"]})]}),(0,l.jsx)(o.Callout,{title:"Using SCIM",color:"blue",className:"mb-4",children:"You need a SCIM token to authenticate with the SCIM API. Create one below and use it in your SCIM provider configuration."}),k?(0,l.jsxs)(s.Card,{className:"border border-yellow-300 bg-yellow-50",children:[(0,l.jsxs)("div",{className:"flex items-center mb-2 text-yellow-800",children:[(0,l.jsx)(x.ExclamationCircleOutlined,{className:"h-5 w-5 mr-2"}),(0,l.jsx)(i.Title,{className:"text-lg text-yellow-800",children:"Your SCIM Token"})]}),(0,l.jsx)(r.Text,{className:"text-yellow-800 mb-4 font-medium",children:"Make sure to copy this token now. You will not be able to see it again."}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(c.TextInput,{value:k.key,className:"flex-grow mr-2 bg-white",type:"password",disabled:!0}),(0,l.jsx)(p.CopyToClipboard,{text:k.key,onCopy:()=>j.default.success("Token copied to clipboard"),children:(0,l.jsxs)(a.Button,{variant:"primary",className:"flex items-center",children:[(0,l.jsx)(h.CopyOutlined,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,l.jsxs)(a.Button,{className:"mt-4 flex items-center",variant:"secondary",onClick:()=>w(null),children:[(0,l.jsx)(f.PlusCircleOutlined,{className:"h-4 w-4 mr-1"}),"Create Another Token"]})]}):(0,l.jsx)("div",{className:"bg-gray-50 p-4 rounded-lg",children:(0,l.jsxs)(u.Form,{form:b,onFinish:N,layout:"vertical",children:[(0,l.jsx)(u.Form.Item,{name:"key_alias",label:"Token Name",rules:[{required:!0,message:"Please enter a name for your token"}],children:(0,l.jsx)(c.TextInput,{placeholder:"SCIM Access Token"})}),(0,l.jsx)(u.Form.Item,{children:(0,l.jsxs)(a.Button,{variant:"primary",type:"submit",loading:I,className:"flex items-center",children:[(0,l.jsx)(_.KeyOutlined,{className:"h-4 w-4 mr-1"}),"Create SCIM Token"]})})]})})]})]})]})})}],461451);var S=e.i(135214),v=e.i(266027),b=e.i(243652);let I=(0,b.createQueryKeys)("sso"),C=()=>{let{accessToken:e,userId:l,userRole:t}=(0,S.default)();return(0,v.useQuery)({queryKey:I.detail("settings"),queryFn:async()=>await (0,m.getSSOSettings)(e),enabled:!!(e&&l&&t)})};var k=e.i(464571),w=e.i(175712),T=e.i(869216),O=e.i(770914),E=e.i(262218),N=e.i(898586),A=e.i(688511),F=e.i(918549),F=F,P=e.i(727612);let M={google:"https://artificialanalysis.ai/img/logos/google_small.svg",microsoft:"https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg",okta:"https://www.okta.com/sites/default/files/Okta_Logo_BrightBlue_Medium.png",generic:""},R={google:"Google SSO",microsoft:"Microsoft SSO",okta:"Okta / Auth0 SSO",generic:"Generic SSO"},U={internal_user_viewer:"Internal Viewer",internal_user:"Internal User",proxy_admin_viewer:"Proxy Admin Viewer",proxy_admin:"Proxy Admin"};var B=e.i(212931),L=e.i(536916),z=e.i(311451),D=e.i(199133);let G={google:{envVarMap:{google_client_id:"GOOGLE_CLIENT_ID",google_client_secret:"GOOGLE_CLIENT_SECRET"},fields:[{label:"Google Client ID",name:"google_client_id"},{label:"Google Client Secret",name:"google_client_secret"}]},microsoft:{envVarMap:{microsoft_client_id:"MICROSOFT_CLIENT_ID",microsoft_client_secret:"MICROSOFT_CLIENT_SECRET",microsoft_tenant:"MICROSOFT_TENANT"},fields:[{label:"Microsoft Client ID",name:"microsoft_client_id"},{label:"Microsoft Client Secret",name:"microsoft_client_secret"},{label:"Microsoft Tenant",name:"microsoft_tenant"}]},okta:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint",placeholder:"https://your-domain/authorize"},{label:"Token Endpoint",name:"generic_token_endpoint",placeholder:"https://your-domain/token"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint",placeholder:"https://your-domain/userinfo"}]},generic:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint"},{label:"Token Endpoint",name:"generic_token_endpoint"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint"}]}},V=({form:e,onFormSubmit:t})=>(0,l.jsx)("div",{children:(0,l.jsxs)(u.Form,{form:e,onFinish:t,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,l.jsx)(u.Form.Item,{label:"SSO Provider",name:"sso_provider",rules:[{required:!0,message:"Please select an SSO provider"}],children:(0,l.jsx)(D.Select,{children:Object.entries(M).map(([e,t])=>(0,l.jsx)(D.Select.Option,{value:e,children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0"},children:[t&&(0,l.jsx)("img",{src:t,alt:e,style:{height:24,width:24,marginRight:12,objectFit:"contain"}}),(0,l.jsx)("span",{children:R[e]||e.charAt(0).toUpperCase()+e.slice(1)+" SSO"})]})},e))})}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t,s=e("sso_provider");return s&&(t=G[s])?t.fields.map(e=>(0,l.jsx)(u.Form.Item,{label:e.label,name:e.name,rules:[{required:!0,message:`Please enter the ${e.label.toLowerCase()}`}],children:e.name.includes("client")?(0,l.jsx)(z.Input.Password,{}):(0,l.jsx)(c.TextInput,{placeholder:e.placeholder})},e.name)):null}}),(0,l.jsx)(u.Form.Item,{label:"Proxy Admin Email",name:"user_email",rules:[{required:!0,message:"Please enter the email of the proxy admin"}],children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Proxy Base URL",name:"proxy_base_url",normalize:e=>e?.trim(),rules:[{required:!0,message:"Please enter the proxy base url"},{pattern:/^https?:\/\/.+/,message:"URL must start with http:// or https://"},{validator:(e,l)=>l&&/^https?:\/\/.+/.test(l)&&l.endsWith("/")?Promise.reject("URL must not end with a trailing slash"):Promise.resolve()}],children:(0,l.jsx)(c.TextInput,{placeholder:"https://example.com"})}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(u.Form.Item,{label:"Use Role Mappings",name:"use_role_mappings",valuePropName:"checked",children:(0,l.jsx)(L.Checkbox,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_role_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsx)(u.Form.Item,{label:"Group Claim",name:"group_claim",rules:[{required:!0,message:"Please enter the group claim"}],children:(0,l.jsx)(c.TextInput,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_role_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.Form.Item,{label:"Default Role",name:"default_role",initialValue:"Internal User",children:(0,l.jsxs)(D.Select,{children:[(0,l.jsx)(D.Select.Option,{value:"internal_user_viewer",children:"Internal Viewer"}),(0,l.jsx)(D.Select.Option,{value:"internal_user",children:"Internal User"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin_viewer",children:"Admin Viewer"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin",children:"Proxy Admin"})]})}),(0,l.jsx)(u.Form.Item,{label:"Proxy Admin Teams",name:"proxy_admin_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Admin Viewer Teams",name:"admin_viewer_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Internal User Teams",name:"internal_user_teams",children:(0,l.jsx)(c.TextInput,{})}),(0,l.jsx)(u.Form.Item,{label:"Internal Viewer Teams",name:"internal_viewer_teams",children:(0,l.jsx)(c.TextInput,{})})]}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(u.Form.Item,{label:"Use Team Mappings",name:"use_team_mappings",valuePropName:"checked",children:(0,l.jsx)(L.Checkbox,{})}):null}}),(0,l.jsx)(u.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_team_mappings!==l.use_team_mappings||e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("use_team_mappings"),s=e("sso_provider");return t&&("okta"===s||"generic"===s)?(0,l.jsx)(u.Form.Item,{label:"Team IDs JWT Field",name:"team_ids_jwt_field",rules:[{required:!0,message:"Please enter the team IDs JWT field"}],children:(0,l.jsx)(c.TextInput,{})}):null}})]})});var q=e.i(954616);let H=()=>{let{accessToken:e}=(0,S.default)();return(0,q.useMutation)({mutationFn:async l=>{if(!e)throw Error("Access token is required");return await (0,m.updateSSOSettings)(e,l)}})},W=e=>{let{proxy_admin_teams:l,admin_viewer_teams:t,internal_user_teams:s,internal_viewer_teams:i,default_role:r,group_claim:n,use_role_mappings:a,use_team_mappings:o,team_ids_jwt_field:c,...d}=e,u={...d},m=d.sso_provider;if(a&&("okta"===m||"generic"===m)){let e=e=>e&&""!==e.trim()?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):[];u.role_mappings={provider:"generic",group_claim:n,default_role:({internal_user_viewer:"internal_user_viewer",internal_user:"internal_user",proxy_admin_viewer:"proxy_admin_viewer",proxy_admin:"proxy_admin"})[r]||"internal_user",roles:{proxy_admin:e(l),proxy_admin_viewer:e(t),internal_user:e(s),internal_user_viewer:e(i)}}}return o&&("okta"===m||"generic"===m)&&(u.team_mappings={team_ids_jwt_field:c}),u},$=e=>e.google_client_id?"google":e.microsoft_client_id?"microsoft":e.generic_client_id?e.generic_authorization_endpoint?.includes("okta")||e.generic_authorization_endpoint?.includes("auth0")?"okta":"generic":null,K=({isVisible:e,onCancel:t,onSuccess:s})=>{let[i]=u.Form.useForm(),{mutateAsync:r,isPending:n}=H(),a=async e=>{let l=W(e);await r(l,{onSuccess:()=>{j.default.success("SSO settings added successfully"),s()},onError:e=>{j.default.fromBackend("Failed to save SSO settings: "+(0,y.parseErrorMessage)(e))}})},o=()=>{i.resetFields(),t()};return(0,l.jsx)(B.Modal,{title:"Add SSO",open:e,width:800,footer:(0,l.jsxs)(O.Space,{children:[(0,l.jsx)(k.Button,{onClick:o,disabled:n,children:"Cancel"}),(0,l.jsx)(k.Button,{loading:n,onClick:()=>i.submit(),children:n?"Adding...":"Add SSO"})]}),onCancel:o,children:(0,l.jsx)(V,{form:i,onFormSubmit:a})})};var Y=e.i(127952);let J=({isVisible:e,onCancel:t,onSuccess:s})=>{let{data:i}=C(),{mutateAsync:r,isPending:n}=H(),a=async()=>{await r({google_client_id:null,google_client_secret:null,microsoft_client_id:null,microsoft_client_secret:null,microsoft_tenant:null,generic_client_id:null,generic_client_secret:null,generic_authorization_endpoint:null,generic_token_endpoint:null,generic_userinfo_endpoint:null,proxy_base_url:null,user_email:null,sso_provider:null,role_mappings:null,team_mappings:null},{onSuccess:()=>{j.default.success("SSO settings cleared successfully"),t(),s()},onError:e=>{j.default.fromBackend("Failed to clear SSO settings: "+(0,y.parseErrorMessage)(e))}})};return(0,l.jsx)(Y.default,{isOpen:e,title:"Confirm Clear SSO Settings",alertMessage:"This action cannot be undone.",message:"Are you sure you want to clear all SSO settings? Users will no longer be able to login using SSO after this change.",resourceInformationTitle:"SSO Settings",resourceInformation:[{label:"Provider",value:i?.values&&$(i?.values)||"Generic"}],onCancel:t,onOk:a,confirmLoading:n})},Q=({isVisible:e,onCancel:s,onSuccess:i})=>{let[r]=u.Form.useForm(),n=C(),{mutateAsync:a,isPending:o}=H();(0,t.useEffect)(()=>{if(e&&n.data&&n.data.values){let e=n.data;console.log("Raw SSO data received:",e),console.log("SSO values:",e.values),console.log("user_email from API:",e.values.user_email);let l=null;e.values.google_client_id?l="google":e.values.microsoft_client_id?l="microsoft":e.values.generic_client_id&&(l=e.values.generic_authorization_endpoint?.includes("okta")||e.values.generic_authorization_endpoint?.includes("auth0")?"okta":"generic");let t={};if(e.values.role_mappings){let l=e.values.role_mappings,s=e=>e&&0!==e.length?e.join(", "):"";t={use_role_mappings:!0,group_claim:l.group_claim,default_role:l.default_role||"internal_user",proxy_admin_teams:s(l.roles?.proxy_admin),admin_viewer_teams:s(l.roles?.proxy_admin_viewer),internal_user_teams:s(l.roles?.internal_user),internal_viewer_teams:s(l.roles?.internal_user_viewer)}}let s={};e.values.team_mappings&&(s={use_team_mappings:!0,team_ids_jwt_field:e.values.team_mappings.team_ids_jwt_field});let i={sso_provider:l,...e.values,...t,...s};console.log("Setting form values:",i),r.resetFields(),setTimeout(()=>{r.setFieldsValue(i),console.log("Form values set, current form values:",r.getFieldsValue())},100)}},[e,n.data,r]);let c=async e=>{try{let l=W(e);await a(l,{onSuccess:()=>{j.default.success("SSO settings updated successfully"),i()},onError:e=>{j.default.fromBackend("Failed to save SSO settings: "+(0,y.parseErrorMessage)(e))}})}catch(e){j.default.fromBackend("Failed to process SSO settings: "+(0,y.parseErrorMessage)(e))}},d=()=>{r.resetFields(),s()};return(0,l.jsx)(B.Modal,{title:"Edit SSO Settings",open:e,width:800,footer:(0,l.jsxs)(O.Space,{children:[(0,l.jsx)(k.Button,{onClick:d,disabled:o,children:"Cancel"}),(0,l.jsx)(k.Button,{loading:o,onClick:()=>r.submit(),children:o?"Saving...":"Save"})]}),onCancel:d,children:(0,l.jsx)(V,{form:r,onFormSubmit:c})})};var Z=e.i(286536),X=e.i(77705);function ee({defaultHidden:e=!0,value:s}){let[i,r]=(0,t.useState)(e);return(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"font-mono text-gray-600 flex-1",children:s?i?"•".repeat(s.length):s:(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"})}),s&&(0,l.jsx)(k.Button,{type:"text",size:"small",icon:i?(0,l.jsx)(Z.Eye,{className:"w-4 h-4"}):(0,l.jsx)(X.EyeOff,{className:"w-4 h-4"}),onClick:()=>r(!i),className:"text-gray-400 hover:text-gray-600"})]})}var el=e.i(312361),et=e.i(291542),es=e.i(761911);let{Title:ei,Text:er}=N.Typography;function en({roleMappings:e}){if(!e)return null;let t=[{title:"Role",dataIndex:"role",key:"role",render:e=>(0,l.jsx)(er,{strong:!0,children:U[e]})},{title:"Mapped Groups",dataIndex:"groups",key:"groups",render:e=>(0,l.jsx)(l.Fragment,{children:e.length>0?e.map((e,t)=>(0,l.jsx)(E.Tag,{color:"blue",children:e},t)):(0,l.jsx)(er,{className:"text-gray-400 italic",children:"No groups mapped"})})}];return(0,l.jsxs)(w.Card,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(es.Users,{className:"w-6 h-6 text-gray-400 mb-2"}),(0,l.jsx)(ei,{level:3,children:"Role Mappings"})]}),(0,l.jsxs)("div",{className:"space-y-8",children:[(0,l.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)(ei,{level:5,children:"Group Claim"}),(0,l.jsx)("div",{children:(0,l.jsx)(er,{code:!0,children:e.group_claim})})]}),(0,l.jsxs)("div",{children:[(0,l.jsx)(ei,{level:5,children:"Default Role"}),(0,l.jsx)("div",{children:(0,l.jsx)(er,{strong:!0,children:U[e.default_role]})})]})]}),(0,l.jsx)(el.Divider,{}),(0,l.jsx)(et.Table,{columns:t,dataSource:Object.entries(e.roles).map(([e,l])=>({role:e,groups:l})),pagination:!1,bordered:!0,size:"small",className:"w-full"})]})]})}var ea=e.i(21548);let{Title:eo,Paragraph:ec}=N.Typography;function ed({onAdd:e}){return(0,l.jsx)("div",{className:"bg-white p-12 rounded-lg border border-dashed border-gray-300 text-center w-full",children:(0,l.jsx)(ea.Empty,{image:ea.Empty.PRESENTED_IMAGE_SIMPLE,description:(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(eo,{level:4,children:"No SSO Configuration Found"}),(0,l.jsx)(ec,{type:"secondary",className:"max-w-md mx-auto",children:"Configure Single Sign-On (SSO) to enable seamless authentication for your team members using your identity provider."})]}),children:(0,l.jsx)(k.Button,{type:"primary",size:"large",onClick:e,className:"flex items-center gap-2 mx-auto mt-4",children:"Configure SSO"})})})}var eu=e.i(981339),F=F;let{Title:em,Text:ep}=N.Typography;function eg(){return(0,l.jsx)(w.Card,{children:(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(F.default,{className:"w-6 h-6 text-gray-400"}),(0,l.jsxs)("div",{children:[(0,l.jsx)(em,{level:3,children:"SSO Configuration"}),(0,l.jsx)(ep,{type:"secondary",children:"Manage Single Sign-On authentication settings"})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(eu.Skeleton.Button,{active:!0,size:"default",style:{width:170,height:32}}),(0,l.jsx)(eu.Skeleton.Button,{active:!0,size:"default",style:{width:190,height:32}})]})]}),(0,l.jsxs)(T.Descriptions,{bordered:!0,...{column:{xxl:1,xl:1,lg:1,md:1,sm:1,xs:1}},children:[(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:100,height:16}})})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:200,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:250,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:180,height:16}})}),(0,l.jsx)(T.Descriptions.Item,{label:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:80,height:16}}),children:(0,l.jsx)(eu.Skeleton.Node,{active:!0,style:{width:220,height:16}})})]})]})})}let{Title:e_,Text:eh}=N.Typography;function ex(){let{data:e,refetch:s,isLoading:i}=C(),[r,n]=(0,t.useState)(!1),[a,o]=(0,t.useState)(!1),[c,d]=(0,t.useState)(!1),u=!!e?.values.google_client_id||!!e?.values.microsoft_client_id||!!e?.values.generic_client_id,m=e?.values?$(e.values):null,p=!!e?.values.role_mappings,g=!!e?.values.team_mappings,_=e=>(0,l.jsx)(eh,{className:"font-mono text-gray-600 text-sm",copyable:!!e,children:e||"-"}),h=e=>e||(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"}),x=e=>e.team_mappings?.team_ids_jwt_field?(0,l.jsx)(E.Tag,{children:e.team_mappings.team_ids_jwt_field}):(0,l.jsx)("span",{className:"text-gray-400 italic",children:"Not configured"}),f={column:{xxl:1,xl:1,lg:1,md:1,sm:1,xs:1}},y={google:{providerText:R.google,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.google_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.google_client_secret})},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)}]},microsoft:{providerText:R.microsoft,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.microsoft_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.microsoft_client_secret})},{label:"Tenant",render:e=>h(e.microsoft_tenant)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)}]},okta:{providerText:R.okta,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.generic_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.generic_client_secret})},{label:"Authorization Endpoint",render:e=>_(e.generic_authorization_endpoint)},{label:"Token Endpoint",render:e=>_(e.generic_token_endpoint)},{label:"User Info Endpoint",render:e=>_(e.generic_userinfo_endpoint)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)},g?{label:"Team IDs JWT Field",render:e=>x(e)}:null]},generic:{providerText:R.generic,fields:[{label:"Client ID",render:e=>(0,l.jsx)(ee,{value:e.generic_client_id})},{label:"Client Secret",render:e=>(0,l.jsx)(ee,{value:e.generic_client_secret})},{label:"Authorization Endpoint",render:e=>_(e.generic_authorization_endpoint)},{label:"Token Endpoint",render:e=>_(e.generic_token_endpoint)},{label:"User Info Endpoint",render:e=>_(e.generic_userinfo_endpoint)},{label:"Proxy Base URL",render:e=>h(e.proxy_base_url)},g?{label:"Team IDs JWT Field",render:e=>x(e)}:null]}};return(0,l.jsxs)(l.Fragment,{children:[i?(0,l.jsx)(eg,{}):(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsx)(w.Card,{children:(0,l.jsxs)(O.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)(F.default,{className:"w-6 h-6 text-gray-400"}),(0,l.jsxs)("div",{children:[(0,l.jsx)(e_,{level:3,children:"SSO Configuration"}),(0,l.jsx)(eh,{type:"secondary",children:"Manage Single Sign-On authentication settings"})]})]}),(0,l.jsx)("div",{className:"flex items-center gap-3",children:u&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(k.Button,{icon:(0,l.jsx)(A.Edit,{className:"w-4 h-4"}),onClick:()=>d(!0),children:"Edit SSO Settings"}),(0,l.jsx)(k.Button,{danger:!0,icon:(0,l.jsx)(P.Trash2,{className:"w-4 h-4"}),onClick:()=>n(!0),children:"Delete SSO Settings"})]})})]}),u?(()=>{if(!e?.values||!m)return null;let{values:t}=e,s=y[m];return s?(0,l.jsxs)(T.Descriptions,{bordered:!0,...f,children:[(0,l.jsx)(T.Descriptions.Item,{label:"Provider",children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[M[m]&&(0,l.jsx)("img",{src:M[m],alt:m,style:{height:24,width:24,objectFit:"contain"}}),(0,l.jsx)("span",{children:s.providerText})]})}),s.fields.map((e,s)=>e&&(0,l.jsx)(T.Descriptions.Item,{label:e.label,children:e.render(t)},s))]}):null})():(0,l.jsx)(ed,{onAdd:()=>o(!0)})]})}),p&&(0,l.jsx)(en,{roleMappings:e?.values.role_mappings})]}),(0,l.jsx)(J,{isVisible:r,onCancel:()=>n(!1),onSuccess:()=>s()}),(0,l.jsx)(K,{isVisible:a,onCancel:()=>o(!1),onSuccess:()=>{o(!1),s()}}),(0,l.jsx)(Q,{isVisible:c,onCancel:()=>d(!1),onSuccess:()=>{d(!1),s()}})]})}e.s(["default",()=>ex],37329);var ef=e.i(912598);let ey=(0,b.createQueryKeys)("uiSettings");e.s(["useUpdateUISettings",0,e=>{let l=(0,ef.useQueryClient)();return(0,q.useMutation)({mutationFn:async l=>{if(!e)throw Error("Access token is required");return(0,m.updateUiSettings)(e,l)},onSuccess:()=>{l.invalidateQueries({queryKey:ey.all})}})}],100070)},105278,e=>{"use strict";var l=e.i(843476),t=e.i(135214),s=e.i(994388),i=e.i(366283),r=e.i(304967),n=e.i(269200),a=e.i(942232),o=e.i(977572),c=e.i(427612),d=e.i(64848),u=e.i(496020),m=e.i(560445),p=e.i(464571),g=e.i(808613),_=e.i(311451),h=e.i(212931),x=e.i(653496),f=e.i(898586),y=e.i(271645),j=e.i(700514),S=e.i(727749),v=e.i(764205),b=e.i(461451),I=e.i(37329),C=e.i(292639),k=e.i(100070),w=e.i(111672);let T={"api-keys":"Manage virtual keys for API access and authentication","llm-playground":"Interactive playground for testing LLM requests",models:"Configure and manage LLM models and endpoints",agents:"Create and manage AI agents","mcp-servers":"Configure Model Context Protocol servers",guardrails:"Set up content moderation and safety guardrails",policies:"Define access control and usage policies","search-tools":"Configure RAG search and retrieval tools","vector-stores":"Manage vector databases for embeddings",new_usage:"View usage analytics and metrics",logs:"Access request and response logs",users:"Manage internal user accounts and permissions",teams:"Create and manage teams for access control",organizations:"Manage organizations and their members","access-groups":"Manage access groups for role-based permissions",budgets:"Set and monitor spending budgets",api_ref:"Browse API documentation and endpoints","model-hub-table":"Explore available AI models and providers","learning-resources":"Access tutorials and documentation",caching:"Configure response caching settings","transform-request":"Set up request transformation rules","cost-tracking":"Track and analyze API costs","ui-theme":"Customize dashboard appearance","tag-management":"Organize resources with tags",prompts:"Manage and version prompt templates","claude-code-plugins":"Configure Claude Code plugins",usage:"View legacy usage dashboard","router-settings":"Configure routing and load balancing settings","logging-and-alerts":"Set up logging and alert configurations","admin-panel":"Access admin panel and settings"};var O=e.i(708347);let E=e=>!e||0===e.length||e.some(e=>O.internalUserRoles.includes(e));var N=e.i(536916),A=e.i(362024),F=e.i(770914),P=e.i(262218);function M({enabledPagesInternalUsers:e,enabledPagesPropertyDescription:t,isUpdating:s,onUpdate:i}){let r=null!=e,n=(0,y.useMemo)(()=>{let e;return e=[],w.menuGroups.forEach(l=>{l.items.forEach(t=>{if(t.page&&"tools"!==t.page&&"experimental"!==t.page&&"settings"!==t.page&&E(t.roles)){let s="string"==typeof t.label?t.label:t.key;e.push({page:t.page,label:s,group:l.groupLabel,description:T[t.page]||"No description available"})}if(t.children){let s="string"==typeof t.label?t.label:t.key;t.children.forEach(t=>{if(E(t.roles)){let i="string"==typeof t.label?t.label:t.key;e.push({page:t.page,label:i,group:`${l.groupLabel} > ${s}`,description:T[t.page]||"No description available"})}})}})}),e},[]),a=(0,y.useMemo)(()=>{let e={};return n.forEach(l=>{e[l.group]||(e[l.group]=[]),e[l.group].push(l)}),e},[n]),[o,c]=(0,y.useState)(e||[]);return(0,y.useMemo)(()=>{e?c(e):c([])},[e]),(0,l.jsxs)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsxs)(F.Space,{align:"center",children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Internal User Page Visibility"}),!r&&(0,l.jsx)(P.Tag,{color:"default",style:{marginLeft:"8px"},children:"Not set (all pages visible)"}),r&&(0,l.jsxs)(P.Tag,{color:"blue",style:{marginLeft:"8px"},children:[o.length," page",1!==o.length?"s":""," selected"]})]}),t&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:t}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px",fontStyle:"italic"},children:"By default, all pages are visible to internal users. Select specific pages to restrict visibility."}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px",color:"#8b5cf6"},children:"Note: Only pages accessible to internal user roles are shown here. Admin-only pages are excluded as they cannot be made visible to internal users regardless of this setting."})]}),(0,l.jsx)(A.Collapse,{items:[{key:"page-visibility",label:"Configure Page Visibility",children:(0,l.jsxs)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,l.jsx)(N.Checkbox.Group,{value:o,onChange:c,style:{width:"100%"},children:(0,l.jsx)(F.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:Object.entries(a).map(([e,t])=>(0,l.jsxs)("div",{children:[(0,l.jsx)(f.Typography.Text,{strong:!0,style:{fontSize:"11px",color:"#6b7280",letterSpacing:"0.05em",display:"block",marginBottom:"8px"},children:e}),(0,l.jsx)(F.Space,{direction:"vertical",size:"small",style:{marginLeft:"16px",width:"100%"},children:t.map(e=>(0,l.jsx)("div",{style:{marginBottom:"4px"},children:(0,l.jsx)(N.Checkbox,{value:e.page,children:(0,l.jsxs)(F.Space,{direction:"vertical",size:0,children:[(0,l.jsx)(f.Typography.Text,{children:e.label}),(0,l.jsx)(f.Typography.Text,{type:"secondary",style:{fontSize:"12px"},children:e.description})]})})},e.page))})]},e))})}),(0,l.jsxs)(F.Space,{children:[(0,l.jsx)(p.Button,{type:"primary",onClick:()=>{i({enabled_ui_pages_internal_users:o.length>0?o:null})},loading:s,disabled:s,children:"Save Page Visibility Settings"}),r&&(0,l.jsx)(p.Button,{onClick:()=>{c([]),i({enabled_ui_pages_internal_users:null})},loading:s,disabled:s,children:"Reset to Default (All Pages)"})]})]})}]})]})}var R=e.i(175712),U=e.i(312361),B=e.i(981339),L=e.i(790848);function z(){let{accessToken:e}=(0,t.default)(),{data:s,isLoading:i,isError:r,error:n}=(0,C.useUISettings)(),{mutate:a,isPending:o,error:c}=(0,k.useUpdateUISettings)(e),d=s?.field_schema,u=d?.properties?.disable_model_add_for_internal_users,p=d?.properties?.disable_team_admin_delete_team_user,g=d?.properties?.require_auth_for_public_ai_hub,_=d?.properties?.enabled_ui_pages_internal_users,h=s?.values??{},x=!!h.disable_model_add_for_internal_users,y=!!h.disable_team_admin_delete_team_user;return(0,l.jsx)(R.Card,{title:"UI Settings",children:i?(0,l.jsx)(B.Skeleton,{active:!0}):r?(0,l.jsx)(m.Alert,{type:"error",message:"Could not load UI settings",description:n instanceof Error?n.message:void 0}):(0,l.jsxs)(F.Space,{direction:"vertical",size:"large",style:{width:"100%"},children:[d?.description&&(0,l.jsx)(f.Typography.Paragraph,{style:{marginBottom:0},children:d.description}),c&&(0,l.jsx)(m.Alert,{type:"error",message:"Could not update UI settings",description:c instanceof Error?c.message:void 0}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:x,disabled:o,loading:o,onChange:e=>{a({disable_model_add_for_internal_users:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":u?.description??"Disable model add for internal users"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Disable model add for internal users"}),u?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:u.description})]})]}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:y,disabled:o,loading:o,onChange:e=>{a({disable_team_admin_delete_team_user:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":p?.description??"Disable team admin delete team user"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Disable team admin delete team user"}),p?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:p.description})]})]}),(0,l.jsxs)(F.Space,{align:"start",size:"middle",children:[(0,l.jsx)(L.Switch,{checked:h.require_auth_for_public_ai_hub,disabled:o,loading:o,onChange:e=>{a({require_auth_for_public_ai_hub:e},{onSuccess:()=>{S.default.success("UI settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})},"aria-label":g?.description??"Require authentication for public AI Hub"}),(0,l.jsxs)(F.Space,{direction:"vertical",size:4,children:[(0,l.jsx)(f.Typography.Text,{strong:!0,children:"Require authentication for public AI Hub"}),g?.description&&(0,l.jsx)(f.Typography.Text,{type:"secondary",children:g.description})]})]}),(0,l.jsx)(U.Divider,{}),(0,l.jsx)(M,{enabledPagesInternalUsers:h.enabled_ui_pages_internal_users,enabledPagesPropertyDescription:_?.description,isUpdating:o,onUpdate:e=>{a(e,{onSuccess:()=>{S.default.success("Page visibility settings updated successfully")},onError:e=>{S.default.fromBackend(e)}})}})]})})}var D=e.i(199133),G=e.i(599724),V=e.i(779241),q=e.i(190702);let H={google:"https://artificialanalysis.ai/img/logos/google_small.svg",microsoft:"https://upload.wikimedia.org/wikipedia/commons/a/a8/Microsoft_Azure_Logo.svg",okta:"https://www.okta.com/sites/default/files/Okta_Logo_BrightBlue_Medium.png",generic:""},W={google:{envVarMap:{google_client_id:"GOOGLE_CLIENT_ID",google_client_secret:"GOOGLE_CLIENT_SECRET"},fields:[{label:"Google Client ID",name:"google_client_id"},{label:"Google Client Secret",name:"google_client_secret"}]},microsoft:{envVarMap:{microsoft_client_id:"MICROSOFT_CLIENT_ID",microsoft_client_secret:"MICROSOFT_CLIENT_SECRET",microsoft_tenant:"MICROSOFT_TENANT"},fields:[{label:"Microsoft Client ID",name:"microsoft_client_id"},{label:"Microsoft Client Secret",name:"microsoft_client_secret"},{label:"Microsoft Tenant",name:"microsoft_tenant"}]},okta:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint",placeholder:"https://your-domain/authorize"},{label:"Token Endpoint",name:"generic_token_endpoint",placeholder:"https://your-domain/token"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint",placeholder:"https://your-domain/userinfo"}]},generic:{envVarMap:{generic_client_id:"GENERIC_CLIENT_ID",generic_client_secret:"GENERIC_CLIENT_SECRET",generic_authorization_endpoint:"GENERIC_AUTHORIZATION_ENDPOINT",generic_token_endpoint:"GENERIC_TOKEN_ENDPOINT",generic_userinfo_endpoint:"GENERIC_USERINFO_ENDPOINT"},fields:[{label:"Generic Client ID",name:"generic_client_id"},{label:"Generic Client Secret",name:"generic_client_secret"},{label:"Authorization Endpoint",name:"generic_authorization_endpoint"},{label:"Token Endpoint",name:"generic_token_endpoint"},{label:"Userinfo Endpoint",name:"generic_userinfo_endpoint"}]}},$=({isAddSSOModalVisible:e,isInstructionsModalVisible:t,handleAddSSOOk:s,handleAddSSOCancel:i,handleShowInstructions:r,handleInstructionsOk:n,handleInstructionsCancel:a,form:o,accessToken:c,ssoConfigured:d=!1})=>{let[u,m]=(0,y.useState)(!1);(0,y.useEffect)(()=>{(async()=>{if(e&&c)try{let e=await (0,v.getSSOSettings)(c);if(console.log("Raw SSO data received:",e),e&&e.values){console.log("SSO values:",e.values),console.log("user_email from API:",e.values.user_email);let l=null;e.values.google_client_id?l="google":e.values.microsoft_client_id?l="microsoft":e.values.generic_client_id&&(l=e.values.generic_authorization_endpoint?.includes("okta")||e.values.generic_authorization_endpoint?.includes("auth0")?"okta":"generic");let t={};if(e.values.role_mappings){let l=e.values.role_mappings,s=e=>e&&0!==e.length?e.join(", "):"";t={use_role_mappings:!0,group_claim:l.group_claim,default_role:l.default_role||"internal_user",proxy_admin_teams:s(l.roles?.proxy_admin),admin_viewer_teams:s(l.roles?.proxy_admin_viewer),internal_user_teams:s(l.roles?.internal_user),internal_viewer_teams:s(l.roles?.internal_user_viewer)}}let s={sso_provider:l,proxy_base_url:e.values.proxy_base_url,user_email:e.values.user_email,...e.values,...t};console.log("Setting form values:",s),o.resetFields(),setTimeout(()=>{o.setFieldsValue(s),console.log("Form values set, current form values:",o.getFieldsValue())},100)}}catch(e){console.error("Failed to load SSO settings:",e)}})()},[e,c,o]);let x=async e=>{if(!c)return void S.default.fromBackend("No access token available");try{let{proxy_admin_teams:l,admin_viewer_teams:t,internal_user_teams:s,internal_viewer_teams:i,default_role:n,group_claim:a,use_role_mappings:o,...d}=e,u={...d};if(o){let e=e=>e&&""!==e.trim()?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):[];u.role_mappings={provider:"generic",group_claim:a,default_role:({internal_user_viewer:"internal_user_viewer",internal_user:"internal_user",proxy_admin_viewer:"proxy_admin_viewer",proxy_admin:"proxy_admin"})[n]||"internal_user",roles:{proxy_admin:e(l),proxy_admin_viewer:e(t),internal_user:e(s),internal_user_viewer:e(i)}}}await (0,v.updateSSOSettings)(c,u),r(e)}catch(e){S.default.fromBackend("Failed to save SSO settings: "+(0,q.parseErrorMessage)(e))}},f=async()=>{if(!c)return void S.default.fromBackend("No access token available");try{await (0,v.updateSSOSettings)(c,{google_client_id:null,google_client_secret:null,microsoft_client_id:null,microsoft_client_secret:null,microsoft_tenant:null,generic_client_id:null,generic_client_secret:null,generic_authorization_endpoint:null,generic_token_endpoint:null,generic_userinfo_endpoint:null,proxy_base_url:null,user_email:null,sso_provider:null,role_mappings:null}),o.resetFields(),m(!1),s(),S.default.success("SSO settings cleared successfully")}catch(e){console.error("Failed to clear SSO settings:",e),S.default.fromBackend("Failed to clear SSO settings")}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(h.Modal,{title:d?"Edit SSO Settings":"Add SSO",open:e,width:800,footer:null,onOk:s,onCancel:i,children:(0,l.jsxs)(g.Form,{form:o,onFinish:x,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.Form.Item,{label:"SSO Provider",name:"sso_provider",rules:[{required:!0,message:"Please select an SSO provider"}],children:(0,l.jsx)(D.Select,{children:Object.entries(H).map(([e,t])=>(0,l.jsx)(D.Select.Option,{value:e,children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"4px 0"},children:[t&&(0,l.jsx)("img",{src:t,alt:e,style:{height:24,width:24,marginRight:12,objectFit:"contain"}}),(0,l.jsxs)("span",{children:["okta"===e.toLowerCase()?"Okta / Auth0":e.charAt(0).toUpperCase()+e.slice(1)," ","SSO"]})]})},e))})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t,s=e("sso_provider");return s&&(t=W[s])?t.fields.map(e=>(0,l.jsx)(g.Form.Item,{label:e.label,name:e.name,rules:[{required:!0,message:`Please enter the ${e.label.toLowerCase()}`}],children:e.name.includes("client")?(0,l.jsx)(_.Input.Password,{}):(0,l.jsx)(V.TextInput,{placeholder:e.placeholder})},e.name)):null}}),(0,l.jsx)(g.Form.Item,{label:"Proxy Admin Email",name:"user_email",rules:[{required:!0,message:"Please enter the email of the proxy admin"}],children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Proxy Base URL",name:"proxy_base_url",normalize:e=>e?.trim(),rules:[{required:!0,message:"Please enter the proxy base url"},{pattern:/^https?:\/\/.+/,message:"URL must start with http:// or https://"},{validator:(e,l)=>l&&/^https?:\/\/.+/.test(l)&&l.endsWith("/")?Promise.reject("URL must not end with a trailing slash"):Promise.resolve()}],children:(0,l.jsx)(V.TextInput,{placeholder:"https://example.com"})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.sso_provider!==l.sso_provider,children:({getFieldValue:e})=>{let t=e("sso_provider");return"okta"===t||"generic"===t?(0,l.jsx)(g.Form.Item,{label:"Use Role Mappings",name:"use_role_mappings",valuePropName:"checked",children:(0,l.jsx)(N.Checkbox,{})}):null}}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings,children:({getFieldValue:e})=>e("use_role_mappings")?(0,l.jsx)(g.Form.Item,{label:"Group Claim",name:"group_claim",rules:[{required:!0,message:"Please enter the group claim"}],children:(0,l.jsx)(V.TextInput,{})}):null}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.use_role_mappings!==l.use_role_mappings,children:({getFieldValue:e})=>e("use_role_mappings")?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.Form.Item,{label:"Default Role",name:"default_role",initialValue:"Internal User",children:(0,l.jsxs)(D.Select,{children:[(0,l.jsx)(D.Select.Option,{value:"internal_user_viewer",children:"Internal Viewer"}),(0,l.jsx)(D.Select.Option,{value:"internal_user",children:"Internal User"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin_viewer",children:"Admin Viewer"}),(0,l.jsx)(D.Select.Option,{value:"proxy_admin",children:"Proxy Admin"})]})}),(0,l.jsx)(g.Form.Item,{label:"Proxy Admin Teams",name:"proxy_admin_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Admin Viewer Teams",name:"admin_viewer_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Internal User Teams",name:"internal_user_teams",children:(0,l.jsx)(V.TextInput,{})}),(0,l.jsx)(g.Form.Item,{label:"Internal Viewer Teams",name:"internal_viewer_teams",children:(0,l.jsx)(V.TextInput,{})})]}):null})]}),(0,l.jsxs)("div",{style:{textAlign:"right",marginTop:"10px",display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"8px"},children:[d&&(0,l.jsx)(p.Button,{onClick:()=>m(!0),style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#5558eb",e.currentTarget.style.borderColor="#5558eb"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1",e.currentTarget.style.borderColor="#6366f1"},children:"Clear"}),(0,l.jsx)(p.Button,{htmlType:"submit",children:"Save"})]})]})}),(0,l.jsxs)(h.Modal,{title:"Confirm Clear SSO Settings",open:u,onOk:f,onCancel:()=>m(!1),okText:"Yes, Clear",cancelText:"Cancel",okButtonProps:{danger:!0,style:{backgroundColor:"#dc2626",borderColor:"#dc2626"}},children:[(0,l.jsx)("p",{children:"Are you sure you want to clear all SSO settings? This action cannot be undone."}),(0,l.jsx)("p",{children:"Users will no longer be able to login using SSO after this change."})]}),(0,l.jsxs)(h.Modal,{title:"SSO Setup Instructions",open:t,width:800,footer:null,onOk:n,onCancel:a,children:[(0,l.jsx)("p",{children:"Follow these steps to complete the SSO setup:"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"1. DO NOT Exit this TAB"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"2. Open a new tab, visit your proxy base url"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"3. Confirm your SSO is configured correctly and you can login on the new Tab"}),(0,l.jsx)(G.Text,{className:"mt-2",children:"4. If Step 3 is successful, you can close this tab"}),(0,l.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,l.jsx)(p.Button,{onClick:n,children:"Done"})})]})]})},K=({accessToken:e,onSuccess:t})=>{let[s]=g.Form.useForm(),[i,r]=(0,y.useState)(!1);(0,y.useEffect)(()=>{(async()=>{if(e)try{let l=await (0,v.getSSOSettings)(e);if(l&&l.values){let e=l.values.ui_access_mode,t={};e&&"object"==typeof e?t={ui_access_mode_type:e.type,restricted_sso_group:e.restricted_sso_group,sso_group_jwt_field:e.sso_group_jwt_field}:"string"==typeof e&&(t={ui_access_mode_type:e,restricted_sso_group:l.values.restricted_sso_group,sso_group_jwt_field:l.values.team_ids_jwt_field||l.values.sso_group_jwt_field}),s.setFieldsValue(t)}}catch(e){console.error("Failed to load UI access settings:",e)}})()},[e,s]);let n=async l=>{if(!e)return void S.default.fromBackend("No access token available");r(!0);try{let s;s="all_authenticated_users"===l.ui_access_mode_type?{ui_access_mode:"none"}:{ui_access_mode:{type:l.ui_access_mode_type,restricted_sso_group:l.restricted_sso_group,sso_group_jwt_field:l.sso_group_jwt_field}},await (0,v.updateSSOSettings)(e,s),t()}catch(e){console.error("Failed to save UI access settings:",e),S.default.fromBackend("Failed to save UI access settings")}finally{r(!1)}};return(0,l.jsxs)("div",{style:{padding:"16px"},children:[(0,l.jsx)("div",{style:{marginBottom:"16px"},children:(0,l.jsx)(G.Text,{style:{fontSize:"14px",color:"#6b7280"},children:"Configure who can access the UI interface and how group information is extracted from JWT tokens."})}),(0,l.jsxs)(g.Form,{form:s,onFinish:n,layout:"vertical",children:[(0,l.jsx)(g.Form.Item,{label:"UI Access Mode",name:"ui_access_mode_type",tooltip:"Controls who can access the UI interface",children:(0,l.jsxs)(D.Select,{placeholder:"Select access mode",children:[(0,l.jsx)(D.Select.Option,{value:"all_authenticated_users",children:"All Authenticated Users"}),(0,l.jsx)(D.Select.Option,{value:"restricted_sso_group",children:"Restricted SSO Group"})]})}),(0,l.jsx)(g.Form.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.ui_access_mode_type!==l.ui_access_mode_type,children:({getFieldValue:e})=>"restricted_sso_group"===e("ui_access_mode_type")?(0,l.jsx)(g.Form.Item,{label:"Restricted SSO Group",name:"restricted_sso_group",rules:[{required:!0,message:"Please enter the restricted SSO group"}],children:(0,l.jsx)(V.TextInput,{placeholder:"ui-access-group"})}):null}),(0,l.jsx)(g.Form.Item,{label:"SSO Group JWT Field",name:"sso_group_jwt_field",tooltip:"JWT field name that contains team/group information. Use dot notation to access nested fields.",children:(0,l.jsx)(V.TextInput,{placeholder:"groups"})}),(0,l.jsx)("div",{style:{textAlign:"right",marginTop:"16px"},children:(0,l.jsx)(p.Button,{type:"primary",htmlType:"submit",loading:i,style:{backgroundColor:"#6366f1",borderColor:"#6366f1"},children:"Update UI Access Control"})})]})]})},{Title:Y,Paragraph:J,Text:Q}=f.Typography;e.s(["default",0,({proxySettings:e})=>{let{premiumUser:f,accessToken:C,userId:k}=(0,t.default)(),[w]=g.Form.useForm(),[T,O]=(0,y.useState)(!1),[E,N]=(0,y.useState)(!1),[A,F]=(0,y.useState)(!1),[P,M]=(0,y.useState)(!1),[R,U]=(0,y.useState)(!1),[B,L]=(0,y.useState)(!1),[D,G]=(0,y.useState)([]),[V,q]=(0,y.useState)(null),[H,W]=(0,y.useState)(!1),Z=(0,j.useBaseUrl)(),X="All IP Addresses Allowed",ee=Z;ee+="/fallback/login";let el=async()=>{if(C)try{let e=await (0,v.getSSOSettings)(C);if(e&&e.values){let l=e.values.google_client_id&&e.values.google_client_secret,t=e.values.microsoft_client_id&&e.values.microsoft_client_secret,s=e.values.generic_client_id&&e.values.generic_client_secret;W(l||t||s)}else W(!1)}catch(e){console.error("Error checking SSO configuration:",e),W(!1)}},et=async()=>{try{if(!0!==f)return void S.default.fromBackend("This feature is only available for premium users. Please upgrade your account.");if(C){let e=await (0,v.getAllowedIPs)(C);G(e&&e.length>0?e:[X])}else G([X])}catch(e){console.error("Error fetching allowed IPs:",e),S.default.fromBackend(`Failed to fetch allowed IPs ${e}`),G([X])}finally{!0===f&&F(!0)}},es=async e=>{try{if(C){await (0,v.addAllowedIP)(C,e.ip);let l=await (0,v.getAllowedIPs)(C);G(l),S.default.success("IP address added successfully")}}catch(e){console.error("Error adding IP:",e),S.default.fromBackend(`Failed to add IP address ${e}`)}finally{M(!1)}},ei=async e=>{q(e),U(!0)},er=async()=>{if(V&&C)try{await (0,v.deleteAllowedIP)(C,V);let e=await (0,v.getAllowedIPs)(C);G(e.length>0?e:[X]),S.default.success("IP address deleted successfully")}catch(e){console.error("Error deleting IP:",e),S.default.fromBackend(`Failed to delete IP address ${e}`)}finally{U(!1),q(null)}};(0,y.useEffect)(()=>{el()},[C,f,el]);let en=()=>{L(!1)},ea=[{key:"sso-settings",label:"SSO Settings",children:(0,l.jsx)(I.default,{})},{key:"security-settings",label:"Security Settings",children:(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(r.Card,{children:[(0,l.jsx)(Y,{level:4,children:" ✨ Security Settings"}),(0,l.jsx)(m.Alert,{message:"SSO Configuration Deprecated",description:"Editing SSO Settings on this page is deprecated and will be removed in a future version. Please use the SSO Settings tab for SSO configuration.",type:"warning",showIcon:!0}),(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem",marginTop:"1rem",marginLeft:"0.5rem"},children:[(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:()=>O(!0),children:H?"Edit SSO Settings":"Add SSO"})}),(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:et,children:"Allowed IPs"})}),(0,l.jsx)("div",{children:(0,l.jsx)(s.Button,{style:{width:"150px"},onClick:()=>!0===f?L(!0):S.default.fromBackend("Only premium users can configure UI access control"),children:"UI Access Control"})})]})]}),(0,l.jsxs)("div",{className:"flex justify-start mb-4",children:[(0,l.jsx)($,{isAddSSOModalVisible:T,isInstructionsModalVisible:E,handleAddSSOOk:()=>{O(!1),w.resetFields(),C&&f&&el()},handleAddSSOCancel:()=>{O(!1),w.resetFields()},handleShowInstructions:e=>{O(!1),N(!0)},handleInstructionsOk:()=>{N(!1),C&&f&&el()},handleInstructionsCancel:()=>{N(!1),C&&f&&el()},form:w,accessToken:C,ssoConfigured:H}),(0,l.jsx)(h.Modal,{title:"Manage Allowed IP Addresses",width:800,open:A,onCancel:()=>F(!1),footer:[(0,l.jsx)(s.Button,{className:"mx-1",onClick:()=>M(!0),children:"Add IP Address"},"add"),(0,l.jsx)(s.Button,{onClick:()=>F(!1),children:"Close"},"close")],children:(0,l.jsxs)(n.Table,{children:[(0,l.jsx)(c.TableHead,{children:(0,l.jsxs)(u.TableRow,{children:[(0,l.jsx)(d.TableHeaderCell,{children:"IP Address"}),(0,l.jsx)(d.TableHeaderCell,{className:"text-right",children:"Action"})]})}),(0,l.jsx)(a.TableBody,{children:D.map((e,t)=>(0,l.jsxs)(u.TableRow,{children:[(0,l.jsx)(o.TableCell,{children:e}),(0,l.jsx)(o.TableCell,{className:"text-right",children:e!==X&&(0,l.jsx)(s.Button,{onClick:()=>ei(e),color:"red",size:"xs",children:"Delete"})})]},t))})]})}),(0,l.jsx)(h.Modal,{title:"Add Allowed IP Address",open:P,onCancel:()=>M(!1),footer:null,children:(0,l.jsxs)(g.Form,{onFinish:es,children:[(0,l.jsx)(g.Form.Item,{name:"ip",rules:[{required:!0,message:"Please enter an IP address"}],children:(0,l.jsx)(_.Input,{placeholder:"Enter IP address"})}),(0,l.jsx)(g.Form.Item,{children:(0,l.jsx)(p.Button,{htmlType:"submit",children:"Add IP Address"})})]})}),(0,l.jsx)(h.Modal,{title:"Confirm Delete",open:R,onCancel:()=>U(!1),onOk:er,footer:[(0,l.jsx)(s.Button,{className:"mx-1",onClick:()=>er(),children:"Yes"},"delete"),(0,l.jsx)(s.Button,{onClick:()=>U(!1),children:"Close"},"close")],children:(0,l.jsxs)(Q,{children:["Are you sure you want to delete the IP address: ",V,"?"]})}),(0,l.jsx)(h.Modal,{title:"UI Access Control Settings",open:B,width:600,footer:null,onOk:en,onCancel:()=>{L(!1)},children:(0,l.jsx)(K,{accessToken:C,onSuccess:()=>{en(),S.default.success("UI Access Control settings updated successfully")}})})]}),(0,l.jsxs)(i.Callout,{title:"Login without SSO",color:"teal",children:["If you need to login without sso, you can access"," ",(0,l.jsxs)("a",{href:ee,target:"_blank",rel:"noopener noreferrer",children:[(0,l.jsx)("b",{children:ee})," "]})]})]})},{key:"scim",label:"SCIM",children:(0,l.jsx)(b.default,{accessToken:C,userID:k,proxySettings:e})},{key:"ui-settings",label:"UI Settings",children:(0,l.jsx)(z,{})}];return(0,l.jsxs)("div",{className:"w-full m-2 mt-2 p-8",children:[(0,l.jsx)(Y,{level:4,children:"Admin Access "}),(0,l.jsx)(J,{children:"Go to 'Internal Users' page to add other admins."}),(0,l.jsx)(x.Tabs,{items:ea})]})}],105278)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/4360494834605341.js b/litellm/proxy/_experimental/out/_next/static/chunks/3f49d66311c27fe1.js similarity index 71% rename from litellm/proxy/_experimental/out/_next/static/chunks/4360494834605341.js rename to litellm/proxy/_experimental/out/_next/static/chunks/3f49d66311c27fe1.js index 45a4d7601a1..88c6c83da45 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/4360494834605341.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/3f49d66311c27fe1.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,552821,e=>{"use strict";var t=e.i(343794),r=e.i(271645);function n(e){var n=e.children,o=e.prefixCls,a=e.id,i=e.overlayInnerStyle,l=e.bodyClassName,s=e.className,c=e.style;return r.createElement("div",{className:(0,t.default)("".concat(o,"-content"),s),style:c},r.createElement("div",{className:(0,t.default)("".concat(o,"-inner"),l),id:a,role:"tooltip",style:i},"function"==typeof n?n():n))}e.s(["default",()=>n])},951160,815289,e=>{"use strict";e.i(247167);var t,r=e.i(392221),n=e.i(271645),o=e.i(174080),a=e.i(654310);e.i(883110);var i=e.i(611935),l=n.createContext(null),s=e.i(8211),c=e.i(174428),u=[],d=e.i(575943);function f(e){var t,r,n="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),o=document.createElement("div");o.id=n;var a=o.style;if(a.position="absolute",a.left="0",a.top="0",a.width="100px",a.height="100px",a.overflow="scroll",e){var i=getComputedStyle(e);a.scrollbarColor=i.scrollbarColor,a.scrollbarWidth=i.scrollbarWidth;var l=getComputedStyle(e,"::-webkit-scrollbar"),s=parseInt(l.width,10),c=parseInt(l.height,10);try{var u=s?"width: ".concat(l.width,";"):"",f=c?"height: ".concat(l.height,";"):"";(0,d.updateCSS)("\n#".concat(n,"::-webkit-scrollbar {\n").concat(u,"\n").concat(f,"\n}"),n)}catch(e){console.error(e),t=s,r=c}}document.body.appendChild(o);var p=e&&t&&!isNaN(t)?t:o.offsetWidth-o.clientWidth,m=e&&r&&!isNaN(r)?r:o.offsetHeight-o.clientHeight;return document.body.removeChild(o),(0,d.removeCSS)(n),{width:p,height:m}}function p(e){return"u"p,"getTargetScrollBarSize",()=>m],815289);var h="rc-util-locker-".concat(Date.now()),g=0,v=function(e){return!1!==e&&((0,a.default)()&&e?"string"==typeof e?document.querySelector(e):"function"==typeof e?e():e:null)},y=n.forwardRef(function(e,t){var f,p,y,b=e.open,w=e.autoLock,$=e.getContainer,C=(e.debug,e.autoDestroy),E=void 0===C||C,x=e.children,S=n.useState(b),k=(0,r.default)(S,2),j=k[0],O=k[1],T=j||b;n.useEffect(function(){(E||b)&&O(b)},[b,E]);var F=n.useState(function(){return v($)}),_=(0,r.default)(F,2),I=_[0],P=_[1];n.useEffect(function(){var e=v($);P(null!=e?e:null)});var N=function(e,t){var o=n.useState(function(){return(0,a.default)()?document.createElement("div"):null}),i=(0,r.default)(o,1)[0],d=n.useRef(!1),f=n.useContext(l),p=n.useState(u),m=(0,r.default)(p,2),h=m[0],g=m[1],v=f||(d.current?void 0:function(e){g(function(t){return[e].concat((0,s.default)(t))})});function y(){i.parentElement||document.body.appendChild(i),d.current=!0}function b(){var e;null==(e=i.parentElement)||e.removeChild(i),d.current=!1}return(0,c.default)(function(){return e?f?f(y):y():b(),b},[e]),(0,c.default)(function(){h.length&&(h.forEach(function(e){return e()}),g(u))},[h]),[i,v]}(T&&!I,0),R=(0,r.default)(N,2),M=R[0],B=R[1],A=null!=I?I:M;f=!!(w&&b&&(0,a.default)()&&(A===M||A===document.body)),p=n.useState(function(){return g+=1,"".concat(h,"_").concat(g)}),y=(0,r.default)(p,1)[0],(0,c.default)(function(){if(f){var e=m(document.body).width,t=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;(0,d.updateCSS)("\nhtml body {\n overflow-y: hidden;\n ".concat(t?"width: calc(100% - ".concat(e,"px);"):"","\n}"),y)}else(0,d.removeCSS)(y);return function(){(0,d.removeCSS)(y)}},[f,y]);var z=null;x&&(0,i.supportRef)(x)&&t&&(z=x.ref);var L=(0,i.useComposeRef)(z,t);if(!T||!(0,a.default)()||void 0===I)return null;var H=!1===A,D=x;return t&&(D=n.cloneElement(x,{ref:L})),n.createElement(l.Provider,{value:B},H?D:(0,o.createPortal)(D,A))});e.s(["default",0,y],951160)},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",()=>function e(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(n,function(r){(null!=r||o.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,o)):a.push(r))}),a}])},430073,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645),n=e.i(876556);e.i(883110);var o=e.i(209428),a=e.i(410160),i=e.i(279697),l=e.i(611935),s=r.createContext(null),c=function(){if("u">typeof Map)return Map;function e(e,t){var r=-1;return e.some(function(e,n){return e[0]===t&&(r=n,!0)}),r}function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var r=e(this.__entries__,t),n=this.__entries__[r];return n&&n[1]},t.prototype.set=function(t,r){var n=e(this.__entries__,t);~n?this.__entries__[n][1]=r:this.__entries__.push([t,r])},t.prototype.delete=function(t){var r=this.__entries__,n=e(r,t);~n&&r.splice(n,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var r=0,n=this.__entries__;rtypeof window&&"u">typeof document&&window.document===document,d=e.g.Math===Math?e.g:"u">typeof self&&self.Math===Math?self:"u">typeof window&&window.Math===Math?window:Function("return this")(),f="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(d):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},p=["top","right","bottom","left","width","height","size","weight"],m="u">typeof MutationObserver,h=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var r=!1,n=!1,o=0;function a(){r&&(r=!1,e()),n&&l()}function i(){f(a)}function l(){var e=Date.now();if(r){if(e-o<2)return;n=!0}else r=!0,n=!1,setTimeout(i,20);o=e}return l}(this.refresh.bind(this),0)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,r=t.indexOf(e);~r&&t.splice(r,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){u&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),m?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){u&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,r=void 0===t?"":t;p.some(function(e){return!!~r.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),g=function(e,t){for(var r=0,n=Object.keys(t);rtypeof SVGGraphicsElement?function(e){return e instanceof v(e).SVGGraphicsElement}:function(e){return e instanceof v(e).SVGElement&&"function"==typeof e.getBBox};function C(e,t,r,n){return{x:e,y:t,width:r,height:n}}var E=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=C(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=function(e){if(!u)return y;if($(e)){var t;return C(0,0,(t=e.getBBox()).width,t.height)}return function(e){var t,r=e.clientWidth,n=e.clientHeight;if(!r&&!n)return y;var o=v(e).getComputedStyle(e),a=function(e){for(var t={},r=0,n=["top","right","bottom","left"];rtypeof DOMRectReadOnly?DOMRectReadOnly:Object).prototype),{x:r,y:n,width:o,height:a,top:n,right:r+o,bottom:a+n,left:r}),i);g(this,{target:e,contentRect:l})},S=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new c,"function"!=typeof e)throw TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");if(!("u"0},e}(),k="u">typeof WeakMap?new WeakMap:new c,j=function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var r=new S(t,h.getInstance(),this);k.set(this,r)};["observe","unobserve","disconnect"].forEach(function(e){j.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}});var O=void 0!==d.ResizeObserver?d.ResizeObserver:j,T=new Map,F=new O(function(e){e.forEach(function(e){var t,r=e.target;null==(t=T.get(r))||t.forEach(function(e){return e(r)})})}),_=e.i(278409),I=e.i(233848),P=e.i(868917),N=e.i(674813),R=function(e){(0,P.default)(r,e);var t=(0,N.default)(r);function r(){return(0,_.default)(this,r),t.apply(this,arguments)}return(0,I.default)(r,[{key:"render",value:function(){return this.props.children}}]),r}(r.Component),M=r.forwardRef(function(e,t){var n=e.children,c=e.disabled,u=r.useRef(null),d=r.useRef(null),f=r.useContext(s),p="function"==typeof n,m=p?n(u):n,h=r.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),g=!p&&r.isValidElement(m)&&(0,l.supportRef)(m),v=g?(0,l.getNodeRef)(m):null,y=(0,l.useComposeRef)(v,u),b=function(){var e;return(0,i.default)(u.current)||(u.current&&"object"===(0,a.default)(u.current)?(0,i.default)(null==(e=u.current)?void 0:e.nativeElement):null)||(0,i.default)(d.current)};r.useImperativeHandle(t,function(){return b()});var w=r.useRef(e);w.current=e;var $=r.useCallback(function(e){var t=w.current,r=t.onResize,n=t.data,a=e.getBoundingClientRect(),i=a.width,l=a.height,s=e.offsetWidth,c=e.offsetHeight,u=Math.floor(i),d=Math.floor(l);if(h.current.width!==u||h.current.height!==d||h.current.offsetWidth!==s||h.current.offsetHeight!==c){var p={width:u,height:d,offsetWidth:s,offsetHeight:c};h.current=p;var m=s===Math.round(i)?i:s,g=c===Math.round(l)?l:c,v=(0,o.default)((0,o.default)({},p),{},{offsetWidth:m,offsetHeight:g});null==f||f(v,e,n),r&&Promise.resolve().then(function(){r(v,e)})}},[]);return r.useEffect(function(){var e=b();return e&&!c&&(T.has(e)||(T.set(e,new Set),F.observe(e)),T.get(e).add($)),function(){T.has(e)&&(T.get(e).delete($),!T.get(e).size&&(F.unobserve(e),T.delete(e)))}},[u.current,c]),r.createElement(R,{ref:d},g?r.cloneElement(m,{ref:y}):m)}),B=r.forwardRef(function(e,o){var a=e.children;return("function"==typeof a?[a]:(0,n.default)(a)).map(function(n,a){var i=(null==n?void 0:n.key)||"".concat("rc-observer-key","-").concat(a);return r.createElement(M,(0,t.default)({},e,{key:i,ref:0===a?o:void 0}),n)})});B.Collection=function(e){var t=e.children,n=e.onBatchResize,o=r.useRef(0),a=r.useRef([]),i=r.useContext(s),l=r.useCallback(function(e,t,r){o.current+=1;var l=o.current;a.current.push({size:e,element:t,data:r}),Promise.resolve().then(function(){l===o.current&&(null==n||n(a.current),a.current=[])}),null==i||i(e,t,r)},[n,i]);return r.createElement(s.Provider,{value:l},t)},e.s(["default",0,B],430073)},981444,e=>{"use strict";var t=e.i(392221),r=e.i(209428),n=e.i(271645),o=0,a=(0,r.default)({},n).useId;let i=a?function(e){var t=a();return e||t}:function(e){var r=n.useState("ssr-id"),a=(0,t.default)(r,2),i=a[0],l=a[1];return(n.useEffect(function(){var e=o;o+=1,l("rc_unique_".concat(e))},[]),e)?e:i};e.s(["default",0,i])},614761,e=>{"use strict";e.s(["default",0,function(){if("u"{"use strict";e.i(247167);var t=e.i(931067),r=e.i(209428),n=e.i(392221),o=e.i(343794),a=e.i(361275),i=e.i(430073),l=e.i(174428),s=e.i(611935),c=e.i(271645);function u(e){var t=e.prefixCls,r=e.align,n=e.arrow,a=e.arrowPos,i=n||{},l=i.className,s=i.content,u=a.x,d=a.y,f=c.useRef();if(!r||!r.points)return null;var p={position:"absolute"};if(!1!==r.autoArrow){var m=r.points[0],h=r.points[1],g=m[0],v=m[1],y=h[0],b=h[1];g!==y&&["t","b"].includes(g)?"t"===g?p.top=0:p.bottom=0:p.top=void 0===d?0:d,v!==b&&["l","r"].includes(v)?"l"===v?p.left=0:p.right=0:p.left=void 0===u?0:u}return c.createElement("div",{ref:f,className:(0,o.default)("".concat(t,"-arrow"),l),style:p},s)}function d(e){var r=e.prefixCls,n=e.open,i=e.zIndex,l=e.mask,s=e.motion;return l?c.createElement(a.default,(0,t.default)({},s,{motionAppear:!0,visible:n,removeOnLeave:!0}),function(e){var t=e.className;return c.createElement("div",{style:{zIndex:i},className:(0,o.default)("".concat(r,"-mask"),t)})}):null}var f=c.memo(function(e){return e.children},function(e,t){return t.cache}),p=c.forwardRef(function(e,p){var m=e.popup,h=e.className,g=e.prefixCls,v=e.style,y=e.target,b=e.onVisibleChanged,w=e.open,$=e.keepDom,C=e.fresh,E=e.onClick,x=e.mask,S=e.arrow,k=e.arrowPos,j=e.align,O=e.motion,T=e.maskMotion,F=e.forceRender,_=e.getPopupContainer,I=e.autoDestroy,P=e.portal,N=e.zIndex,R=e.onMouseEnter,M=e.onMouseLeave,B=e.onPointerEnter,A=e.onPointerDownCapture,z=e.ready,L=e.offsetX,H=e.offsetY,D=e.offsetR,V=e.offsetB,W=e.onAlign,G=e.onPrepare,U=e.stretch,q=e.targetWidth,J=e.targetHeight,K="function"==typeof m?m():m,X=w||$,Y=(null==_?void 0:_.length)>0,Z=c.useState(!_||!Y),Q=(0,n.default)(Z,2),ee=Q[0],et=Q[1];if((0,l.default)(function(){!ee&&Y&&y&&et(!0)},[ee,Y,y]),!ee)return null;var er="auto",en={left:"-1000vw",top:"-1000vh",right:er,bottom:er};if(z||!w){var eo,ea=j.points,ei=j.dynamicInset||(null==(eo=j._experimental)?void 0:eo.dynamicInset),el=ei&&"r"===ea[0][1],es=ei&&"b"===ea[0][0];el?(en.right=D,en.left=er):(en.left=L,en.right=er),es?(en.bottom=V,en.top=er):(en.top=H,en.bottom=er)}var ec={};return U&&(U.includes("height")&&J?ec.height=J:U.includes("minHeight")&&J&&(ec.minHeight=J),U.includes("width")&&q?ec.width=q:U.includes("minWidth")&&q&&(ec.minWidth=q)),w||(ec.pointerEvents="none"),c.createElement(P,{open:F||X,getContainer:_&&function(){return _(y)},autoDestroy:I},c.createElement(d,{prefixCls:g,open:w,zIndex:N,mask:x,motion:T}),c.createElement(i.default,{onResize:W,disabled:!w},function(e){return c.createElement(a.default,(0,t.default)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:F,leavedClassName:"".concat(g,"-hidden")},O,{onAppearPrepare:G,onEnterPrepare:G,visible:w,onVisibleChanged:function(e){var t;null==O||null==(t=O.onVisibleChanged)||t.call(O,e),b(e)}}),function(t,n){var a=t.className,i=t.style,l=(0,o.default)(g,a,h);return c.createElement("div",{ref:(0,s.composeRef)(e,p,n),className:l,style:(0,r.default)((0,r.default)((0,r.default)((0,r.default)({"--arrow-x":"".concat(k.x||0,"px"),"--arrow-y":"".concat(k.y||0,"px")},en),ec),i),{},{boxSizing:"border-box",zIndex:N},v),onMouseEnter:R,onMouseLeave:M,onPointerEnter:B,onClick:E,onPointerDownCapture:A},S&&c.createElement(u,{prefixCls:g,arrow:S,arrowPos:k,align:j}),c.createElement(f,{cache:!w&&!C},K))})}))});e.s(["default",0,p],546004);var m=c.forwardRef(function(e,t){var r=e.children,n=e.getTriggerDOMNode,o=(0,s.supportRef)(r),a=c.useCallback(function(e){(0,s.fillRef)(t,n?n(e):e)},[n]),i=(0,s.useComposeRef)(a,(0,s.getNodeRef)(r));return o?c.cloneElement(r,{ref:i}):r});e.s(["default",0,m],508811);var h=c.createContext(null);function g(e){return e?Array.isArray(e)?e:[e]:[]}function v(e,t,r,n){return c.useMemo(function(){var o=g(null!=r?r:t),a=g(null!=n?n:t),i=new Set(o),l=new Set(a);return e&&(i.has("hover")&&(i.delete("hover"),i.add("click")),l.has("hover")&&(l.delete("hover"),l.add("click"))),[i,l]},[e,t,r,n])}e.s(["default",0,h],976637),e.s(["default",()=>v],920)},606262,e=>{"use strict";e.s(["default",0,function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),r=t.width,n=t.height;if(r||n)return!0}if(e.getBoundingClientRect){var o=e.getBoundingClientRect(),a=o.width,i=o.height;if(a||i)return!0}}return!1}])},707067,e=>{"use strict";e.i(247167);var t=e.i(209428),r=e.i(392221),n=e.i(703923),o=e.i(951160),a=e.i(343794),i=e.i(430073),l=e.i(279697),s=e.i(909887),c=e.i(175066),u=e.i(981444),d=e.i(174428),f=e.i(614761),p=e.i(271645),m=e.i(546004),h=e.i(508811),g=e.i(976637),v=e.i(920),y=e.i(606262);function b(e,t,r,n){return t||(r?{motionName:"".concat(e,"-").concat(r)}:n?{motionName:n}:null)}function w(e){return e.ownerDocument.defaultView}function $(e){for(var t=[],r=null==e?void 0:e.parentElement,n=["hidden","scroll","clip","auto"];r;){var o=w(r).getComputedStyle(r);[o.overflowX,o.overflowY,o.overflow].some(function(e){return n.includes(e)})&&t.push(r),r=r.parentElement}return t}function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Number.isNaN(e)?t:e}function E(e){return C(parseFloat(e),0)}function x(e,r){var n=(0,t.default)({},e);return(r||[]).forEach(function(e){if(!(e instanceof HTMLBodyElement||e instanceof HTMLHtmlElement)){var t=w(e).getComputedStyle(e),r=t.overflow,o=t.overflowClipMargin,a=t.borderTopWidth,i=t.borderBottomWidth,l=t.borderLeftWidth,s=t.borderRightWidth,c=e.getBoundingClientRect(),u=e.offsetHeight,d=e.clientHeight,f=e.offsetWidth,p=e.clientWidth,m=E(a),h=E(i),g=E(l),v=E(s),y=C(Math.round(c.width/f*1e3)/1e3),b=C(Math.round(c.height/u*1e3)/1e3),$=m*b,x=g*y,S=0,k=0;if("clip"===r){var j=E(o);S=j*y,k=j*b}var O=c.x+x-S,T=c.y+$-k,F=O+c.width+2*S-x-v*y-(f-p-g-v)*y,_=T+c.height+2*k-$-h*b-(u-d-m-h)*b;n.left=Math.max(n.left,O),n.top=Math.max(n.top,T),n.right=Math.min(n.right,F),n.bottom=Math.min(n.bottom,_)}}),n}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r="".concat(t),n=r.match(/^(.*)\%$/);return n?e*(parseFloat(n[1])/100):parseFloat(r)}function k(e,t){var n=(0,r.default)(t||[],2),o=n[0],a=n[1];return[S(e.width,o),S(e.height,a)]}function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return[e[0],e[1]]}function O(e,t){var r,n=t[0],o=t[1];return r="t"===n?e.y:"b"===n?e.y+e.height:e.y+e.height/2,{x:"l"===o?e.x:"r"===o?e.x+e.width:e.x+e.width/2,y:r}}function T(e,t){var r={t:"b",b:"t",l:"r",r:"l"};return e.map(function(e,n){return n===t?r[e]||"c":e}).join("")}var F=e.i(8211);e.i(883110);var _=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];let I=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.default;return p.forwardRef(function(o,E){var S,I,P,N,R,M,B,A,z,L,H,D,V,W,G,U,q=o.prefixCls,J=void 0===q?"rc-trigger-popup":q,K=o.children,X=o.action,Y=o.showAction,Z=o.hideAction,Q=o.popupVisible,ee=o.defaultPopupVisible,et=o.onPopupVisibleChange,er=o.afterPopupVisibleChange,en=o.mouseEnterDelay,eo=o.mouseLeaveDelay,ea=void 0===eo?.1:eo,ei=o.focusDelay,el=o.blurDelay,es=o.mask,ec=o.maskClosable,eu=o.getPopupContainer,ed=o.forceRender,ef=o.autoDestroy,ep=o.destroyPopupOnHide,em=o.popup,eh=o.popupClassName,eg=o.popupStyle,ev=o.popupPlacement,ey=o.builtinPlacements,eb=void 0===ey?{}:ey,ew=o.popupAlign,e$=o.zIndex,eC=o.stretch,eE=o.getPopupClassNameFromAlign,ex=o.fresh,eS=o.alignPoint,ek=o.onPopupClick,ej=o.onPopupAlign,eO=o.arrow,eT=o.popupMotion,eF=o.maskMotion,e_=o.popupTransitionName,eI=o.popupAnimation,eP=o.maskTransitionName,eN=o.maskAnimation,eR=o.className,eM=o.getTriggerDOMNode,eB=(0,n.default)(o,_),eA=p.useState(!1),ez=(0,r.default)(eA,2),eL=ez[0],eH=ez[1];(0,d.default)(function(){eH((0,f.default)())},[]);var eD=p.useRef({}),eV=p.useContext(g.default),eW=p.useMemo(function(){return{registerSubPopup:function(e,t){eD.current[e]=t,null==eV||eV.registerSubPopup(e,t)}}},[eV]),eG=(0,u.default)(),eU=p.useState(null),eq=(0,r.default)(eU,2),eJ=eq[0],eK=eq[1],eX=p.useRef(null),eY=(0,c.default)(function(e){eX.current=e,(0,l.isDOM)(e)&&eJ!==e&&eK(e),null==eV||eV.registerSubPopup(eG,e)}),eZ=p.useState(null),eQ=(0,r.default)(eZ,2),e0=eQ[0],e1=eQ[1],e2=p.useRef(null),e4=(0,c.default)(function(e){(0,l.isDOM)(e)&&e0!==e&&(e1(e),e2.current=e)}),e6=p.Children.only(K),e3=(null==e6?void 0:e6.props)||{},e7={},e5=(0,c.default)(function(e){var t,r;return(null==e0?void 0:e0.contains(e))||(null==(t=(0,s.getShadowRoot)(e0))?void 0:t.host)===e||e===e0||(null==eJ?void 0:eJ.contains(e))||(null==(r=(0,s.getShadowRoot)(eJ))?void 0:r.host)===e||e===eJ||Object.values(eD.current).some(function(t){return(null==t?void 0:t.contains(e))||e===t})}),e9=b(J,eT,eI,e_),e8=b(J,eF,eN,eP),te=p.useState(ee||!1),tt=(0,r.default)(te,2),tr=tt[0],tn=tt[1],to=null!=Q?Q:tr,ta=(0,c.default)(function(e){void 0===Q&&tn(e)});(0,d.default)(function(){tn(Q||!1)},[Q]);var ti=p.useRef(to);ti.current=to;var tl=p.useRef([]);tl.current=[];var ts=(0,c.default)(function(e){var t;ta(e),(null!=(t=tl.current[tl.current.length-1])?t:to)!==e&&(tl.current.push(e),null==et||et(e))}),tc=p.useRef(),tu=function(){clearTimeout(tc.current)},td=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;tu(),0===t?ts(e):tc.current=setTimeout(function(){ts(e)},1e3*t)};p.useEffect(function(){return tu},[]);var tf=p.useState(!1),tp=(0,r.default)(tf,2),tm=tp[0],th=tp[1];(0,d.default)(function(e){(!e||to)&&th(!0)},[to]);var tg=p.useState(null),tv=(0,r.default)(tg,2),ty=tv[0],tb=tv[1],tw=p.useState(null),t$=(0,r.default)(tw,2),tC=t$[0],tE=t$[1],tx=function(e){tE([e.clientX,e.clientY])},tS=(S=eS&&null!==tC?tC:e0,I=p.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:eb[ev]||{}}),N=(P=(0,r.default)(I,2))[0],R=P[1],M=p.useRef(0),B=p.useMemo(function(){return eJ?$(eJ):[]},[eJ]),A=p.useRef({}),to||(A.current={}),z=(0,c.default)(function(){if(eJ&&S&&to){var e=eJ.ownerDocument,n=w(eJ),o=n.getComputedStyle(eJ).position,a=eJ.style.left,i=eJ.style.top,s=eJ.style.right,c=eJ.style.bottom,u=eJ.style.overflow,d=(0,t.default)((0,t.default)({},eb[ev]),ew),f=e.createElement("div");if(null==(v=eJ.parentElement)||v.appendChild(f),f.style.left="".concat(eJ.offsetLeft,"px"),f.style.top="".concat(eJ.offsetTop,"px"),f.style.position=o,f.style.height="".concat(eJ.offsetHeight,"px"),f.style.width="".concat(eJ.offsetWidth,"px"),eJ.style.left="0",eJ.style.top="0",eJ.style.right="auto",eJ.style.bottom="auto",eJ.style.overflow="hidden",Array.isArray(S))F={x:S[0],y:S[1],width:0,height:0};else{var p,m,h,g,v,b,$,E,F,_,I,P=S.getBoundingClientRect();P.x=null!=(_=P.x)?_:P.left,P.y=null!=(I=P.y)?I:P.top,F={x:P.x,y:P.y,width:P.width,height:P.height}}var N=eJ.getBoundingClientRect(),M=n.getComputedStyle(eJ),z=M.height,L=M.width;N.x=null!=(b=N.x)?b:N.left,N.y=null!=($=N.y)?$:N.top;var H=e.documentElement,D=H.clientWidth,V=H.clientHeight,W=H.scrollWidth,G=H.scrollHeight,U=H.scrollTop,q=H.scrollLeft,J=N.height,K=N.width,X=F.height,Y=F.width,Z=d.htmlRegion,Q="visible",ee="visibleFirst";"scroll"!==Z&&Z!==ee&&(Z=Q);var et=Z===ee,er=x({left:-q,top:-U,right:W-q,bottom:G-U},B),en=x({left:0,top:0,right:D,bottom:V},B),eo=Z===Q?en:er,ea=et?en:eo;eJ.style.left="auto",eJ.style.top="auto",eJ.style.right="0",eJ.style.bottom="0";var ei=eJ.getBoundingClientRect();eJ.style.left=a,eJ.style.top=i,eJ.style.right=s,eJ.style.bottom=c,eJ.style.overflow=u,null==(E=eJ.parentElement)||E.removeChild(f);var el=C(Math.round(K/parseFloat(L)*1e3)/1e3),es=C(Math.round(J/parseFloat(z)*1e3)/1e3);if(!(0===el||0===es||(0,l.isDOM)(S)&&!(0,y.default)(S))){var ec=d.offset,eu=d.targetOffset,ed=k(N,ec),ef=(0,r.default)(ed,2),ep=ef[0],em=ef[1],eh=k(F,eu),eg=(0,r.default)(eh,2),ey=eg[0],e$=eg[1];F.x-=ey,F.y-=e$;var eC=d.points||[],eE=(0,r.default)(eC,2),ex=eE[0],eS=j(eE[1]),ek=j(ex),eO=O(F,eS),eT=O(N,ek),eF=(0,t.default)({},d),e_=eO.x-eT.x+ep,eI=eO.y-eT.y+em,eP=td(e_,eI),eN=td(e_,eI,en),eR=O(F,["t","l"]),eM=O(N,["t","l"]),eB=O(F,["b","r"]),eA=O(N,["b","r"]),ez=d.overflow||{},eL=ez.adjustX,eH=ez.adjustY,eD=ez.shiftX,eV=ez.shiftY,eW=function(e){return"boolean"==typeof e?e:e>=0};tf();var eG=eW(eH),eU=ek[0]===eS[0];if(eG&&"t"===ek[0]&&(m>ea.bottom||A.current.bt)){var eq=eI;eU?eq-=J-X:eq=eR.y-eA.y-em;var eK=td(e_,eq),eX=td(e_,eq,en);eK>eP||eK===eP&&(!et||eX>=eN)?(A.current.bt=!0,eI=eq,em=-em,eF.points=[T(ek,0),T(eS,0)]):A.current.bt=!1}if(eG&&"b"===ek[0]&&(peP||eZ===eP&&(!et||eQ>=eN)?(A.current.tb=!0,eI=eY,em=-em,eF.points=[T(ek,0),T(eS,0)]):A.current.tb=!1}var e0=eW(eL),e1=ek[1]===eS[1];if(e0&&"l"===ek[1]&&(g>ea.right||A.current.rl)){var e2=e_;e1?e2-=K-Y:e2=eR.x-eA.x-ep;var e4=td(e2,eI),e6=td(e2,eI,en);e4>eP||e4===eP&&(!et||e6>=eN)?(A.current.rl=!0,e_=e2,ep=-ep,eF.points=[T(ek,1),T(eS,1)]):A.current.rl=!1}if(e0&&"r"===ek[1]&&(heP||e7===eP&&(!et||e5>=eN)?(A.current.lr=!0,e_=e3,ep=-ep,eF.points=[T(ek,1),T(eS,1)]):A.current.lr=!1}tf();var e9=!0===eD?0:eD;"number"==typeof e9&&(hen.right&&(e_-=g-en.right-ep,F.x>en.right-e9&&(e_+=F.x-en.right+e9)));var e8=!0===eV?0:eV;"number"==typeof e8&&(pen.bottom&&(eI-=m-en.bottom-em,F.y>en.bottom-e8&&(eI+=F.y-en.bottom+e8)));var te=N.x+e_,tt=N.y+eI,tr=F.x,tn=F.y,ta=Math.max(te,tr),ti=Math.min(te+K,tr+Y),tl=Math.max(tt,tn),ts=Math.min(tt+J,tn+X);null==ej||ej(eJ,eF);var tc=ei.right-N.x-(e_+N.width),tu=ei.bottom-N.y-(eI+N.height);1===el&&(e_=Math.floor(e_),tc=Math.floor(tc)),1===es&&(eI=Math.floor(eI),tu=Math.floor(tu)),R({ready:!0,offsetX:e_/el,offsetY:eI/es,offsetR:tc/el,offsetB:tu/es,arrowX:((ta+ti)/2-te)/el,arrowY:((tl+ts)/2-tt)/es,scaleX:el,scaleY:es,align:eF})}function td(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eo,n=N.x+e,o=N.y+t,a=Math.max(n,r.left),i=Math.max(o,r.top);return Math.max(0,(Math.min(n+K,r.right)-a)*(Math.min(o+J,r.bottom)-i))}function tf(){m=(p=N.y+eI)+J,g=(h=N.x+e_)+K}}}),L=function(){R(function(e){return(0,t.default)((0,t.default)({},e),{},{ready:!1})})},(0,d.default)(L,[ev]),(0,d.default)(function(){to||L()},[to]),[N.ready,N.offsetX,N.offsetY,N.offsetR,N.offsetB,N.arrowX,N.arrowY,N.scaleX,N.scaleY,N.align,function(){M.current+=1;var e=M.current;Promise.resolve().then(function(){M.current===e&&z()})}]),tk=(0,r.default)(tS,11),tj=tk[0],tO=tk[1],tT=tk[2],tF=tk[3],t_=tk[4],tI=tk[5],tP=tk[6],tN=tk[7],tR=tk[8],tM=tk[9],tB=tk[10],tA=(0,v.default)(eL,void 0===X?"hover":X,Y,Z),tz=(0,r.default)(tA,2),tL=tz[0],tH=tz[1],tD=tL.has("click"),tV=tH.has("click")||tH.has("contextMenu"),tW=(0,c.default)(function(){tm||tB()});H=function(){ti.current&&eS&&tV&&td(!1)},(0,d.default)(function(){if(to&&e0&&eJ){var e=$(e0),t=$(eJ),r=w(eJ),n=new Set([r].concat((0,F.default)(e),(0,F.default)(t)));function o(){tW(),H()}return n.forEach(function(e){e.addEventListener("scroll",o,{passive:!0})}),r.addEventListener("resize",o,{passive:!0}),tW(),function(){n.forEach(function(e){e.removeEventListener("scroll",o),r.removeEventListener("resize",o)})}}},[to,e0,eJ]),(0,d.default)(function(){tW()},[tC,ev]),(0,d.default)(function(){to&&!(null!=eb&&eb[ev])&&tW()},[JSON.stringify(ew)]);var tG=p.useMemo(function(){var e=function(e,t,r,n){for(var o=r.points,a=Object.keys(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;return r?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}(null==(l=e[s])?void 0:l.points,o,n))return"".concat(t,"-placement-").concat(s)}return""}(eb,J,tM,eS);return(0,a.default)(e,null==eE?void 0:eE(tM))},[tM,eE,eb,J,eS]);p.useImperativeHandle(E,function(){return{nativeElement:e2.current,popupElement:eX.current,forceAlign:tW}});var tU=p.useState(0),tq=(0,r.default)(tU,2),tJ=tq[0],tK=tq[1],tX=p.useState(0),tY=(0,r.default)(tX,2),tZ=tY[0],tQ=tY[1],t0=function(){if(eC&&e0){var e=e0.getBoundingClientRect();tK(e.width),tQ(e.height)}};function t1(e,t,r,n){e7[e]=function(o){var a;null==n||n(o),td(t,r);for(var i=arguments.length,l=Array(i>1?i-1:0),s=1;s1?r-1:0),o=1;o1?r-1:0),o=1;o{"use strict";var t=e.i(552821),r=e.i(931067),n=e.i(209428),o=e.i(703923),a=e.i(707067),i=e.i(343794),l=e.i(271645),s={shiftX:64,adjustY:1},c={adjustX:1,shiftY:!0},u=[0,0],d={left:{points:["cr","cl"],overflow:c,offset:[-4,0],targetOffset:u},right:{points:["cl","cr"],overflow:c,offset:[4,0],targetOffset:u},top:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:u},bottom:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:u},topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:u},leftTop:{points:["tr","tl"],overflow:c,offset:[-4,0],targetOffset:u},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:u},rightTop:{points:["tl","tr"],overflow:c,offset:[4,0],targetOffset:u},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:u},rightBottom:{points:["bl","br"],overflow:c,offset:[4,0],targetOffset:u},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:u},leftBottom:{points:["br","bl"],overflow:c,offset:[-4,0],targetOffset:u}},f=e.i(981444),p=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow","classNames","styles"];let m=(0,l.forwardRef)(function(e,s){var c,u,m,h=e.overlayClassName,g=e.trigger,v=e.mouseEnterDelay,y=e.mouseLeaveDelay,b=e.overlayStyle,w=e.prefixCls,$=void 0===w?"rc-tooltip":w,C=e.children,E=e.onVisibleChange,x=e.afterVisibleChange,S=e.transitionName,k=e.animation,j=e.motion,O=e.placement,T=e.align,F=e.destroyTooltipOnHide,_=e.defaultVisible,I=e.getTooltipContainer,P=e.overlayInnerStyle,N=(e.arrowContent,e.overlay),R=e.id,M=e.showArrow,B=e.classNames,A=e.styles,z=(0,o.default)(e,p),L=(0,f.default)(R),H=(0,l.useRef)(null);(0,l.useImperativeHandle)(s,function(){return H.current});var D=(0,n.default)({},z);return"visible"in e&&(D.popupVisible=e.visible),l.createElement(a.default,(0,r.default)({popupClassName:(0,i.default)(h,null==B?void 0:B.root),prefixCls:$,popup:function(){return l.createElement(t.default,{key:"content",prefixCls:$,id:L,bodyClassName:null==B?void 0:B.body,overlayInnerStyle:(0,n.default)((0,n.default)({},P),null==A?void 0:A.body)},N)},action:void 0===g?["hover"]:g,builtinPlacements:d,popupPlacement:void 0===O?"right":O,ref:H,popupAlign:void 0===T?{}:T,getPopupContainer:I,onPopupVisibleChange:E,afterPopupVisibleChange:x,popupTransitionName:S,popupAnimation:k,popupMotion:j,defaultPopupVisible:_,autoDestroy:void 0!==F&&F,mouseLeaveDelay:void 0===y?.1:y,popupStyle:(0,n.default)((0,n.default)({},b),null==A?void 0:A.root),mouseEnterDelay:void 0===v?0:v,arrow:void 0===M||M},D),(u=(null==(c=l.Children.only(C))?void 0:c.props)||{},m=(0,n.default)((0,n.default)({},u),{},{"aria-describedby":N?L:null}),l.cloneElement(C,m)))});e.s(["default",0,m],793154)},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var n=e.i(931067),o=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),m=e.i(211577),h=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",()=>y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var E=e.i(410160);function x(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=x(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&(0,j.default)(o,r.prototype),o}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var F=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function I(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n=a)return e;switch(e){case"%s":return String(r[o++]);case"%d":return Number(r[o++]);case"%j":try{return JSON.stringify(r[o++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function N(e,t,r){var n=0,o=e.length;!function a(i){if(i&&i.length)return void r(i);var l=n;n+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,D=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,E.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(H)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(D)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let G=z,U=function(e,t,r,n,o){(/^\s+$/.test(t)||""===t)&&n.push(I(o.messages.whitespace,e.fullField))},q=function(e,t,r,n,o){if(e.required&&void 0===t)return void z(e,t,r,n,o);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||n.push(I(o.messages.types[a],e.fullField,e.type)):a&&(0,E.default)(t)!==e.type&&n.push(I(o.messages.types[a],e.fullField,e.type))},J=function(e,t,r,n,o){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&n.push(I(o.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?n.push(I(o.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&n.push(I(o.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,n,o){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&n.push(I(o.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,n,o){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||n.push(I(o.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||n.push(I(o.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Y=function(e,t,r,n,o){var a=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();G(e,t,n,i,o,a),P(t,a)||q(e,t,n,i,o)}r(i)},Z={string:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();G(e,t,n,a,o,"string"),P(t,"string")||(q(e,t,n,a,o),J(e,t,n,a,o),X(e,t,n,a,o),!0===e.whitespace&&U(e,t,n,a,o))}r(a)},method:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},number:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},boolean:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},regexp:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),P(t)||q(e,t,n,a,o)}r(a)},integer:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},float:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},array:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();G(e,t,n,a,o,"array"),null!=t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},object:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},enum:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&K(e,t,n,a,o)}r(a)},pattern:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();G(e,t,n,a,o),P(t,"string")||X(e,t,n,a,o)}r(a)},date:function(e,t,r,n,o){var a,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();G(e,t,n,i,o),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,n,i,o),a&&J(e,a.getTime(),n,i,o))}r(i)},url:Y,hex:Y,email:Y,tel:Y,required:function(e,t,r,n,o){var a=[],i=Array.isArray(t)?"array":(0,E.default)(t);G(e,t,n,a,o,i),r(a)},any:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o)}r(a)}};var Q=function(){function e(t){(0,c.default)(this,e),(0,m.default)(this,"rules",null),(0,m.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,E.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var n=e[r];t.rules[r]=Array.isArray(n)?n:[n]})}},{key:"messages",value:function(e){return e&&(this._messages=B(x(),e)),this._messages}},{key:"validate",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=n,c=o;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=x()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var n=r.rules[e],o=a[e];n.forEach(function(n){var i=n;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(o=a[e]=i.transform(o))&&(i.type=i.type||(Array.isArray(o)?"array":(0,E.default)(o)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:o,source:a,field:e}))})});var f={};return function(e,t,r,n,o){if(t.first){var a=new Promise(function(t,a){var i;N((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return n(e),e.length?a(new R(e,_(e))):t(o)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return n(d),d.length?a(new R(d,_(d))):t(o)};l.length||(n(d),t(o)),l.forEach(function(t){var n=e[t];if(-1!==i.indexOf(t))N(n,r,f);else{var o=[],a=0,l=n.length;function c(e){o.push.apply(o,(0,s.default)(e||[])),++a===l&&f(o)}n.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var n,o,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,E.default)(u.fields)||"object"===(0,E.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function m(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=Array.isArray(n)?n:[n];!i.suppressWarning&&o.length&&e.warning("async-validator:",o),o.length&&void 0!==u.message&&null!==u.message&&(o=[].concat(u.message));var c=o.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,I(i.messages.required,u.field))]),r(c);var m={};u.defaultField&&Object.keys(t.value).map(function(e){m[e]=u.defaultField});var h={};Object.keys(m=(0,l.default)((0,l.default)({},m),t.rule.fields)).forEach(function(e){var t=m[e],r=Array.isArray(t)?t:[t];h[e]=r.map(p.bind(null,e))});var g=new e(h);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)n=u.asyncValidator(u,t.value,m,t.source,i);else if(u.validator){try{n=u.validator(u,t.value,m,t.source,i)}catch(e){null==(o=(c=console).error)||o.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),m(e.message)}!0===n?m():!1===n?m("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):n instanceof Array?m(n):n instanceof Error&&m(n.message)}n&&n.then&&n.then(function(){return m()},function(e){return m(e)})},function(e){for(var t=[],r={},n=0;n0)){e.next=23;break}return e.next=21,Promise.all(n.map(function(e,r){return eo("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},o),{},{name:t,enum:(o.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(n){n.then(function(n){n.errors.length&&e([n]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var n=(0,es.default)(e,t);r=(0,er.default)(r,t,n)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,E.default)(t.target)&&e in t.target?t.target[e]:t}function em(e,t,r){var n=e.length;if(t<0||t>=n||r<0||r>=n)return e;var o=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[o],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,n))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[o],(0,s.default)(e.slice(r+1,n))):e}var eh=es,eg=["name"],ev=[];function ey(e,t,r,n,o,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):n!==o}var eb=function(e){(0,f.default)(n,e);var t=(0,p.default)(n);function n(e){var o;return(0,c.default)(this,n),o=t.call(this,e),(0,m.default)((0,d.default)(o),"state",{resetCount:0}),(0,m.default)((0,d.default)(o),"cancelRegisterFunc",null),(0,m.default)((0,d.default)(o),"mounted",!1),(0,m.default)((0,d.default)(o),"touched",!1),(0,m.default)((0,d.default)(o),"dirty",!1),(0,m.default)((0,d.default)(o),"validatePromise",void 0),(0,m.default)((0,d.default)(o),"prevValidating",void 0),(0,m.default)((0,d.default)(o),"errors",ev),(0,m.default)((0,d.default)(o),"warnings",ev),(0,m.default)((0,d.default)(o),"cancelRegister",function(){var e=o.props,t=e.preserve,r=e.isListField,n=e.name;o.cancelRegisterFunc&&o.cancelRegisterFunc(r,t,ec(n)),o.cancelRegisterFunc=null}),(0,m.default)((0,d.default)(o),"getNamePath",function(){var e=o.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,m.default)((0,d.default)(o),"getRules",function(){var e=o.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,m.default)((0,d.default)(o),"refresh",function(){o.mounted&&o.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,m.default)((0,d.default)(o),"metaCache",null),(0,m.default)((0,d.default)(o),"triggerMetaEvent",function(e){var t=o.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},o.getMeta()),{},{destroy:e});(0,g.default)(o.metaCache,r)||t(r),o.metaCache=r}else o.metaCache=null}),(0,m.default)((0,d.default)(o),"onStoreChange",function(e,t,r){var n=o.props,a=n.shouldUpdate,i=n.dependencies,l=void 0===i?[]:i,s=n.onReset,c=r.store,u=o.getNamePath(),d=o.getValue(e),f=o.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(o.touched=!0,o.dirty=!0,o.validatePromise=null,o.errors=ev,o.warnings=ev,o.triggerMetaEvent()),r.type){case"reset":if(!t||p){o.touched=!1,o.dirty=!1,o.validatePromise=void 0,o.errors=ev,o.warnings=ev,o.triggerMetaEvent(),null==s||s(),o.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void o.reRender();break;case"setField":var m=r.data;if(p){"touched"in m&&(o.touched=m.touched),"validating"in m&&!("originRCField"in m)&&(o.validatePromise=m.validating?Promise.resolve([]):null),"errors"in m&&(o.errors=m.errors||ev),"warnings"in m&&(o.warnings=m.warnings||ev),o.dirty=!0,o.triggerMetaEvent(),o.reRender();return}if("value"in m&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void o.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void o.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void o.reRender()}!0===a&&o.reRender()}),(0,m.default)((0,d.default)(o),"validateRules",function(e){var t=o.getNamePath(),r=o.getValue(),n=e||{},c=n.triggerName,u=n.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function n(){var u,f,p,m,h,g,y;return(0,a.default)().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(o.mounted){n.next=2;break}return n.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=o.props).validateFirst)&&f,m=u.messageVariables,h=u.validateDebounce,g=o.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(h&&c)){n.next=10;break}return n.next=8,new Promise(function(e){setTimeout(e,h)});case 8:if(o.validatePromise===d){n.next=10;break}return n.abrupt("return",[]);case 10:return(y=function(e,t,r,n,o,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,n=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(n.validator=function(e,t,n){var o=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(o.validatePromise===d){o.validatePromise=null;var t,r=[],n=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,o=e.errors,a=void 0===o?ev:o;t?n.push.apply(n,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),o.errors=r,o.warnings=n,o.triggerMetaEvent(),o.reRender()}}),n.abrupt("return",y);case 13:case"end":return n.stop()}},n)})));return void 0!==u&&u||(o.validatePromise=d,o.dirty=!0,o.errors=ev,o.warnings=ev,o.triggerMetaEvent(),o.reRender()),d}),(0,m.default)((0,d.default)(o),"isFieldValidating",function(){return!!o.validatePromise}),(0,m.default)((0,d.default)(o),"isFieldTouched",function(){return o.touched}),(0,m.default)((0,d.default)(o),"isFieldDirty",function(){return!!o.dirty||void 0!==o.props.initialValue||void 0!==(0,o.props.fieldContext.getInternalHooks(y).getInitialValue)(o.getNamePath())}),(0,m.default)((0,d.default)(o),"getErrors",function(){return o.errors}),(0,m.default)((0,d.default)(o),"getWarnings",function(){return o.warnings}),(0,m.default)((0,d.default)(o),"isListField",function(){return o.props.isListField}),(0,m.default)((0,d.default)(o),"isList",function(){return o.props.isList}),(0,m.default)((0,d.default)(o),"isPreserve",function(){return o.props.preserve}),(0,m.default)((0,d.default)(o),"getMeta",function(){return o.prevValidating=o.isFieldValidating(),{touched:o.isFieldTouched(),validating:o.prevValidating,errors:o.errors,warnings:o.warnings,name:o.getNamePath(),validated:null===o.validatePromise}}),(0,m.default)((0,d.default)(o),"getOnlyChild",function(e){if("function"==typeof e){var t=o.getMeta();return(0,l.default)((0,l.default)({},o.getOnlyChild(e(o.getControlled(),t,o.props.fieldContext))),{},{isFunction:!0})}var n=(0,h.default)(e);return 1===n.length&&r.isValidElement(n[0])?{child:n[0],isFunction:!1}:{child:n,isFunction:!1}}),(0,m.default)((0,d.default)(o),"getValue",function(e){var t=o.props.fieldContext.getFieldsValue,r=o.getNamePath();return(0,eh.default)(e||t(!0),r)}),(0,m.default)((0,d.default)(o),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=o.props,r=t.name,n=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=o.getNamePath(),h=d.getInternalHooks,g=d.getFieldsValue,v=h(y).dispatch,b=o.getValue(),w=u||function(e){return(0,m.default)({},c,e)},$=e[n],E=void 0!==r?w(b):{},x=(0,l.default)((0,l.default)({},e),E);return x[n]=function(){o.touched=!0,o.dirty=!0,o.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),n=0;n=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),n([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),n([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),n(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=em(f.keys,e,t),n(em(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),eE="__@field_split__";function ex(e){return e.map(function(e){return"".concat((0,E.default)(e),":").concat(e)}).join(eE)}var eS=function(){function e(){(0,c.default)(this,e),(0,m.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(ex(e),t)}},{key:"get",value:function(e){return this.kvs.get(ex(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(ex(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),n=r[0],o=r[1];return e({key:n.split(eE).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),n=r[1],o=r[2];return"number"===n?Number(o):o}),value:o})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,n=t.value;return e[r.join(".")]=n,null}),e}}]),e}(),eh=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,m.default)(this,"formHooked",!1),(0,m.default)(this,"forceRootUpdate",void 0),(0,m.default)(this,"subscribable",!0),(0,m.default)(this,"store",{}),(0,m.default)(this,"fieldEntities",[]),(0,m.default)(this,"initialValues",{}),(0,m.default)(this,"callbacks",{}),(0,m.default)(this,"validateMessages",null),(0,m.default)(this,"preserve",null),(0,m.default)(this,"lastValidatePromise",null),(0,m.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,m.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,m.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,m.default)(this,"prevWithoutPreserves",null),(0,m.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var n,o=(0,er.merge)(e,r.store);null==(n=r.prevWithoutPreserves)||n.map(function(t){var r=t.key;o=(0,er.default)(o,r,(0,eh.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(o)}}),(0,m.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,m.default)(this,"getInitialValue",function(e){var t=(0,eh.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,m.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,m.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,m.default)(this,"setPreserve",function(e){r.preserve=e}),(0,m.default)(this,"watchList",[]),(0,m.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,m.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),n=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,n,e)})}}),(0,m.default)(this,"timeoutId",null),(0,m.default)(this,"warningUnhooked",function(){}),(0,m.default)(this,"updateStore",function(e){r.store=e}),(0,m.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,m.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,m.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,m.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(n=e,o=t):e&&"object"===(0,E.default)(e)&&(a=e.strict,o=e.filter),!0===n&&!o)return r.store;var n,o,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(n)?n:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!n&&null!=(t=(r=e).isListField)&&t.call(r))return;if(o){var c="getMeta"in e?e.getMeta():null;o(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,m.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,eh.default)(r.store,t)}),(0,m.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,m.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,m.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,m.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,n=Array(t),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},n=new eS,o=r.getFieldEntities(!0);o.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var o=n.get(r)||new Set;o.add({entity:e,value:t}),n.set(r,o)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,o=n.get(t);o&&(r=e).push.apply(r,(0,s.default)((0,s.default)(o).map(function(e){return e.entity})))})):e=o,e.forEach(function(e){if(void 0!==e.props.initialValue){var o=e.getNamePath();if(void 0!==r.getInitialValue(o))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(o.join("."),"'. Field can not overwrite it."));else{var a=n.get(o);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(o.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(o);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,o,(0,s.default)(a)[0].value))}}}})}),(0,m.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var n=e.map(ec);n.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:n}),r.notifyObservers(t,n,{type:"reset"}),r.notifyWatch(n)}),(0,m.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,n=[];e.forEach(function(e){var a=e.name,i=(0,o.default)(e,ek),l=ec(a);n.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(n)}),(0,m.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),n=e.getMeta(),o=(0,l.default)((0,l.default)({},n),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(o,"originRCField",{value:!0}),o})}),(0,m.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var n=e.getNamePath();void 0===(0,eh.default)(r.store,n)&&r.updateStore((0,er.default)(r.store,n,t))}}),(0,m.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,m.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var n=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(n,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(n,o){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(o)&&(!n||a.length>1)){var i=n?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,m.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,n=e.value;r.updateValue(t,n);break;case"validateField":var o=e.namePath,a=e.triggerName;r.validateFields([o],{triggerName:a})}}),(0,m.default)(this,"notifyObservers",function(e,t,n){if(r.subscribable){var o=(0,l.default)((0,l.default)({},n),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,o)})}else r.forceRootUpdate()}),(0,m.default)(this,"triggerDependenciesUpdate",function(e,t){var n=r.getDependencyChildrenFields(t);return n.length&&r.validateFields(n),r.notifyObservers(e,n,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(n))}),n}),(0,m.default)(this,"updateValue",function(e,t){var n=ec(e),o=r.store;r.updateStore((0,er.default)(r.store,n,t)),r.notifyObservers(o,[n],{type:"valueUpdate",source:"internal"}),r.notifyWatch([n]);var a=r.triggerDependenciesUpdate(o,n),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[n]),r.getFieldsValue()),r.triggerOnFieldsChange([n].concat((0,s.default)(a)))}),(0,m.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var n=(0,er.merge)(r.store,e);r.updateStore(n)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,m.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,m.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,n=[],o=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);o.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(o.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var o=r.getNamePath();r.isFieldDirty()&&o.length&&(n.push(o),e(o))}})}(e),n}),(0,m.default)(this,"triggerOnFieldsChange",function(e,t){var n=r.callbacks.onFieldsChange;if(n){var o=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),o.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=o.filter(function(t){return ed(e,t.name)});i.length&&n(i,o)}}),(0,m.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var n,o,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),m=new Set,h=c||{},g=h.recursive,v=h.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(m.add(t.join(p)),!u||ed(d,t,g)){var n=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(n.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,n=[],o=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?o.push.apply(o,(0,s.default)(r)):n.push.apply(n,(0,s.default)(r))}),n.length)?Promise.reject({name:t,errors:n,warnings:o}):{name:t,errors:n,warnings:o}}))}}});var y=(n=!1,o=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return n=!0,e}).then(function(r){o-=1,a[i]=r,o>0||(n&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return m.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,m.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),n=r.useState({}),o=(0,eC.default)(n,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){o({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eF=function(e){var t=e.validateMessages,n=e.onFormChange,o=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){n&&n(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){o&&o(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,m.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",()=>eF,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],eh=es;function eI(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eN=function(){for(var e=arguments.length,t=Array(e),n=0;n1?t-1:0),n=1;n{"use strict";function t(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}e.s(["default",()=>t])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),n=e.i(529681);let o=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,o,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let o=(0,n.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},o))},"NoFormStyle",0,({children:e,status:r,override:n})=>{let o=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},o);return n&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,n,o]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},517455,e=>{"use strict";var t=e.i(271645),r=e.i(666365);e.s(["default",0,e=>{let n=t.default.useContext(r.default);return t.default.useMemo(()=>e?"string"==typeof e?null!=e?e:n:"function"==typeof e?e(n):n:n,[e,n])}])},249616,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(876556),o=e.i(242064),a=e.i(517455);let i=(0,e.i(246422).genStyleHooks)(["Space","Compact"],e=>[(e=>{let{componentCls:t}=e;return{[t]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"}}}})(e)],()=>({}),{resetStyle:!1});var l=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let s=t.createContext(null),c=e=>{let{children:r}=e,n=l(e,["children"]);return t.createElement(s.Provider,{value:t.useMemo(()=>n,[n])},r)};e.s(["NoCompactStyle",0,e=>{let{children:r}=e;return t.createElement(s.Provider,{value:null},r)},"default",0,e=>{let{getPrefixCls:u,direction:d}=t.useContext(o.ConfigContext),{size:f,direction:p,block:m,prefixCls:h,className:g,rootClassName:v,children:y}=e,b=l(e,["size","direction","block","prefixCls","className","rootClassName","children"]),w=(0,a.default)(e=>null!=f?f:e),$=u("space-compact",h),[C,E]=i($),x=(0,r.default)($,E,{[`${$}-rtl`]:"rtl"===d,[`${$}-block`]:m,[`${$}-vertical`]:"vertical"===p},g,v),S=t.useContext(s),k=(0,n.default)(y),j=t.useMemo(()=>k.map((e,r)=>{let n=(null==e?void 0:e.key)||`${$}-item-${r}`;return t.createElement(c,{key:n,compactSize:w,compactDirection:p,isFirstItem:0===r&&(!S||(null==S?void 0:S.isFirstItem)),isLastItem:r===k.length-1&&(!S||(null==S?void 0:S.isLastItem))},e)}),[k,S,p,w,$]);return 0===k.length?null:C(t.createElement("div",Object.assign({className:x},b),j))},"useCompactItemContext",0,(e,n)=>{let o=t.useContext(s),a=t.useMemo(()=>{if(!o)return"";let{compactDirection:t,isFirstItem:a,isLastItem:i}=o,l="vertical"===t?"-vertical-":"-";return(0,r.default)(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:a,[`${e}-compact${l}last-item`]:i,[`${e}-compact${l}item-rtl`]:"rtl"===n})},[e,n,o]);return{compactSize:null==o?void 0:o.compactSize,compactDirection:null==o?void 0:o.compactDirection,compactItemClassnames:a}}],249616)},617206,e=>{"use strict";var t=e.i(271645),r=e.i(62139),n=e.i(249616);e.s(["default",0,e=>{let{space:o,form:a,children:i}=e;if(null==i)return null;let l=i;return a&&(l=t.default.createElement(r.NoFormStyle,{override:!0,status:!0},l)),o&&(l=t.default.createElement(n.NoCompactStyle,null,l)),l}])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),n=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},o=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName,i=(e,t,r)=>void 0!==r?r:`${e}-${t}`;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:n,onEnterActive:n,onLeaveStart:o,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",()=>i])},805984,307358,320560,e=>{"use strict";e.i(296059);var t=e.i(915654);function r(e){let{sizePopupArrow:t,borderRadiusXS:r,borderRadiusOuter:n}=e,o=t/2,a=n/Math.sqrt(2),i=o-n*(1-1/Math.sqrt(2)),l=o-1/Math.sqrt(2)*r,s=n*(Math.sqrt(2)-1)+1/Math.sqrt(2)*r,c=o*Math.sqrt(2)+n*(Math.sqrt(2)-2),u=n*(Math.sqrt(2)-1),d=`polygon(${u}px 100%, 50% ${u}px, ${2*o-u}px 100%, ${u}px 100%)`;return{arrowShadowWidth:c,arrowPath:`path('M 0 ${o} A ${n} ${n} 0 0 0 ${a} ${i} L ${l} ${s} A ${r} ${r} 0 0 1 ${2*o-l} ${s} L ${2*o-a} ${i} A ${n} ${n} 0 0 0 ${2*o-0} ${o} Z')`,arrowPolygon:d}}let n=(e,r,n)=>{let{sizePopupArrow:o,arrowPolygon:a,arrowPath:i,arrowShadowWidth:l,borderRadiusXS:s,calc:c}=e;return{pointerEvents:"none",width:o,height:o,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:o,height:c(o).div(2).equal(),background:r,clipPath:{_multi_value_:!0,value:[a,i]},content:'""'},"&::after":{content:'""',position:"absolute",width:l,height:l,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${(0,t.unit)(s)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:n,zIndex:0,background:"transparent"}}};function o(e){let{contentRadius:t,limitVerticalRadius:r}=e,n=t>12?t+2:12;return{arrowOffsetHorizontal:n,arrowOffsetVertical:r?8:n}}function a(e,r,o){var a,i,l,s,c,u,d,f;let{componentCls:p,boxShadowPopoverArrow:m,arrowOffsetVertical:h,arrowOffsetHorizontal:g}=e,{arrowDistance:v=0,arrowPlacement:y={left:!0,right:!0,top:!0,bottom:!0}}=o||{};return{[p]:Object.assign(Object.assign(Object.assign(Object.assign({[`${p}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},n(e,r,m)),{"&:before":{background:r}})]},(a=!!y.top,i={[`&-placement-top > ${p}-arrow,&-placement-topLeft > ${p}-arrow,&-placement-topRight > ${p}-arrow`]:{bottom:v,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},"&-placement-topLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-topRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},a?i:{})),(l=!!y.bottom,s={[`&-placement-bottom > ${p}-arrow,&-placement-bottomLeft > ${p}-arrow,&-placement-bottomRight > ${p}-arrow`]:{top:v,transform:"translateY(-100%)"},[`&-placement-bottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},"&-placement-bottomLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-bottomRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},l?s:{})),(c=!!y.left,u={[`&-placement-left > ${p}-arrow,&-placement-leftTop > ${p}-arrow,&-placement-leftBottom > ${p}-arrow`]:{right:{_skip_check_:!0,value:v},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${p}-arrow`]:{top:h},[`&-placement-leftBottom > ${p}-arrow`]:{bottom:h}},c?u:{})),(d=!!y.right,f={[`&-placement-right > ${p}-arrow,&-placement-rightTop > ${p}-arrow,&-placement-rightBottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:v},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${p}-arrow`]:{top:h},[`&-placement-rightBottom > ${p}-arrow`]:{bottom:h}},d?f:{}))}}e.s(["genRoundedArrow",0,n,"getArrowToken",()=>r],307358),e.s(["MAX_VERTICAL_CONTENT_RADIUS",0,8,"default",()=>a,"getArrowOffsetToken",()=>o],320560);let i={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},l={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},s=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);function c(e){let{arrowWidth:t,autoAdjustOverflow:r,arrowPointAtCenter:n,offset:a,borderRadius:c,visibleFirst:u}=e,d=t/2,f={},p=o({contentRadius:c,limitVerticalRadius:!0});return Object.keys(i).forEach(e=>{let o=Object.assign(Object.assign({},n&&l[e]||i[e]),{offset:[0,0],dynamicInset:!0});switch(f[e]=o,s.has(e)&&(o.autoArrow=!1),e){case"top":case"topLeft":case"topRight":o.offset[1]=-d-a;break;case"bottom":case"bottomLeft":case"bottomRight":o.offset[1]=d+a;break;case"left":case"leftTop":case"leftBottom":o.offset[0]=-d-a;break;case"right":case"rightTop":case"rightBottom":o.offset[0]=d+a}if(n)switch(e){case"topLeft":case"bottomLeft":o.offset[0]=-p.arrowOffsetHorizontal-d;break;case"topRight":case"bottomRight":o.offset[0]=p.arrowOffsetHorizontal+d;break;case"leftTop":case"rightTop":o.offset[1]=-(2*p.arrowOffsetHorizontal)+d;break;case"leftBottom":case"rightBottom":o.offset[1]=2*p.arrowOffsetHorizontal-d}o.overflow=function(e,t,r,n){if(!1===n)return{adjustX:!1,adjustY:!1};let o={};switch(e){case"top":case"bottom":o.shiftX=2*t.arrowOffsetHorizontal+r,o.shiftY=!0,o.adjustY=!0;break;case"left":case"right":o.shiftY=2*t.arrowOffsetVertical+r,o.shiftX=!0,o.adjustX=!0}let a=Object.assign(Object.assign({},o),n&&"object"==typeof n?n:{});return a.shiftX||(a.adjustX=!0),a.shiftY||(a.adjustY=!0),a}(e,p,t,r),u&&(o.htmlRegion="visibleFirst")}),f}e.s(["default",()=>c],805984)},763731,e=>{"use strict";var t=e.i(271645);function r(e){return e&&t.default.isValidElement(e)&&e.type===t.default.Fragment}let n=(e,r,n)=>t.default.isValidElement(e)?t.default.cloneElement(e,"function"==typeof n?n(e.props||{}):n):r;function o(e,t){return n(e,e,t)}e.s(["cloneElement",()=>o,"isFragment",()=>r,"replaceElement",0,n])},880476,e=>{"use strict";var t=e.i(552821);e.s(["Popup",()=>t.default])},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,n,o=!1)=>{let a=o?"&":"";return{[` +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,552821,e=>{"use strict";var t=e.i(343794),r=e.i(271645);function n(e){var n=e.children,o=e.prefixCls,a=e.id,i=e.overlayInnerStyle,l=e.bodyClassName,s=e.className,c=e.style;return r.createElement("div",{className:(0,t.default)("".concat(o,"-content"),s),style:c},r.createElement("div",{className:(0,t.default)("".concat(o,"-inner"),l),id:a,role:"tooltip",style:i},"function"==typeof n?n():n))}e.s(["default",()=>n])},951160,815289,e=>{"use strict";e.i(247167);var t,r=e.i(392221),n=e.i(271645),o=e.i(174080),a=e.i(654310);e.i(883110);var i=e.i(611935),l=n.createContext(null),s=e.i(8211),c=e.i(174428),u=[],d=e.i(575943);function f(e){var t,r,n="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),o=document.createElement("div");o.id=n;var a=o.style;if(a.position="absolute",a.left="0",a.top="0",a.width="100px",a.height="100px",a.overflow="scroll",e){var i=getComputedStyle(e);a.scrollbarColor=i.scrollbarColor,a.scrollbarWidth=i.scrollbarWidth;var l=getComputedStyle(e,"::-webkit-scrollbar"),s=parseInt(l.width,10),c=parseInt(l.height,10);try{var u=s?"width: ".concat(l.width,";"):"",f=c?"height: ".concat(l.height,";"):"";(0,d.updateCSS)("\n#".concat(n,"::-webkit-scrollbar {\n").concat(u,"\n").concat(f,"\n}"),n)}catch(e){console.error(e),t=s,r=c}}document.body.appendChild(o);var p=e&&t&&!isNaN(t)?t:o.offsetWidth-o.clientWidth,m=e&&r&&!isNaN(r)?r:o.offsetHeight-o.clientHeight;return document.body.removeChild(o),(0,d.removeCSS)(n),{width:p,height:m}}function p(e){return"u"p,"getTargetScrollBarSize",()=>m],815289);var h="rc-util-locker-".concat(Date.now()),g=0,v=function(e){return!1!==e&&((0,a.default)()&&e?"string"==typeof e?document.querySelector(e):"function"==typeof e?e():e:null)},y=n.forwardRef(function(e,t){var f,p,y,b=e.open,w=e.autoLock,$=e.getContainer,C=(e.debug,e.autoDestroy),E=void 0===C||C,x=e.children,S=n.useState(b),j=(0,r.default)(S,2),k=j[0],O=j[1],T=k||b;n.useEffect(function(){(E||b)&&O(b)},[b,E]);var F=n.useState(function(){return v($)}),I=(0,r.default)(F,2),_=I[0],P=I[1];n.useEffect(function(){var e=v($);P(null!=e?e:null)});var N=function(e,t){var o=n.useState(function(){return(0,a.default)()?document.createElement("div"):null}),i=(0,r.default)(o,1)[0],d=n.useRef(!1),f=n.useContext(l),p=n.useState(u),m=(0,r.default)(p,2),h=m[0],g=m[1],v=f||(d.current?void 0:function(e){g(function(t){return[e].concat((0,s.default)(t))})});function y(){i.parentElement||document.body.appendChild(i),d.current=!0}function b(){var e;null==(e=i.parentElement)||e.removeChild(i),d.current=!1}return(0,c.default)(function(){return e?f?f(y):y():b(),b},[e]),(0,c.default)(function(){h.length&&(h.forEach(function(e){return e()}),g(u))},[h]),[i,v]}(T&&!_,0),R=(0,r.default)(N,2),M=R[0],B=R[1],A=null!=_?_:M;f=!!(w&&b&&(0,a.default)()&&(A===M||A===document.body)),p=n.useState(function(){return g+=1,"".concat(h,"_").concat(g)}),y=(0,r.default)(p,1)[0],(0,c.default)(function(){if(f){var e=m(document.body).width,t=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;(0,d.updateCSS)("\nhtml body {\n overflow-y: hidden;\n ".concat(t?"width: calc(100% - ".concat(e,"px);"):"","\n}"),y)}else(0,d.removeCSS)(y);return function(){(0,d.removeCSS)(y)}},[f,y]);var z=null;x&&(0,i.supportRef)(x)&&t&&(z=x.ref);var L=(0,i.useComposeRef)(z,t);if(!T||!(0,a.default)()||void 0===_)return null;var H=!1===A,D=x;return t&&(D=n.cloneElement(x,{ref:L})),n.createElement(l.Provider,{value:B},H?D:(0,o.createPortal)(D,A))});e.s(["default",0,y],951160)},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",()=>function e(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(n,function(r){(null!=r||o.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,o)):a.push(r))}),a}])},430073,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645),n=e.i(876556);e.i(883110);var o=e.i(209428),a=e.i(410160),i=e.i(279697),l=e.i(611935),s=r.createContext(null),c=function(){if("u">typeof Map)return Map;function e(e,t){var r=-1;return e.some(function(e,n){return e[0]===t&&(r=n,!0)}),r}function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var r=e(this.__entries__,t),n=this.__entries__[r];return n&&n[1]},t.prototype.set=function(t,r){var n=e(this.__entries__,t);~n?this.__entries__[n][1]=r:this.__entries__.push([t,r])},t.prototype.delete=function(t){var r=this.__entries__,n=e(r,t);~n&&r.splice(n,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var r=0,n=this.__entries__;rtypeof window&&"u">typeof document&&window.document===document,d=e.g.Math===Math?e.g:"u">typeof self&&self.Math===Math?self:"u">typeof window&&window.Math===Math?window:Function("return this")(),f="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(d):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},p=["top","right","bottom","left","width","height","size","weight"],m="u">typeof MutationObserver,h=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var r=!1,n=!1,o=0;function a(){r&&(r=!1,e()),n&&l()}function i(){f(a)}function l(){var e=Date.now();if(r){if(e-o<2)return;n=!0}else r=!0,n=!1,setTimeout(i,20);o=e}return l}(this.refresh.bind(this),0)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,r=t.indexOf(e);~r&&t.splice(r,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){u&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),m?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){u&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,r=void 0===t?"":t;p.some(function(e){return!!~r.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),g=function(e,t){for(var r=0,n=Object.keys(t);rtypeof SVGGraphicsElement?function(e){return e instanceof v(e).SVGGraphicsElement}:function(e){return e instanceof v(e).SVGElement&&"function"==typeof e.getBBox};function C(e,t,r,n){return{x:e,y:t,width:r,height:n}}var E=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=C(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=function(e){if(!u)return y;if($(e)){var t;return C(0,0,(t=e.getBBox()).width,t.height)}return function(e){var t,r=e.clientWidth,n=e.clientHeight;if(!r&&!n)return y;var o=v(e).getComputedStyle(e),a=function(e){for(var t={},r=0,n=["top","right","bottom","left"];rtypeof DOMRectReadOnly?DOMRectReadOnly:Object).prototype),{x:r,y:n,width:o,height:a,top:n,right:r+o,bottom:a+n,left:r}),i);g(this,{target:e,contentRect:l})},S=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new c,"function"!=typeof e)throw TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");if(!("u"0},e}(),j="u">typeof WeakMap?new WeakMap:new c,k=function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var r=new S(t,h.getInstance(),this);j.set(this,r)};["observe","unobserve","disconnect"].forEach(function(e){k.prototype[e]=function(){var t;return(t=j.get(this))[e].apply(t,arguments)}});var O=void 0!==d.ResizeObserver?d.ResizeObserver:k,T=new Map,F=new O(function(e){e.forEach(function(e){var t,r=e.target;null==(t=T.get(r))||t.forEach(function(e){return e(r)})})}),I=e.i(278409),_=e.i(233848),P=e.i(868917),N=e.i(674813),R=function(e){(0,P.default)(r,e);var t=(0,N.default)(r);function r(){return(0,I.default)(this,r),t.apply(this,arguments)}return(0,_.default)(r,[{key:"render",value:function(){return this.props.children}}]),r}(r.Component),M=r.forwardRef(function(e,t){var n=e.children,c=e.disabled,u=r.useRef(null),d=r.useRef(null),f=r.useContext(s),p="function"==typeof n,m=p?n(u):n,h=r.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),g=!p&&r.isValidElement(m)&&(0,l.supportRef)(m),v=g?(0,l.getNodeRef)(m):null,y=(0,l.useComposeRef)(v,u),b=function(){var e;return(0,i.default)(u.current)||(u.current&&"object"===(0,a.default)(u.current)?(0,i.default)(null==(e=u.current)?void 0:e.nativeElement):null)||(0,i.default)(d.current)};r.useImperativeHandle(t,function(){return b()});var w=r.useRef(e);w.current=e;var $=r.useCallback(function(e){var t=w.current,r=t.onResize,n=t.data,a=e.getBoundingClientRect(),i=a.width,l=a.height,s=e.offsetWidth,c=e.offsetHeight,u=Math.floor(i),d=Math.floor(l);if(h.current.width!==u||h.current.height!==d||h.current.offsetWidth!==s||h.current.offsetHeight!==c){var p={width:u,height:d,offsetWidth:s,offsetHeight:c};h.current=p;var m=s===Math.round(i)?i:s,g=c===Math.round(l)?l:c,v=(0,o.default)((0,o.default)({},p),{},{offsetWidth:m,offsetHeight:g});null==f||f(v,e,n),r&&Promise.resolve().then(function(){r(v,e)})}},[]);return r.useEffect(function(){var e=b();return e&&!c&&(T.has(e)||(T.set(e,new Set),F.observe(e)),T.get(e).add($)),function(){T.has(e)&&(T.get(e).delete($),!T.get(e).size&&(F.unobserve(e),T.delete(e)))}},[u.current,c]),r.createElement(R,{ref:d},g?r.cloneElement(m,{ref:y}):m)}),B=r.forwardRef(function(e,o){var a=e.children;return("function"==typeof a?[a]:(0,n.default)(a)).map(function(n,a){var i=(null==n?void 0:n.key)||"".concat("rc-observer-key","-").concat(a);return r.createElement(M,(0,t.default)({},e,{key:i,ref:0===a?o:void 0}),n)})});B.Collection=function(e){var t=e.children,n=e.onBatchResize,o=r.useRef(0),a=r.useRef([]),i=r.useContext(s),l=r.useCallback(function(e,t,r){o.current+=1;var l=o.current;a.current.push({size:e,element:t,data:r}),Promise.resolve().then(function(){l===o.current&&(null==n||n(a.current),a.current=[])}),null==i||i(e,t,r)},[n,i]);return r.createElement(s.Provider,{value:l},t)},e.s(["default",0,B],430073)},981444,e=>{"use strict";var t=e.i(392221),r=e.i(209428),n=e.i(271645),o=0,a=(0,r.default)({},n).useId;let i=a?function(e){var t=a();return e||t}:function(e){var r=n.useState("ssr-id"),a=(0,t.default)(r,2),i=a[0],l=a[1];return(n.useEffect(function(){var e=o;o+=1,l("rc_unique_".concat(e))},[]),e)?e:i};e.s(["default",0,i])},614761,e=>{"use strict";e.s(["default",0,function(){if("u"{"use strict";e.i(247167);var t=e.i(931067),r=e.i(209428),n=e.i(392221),o=e.i(343794),a=e.i(361275),i=e.i(430073),l=e.i(174428),s=e.i(611935),c=e.i(271645);function u(e){var t=e.prefixCls,r=e.align,n=e.arrow,a=e.arrowPos,i=n||{},l=i.className,s=i.content,u=a.x,d=a.y,f=c.useRef();if(!r||!r.points)return null;var p={position:"absolute"};if(!1!==r.autoArrow){var m=r.points[0],h=r.points[1],g=m[0],v=m[1],y=h[0],b=h[1];g!==y&&["t","b"].includes(g)?"t"===g?p.top=0:p.bottom=0:p.top=void 0===d?0:d,v!==b&&["l","r"].includes(v)?"l"===v?p.left=0:p.right=0:p.left=void 0===u?0:u}return c.createElement("div",{ref:f,className:(0,o.default)("".concat(t,"-arrow"),l),style:p},s)}function d(e){var r=e.prefixCls,n=e.open,i=e.zIndex,l=e.mask,s=e.motion;return l?c.createElement(a.default,(0,t.default)({},s,{motionAppear:!0,visible:n,removeOnLeave:!0}),function(e){var t=e.className;return c.createElement("div",{style:{zIndex:i},className:(0,o.default)("".concat(r,"-mask"),t)})}):null}var f=c.memo(function(e){return e.children},function(e,t){return t.cache}),p=c.forwardRef(function(e,p){var m=e.popup,h=e.className,g=e.prefixCls,v=e.style,y=e.target,b=e.onVisibleChanged,w=e.open,$=e.keepDom,C=e.fresh,E=e.onClick,x=e.mask,S=e.arrow,j=e.arrowPos,k=e.align,O=e.motion,T=e.maskMotion,F=e.forceRender,I=e.getPopupContainer,_=e.autoDestroy,P=e.portal,N=e.zIndex,R=e.onMouseEnter,M=e.onMouseLeave,B=e.onPointerEnter,A=e.onPointerDownCapture,z=e.ready,L=e.offsetX,H=e.offsetY,D=e.offsetR,V=e.offsetB,W=e.onAlign,G=e.onPrepare,U=e.stretch,q=e.targetWidth,J=e.targetHeight,K="function"==typeof m?m():m,X=w||$,Y=(null==I?void 0:I.length)>0,Z=c.useState(!I||!Y),Q=(0,n.default)(Z,2),ee=Q[0],et=Q[1];if((0,l.default)(function(){!ee&&Y&&y&&et(!0)},[ee,Y,y]),!ee)return null;var er="auto",en={left:"-1000vw",top:"-1000vh",right:er,bottom:er};if(z||!w){var eo,ea=k.points,ei=k.dynamicInset||(null==(eo=k._experimental)?void 0:eo.dynamicInset),el=ei&&"r"===ea[0][1],es=ei&&"b"===ea[0][0];el?(en.right=D,en.left=er):(en.left=L,en.right=er),es?(en.bottom=V,en.top=er):(en.top=H,en.bottom=er)}var ec={};return U&&(U.includes("height")&&J?ec.height=J:U.includes("minHeight")&&J&&(ec.minHeight=J),U.includes("width")&&q?ec.width=q:U.includes("minWidth")&&q&&(ec.minWidth=q)),w||(ec.pointerEvents="none"),c.createElement(P,{open:F||X,getContainer:I&&function(){return I(y)},autoDestroy:_},c.createElement(d,{prefixCls:g,open:w,zIndex:N,mask:x,motion:T}),c.createElement(i.default,{onResize:W,disabled:!w},function(e){return c.createElement(a.default,(0,t.default)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:F,leavedClassName:"".concat(g,"-hidden")},O,{onAppearPrepare:G,onEnterPrepare:G,visible:w,onVisibleChanged:function(e){var t;null==O||null==(t=O.onVisibleChanged)||t.call(O,e),b(e)}}),function(t,n){var a=t.className,i=t.style,l=(0,o.default)(g,a,h);return c.createElement("div",{ref:(0,s.composeRef)(e,p,n),className:l,style:(0,r.default)((0,r.default)((0,r.default)((0,r.default)({"--arrow-x":"".concat(j.x||0,"px"),"--arrow-y":"".concat(j.y||0,"px")},en),ec),i),{},{boxSizing:"border-box",zIndex:N},v),onMouseEnter:R,onMouseLeave:M,onPointerEnter:B,onClick:E,onPointerDownCapture:A},S&&c.createElement(u,{prefixCls:g,arrow:S,arrowPos:j,align:k}),c.createElement(f,{cache:!w&&!C},K))})}))});e.s(["default",0,p],546004);var m=c.forwardRef(function(e,t){var r=e.children,n=e.getTriggerDOMNode,o=(0,s.supportRef)(r),a=c.useCallback(function(e){(0,s.fillRef)(t,n?n(e):e)},[n]),i=(0,s.useComposeRef)(a,(0,s.getNodeRef)(r));return o?c.cloneElement(r,{ref:i}):r});e.s(["default",0,m],508811);var h=c.createContext(null);function g(e){return e?Array.isArray(e)?e:[e]:[]}function v(e,t,r,n){return c.useMemo(function(){var o=g(null!=r?r:t),a=g(null!=n?n:t),i=new Set(o),l=new Set(a);return e&&(i.has("hover")&&(i.delete("hover"),i.add("click")),l.has("hover")&&(l.delete("hover"),l.add("click"))),[i,l]},[e,t,r,n])}e.s(["default",0,h],976637),e.s(["default",()=>v],920)},606262,e=>{"use strict";e.s(["default",0,function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),r=t.width,n=t.height;if(r||n)return!0}if(e.getBoundingClientRect){var o=e.getBoundingClientRect(),a=o.width,i=o.height;if(a||i)return!0}}return!1}])},707067,e=>{"use strict";e.i(247167);var t=e.i(209428),r=e.i(392221),n=e.i(703923),o=e.i(951160),a=e.i(343794),i=e.i(430073),l=e.i(279697),s=e.i(909887),c=e.i(175066),u=e.i(981444),d=e.i(174428),f=e.i(614761),p=e.i(271645),m=e.i(546004),h=e.i(508811),g=e.i(976637),v=e.i(920),y=e.i(606262);function b(e,t,r,n){return t||(r?{motionName:"".concat(e,"-").concat(r)}:n?{motionName:n}:null)}function w(e){return e.ownerDocument.defaultView}function $(e){for(var t=[],r=null==e?void 0:e.parentElement,n=["hidden","scroll","clip","auto"];r;){var o=w(r).getComputedStyle(r);[o.overflowX,o.overflowY,o.overflow].some(function(e){return n.includes(e)})&&t.push(r),r=r.parentElement}return t}function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Number.isNaN(e)?t:e}function E(e){return C(parseFloat(e),0)}function x(e,r){var n=(0,t.default)({},e);return(r||[]).forEach(function(e){if(!(e instanceof HTMLBodyElement||e instanceof HTMLHtmlElement)){var t=w(e).getComputedStyle(e),r=t.overflow,o=t.overflowClipMargin,a=t.borderTopWidth,i=t.borderBottomWidth,l=t.borderLeftWidth,s=t.borderRightWidth,c=e.getBoundingClientRect(),u=e.offsetHeight,d=e.clientHeight,f=e.offsetWidth,p=e.clientWidth,m=E(a),h=E(i),g=E(l),v=E(s),y=C(Math.round(c.width/f*1e3)/1e3),b=C(Math.round(c.height/u*1e3)/1e3),$=m*b,x=g*y,S=0,j=0;if("clip"===r){var k=E(o);S=k*y,j=k*b}var O=c.x+x-S,T=c.y+$-j,F=O+c.width+2*S-x-v*y-(f-p-g-v)*y,I=T+c.height+2*j-$-h*b-(u-d-m-h)*b;n.left=Math.max(n.left,O),n.top=Math.max(n.top,T),n.right=Math.min(n.right,F),n.bottom=Math.min(n.bottom,I)}}),n}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r="".concat(t),n=r.match(/^(.*)\%$/);return n?e*(parseFloat(n[1])/100):parseFloat(r)}function j(e,t){var n=(0,r.default)(t||[],2),o=n[0],a=n[1];return[S(e.width,o),S(e.height,a)]}function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return[e[0],e[1]]}function O(e,t){var r,n=t[0],o=t[1];return r="t"===n?e.y:"b"===n?e.y+e.height:e.y+e.height/2,{x:"l"===o?e.x:"r"===o?e.x+e.width:e.x+e.width/2,y:r}}function T(e,t){var r={t:"b",b:"t",l:"r",r:"l"};return e.map(function(e,n){return n===t?r[e]||"c":e}).join("")}var F=e.i(8211);e.i(883110);var I=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];let _=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.default;return p.forwardRef(function(o,E){var S,_,P,N,R,M,B,A,z,L,H,D,V,W,G,U,q=o.prefixCls,J=void 0===q?"rc-trigger-popup":q,K=o.children,X=o.action,Y=o.showAction,Z=o.hideAction,Q=o.popupVisible,ee=o.defaultPopupVisible,et=o.onPopupVisibleChange,er=o.afterPopupVisibleChange,en=o.mouseEnterDelay,eo=o.mouseLeaveDelay,ea=void 0===eo?.1:eo,ei=o.focusDelay,el=o.blurDelay,es=o.mask,ec=o.maskClosable,eu=o.getPopupContainer,ed=o.forceRender,ef=o.autoDestroy,ep=o.destroyPopupOnHide,em=o.popup,eh=o.popupClassName,eg=o.popupStyle,ev=o.popupPlacement,ey=o.builtinPlacements,eb=void 0===ey?{}:ey,ew=o.popupAlign,e$=o.zIndex,eC=o.stretch,eE=o.getPopupClassNameFromAlign,ex=o.fresh,eS=o.alignPoint,ej=o.onPopupClick,ek=o.onPopupAlign,eO=o.arrow,eT=o.popupMotion,eF=o.maskMotion,eI=o.popupTransitionName,e_=o.popupAnimation,eP=o.maskTransitionName,eN=o.maskAnimation,eR=o.className,eM=o.getTriggerDOMNode,eB=(0,n.default)(o,I),eA=p.useState(!1),ez=(0,r.default)(eA,2),eL=ez[0],eH=ez[1];(0,d.default)(function(){eH((0,f.default)())},[]);var eD=p.useRef({}),eV=p.useContext(g.default),eW=p.useMemo(function(){return{registerSubPopup:function(e,t){eD.current[e]=t,null==eV||eV.registerSubPopup(e,t)}}},[eV]),eG=(0,u.default)(),eU=p.useState(null),eq=(0,r.default)(eU,2),eJ=eq[0],eK=eq[1],eX=p.useRef(null),eY=(0,c.default)(function(e){eX.current=e,(0,l.isDOM)(e)&&eJ!==e&&eK(e),null==eV||eV.registerSubPopup(eG,e)}),eZ=p.useState(null),eQ=(0,r.default)(eZ,2),e0=eQ[0],e1=eQ[1],e2=p.useRef(null),e4=(0,c.default)(function(e){(0,l.isDOM)(e)&&e0!==e&&(e1(e),e2.current=e)}),e6=p.Children.only(K),e3=(null==e6?void 0:e6.props)||{},e7={},e5=(0,c.default)(function(e){var t,r;return(null==e0?void 0:e0.contains(e))||(null==(t=(0,s.getShadowRoot)(e0))?void 0:t.host)===e||e===e0||(null==eJ?void 0:eJ.contains(e))||(null==(r=(0,s.getShadowRoot)(eJ))?void 0:r.host)===e||e===eJ||Object.values(eD.current).some(function(t){return(null==t?void 0:t.contains(e))||e===t})}),e9=b(J,eT,e_,eI),e8=b(J,eF,eN,eP),te=p.useState(ee||!1),tt=(0,r.default)(te,2),tr=tt[0],tn=tt[1],to=null!=Q?Q:tr,ta=(0,c.default)(function(e){void 0===Q&&tn(e)});(0,d.default)(function(){tn(Q||!1)},[Q]);var ti=p.useRef(to);ti.current=to;var tl=p.useRef([]);tl.current=[];var ts=(0,c.default)(function(e){var t;ta(e),(null!=(t=tl.current[tl.current.length-1])?t:to)!==e&&(tl.current.push(e),null==et||et(e))}),tc=p.useRef(),tu=function(){clearTimeout(tc.current)},td=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;tu(),0===t?ts(e):tc.current=setTimeout(function(){ts(e)},1e3*t)};p.useEffect(function(){return tu},[]);var tf=p.useState(!1),tp=(0,r.default)(tf,2),tm=tp[0],th=tp[1];(0,d.default)(function(e){(!e||to)&&th(!0)},[to]);var tg=p.useState(null),tv=(0,r.default)(tg,2),ty=tv[0],tb=tv[1],tw=p.useState(null),t$=(0,r.default)(tw,2),tC=t$[0],tE=t$[1],tx=function(e){tE([e.clientX,e.clientY])},tS=(S=eS&&null!==tC?tC:e0,_=p.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:eb[ev]||{}}),N=(P=(0,r.default)(_,2))[0],R=P[1],M=p.useRef(0),B=p.useMemo(function(){return eJ?$(eJ):[]},[eJ]),A=p.useRef({}),to||(A.current={}),z=(0,c.default)(function(){if(eJ&&S&&to){var e=eJ.ownerDocument,n=w(eJ),o=n.getComputedStyle(eJ).position,a=eJ.style.left,i=eJ.style.top,s=eJ.style.right,c=eJ.style.bottom,u=eJ.style.overflow,d=(0,t.default)((0,t.default)({},eb[ev]),ew),f=e.createElement("div");if(null==(v=eJ.parentElement)||v.appendChild(f),f.style.left="".concat(eJ.offsetLeft,"px"),f.style.top="".concat(eJ.offsetTop,"px"),f.style.position=o,f.style.height="".concat(eJ.offsetHeight,"px"),f.style.width="".concat(eJ.offsetWidth,"px"),eJ.style.left="0",eJ.style.top="0",eJ.style.right="auto",eJ.style.bottom="auto",eJ.style.overflow="hidden",Array.isArray(S))F={x:S[0],y:S[1],width:0,height:0};else{var p,m,h,g,v,b,$,E,F,I,_,P=S.getBoundingClientRect();P.x=null!=(I=P.x)?I:P.left,P.y=null!=(_=P.y)?_:P.top,F={x:P.x,y:P.y,width:P.width,height:P.height}}var N=eJ.getBoundingClientRect(),M=n.getComputedStyle(eJ),z=M.height,L=M.width;N.x=null!=(b=N.x)?b:N.left,N.y=null!=($=N.y)?$:N.top;var H=e.documentElement,D=H.clientWidth,V=H.clientHeight,W=H.scrollWidth,G=H.scrollHeight,U=H.scrollTop,q=H.scrollLeft,J=N.height,K=N.width,X=F.height,Y=F.width,Z=d.htmlRegion,Q="visible",ee="visibleFirst";"scroll"!==Z&&Z!==ee&&(Z=Q);var et=Z===ee,er=x({left:-q,top:-U,right:W-q,bottom:G-U},B),en=x({left:0,top:0,right:D,bottom:V},B),eo=Z===Q?en:er,ea=et?en:eo;eJ.style.left="auto",eJ.style.top="auto",eJ.style.right="0",eJ.style.bottom="0";var ei=eJ.getBoundingClientRect();eJ.style.left=a,eJ.style.top=i,eJ.style.right=s,eJ.style.bottom=c,eJ.style.overflow=u,null==(E=eJ.parentElement)||E.removeChild(f);var el=C(Math.round(K/parseFloat(L)*1e3)/1e3),es=C(Math.round(J/parseFloat(z)*1e3)/1e3);if(!(0===el||0===es||(0,l.isDOM)(S)&&!(0,y.default)(S))){var ec=d.offset,eu=d.targetOffset,ed=j(N,ec),ef=(0,r.default)(ed,2),ep=ef[0],em=ef[1],eh=j(F,eu),eg=(0,r.default)(eh,2),ey=eg[0],e$=eg[1];F.x-=ey,F.y-=e$;var eC=d.points||[],eE=(0,r.default)(eC,2),ex=eE[0],eS=k(eE[1]),ej=k(ex),eO=O(F,eS),eT=O(N,ej),eF=(0,t.default)({},d),eI=eO.x-eT.x+ep,e_=eO.y-eT.y+em,eP=td(eI,e_),eN=td(eI,e_,en),eR=O(F,["t","l"]),eM=O(N,["t","l"]),eB=O(F,["b","r"]),eA=O(N,["b","r"]),ez=d.overflow||{},eL=ez.adjustX,eH=ez.adjustY,eD=ez.shiftX,eV=ez.shiftY,eW=function(e){return"boolean"==typeof e?e:e>=0};tf();var eG=eW(eH),eU=ej[0]===eS[0];if(eG&&"t"===ej[0]&&(m>ea.bottom||A.current.bt)){var eq=e_;eU?eq-=J-X:eq=eR.y-eA.y-em;var eK=td(eI,eq),eX=td(eI,eq,en);eK>eP||eK===eP&&(!et||eX>=eN)?(A.current.bt=!0,e_=eq,em=-em,eF.points=[T(ej,0),T(eS,0)]):A.current.bt=!1}if(eG&&"b"===ej[0]&&(peP||eZ===eP&&(!et||eQ>=eN)?(A.current.tb=!0,e_=eY,em=-em,eF.points=[T(ej,0),T(eS,0)]):A.current.tb=!1}var e0=eW(eL),e1=ej[1]===eS[1];if(e0&&"l"===ej[1]&&(g>ea.right||A.current.rl)){var e2=eI;e1?e2-=K-Y:e2=eR.x-eA.x-ep;var e4=td(e2,e_),e6=td(e2,e_,en);e4>eP||e4===eP&&(!et||e6>=eN)?(A.current.rl=!0,eI=e2,ep=-ep,eF.points=[T(ej,1),T(eS,1)]):A.current.rl=!1}if(e0&&"r"===ej[1]&&(heP||e7===eP&&(!et||e5>=eN)?(A.current.lr=!0,eI=e3,ep=-ep,eF.points=[T(ej,1),T(eS,1)]):A.current.lr=!1}tf();var e9=!0===eD?0:eD;"number"==typeof e9&&(hen.right&&(eI-=g-en.right-ep,F.x>en.right-e9&&(eI+=F.x-en.right+e9)));var e8=!0===eV?0:eV;"number"==typeof e8&&(pen.bottom&&(e_-=m-en.bottom-em,F.y>en.bottom-e8&&(e_+=F.y-en.bottom+e8)));var te=N.x+eI,tt=N.y+e_,tr=F.x,tn=F.y,ta=Math.max(te,tr),ti=Math.min(te+K,tr+Y),tl=Math.max(tt,tn),ts=Math.min(tt+J,tn+X);null==ek||ek(eJ,eF);var tc=ei.right-N.x-(eI+N.width),tu=ei.bottom-N.y-(e_+N.height);1===el&&(eI=Math.floor(eI),tc=Math.floor(tc)),1===es&&(e_=Math.floor(e_),tu=Math.floor(tu)),R({ready:!0,offsetX:eI/el,offsetY:e_/es,offsetR:tc/el,offsetB:tu/es,arrowX:((ta+ti)/2-te)/el,arrowY:((tl+ts)/2-tt)/es,scaleX:el,scaleY:es,align:eF})}function td(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eo,n=N.x+e,o=N.y+t,a=Math.max(n,r.left),i=Math.max(o,r.top);return Math.max(0,(Math.min(n+K,r.right)-a)*(Math.min(o+J,r.bottom)-i))}function tf(){m=(p=N.y+e_)+J,g=(h=N.x+eI)+K}}}),L=function(){R(function(e){return(0,t.default)((0,t.default)({},e),{},{ready:!1})})},(0,d.default)(L,[ev]),(0,d.default)(function(){to||L()},[to]),[N.ready,N.offsetX,N.offsetY,N.offsetR,N.offsetB,N.arrowX,N.arrowY,N.scaleX,N.scaleY,N.align,function(){M.current+=1;var e=M.current;Promise.resolve().then(function(){M.current===e&&z()})}]),tj=(0,r.default)(tS,11),tk=tj[0],tO=tj[1],tT=tj[2],tF=tj[3],tI=tj[4],t_=tj[5],tP=tj[6],tN=tj[7],tR=tj[8],tM=tj[9],tB=tj[10],tA=(0,v.default)(eL,void 0===X?"hover":X,Y,Z),tz=(0,r.default)(tA,2),tL=tz[0],tH=tz[1],tD=tL.has("click"),tV=tH.has("click")||tH.has("contextMenu"),tW=(0,c.default)(function(){tm||tB()});H=function(){ti.current&&eS&&tV&&td(!1)},(0,d.default)(function(){if(to&&e0&&eJ){var e=$(e0),t=$(eJ),r=w(eJ),n=new Set([r].concat((0,F.default)(e),(0,F.default)(t)));function o(){tW(),H()}return n.forEach(function(e){e.addEventListener("scroll",o,{passive:!0})}),r.addEventListener("resize",o,{passive:!0}),tW(),function(){n.forEach(function(e){e.removeEventListener("scroll",o),r.removeEventListener("resize",o)})}}},[to,e0,eJ]),(0,d.default)(function(){tW()},[tC,ev]),(0,d.default)(function(){to&&!(null!=eb&&eb[ev])&&tW()},[JSON.stringify(ew)]);var tG=p.useMemo(function(){var e=function(e,t,r,n){for(var o=r.points,a=Object.keys(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;return r?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}(null==(l=e[s])?void 0:l.points,o,n))return"".concat(t,"-placement-").concat(s)}return""}(eb,J,tM,eS);return(0,a.default)(e,null==eE?void 0:eE(tM))},[tM,eE,eb,J,eS]);p.useImperativeHandle(E,function(){return{nativeElement:e2.current,popupElement:eX.current,forceAlign:tW}});var tU=p.useState(0),tq=(0,r.default)(tU,2),tJ=tq[0],tK=tq[1],tX=p.useState(0),tY=(0,r.default)(tX,2),tZ=tY[0],tQ=tY[1],t0=function(){if(eC&&e0){var e=e0.getBoundingClientRect();tK(e.width),tQ(e.height)}};function t1(e,t,r,n){e7[e]=function(o){var a;null==n||n(o),td(t,r);for(var i=arguments.length,l=Array(i>1?i-1:0),s=1;s1?r-1:0),o=1;o1?r-1:0),o=1;o{"use strict";var t=e.i(552821),r=e.i(931067),n=e.i(209428),o=e.i(703923),a=e.i(707067),i=e.i(343794),l=e.i(271645),s={shiftX:64,adjustY:1},c={adjustX:1,shiftY:!0},u=[0,0],d={left:{points:["cr","cl"],overflow:c,offset:[-4,0],targetOffset:u},right:{points:["cl","cr"],overflow:c,offset:[4,0],targetOffset:u},top:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:u},bottom:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:u},topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:u},leftTop:{points:["tr","tl"],overflow:c,offset:[-4,0],targetOffset:u},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:u},rightTop:{points:["tl","tr"],overflow:c,offset:[4,0],targetOffset:u},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:u},rightBottom:{points:["bl","br"],overflow:c,offset:[4,0],targetOffset:u},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:u},leftBottom:{points:["br","bl"],overflow:c,offset:[-4,0],targetOffset:u}},f=e.i(981444),p=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow","classNames","styles"];let m=(0,l.forwardRef)(function(e,s){var c,u,m,h=e.overlayClassName,g=e.trigger,v=e.mouseEnterDelay,y=e.mouseLeaveDelay,b=e.overlayStyle,w=e.prefixCls,$=void 0===w?"rc-tooltip":w,C=e.children,E=e.onVisibleChange,x=e.afterVisibleChange,S=e.transitionName,j=e.animation,k=e.motion,O=e.placement,T=e.align,F=e.destroyTooltipOnHide,I=e.defaultVisible,_=e.getTooltipContainer,P=e.overlayInnerStyle,N=(e.arrowContent,e.overlay),R=e.id,M=e.showArrow,B=e.classNames,A=e.styles,z=(0,o.default)(e,p),L=(0,f.default)(R),H=(0,l.useRef)(null);(0,l.useImperativeHandle)(s,function(){return H.current});var D=(0,n.default)({},z);return"visible"in e&&(D.popupVisible=e.visible),l.createElement(a.default,(0,r.default)({popupClassName:(0,i.default)(h,null==B?void 0:B.root),prefixCls:$,popup:function(){return l.createElement(t.default,{key:"content",prefixCls:$,id:L,bodyClassName:null==B?void 0:B.body,overlayInnerStyle:(0,n.default)((0,n.default)({},P),null==A?void 0:A.body)},N)},action:void 0===g?["hover"]:g,builtinPlacements:d,popupPlacement:void 0===O?"right":O,ref:H,popupAlign:void 0===T?{}:T,getPopupContainer:_,onPopupVisibleChange:E,afterPopupVisibleChange:x,popupTransitionName:S,popupAnimation:j,popupMotion:k,defaultPopupVisible:I,autoDestroy:void 0!==F&&F,mouseLeaveDelay:void 0===y?.1:y,popupStyle:(0,n.default)((0,n.default)({},b),null==A?void 0:A.root),mouseEnterDelay:void 0===v?0:v,arrow:void 0===M||M},D),(u=(null==(c=l.Children.only(C))?void 0:c.props)||{},m=(0,n.default)((0,n.default)({},u),{},{"aria-describedby":N?L:null}),l.cloneElement(C,m)))});e.s(["default",0,m],793154)},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var n=e.i(931067),o=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),m=e.i(211577),h=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",()=>y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var E=e.i(410160);function x(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=x(),j=e.i(487806),k=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&(0,k.default)(o,r.prototype),o}(e,arguments,(0,j.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,k.default)(r,e)})(e)}var F=/%[sdj%]/g;function I(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function _(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n=a)return e;switch(e){case"%s":return String(r[o++]);case"%d":return Number(r[o++]);case"%j":try{return JSON.stringify(r[o++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function N(e,t,r){var n=0,o=e.length;!function a(i){if(i&&i.length)return void r(i);var l=n;n+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,D=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,E.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(H)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(D)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let G=z,U=function(e,t,r,n,o){(/^\s+$/.test(t)||""===t)&&n.push(_(o.messages.whitespace,e.fullField))},q=function(e,t,r,n,o){if(e.required&&void 0===t)return void z(e,t,r,n,o);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||n.push(_(o.messages.types[a],e.fullField,e.type)):a&&(0,E.default)(t)!==e.type&&n.push(_(o.messages.types[a],e.fullField,e.type))},J=function(e,t,r,n,o){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&n.push(_(o.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?n.push(_(o.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&n.push(_(o.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,n,o){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&n.push(_(o.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,n,o){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||n.push(_(o.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||n.push(_(o.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Y=function(e,t,r,n,o){var a=e.type,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();G(e,t,n,i,o,a),P(t,a)||q(e,t,n,i,o)}r(i)},Z={string:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();G(e,t,n,a,o,"string"),P(t,"string")||(q(e,t,n,a,o),J(e,t,n,a,o),X(e,t,n,a,o),!0===e.whitespace&&U(e,t,n,a,o))}r(a)},method:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},number:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},boolean:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},regexp:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),P(t)||q(e,t,n,a,o)}r(a)},integer:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},float:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},array:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();G(e,t,n,a,o,"array"),null!=t&&(q(e,t,n,a,o),J(e,t,n,a,o))}r(a)},object:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&q(e,t,n,a,o)}r(a)},enum:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o),void 0!==t&&K(e,t,n,a,o)}r(a)},pattern:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();G(e,t,n,a,o),P(t,"string")||X(e,t,n,a,o)}r(a)},date:function(e,t,r,n,o){var a,i=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();G(e,t,n,i,o),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,n,i,o),a&&J(e,a.getTime(),n,i,o))}r(i)},url:Y,hex:Y,email:Y,tel:Y,required:function(e,t,r,n,o){var a=[],i=Array.isArray(t)?"array":(0,E.default)(t);G(e,t,n,a,o,i),r(a)},any:function(e,t,r,n,o){var a=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();G(e,t,n,a,o)}r(a)}};var Q=function(){function e(t){(0,c.default)(this,e),(0,m.default)(this,"rules",null),(0,m.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,E.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var n=e[r];t.rules[r]=Array.isArray(n)?n:[n]})}},{key:"messages",value:function(e){return e&&(this._messages=B(x(),e)),this._messages}},{key:"validate",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=n,c=o;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=x()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var n=r.rules[e],o=a[e];n.forEach(function(n){var i=n;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(o=a[e]=i.transform(o))&&(i.type=i.type||(Array.isArray(o)?"array":(0,E.default)(o)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:o,source:a,field:e}))})});var f={};return function(e,t,r,n,o){if(t.first){var a=new Promise(function(t,a){var i;N((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return n(e),e.length?a(new R(e,I(e))):t(o)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return n(d),d.length?a(new R(d,I(d))):t(o)};l.length||(n(d),t(o)),l.forEach(function(t){var n=e[t];if(-1!==i.indexOf(t))N(n,r,f);else{var o=[],a=0,l=n.length;function c(e){o.push.apply(o,(0,s.default)(e||[])),++a===l&&f(o)}n.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var n,o,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,E.default)(u.fields)||"object"===(0,E.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function m(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=Array.isArray(n)?n:[n];!i.suppressWarning&&o.length&&e.warning("async-validator:",o),o.length&&void 0!==u.message&&null!==u.message&&(o=[].concat(u.message));var c=o.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,_(i.messages.required,u.field))]),r(c);var m={};u.defaultField&&Object.keys(t.value).map(function(e){m[e]=u.defaultField});var h={};Object.keys(m=(0,l.default)((0,l.default)({},m),t.rule.fields)).forEach(function(e){var t=m[e],r=Array.isArray(t)?t:[t];h[e]=r.map(p.bind(null,e))});var g=new e(h);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)n=u.asyncValidator(u,t.value,m,t.source,i);else if(u.validator){try{n=u.validator(u,t.value,m,t.source,i)}catch(e){null==(o=(c=console).error)||o.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),m(e.message)}!0===n?m():!1===n?m("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):n instanceof Array?m(n):n instanceof Error&&m(n.message)}n&&n.then&&n.then(function(){return m()},function(e){return m(e)})},function(e){for(var t=[],r={},n=0;n0)){e.next=23;break}return e.next=21,Promise.all(n.map(function(e,r){return eo("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},o),{},{name:t,enum:(o.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(n){n.then(function(n){n.errors.length&&e([n]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var n=(0,es.default)(e,t);r=(0,er.default)(r,t,n)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,E.default)(t.target)&&e in t.target?t.target[e]:t}function em(e,t,r){var n=e.length;if(t<0||t>=n||r<0||r>=n)return e;var o=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[o],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,n))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[o],(0,s.default)(e.slice(r+1,n))):e}var eh=es,eg=["name"],ev=[];function ey(e,t,r,n,o,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):n!==o}var eb=function(e){(0,f.default)(n,e);var t=(0,p.default)(n);function n(e){var o;return(0,c.default)(this,n),o=t.call(this,e),(0,m.default)((0,d.default)(o),"state",{resetCount:0}),(0,m.default)((0,d.default)(o),"cancelRegisterFunc",null),(0,m.default)((0,d.default)(o),"mounted",!1),(0,m.default)((0,d.default)(o),"touched",!1),(0,m.default)((0,d.default)(o),"dirty",!1),(0,m.default)((0,d.default)(o),"validatePromise",void 0),(0,m.default)((0,d.default)(o),"prevValidating",void 0),(0,m.default)((0,d.default)(o),"errors",ev),(0,m.default)((0,d.default)(o),"warnings",ev),(0,m.default)((0,d.default)(o),"cancelRegister",function(){var e=o.props,t=e.preserve,r=e.isListField,n=e.name;o.cancelRegisterFunc&&o.cancelRegisterFunc(r,t,ec(n)),o.cancelRegisterFunc=null}),(0,m.default)((0,d.default)(o),"getNamePath",function(){var e=o.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,m.default)((0,d.default)(o),"getRules",function(){var e=o.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,m.default)((0,d.default)(o),"refresh",function(){o.mounted&&o.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,m.default)((0,d.default)(o),"metaCache",null),(0,m.default)((0,d.default)(o),"triggerMetaEvent",function(e){var t=o.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},o.getMeta()),{},{destroy:e});(0,g.default)(o.metaCache,r)||t(r),o.metaCache=r}else o.metaCache=null}),(0,m.default)((0,d.default)(o),"onStoreChange",function(e,t,r){var n=o.props,a=n.shouldUpdate,i=n.dependencies,l=void 0===i?[]:i,s=n.onReset,c=r.store,u=o.getNamePath(),d=o.getValue(e),f=o.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(o.touched=!0,o.dirty=!0,o.validatePromise=null,o.errors=ev,o.warnings=ev,o.triggerMetaEvent()),r.type){case"reset":if(!t||p){o.touched=!1,o.dirty=!1,o.validatePromise=void 0,o.errors=ev,o.warnings=ev,o.triggerMetaEvent(),null==s||s(),o.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void o.reRender();break;case"setField":var m=r.data;if(p){"touched"in m&&(o.touched=m.touched),"validating"in m&&!("originRCField"in m)&&(o.validatePromise=m.validating?Promise.resolve([]):null),"errors"in m&&(o.errors=m.errors||ev),"warnings"in m&&(o.warnings=m.warnings||ev),o.dirty=!0,o.triggerMetaEvent(),o.reRender();return}if("value"in m&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void o.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void o.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void o.reRender()}!0===a&&o.reRender()}),(0,m.default)((0,d.default)(o),"validateRules",function(e){var t=o.getNamePath(),r=o.getValue(),n=e||{},c=n.triggerName,u=n.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function n(){var u,f,p,m,h,g,y;return(0,a.default)().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(o.mounted){n.next=2;break}return n.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=o.props).validateFirst)&&f,m=u.messageVariables,h=u.validateDebounce,g=o.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(h&&c)){n.next=10;break}return n.next=8,new Promise(function(e){setTimeout(e,h)});case 8:if(o.validatePromise===d){n.next=10;break}return n.abrupt("return",[]);case 10:return(y=function(e,t,r,n,o,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,n=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(n.validator=function(e,t,n){var o=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(o.validatePromise===d){o.validatePromise=null;var t,r=[],n=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,o=e.errors,a=void 0===o?ev:o;t?n.push.apply(n,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),o.errors=r,o.warnings=n,o.triggerMetaEvent(),o.reRender()}}),n.abrupt("return",y);case 13:case"end":return n.stop()}},n)})));return void 0!==u&&u||(o.validatePromise=d,o.dirty=!0,o.errors=ev,o.warnings=ev,o.triggerMetaEvent(),o.reRender()),d}),(0,m.default)((0,d.default)(o),"isFieldValidating",function(){return!!o.validatePromise}),(0,m.default)((0,d.default)(o),"isFieldTouched",function(){return o.touched}),(0,m.default)((0,d.default)(o),"isFieldDirty",function(){return!!o.dirty||void 0!==o.props.initialValue||void 0!==(0,o.props.fieldContext.getInternalHooks(y).getInitialValue)(o.getNamePath())}),(0,m.default)((0,d.default)(o),"getErrors",function(){return o.errors}),(0,m.default)((0,d.default)(o),"getWarnings",function(){return o.warnings}),(0,m.default)((0,d.default)(o),"isListField",function(){return o.props.isListField}),(0,m.default)((0,d.default)(o),"isList",function(){return o.props.isList}),(0,m.default)((0,d.default)(o),"isPreserve",function(){return o.props.preserve}),(0,m.default)((0,d.default)(o),"getMeta",function(){return o.prevValidating=o.isFieldValidating(),{touched:o.isFieldTouched(),validating:o.prevValidating,errors:o.errors,warnings:o.warnings,name:o.getNamePath(),validated:null===o.validatePromise}}),(0,m.default)((0,d.default)(o),"getOnlyChild",function(e){if("function"==typeof e){var t=o.getMeta();return(0,l.default)((0,l.default)({},o.getOnlyChild(e(o.getControlled(),t,o.props.fieldContext))),{},{isFunction:!0})}var n=(0,h.default)(e);return 1===n.length&&r.isValidElement(n[0])?{child:n[0],isFunction:!1}:{child:n,isFunction:!1}}),(0,m.default)((0,d.default)(o),"getValue",function(e){var t=o.props.fieldContext.getFieldsValue,r=o.getNamePath();return(0,eh.default)(e||t(!0),r)}),(0,m.default)((0,d.default)(o),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=o.props,r=t.name,n=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=o.getNamePath(),h=d.getInternalHooks,g=d.getFieldsValue,v=h(y).dispatch,b=o.getValue(),w=u||function(e){return(0,m.default)({},c,e)},$=e[n],E=void 0!==r?w(b):{},x=(0,l.default)((0,l.default)({},e),E);return x[n]=function(){o.touched=!0,o.dirty=!0,o.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),n=0;n=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),n([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),n([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),n(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=em(f.keys,e,t),n(em(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),eE="__@field_split__";function ex(e){return e.map(function(e){return"".concat((0,E.default)(e),":").concat(e)}).join(eE)}var eS=function(){function e(){(0,c.default)(this,e),(0,m.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(ex(e),t)}},{key:"get",value:function(e){return this.kvs.get(ex(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(ex(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),n=r[0],o=r[1];return e({key:n.split(eE).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),n=r[1],o=r[2];return"number"===n?Number(o):o}),value:o})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,n=t.value;return e[r.join(".")]=n,null}),e}}]),e}(),eh=es,ej=["name"],ek=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,m.default)(this,"formHooked",!1),(0,m.default)(this,"forceRootUpdate",void 0),(0,m.default)(this,"subscribable",!0),(0,m.default)(this,"store",{}),(0,m.default)(this,"fieldEntities",[]),(0,m.default)(this,"initialValues",{}),(0,m.default)(this,"callbacks",{}),(0,m.default)(this,"validateMessages",null),(0,m.default)(this,"preserve",null),(0,m.default)(this,"lastValidatePromise",null),(0,m.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,m.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,m.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,m.default)(this,"prevWithoutPreserves",null),(0,m.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var n,o=(0,er.merge)(e,r.store);null==(n=r.prevWithoutPreserves)||n.map(function(t){var r=t.key;o=(0,er.default)(o,r,(0,eh.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(o)}}),(0,m.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,m.default)(this,"getInitialValue",function(e){var t=(0,eh.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,m.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,m.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,m.default)(this,"setPreserve",function(e){r.preserve=e}),(0,m.default)(this,"watchList",[]),(0,m.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,m.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),n=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,n,e)})}}),(0,m.default)(this,"timeoutId",null),(0,m.default)(this,"warningUnhooked",function(){}),(0,m.default)(this,"updateStore",function(e){r.store=e}),(0,m.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,m.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,m.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,m.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(n=e,o=t):e&&"object"===(0,E.default)(e)&&(a=e.strict,o=e.filter),!0===n&&!o)return r.store;var n,o,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(n)?n:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!n&&null!=(t=(r=e).isListField)&&t.call(r))return;if(o){var c="getMeta"in e?e.getMeta():null;o(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,m.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,eh.default)(r.store,t)}),(0,m.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,m.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,m.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,m.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,n=Array(t),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},n=new eS,o=r.getFieldEntities(!0);o.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var o=n.get(r)||new Set;o.add({entity:e,value:t}),n.set(r,o)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,o=n.get(t);o&&(r=e).push.apply(r,(0,s.default)((0,s.default)(o).map(function(e){return e.entity})))})):e=o,e.forEach(function(e){if(void 0!==e.props.initialValue){var o=e.getNamePath();if(void 0!==r.getInitialValue(o))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(o.join("."),"'. Field can not overwrite it."));else{var a=n.get(o);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(o.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(o);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,o,(0,s.default)(a)[0].value))}}}})}),(0,m.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var n=e.map(ec);n.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:n}),r.notifyObservers(t,n,{type:"reset"}),r.notifyWatch(n)}),(0,m.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,n=[];e.forEach(function(e){var a=e.name,i=(0,o.default)(e,ej),l=ec(a);n.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(n)}),(0,m.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),n=e.getMeta(),o=(0,l.default)((0,l.default)({},n),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(o,"originRCField",{value:!0}),o})}),(0,m.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var n=e.getNamePath();void 0===(0,eh.default)(r.store,n)&&r.updateStore((0,er.default)(r.store,n,t))}}),(0,m.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,m.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var n=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(n,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(n,o){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(o)&&(!n||a.length>1)){var i=n?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,m.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,n=e.value;r.updateValue(t,n);break;case"validateField":var o=e.namePath,a=e.triggerName;r.validateFields([o],{triggerName:a})}}),(0,m.default)(this,"notifyObservers",function(e,t,n){if(r.subscribable){var o=(0,l.default)((0,l.default)({},n),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,o)})}else r.forceRootUpdate()}),(0,m.default)(this,"triggerDependenciesUpdate",function(e,t){var n=r.getDependencyChildrenFields(t);return n.length&&r.validateFields(n),r.notifyObservers(e,n,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(n))}),n}),(0,m.default)(this,"updateValue",function(e,t){var n=ec(e),o=r.store;r.updateStore((0,er.default)(r.store,n,t)),r.notifyObservers(o,[n],{type:"valueUpdate",source:"internal"}),r.notifyWatch([n]);var a=r.triggerDependenciesUpdate(o,n),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[n]),r.getFieldsValue()),r.triggerOnFieldsChange([n].concat((0,s.default)(a)))}),(0,m.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var n=(0,er.merge)(r.store,e);r.updateStore(n)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,m.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,m.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,n=[],o=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);o.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(o.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var o=r.getNamePath();r.isFieldDirty()&&o.length&&(n.push(o),e(o))}})}(e),n}),(0,m.default)(this,"triggerOnFieldsChange",function(e,t){var n=r.callbacks.onFieldsChange;if(n){var o=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),o.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=o.filter(function(t){return ed(e,t.name)});i.length&&n(i,o)}}),(0,m.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var n,o,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),m=new Set,h=c||{},g=h.recursive,v=h.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(m.add(t.join(p)),!u||ed(d,t,g)){var n=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(n.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,n=[],o=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?o.push.apply(o,(0,s.default)(r)):n.push.apply(n,(0,s.default)(r))}),n.length)?Promise.reject({name:t,errors:n,warnings:o}):{name:t,errors:n,warnings:o}}))}}});var y=(n=!1,o=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return n=!0,e}).then(function(r){o-=1,a[i]=r,o>0||(n&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return m.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,m.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),n=r.useState({}),o=(0,eC.default)(n,2)[1];return t.current||(e?t.current=e:t.current=new ek(function(){o({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eF=function(e){var t=e.validateMessages,n=e.onFormChange,o=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){n&&n(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){o&&o(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,m.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",()=>eF,"default",0,eT],696752);var eI=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],eh=es;function e_(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eN=function(){for(var e=arguments.length,t=Array(e),n=0;n1?t-1:0),n=1;n{"use strict";function t(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}e.s(["default",()=>t])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),n=e.i(529681);let o=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,o,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let o=(0,n.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},o))},"NoFormStyle",0,({children:e,status:r,override:n})=>{let o=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},o);return n&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,n,o]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},517455,e=>{"use strict";var t=e.i(271645),r=e.i(666365);e.s(["default",0,e=>{let n=t.default.useContext(r.default);return t.default.useMemo(()=>e?"string"==typeof e?null!=e?e:n:"function"==typeof e?e(n):n:n,[e,n])}])},249616,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(876556),o=e.i(242064),a=e.i(517455);let i=(0,e.i(246422).genStyleHooks)(["Space","Compact"],e=>[(e=>{let{componentCls:t}=e;return{[t]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"}}}})(e)],()=>({}),{resetStyle:!1});var l=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let s=t.createContext(null),c=e=>{let{children:r}=e,n=l(e,["children"]);return t.createElement(s.Provider,{value:t.useMemo(()=>n,[n])},r)};e.s(["NoCompactStyle",0,e=>{let{children:r}=e;return t.createElement(s.Provider,{value:null},r)},"default",0,e=>{let{getPrefixCls:u,direction:d}=t.useContext(o.ConfigContext),{size:f,direction:p,block:m,prefixCls:h,className:g,rootClassName:v,children:y}=e,b=l(e,["size","direction","block","prefixCls","className","rootClassName","children"]),w=(0,a.default)(e=>null!=f?f:e),$=u("space-compact",h),[C,E]=i($),x=(0,r.default)($,E,{[`${$}-rtl`]:"rtl"===d,[`${$}-block`]:m,[`${$}-vertical`]:"vertical"===p},g,v),S=t.useContext(s),j=(0,n.default)(y),k=t.useMemo(()=>j.map((e,r)=>{let n=(null==e?void 0:e.key)||`${$}-item-${r}`;return t.createElement(c,{key:n,compactSize:w,compactDirection:p,isFirstItem:0===r&&(!S||(null==S?void 0:S.isFirstItem)),isLastItem:r===j.length-1&&(!S||(null==S?void 0:S.isLastItem))},e)}),[j,S,p,w,$]);return 0===j.length?null:C(t.createElement("div",Object.assign({className:x},b),k))},"useCompactItemContext",0,(e,n)=>{let o=t.useContext(s),a=t.useMemo(()=>{if(!o)return"";let{compactDirection:t,isFirstItem:a,isLastItem:i}=o,l="vertical"===t?"-vertical-":"-";return(0,r.default)(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:a,[`${e}-compact${l}last-item`]:i,[`${e}-compact${l}item-rtl`]:"rtl"===n})},[e,n,o]);return{compactSize:null==o?void 0:o.compactSize,compactDirection:null==o?void 0:o.compactDirection,compactItemClassnames:a}}],249616)},617206,e=>{"use strict";var t=e.i(271645),r=e.i(62139),n=e.i(249616);e.s(["default",0,e=>{let{space:o,form:a,children:i}=e;if(null==i)return null;let l=i;return a&&(l=t.default.createElement(r.NoFormStyle,{override:!0,status:!0},l)),o&&(l=t.default.createElement(n.NoCompactStyle,null,l)),l}])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),n=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},o=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName,i=(e,t,r)=>void 0!==r?r:`${e}-${t}`;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:n,onEnterActive:n,onLeaveStart:o,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",()=>i])},805984,307358,320560,e=>{"use strict";e.i(296059);var t=e.i(915654);function r(e){let{sizePopupArrow:t,borderRadiusXS:r,borderRadiusOuter:n}=e,o=t/2,a=n/Math.sqrt(2),i=o-n*(1-1/Math.sqrt(2)),l=o-1/Math.sqrt(2)*r,s=n*(Math.sqrt(2)-1)+1/Math.sqrt(2)*r,c=o*Math.sqrt(2)+n*(Math.sqrt(2)-2),u=n*(Math.sqrt(2)-1),d=`polygon(${u}px 100%, 50% ${u}px, ${2*o-u}px 100%, ${u}px 100%)`;return{arrowShadowWidth:c,arrowPath:`path('M 0 ${o} A ${n} ${n} 0 0 0 ${a} ${i} L ${l} ${s} A ${r} ${r} 0 0 1 ${2*o-l} ${s} L ${2*o-a} ${i} A ${n} ${n} 0 0 0 ${2*o-0} ${o} Z')`,arrowPolygon:d}}let n=(e,r,n)=>{let{sizePopupArrow:o,arrowPolygon:a,arrowPath:i,arrowShadowWidth:l,borderRadiusXS:s,calc:c}=e;return{pointerEvents:"none",width:o,height:o,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:o,height:c(o).div(2).equal(),background:r,clipPath:{_multi_value_:!0,value:[a,i]},content:'""'},"&::after":{content:'""',position:"absolute",width:l,height:l,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${(0,t.unit)(s)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:n,zIndex:0,background:"transparent"}}};function o(e){let{contentRadius:t,limitVerticalRadius:r}=e,n=t>12?t+2:12;return{arrowOffsetHorizontal:n,arrowOffsetVertical:r?8:n}}function a(e,r,o){var a,i,l,s,c,u,d,f;let{componentCls:p,boxShadowPopoverArrow:m,arrowOffsetVertical:h,arrowOffsetHorizontal:g}=e,{arrowDistance:v=0,arrowPlacement:y={left:!0,right:!0,top:!0,bottom:!0}}=o||{};return{[p]:Object.assign(Object.assign(Object.assign(Object.assign({[`${p}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},n(e,r,m)),{"&:before":{background:r}})]},(a=!!y.top,i={[`&-placement-top > ${p}-arrow,&-placement-topLeft > ${p}-arrow,&-placement-topRight > ${p}-arrow`]:{bottom:v,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},"&-placement-topLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-topRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},a?i:{})),(l=!!y.bottom,s={[`&-placement-bottom > ${p}-arrow,&-placement-bottomLeft > ${p}-arrow,&-placement-bottomRight > ${p}-arrow`]:{top:v,transform:"translateY(-100%)"},[`&-placement-bottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},"&-placement-bottomLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-bottomRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},l?s:{})),(c=!!y.left,u={[`&-placement-left > ${p}-arrow,&-placement-leftTop > ${p}-arrow,&-placement-leftBottom > ${p}-arrow`]:{right:{_skip_check_:!0,value:v},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${p}-arrow`]:{top:h},[`&-placement-leftBottom > ${p}-arrow`]:{bottom:h}},c?u:{})),(d=!!y.right,f={[`&-placement-right > ${p}-arrow,&-placement-rightTop > ${p}-arrow,&-placement-rightBottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:v},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${p}-arrow`]:{top:h},[`&-placement-rightBottom > ${p}-arrow`]:{bottom:h}},d?f:{}))}}e.s(["genRoundedArrow",0,n,"getArrowToken",()=>r],307358),e.s(["MAX_VERTICAL_CONTENT_RADIUS",0,8,"default",()=>a,"getArrowOffsetToken",()=>o],320560);let i={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},l={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},s=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);function c(e){let{arrowWidth:t,autoAdjustOverflow:r,arrowPointAtCenter:n,offset:a,borderRadius:c,visibleFirst:u}=e,d=t/2,f={},p=o({contentRadius:c,limitVerticalRadius:!0});return Object.keys(i).forEach(e=>{let o=Object.assign(Object.assign({},n&&l[e]||i[e]),{offset:[0,0],dynamicInset:!0});switch(f[e]=o,s.has(e)&&(o.autoArrow=!1),e){case"top":case"topLeft":case"topRight":o.offset[1]=-d-a;break;case"bottom":case"bottomLeft":case"bottomRight":o.offset[1]=d+a;break;case"left":case"leftTop":case"leftBottom":o.offset[0]=-d-a;break;case"right":case"rightTop":case"rightBottom":o.offset[0]=d+a}if(n)switch(e){case"topLeft":case"bottomLeft":o.offset[0]=-p.arrowOffsetHorizontal-d;break;case"topRight":case"bottomRight":o.offset[0]=p.arrowOffsetHorizontal+d;break;case"leftTop":case"rightTop":o.offset[1]=-(2*p.arrowOffsetHorizontal)+d;break;case"leftBottom":case"rightBottom":o.offset[1]=2*p.arrowOffsetHorizontal-d}o.overflow=function(e,t,r,n){if(!1===n)return{adjustX:!1,adjustY:!1};let o={};switch(e){case"top":case"bottom":o.shiftX=2*t.arrowOffsetHorizontal+r,o.shiftY=!0,o.adjustY=!0;break;case"left":case"right":o.shiftY=2*t.arrowOffsetVertical+r,o.shiftX=!0,o.adjustX=!0}let a=Object.assign(Object.assign({},o),n&&"object"==typeof n?n:{});return a.shiftX||(a.adjustX=!0),a.shiftY||(a.adjustY=!0),a}(e,p,t,r),u&&(o.htmlRegion="visibleFirst")}),f}e.s(["default",()=>c],805984)},763731,e=>{"use strict";var t=e.i(271645);function r(e){return e&&t.default.isValidElement(e)&&e.type===t.default.Fragment}let n=(e,r,n)=>t.default.isValidElement(e)?t.default.cloneElement(e,"function"==typeof n?n(e.props||{}):n):r;function o(e,t){return n(e,e,t)}e.s(["cloneElement",()=>o,"isFragment",()=>r,"replaceElement",0,n])},880476,e=>{"use strict";var t=e.i(552821);e.s(["Popup",()=>t.default])},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,n,o=!1)=>{let a=o?"&":"";return{[` ${a}${e}-enter, ${a}${e}-appear `]:Object.assign(Object.assign({},{animationDuration:n,animationFillMode:"both"}),{animationPlayState:"paused"}),[`${a}${e}-leave`]:Object.assign(Object.assign({},{animationDuration:n,animationFillMode:"both"}),{animationPlayState:"paused"}),[` @@ -7,19 +7,19 @@ `]:{animationName:t,animationPlayState:"running"},[`${a}${e}-leave${e}-leave-active`]:{animationName:r,animationPlayState:"running",pointerEvents:"none"}}}])},717356,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let n=new t.Keyframes("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),o=new t.Keyframes("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new t.Keyframes("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),i=new t.Keyframes("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),l=new t.Keyframes("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),s=new t.Keyframes("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),c={zoom:{inKeyframes:n,outKeyframes:o},"zoom-big":{inKeyframes:a,outKeyframes:i},"zoom-big-fast":{inKeyframes:a,outKeyframes:i},"zoom-left":{inKeyframes:new t.Keyframes("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),outKeyframes:new t.Keyframes("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}})},"zoom-right":{inKeyframes:new t.Keyframes("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),outKeyframes:new t.Keyframes("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}})},"zoom-up":{inKeyframes:l,outKeyframes:s},"zoom-down":{inKeyframes:new t.Keyframes("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),outKeyframes:new t.Keyframes("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}})}};e.s(["initZoomMotion",0,(e,t)=>{let{antCls:n}=e,o=`${n}-${t}`,{inKeyframes:a,outKeyframes:i}=c[t];return[(0,r.initMotion)(o,a,i,"zoom-big-fast"===t?e.motionDurationFast:e.motionDurationMid),{[` ${o}-enter, ${o}-appear - `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${o}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},"zoomIn",0,n])},617933,e=>{"use strict";e.s(["PresetColors",0,["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]])},403541,e=>{"use strict";var t=e.i(617933);function r(e,r){return t.PresetColors.reduce((t,n)=>{let o=e[`${n}1`],a=e[`${n}3`],i=e[`${n}6`],l=e[`${n}7`];return Object.assign(Object.assign({},t),r(n,{lightColor:o,lightBorderColor:a,darkColor:i,textColor:l}))},{})}e.s(["genPresetColor",()=>r],403541)},57667,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(717356),o=e.i(320560),a=e.i(307358),i=e.i(403541),l=e.i(246422),s=e.i(838378);let c=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},(0,o.getArrowOffsetToken)({contentRadius:e.borderRadius,limitVerticalRadius:!0})),(0,a.getArrowToken)((0,s.mergeToken)(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)})));e.s(["default",0,(e,a=!0)=>(0,l.genStyleHooks)("Tooltip",e=>{let{borderRadius:a,colorTextLightSolid:l,colorBgSpotlight:c}=e;return[(e=>{let{calc:n,componentCls:a,tooltipMaxWidth:l,tooltipColor:s,tooltipBg:c,tooltipBorderRadius:u,zIndexPopup:d,controlHeight:f,boxShadowSecondary:p,paddingSM:m,paddingXS:h,arrowOffsetHorizontal:g,sizePopupArrow:v}=e,y=n(u).add(v).add(g).equal(),b=n(u).mul(2).add(v).equal();return[{[a]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),{position:"absolute",zIndex:d,display:"block",width:"max-content",maxWidth:l,visibility:"visible","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":c,[`${a}-inner`]:{minWidth:b,minHeight:f,padding:`${(0,t.unit)(e.calc(m).div(2).equal())} ${(0,t.unit)(h)}`,color:`var(--ant-tooltip-color, ${s})`,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:c,borderRadius:u,boxShadow:p,boxSizing:"border-box"},"&-placement-topLeft,&-placement-topRight,&-placement-bottomLeft,&-placement-bottomRight":{minWidth:y},"&-placement-left,&-placement-leftTop,&-placement-leftBottom,&-placement-right,&-placement-rightTop,&-placement-rightBottom":{[`${a}-inner`]:{borderRadius:e.min(u,o.MAX_VERTICAL_CONTENT_RADIUS)}},[`${a}-content`]:{position:"relative"}}),(0,i.genPresetColor)(e,(e,{darkColor:t})=>({[`&${a}-${e}`]:{[`${a}-inner`]:{backgroundColor:t},[`${a}-arrow`]:{"--antd-arrow-background-color":t}}}))),{"&-rtl":{direction:"rtl"}})},(0,o.default)(e,"var(--antd-arrow-background-color)"),{[`${a}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow}}]})((0,s.mergeToken)(e,{tooltipMaxWidth:250,tooltipColor:l,tooltipBorderRadius:a,tooltipBg:c})),(0,n.initZoomMotion)(e,"zoom-big-fast")]},c,{resetStyle:!1,injectStyle:a})(e)])},702779,e=>{"use strict";var t=e.i(8211),r=e.i(617933);let n=r.PresetColors.map(e=>`${e}-inverse`),o=["success","processing","error","default","warning"];function a(e,o=!0){return o?[].concat((0,t.default)(n),(0,t.default)(r.PresetColors)).includes(e):r.PresetColors.includes(e)}function i(e){return o.includes(e)}e.s(["isPresetColor",()=>a,"isPresetStatusColor",()=>i])},571070,814690,162464,509808,e=>{"use strict";var t=e.i(278409),r=e.i(233848);e.i(247167),e.i(931067);var n=e.i(211577),o=e.i(392221),a=e.i(271645),i=e.i(209428),l=e.i(868917),s=e.i(674813),c=e.i(703923),u=e.i(410160);e.i(262370);var d=e.i(135551),f=["b"],p=["v"],m=function(e){return Math.round(Number(e||0))},h=function(e){if(e instanceof d.FastColor)return e;if(e&&"object"===(0,u.default)(e)&&"h"in e&&"b"in e){var t=e.b,r=(0,c.default)(e,f);return(0,i.default)((0,i.default)({},r),{},{v:t})}return"string"==typeof e&&/hsb/.test(e)?e.replace(/hsb/,"hsv"):e},g=function(e){(0,l.default)(o,e);var n=(0,s.default)(o);function o(e){return(0,t.default)(this,o),n.call(this,h(e))}return(0,r.default)(o,[{key:"toHsbString",value:function(){var e=this.toHsb(),t=m(100*e.s),r=m(100*e.b),n=m(e.h),o=e.a,a="hsb(".concat(n,", ").concat(t,"%, ").concat(r,"%)"),i="hsba(".concat(n,", ").concat(t,"%, ").concat(r,"%, ").concat(o.toFixed(2*(0!==o)),")");return 1===o?a:i}},{key:"toHsb",value:function(){var e=this.toHsv(),t=e.v,r=(0,c.default)(e,p);return(0,i.default)((0,i.default)({},r),{},{b:t,a:this.a})}}]),o}(d.FastColor);e.s(["Color",()=>g],814690);var v=function(e){return e instanceof g?e:new g(e)};v("#1677ff");var y=e.i(343794);e.s(["default",0,function(e){var t=e.color,r=e.prefixCls,n=e.className,o=e.style,i=e.onClick,l="".concat(r,"-color-block");return a.default.createElement("div",{className:(0,y.default)(l,n),style:o,onClick:i},a.default.createElement("div",{className:"".concat(l,"-inner"),style:{background:t}}))}],162464);e.i(62664);e.i(697539);e.i(914949);e.s([],509808);let b=(0,r.default)(function e(r){var n;if((0,t.default)(this,e),this.cleared=!1,r instanceof e){this.metaColor=r.metaColor.clone(),this.colors=null==(n=r.colors)?void 0:n.map(t=>({color:new e(t.color),percent:t.percent})),this.cleared=r.cleared;return}let o=Array.isArray(r);o&&r.length?(this.colors=r.map(({color:t,percent:r})=>({color:new e(t),percent:r})),this.metaColor=new g(this.colors[0].color.metaColor)):this.metaColor=new g(o?"":r),r&&(!o||this.colors)||(this.metaColor=this.metaColor.setA(0),this.cleared=!0)},[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){var e,t;return e=this.toHexString(),t=this.metaColor.a<1,e&&(null==e?void 0:e.replace(/[^\w/]/g,"").slice(0,t?8:6))||""}},{key:"toHexString",value:function(){return this.metaColor.toHexString()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}},{key:"isGradient",value:function(){return!!this.colors&&!this.cleared}},{key:"getColors",value:function(){return this.colors||[{color:this,percent:0}]}},{key:"toCssString",value:function(){let{colors:e}=this;if(e){let t=e.map(e=>`${e.color.toRgbString()} ${e.percent}%`).join(", ");return`linear-gradient(90deg, ${t})`}return this.metaColor.toRgbString()}},{key:"equals",value:function(e){return!!e&&this.isGradient()===e.isGradient()&&(this.isGradient()?this.colors.length===e.colors.length&&this.colors.every((t,r)=>{let n=e.colors[r];return t.percent===n.percent&&t.color.equals(n.color)}):this.toHexString()===e.toHexString())}}]);e.s(["AggregationColor",()=>b],571070)},656449,e=>{"use strict";e.i(8211),e.i(509808),e.i(814690);var t=e.i(571070);e.s(["generateColor",0,e=>e instanceof t.AggregationColor?e:new t.AggregationColor(e)])},491816,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(793154),o=e.i(914949),a=e.i(617206),i=e.i(122767),l=e.i(613541),s=e.i(805984),c=e.i(763731),u=e.i(747656),d=e.i(340010),f=e.i(242064),p=e.i(104458),m=e.i(880476),h=e.i(57667),g=e.i(702779),v=e.i(656449);function y(e,t){let n=(0,g.isPresetColor)(t),o=(0,r.default)({[`${e}-${t}`]:t&&n}),a={},i={},l=(0,v.generateColor)(t).toRgb(),s=(.299*l.r+.587*l.g+.114*l.b)/255;return t&&!n&&(a.background=t,a["--ant-tooltip-color"]=s<.5?"#FFF":"#000",i["--antd-arrow-background-color"]=t),{className:o,overlayStyle:a,arrowStyle:i}}var b=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let w=t.forwardRef((e,m)=>{var g,v;let{prefixCls:w,openClassName:$,getTooltipContainer:C,color:E,overlayInnerStyle:x,children:S,afterOpenChange:k,afterVisibleChange:j,destroyTooltipOnHide:O,destroyOnHidden:T,arrow:F=!0,title:_,overlay:I,builtinPlacements:P,arrowPointAtCenter:N=!1,autoAdjustOverflow:R=!0,motion:M,getPopupContainer:B,placement:A="top",mouseEnterDelay:z=.1,mouseLeaveDelay:L=.1,overlayStyle:H,rootClassName:D,overlayClassName:V,styles:W,classNames:G}=e,U=b(e,["prefixCls","openClassName","getTooltipContainer","color","overlayInnerStyle","children","afterOpenChange","afterVisibleChange","destroyTooltipOnHide","destroyOnHidden","arrow","title","overlay","builtinPlacements","arrowPointAtCenter","autoAdjustOverflow","motion","getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName","overlayClassName","styles","classNames"]),q=!!F,[,J]=(0,p.useToken)(),{getPopupContainer:K,getPrefixCls:X,direction:Y,className:Z,style:Q,classNames:ee,styles:et}=(0,f.useComponentConfig)("tooltip"),er=(0,u.devUseWarning)("Tooltip"),en=t.useRef(null),eo=()=>{var e;null==(e=en.current)||e.forceAlign()};t.useImperativeHandle(m,()=>{var e,t;return{forceAlign:eo,forcePopupAlign:()=>{er.deprecated(!1,"forcePopupAlign","forceAlign"),eo()},nativeElement:null==(e=en.current)?void 0:e.nativeElement,popupElement:null==(t=en.current)?void 0:t.popupElement}});let[ea,ei]=(0,o.default)(!1,{value:null!=(g=e.open)?g:e.visible,defaultValue:null!=(v=e.defaultOpen)?v:e.defaultVisible}),el=!_&&!I&&0!==_,es=t.useMemo(()=>{var e,t;let r=N;return"object"==typeof F&&(r=null!=(t=null!=(e=F.pointAtCenter)?e:F.arrowPointAtCenter)?t:N),P||(0,s.default)({arrowPointAtCenter:r,autoAdjustOverflow:R,arrowWidth:q?J.sizePopupArrow:0,borderRadius:J.borderRadius,offset:J.marginXXS,visibleFirst:!0})},[N,F,P,J]),ec=t.useMemo(()=>0===_?_:I||_||"",[I,_]),eu=t.createElement(a.default,{space:!0},"function"==typeof ec?ec():ec),ed=X("tooltip",w),ef=X(),ep=e["data-popover-inject"],em=ea;"open"in e||"visible"in e||!el||(em=!1);let eh=t.isValidElement(S)&&!(0,c.isFragment)(S)?S:t.createElement("span",null,S),eg=eh.props,ev=eg.className&&"string"!=typeof eg.className?eg.className:(0,r.default)(eg.className,$||`${ed}-open`),[ey,eb,ew]=(0,h.default)(ed,!ep),e$=y(ed,E),eC=e$.arrowStyle,eE=(0,r.default)(V,{[`${ed}-rtl`]:"rtl"===Y},e$.className,D,eb,ew,Z,ee.root,null==G?void 0:G.root),ex=(0,r.default)(ee.body,null==G?void 0:G.body),[eS,ek]=(0,i.useZIndex)("Tooltip",U.zIndex),ej=t.createElement(n.default,Object.assign({},U,{zIndex:eS,showArrow:q,placement:A,mouseEnterDelay:z,mouseLeaveDelay:L,prefixCls:ed,classNames:{root:eE,body:ex},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},eC),et.root),Q),H),null==W?void 0:W.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},et.body),x),null==W?void 0:W.body),e$.overlayStyle)},getTooltipContainer:B||C||K,ref:en,builtinPlacements:es,overlay:eu,visible:em,onVisibleChange:t=>{var r,n;ei(!el&&t),el||(null==(r=e.onOpenChange)||r.call(e,t),null==(n=e.onVisibleChange)||n.call(e,t))},afterVisibleChange:null!=k?k:j,arrowContent:t.createElement("span",{className:`${ed}-arrow-content`}),motion:{motionName:(0,l.getTransitionName)(ef,"zoom-big-fast",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:null!=T?T:!!O}),em?(0,c.cloneElement)(eh,{className:ev}):eh);return ey(t.createElement(d.default.Provider,{value:ek},ej))});w._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:n,className:o,placement:a="top",title:i,color:l,overlayInnerStyle:s}=e,{getPrefixCls:c}=t.useContext(f.ConfigContext),u=c("tooltip",n),[d,p,g]=(0,h.default)(u),v=y(u,l),b=v.arrowStyle,w=Object.assign(Object.assign({},s),v.overlayStyle),$=(0,r.default)(p,g,u,`${u}-pure`,`${u}-placement-${a}`,o,v.className);return d(t.createElement("div",{className:$,style:b},t.createElement("div",{className:`${u}-arrow`}),t.createElement(m.Popup,Object.assign({},e,{className:p,prefixCls:u,overlayInnerStyle:w}),i)))},e.s(["default",0,w],491816)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},408850,929447,e=>{"use strict";var t=e.i(271645),r=e.i(595575),n=e.i(87414);let o=(e,o)=>{let a=t.useContext(r.default);return[t.useMemo(()=>{var t;let r=o||n.default[e],i=null!=(t=null==a?void 0:a[e])?t:{};return Object.assign(Object.assign({},"function"==typeof r?r():r),i||{})},[e,o,a]),t.useMemo(()=>{let e=null==a?void 0:a.locale;return(null==a?void 0:a.exist)&&!e?n.default.locale:e},[a])]};e.s(["default",0,o],929447),e.s(["useLocale",0,o],408850)},121872,26905,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(606262),o=e.i(611935),a=e.i(242064),i=e.i(763731);let l=(0,e.i(246422).genComponentStyleHook)("Wave",e=>{let{componentCls:t,colorPrimary:r}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${r})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:`box-shadow 0.4s ${e.motionEaseOutCirc},opacity 2s ${e.motionEaseOutCirc}`,"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut},opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`}}}}});var s=e.i(175066),c=e.i(963188),u=e.i(719581);let d=`${a.defaultPrefixCls}-wave-target`;e.s(["TARGET_CLS",0,d],26905);var f=e.i(361275),p=e.i(783164);function m(e){return e&&"#fff"!==e&&"#ffffff"!==e&&"rgb(255, 255, 255)"!==e&&"rgba(255, 255, 255, 1)"!==e&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&"transparent"!==e&&"canvastext"!==e}function h(e){return Number.isNaN(e)?0:e}let g=e=>{let{className:n,target:a,component:i,registerUnmount:l}=e,s=t.useRef(null),u=t.useRef(null);t.useEffect(()=>{u.current=l()},[]);let[p,g]=t.useState(null),[v,y]=t.useState([]),[b,w]=t.useState(0),[$,C]=t.useState(0),[E,x]=t.useState(0),[S,k]=t.useState(0),[j,O]=t.useState(!1),T={left:b,top:$,width:E,height:S,borderRadius:v.map(e=>`${e}px`).join(" ")};function F(){let e=getComputedStyle(a);g(function(e){var t;let{borderTopColor:r,borderColor:n,backgroundColor:o}=getComputedStyle(e);return null!=(t=[r,n,o].find(m))?t:null}(a));let t="static"===e.position,{borderLeftWidth:r,borderTopWidth:n}=e;w(t?a.offsetLeft:h(-Number.parseFloat(r))),C(t?a.offsetTop:h(-Number.parseFloat(n))),x(a.offsetWidth),k(a.offsetHeight);let{borderTopLeftRadius:o,borderTopRightRadius:i,borderBottomLeftRadius:l,borderBottomRightRadius:s}=e;y([o,i,s,l].map(e=>h(Number.parseFloat(e))))}if(p&&(T["--wave-color"]=p),t.useEffect(()=>{if(a){let e,t=(0,c.default)(()=>{F(),O(!0)});return"u">typeof ResizeObserver&&(e=new ResizeObserver(F)).observe(a),()=>{c.default.cancel(t),null==e||e.disconnect()}}},[a]),!j)return null;let _=("Checkbox"===i||"Radio"===i)&&(null==a?void 0:a.classList.contains(d));return t.createElement(f.default,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(e,t)=>{var r,n;if(t.deadline||"opacity"===t.propertyName){let e=null==(r=s.current)?void 0:r.parentElement;null==(n=u.current)||n.call(u).then(()=>{null==e||e.remove()})}return!1}},({className:e},a)=>t.createElement("div",{ref:(0,o.composeRef)(s,a),className:(0,r.default)(n,e,{"wave-quick":_}),style:T}))};e.s(["default",0,e=>{let{children:f,disabled:m,component:h}=e,{getPrefixCls:v}=(0,t.useContext)(a.ConfigContext),y=(0,t.useRef)(null),b=v("wave"),[,w]=l(b),$=((e,r,n)=>{let{wave:o}=t.useContext(a.ConfigContext),[,i,l]=(0,u.default)(),f=(0,s.default)(a=>{let s=e.current;if((null==o?void 0:o.disabled)||!s)return;let c=s.querySelector(`.${d}`)||s,{showEffect:u}=o||{};(u||((e,r)=>{var n;let{component:o}=r;if("Checkbox"===o&&!(null==(n=e.querySelector("input"))?void 0:n.checked))return;let a=document.createElement("div");a.style.position="absolute",a.style.left="0px",a.style.top="0px",null==e||e.insertBefore(a,null==e?void 0:e.firstChild);let i=(0,p.unstableSetRender)(),l=null;l=i(t.createElement(g,Object.assign({},r,{target:e,registerUnmount:function(){return l}})),a)}))(c,{className:r,token:i,component:n,event:a,hashId:l})}),m=t.useRef(null);return e=>{c.default.cancel(m.current),m.current=(0,c.default)(()=>{f(e)})}})(y,(0,r.default)(b,w),h);if(t.default.useEffect(()=>{let e=y.current;if(!e||e.nodeType!==window.Node.ELEMENT_NODE||m)return;let t=t=>{!(0,n.default)(t.target)||!e.getAttribute||e.getAttribute("disabled")||e.disabled||e.className.includes("disabled")&&!e.className.includes("disabled:")||"true"===e.getAttribute("aria-disabled")||e.className.includes("-leave")||$(t)};return e.addEventListener("click",t,!0),()=>{e.removeEventListener("click",t,!0)}},[m]),!t.default.isValidElement(f))return null!=f?f:null;let C=(0,o.supportRef)(f)?(0,o.composeRef)((0,o.getNodeRef)(f),y):y;return(0,i.cloneElement)(f,{ref:C})}],121872)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["InfoCircleOutlined",0,a],827252)},735996,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(242064),o=e.i(104458),a=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let i=t.createContext(void 0);e.s(["GroupSizeContext",0,i,"default",0,e=>{let{getPrefixCls:l,direction:s}=t.useContext(n.ConfigContext),{prefixCls:c,size:u,className:d}=e,f=a(e,["prefixCls","size","className"]),p=l("btn-group",c),[,,m]=(0,o.useToken)(),h=t.useMemo(()=>{switch(u){case"large":return"lg";case"small":return"sm";default:return""}},[u]),g=(0,r.default)(p,{[`${p}-${h}`]:h,[`${p}-rtl`]:"rtl"===s},d,m);return t.createElement(i.Provider,{value:u},t.createElement("div",Object.assign({},f,{className:g})))}])},62405,869693,868004,470977,e=>{"use strict";var t=e.i(8211),r=e.i(271645),n=e.i(763731),o=e.i(617933);let a=/^[\u4E00-\u9FA5]{2}$/,i=a.test.bind(a);function l(e){return"danger"===e?{danger:!0}:{type:e}}function s(e){return"string"==typeof e}function c(e){return"text"===e||"link"===e}function u(e,t){let o=!1,a=[];return r.default.Children.forEach(e,e=>{let t=typeof e,r="string"===t||"number"===t;if(o&&r){let t=a.length-1,r=a[t];a[t]=`${r}${e}`}else a.push(e);o=r}),r.default.Children.map(a,e=>(function(e,t){if(null==e)return;let o=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&s(e.type)&&i(e.props.children)?(0,n.cloneElement)(e,{children:e.props.children.split("").join(o)}):s(e)?i(e)?r.default.createElement("span",null,e.split("").join(o)):r.default.createElement("span",null,e):(0,n.isFragment)(e)?r.default.createElement("span",null,e):e})(e,t))}["default","primary","danger"].concat((0,t.default)(o.PresetColors)),e.s(["convertLegacyProps",()=>l,"isTwoCNChar",0,i,"isUnBorderedButtonVariant",()=>c,"spaceChildren",()=>u],62405);var d=e.i(739295),f=e.i(343794),p=e.i(361275);let m=(0,r.forwardRef)((e,t)=>{let{className:n,style:o,children:a,prefixCls:i}=e,l=(0,f.default)(`${i}-icon`,n);return r.default.createElement("span",{ref:t,className:l,style:o},a)});e.s(["default",0,m],869693);let h=(0,r.forwardRef)((e,t)=>{let{prefixCls:n,className:o,style:a,iconClassName:i}=e,l=(0,f.default)(`${n}-loading-icon`,o);return r.default.createElement(m,{prefixCls:n,className:l,style:a,ref:t},r.default.createElement(d.default,{className:i}))}),g=()=>({width:0,opacity:0,transform:"scale(0)"}),v=e=>({width:e.scrollWidth,opacity:1,transform:"scale(1)"});e.s(["default",0,e=>{let{prefixCls:t,loading:n,existIcon:o,className:a,style:i,mount:l}=e;return o?r.default.createElement(h,{prefixCls:t,className:a,style:i}):r.default.createElement(p.default,{visible:!!n,motionName:`${t}-loading-icon-motion`,motionAppear:!l,motionEnter:!l,motionLeave:!l,removeOnLeave:!0,onAppearStart:g,onAppearActive:v,onEnterStart:g,onEnterActive:v,onLeaveStart:v,onLeaveActive:g},({className:e,style:n},o)=>{let l=Object.assign(Object.assign({},i),n);return r.default.createElement(h,{prefixCls:t,className:(0,f.default)(a,e),style:l,ref:o})})}],868004);let y=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}});e.s(["default",0,e=>{let{componentCls:t,fontSize:r,lineWidth:n,groupBorderColor:o,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:e.calc(n).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover, &:focus, &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:r}},y(`${t}-primary`,o),y(`${t}-danger`,a)]}}],470977)},202599,e=>{"use strict";var t=e.i(162464);e.s(["ColorBlock",()=>t.default])},286612,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],286612)},301092,e=>{"use strict";var t=e.i(931067),r=e.i(8211),n=e.i(392221),o=e.i(410160),a=e.i(343794),i=e.i(914949),l=e.i(883110),s=e.i(271645),c=e.i(703923),u=e.i(876556),d=e.i(209428),f=e.i(211577),p=e.i(361275),m=e.i(404948),h=s.default.forwardRef(function(e,t){var r=e.prefixCls,o=e.forceRender,i=e.className,l=e.style,c=e.children,u=e.isActive,d=e.role,p=e.classNames,m=e.styles,h=s.default.useState(u||o),g=(0,n.default)(h,2),v=g[0],y=g[1];return(s.default.useEffect(function(){(o||u)&&y(!0)},[o,u]),v)?s.default.createElement("div",{ref:t,className:(0,a.default)("".concat(r,"-content"),(0,f.default)((0,f.default)({},"".concat(r,"-content-active"),u),"".concat(r,"-content-inactive"),!u),i),style:l,role:d},s.default.createElement("div",{className:(0,a.default)("".concat(r,"-content-box"),null==p?void 0:p.body),style:null==m?void 0:m.body},c)):null});h.displayName="PanelContent";var g=["showArrow","headerClass","isActive","onItemClick","forceRender","className","classNames","styles","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],v=s.default.forwardRef(function(e,r){var n=e.showArrow,o=e.headerClass,i=e.isActive,l=e.onItemClick,u=e.forceRender,v=e.className,y=e.classNames,b=void 0===y?{}:y,w=e.styles,$=void 0===w?{}:w,C=e.prefixCls,E=e.collapsible,x=e.accordion,S=e.panelKey,k=e.extra,j=e.header,O=e.expandIcon,T=e.openMotion,F=e.destroyInactivePanel,_=e.children,I=(0,c.default)(e,g),P="disabled"===E,N=(0,f.default)((0,f.default)((0,f.default)({onClick:function(){null==l||l(S)},onKeyDown:function(e){("Enter"===e.key||e.keyCode===m.default.ENTER||e.which===m.default.ENTER)&&(null==l||l(S))},role:x?"tab":"button"},"aria-expanded",i),"aria-disabled",P),"tabIndex",P?-1:0),R="function"==typeof O?O(e):s.default.createElement("i",{className:"arrow"}),M=R&&s.default.createElement("div",(0,t.default)({className:"".concat(C,"-expand-icon")},["header","icon"].includes(E)?N:{}),R),B=(0,a.default)("".concat(C,"-item"),(0,f.default)((0,f.default)({},"".concat(C,"-item-active"),i),"".concat(C,"-item-disabled"),P),v),A=(0,a.default)(o,"".concat(C,"-header"),(0,f.default)({},"".concat(C,"-collapsible-").concat(E),!!E),b.header),z=(0,d.default)({className:A,style:$.header},["header","icon"].includes(E)?{}:N);return s.default.createElement("div",(0,t.default)({},I,{ref:r,className:B}),s.default.createElement("div",z,(void 0===n||n)&&M,s.default.createElement("span",(0,t.default)({className:"".concat(C,"-header-text")},"header"===E?N:{}),j),null!=k&&"boolean"!=typeof k&&s.default.createElement("div",{className:"".concat(C,"-extra")},k)),s.default.createElement(p.default,(0,t.default)({visible:i,leavedClassName:"".concat(C,"-content-hidden")},T,{forceRender:u,removeOnLeave:F}),function(e,t){var r=e.className,n=e.style;return s.default.createElement(h,{ref:t,prefixCls:C,className:r,classNames:b,style:n,styles:$,isActive:i,forceRender:u,role:x?"tabpanel":void 0},_)}))}),y=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],b=function(e,r){var n=r.prefixCls,o=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,u=r.activeKey,d=r.openMotion,f=r.expandIcon;return e.map(function(e,r){var p=e.children,m=e.label,h=e.key,g=e.collapsible,b=e.onItemClick,w=e.destroyInactivePanel,$=(0,c.default)(e,y),C=String(null!=h?h:r),E=null!=g?g:a,x=!1;return x=o?u[0]===C:u.indexOf(C)>-1,s.default.createElement(v,(0,t.default)({},$,{prefixCls:n,key:C,panelKey:C,isActive:x,accordion:o,openMotion:d,expandIcon:f,header:m,collapsible:E,onItemClick:function(e){"disabled"!==E&&(l(e),null==b||b(e))},destroyInactivePanel:null!=w?w:i}),p)})},w=function(e,t,r){if(!e)return null;var n=r.prefixCls,o=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,c=r.activeKey,u=r.openMotion,d=r.expandIcon,f=e.key||String(t),p=e.props,m=p.header,h=p.headerClass,g=p.destroyInactivePanel,v=p.collapsible,y=p.onItemClick,b=!1;b=o?c[0]===f:c.indexOf(f)>-1;var w=null!=v?v:a,$={key:f,panelKey:f,header:m,headerClass:h,isActive:b,prefixCls:n,destroyInactivePanel:null!=g?g:i,openMotion:u,accordion:o,children:e.props.children,onItemClick:function(e){"disabled"!==w&&(l(e),null==y||y(e))},expandIcon:d,collapsible:w};return"string"==typeof e.type?e:(Object.keys($).forEach(function(e){void 0===$[e]&&delete $[e]}),s.default.cloneElement(e,$))},$=e.i(244009);function C(e){var t=e;if(!Array.isArray(t)){var r=(0,o.default)(t);t="number"===r||"string"===r?[t]:[]}return t.map(function(e){return String(e)})}let E=Object.assign(s.default.forwardRef(function(e,o){var c,d=e.prefixCls,f=void 0===d?"rc-collapse":d,p=e.destroyInactivePanel,m=e.style,h=e.accordion,g=e.className,v=e.children,y=e.collapsible,E=e.openMotion,x=e.expandIcon,S=e.activeKey,k=e.defaultActiveKey,j=e.onChange,O=e.items,T=(0,a.default)(f,g),F=(0,i.default)([],{value:S,onChange:function(e){return null==j?void 0:j(e)},defaultValue:k,postState:C}),_=(0,n.default)(F,2),I=_[0],P=_[1];(0,l.default)(!v,"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.");var N=(c={prefixCls:f,accordion:h,openMotion:E,expandIcon:x,collapsible:y,destroyInactivePanel:void 0!==p&&p,onItemClick:function(e){return P(function(){return h?I[0]===e?[]:[e]:I.indexOf(e)>-1?I.filter(function(t){return t!==e}):[].concat((0,r.default)(I),[e])})},activeKey:I},Array.isArray(O)?b(O,c):(0,u.default)(v).map(function(e,t){return w(e,t,c)}));return s.default.createElement("div",(0,t.default)({ref:o,className:T,style:m,role:h?"tablist":void 0},(0,$.default)(e,{aria:!0,data:!0})),N)}),{Panel:v});E.Panel,e.s(["default",0,E],301092)},125234,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(301092),o=e.i(242064);let a=t.forwardRef((e,a)=>{let{getPrefixCls:i}=t.useContext(o.ConfigContext),{prefixCls:l,className:s,showArrow:c=!0}=e,u=i("collapse",l),d=(0,r.default)({[`${u}-no-arrow`]:!c},s);return t.createElement(n.default.Panel,Object.assign({ref:a},e,{prefixCls:u,className:d}))});e.s(["default",0,a])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${o}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},"zoomIn",0,n])},617933,e=>{"use strict";e.s(["PresetColors",0,["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]])},403541,e=>{"use strict";var t=e.i(617933);function r(e,r){return t.PresetColors.reduce((t,n)=>{let o=e[`${n}1`],a=e[`${n}3`],i=e[`${n}6`],l=e[`${n}7`];return Object.assign(Object.assign({},t),r(n,{lightColor:o,lightBorderColor:a,darkColor:i,textColor:l}))},{})}e.s(["genPresetColor",()=>r],403541)},57667,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(717356),o=e.i(320560),a=e.i(307358),i=e.i(403541),l=e.i(246422),s=e.i(838378);let c=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},(0,o.getArrowOffsetToken)({contentRadius:e.borderRadius,limitVerticalRadius:!0})),(0,a.getArrowToken)((0,s.mergeToken)(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)})));e.s(["default",0,(e,a=!0)=>(0,l.genStyleHooks)("Tooltip",e=>{let{borderRadius:a,colorTextLightSolid:l,colorBgSpotlight:c}=e;return[(e=>{let{calc:n,componentCls:a,tooltipMaxWidth:l,tooltipColor:s,tooltipBg:c,tooltipBorderRadius:u,zIndexPopup:d,controlHeight:f,boxShadowSecondary:p,paddingSM:m,paddingXS:h,arrowOffsetHorizontal:g,sizePopupArrow:v}=e,y=n(u).add(v).add(g).equal(),b=n(u).mul(2).add(v).equal();return[{[a]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),{position:"absolute",zIndex:d,display:"block",width:"max-content",maxWidth:l,visibility:"visible","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":c,[`${a}-inner`]:{minWidth:b,minHeight:f,padding:`${(0,t.unit)(e.calc(m).div(2).equal())} ${(0,t.unit)(h)}`,color:`var(--ant-tooltip-color, ${s})`,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:c,borderRadius:u,boxShadow:p,boxSizing:"border-box"},"&-placement-topLeft,&-placement-topRight,&-placement-bottomLeft,&-placement-bottomRight":{minWidth:y},"&-placement-left,&-placement-leftTop,&-placement-leftBottom,&-placement-right,&-placement-rightTop,&-placement-rightBottom":{[`${a}-inner`]:{borderRadius:e.min(u,o.MAX_VERTICAL_CONTENT_RADIUS)}},[`${a}-content`]:{position:"relative"}}),(0,i.genPresetColor)(e,(e,{darkColor:t})=>({[`&${a}-${e}`]:{[`${a}-inner`]:{backgroundColor:t},[`${a}-arrow`]:{"--antd-arrow-background-color":t}}}))),{"&-rtl":{direction:"rtl"}})},(0,o.default)(e,"var(--antd-arrow-background-color)"),{[`${a}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow}}]})((0,s.mergeToken)(e,{tooltipMaxWidth:250,tooltipColor:l,tooltipBorderRadius:a,tooltipBg:c})),(0,n.initZoomMotion)(e,"zoom-big-fast")]},c,{resetStyle:!1,injectStyle:a})(e)])},702779,e=>{"use strict";var t=e.i(8211),r=e.i(617933);let n=r.PresetColors.map(e=>`${e}-inverse`),o=["success","processing","error","default","warning"];function a(e,o=!0){return o?[].concat((0,t.default)(n),(0,t.default)(r.PresetColors)).includes(e):r.PresetColors.includes(e)}function i(e){return o.includes(e)}e.s(["isPresetColor",()=>a,"isPresetStatusColor",()=>i])},571070,814690,162464,509808,e=>{"use strict";var t=e.i(278409),r=e.i(233848);e.i(247167),e.i(931067);var n=e.i(211577),o=e.i(392221),a=e.i(271645),i=e.i(209428),l=e.i(868917),s=e.i(674813),c=e.i(703923),u=e.i(410160);e.i(262370);var d=e.i(135551),f=["b"],p=["v"],m=function(e){return Math.round(Number(e||0))},h=function(e){if(e instanceof d.FastColor)return e;if(e&&"object"===(0,u.default)(e)&&"h"in e&&"b"in e){var t=e.b,r=(0,c.default)(e,f);return(0,i.default)((0,i.default)({},r),{},{v:t})}return"string"==typeof e&&/hsb/.test(e)?e.replace(/hsb/,"hsv"):e},g=function(e){(0,l.default)(o,e);var n=(0,s.default)(o);function o(e){return(0,t.default)(this,o),n.call(this,h(e))}return(0,r.default)(o,[{key:"toHsbString",value:function(){var e=this.toHsb(),t=m(100*e.s),r=m(100*e.b),n=m(e.h),o=e.a,a="hsb(".concat(n,", ").concat(t,"%, ").concat(r,"%)"),i="hsba(".concat(n,", ").concat(t,"%, ").concat(r,"%, ").concat(o.toFixed(2*(0!==o)),")");return 1===o?a:i}},{key:"toHsb",value:function(){var e=this.toHsv(),t=e.v,r=(0,c.default)(e,p);return(0,i.default)((0,i.default)({},r),{},{b:t,a:this.a})}}]),o}(d.FastColor);e.s(["Color",()=>g],814690);var v=function(e){return e instanceof g?e:new g(e)};v("#1677ff");var y=e.i(343794);e.s(["default",0,function(e){var t=e.color,r=e.prefixCls,n=e.className,o=e.style,i=e.onClick,l="".concat(r,"-color-block");return a.default.createElement("div",{className:(0,y.default)(l,n),style:o,onClick:i},a.default.createElement("div",{className:"".concat(l,"-inner"),style:{background:t}}))}],162464);e.i(62664);e.i(697539);e.i(914949);e.s([],509808);let b=(0,r.default)(function e(r){var n;if((0,t.default)(this,e),this.cleared=!1,r instanceof e){this.metaColor=r.metaColor.clone(),this.colors=null==(n=r.colors)?void 0:n.map(t=>({color:new e(t.color),percent:t.percent})),this.cleared=r.cleared;return}let o=Array.isArray(r);o&&r.length?(this.colors=r.map(({color:t,percent:r})=>({color:new e(t),percent:r})),this.metaColor=new g(this.colors[0].color.metaColor)):this.metaColor=new g(o?"":r),r&&(!o||this.colors)||(this.metaColor=this.metaColor.setA(0),this.cleared=!0)},[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){var e,t;return e=this.toHexString(),t=this.metaColor.a<1,e&&(null==e?void 0:e.replace(/[^\w/]/g,"").slice(0,t?8:6))||""}},{key:"toHexString",value:function(){return this.metaColor.toHexString()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}},{key:"isGradient",value:function(){return!!this.colors&&!this.cleared}},{key:"getColors",value:function(){return this.colors||[{color:this,percent:0}]}},{key:"toCssString",value:function(){let{colors:e}=this;if(e){let t=e.map(e=>`${e.color.toRgbString()} ${e.percent}%`).join(", ");return`linear-gradient(90deg, ${t})`}return this.metaColor.toRgbString()}},{key:"equals",value:function(e){return!!e&&this.isGradient()===e.isGradient()&&(this.isGradient()?this.colors.length===e.colors.length&&this.colors.every((t,r)=>{let n=e.colors[r];return t.percent===n.percent&&t.color.equals(n.color)}):this.toHexString()===e.toHexString())}}]);e.s(["AggregationColor",()=>b],571070)},656449,e=>{"use strict";e.i(8211),e.i(509808),e.i(814690);var t=e.i(571070);e.s(["generateColor",0,e=>e instanceof t.AggregationColor?e:new t.AggregationColor(e)])},491816,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(793154),o=e.i(914949),a=e.i(617206),i=e.i(122767),l=e.i(613541),s=e.i(805984),c=e.i(763731),u=e.i(747656),d=e.i(340010),f=e.i(242064),p=e.i(104458),m=e.i(880476),h=e.i(57667),g=e.i(702779),v=e.i(656449);function y(e,t){let n=(0,g.isPresetColor)(t),o=(0,r.default)({[`${e}-${t}`]:t&&n}),a={},i={},l=(0,v.generateColor)(t).toRgb(),s=(.299*l.r+.587*l.g+.114*l.b)/255;return t&&!n&&(a.background=t,a["--ant-tooltip-color"]=s<.5?"#FFF":"#000",i["--antd-arrow-background-color"]=t),{className:o,overlayStyle:a,arrowStyle:i}}var b=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let w=t.forwardRef((e,m)=>{var g,v;let{prefixCls:w,openClassName:$,getTooltipContainer:C,color:E,overlayInnerStyle:x,children:S,afterOpenChange:j,afterVisibleChange:k,destroyTooltipOnHide:O,destroyOnHidden:T,arrow:F=!0,title:I,overlay:_,builtinPlacements:P,arrowPointAtCenter:N=!1,autoAdjustOverflow:R=!0,motion:M,getPopupContainer:B,placement:A="top",mouseEnterDelay:z=.1,mouseLeaveDelay:L=.1,overlayStyle:H,rootClassName:D,overlayClassName:V,styles:W,classNames:G}=e,U=b(e,["prefixCls","openClassName","getTooltipContainer","color","overlayInnerStyle","children","afterOpenChange","afterVisibleChange","destroyTooltipOnHide","destroyOnHidden","arrow","title","overlay","builtinPlacements","arrowPointAtCenter","autoAdjustOverflow","motion","getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName","overlayClassName","styles","classNames"]),q=!!F,[,J]=(0,p.useToken)(),{getPopupContainer:K,getPrefixCls:X,direction:Y,className:Z,style:Q,classNames:ee,styles:et}=(0,f.useComponentConfig)("tooltip"),er=(0,u.devUseWarning)("Tooltip"),en=t.useRef(null),eo=()=>{var e;null==(e=en.current)||e.forceAlign()};t.useImperativeHandle(m,()=>{var e,t;return{forceAlign:eo,forcePopupAlign:()=>{er.deprecated(!1,"forcePopupAlign","forceAlign"),eo()},nativeElement:null==(e=en.current)?void 0:e.nativeElement,popupElement:null==(t=en.current)?void 0:t.popupElement}});let[ea,ei]=(0,o.default)(!1,{value:null!=(g=e.open)?g:e.visible,defaultValue:null!=(v=e.defaultOpen)?v:e.defaultVisible}),el=!I&&!_&&0!==I,es=t.useMemo(()=>{var e,t;let r=N;return"object"==typeof F&&(r=null!=(t=null!=(e=F.pointAtCenter)?e:F.arrowPointAtCenter)?t:N),P||(0,s.default)({arrowPointAtCenter:r,autoAdjustOverflow:R,arrowWidth:q?J.sizePopupArrow:0,borderRadius:J.borderRadius,offset:J.marginXXS,visibleFirst:!0})},[N,F,P,J]),ec=t.useMemo(()=>0===I?I:_||I||"",[_,I]),eu=t.createElement(a.default,{space:!0},"function"==typeof ec?ec():ec),ed=X("tooltip",w),ef=X(),ep=e["data-popover-inject"],em=ea;"open"in e||"visible"in e||!el||(em=!1);let eh=t.isValidElement(S)&&!(0,c.isFragment)(S)?S:t.createElement("span",null,S),eg=eh.props,ev=eg.className&&"string"!=typeof eg.className?eg.className:(0,r.default)(eg.className,$||`${ed}-open`),[ey,eb,ew]=(0,h.default)(ed,!ep),e$=y(ed,E),eC=e$.arrowStyle,eE=(0,r.default)(V,{[`${ed}-rtl`]:"rtl"===Y},e$.className,D,eb,ew,Z,ee.root,null==G?void 0:G.root),ex=(0,r.default)(ee.body,null==G?void 0:G.body),[eS,ej]=(0,i.useZIndex)("Tooltip",U.zIndex),ek=t.createElement(n.default,Object.assign({},U,{zIndex:eS,showArrow:q,placement:A,mouseEnterDelay:z,mouseLeaveDelay:L,prefixCls:ed,classNames:{root:eE,body:ex},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},eC),et.root),Q),H),null==W?void 0:W.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},et.body),x),null==W?void 0:W.body),e$.overlayStyle)},getTooltipContainer:B||C||K,ref:en,builtinPlacements:es,overlay:eu,visible:em,onVisibleChange:t=>{var r,n;ei(!el&&t),el||(null==(r=e.onOpenChange)||r.call(e,t),null==(n=e.onVisibleChange)||n.call(e,t))},afterVisibleChange:null!=j?j:k,arrowContent:t.createElement("span",{className:`${ed}-arrow-content`}),motion:{motionName:(0,l.getTransitionName)(ef,"zoom-big-fast",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:null!=T?T:!!O}),em?(0,c.cloneElement)(eh,{className:ev}):eh);return ey(t.createElement(d.default.Provider,{value:ej},ek))});w._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:n,className:o,placement:a="top",title:i,color:l,overlayInnerStyle:s}=e,{getPrefixCls:c}=t.useContext(f.ConfigContext),u=c("tooltip",n),[d,p,g]=(0,h.default)(u),v=y(u,l),b=v.arrowStyle,w=Object.assign(Object.assign({},s),v.overlayStyle),$=(0,r.default)(p,g,u,`${u}-pure`,`${u}-placement-${a}`,o,v.className);return d(t.createElement("div",{className:$,style:b},t.createElement("div",{className:`${u}-arrow`}),t.createElement(m.Popup,Object.assign({},e,{className:p,prefixCls:u,overlayInnerStyle:w}),i)))},e.s(["default",0,w],491816)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},408850,929447,e=>{"use strict";var t=e.i(271645),r=e.i(595575),n=e.i(87414);let o=(e,o)=>{let a=t.useContext(r.default);return[t.useMemo(()=>{var t;let r=o||n.default[e],i=null!=(t=null==a?void 0:a[e])?t:{};return Object.assign(Object.assign({},"function"==typeof r?r():r),i||{})},[e,o,a]),t.useMemo(()=>{let e=null==a?void 0:a.locale;return(null==a?void 0:a.exist)&&!e?n.default.locale:e},[a])]};e.s(["default",0,o],929447),e.s(["useLocale",0,o],408850)},121872,26905,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(606262),o=e.i(611935),a=e.i(242064),i=e.i(763731);let l=(0,e.i(246422).genComponentStyleHook)("Wave",e=>{let{componentCls:t,colorPrimary:r}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${r})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:`box-shadow 0.4s ${e.motionEaseOutCirc},opacity 2s ${e.motionEaseOutCirc}`,"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut},opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`}}}}});var s=e.i(175066),c=e.i(963188),u=e.i(719581);let d=`${a.defaultPrefixCls}-wave-target`;e.s(["TARGET_CLS",0,d],26905);var f=e.i(361275),p=e.i(783164);function m(e){return e&&"#fff"!==e&&"#ffffff"!==e&&"rgb(255, 255, 255)"!==e&&"rgba(255, 255, 255, 1)"!==e&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&"transparent"!==e&&"canvastext"!==e}function h(e){return Number.isNaN(e)?0:e}let g=e=>{let{className:n,target:a,component:i,registerUnmount:l}=e,s=t.useRef(null),u=t.useRef(null);t.useEffect(()=>{u.current=l()},[]);let[p,g]=t.useState(null),[v,y]=t.useState([]),[b,w]=t.useState(0),[$,C]=t.useState(0),[E,x]=t.useState(0),[S,j]=t.useState(0),[k,O]=t.useState(!1),T={left:b,top:$,width:E,height:S,borderRadius:v.map(e=>`${e}px`).join(" ")};function F(){let e=getComputedStyle(a);g(function(e){var t;let{borderTopColor:r,borderColor:n,backgroundColor:o}=getComputedStyle(e);return null!=(t=[r,n,o].find(m))?t:null}(a));let t="static"===e.position,{borderLeftWidth:r,borderTopWidth:n}=e;w(t?a.offsetLeft:h(-Number.parseFloat(r))),C(t?a.offsetTop:h(-Number.parseFloat(n))),x(a.offsetWidth),j(a.offsetHeight);let{borderTopLeftRadius:o,borderTopRightRadius:i,borderBottomLeftRadius:l,borderBottomRightRadius:s}=e;y([o,i,s,l].map(e=>h(Number.parseFloat(e))))}if(p&&(T["--wave-color"]=p),t.useEffect(()=>{if(a){let e,t=(0,c.default)(()=>{F(),O(!0)});return"u">typeof ResizeObserver&&(e=new ResizeObserver(F)).observe(a),()=>{c.default.cancel(t),null==e||e.disconnect()}}},[a]),!k)return null;let I=("Checkbox"===i||"Radio"===i)&&(null==a?void 0:a.classList.contains(d));return t.createElement(f.default,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(e,t)=>{var r,n;if(t.deadline||"opacity"===t.propertyName){let e=null==(r=s.current)?void 0:r.parentElement;null==(n=u.current)||n.call(u).then(()=>{null==e||e.remove()})}return!1}},({className:e},a)=>t.createElement("div",{ref:(0,o.composeRef)(s,a),className:(0,r.default)(n,e,{"wave-quick":I}),style:T}))};e.s(["default",0,e=>{let{children:f,disabled:m,component:h}=e,{getPrefixCls:v}=(0,t.useContext)(a.ConfigContext),y=(0,t.useRef)(null),b=v("wave"),[,w]=l(b),$=((e,r,n)=>{let{wave:o}=t.useContext(a.ConfigContext),[,i,l]=(0,u.default)(),f=(0,s.default)(a=>{let s=e.current;if((null==o?void 0:o.disabled)||!s)return;let c=s.querySelector(`.${d}`)||s,{showEffect:u}=o||{};(u||((e,r)=>{var n;let{component:o}=r;if("Checkbox"===o&&!(null==(n=e.querySelector("input"))?void 0:n.checked))return;let a=document.createElement("div");a.style.position="absolute",a.style.left="0px",a.style.top="0px",null==e||e.insertBefore(a,null==e?void 0:e.firstChild);let i=(0,p.unstableSetRender)(),l=null;l=i(t.createElement(g,Object.assign({},r,{target:e,registerUnmount:function(){return l}})),a)}))(c,{className:r,token:i,component:n,event:a,hashId:l})}),m=t.useRef(null);return e=>{c.default.cancel(m.current),m.current=(0,c.default)(()=>{f(e)})}})(y,(0,r.default)(b,w),h);if(t.default.useEffect(()=>{let e=y.current;if(!e||e.nodeType!==window.Node.ELEMENT_NODE||m)return;let t=t=>{!(0,n.default)(t.target)||!e.getAttribute||e.getAttribute("disabled")||e.disabled||e.className.includes("disabled")&&!e.className.includes("disabled:")||"true"===e.getAttribute("aria-disabled")||e.className.includes("-leave")||$(t)};return e.addEventListener("click",t,!0),()=>{e.removeEventListener("click",t,!0)}},[m]),!t.default.isValidElement(f))return null!=f?f:null;let C=(0,o.supportRef)(f)?(0,o.composeRef)((0,o.getNodeRef)(f),y):y;return(0,i.cloneElement)(f,{ref:C})}],121872)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["InfoCircleOutlined",0,a],827252)},735996,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(242064),o=e.i(104458),a=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let i=t.createContext(void 0);e.s(["GroupSizeContext",0,i,"default",0,e=>{let{getPrefixCls:l,direction:s}=t.useContext(n.ConfigContext),{prefixCls:c,size:u,className:d}=e,f=a(e,["prefixCls","size","className"]),p=l("btn-group",c),[,,m]=(0,o.useToken)(),h=t.useMemo(()=>{switch(u){case"large":return"lg";case"small":return"sm";default:return""}},[u]),g=(0,r.default)(p,{[`${p}-${h}`]:h,[`${p}-rtl`]:"rtl"===s},d,m);return t.createElement(i.Provider,{value:u},t.createElement("div",Object.assign({},f,{className:g})))}])},62405,869693,868004,470977,e=>{"use strict";var t=e.i(8211),r=e.i(271645),n=e.i(763731),o=e.i(617933);let a=/^[\u4E00-\u9FA5]{2}$/,i=a.test.bind(a);function l(e){return"danger"===e?{danger:!0}:{type:e}}function s(e){return"string"==typeof e}function c(e){return"text"===e||"link"===e}function u(e,t){let o=!1,a=[];return r.default.Children.forEach(e,e=>{let t=typeof e,r="string"===t||"number"===t;if(o&&r){let t=a.length-1,r=a[t];a[t]=`${r}${e}`}else a.push(e);o=r}),r.default.Children.map(a,e=>(function(e,t){if(null==e)return;let o=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&s(e.type)&&i(e.props.children)?(0,n.cloneElement)(e,{children:e.props.children.split("").join(o)}):s(e)?i(e)?r.default.createElement("span",null,e.split("").join(o)):r.default.createElement("span",null,e):(0,n.isFragment)(e)?r.default.createElement("span",null,e):e})(e,t))}["default","primary","danger"].concat((0,t.default)(o.PresetColors)),e.s(["convertLegacyProps",()=>l,"isTwoCNChar",0,i,"isUnBorderedButtonVariant",()=>c,"spaceChildren",()=>u],62405);var d=e.i(739295),f=e.i(343794),p=e.i(361275);let m=(0,r.forwardRef)((e,t)=>{let{className:n,style:o,children:a,prefixCls:i}=e,l=(0,f.default)(`${i}-icon`,n);return r.default.createElement("span",{ref:t,className:l,style:o},a)});e.s(["default",0,m],869693);let h=(0,r.forwardRef)((e,t)=>{let{prefixCls:n,className:o,style:a,iconClassName:i}=e,l=(0,f.default)(`${n}-loading-icon`,o);return r.default.createElement(m,{prefixCls:n,className:l,style:a,ref:t},r.default.createElement(d.default,{className:i}))}),g=()=>({width:0,opacity:0,transform:"scale(0)"}),v=e=>({width:e.scrollWidth,opacity:1,transform:"scale(1)"});e.s(["default",0,e=>{let{prefixCls:t,loading:n,existIcon:o,className:a,style:i,mount:l}=e;return o?r.default.createElement(h,{prefixCls:t,className:a,style:i}):r.default.createElement(p.default,{visible:!!n,motionName:`${t}-loading-icon-motion`,motionAppear:!l,motionEnter:!l,motionLeave:!l,removeOnLeave:!0,onAppearStart:g,onAppearActive:v,onEnterStart:g,onEnterActive:v,onLeaveStart:v,onLeaveActive:g},({className:e,style:n},o)=>{let l=Object.assign(Object.assign({},i),n);return r.default.createElement(h,{prefixCls:t,className:(0,f.default)(a,e),style:l,ref:o})})}],868004);let y=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}});e.s(["default",0,e=>{let{componentCls:t,fontSize:r,lineWidth:n,groupBorderColor:o,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:e.calc(n).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover, &:focus, &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:r}},y(`${t}-primary`,o),y(`${t}-danger`,a)]}}],470977)},202599,e=>{"use strict";var t=e.i(162464);e.s(["ColorBlock",()=>t.default])},286612,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],286612)},301092,e=>{"use strict";var t=e.i(931067),r=e.i(8211),n=e.i(392221),o=e.i(410160),a=e.i(343794),i=e.i(914949),l=e.i(883110),s=e.i(271645),c=e.i(703923),u=e.i(876556),d=e.i(209428),f=e.i(211577),p=e.i(361275),m=e.i(404948),h=s.default.forwardRef(function(e,t){var r=e.prefixCls,o=e.forceRender,i=e.className,l=e.style,c=e.children,u=e.isActive,d=e.role,p=e.classNames,m=e.styles,h=s.default.useState(u||o),g=(0,n.default)(h,2),v=g[0],y=g[1];return(s.default.useEffect(function(){(o||u)&&y(!0)},[o,u]),v)?s.default.createElement("div",{ref:t,className:(0,a.default)("".concat(r,"-content"),(0,f.default)((0,f.default)({},"".concat(r,"-content-active"),u),"".concat(r,"-content-inactive"),!u),i),style:l,role:d},s.default.createElement("div",{className:(0,a.default)("".concat(r,"-content-box"),null==p?void 0:p.body),style:null==m?void 0:m.body},c)):null});h.displayName="PanelContent";var g=["showArrow","headerClass","isActive","onItemClick","forceRender","className","classNames","styles","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],v=s.default.forwardRef(function(e,r){var n=e.showArrow,o=e.headerClass,i=e.isActive,l=e.onItemClick,u=e.forceRender,v=e.className,y=e.classNames,b=void 0===y?{}:y,w=e.styles,$=void 0===w?{}:w,C=e.prefixCls,E=e.collapsible,x=e.accordion,S=e.panelKey,j=e.extra,k=e.header,O=e.expandIcon,T=e.openMotion,F=e.destroyInactivePanel,I=e.children,_=(0,c.default)(e,g),P="disabled"===E,N=(0,f.default)((0,f.default)((0,f.default)({onClick:function(){null==l||l(S)},onKeyDown:function(e){("Enter"===e.key||e.keyCode===m.default.ENTER||e.which===m.default.ENTER)&&(null==l||l(S))},role:x?"tab":"button"},"aria-expanded",i),"aria-disabled",P),"tabIndex",P?-1:0),R="function"==typeof O?O(e):s.default.createElement("i",{className:"arrow"}),M=R&&s.default.createElement("div",(0,t.default)({className:"".concat(C,"-expand-icon")},["header","icon"].includes(E)?N:{}),R),B=(0,a.default)("".concat(C,"-item"),(0,f.default)((0,f.default)({},"".concat(C,"-item-active"),i),"".concat(C,"-item-disabled"),P),v),A=(0,a.default)(o,"".concat(C,"-header"),(0,f.default)({},"".concat(C,"-collapsible-").concat(E),!!E),b.header),z=(0,d.default)({className:A,style:$.header},["header","icon"].includes(E)?{}:N);return s.default.createElement("div",(0,t.default)({},_,{ref:r,className:B}),s.default.createElement("div",z,(void 0===n||n)&&M,s.default.createElement("span",(0,t.default)({className:"".concat(C,"-header-text")},"header"===E?N:{}),k),null!=j&&"boolean"!=typeof j&&s.default.createElement("div",{className:"".concat(C,"-extra")},j)),s.default.createElement(p.default,(0,t.default)({visible:i,leavedClassName:"".concat(C,"-content-hidden")},T,{forceRender:u,removeOnLeave:F}),function(e,t){var r=e.className,n=e.style;return s.default.createElement(h,{ref:t,prefixCls:C,className:r,classNames:b,style:n,styles:$,isActive:i,forceRender:u,role:x?"tabpanel":void 0},I)}))}),y=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],b=function(e,r){var n=r.prefixCls,o=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,u=r.activeKey,d=r.openMotion,f=r.expandIcon;return e.map(function(e,r){var p=e.children,m=e.label,h=e.key,g=e.collapsible,b=e.onItemClick,w=e.destroyInactivePanel,$=(0,c.default)(e,y),C=String(null!=h?h:r),E=null!=g?g:a,x=!1;return x=o?u[0]===C:u.indexOf(C)>-1,s.default.createElement(v,(0,t.default)({},$,{prefixCls:n,key:C,panelKey:C,isActive:x,accordion:o,openMotion:d,expandIcon:f,header:m,collapsible:E,onItemClick:function(e){"disabled"!==E&&(l(e),null==b||b(e))},destroyInactivePanel:null!=w?w:i}),p)})},w=function(e,t,r){if(!e)return null;var n=r.prefixCls,o=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,c=r.activeKey,u=r.openMotion,d=r.expandIcon,f=e.key||String(t),p=e.props,m=p.header,h=p.headerClass,g=p.destroyInactivePanel,v=p.collapsible,y=p.onItemClick,b=!1;b=o?c[0]===f:c.indexOf(f)>-1;var w=null!=v?v:a,$={key:f,panelKey:f,header:m,headerClass:h,isActive:b,prefixCls:n,destroyInactivePanel:null!=g?g:i,openMotion:u,accordion:o,children:e.props.children,onItemClick:function(e){"disabled"!==w&&(l(e),null==y||y(e))},expandIcon:d,collapsible:w};return"string"==typeof e.type?e:(Object.keys($).forEach(function(e){void 0===$[e]&&delete $[e]}),s.default.cloneElement(e,$))},$=e.i(244009);function C(e){var t=e;if(!Array.isArray(t)){var r=(0,o.default)(t);t="number"===r||"string"===r?[t]:[]}return t.map(function(e){return String(e)})}let E=Object.assign(s.default.forwardRef(function(e,o){var c,d=e.prefixCls,f=void 0===d?"rc-collapse":d,p=e.destroyInactivePanel,m=e.style,h=e.accordion,g=e.className,v=e.children,y=e.collapsible,E=e.openMotion,x=e.expandIcon,S=e.activeKey,j=e.defaultActiveKey,k=e.onChange,O=e.items,T=(0,a.default)(f,g),F=(0,i.default)([],{value:S,onChange:function(e){return null==k?void 0:k(e)},defaultValue:j,postState:C}),I=(0,n.default)(F,2),_=I[0],P=I[1];(0,l.default)(!v,"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.");var N=(c={prefixCls:f,accordion:h,openMotion:E,expandIcon:x,collapsible:y,destroyInactivePanel:void 0!==p&&p,onItemClick:function(e){return P(function(){return h?_[0]===e?[]:[e]:_.indexOf(e)>-1?_.filter(function(t){return t!==e}):[].concat((0,r.default)(_),[e])})},activeKey:_},Array.isArray(O)?b(O,c):(0,u.default)(v).map(function(e,t){return w(e,t,c)}));return s.default.createElement("div",(0,t.default)({ref:o,className:T,style:m,role:h?"tablist":void 0},(0,$.default)(e,{aria:!0,data:!0})),N)}),{Panel:v});E.Panel,e.s(["default",0,E],301092)},125234,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(301092),o=e.i(242064);let a=t.forwardRef((e,a)=>{let{getPrefixCls:i}=t.useContext(o.ConfigContext),{prefixCls:l,className:s,showArrow:c=!0}=e,u=i("collapse",l),d=(0,r.default)({[`${u}-no-arrow`]:!c},s);return t.createElement(n.default.Panel,Object.assign({ref:a},e,{prefixCls:u,className:d}))});e.s(["default",0,a])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, - opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},988122,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(286612),n=e.i(343794),o=e.i(301092),a=e.i(876556),i=e.i(529681),l=e.i(613541),s=e.i(763731),c=e.i(242064),u=e.i(517455),d=e.i(125234);e.i(296059);var f=e.i(915654),p=e.i(183293),m=e.i(447580),h=e.i(246422),g=e.i(838378);let v=(0,h.genStyleHooks)("Collapse",e=>{let t=(0,g.mergeToken)(e,{collapseHeaderPaddingSM:`${(0,f.unit)(e.paddingXS)} ${(0,f.unit)(e.paddingSM)}`,collapseHeaderPaddingLG:`${(0,f.unit)(e.padding)} ${(0,f.unit)(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[(e=>{let{componentCls:t,contentBg:r,padding:n,headerBg:o,headerPadding:a,collapseHeaderPaddingSM:i,collapseHeaderPaddingLG:l,collapsePanelBorderRadius:s,lineWidth:c,lineType:u,colorBorder:d,colorText:m,colorTextHeading:h,colorTextDisabled:g,fontSizeLG:v,lineHeight:y,lineHeightLG:b,marginSM:w,paddingSM:$,paddingLG:C,paddingXS:E,motionDurationSlow:x,fontSizeIcon:S,contentPadding:k,fontHeight:j,fontHeightLG:O}=e,T=`${(0,f.unit)(c)} ${u} ${d}`;return{[t]:Object.assign(Object.assign({},(0,p.resetComponent)(e)),{backgroundColor:o,border:T,borderRadius:s,"&-rtl":{direction:"rtl"},[`& > ${t}-item`]:{borderBottom:T,"&:first-child":{[` + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},988122,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(286612),n=e.i(343794),o=e.i(301092),a=e.i(876556),i=e.i(529681),l=e.i(613541),s=e.i(763731),c=e.i(242064),u=e.i(517455),d=e.i(125234);e.i(296059);var f=e.i(915654),p=e.i(183293),m=e.i(447580),h=e.i(246422),g=e.i(838378);let v=(0,h.genStyleHooks)("Collapse",e=>{let t=(0,g.mergeToken)(e,{collapseHeaderPaddingSM:`${(0,f.unit)(e.paddingXS)} ${(0,f.unit)(e.paddingSM)}`,collapseHeaderPaddingLG:`${(0,f.unit)(e.padding)} ${(0,f.unit)(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[(e=>{let{componentCls:t,contentBg:r,padding:n,headerBg:o,headerPadding:a,collapseHeaderPaddingSM:i,collapseHeaderPaddingLG:l,collapsePanelBorderRadius:s,lineWidth:c,lineType:u,colorBorder:d,colorText:m,colorTextHeading:h,colorTextDisabled:g,fontSizeLG:v,lineHeight:y,lineHeightLG:b,marginSM:w,paddingSM:$,paddingLG:C,paddingXS:E,motionDurationSlow:x,fontSizeIcon:S,contentPadding:j,fontHeight:k,fontHeightLG:O}=e,T=`${(0,f.unit)(c)} ${u} ${d}`;return{[t]:Object.assign(Object.assign({},(0,p.resetComponent)(e)),{backgroundColor:o,border:T,borderRadius:s,"&-rtl":{direction:"rtl"},[`& > ${t}-item`]:{borderBottom:T,"&:first-child":{[` &, & > ${t}-header`]:{borderRadius:`${(0,f.unit)(s)} ${(0,f.unit)(s)} 0 0`}},"&:last-child":{[` &, - & > ${t}-header`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`> ${t}-header`]:Object.assign(Object.assign({position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:a,color:h,lineHeight:y,cursor:"pointer",transition:`all ${x}, visibility 0s`},(0,p.genFocusStyle)(e)),{[`> ${t}-header-text`]:{flex:"auto"},[`${t}-expand-icon`]:{height:j,display:"flex",alignItems:"center",paddingInlineEnd:w},[`${t}-arrow`]:Object.assign(Object.assign({},(0,p.resetIcon)()),{fontSize:S,transition:`transform ${x}`,svg:{transition:`transform ${x}`}}),[`${t}-header-text`]:{marginInlineEnd:"auto"}}),[`${t}-collapsible-header`]:{cursor:"default",[`${t}-header-text`]:{flex:"none",cursor:"pointer"},[`${t}-expand-icon`]:{cursor:"pointer"}},[`${t}-collapsible-icon`]:{cursor:"unset",[`${t}-expand-icon`]:{cursor:"pointer"}}},[`${t}-content`]:{color:m,backgroundColor:r,borderTop:T,[`& > ${t}-content-box`]:{padding:k},"&-hidden":{display:"none"}},"&-small":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:i,paddingInlineStart:E,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc($).sub(E).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:$}}},"&-large":{[`> ${t}-item`]:{fontSize:v,lineHeight:b,[`> ${t}-header`]:{padding:l,paddingInlineStart:n,[`> ${t}-expand-icon`]:{height:O,marginInlineStart:e.calc(C).sub(n).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:C}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-content`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`& ${t}-item-disabled > ${t}-header`]:{[` + & > ${t}-header`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`> ${t}-header`]:Object.assign(Object.assign({position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:a,color:h,lineHeight:y,cursor:"pointer",transition:`all ${x}, visibility 0s`},(0,p.genFocusStyle)(e)),{[`> ${t}-header-text`]:{flex:"auto"},[`${t}-expand-icon`]:{height:k,display:"flex",alignItems:"center",paddingInlineEnd:w},[`${t}-arrow`]:Object.assign(Object.assign({},(0,p.resetIcon)()),{fontSize:S,transition:`transform ${x}`,svg:{transition:`transform ${x}`}}),[`${t}-header-text`]:{marginInlineEnd:"auto"}}),[`${t}-collapsible-header`]:{cursor:"default",[`${t}-header-text`]:{flex:"none",cursor:"pointer"},[`${t}-expand-icon`]:{cursor:"pointer"}},[`${t}-collapsible-icon`]:{cursor:"unset",[`${t}-expand-icon`]:{cursor:"pointer"}}},[`${t}-content`]:{color:m,backgroundColor:r,borderTop:T,[`& > ${t}-content-box`]:{padding:j},"&-hidden":{display:"none"}},"&-small":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:i,paddingInlineStart:E,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc($).sub(E).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:$}}},"&-large":{[`> ${t}-item`]:{fontSize:v,lineHeight:b,[`> ${t}-header`]:{padding:l,paddingInlineStart:n,[`> ${t}-expand-icon`]:{height:O,marginInlineStart:e.calc(C).sub(n).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:C}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-content`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`& ${t}-item-disabled > ${t}-header`]:{[` &, & > .arrow `]:{color:g,cursor:"not-allowed"}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:w}}}}})}})(t),(e=>{let{componentCls:t,headerBg:r,borderlessContentPadding:n,borderlessContentBg:o,colorBorder:a}=e;return{[`${t}-borderless`]:{backgroundColor:r,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${a}`},[` > ${t}-item:last-child, > ${t}-item:last-child ${t}-header - `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:o,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{padding:n}}}})(t),(e=>{let{componentCls:t,paddingSM:r}=e;return{[`${t}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:"transparent",border:0,[`> ${t}-content-box`]:{paddingBlock:r}}}}}})(t),(e=>{let{componentCls:t}=e,r=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[r]:{transform:"rotate(180deg)"}}}})(t),(0,m.genCollapseMotion)(t)]},e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:"transparent"})),y=Object.assign(t.forwardRef((e,d)=>{let{getPrefixCls:f,direction:p,expandIcon:m,className:h,style:g}=(0,c.useComponentConfig)("collapse"),{prefixCls:y,className:b,rootClassName:w,style:$,bordered:C=!0,ghost:E,size:x,expandIconPosition:S="start",children:k,destroyInactivePanel:j,destroyOnHidden:O,expandIcon:T}=e,F=(0,u.default)(e=>{var t;return null!=(t=null!=x?x:e)?t:"middle"}),_=f("collapse",y),I=f(),[P,N,R]=v(_),M=t.useMemo(()=>"left"===S?"start":"right"===S?"end":S,[S]),B=null!=T?T:m,A=t.useCallback((e={})=>{let o="function"==typeof B?B(e):t.createElement(r.default,{rotate:e.isActive?"rtl"===p?-90:90:void 0,"aria-label":e.isActive?"expanded":"collapsed"});return(0,s.cloneElement)(o,()=>{var e;return{className:(0,n.default)(null==(e=o.props)?void 0:e.className,`${_}-arrow`)}})},[B,_,p]),z=(0,n.default)(`${_}-icon-position-${M}`,{[`${_}-borderless`]:!C,[`${_}-rtl`]:"rtl"===p,[`${_}-ghost`]:!!E,[`${_}-${F}`]:"middle"!==F},h,b,w,N,R),L=t.useMemo(()=>Object.assign(Object.assign({},(0,l.default)(I)),{motionAppear:!1,leavedClassName:`${_}-content-hidden`}),[I,_]),H=t.useMemo(()=>k?(0,a.default)(k).map((e,t)=>{var r,n;let o=e.props;if(null==o?void 0:o.disabled){let a=null!=(r=e.key)?r:String(t),l=Object.assign(Object.assign({},(0,i.default)(e.props,["disabled"])),{key:a,collapsible:null!=(n=o.collapsible)?n:"disabled"});return(0,s.cloneElement)(e,l)}return e}):null,[k]);return P(t.createElement(o.default,Object.assign({ref:d,openMotion:L},(0,i.default)(e,["rootClassName"]),{expandIcon:A,prefixCls:_,className:z,style:Object.assign(Object.assign({},g),$),destroyInactivePanel:null!=O?O:j}),H))}),{Panel:d.default});e.s(["default",0,y],988122)},432231,327174,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(617933),o=e.i(246422),a=e.i(838378),i=e.i(470977),l=e.i(571070);e.i(271645),e.i(509808),e.i(202599);var s=e.i(814690);e.i(343794),e.i(914949),e.i(988122),e.i(408850),e.i(104458),e.i(656449);var c=e.i(988317),u=e.i(745978);let d=e=>{let{paddingInline:t,onlyIconSize:r}=e;return(0,a.mergeToken)(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:r})},f=e=>{var r,o,a,i,d,f;let p=null!=(r=e.contentFontSize)?r:e.fontSize,m=null!=(o=e.contentFontSizeSM)?o:e.fontSize,h=null!=(a=e.contentFontSizeLG)?a:e.fontSizeLG,g=null!=(i=e.contentLineHeight)?i:(0,c.getLineHeight)(p),v=null!=(d=e.contentLineHeightSM)?d:(0,c.getLineHeight)(m),y=null!=(f=e.contentLineHeightLG)?f:(0,c.getLineHeight)(h),b=((e,t)=>{let{r,g:n,b:o,a}=e.toRgb(),i=new s.Color(e.toRgbString()).onBackground(t).toHsv();return a<=.5?i.v>.5:.299*r+.587*n+.114*o>192})(new l.AggregationColor(e.colorBgSolid),"#fff")?"#000":"#fff";return Object.assign(Object.assign({},n.PresetColors.reduce((r,n)=>Object.assign(Object.assign({},r),{[`${n}ShadowColor`]:`0 ${(0,t.unit)(e.controlOutlineWidth)} 0 ${(0,u.default)(e[`${n}1`],e.colorBgContainer)}`}),{})),{fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:"inherit",onlyIconSizeSM:"inherit",onlyIconSizeLG:"inherit",groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:b,contentFontSize:p,contentFontSizeSM:m,contentFontSizeLG:h,contentLineHeight:g,contentLineHeightSM:v,contentLineHeightLG:y,paddingBlock:Math.max((e.controlHeight-p*g)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-m*v)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-h*y)/2-e.lineWidth,0)})};e.s(["prepareComponentToken",0,f,"prepareToken",0,d],327174);let p=(e,t,r)=>({[`&:not(:disabled):not(${e}-disabled)`]:{"&:hover":t,"&:active":r}}),m=(e,t,r,n,o,a,i,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:r||void 0,background:t,borderColor:n||void 0,boxShadow:"none"},p(e,Object.assign({background:t},i),Object.assign({background:t},l))),{"&:disabled":{cursor:"not-allowed",color:o||void 0,borderColor:a||void 0}})}),h=(e,t,r,n)=>Object.assign(Object.assign({},(n&&["link","text"].includes(n)?e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}):e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},{cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"})}))(e)),p(e.componentCls,t,r)),g=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:r},h(e,n,o))}),v=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:r},h(e,n,o))}),y=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:"dashed"}}),b=(e,t,r,n)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:"none",background:t},h(e,r,n))}),w=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-${r}`]:Object.assign({color:t,boxShadow:"none"},h(e,n,o,r))}),$=(e,r="")=>{let{componentCls:n,controlHeight:o,fontSize:a,borderRadius:i,buttonPaddingHorizontal:l,iconCls:s,buttonPaddingVertical:c,buttonIconOnlyFontSize:u}=e;return[{[r]:{fontSize:a,height:o,padding:`${(0,t.unit)(c)} ${(0,t.unit)(l)}`,borderRadius:i,[`&${n}-icon-only`]:{width:o,[s]:{fontSize:u}}}},{[`${n}${n}-circle${r}`]:{minWidth:e.controlHeight,paddingInline:0,borderRadius:"50%"}},{[`${n}${n}-round${r}`]:{borderRadius:e.controlHeight,[`&:not(${n}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},C=(0,o.genStyleHooks)("Button",e=>{let o=d(e);return[(e=>{let{componentCls:n,iconCls:o,fontWeight:a,opacityLoading:i,motionDurationSlow:l,motionEaseInOut:s,iconGap:c,calc:u}=e;return{[n]:{outline:"none",position:"relative",display:"inline-flex",gap:c,alignItems:"center",justifyContent:"center",fontWeight:a,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:e.colorText,"&:disabled > *":{pointerEvents:"none"},[`${n}-icon > svg`]:(0,r.resetIcon)(),"> a":{color:"currentColor"},"&:not(:disabled)":(0,r.genFocusStyle)(e),[`&${n}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${n}-two-chinese-chars > *:not(${o})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&${n}-icon-only`]:{paddingInline:0,[`&${n}-compact-item`]:{flex:"none"}},[`&${n}-loading`]:{opacity:i,cursor:"default"},[`${n}-loading-icon`]:{transition:["width","opacity","margin"].map(e=>`${e} ${l} ${s}`).join(",")},[`&:not(${n}-icon-end)`]:{[`${n}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:u(c).mul(-1).equal()}}},"&-icon-end":{flexDirection:"row-reverse",[`${n}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:u(c).mul(-1).equal()}}}}}})(o),$((0,a.mergeToken)(o,{fontSize:o.contentFontSize}),o.componentCls),$((0,a.mergeToken)(o,{controlHeight:o.controlHeightSM,fontSize:o.contentFontSizeSM,padding:o.paddingXS,buttonPaddingHorizontal:o.paddingInlineSM,buttonPaddingVertical:0,borderRadius:o.borderRadiusSM,buttonIconOnlyFontSize:o.onlyIconSizeSM}),`${o.componentCls}-sm`),$((0,a.mergeToken)(o,{controlHeight:o.controlHeightLG,fontSize:o.contentFontSizeLG,buttonPaddingHorizontal:o.paddingInlineLG,buttonPaddingVertical:0,borderRadius:o.borderRadiusLG,buttonIconOnlyFontSize:o.onlyIconSizeLG}),`${o.componentCls}-lg`),(e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}})(o),(e=>{let{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},g(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),y(e)),b(e,e.colorFillTertiary,{color:e.defaultColor,background:e.colorFillSecondary},{color:e.defaultColor,background:e.colorFill})),m(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),w(e,e.textTextColor,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),[`${t}-color-primary`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},v(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),y(e)),b(e,e.colorPrimaryBg,{color:e.colorPrimary,background:e.colorPrimaryBgHover},{color:e.colorPrimary,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"text",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"link",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),m(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),[`${t}-color-dangerous`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},g(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),v(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),y(e)),b(e,e.colorErrorBg,{color:e.colorError,background:e.colorErrorBgFilledHover},{color:e.colorError,background:e.colorErrorBgActive})),w(e,e.colorError,"text",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),w(e,e.colorError,"link",{color:e.colorErrorHover},{color:e.colorErrorActive})),m(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),[`${t}-color-link`]:Object.assign(Object.assign({},w(e,e.colorLink,"link",{color:e.colorLinkHover},{color:e.colorLinkActive})),m(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive}))},(e=>{let{componentCls:t}=e;return n.PresetColors.reduce((r,n)=>{let o=e[`${n}6`],a=e[`${n}1`],i=e[`${n}5`],l=e[`${n}2`],s=e[`${n}3`],c=e[`${n}7`];return Object.assign(Object.assign({},r),{[`&${t}-color-${n}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:o,boxShadow:e[`${n}ShadowColor`]},g(e,e.colorTextLightSolid,o,{background:i},{background:c})),v(e,o,e.colorBgContainer,{color:i,borderColor:i,background:e.colorBgContainer},{color:c,borderColor:c,background:e.colorBgContainer})),y(e)),b(e,a,{color:o,background:l},{color:o,background:s})),w(e,o,"link",{color:i},{color:c})),w(e,o,"text",{color:i,background:a},{color:c,background:s}))})},{})})(e))})(o),Object.assign(Object.assign(Object.assign(Object.assign({},v(o,o.defaultBorderColor,o.defaultBg,{color:o.defaultHoverColor,borderColor:o.defaultHoverBorderColor,background:o.defaultHoverBg},{color:o.defaultActiveColor,borderColor:o.defaultActiveBorderColor,background:o.defaultActiveBg})),w(o,o.textTextColor,"text",{color:o.textTextHoverColor,background:o.textHoverBg},{color:o.textTextActiveColor,background:o.colorBgTextActive})),g(o,o.primaryColor,o.colorPrimary,{background:o.colorPrimaryHover,color:o.primaryColor},{background:o.colorPrimaryActive,color:o.primaryColor})),w(o,o.colorLink,"link",{color:o.colorLinkHover,background:o.linkHoverBg},{color:o.colorLinkActive})),(0,i.default)(o)]},f,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});e.s(["default",0,C],432231)},372409,e=>{"use strict";function t(e,r={focus:!0}){let{componentCls:n}=e,{componentCls:o}=r,a=o||n,i=`${a}-compact`;return{[i]:Object.assign(Object.assign({},function(e,t,r,n){let{focusElCls:o,focus:a,borderElCls:i}=r,l=i?"> *":"",s=["hover",a?"focus":null,"active"].filter(Boolean).map(e=>`&:${e} ${l}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${n}-status-success)`]:{zIndex:2},"&-item":Object.assign(Object.assign({[s]:{zIndex:3}},o?{[`&${o}`]:{zIndex:3}}:{}),{[`&[disabled] ${l}`]:{zIndex:0}})}}(e,i,r,a)),function(e,t,r){let{borderElCls:n}=r,o=n?`> ${n}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${o}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}(a,i,r))}}e.s(["genCompactItemStyle",()=>t])},920228,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(174428),o=e.i(529681),a=e.i(611935),i=e.i(121872),l=e.i(242064),s=e.i(937328),c=e.i(517455),u=e.i(249616),d=e.i(735996),f=e.i(62405),p=e.i(868004),m=e.i(869693),h=e.i(432231),g=e.i(372409),v=e.i(246422),y=e.i(327174);let b=(0,v.genSubStyleComponent)(["Button","compact"],e=>{var t,r;let n,o=(0,y.prepareToken)(e);return[(0,g.genCompactItemStyle)(o),{[n=`${o.componentCls}-compact-vertical`]:Object.assign(Object.assign({},(t=o.componentCls,{[`&-item:not(${n}-last-item)`]:{marginBottom:o.calc(o.lineWidth).mul(-1).equal()},[`&-item:not(${t}-status-success)`]:{zIndex:2},"&-item":{"&:hover,&:focus,&:active":{zIndex:3},"&[disabled]":{zIndex:0}}})),(r=o.componentCls,{[`&-item:not(${n}-first-item):not(${n}-last-item)`]:{borderRadius:0},[`&-item${n}-first-item:not(${n}-last-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${n}-last-item:not(${n}-first-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}))},(e=>{let{componentCls:t,colorPrimaryHover:r,lineWidth:n,calc:o}=e,a=o(n).mul(-1).equal(),i=e=>{let o=`${t}-compact${e?"-vertical":""}-item${t}-primary:not([disabled])`;return{[`${o} + ${o}::before`]:{position:"absolute",top:e?a:0,insetInlineStart:e?0:a,backgroundColor:r,content:'""',width:e?"100%":n,height:e?n:"100%"}}};return Object.assign(Object.assign({},i()),i(!0))})(o)]},y.prepareComponentToken);var w=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let $={default:["default","outlined"],primary:["primary","solid"],dashed:["default","dashed"],link:["link","link"],text:["default","text"]},C=t.default.forwardRef((e,g)=>{var v,y;let C,{loading:E=!1,prefixCls:x,color:S,variant:k,type:j,danger:O=!1,shape:T,size:F,styles:_,disabled:I,className:P,rootClassName:N,children:R,icon:M,iconPosition:B="start",ghost:A=!1,block:z=!1,htmlType:L="button",classNames:H,style:D={},autoInsertSpace:V,autoFocus:W}=e,G=w(e,["loading","prefixCls","color","variant","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","iconPosition","ghost","block","htmlType","classNames","style","autoInsertSpace","autoFocus"]),U=j||"default",{button:q}=t.default.useContext(l.ConfigContext),J=T||(null==q?void 0:q.shape)||"default",[K,X]=(0,t.useMemo)(()=>{if(S&&k)return[S,k];if(j||O){let e=$[U]||[];return O?["danger",e[1]]:e}return(null==q?void 0:q.color)&&(null==q?void 0:q.variant)?[q.color,q.variant]:["default","outlined"]},[S,k,j,O,null==q?void 0:q.color,null==q?void 0:q.variant,U]),Y="danger"===K?"dangerous":K,{getPrefixCls:Z,direction:Q,autoInsertSpace:ee,className:et,style:er,classNames:en,styles:eo}=(0,l.useComponentConfig)("button"),ea=null==(v=null!=V?V:ee)||v,ei=Z("btn",x),[el,es,ec]=(0,h.default)(ei),eu=(0,t.useContext)(s.default),ed=null!=I?I:eu,ef=(0,t.useContext)(d.GroupSizeContext),ep=(0,t.useMemo)(()=>(function(e){if("object"==typeof e&&e){let t=null==e?void 0:e.delay;return{loading:(t=Number.isNaN(t)||"number"!=typeof t?0:t)<=0,delay:t}}return{loading:!!e,delay:0}})(E),[E]),[em,eh]=(0,t.useState)(ep.loading),[eg,ev]=(0,t.useState)(!1),ey=(0,t.useRef)(null),eb=(0,a.useComposeRef)(g,ey),ew=1===t.Children.count(R)&&!M&&!(0,f.isUnBorderedButtonVariant)(X),e$=(0,t.useRef)(!0);t.default.useEffect(()=>(e$.current=!1,()=>{e$.current=!0}),[]),(0,n.default)(()=>{let e=null;return ep.delay>0?e=setTimeout(()=>{e=null,eh(!0)},ep.delay):eh(ep.loading),function(){e&&(clearTimeout(e),e=null)}},[ep.delay,ep.loading]),(0,t.useEffect)(()=>{if(!ey.current||!ea)return;let e=ey.current.textContent||"";ew&&(0,f.isTwoCNChar)(e)?eg||ev(!0):eg&&ev(!1)}),(0,t.useEffect)(()=>{W&&ey.current&&ey.current.focus()},[]);let eC=t.default.useCallback(t=>{var r;em||ed?t.preventDefault():null==(r=e.onClick)||r.call(e,("href"in e,t))},[e.onClick,em,ed]),{compactSize:eE,compactItemClassnames:ex}=(0,u.useCompactItemContext)(ei,Q),eS=(0,c.default)(e=>{var t,r;return null!=(r=null!=(t=null!=F?F:eE)?t:ef)?r:e}),ek=eS&&null!=(y=({large:"lg",small:"sm",middle:void 0})[eS])?y:"",ej=em?"loading":M,eO=(0,o.default)(G,["navigate"]),eT=(0,r.default)(ei,es,ec,{[`${ei}-${J}`]:"default"!==J&&J,[`${ei}-${U}`]:U,[`${ei}-dangerous`]:O,[`${ei}-color-${Y}`]:Y,[`${ei}-variant-${X}`]:X,[`${ei}-${ek}`]:ek,[`${ei}-icon-only`]:!R&&0!==R&&!!ej,[`${ei}-background-ghost`]:A&&!(0,f.isUnBorderedButtonVariant)(X),[`${ei}-loading`]:em,[`${ei}-two-chinese-chars`]:eg&&ea&&!em,[`${ei}-block`]:z,[`${ei}-rtl`]:"rtl"===Q,[`${ei}-icon-end`]:"end"===B},ex,P,N,et),eF=Object.assign(Object.assign({},er),D),e_=(0,r.default)(null==H?void 0:H.icon,en.icon),eI=Object.assign(Object.assign({},(null==_?void 0:_.icon)||{}),eo.icon||{}),eP=e=>t.default.createElement(m.default,{prefixCls:ei,className:e_,style:eI},e);C=M&&!em?eP(M):E&&"object"==typeof E&&E.icon?eP(E.icon):t.default.createElement(p.default,{existIcon:!!M,prefixCls:ei,loading:em,mount:e$.current});let eN=R||0===R?(0,f.spaceChildren)(R,ew&&ea):null;if(void 0!==eO.href)return el(t.default.createElement("a",Object.assign({},eO,{className:(0,r.default)(eT,{[`${ei}-disabled`]:ed}),href:ed?void 0:eO.href,style:eF,onClick:eC,ref:eb,tabIndex:ed?-1:0,"aria-disabled":ed}),C,eN));let eR=t.default.createElement("button",Object.assign({},G,{type:L,className:eT,style:eF,onClick:eC,disabled:ed,ref:eb}),C,eN,ex&&t.default.createElement(b,{prefixCls:ei}));return(0,f.isUnBorderedButtonVariant)(X)||(eR=t.default.createElement(i.default,{component:"Button",disabled:em},eR)),el(eR)});C.Group=d.default,C.__ANT_BUTTON=!0,e.s(["default",0,C],920228)},756570,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(246422),n=e.i(838378);let o=(e,t)=>((e,t)=>{let{prefixCls:r,componentCls:n,gridColumns:o}=e,a={};for(let e=o;e>=0;e--)0===e?(a[`${n}${t}-${e}`]={display:"none"},a[`${n}-push-${e}`]={insetInlineStart:"auto"},a[`${n}-pull-${e}`]={insetInlineEnd:"auto"},a[`${n}${t}-push-${e}`]={insetInlineStart:"auto"},a[`${n}${t}-pull-${e}`]={insetInlineEnd:"auto"},a[`${n}${t}-offset-${e}`]={marginInlineStart:0},a[`${n}${t}-order-${e}`]={order:0}):(a[`${n}${t}-${e}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${e/o*100}%`,maxWidth:`${e/o*100}%`}],a[`${n}${t}-push-${e}`]={insetInlineStart:`${e/o*100}%`},a[`${n}${t}-pull-${e}`]={insetInlineEnd:`${e/o*100}%`},a[`${n}${t}-offset-${e}`]={marginInlineStart:`${e/o*100}%`},a[`${n}${t}-order-${e}`]={order:e});return a[`${n}${t}-flex`]={flex:`var(--${r}${t}-flex)`},a})(e,t),a=(0,r.genStyleHooks)("Grid",e=>{let{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},()=>({})),i=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),l=(0,r.genStyleHooks)("Grid",e=>{let r=(0,n.mergeToken)(e,{gridColumns:24}),a=i(r);return delete a.xs,[(e=>{let{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}})(r),o(r,""),o(r,"-xs"),Object.keys(a).map(e=>{let n,i;return n=a[e],i=`-${e}`,{[`@media (min-width: ${(0,t.unit)(n)})`]:Object.assign({},o(r,i))}}).reduce((e,t)=>Object.assign(Object.assign({},e),t),{})]},()=>({}));e.s(["getMediaSize",0,i,"useColStyle",0,l,"useRowStyle",0,a])},805484,e=>{"use strict";var t=e.i(271645),r=e.i(914949),n=e.i(609587),o=e.i(242064);function a(e){return r=>t.createElement(n.default,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(e,Object.assign({},r)))}e.s(["default",0,(e,n,i,l,s)=>a(a=>{let{prefixCls:c,style:u}=a,d=t.useRef(null),[f,p]=t.useState(0),[m,h]=t.useState(0),[g,v]=(0,r.default)(!1,{value:a.open}),{getPrefixCls:y}=t.useContext(o.ConfigContext),b=y(l||"select",c);t.useEffect(()=>{if(v(!0),"u">typeof ResizeObserver){let e=new ResizeObserver(e=>{let t=e[0].target;p(t.offsetHeight+8),h(t.offsetWidth)}),t=setInterval(()=>{var r;let n=s?`.${s(b)}`:`.${b}-dropdown`,o=null==(r=d.current)?void 0:r.querySelector(n);o&&(clearInterval(t),e.observe(o))},10);return()=>{clearInterval(t),e.disconnect()}}},[b]);let w=Object.assign(Object.assign({},a),{style:Object.assign(Object.assign({},u),{margin:0}),open:g,visible:g,getPopupContainer:()=>d.current});return i&&(w=i(w)),n&&Object.assign(w,{[n]:{overflow:{adjustX:!1,adjustY:!1}}}),t.createElement("div",{ref:d,style:{paddingBottom:f,position:"relative",minWidth:m}},t.createElement(e,Object.assign({},w)))}),"withPureRenderTheme",()=>a])},830919,e=>{"use strict";var t=e.i(271645);function r(e){let[r,n]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{n(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}e.s(["default",()=>r])},782074,908709,53058,923624,e=>{"use strict";var t=e.i(8211),r=e.i(271645),n=e.i(343794),o=e.i(361275),a=e.i(629587),i=e.i(613541),l=e.i(321883),s=e.i(62139),c=e.i(830919);e.i(296059);var u=e.i(915654),d=e.i(183293),f=e.i(447580),p=e.i(717356),m=e.i(246422),h=e.i(838378);let g=(e,t)=>{let{formItemCls:r}=e;return{[r]:{[`${r}-label > label`]:{height:t},[`${r}-control-input`]:{minHeight:t}}}},v=e=>({padding:e.verticalLabelPadding,margin:e.verticalLabelMargin,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),y=(e,t)=>(0,h.mergeToken)(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:t}),b=(0,m.genStyleHooks)("Form",(e,{rootPrefixCls:t})=>{let r=y(e,t);return[(e=>{let{componentCls:t}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${(0,u.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},[`input[type='file']:focus, + `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:o,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{padding:n}}}})(t),(e=>{let{componentCls:t,paddingSM:r}=e;return{[`${t}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:"transparent",border:0,[`> ${t}-content-box`]:{paddingBlock:r}}}}}})(t),(e=>{let{componentCls:t}=e,r=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[r]:{transform:"rotate(180deg)"}}}})(t),(0,m.genCollapseMotion)(t)]},e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:"transparent"})),y=Object.assign(t.forwardRef((e,d)=>{let{getPrefixCls:f,direction:p,expandIcon:m,className:h,style:g}=(0,c.useComponentConfig)("collapse"),{prefixCls:y,className:b,rootClassName:w,style:$,bordered:C=!0,ghost:E,size:x,expandIconPosition:S="start",children:j,destroyInactivePanel:k,destroyOnHidden:O,expandIcon:T}=e,F=(0,u.default)(e=>{var t;return null!=(t=null!=x?x:e)?t:"middle"}),I=f("collapse",y),_=f(),[P,N,R]=v(I),M=t.useMemo(()=>"left"===S?"start":"right"===S?"end":S,[S]),B=null!=T?T:m,A=t.useCallback((e={})=>{let o="function"==typeof B?B(e):t.createElement(r.default,{rotate:e.isActive?"rtl"===p?-90:90:void 0,"aria-label":e.isActive?"expanded":"collapsed"});return(0,s.cloneElement)(o,()=>{var e;return{className:(0,n.default)(null==(e=o.props)?void 0:e.className,`${I}-arrow`)}})},[B,I,p]),z=(0,n.default)(`${I}-icon-position-${M}`,{[`${I}-borderless`]:!C,[`${I}-rtl`]:"rtl"===p,[`${I}-ghost`]:!!E,[`${I}-${F}`]:"middle"!==F},h,b,w,N,R),L=t.useMemo(()=>Object.assign(Object.assign({},(0,l.default)(_)),{motionAppear:!1,leavedClassName:`${I}-content-hidden`}),[_,I]),H=t.useMemo(()=>j?(0,a.default)(j).map((e,t)=>{var r,n;let o=e.props;if(null==o?void 0:o.disabled){let a=null!=(r=e.key)?r:String(t),l=Object.assign(Object.assign({},(0,i.default)(e.props,["disabled"])),{key:a,collapsible:null!=(n=o.collapsible)?n:"disabled"});return(0,s.cloneElement)(e,l)}return e}):null,[j]);return P(t.createElement(o.default,Object.assign({ref:d,openMotion:L},(0,i.default)(e,["rootClassName"]),{expandIcon:A,prefixCls:I,className:z,style:Object.assign(Object.assign({},g),$),destroyInactivePanel:null!=O?O:k}),H))}),{Panel:d.default});e.s(["default",0,y],988122)},432231,327174,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(617933),o=e.i(246422),a=e.i(838378),i=e.i(470977),l=e.i(571070);e.i(271645),e.i(509808),e.i(202599);var s=e.i(814690);e.i(343794),e.i(914949),e.i(988122),e.i(408850),e.i(104458),e.i(656449);var c=e.i(988317),u=e.i(745978);let d=e=>{let{paddingInline:t,onlyIconSize:r}=e;return(0,a.mergeToken)(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:r})},f=e=>{var r,o,a,i,d,f;let p=null!=(r=e.contentFontSize)?r:e.fontSize,m=null!=(o=e.contentFontSizeSM)?o:e.fontSize,h=null!=(a=e.contentFontSizeLG)?a:e.fontSizeLG,g=null!=(i=e.contentLineHeight)?i:(0,c.getLineHeight)(p),v=null!=(d=e.contentLineHeightSM)?d:(0,c.getLineHeight)(m),y=null!=(f=e.contentLineHeightLG)?f:(0,c.getLineHeight)(h),b=((e,t)=>{let{r,g:n,b:o,a}=e.toRgb(),i=new s.Color(e.toRgbString()).onBackground(t).toHsv();return a<=.5?i.v>.5:.299*r+.587*n+.114*o>192})(new l.AggregationColor(e.colorBgSolid),"#fff")?"#000":"#fff";return Object.assign(Object.assign({},n.PresetColors.reduce((r,n)=>Object.assign(Object.assign({},r),{[`${n}ShadowColor`]:`0 ${(0,t.unit)(e.controlOutlineWidth)} 0 ${(0,u.default)(e[`${n}1`],e.colorBgContainer)}`}),{})),{fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:"inherit",onlyIconSizeSM:"inherit",onlyIconSizeLG:"inherit",groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:b,contentFontSize:p,contentFontSizeSM:m,contentFontSizeLG:h,contentLineHeight:g,contentLineHeightSM:v,contentLineHeightLG:y,paddingBlock:Math.max((e.controlHeight-p*g)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-m*v)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-h*y)/2-e.lineWidth,0)})};e.s(["prepareComponentToken",0,f,"prepareToken",0,d],327174);let p=(e,t,r)=>({[`&:not(:disabled):not(${e}-disabled)`]:{"&:hover":t,"&:active":r}}),m=(e,t,r,n,o,a,i,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:r||void 0,background:t,borderColor:n||void 0,boxShadow:"none"},p(e,Object.assign({background:t},i),Object.assign({background:t},l))),{"&:disabled":{cursor:"not-allowed",color:o||void 0,borderColor:a||void 0}})}),h=(e,t,r,n)=>Object.assign(Object.assign({},(n&&["link","text"].includes(n)?e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}):e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},{cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"})}))(e)),p(e.componentCls,t,r)),g=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:r},h(e,n,o))}),v=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:r},h(e,n,o))}),y=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:"dashed"}}),b=(e,t,r,n)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:"none",background:t},h(e,r,n))}),w=(e,t,r,n,o)=>({[`&${e.componentCls}-variant-${r}`]:Object.assign({color:t,boxShadow:"none"},h(e,n,o,r))}),$=(e,r="")=>{let{componentCls:n,controlHeight:o,fontSize:a,borderRadius:i,buttonPaddingHorizontal:l,iconCls:s,buttonPaddingVertical:c,buttonIconOnlyFontSize:u}=e;return[{[r]:{fontSize:a,height:o,padding:`${(0,t.unit)(c)} ${(0,t.unit)(l)}`,borderRadius:i,[`&${n}-icon-only`]:{width:o,[s]:{fontSize:u}}}},{[`${n}${n}-circle${r}`]:{minWidth:e.controlHeight,paddingInline:0,borderRadius:"50%"}},{[`${n}${n}-round${r}`]:{borderRadius:e.controlHeight,[`&:not(${n}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},C=(0,o.genStyleHooks)("Button",e=>{let o=d(e);return[(e=>{let{componentCls:n,iconCls:o,fontWeight:a,opacityLoading:i,motionDurationSlow:l,motionEaseInOut:s,iconGap:c,calc:u}=e;return{[n]:{outline:"none",position:"relative",display:"inline-flex",gap:c,alignItems:"center",justifyContent:"center",fontWeight:a,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:e.colorText,"&:disabled > *":{pointerEvents:"none"},[`${n}-icon > svg`]:(0,r.resetIcon)(),"> a":{color:"currentColor"},"&:not(:disabled)":(0,r.genFocusStyle)(e),[`&${n}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${n}-two-chinese-chars > *:not(${o})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&${n}-icon-only`]:{paddingInline:0,[`&${n}-compact-item`]:{flex:"none"}},[`&${n}-loading`]:{opacity:i,cursor:"default"},[`${n}-loading-icon`]:{transition:["width","opacity","margin"].map(e=>`${e} ${l} ${s}`).join(",")},[`&:not(${n}-icon-end)`]:{[`${n}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:u(c).mul(-1).equal()}}},"&-icon-end":{flexDirection:"row-reverse",[`${n}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:u(c).mul(-1).equal()}}}}}})(o),$((0,a.mergeToken)(o,{fontSize:o.contentFontSize}),o.componentCls),$((0,a.mergeToken)(o,{controlHeight:o.controlHeightSM,fontSize:o.contentFontSizeSM,padding:o.paddingXS,buttonPaddingHorizontal:o.paddingInlineSM,buttonPaddingVertical:0,borderRadius:o.borderRadiusSM,buttonIconOnlyFontSize:o.onlyIconSizeSM}),`${o.componentCls}-sm`),$((0,a.mergeToken)(o,{controlHeight:o.controlHeightLG,fontSize:o.contentFontSizeLG,buttonPaddingHorizontal:o.paddingInlineLG,buttonPaddingVertical:0,borderRadius:o.borderRadiusLG,buttonIconOnlyFontSize:o.onlyIconSizeLG}),`${o.componentCls}-lg`),(e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}})(o),(e=>{let{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},g(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),y(e)),b(e,e.colorFillTertiary,{color:e.defaultColor,background:e.colorFillSecondary},{color:e.defaultColor,background:e.colorFill})),m(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),w(e,e.textTextColor,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),[`${t}-color-primary`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},v(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),y(e)),b(e,e.colorPrimaryBg,{color:e.colorPrimary,background:e.colorPrimaryBgHover},{color:e.colorPrimary,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"text",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"link",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),m(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),[`${t}-color-dangerous`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},g(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),v(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),y(e)),b(e,e.colorErrorBg,{color:e.colorError,background:e.colorErrorBgFilledHover},{color:e.colorError,background:e.colorErrorBgActive})),w(e,e.colorError,"text",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),w(e,e.colorError,"link",{color:e.colorErrorHover},{color:e.colorErrorActive})),m(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),[`${t}-color-link`]:Object.assign(Object.assign({},w(e,e.colorLink,"link",{color:e.colorLinkHover},{color:e.colorLinkActive})),m(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive}))},(e=>{let{componentCls:t}=e;return n.PresetColors.reduce((r,n)=>{let o=e[`${n}6`],a=e[`${n}1`],i=e[`${n}5`],l=e[`${n}2`],s=e[`${n}3`],c=e[`${n}7`];return Object.assign(Object.assign({},r),{[`&${t}-color-${n}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:o,boxShadow:e[`${n}ShadowColor`]},g(e,e.colorTextLightSolid,o,{background:i},{background:c})),v(e,o,e.colorBgContainer,{color:i,borderColor:i,background:e.colorBgContainer},{color:c,borderColor:c,background:e.colorBgContainer})),y(e)),b(e,a,{color:o,background:l},{color:o,background:s})),w(e,o,"link",{color:i},{color:c})),w(e,o,"text",{color:i,background:a},{color:c,background:s}))})},{})})(e))})(o),Object.assign(Object.assign(Object.assign(Object.assign({},v(o,o.defaultBorderColor,o.defaultBg,{color:o.defaultHoverColor,borderColor:o.defaultHoverBorderColor,background:o.defaultHoverBg},{color:o.defaultActiveColor,borderColor:o.defaultActiveBorderColor,background:o.defaultActiveBg})),w(o,o.textTextColor,"text",{color:o.textTextHoverColor,background:o.textHoverBg},{color:o.textTextActiveColor,background:o.colorBgTextActive})),g(o,o.primaryColor,o.colorPrimary,{background:o.colorPrimaryHover,color:o.primaryColor},{background:o.colorPrimaryActive,color:o.primaryColor})),w(o,o.colorLink,"link",{color:o.colorLinkHover,background:o.linkHoverBg},{color:o.colorLinkActive})),(0,i.default)(o)]},f,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});e.s(["default",0,C],432231)},372409,e=>{"use strict";function t(e,r={focus:!0}){let{componentCls:n}=e,{componentCls:o}=r,a=o||n,i=`${a}-compact`;return{[i]:Object.assign(Object.assign({},function(e,t,r,n){let{focusElCls:o,focus:a,borderElCls:i}=r,l=i?"> *":"",s=["hover",a?"focus":null,"active"].filter(Boolean).map(e=>`&:${e} ${l}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${n}-status-success)`]:{zIndex:2},"&-item":Object.assign(Object.assign({[s]:{zIndex:3}},o?{[`&${o}`]:{zIndex:3}}:{}),{[`&[disabled] ${l}`]:{zIndex:0}})}}(e,i,r,a)),function(e,t,r){let{borderElCls:n}=r,o=n?`> ${n}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${o}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}(a,i,r))}}e.s(["genCompactItemStyle",()=>t])},920228,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(174428),o=e.i(529681),a=e.i(611935),i=e.i(121872),l=e.i(242064),s=e.i(937328),c=e.i(517455),u=e.i(249616),d=e.i(735996),f=e.i(62405),p=e.i(868004),m=e.i(869693),h=e.i(432231),g=e.i(372409),v=e.i(246422),y=e.i(327174);let b=(0,v.genSubStyleComponent)(["Button","compact"],e=>{var t,r;let n,o=(0,y.prepareToken)(e);return[(0,g.genCompactItemStyle)(o),{[n=`${o.componentCls}-compact-vertical`]:Object.assign(Object.assign({},(t=o.componentCls,{[`&-item:not(${n}-last-item)`]:{marginBottom:o.calc(o.lineWidth).mul(-1).equal()},[`&-item:not(${t}-status-success)`]:{zIndex:2},"&-item":{"&:hover,&:focus,&:active":{zIndex:3},"&[disabled]":{zIndex:0}}})),(r=o.componentCls,{[`&-item:not(${n}-first-item):not(${n}-last-item)`]:{borderRadius:0},[`&-item${n}-first-item:not(${n}-last-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${n}-last-item:not(${n}-first-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}))},(e=>{let{componentCls:t,colorPrimaryHover:r,lineWidth:n,calc:o}=e,a=o(n).mul(-1).equal(),i=e=>{let o=`${t}-compact${e?"-vertical":""}-item${t}-primary:not([disabled])`;return{[`${o} + ${o}::before`]:{position:"absolute",top:e?a:0,insetInlineStart:e?0:a,backgroundColor:r,content:'""',width:e?"100%":n,height:e?n:"100%"}}};return Object.assign(Object.assign({},i()),i(!0))})(o)]},y.prepareComponentToken);var w=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let $={default:["default","outlined"],primary:["primary","solid"],dashed:["default","dashed"],link:["link","link"],text:["default","text"]},C=t.default.forwardRef((e,g)=>{var v,y;let C,{loading:E=!1,prefixCls:x,color:S,variant:j,type:k,danger:O=!1,shape:T,size:F,styles:I,disabled:_,className:P,rootClassName:N,children:R,icon:M,iconPosition:B="start",ghost:A=!1,block:z=!1,htmlType:L="button",classNames:H,style:D={},autoInsertSpace:V,autoFocus:W}=e,G=w(e,["loading","prefixCls","color","variant","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","iconPosition","ghost","block","htmlType","classNames","style","autoInsertSpace","autoFocus"]),U=k||"default",{button:q}=t.default.useContext(l.ConfigContext),J=T||(null==q?void 0:q.shape)||"default",[K,X]=(0,t.useMemo)(()=>{if(S&&j)return[S,j];if(k||O){let e=$[U]||[];return O?["danger",e[1]]:e}return(null==q?void 0:q.color)&&(null==q?void 0:q.variant)?[q.color,q.variant]:["default","outlined"]},[S,j,k,O,null==q?void 0:q.color,null==q?void 0:q.variant,U]),Y="danger"===K?"dangerous":K,{getPrefixCls:Z,direction:Q,autoInsertSpace:ee,className:et,style:er,classNames:en,styles:eo}=(0,l.useComponentConfig)("button"),ea=null==(v=null!=V?V:ee)||v,ei=Z("btn",x),[el,es,ec]=(0,h.default)(ei),eu=(0,t.useContext)(s.default),ed=null!=_?_:eu,ef=(0,t.useContext)(d.GroupSizeContext),ep=(0,t.useMemo)(()=>(function(e){if("object"==typeof e&&e){let t=null==e?void 0:e.delay;return{loading:(t=Number.isNaN(t)||"number"!=typeof t?0:t)<=0,delay:t}}return{loading:!!e,delay:0}})(E),[E]),[em,eh]=(0,t.useState)(ep.loading),[eg,ev]=(0,t.useState)(!1),ey=(0,t.useRef)(null),eb=(0,a.useComposeRef)(g,ey),ew=1===t.Children.count(R)&&!M&&!(0,f.isUnBorderedButtonVariant)(X),e$=(0,t.useRef)(!0);t.default.useEffect(()=>(e$.current=!1,()=>{e$.current=!0}),[]),(0,n.default)(()=>{let e=null;return ep.delay>0?e=setTimeout(()=>{e=null,eh(!0)},ep.delay):eh(ep.loading),function(){e&&(clearTimeout(e),e=null)}},[ep.delay,ep.loading]),(0,t.useEffect)(()=>{if(!ey.current||!ea)return;let e=ey.current.textContent||"";ew&&(0,f.isTwoCNChar)(e)?eg||ev(!0):eg&&ev(!1)}),(0,t.useEffect)(()=>{W&&ey.current&&ey.current.focus()},[]);let eC=t.default.useCallback(t=>{var r;em||ed?t.preventDefault():null==(r=e.onClick)||r.call(e,("href"in e,t))},[e.onClick,em,ed]),{compactSize:eE,compactItemClassnames:ex}=(0,u.useCompactItemContext)(ei,Q),eS=(0,c.default)(e=>{var t,r;return null!=(r=null!=(t=null!=F?F:eE)?t:ef)?r:e}),ej=eS&&null!=(y=({large:"lg",small:"sm",middle:void 0})[eS])?y:"",ek=em?"loading":M,eO=(0,o.default)(G,["navigate"]),eT=(0,r.default)(ei,es,ec,{[`${ei}-${J}`]:"default"!==J&&J,[`${ei}-${U}`]:U,[`${ei}-dangerous`]:O,[`${ei}-color-${Y}`]:Y,[`${ei}-variant-${X}`]:X,[`${ei}-${ej}`]:ej,[`${ei}-icon-only`]:!R&&0!==R&&!!ek,[`${ei}-background-ghost`]:A&&!(0,f.isUnBorderedButtonVariant)(X),[`${ei}-loading`]:em,[`${ei}-two-chinese-chars`]:eg&&ea&&!em,[`${ei}-block`]:z,[`${ei}-rtl`]:"rtl"===Q,[`${ei}-icon-end`]:"end"===B},ex,P,N,et),eF=Object.assign(Object.assign({},er),D),eI=(0,r.default)(null==H?void 0:H.icon,en.icon),e_=Object.assign(Object.assign({},(null==I?void 0:I.icon)||{}),eo.icon||{}),eP=e=>t.default.createElement(m.default,{prefixCls:ei,className:eI,style:e_},e);C=M&&!em?eP(M):E&&"object"==typeof E&&E.icon?eP(E.icon):t.default.createElement(p.default,{existIcon:!!M,prefixCls:ei,loading:em,mount:e$.current});let eN=R||0===R?(0,f.spaceChildren)(R,ew&&ea):null;if(void 0!==eO.href)return el(t.default.createElement("a",Object.assign({},eO,{className:(0,r.default)(eT,{[`${ei}-disabled`]:ed}),href:ed?void 0:eO.href,style:eF,onClick:eC,ref:eb,tabIndex:ed?-1:0,"aria-disabled":ed}),C,eN));let eR=t.default.createElement("button",Object.assign({},G,{type:L,className:eT,style:eF,onClick:eC,disabled:ed,ref:eb}),C,eN,ex&&t.default.createElement(b,{prefixCls:ei}));return(0,f.isUnBorderedButtonVariant)(X)||(eR=t.default.createElement(i.default,{component:"Button",disabled:em},eR)),el(eR)});C.Group=d.default,C.__ANT_BUTTON=!0,e.s(["default",0,C],920228)},756570,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(246422),n=e.i(838378);let o=(e,t)=>((e,t)=>{let{prefixCls:r,componentCls:n,gridColumns:o}=e,a={};for(let e=o;e>=0;e--)0===e?(a[`${n}${t}-${e}`]={display:"none"},a[`${n}-push-${e}`]={insetInlineStart:"auto"},a[`${n}-pull-${e}`]={insetInlineEnd:"auto"},a[`${n}${t}-push-${e}`]={insetInlineStart:"auto"},a[`${n}${t}-pull-${e}`]={insetInlineEnd:"auto"},a[`${n}${t}-offset-${e}`]={marginInlineStart:0},a[`${n}${t}-order-${e}`]={order:0}):(a[`${n}${t}-${e}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${e/o*100}%`,maxWidth:`${e/o*100}%`}],a[`${n}${t}-push-${e}`]={insetInlineStart:`${e/o*100}%`},a[`${n}${t}-pull-${e}`]={insetInlineEnd:`${e/o*100}%`},a[`${n}${t}-offset-${e}`]={marginInlineStart:`${e/o*100}%`},a[`${n}${t}-order-${e}`]={order:e});return a[`${n}${t}-flex`]={flex:`var(--${r}${t}-flex)`},a})(e,t),a=(0,r.genStyleHooks)("Grid",e=>{let{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},()=>({})),i=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),l=(0,r.genStyleHooks)("Grid",e=>{let r=(0,n.mergeToken)(e,{gridColumns:24}),a=i(r);return delete a.xs,[(e=>{let{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}})(r),o(r,""),o(r,"-xs"),Object.keys(a).map(e=>{let n,i;return n=a[e],i=`-${e}`,{[`@media (min-width: ${(0,t.unit)(n)})`]:Object.assign({},o(r,i))}}).reduce((e,t)=>Object.assign(Object.assign({},e),t),{})]},()=>({}));e.s(["getMediaSize",0,i,"useColStyle",0,l,"useRowStyle",0,a])},805484,e=>{"use strict";var t=e.i(271645),r=e.i(914949),n=e.i(609587),o=e.i(242064);function a(e){return r=>t.createElement(n.default,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(e,Object.assign({},r)))}e.s(["default",0,(e,n,i,l,s)=>a(a=>{let{prefixCls:c,style:u}=a,d=t.useRef(null),[f,p]=t.useState(0),[m,h]=t.useState(0),[g,v]=(0,r.default)(!1,{value:a.open}),{getPrefixCls:y}=t.useContext(o.ConfigContext),b=y(l||"select",c);t.useEffect(()=>{if(v(!0),"u">typeof ResizeObserver){let e=new ResizeObserver(e=>{let t=e[0].target;p(t.offsetHeight+8),h(t.offsetWidth)}),t=setInterval(()=>{var r;let n=s?`.${s(b)}`:`.${b}-dropdown`,o=null==(r=d.current)?void 0:r.querySelector(n);o&&(clearInterval(t),e.observe(o))},10);return()=>{clearInterval(t),e.disconnect()}}},[b]);let w=Object.assign(Object.assign({},a),{style:Object.assign(Object.assign({},u),{margin:0}),open:g,visible:g,getPopupContainer:()=>d.current});return i&&(w=i(w)),n&&Object.assign(w,{[n]:{overflow:{adjustX:!1,adjustY:!1}}}),t.createElement("div",{ref:d,style:{paddingBottom:f,position:"relative",minWidth:m}},t.createElement(e,Object.assign({},w)))}),"withPureRenderTheme",()=>a])},830919,e=>{"use strict";var t=e.i(271645);function r(e){let[r,n]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{n(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}e.s(["default",()=>r])},782074,908709,53058,923624,e=>{"use strict";var t=e.i(8211),r=e.i(271645),n=e.i(343794),o=e.i(361275),a=e.i(629587),i=e.i(613541),l=e.i(321883),s=e.i(62139),c=e.i(830919);e.i(296059);var u=e.i(915654),d=e.i(183293),f=e.i(447580),p=e.i(717356),m=e.i(246422),h=e.i(838378);let g=(e,t)=>{let{formItemCls:r}=e;return{[r]:{[`${r}-label > label`]:{height:t},[`${r}-control-input`]:{minHeight:t}}}},v=e=>({padding:e.verticalLabelPadding,margin:e.verticalLabelMargin,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),y=(e,t)=>(0,h.mergeToken)(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:t}),b=(0,m.genStyleHooks)("Form",(e,{rootPrefixCls:t})=>{let r=y(e,t);return[(e=>{let{componentCls:t}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${(0,u.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},[`input[type='file']:focus, input[type='radio']:focus, input[type='checkbox']:focus`]:{outline:0,boxShadow:`0 0 0 ${(0,u.unit)(e.controlOutlineWidth)} ${e.controlOutline}`},output:{display:"block",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),{[`${t}-text`]:{display:"inline-block",paddingInlineEnd:e.paddingSM},"&-small":Object.assign({},g(e,e.controlHeightSM)),"&-large":Object.assign({},g(e,e.controlHeightLG))})}})(r),(e=>{let{formItemCls:t,iconCls:r,rootPrefixCls:n,antCls:o,labelRequiredMarkColor:a,labelColor:i,labelFontSize:l,labelHeight:s,labelColonMarginInlineStart:c,labelColonMarginInlineEnd:u,itemMarginBottom:f}=e;return{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{marginBottom:f,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, &-hidden${o}-row`]:{display:"none"},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:e.lineHeight,whiteSpace:"unset","> label":{verticalAlign:"middle",textWrap:"balance"}},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:s,color:i,fontSize:l,[`> ${r}`]:{fontSize:e.fontSize,verticalAlign:"top"},[`&${t}-required`]:{"&::before":{display:"inline-block",marginInlineEnd:e.marginXXS,color:a,fontSize:e.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"'},[`&${t}-required-mark-hidden, &${t}-required-mark-optional`]:{"&::before":{display:"none"}}},[`${t}-optional`]:{display:"inline-block",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`&${t}-required-mark-hidden`]:{display:"none"}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:e.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:c,marginInlineEnd:u},[`&${t}-no-colon::after`]:{content:'"\\a0"'}}},[`${t}-control`]:{"--ant-display":"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${n}-col-'"]):not([class*="' ${n}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:e.controlHeight,"&-content":{flex:"auto",maxWidth:"100%",[`&:has(> ${o}-switch:only-child, > ${o}-rate:only-child)`]:{display:"flex",alignItems:"center"}}}},[t]:{"&-additional":{display:"flex",flexDirection:"column"},"&-explain, &-extra":{clear:"both",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:"auto",opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:"center",visibility:"visible",animationName:p.zoomIn,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:"none","&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}})(r),(e=>{let{componentCls:t}=e,r=`${t}-show-help`,n=`${t}-show-help-item`;return{[r]:{transition:`opacity ${e.motionDurationFast} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[n]:{overflow:"hidden",transition:`height ${e.motionDurationFast} ${e.motionEaseInOut}, @@ -28,14 +28,14 @@ ${t}-col-xl-24${r}-label`]:v(e)}}})(r),(e=>{let{componentCls:t,formItemCls:r,inlineItemMarginBottom:n}=e;return{[`${t}-inline`]:{display:"flex",flexWrap:"wrap",[`${r}-inline`]:{flex:"none",marginInlineEnd:e.margin,marginBottom:n,"&-row":{flexWrap:"nowrap"},[`> ${r}-label, > ${r}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${r}-label`]:{flex:"none"},[`${t}-text`]:{display:"inline-block"},[`${r}-has-feedback`]:{display:"inline-block"}}}}})(r),(e=>{let{componentCls:t,formItemCls:r,antCls:n}=e;return{[`${r}-vertical`]:{[`${r}-row`]:{flexDirection:"column"},[`${r}-label > label`]:{height:"auto"},[`${r}-control`]:{width:"100%"},[`${r}-label, ${n}-col-24${r}-label, - ${n}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:n}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${n}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,n=0){return{key:"string"==typeof e?e:`${t}-${n}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:m,onVisibleChanged:h})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,E,x]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),k=(0,c.default)(d),j=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(k.map((e,t)=>$(e,"error","error",t))),(0,t.default)(j.map((e,t)=>$(e,"warning","warning",t)))),[e,u,k,j]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),F={};return m&&(F.id=`${m}_help`),C(r.createElement(o.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:h},e=>{let{className:t,style:o}=e;return r.createElement("div",Object.assign({},F,{className:(0,n.default)(v,t,x,y,p,E),style:o}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:o,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,n.default)(i,{[`${v}-${a}`]:a}),style:l},o)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var E=e.i(621796);e.s(["useWatch",()=>E.default],923624)},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,n=e.i(279697);let o=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-n:i>t&&lr?i-t+o:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,n,a,c;let u;if("u"e!==m;if(!o(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;o(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,h)&&y.push(b)}let w=null!=(n=null==(r=window.visualViewport)?void 0:r.width)?n:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:E}=window,{height:x,width:S,top:k,right:j,bottom:O,left:T}=e.getBoundingClientRect(),{top:F,right:_,bottom:I,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},N="start"===f||"nearest"===f?k-F:"end"===f?O+I:k+x/2-F+I,R="center"===p?T+S/2-P+_:"end"===p?j+_:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&j<=w&&(t===v&&!i(t)||k>=o&&O<=s&&T>=c&&j<=a))break;let u=getComputedStyle(t),m=parseInt(u.borderLeftWidth,10),h=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),F=0,_=0,I="offsetWidth"in t?t.offsetWidth-t.clientWidth-m-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-h-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:n/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)F="start"===f?N:"end"===f?N-$:"nearest"===f?l(E,E+$,$,h,b,E+N,E+N+x,x):N-$/2,_="start"===p?R:"center"===p?R-w/2:"end"===p?R-w:l(C,C+w,w,m,g,C+R,C+R+S,S),F=Math.max(0,F+E),_=Math.max(0,_+C);else{F="start"===f?N-o-h:"end"===f?N-s+b+P:"nearest"===f?l(o,s,r,h,b+P,N,N+x,x):N-(o+r/2)+P/2,_="start"===p?R-c-m:"center"===p?R-(c+n/2)+I/2:"end"===p?R-a+g+I:l(c,a,n,m,g+I,R,R+S,S);let{scrollLeft:e,scrollTop:i}=t;F=0===A?0:Math.max(0,Math.min(i+F/A,t.scrollHeight-r/A+P)),_=0===B?0:Math.max(0,Math.min(e+_/B,t.scrollWidth-n/B+I)),N+=i-F,R+=e-_}M.push({el:t,top:F,left:_})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}function p(e,t,r,n,o,a){let i=n;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||o&&r.validated)&&(i="success"),i}e.s(["getFieldId",()=>f,"getStatus",()=>p,"toArray",()=>d],531880);var m=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function h(e){return d(e).join("_")}function g(e,t){let r=t.getFieldInstance(e),o=(0,n.getDOM)(r);if(o)return o;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}function v(e){let[n]=(0,r.default)(),o=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},n),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?o.current[r]=t:delete o.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,n=m(t,["focus"]),o=g(e,a);o&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let n={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let o="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-n.top+n.bottom,t=i-n.left+n.right;r.scroll({top:e,left:t,behavior:o})}}(o,Object.assign({scrollMode:"if-needed",block:"nearest"},n)),r&&a.focusField(e))},focusField:e=>{var t,r;let n=a.getFieldInstance(e);"function"==typeof(null==n?void 0:n.focus)?n.focus():null==(r=null==(t=g(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return o.current[t]}}),[e,n]);return[a]}e.s(["default",()=>v,"toNamePathStr",()=>h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(495347);e.i(53058),e.i(923624);var o=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let m=t.forwardRef((e,m)=>{let h=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,o.useComponentConfig)("form"),{prefixCls:E,className:x,rootClassName:S,size:k,disabled:j=h,form:O,colon:T,labelAlign:F,labelWrap:_,labelCol:I,wrapperCol:P,hideRequiredMark:N,layout:R="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:H,variant:D}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(k),G=t.useContext(f.default),U=t.useMemo(()=>void 0!==B?B:!N&&(void 0===y||y),[N,B,y]),q=null!=T?T:b,J=g("form",E),K=(0,i.default)(J),[X,Y,Z]=(0,d.default)(J,K),Q=(0,r.default)(J,`${J}-${R}`,{[`${J}-hide-required-mark`]:!1===U,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Z,K,Y,$,x,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:F,labelCol:I,labelWrap:_,wrapperCol:P,layout:R,colon:q,requiredMark:U,itemRef:et.itemRef,form:ee,feedbackIcons:H}),[z,F,I,P,R,q,U,ee,H]),en=t.useRef(null);t.useImperativeHandle(m,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=en.current)?void 0:e.nativeElement})});let eo=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:D},t.createElement(a.DisabledContextProvider,{disabled:j},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:G},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(n.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void eo(M,t);void 0!==w&&eo(w,t)}},form:ee,ref:en,style:Object.assign(Object.assign({},C),L),className:Q})))))))))});e.s(["default",0,m],56117),e.s(["useForm",()=>u.default],411412);var h=e.i(162129);e.s(["Field",()=>h.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);function r(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}e.s(["default",()=>r],522228),e.i(247167);var n=e.i(271645),o=e.i(62139);let a=()=>{let{status:e,errors:t=[],warnings:r=[]}=n.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:r}};a.Context=o.FormItemInputContext,e.s(["default",0,a],893872);var i=e.i(963188);function l(e){let[t,r]=n.useState(e),o=n.useRef(null),a=n.useRef([]),l=n.useRef(!1);return n.useEffect(()=>(l.current=!1,()=>{l.current=!0,i.default.cancel(o.current),o.current=null}),[]),[t,function(e){l.current||(null===o.current&&(a.current=[],o.current=(0,i.default)(()=>{o.current=null,r(e=>{let t=e;return a.current.forEach(e=>{t=e(t)}),t})})),a.current.push(e))}]}e.s(["default",()=>l],857034);var s=e.i(611935);function c(){let{itemRef:e}=n.useContext(o.FormContext),t=n.useRef({});return function(r,n){let o=n&&"object"==typeof n&&(0,s.getNodeRef)(n),a=r.join("_");return(t.current.name!==a||t.current.originRef!==o)&&(t.current.name=a,t.current.originRef=o,t.current.ref=(0,s.composeRef)(e(r),o)),t.current.ref}}e.s(["default",()=>c],606836)},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),n=e.i(958503);let o=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(o).reverse()).forEach((t,r)=>{let n=t.toUpperCase(),o=`screen${n}Min`,i=`screen${n}`;if(!(a[o]<=a[i]))throw Error(`${o}<=${i} fails : !(${a[o]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(n){return e.size||this.register(),t+=1,e.set(t,n),n(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let o=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,n.addMediaQueryListener)(a,o),this.matchHandlers[t]={mql:a,listener:o},o(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,n.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of o)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,o])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),n=e.i(149809),o=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,n.useForceUpdate)(),s=(0,o.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);function r(e,r){let n=[void 0,void 0],o=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return o.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let o=0;or],39874);let n=(0,e.i(271645).createContext)({});e.s(["default",0,n],559442)},264042,131757,292169,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(908206),o=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function u(e,r){let[o,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:m,style:h,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(o.ConfigContext),C=(0,a.default)(!0,null),E=u(p,C),x=u(f,C),S=w("row",d),[k,j,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),F=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${x}`]:x,[`${S}-${E}`]:E,[`${S}-rtl`]:"rtl"===$},m,j,O),_={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;_.marginLeft=e,_.marginRight=e}let[I,P]=T;_.rowGap=P;let N=t.useMemo(()=>({gutter:[I,P],wrap:y}),[I,P,y]);return k(t.createElement(l.default.Provider,{value:N},t.createElement("div",Object.assign({},b,{className:F,style:Object.assign(Object.assign({},_),h),ref:n}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,m=e.i(174428),h=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,n)=>{let{getPrefixCls:a,direction:i}=t.useContext(o.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:m,push:y,pull:b,className:w,children:$,flex:C,style:E}=e,x=h(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[k,j,O]=(0,s.useColStyle)(S),T={},F={};v.forEach(t=>{let r={},n=e[t];"number"==typeof n?r.span=n:"object"==typeof n&&(r=n||{}),delete x[t],F=Object.assign(Object.assign({},F),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(F[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let _=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${m}`]:m,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,F,j,O),I={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;I.paddingLeft=e,I.paddingRight=e}return C&&(I.flex=g(C),!1!==u||I.minWidth||(I.minWidth=0)),k(t.createElement("div",Object.assign({},x,{style:Object.assign(Object.assign(Object.assign({},I),E),T),className:_,ref:n}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var E=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};e.s(["default",0,e=>{let{prefixCls:n,status:o,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:h,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:x}=e,S=`${n}-item`,k=t.useContext(b.FormContext),j=t.useMemo(()=>{let e=Object.assign({},i||k.wrapperCol||{});return null!==x||a||i||!k.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],n=(0,f.default)(k.labelCol,r),o="object"==typeof n?n:{},a=(0,f.default)(e,r);"span"in o&&!("offset"in("object"==typeof a?a:{}))&&o.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),o.span))}),e},[i,k.wrapperCol,k.labelCol,x,a]),O=(0,r.default)(`${S}-control`,j.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=k;return E(k,["labelCol","wrapperCol"])},[k]),F=t.useRef(null),[_,I]=t.useState(0);(0,m.default)(()=>{d&&F.current?I(F.current.clientHeight):I(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),N=t.useMemo(()=>({prefixCls:n,status:o}),[n,o]),R=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:N},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:h,helpStatus:o,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:F}),d):null,A=R||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+_}:{}},R,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:R,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},j,{className:O}),z),t.createElement(C,{prefixCls:n}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),n=e.i(56117),o=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),m=e.i(763731),h=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),E=e.i(531880),x=e.i(606262),S=e.i(174428),k=e.i(529681),j=e.i(264042),O=e.i(292169),T=e.i(684024),F=e.i(995144),_=e.i(131757),I=e.i(408850),P=e.i(87414),N=e.i(491816),R=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let M=({prefixCls:e,label:r,htmlFor:n,labelCol:o,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let m,[h]=(0,I.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=o||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),E=r,x=!0===i||!1!==b&&!1!==i;x&&!f&&"string"==typeof r&&r.trim()&&(E=r.replace(/[:|:]\s*$/,""));let S=(0,F.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=R(S,["icon"]),n=l.createElement(N.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));E=l.createElement(l.Fragment,null,E,n)}let k="optional"===u,j="function"==typeof u;j?E=u(E,{required:!!c}):k&&!c&&(E=l.createElement(l.Fragment,null,E,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==h?void 0:h.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?m="hidden":(k||j)&&(m="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${m}`]:m,[`${e}-item-no-colon`]:!x});return l.createElement(_.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:n,className:O,title:"string"==typeof r?r:""},E))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),H=e.i(739295);let D={success:A.default,warning:L.default,error:z.default,validating:H.default};function V({children:e,errors:r,warnings:n,hasFeedback:o,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),m=(0,E.getStatus)(r,n,c,null,!!o,a),{isFormItemInput:h,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(o){let a=!0!==o&&o.icons||p,i=m&&(null==(e=null==a?void 0:a({status:m,errors:r,warnings:n}))?void 0:e[m]),c=m?D[m]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${m}`)},i||l.createElement(c,null)):null}let a={status:m||"",errors:r,warnings:n,hasFeedback:!!o,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=m?m:g)||"",a.isFormItemInput=h,a.hasFeedback=!!(null!=o?o:v),a.feedbackIcon=void 0!==o?a.feedbackIcon:y,a.name=null!=d?d:b),a},[m,o,u,h,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function G(e){let{prefixCls:r,className:n,rootClassName:o,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:m,children:h,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:F,layout:_}=l.useContext(t.FormContext),I=w||_,P="vertical"===I,N=l.useRef(null),R=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),H=!!N.current&&(0,x.default)(N.current),[D,G]=l.useState(null);(0,S.default)(()=>{L&&N.current&&G(Number.parseInt(getComputedStyle(N.current).marginBottom,10))},[L,H]);let U=((e=!1)=>{let t=e?R:f.errors,r=e?A:f.warnings;return(0,E.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,n,o,{[`${T}-with-help`]:z||R.length||A.length,[`${T}-has-feedback`]:U&&p,[`${T}-has-success`]:"success"===U,[`${T}-has-warning`]:"warning"===U,[`${T}-has-error`]:"error"===U,[`${T}-is-validating`]:"validating"===U,[`${T}-hidden`]:m,[`${T}-${I}`]:I});return l.createElement("div",{className:q,style:a,ref:N},l.createElement(j.Row,Object.assign({className:`${T}-row`},(0,k.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:F,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:R,warnings:A,prefixCls:r,status:U,help:i,marginBottom:D,onErrorVisibleChanged:e=>{e||G(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:U,name:$},h)))),!!D&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-D}}))}let U=l.memo(({children:e})=>e,(e,t)=>{var r,n;let o,a;return r=e.control,n=t.control,o=Object.keys(r),a=Object.keys(n),o.length===a.length&&o.every(e=>{let t=r[e],o=n[e];return t===o||"function"==typeof t||"function"==typeof o})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:n,className:o,dependencies:a,prefixCls:b,shouldUpdate:x,rules:S,children:k,required:j,label:O,messageVariables:T,trigger:F="onChange",validateTrigger:_,hidden:I,help:P,layout:N}=e,{getPrefixCls:R}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(k),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),H=void 0!==_?_:L,D=null!=r,W=R("form",b),J=(0,v.default)(W),[K,X,Y]=(0,C.default)(W,J);(0,h.devUseWarning)("Form.Item");let Z=l.useContext(d.ListContext),Q=l.useRef(null),[ee,et]=(0,w.default)({}),[er,en]=(0,f.default)(()=>q()),eo=(e,t)=>{et(r=>{let n=Object.assign({},r),o=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete n[o]:n[o]=e,n})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return n&&!I?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(G,Object.assign({key:"row"},e,{className:(0,s.default)(o,Y,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:eo,layout:N,name:r}),t)}if(!D&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:F,validateTrigger:H,onMetaChange:e=>{let t=null==Z?void 0:Z.getKey(e.name);if(en(e.destroy?q():e,!0),n&&!1!==P&&z){let r=e.name;if(e.destroy)r=Q.current||r;else if(void 0!==t){let[e,n]=t;Q.current=r=[e].concat((0,i.default)(n))}z(e,r)}}}),(t,n,o)=>{let s=(0,E.toArray)(r).length&&n?n.name:[],c=(0,E.getFieldId)(s,M),u=void 0!==j?j:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(o);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&D)f=B;else if(A&&(!(x||a)||D));else if(!a||A||D)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,E.toArray)(F)),(0,i.default)((0,E.toArray)(H)))).forEach(e=>{t[e]=(...t)=>{var r,n,o;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(o=(n=B.props)[e])||o.call.apply(o,[n].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(U,{control:d,update:B,childProps:r},(0,m.cloneElement)(B,t))}else f=A&&(x||a)&&!D?B(o):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let Y=n.default;Y.Item=J,Y.List=e=>{var{prefixCls:r,children:n}=e,o=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},o),(e,r,o)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},n(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:o.errors,warnings:o.warnings})))},Y.ErrorList=r.default,Y.useForm=o.useForm,Y.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Y.useWatch=a.useWatch,Y.Provider=t.FormProvider,Y.create=()=>{},e.s(["Form",0,Y],808613)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],121229)},998573,e=>{"use strict";e.i(247167);var t=e.i(8211),r=e.i(271645),n=e.i(738275),o=e.i(609587),a=e.i(242064),i=e.i(783164),l=e.i(201072),s=e.i(726289),c=e.i(562901),u=e.i(779573),d=e.i(739295),f=e.i(343794);e.i(792131);var p=e.i(10183),m=e.i(321883);e.i(296059);var h=e.i(694758),g=e.i(122767),v=e.i(183293),y=e.i(246422),b=e.i(838378);let w=(0,y.genStyleHooks)("Message",e=>(e=>{let{componentCls:t,iconCls:r,boxShadow:n,colorText:o,colorSuccess:a,colorError:i,colorWarning:l,colorInfo:s,fontSizeLG:c,motionEaseInOutCirc:u,motionDurationSlow:d,marginXS:f,paddingXS:p,borderRadiusLG:m,zIndexPopup:g,contentPadding:y,contentBg:b}=e,w=`${t}-notice`,$=new h.Keyframes("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:p,transform:"translateY(0)",opacity:1}}),C=new h.Keyframes("MessageMoveOut",{"0%":{maxHeight:e.height,padding:p,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),E={padding:p,textAlign:"center",[`${t}-custom-content`]:{display:"flex",alignItems:"center"},[`${t}-custom-content > ${r}`]:{marginInlineEnd:f,fontSize:c},[`${w}-content`]:{display:"inline-block",padding:y,background:b,borderRadius:m,boxShadow:n,pointerEvents:"all"},[`${t}-success > ${r}`]:{color:a},[`${t}-error > ${r}`]:{color:i},[`${t}-warning > ${r}`]:{color:l},[`${t}-info > ${r}, + ${n}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:n}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${n}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,n=0){return{key:"string"==typeof e?e:`${t}-${n}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:m,onVisibleChanged:h})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,E,x]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),j=(0,c.default)(d),k=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(j.map((e,t)=>$(e,"error","error",t))),(0,t.default)(k.map((e,t)=>$(e,"warning","warning",t)))),[e,u,j,k]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),F={};return m&&(F.id=`${m}_help`),C(r.createElement(o.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:h},e=>{let{className:t,style:o}=e;return r.createElement("div",Object.assign({},F,{className:(0,n.default)(v,t,x,y,p,E),style:o}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:o,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,n.default)(i,{[`${v}-${a}`]:a}),style:l},o)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var E=e.i(621796);e.s(["useWatch",()=>E.default],923624)},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,n=e.i(279697);let o=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-n:i>t&&lr?i-t+o:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,n,a,c;let u;if("u"e!==m;if(!o(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;o(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,h)&&y.push(b)}let w=null!=(n=null==(r=window.visualViewport)?void 0:r.width)?n:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:E}=window,{height:x,width:S,top:j,right:k,bottom:O,left:T}=e.getBoundingClientRect(),{top:F,right:I,bottom:_,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},N="start"===f||"nearest"===f?j-F:"end"===f?O+_:j+x/2-F+_,R="center"===p?T+S/2-P+I:"end"===p?k+I:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&k<=w&&(t===v&&!i(t)||j>=o&&O<=s&&T>=c&&k<=a))break;let u=getComputedStyle(t),m=parseInt(u.borderLeftWidth,10),h=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),F=0,I=0,_="offsetWidth"in t?t.offsetWidth-t.clientWidth-m-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-h-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:n/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)F="start"===f?N:"end"===f?N-$:"nearest"===f?l(E,E+$,$,h,b,E+N,E+N+x,x):N-$/2,I="start"===p?R:"center"===p?R-w/2:"end"===p?R-w:l(C,C+w,w,m,g,C+R,C+R+S,S),F=Math.max(0,F+E),I=Math.max(0,I+C);else{F="start"===f?N-o-h:"end"===f?N-s+b+P:"nearest"===f?l(o,s,r,h,b+P,N,N+x,x):N-(o+r/2)+P/2,I="start"===p?R-c-m:"center"===p?R-(c+n/2)+_/2:"end"===p?R-a+g+_:l(c,a,n,m,g+_,R,R+S,S);let{scrollLeft:e,scrollTop:i}=t;F=0===A?0:Math.max(0,Math.min(i+F/A,t.scrollHeight-r/A+P)),I=0===B?0:Math.max(0,Math.min(e+I/B,t.scrollWidth-n/B+_)),N+=i-F,R+=e-I}M.push({el:t,top:F,left:I})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}function p(e,t,r,n,o,a){let i=n;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||o&&r.validated)&&(i="success"),i}e.s(["getFieldId",()=>f,"getStatus",()=>p,"toArray",()=>d],531880);var m=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function h(e){return d(e).join("_")}function g(e,t){let r=t.getFieldInstance(e),o=(0,n.getDOM)(r);if(o)return o;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}function v(e){let[n]=(0,r.default)(),o=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},n),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?o.current[r]=t:delete o.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,n=m(t,["focus"]),o=g(e,a);o&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let n={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let o="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-n.top+n.bottom,t=i-n.left+n.right;r.scroll({top:e,left:t,behavior:o})}}(o,Object.assign({scrollMode:"if-needed",block:"nearest"},n)),r&&a.focusField(e))},focusField:e=>{var t,r;let n=a.getFieldInstance(e);"function"==typeof(null==n?void 0:n.focus)?n.focus():null==(r=null==(t=g(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return o.current[t]}}),[e,n]);return[a]}e.s(["default",()=>v,"toNamePathStr",()=>h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(495347);e.i(53058),e.i(923624);var o=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let m=t.forwardRef((e,m)=>{let h=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,o.useComponentConfig)("form"),{prefixCls:E,className:x,rootClassName:S,size:j,disabled:k=h,form:O,colon:T,labelAlign:F,labelWrap:I,labelCol:_,wrapperCol:P,hideRequiredMark:N,layout:R="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:H,variant:D}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(j),G=t.useContext(f.default),U=t.useMemo(()=>void 0!==B?B:!N&&(void 0===y||y),[N,B,y]),q=null!=T?T:b,J=g("form",E),K=(0,i.default)(J),[X,Y,Z]=(0,d.default)(J,K),Q=(0,r.default)(J,`${J}-${R}`,{[`${J}-hide-required-mark`]:!1===U,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Z,K,Y,$,x,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:F,labelCol:_,labelWrap:I,wrapperCol:P,layout:R,colon:q,requiredMark:U,itemRef:et.itemRef,form:ee,feedbackIcons:H}),[z,F,_,P,R,q,U,ee,H]),en=t.useRef(null);t.useImperativeHandle(m,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=en.current)?void 0:e.nativeElement})});let eo=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:D},t.createElement(a.DisabledContextProvider,{disabled:k},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:G},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(n.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void eo(M,t);void 0!==w&&eo(w,t)}},form:ee,ref:en,style:Object.assign(Object.assign({},C),L),className:Q})))))))))});e.s(["default",0,m],56117),e.s(["useForm",()=>u.default],411412);var h=e.i(162129);e.s(["Field",()=>h.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);function r(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}e.s(["default",()=>r],522228),e.i(247167);var n=e.i(271645),o=e.i(62139);let a=()=>{let{status:e,errors:t=[],warnings:r=[]}=n.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:r}};a.Context=o.FormItemInputContext,e.s(["default",0,a],893872);var i=e.i(963188);function l(e){let[t,r]=n.useState(e),o=n.useRef(null),a=n.useRef([]),l=n.useRef(!1);return n.useEffect(()=>(l.current=!1,()=>{l.current=!0,i.default.cancel(o.current),o.current=null}),[]),[t,function(e){l.current||(null===o.current&&(a.current=[],o.current=(0,i.default)(()=>{o.current=null,r(e=>{let t=e;return a.current.forEach(e=>{t=e(t)}),t})})),a.current.push(e))}]}e.s(["default",()=>l],857034);var s=e.i(611935);function c(){let{itemRef:e}=n.useContext(o.FormContext),t=n.useRef({});return function(r,n){let o=n&&"object"==typeof n&&(0,s.getNodeRef)(n),a=r.join("_");return(t.current.name!==a||t.current.originRef!==o)&&(t.current.name=a,t.current.originRef=o,t.current.ref=(0,s.composeRef)(e(r),o)),t.current.ref}}e.s(["default",()=>c],606836)},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),n=e.i(958503);let o=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(o).reverse()).forEach((t,r)=>{let n=t.toUpperCase(),o=`screen${n}Min`,i=`screen${n}`;if(!(a[o]<=a[i]))throw Error(`${o}<=${i} fails : !(${a[o]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(n){return e.size||this.register(),t+=1,e.set(t,n),n(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let o=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,n.addMediaQueryListener)(a,o),this.matchHandlers[t]={mql:a,listener:o},o(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,n.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of o)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,o])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),n=e.i(149809),o=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,n.useForceUpdate)(),s=(0,o.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);function r(e,r){let n=[void 0,void 0],o=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return o.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let o=0;or],39874);let n=(0,e.i(271645).createContext)({});e.s(["default",0,n],559442)},264042,131757,292169,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(908206),o=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function u(e,r){let[o,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:m,style:h,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(o.ConfigContext),C=(0,a.default)(!0,null),E=u(p,C),x=u(f,C),S=w("row",d),[j,k,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),F=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${x}`]:x,[`${S}-${E}`]:E,[`${S}-rtl`]:"rtl"===$},m,k,O),I={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;I.marginLeft=e,I.marginRight=e}let[_,P]=T;I.rowGap=P;let N=t.useMemo(()=>({gutter:[_,P],wrap:y}),[_,P,y]);return j(t.createElement(l.default.Provider,{value:N},t.createElement("div",Object.assign({},b,{className:F,style:Object.assign(Object.assign({},I),h),ref:n}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,m=e.i(174428),h=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,n)=>{let{getPrefixCls:a,direction:i}=t.useContext(o.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:m,push:y,pull:b,className:w,children:$,flex:C,style:E}=e,x=h(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[j,k,O]=(0,s.useColStyle)(S),T={},F={};v.forEach(t=>{let r={},n=e[t];"number"==typeof n?r.span=n:"object"==typeof n&&(r=n||{}),delete x[t],F=Object.assign(Object.assign({},F),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(F[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let I=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${m}`]:m,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,F,k,O),_={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;_.paddingLeft=e,_.paddingRight=e}return C&&(_.flex=g(C),!1!==u||_.minWidth||(_.minWidth=0)),j(t.createElement("div",Object.assign({},x,{style:Object.assign(Object.assign(Object.assign({},_),E),T),className:I,ref:n}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var E=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};e.s(["default",0,e=>{let{prefixCls:n,status:o,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:h,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:x}=e,S=`${n}-item`,j=t.useContext(b.FormContext),k=t.useMemo(()=>{let e=Object.assign({},i||j.wrapperCol||{});return null!==x||a||i||!j.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],n=(0,f.default)(j.labelCol,r),o="object"==typeof n?n:{},a=(0,f.default)(e,r);"span"in o&&!("offset"in("object"==typeof a?a:{}))&&o.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),o.span))}),e},[i,j.wrapperCol,j.labelCol,x,a]),O=(0,r.default)(`${S}-control`,k.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=j;return E(j,["labelCol","wrapperCol"])},[j]),F=t.useRef(null),[I,_]=t.useState(0);(0,m.default)(()=>{d&&F.current?_(F.current.clientHeight):_(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),N=t.useMemo(()=>({prefixCls:n,status:o}),[n,o]),R=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:N},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:h,helpStatus:o,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:F}),d):null,A=R||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+I}:{}},R,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:R,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},k,{className:O}),z),t.createElement(C,{prefixCls:n}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),n=e.i(56117),o=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),m=e.i(763731),h=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),E=e.i(531880),x=e.i(606262),S=e.i(174428),j=e.i(529681),k=e.i(264042),O=e.i(292169),T=e.i(684024),F=e.i(995144),I=e.i(131757),_=e.i(408850),P=e.i(87414),N=e.i(491816),R=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let M=({prefixCls:e,label:r,htmlFor:n,labelCol:o,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let m,[h]=(0,_.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=o||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),E=r,x=!0===i||!1!==b&&!1!==i;x&&!f&&"string"==typeof r&&r.trim()&&(E=r.replace(/[:|:]\s*$/,""));let S=(0,F.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=R(S,["icon"]),n=l.createElement(N.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));E=l.createElement(l.Fragment,null,E,n)}let j="optional"===u,k="function"==typeof u;k?E=u(E,{required:!!c}):j&&!c&&(E=l.createElement(l.Fragment,null,E,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==h?void 0:h.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?m="hidden":(j||k)&&(m="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${m}`]:m,[`${e}-item-no-colon`]:!x});return l.createElement(I.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:n,className:O,title:"string"==typeof r?r:""},E))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),H=e.i(739295);let D={success:A.default,warning:L.default,error:z.default,validating:H.default};function V({children:e,errors:r,warnings:n,hasFeedback:o,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),m=(0,E.getStatus)(r,n,c,null,!!o,a),{isFormItemInput:h,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(o){let a=!0!==o&&o.icons||p,i=m&&(null==(e=null==a?void 0:a({status:m,errors:r,warnings:n}))?void 0:e[m]),c=m?D[m]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${m}`)},i||l.createElement(c,null)):null}let a={status:m||"",errors:r,warnings:n,hasFeedback:!!o,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=m?m:g)||"",a.isFormItemInput=h,a.hasFeedback=!!(null!=o?o:v),a.feedbackIcon=void 0!==o?a.feedbackIcon:y,a.name=null!=d?d:b),a},[m,o,u,h,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function G(e){let{prefixCls:r,className:n,rootClassName:o,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:m,children:h,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:F,layout:I}=l.useContext(t.FormContext),_=w||I,P="vertical"===_,N=l.useRef(null),R=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),H=!!N.current&&(0,x.default)(N.current),[D,G]=l.useState(null);(0,S.default)(()=>{L&&N.current&&G(Number.parseInt(getComputedStyle(N.current).marginBottom,10))},[L,H]);let U=((e=!1)=>{let t=e?R:f.errors,r=e?A:f.warnings;return(0,E.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,n,o,{[`${T}-with-help`]:z||R.length||A.length,[`${T}-has-feedback`]:U&&p,[`${T}-has-success`]:"success"===U,[`${T}-has-warning`]:"warning"===U,[`${T}-has-error`]:"error"===U,[`${T}-is-validating`]:"validating"===U,[`${T}-hidden`]:m,[`${T}-${_}`]:_});return l.createElement("div",{className:q,style:a,ref:N},l.createElement(k.Row,Object.assign({className:`${T}-row`},(0,j.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:F,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:R,warnings:A,prefixCls:r,status:U,help:i,marginBottom:D,onErrorVisibleChanged:e=>{e||G(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:U,name:$},h)))),!!D&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-D}}))}let U=l.memo(({children:e})=>e,(e,t)=>{var r,n;let o,a;return r=e.control,n=t.control,o=Object.keys(r),a=Object.keys(n),o.length===a.length&&o.every(e=>{let t=r[e],o=n[e];return t===o||"function"==typeof t||"function"==typeof o})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:n,className:o,dependencies:a,prefixCls:b,shouldUpdate:x,rules:S,children:j,required:k,label:O,messageVariables:T,trigger:F="onChange",validateTrigger:I,hidden:_,help:P,layout:N}=e,{getPrefixCls:R}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(j),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),H=void 0!==I?I:L,D=null!=r,W=R("form",b),J=(0,v.default)(W),[K,X,Y]=(0,C.default)(W,J);(0,h.devUseWarning)("Form.Item");let Z=l.useContext(d.ListContext),Q=l.useRef(null),[ee,et]=(0,w.default)({}),[er,en]=(0,f.default)(()=>q()),eo=(e,t)=>{et(r=>{let n=Object.assign({},r),o=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete n[o]:n[o]=e,n})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return n&&!_?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(G,Object.assign({key:"row"},e,{className:(0,s.default)(o,Y,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:eo,layout:N,name:r}),t)}if(!D&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:F,validateTrigger:H,onMetaChange:e=>{let t=null==Z?void 0:Z.getKey(e.name);if(en(e.destroy?q():e,!0),n&&!1!==P&&z){let r=e.name;if(e.destroy)r=Q.current||r;else if(void 0!==t){let[e,n]=t;Q.current=r=[e].concat((0,i.default)(n))}z(e,r)}}}),(t,n,o)=>{let s=(0,E.toArray)(r).length&&n?n.name:[],c=(0,E.getFieldId)(s,M),u=void 0!==k?k:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(o);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&D)f=B;else if(A&&(!(x||a)||D));else if(!a||A||D)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,E.toArray)(F)),(0,i.default)((0,E.toArray)(H)))).forEach(e=>{t[e]=(...t)=>{var r,n,o;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(o=(n=B.props)[e])||o.call.apply(o,[n].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(U,{control:d,update:B,childProps:r},(0,m.cloneElement)(B,t))}else f=A&&(x||a)&&!D?B(o):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let Y=n.default;Y.Item=J,Y.List=e=>{var{prefixCls:r,children:n}=e,o=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},o),(e,r,o)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},n(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:o.errors,warnings:o.warnings})))},Y.ErrorList=r.default,Y.useForm=o.useForm,Y.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Y.useWatch=a.useWatch,Y.Provider=t.FormProvider,Y.create=()=>{},e.s(["Form",0,Y],808613)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],121229)},998573,e=>{"use strict";e.i(247167);var t=e.i(8211),r=e.i(271645),n=e.i(738275),o=e.i(609587),a=e.i(242064),i=e.i(783164),l=e.i(201072),s=e.i(726289),c=e.i(562901),u=e.i(779573),d=e.i(739295),f=e.i(343794);e.i(792131);var p=e.i(10183),m=e.i(321883);e.i(296059);var h=e.i(694758),g=e.i(122767),v=e.i(183293),y=e.i(246422),b=e.i(838378);let w=(0,y.genStyleHooks)("Message",e=>(e=>{let{componentCls:t,iconCls:r,boxShadow:n,colorText:o,colorSuccess:a,colorError:i,colorWarning:l,colorInfo:s,fontSizeLG:c,motionEaseInOutCirc:u,motionDurationSlow:d,marginXS:f,paddingXS:p,borderRadiusLG:m,zIndexPopup:g,contentPadding:y,contentBg:b}=e,w=`${t}-notice`,$=new h.Keyframes("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:p,transform:"translateY(0)",opacity:1}}),C=new h.Keyframes("MessageMoveOut",{"0%":{maxHeight:e.height,padding:p,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),E={padding:p,textAlign:"center",[`${t}-custom-content`]:{display:"flex",alignItems:"center"},[`${t}-custom-content > ${r}`]:{marginInlineEnd:f,fontSize:c},[`${w}-content`]:{display:"inline-block",padding:y,background:b,borderRadius:m,boxShadow:n,pointerEvents:"all"},[`${t}-success > ${r}`]:{color:a},[`${t}-error > ${r}`]:{color:i},[`${t}-warning > ${r}`]:{color:l},[`${t}-info > ${r}, ${t}-loading > ${r}`]:{color:s}};return[{[t]:Object.assign(Object.assign({},(0,v.resetComponent)(e)),{color:o,position:"fixed",top:f,width:"100%",pointerEvents:"none",zIndex:g,[`${t}-move-up`]:{animationFillMode:"forwards"},[` ${t}-move-up-appear, ${t}-move-up-enter `]:{animationName:$,animationDuration:d,animationPlayState:"paused",animationTimingFunction:u},[` ${t}-move-up-appear${t}-move-up-appear-active, ${t}-move-up-enter${t}-move-up-enter-active - `]:{animationPlayState:"running"},[`${t}-move-up-leave`]:{animationName:C,animationDuration:d,animationPlayState:"paused",animationTimingFunction:u},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[t]:{[`${w}-wrapper`]:Object.assign({},E)}},{[`${t}-notice-pure-panel`]:Object.assign(Object.assign({},E),{padding:0,textAlign:"start"})}]})((0,b.mergeToken)(e,{height:150})),e=>({zIndexPopup:e.zIndexPopupBase+g.CONTAINER_MAX_OFFSET+10,contentBg:e.colorBgElevated,contentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}));var $=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let C={info:r.createElement(u.default,null),success:r.createElement(l.default,null),error:r.createElement(s.default,null),warning:r.createElement(c.default,null),loading:r.createElement(d.default,null)},E=({prefixCls:e,type:t,icon:n,children:o})=>r.createElement("div",{className:(0,f.default)(`${e}-custom-content`,`${e}-${t}`)},n||C[t],r.createElement("span",null,o));var x=e.i(864517),S=e.i(194732),k=e.i(513139),j=e.i(747656);function O(e){let t,r=new Promise(r=>{t=e(()=>{r(!0)})}),n=()=>{null==t||t()};return n.then=(e,t)=>r.then(e,t),n.promise=r,n}var T=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let F=({children:e,prefixCls:t})=>{let n=(0,m.default)(t),[o,a,i]=w(t,n);return o(r.createElement(S.NotificationProvider,{classNames:{list:(0,f.default)(a,i,n)}},e))},_=(e,{prefixCls:t,key:n})=>r.createElement(F,{prefixCls:t,key:n},e),I=r.forwardRef((e,t)=>{let{top:n,prefixCls:o,getContainer:i,maxCount:l,duration:s=3,rtl:c,transitionName:u,onAllRemoved:d}=e,{getPrefixCls:p,getPopupContainer:m,message:h,direction:g}=r.useContext(a.ConfigContext),v=o||p("message"),y=r.createElement("span",{className:`${v}-close-x`},r.createElement(x.default,{className:`${v}-close-icon`})),[b,w]=(0,k.useNotification)({prefixCls:v,style:()=>({left:"50%",transform:"translateX(-50%)",top:null!=n?n:8}),className:()=>(0,f.default)({[`${v}-rtl`]:null!=c?c:"rtl"===g}),motion:()=>({motionName:null!=u?u:`${v}-move-up`}),closable:!1,closeIcon:y,duration:s,getContainer:()=>(null==i?void 0:i())||(null==m?void 0:m())||document.body,maxCount:l,onAllRemoved:d,renderNotifications:_});return r.useImperativeHandle(t,()=>Object.assign(Object.assign({},b),{prefixCls:v,message:h})),w}),P=0;function N(e){let t=r.useRef(null);return(0,j.devUseWarning)("Message"),[r.useMemo(()=>{let e=e=>{var r;null==(r=t.current)||r.close(e)},n=n=>{if(!t.current){let e=()=>{};return e.then=()=>{},e}let{open:o,prefixCls:a,message:i}=t.current,l=`${a}-notice`,{content:s,icon:c,type:u,key:d,className:p,style:m,onClose:h}=n,g=T(n,["content","icon","type","key","className","style","onClose"]),v=d;return null==v&&(P+=1,v=`antd-message-${P}`),O(t=>(o(Object.assign(Object.assign({},g),{key:v,content:r.createElement(E,{prefixCls:a,type:u,icon:c},s),placement:"top",className:(0,f.default)(u&&`${l}-${u}`,p,null==i?void 0:i.className),style:Object.assign(Object.assign({},null==i?void 0:i.style),m),onClose:()=>{null==h||h(),t()}})),()=>{e(v)}))},o={open:n,destroy:r=>{var n;void 0!==r?e(r):null==(n=t.current)||n.destroy()}};return["info","success","warning","error","loading"].forEach(e=>{o[e]=(t,r,o)=>{let a,i,l;return a=t&&"object"==typeof t&&"content"in t?t:{content:t},"function"==typeof r?l=r:(i=r,l=o),n(Object.assign(Object.assign({onClose:l,duration:i},a),{type:e}))}}),o},[]),r.createElement(I,Object.assign({key:"message-holder"},e,{ref:t}))]}let R=null,M=[],B={};function A(){let{getContainer:e,duration:t,rtl:r,maxCount:n,top:o}=B,a=(null==e?void 0:e())||document.body;return{getContainer:()=>a,duration:t,rtl:r,maxCount:n,top:o}}let z=r.default.forwardRef((e,t)=>{let{messageConfig:o,sync:i}=e,{getPrefixCls:l}=(0,r.useContext)(a.ConfigContext),s=B.prefixCls||l("message"),c=(0,r.useContext)(n.AppConfigContext),[u,d]=N(Object.assign(Object.assign(Object.assign({},o),{prefixCls:s}),c.message));return r.default.useImperativeHandle(t,()=>{let e=Object.assign({},u);return Object.keys(e).forEach(t=>{e[t]=(...e)=>(i(),u[t].apply(u,e))}),{instance:e,sync:i}}),d}),L=r.default.forwardRef((e,t)=>{let[n,a]=r.default.useState(A),i=()=>{a(A)};r.default.useEffect(i,[]);let l=(0,o.globalConfig)(),s=l.getRootPrefixCls(),c=l.getIconPrefixCls(),u=l.getTheme(),d=r.default.createElement(z,{ref:t,sync:i,messageConfig:n});return r.default.createElement(o.default,{prefixCls:s,iconPrefixCls:c,theme:u},l.holderRender?l.holderRender(d):d)}),H=()=>{if(!R){let e=document.createDocumentFragment(),t={fragment:e};R=t,(()=>{(0,i.unstableSetRender)()(r.default.createElement(L,{ref:e=>{let{instance:r,sync:n}=e||{};Promise.resolve().then(()=>{!t.instance&&r&&(t.instance=r,t.sync=n,H())})}}),e)})();return}R.instance&&(M.forEach(e=>{let{type:r,skipped:n}=e;if(!n)switch(r){case"open":{let t=R.instance.open(Object.assign(Object.assign({},B),e.config));null==t||t.then(e.resolve),e.setCloseFn(t)}break;case"destroy":null==R||R.instance.destroy(e.key);break;default:{var o;let n=(o=R.instance)[r].apply(o,(0,t.default)(e.args));null==n||n.then(e.resolve),e.setCloseFn(n)}}}),M=[])},D={open:function(e){let t=O(t=>{let r,n={type:"open",config:e,resolve:t,setCloseFn:e=>{r=e}};return M.push(n),()=>{r?(()=>{r()})():n.skipped=!0}});return H(),t},destroy:e=>{M.push({type:"destroy",key:e}),H()},config:function(e){B=Object.assign(Object.assign({},B),e),(()=>{var e;null==(e=null==R?void 0:R.sync)||e.call(R)})()},useMessage:function(e){return N(e)},_InternalPanelDoNotUseOrYouWillBeFired:e=>{let{prefixCls:t,className:n,type:o,icon:i,content:l}=e,s=$(e,["prefixCls","className","type","icon","content"]),{getPrefixCls:c}=r.useContext(a.ConfigContext),u=t||c("message"),d=(0,m.default)(u),[h,g,v]=w(u,d);return h(r.createElement(p.Notice,Object.assign({},s,{prefixCls:u,className:(0,f.default)(n,g,`${u}-notice-pure-panel`,v,d),eventKey:"pure",duration:null,content:r.createElement(E,{prefixCls:u,type:o,icon:i},l)})))}};["success","info","warning","error","loading"].forEach(e=>{D[e]=(...t)=>{let r;return(0,o.globalConfig)(),r=O(r=>{let n,o={type:e,args:t,resolve:r,setCloseFn:e=>{n=e}};return M.push(o),()=>{n?(()=>{n()})():o.skipped=!0}}),H(),r}});e.s(["message",0,D],998573)},268004,e=>{"use strict";function t(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let n="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${n}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${n}`})}),console.log("After clearing cookies:",document.cookie)}function r(e){if("u"t.startsWith(e+"="));return t?t.split("=")[1]:null}e.s(["clearTokenCookies",()=>t,"getCookie",()=>r])},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(372409),o=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:n,lineWidth:o,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:m,controlOutlineWidth:h,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,E=w||r,x=C||E,S=$||l;return{paddingBlock:Math.max(Math.round((t-E*n)/2*10)/10-o,0),paddingBlockSM:Math.max(Math.round((a-x*n)/2*10)/10-o,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-o,0),paddingInline:c-o,paddingInlineSM:u-o,paddingInlineLG:d-o,addonBg:f,activeBorderColor:m,hoverBorderColor:p,activeShadow:`0 0 0 ${h}px ${g}`,errorActiveShadow:`0 0 0 ${h}px ${v}`,warningActiveShadow:`0 0 0 ${h}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:E,inputFontSizeLG:S,inputFontSizeSM:x}};e.s(["initComponentToken",0,l,"initInputToken",()=>i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),m=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},h=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},h(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},h(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,m,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let E=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),x=e=>{let{paddingBlockLG:r,lineHeightLG:n,borderRadiusLG:o,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:n,borderRadius:o}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),k=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},E(e.colorTextPlaceholder)),{"&-lg":Object.assign({},x(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),j=e=>{let{componentCls:n,antCls:o}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${n}, &-lg > ${n}-group-addon`]:Object.assign({},x(e)),[`&-sm ${n}, &-sm > ${n}-group-addon`]:Object.assign({},S(e)),[`&-lg ${o}-select-single ${o}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${o}-select-single ${o}-select-selector`]:{height:e.controlHeightSM},[`> ${n}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${n}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${o}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${o}-select-single:not(${o}-select-customize-input):not(${o}-pagination-size-changer)`]:{[`${o}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${o}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${o}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[n]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${n}-search-with-button &`]:{zIndex:0}}},[`> ${n}:first-child, ${n}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-select ${o}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${n}-affix-wrapper`]:{[`&:not(:first-child) ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${n}:last-child, ${n}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${o}-select ${o}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${n}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${n}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${n}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${n}-group-addon, ${n}-group-wrap, > ${n}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` + `]:{animationPlayState:"running"},[`${t}-move-up-leave`]:{animationName:C,animationDuration:d,animationPlayState:"paused",animationTimingFunction:u},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[t]:{[`${w}-wrapper`]:Object.assign({},E)}},{[`${t}-notice-pure-panel`]:Object.assign(Object.assign({},E),{padding:0,textAlign:"start"})}]})((0,b.mergeToken)(e,{height:150})),e=>({zIndexPopup:e.zIndexPopupBase+g.CONTAINER_MAX_OFFSET+10,contentBg:e.colorBgElevated,contentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}));var $=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let C={info:r.createElement(u.default,null),success:r.createElement(l.default,null),error:r.createElement(s.default,null),warning:r.createElement(c.default,null),loading:r.createElement(d.default,null)},E=({prefixCls:e,type:t,icon:n,children:o})=>r.createElement("div",{className:(0,f.default)(`${e}-custom-content`,`${e}-${t}`)},n||C[t],r.createElement("span",null,o));var x=e.i(864517),S=e.i(194732),j=e.i(513139),k=e.i(747656);function O(e){let t,r=new Promise(r=>{t=e(()=>{r(!0)})}),n=()=>{null==t||t()};return n.then=(e,t)=>r.then(e,t),n.promise=r,n}var T=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let F=({children:e,prefixCls:t})=>{let n=(0,m.default)(t),[o,a,i]=w(t,n);return o(r.createElement(S.NotificationProvider,{classNames:{list:(0,f.default)(a,i,n)}},e))},I=(e,{prefixCls:t,key:n})=>r.createElement(F,{prefixCls:t,key:n},e),_=r.forwardRef((e,t)=>{let{top:n,prefixCls:o,getContainer:i,maxCount:l,duration:s=3,rtl:c,transitionName:u,onAllRemoved:d}=e,{getPrefixCls:p,getPopupContainer:m,message:h,direction:g}=r.useContext(a.ConfigContext),v=o||p("message"),y=r.createElement("span",{className:`${v}-close-x`},r.createElement(x.default,{className:`${v}-close-icon`})),[b,w]=(0,j.useNotification)({prefixCls:v,style:()=>({left:"50%",transform:"translateX(-50%)",top:null!=n?n:8}),className:()=>(0,f.default)({[`${v}-rtl`]:null!=c?c:"rtl"===g}),motion:()=>({motionName:null!=u?u:`${v}-move-up`}),closable:!1,closeIcon:y,duration:s,getContainer:()=>(null==i?void 0:i())||(null==m?void 0:m())||document.body,maxCount:l,onAllRemoved:d,renderNotifications:I});return r.useImperativeHandle(t,()=>Object.assign(Object.assign({},b),{prefixCls:v,message:h})),w}),P=0;function N(e){let t=r.useRef(null);return(0,k.devUseWarning)("Message"),[r.useMemo(()=>{let e=e=>{var r;null==(r=t.current)||r.close(e)},n=n=>{if(!t.current){let e=()=>{};return e.then=()=>{},e}let{open:o,prefixCls:a,message:i}=t.current,l=`${a}-notice`,{content:s,icon:c,type:u,key:d,className:p,style:m,onClose:h}=n,g=T(n,["content","icon","type","key","className","style","onClose"]),v=d;return null==v&&(P+=1,v=`antd-message-${P}`),O(t=>(o(Object.assign(Object.assign({},g),{key:v,content:r.createElement(E,{prefixCls:a,type:u,icon:c},s),placement:"top",className:(0,f.default)(u&&`${l}-${u}`,p,null==i?void 0:i.className),style:Object.assign(Object.assign({},null==i?void 0:i.style),m),onClose:()=>{null==h||h(),t()}})),()=>{e(v)}))},o={open:n,destroy:r=>{var n;void 0!==r?e(r):null==(n=t.current)||n.destroy()}};return["info","success","warning","error","loading"].forEach(e=>{o[e]=(t,r,o)=>{let a,i,l;return a=t&&"object"==typeof t&&"content"in t?t:{content:t},"function"==typeof r?l=r:(i=r,l=o),n(Object.assign(Object.assign({onClose:l,duration:i},a),{type:e}))}}),o},[]),r.createElement(_,Object.assign({key:"message-holder"},e,{ref:t}))]}let R=null,M=[],B={};function A(){let{getContainer:e,duration:t,rtl:r,maxCount:n,top:o}=B,a=(null==e?void 0:e())||document.body;return{getContainer:()=>a,duration:t,rtl:r,maxCount:n,top:o}}let z=r.default.forwardRef((e,t)=>{let{messageConfig:o,sync:i}=e,{getPrefixCls:l}=(0,r.useContext)(a.ConfigContext),s=B.prefixCls||l("message"),c=(0,r.useContext)(n.AppConfigContext),[u,d]=N(Object.assign(Object.assign(Object.assign({},o),{prefixCls:s}),c.message));return r.default.useImperativeHandle(t,()=>{let e=Object.assign({},u);return Object.keys(e).forEach(t=>{e[t]=(...e)=>(i(),u[t].apply(u,e))}),{instance:e,sync:i}}),d}),L=r.default.forwardRef((e,t)=>{let[n,a]=r.default.useState(A),i=()=>{a(A)};r.default.useEffect(i,[]);let l=(0,o.globalConfig)(),s=l.getRootPrefixCls(),c=l.getIconPrefixCls(),u=l.getTheme(),d=r.default.createElement(z,{ref:t,sync:i,messageConfig:n});return r.default.createElement(o.default,{prefixCls:s,iconPrefixCls:c,theme:u},l.holderRender?l.holderRender(d):d)}),H=()=>{if(!R){let e=document.createDocumentFragment(),t={fragment:e};R=t,(()=>{(0,i.unstableSetRender)()(r.default.createElement(L,{ref:e=>{let{instance:r,sync:n}=e||{};Promise.resolve().then(()=>{!t.instance&&r&&(t.instance=r,t.sync=n,H())})}}),e)})();return}R.instance&&(M.forEach(e=>{let{type:r,skipped:n}=e;if(!n)switch(r){case"open":{let t=R.instance.open(Object.assign(Object.assign({},B),e.config));null==t||t.then(e.resolve),e.setCloseFn(t)}break;case"destroy":null==R||R.instance.destroy(e.key);break;default:{var o;let n=(o=R.instance)[r].apply(o,(0,t.default)(e.args));null==n||n.then(e.resolve),e.setCloseFn(n)}}}),M=[])},D={open:function(e){let t=O(t=>{let r,n={type:"open",config:e,resolve:t,setCloseFn:e=>{r=e}};return M.push(n),()=>{r?(()=>{r()})():n.skipped=!0}});return H(),t},destroy:e=>{M.push({type:"destroy",key:e}),H()},config:function(e){B=Object.assign(Object.assign({},B),e),(()=>{var e;null==(e=null==R?void 0:R.sync)||e.call(R)})()},useMessage:function(e){return N(e)},_InternalPanelDoNotUseOrYouWillBeFired:e=>{let{prefixCls:t,className:n,type:o,icon:i,content:l}=e,s=$(e,["prefixCls","className","type","icon","content"]),{getPrefixCls:c}=r.useContext(a.ConfigContext),u=t||c("message"),d=(0,m.default)(u),[h,g,v]=w(u,d);return h(r.createElement(p.Notice,Object.assign({},s,{prefixCls:u,className:(0,f.default)(n,g,`${u}-notice-pure-panel`,v,d),eventKey:"pure",duration:null,content:r.createElement(E,{prefixCls:u,type:o,icon:i},l)})))}};["success","info","warning","error","loading"].forEach(e=>{D[e]=(...t)=>{let r;return(0,o.globalConfig)(),r=O(r=>{let n,o={type:e,args:t,resolve:r,setCloseFn:e=>{n=e}};return M.push(o),()=>{n?(()=>{n()})():o.skipped=!0}}),H(),r}});e.s(["message",0,D],998573)},268004,e=>{"use strict";function t(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let n="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${n}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${n}`})}),console.log("After clearing cookies:",document.cookie)}function r(e){if("u"t.startsWith(e+"="));return t?t.split("=")[1]:null}e.s(["clearTokenCookies",()=>t,"getCookie",()=>r])},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),n=e.i(372409),o=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:n,lineWidth:o,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:m,controlOutlineWidth:h,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,E=w||r,x=C||E,S=$||l;return{paddingBlock:Math.max(Math.round((t-E*n)/2*10)/10-o,0),paddingBlockSM:Math.max(Math.round((a-x*n)/2*10)/10-o,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-o,0),paddingInline:c-o,paddingInlineSM:u-o,paddingInlineLG:d-o,addonBg:f,activeBorderColor:m,hoverBorderColor:p,activeShadow:`0 0 0 ${h}px ${g}`,errorActiveShadow:`0 0 0 ${h}px ${v}`,warningActiveShadow:`0 0 0 ${h}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:E,inputFontSizeLG:S,inputFontSizeSM:x}};e.s(["initComponentToken",0,l,"initInputToken",()=>i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),m=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},h=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},h(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},h(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,m,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let E=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),x=e=>{let{paddingBlockLG:r,lineHeightLG:n,borderRadiusLG:o,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:n,borderRadius:o}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),j=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},E(e.colorTextPlaceholder)),{"&-lg":Object.assign({},x(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),k=e=>{let{componentCls:n,antCls:o}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${n}, &-lg > ${n}-group-addon`]:Object.assign({},x(e)),[`&-sm ${n}, &-sm > ${n}-group-addon`]:Object.assign({},S(e)),[`&-lg ${o}-select-single ${o}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${o}-select-single ${o}-select-selector`]:{height:e.controlHeightSM},[`> ${n}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${n}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${o}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${o}-select-single:not(${o}-select-customize-input):not(${o}-pagination-size-changer)`]:{[`${o}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${o}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${o}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[n]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${n}-search-with-button &`]:{zIndex:0}}},[`> ${n}:first-child, ${n}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-select ${o}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${n}-affix-wrapper`]:{[`&:not(:first-child) ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${n}:last-child, ${n}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${o}-select ${o}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${n}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${n}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${n}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${n}-group-addon, ${n}-group-wrap, > ${n}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` & > ${n}-affix-wrapper, & > ${n}-number-affix-wrapper, & > ${o}-picker-range @@ -48,15 +48,15 @@ & > ${o}-cascader-picker:first-child ${n}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, & > ${o}-select:last-child > ${o}-select-selector, & > ${o}-cascader-picker:last-child ${n}, - & > ${o}-cascader-picker-focused:last-child ${n}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${o}-select-auto-complete ${n}`]:{verticalAlign:"top"},[`${n}-group-wrapper + ${n}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${n}-affix-wrapper`]:{borderRadius:0}},[`${n}-group-wrapper:not(:last-child)`]:{[`&${n}-search > ${n}-group`]:{[`& > ${n}-group-addon > ${n}-search-button`]:{borderRadius:0},[`& > ${n}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},O=(0,o.genStyleHooks)(["Input","Shared"],e=>{let n=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,controlHeightSM:n,lineWidth:o,calc:a}=e,i=a(n).sub(a(o).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),k(e)),d(e)),v(e)),m(e)),C(e)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{appearance:"none"}})}})(n),(e=>{let{componentCls:r,inputAffixPadding:n,colorTextDescription:o,motionDurationSlow:a,colorIcon:i,colorIconHover:l,iconCls:s}=e,c=`${r}-affix-wrapper`,u=`${r}-affix-wrapper-disabled`;return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({},k(e)),{display:"inline-flex",[`&:not(${r}-disabled):hover`]:{zIndex:1,[`${r}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${r}`]:{padding:0},[`> input${r}, > textarea${r}`]:{fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[r]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:o,direction:"ltr"},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),(e=>{let{componentCls:r}=e;return{[`${r}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,border:"none",outline:"none",backgroundColor:"transparent","&:hover":{color:e.colorIcon},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${(0,t.unit)(e.inputAffixPadding)}`}}}})(e)),{[`${s}${r}-password-icon`]:{color:i,cursor:"pointer",transition:`all ${a}`,"&:hover":{color:l}}}),[`${r}-underlined`]:{borderRadius:0},[u]:{[`${s}${r}-password-icon`]:{color:i,cursor:"not-allowed","&:hover":{color:i}}}}})(n)]},l,{resetFont:!1}),T=(0,o.genStyleHooks)(["Input","Component"],e=>{let t=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,borderRadiusLG:n,borderRadiusSM:o}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),j(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:n,fontSize:e.inputFontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:o}}},p(e)),b(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}})(t),(e=>{let{componentCls:t,antCls:r}=e,n=`${t}-search`;return{[n]:{[t]:{"&:not([disabled]):hover, &:not([disabled]):focus":{[`+ ${t}-group-addon ${n}-button:not(${r}-btn-color-primary):not(${r}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${n}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:"none"},[`${n}-button:not(${r}-btn-color-primary)`]:{color:e.colorTextDescription,"&:not([disabled]):hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${r}-btn-loading::before`]:{inset:0}}}},[`${n}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},"&-large":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightLG}},"&-small":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightSM}},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + & > ${o}-cascader-picker-focused:last-child ${n}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${o}-select-auto-complete ${n}`]:{verticalAlign:"top"},[`${n}-group-wrapper + ${n}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${n}-affix-wrapper`]:{borderRadius:0}},[`${n}-group-wrapper:not(:last-child)`]:{[`&${n}-search > ${n}-group`]:{[`& > ${n}-group-addon > ${n}-search-button`]:{borderRadius:0},[`& > ${n}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},O=(0,o.genStyleHooks)(["Input","Shared"],e=>{let n=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,controlHeightSM:n,lineWidth:o,calc:a}=e,i=a(n).sub(a(o).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),j(e)),d(e)),v(e)),m(e)),C(e)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{appearance:"none"}})}})(n),(e=>{let{componentCls:r,inputAffixPadding:n,colorTextDescription:o,motionDurationSlow:a,colorIcon:i,colorIconHover:l,iconCls:s}=e,c=`${r}-affix-wrapper`,u=`${r}-affix-wrapper-disabled`;return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({},j(e)),{display:"inline-flex",[`&:not(${r}-disabled):hover`]:{zIndex:1,[`${r}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${r}`]:{padding:0},[`> input${r}, > textarea${r}`]:{fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[r]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:o,direction:"ltr"},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),(e=>{let{componentCls:r}=e;return{[`${r}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,border:"none",outline:"none",backgroundColor:"transparent","&:hover":{color:e.colorIcon},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${(0,t.unit)(e.inputAffixPadding)}`}}}})(e)),{[`${s}${r}-password-icon`]:{color:i,cursor:"pointer",transition:`all ${a}`,"&:hover":{color:l}}}),[`${r}-underlined`]:{borderRadius:0},[u]:{[`${s}${r}-password-icon`]:{color:i,cursor:"not-allowed","&:hover":{color:i}}}}})(n)]},l,{resetFont:!1}),T=(0,o.genStyleHooks)(["Input","Component"],e=>{let t=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,borderRadiusLG:n,borderRadiusSM:o}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),k(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:n,fontSize:e.inputFontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:o}}},p(e)),b(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}})(t),(e=>{let{componentCls:t,antCls:r}=e,n=`${t}-search`;return{[n]:{[t]:{"&:not([disabled]):hover, &:not([disabled]):focus":{[`+ ${t}-group-addon ${n}-button:not(${r}-btn-color-primary):not(${r}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${n}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:"none"},[`${n}-button:not(${r}-btn-color-primary)`]:{color:e.colorTextDescription,"&:not([disabled]):hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${r}-btn-loading::before`]:{inset:0}}}},[`${n}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},"&-large":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightLG}},"&-small":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightSM}},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, > ${t}, - ${t}-affix-wrapper`]:{"&:hover, &:focus, &:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}})(t),(e=>{let{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}})(t),(0,n.genCompactItemStyle)(t)]},l,{resetFont:!1});e.s(["default",0,T,"genBasicInputStyle",0,k,"genInputGroupStyle",0,j,"genInputSmallStyle",0,S,"genPlaceholderStyle",0,E,"useSharedStyle",0,O],349942)},831357,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(242064),o=e.i(62139),a=e.i(349942);e.s(["default",0,e=>{let{getPrefixCls:i,direction:l}=(0,t.useContext)(n.ConfigContext),{prefixCls:s,className:c}=e,u=i("input-group",s),d=i("input"),[f,p,m]=(0,a.default)(d),h=(0,r.default)(u,m,{[`${u}-lg`]:"large"===e.size,[`${u}-sm`]:"small"===e.size,[`${u}-compact`]:e.compact,[`${u}-rtl`]:"rtl"===l},p,c),g=(0,t.useContext)(o.FormItemInputContext),v=(0,t.useMemo)(()=>Object.assign(Object.assign({},g),{isFormItemInput:!1}),[g]);return f(t.createElement("span",{className:h,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},t.createElement(o.FormItemInputContext.Provider,{value:v},e.children)))}])},175636,131299,367397,874460,e=>{"use strict";var t=e.i(209428),r=e.i(931067),n=e.i(211577),o=e.i(410160),a=e.i(343794),i=e.i(271645);function l(e){return!!(e.addonBefore||e.addonAfter)}function s(e){return!!(e.prefix||e.suffix||e.allowClear)}function c(e,t,r){var n=t.cloneNode(!0),o=Object.create(e,{target:{value:n},currentTarget:{value:n}});return n.value=r,"number"==typeof t.selectionStart&&"number"==typeof t.selectionEnd&&(n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd),n.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},o}function u(e,t,r,n){if(r){var o=t;if("click"===t.type)return void r(o=c(t,e,""));if("file"!==e.type&&void 0!==n)return void r(o=c(t,e,n));r(o)}}function d(e,t){if(e){e.focus(t);var r=(t||{}).cursor;if(r){var n=e.value.length;switch(r){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(n,n);break;default:e.setSelectionRange(0,n)}}}}e.s(["hasAddon",()=>l,"hasPrefixSuffix",()=>s,"resolveOnChange",()=>u,"triggerFocus",()=>d],131299);var f=i.default.forwardRef(function(e,c){var u,d,f,p=e.inputElement,m=e.children,h=e.prefixCls,g=e.prefix,v=e.suffix,y=e.addonBefore,b=e.addonAfter,w=e.className,$=e.style,C=e.disabled,E=e.readOnly,x=e.focused,S=e.triggerFocus,k=e.allowClear,j=e.value,O=e.handleReset,T=e.hidden,F=e.classes,_=e.classNames,I=e.dataAttrs,P=e.styles,N=e.components,R=e.onClear,M=null!=m?m:p,B=(null==N?void 0:N.affixWrapper)||"span",A=(null==N?void 0:N.groupWrapper)||"span",z=(null==N?void 0:N.wrapper)||"span",L=(null==N?void 0:N.groupAddon)||"span",H=(0,i.useRef)(null),D=s(e),V=(0,i.cloneElement)(M,{value:j,className:(0,a.default)(null==(u=M.props)?void 0:u.className,!D&&(null==_?void 0:_.variant))||null}),W=(0,i.useRef)(null);if(i.default.useImperativeHandle(c,function(){return{nativeElement:W.current||H.current}}),D){var G=null;if(k){var U=!C&&!E&&j,q="".concat(h,"-clear-icon"),J="object"===(0,o.default)(k)&&null!=k&&k.clearIcon?k.clearIcon:"✖";G=i.default.createElement("button",{type:"button",tabIndex:-1,onClick:function(e){null==O||O(e),null==R||R()},onMouseDown:function(e){return e.preventDefault()},className:(0,a.default)(q,(0,n.default)((0,n.default)({},"".concat(q,"-hidden"),!U),"".concat(q,"-has-suffix"),!!v))},J)}var K="".concat(h,"-affix-wrapper"),X=(0,a.default)(K,(0,n.default)((0,n.default)((0,n.default)((0,n.default)((0,n.default)({},"".concat(h,"-disabled"),C),"".concat(K,"-disabled"),C),"".concat(K,"-focused"),x),"".concat(K,"-readonly"),E),"".concat(K,"-input-with-clear-btn"),v&&k&&j),null==F?void 0:F.affixWrapper,null==_?void 0:_.affixWrapper,null==_?void 0:_.variant),Y=(v||k)&&i.default.createElement("span",{className:(0,a.default)("".concat(h,"-suffix"),null==_?void 0:_.suffix),style:null==P?void 0:P.suffix},G,v);V=i.default.createElement(B,(0,r.default)({className:X,style:null==P?void 0:P.affixWrapper,onClick:function(e){var t;null!=(t=H.current)&&t.contains(e.target)&&(null==S||S())}},null==I?void 0:I.affixWrapper,{ref:H}),g&&i.default.createElement("span",{className:(0,a.default)("".concat(h,"-prefix"),null==_?void 0:_.prefix),style:null==P?void 0:P.prefix},g),V,Y)}if(l(e)){var Z="".concat(h,"-group"),Q="".concat(Z,"-addon"),ee="".concat(Z,"-wrapper"),et=(0,a.default)("".concat(h,"-wrapper"),Z,null==F?void 0:F.wrapper,null==_?void 0:_.wrapper),er=(0,a.default)(ee,(0,n.default)({},"".concat(ee,"-disabled"),C),null==F?void 0:F.group,null==_?void 0:_.groupWrapper);V=i.default.createElement(A,{className:er,ref:W},i.default.createElement(z,{className:et},y&&i.default.createElement(L,{className:Q},y),V,b&&i.default.createElement(L,{className:Q},b)))}return i.default.cloneElement(V,{className:(0,a.default)(null==(d=V.props)?void 0:d.className,w)||null,style:(0,t.default)((0,t.default)({},null==(f=V.props)?void 0:f.style),$),hidden:T})});e.s(["default",0,f],367397);var p=e.i(8211),m=e.i(392221),h=e.i(703923),g=e.i(914949),v=e.i(529681),y=["show"];function b(e,r){return i.useMemo(function(){var n={};r&&(n.show="object"===(0,o.default)(r)&&r.formatter?r.formatter:!!r);var a=n=(0,t.default)((0,t.default)({},n),e),i=a.show,l=(0,h.default)(a,y);return(0,t.default)((0,t.default)({},l),{},{show:!!i,showFormatter:"function"==typeof i?i:void 0,strategy:l.strategy||function(e){return e.length}})},[e,r])}e.s(["default",()=>b],874460);var w=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","onKeyUp","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],$=(0,i.forwardRef)(function(e,o){var l,s=e.autoComplete,c=e.onChange,y=e.onFocus,$=e.onBlur,C=e.onPressEnter,E=e.onKeyDown,x=e.onKeyUp,S=e.prefixCls,k=void 0===S?"rc-input":S,j=e.disabled,O=e.htmlSize,T=e.className,F=e.maxLength,_=e.suffix,I=e.showCount,P=e.count,N=e.type,R=e.classes,M=e.classNames,B=e.styles,A=e.onCompositionStart,z=e.onCompositionEnd,L=(0,h.default)(e,w),H=(0,i.useState)(!1),D=(0,m.default)(H,2),V=D[0],W=D[1],G=(0,i.useRef)(!1),U=(0,i.useRef)(!1),q=(0,i.useRef)(null),J=(0,i.useRef)(null),K=function(e){q.current&&d(q.current,e)},X=(0,g.default)(e.defaultValue,{value:e.value}),Y=(0,m.default)(X,2),Z=Y[0],Q=Y[1],ee=null==Z?"":String(Z),et=(0,i.useState)(null),er=(0,m.default)(et,2),en=er[0],eo=er[1],ea=b(P,I),ei=ea.max||F,el=ea.strategy(ee),es=!!ei&&el>ei;(0,i.useImperativeHandle)(o,function(){var e;return{focus:K,blur:function(){var e;null==(e=q.current)||e.blur()},setSelectionRange:function(e,t,r){var n;null==(n=q.current)||n.setSelectionRange(e,t,r)},select:function(){var e;null==(e=q.current)||e.select()},input:q.current,nativeElement:(null==(e=J.current)?void 0:e.nativeElement)||q.current}}),(0,i.useEffect)(function(){U.current&&(U.current=!1),W(function(e){return(!e||!j)&&e})},[j]);var ec=function(e,t,r){var n,o,a=t;if(!G.current&&ea.exceedFormatter&&ea.max&&ea.strategy(t)>ea.max)a=ea.exceedFormatter(t,{max:ea.max}),t!==a&&eo([(null==(n=q.current)?void 0:n.selectionStart)||0,(null==(o=q.current)?void 0:o.selectionEnd)||0]);else if("compositionEnd"===r.source)return;Q(a),q.current&&u(q.current,e,c,a)};(0,i.useEffect)(function(){if(en){var e;null==(e=q.current)||e.setSelectionRange.apply(e,(0,p.default)(en))}},[en]);var eu=es&&"".concat(k,"-out-of-range");return i.default.createElement(f,(0,r.default)({},L,{prefixCls:k,className:(0,a.default)(T,eu),handleReset:function(e){Q(""),K(),q.current&&u(q.current,e,c)},value:ee,focused:V,triggerFocus:K,suffix:function(){var e=Number(ei)>0;if(_||ea.show){var r=ea.showFormatter?ea.showFormatter({value:ee,count:el,maxLength:ei}):"".concat(el).concat(e?" / ".concat(ei):"");return i.default.createElement(i.default.Fragment,null,ea.show&&i.default.createElement("span",{className:(0,a.default)("".concat(k,"-show-count-suffix"),(0,n.default)({},"".concat(k,"-show-count-has-suffix"),!!_),null==M?void 0:M.count),style:(0,t.default)({},null==B?void 0:B.count)},r),_)}return null}(),disabled:j,classes:R,classNames:M,styles:B,ref:J}),(l=(0,v.default)(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames","onClear"]),i.default.createElement("input",(0,r.default)({autoComplete:s},l,{onChange:function(e){ec(e,e.target.value,{source:"change"})},onFocus:function(e){W(!0),null==y||y(e)},onBlur:function(e){U.current&&(U.current=!1),W(!1),null==$||$(e)},onKeyDown:function(e){C&&"Enter"===e.key&&!U.current&&(U.current=!0,C(e)),null==E||E(e)},onKeyUp:function(e){"Enter"===e.key&&(U.current=!1),null==x||x(e)},className:(0,a.default)(k,(0,n.default)({},"".concat(k,"-disabled"),j),null==M?void 0:M.input),style:null==B?void 0:B.input,ref:q,size:O,type:void 0===N?"text":N,onCompositionStart:function(e){G.current=!0,null==A||A(e)},onCompositionEnd:function(e){G.current=!1,ec(e,e.currentTarget.value,{source:"compositionEnd"}),null==z||z(e)}}))))});e.s(["default",0,$],175636)},330683,e=>{"use strict";var t=e.i(271645),r=e.i(726289);e.s(["default",0,e=>{let n;return"object"==typeof e&&(null==e?void 0:e.clearIcon)?n=e:e&&(n={clearIcon:t.default.createElement(r.default,null)}),n}])},52956,e=>{"use strict";var t=e.i(343794);function r(e,r,n){return(0,t.default)({[`${e}-status-success`]:"success"===r,[`${e}-status-warning`]:"warning"===r,[`${e}-status-error`]:"error"===r,[`${e}-status-validating`]:"validating"===r,[`${e}-has-feedback`]:n})}e.s(["getMergedStatus",0,(e,t)=>t||e,"getStatusClassNames",()=>r])},792812,e=>{"use strict";var t=e.i(271645),r=e.i(242064),n=e.i(62139);e.s(["default",0,(e,o,a)=>{var i,l;let s,{variant:c,[e]:u}=t.useContext(r.ConfigContext),d=t.useContext(n.VariantContext),f=null==u?void 0:u.variant;s=void 0!==o?o:!1===a?"borderless":null!=(l=null!=(i=null!=d?d:f)?i:c)?l:"outlined";let p=r.Variants.includes(s);return[s,p]}])},90635,545719,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(175636);e.i(131299);var o=e.i(611935),a=e.i(617206),i=e.i(330683),l=e.i(52956),s=e.i(242064),c=e.i(937328),u=e.i(321883),d=e.i(517455),f=e.i(62139),p=e.i(792812),m=e.i(249616);function h(e,r){let n=(0,t.useRef)([]),o=()=>{n.current.push(setTimeout(()=>{var t,r,n,o;(null==(t=e.current)?void 0:t.input)&&(null==(r=e.current)?void 0:r.input.getAttribute("type"))==="password"&&(null==(n=e.current)?void 0:n.input.hasAttribute("value"))&&(null==(o=e.current)||o.input.removeAttribute("value"))}))};return(0,t.useEffect)(()=>(r&&o(),()=>n.current.forEach(e=>{e&&clearTimeout(e)})),[]),o}e.s(["default",()=>h],545719);var g=e.i(349942),v=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let y=(0,t.forwardRef)((e,y)=>{let{prefixCls:b,bordered:w=!0,status:$,size:C,disabled:E,onBlur:x,onFocus:S,suffix:k,allowClear:j,addonAfter:O,addonBefore:T,className:F,style:_,styles:I,rootClassName:P,onChange:N,classNames:R,variant:M,_skipAddonWarning:B}=e,A=v(e,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames","variant","_skipAddonWarning"]),{getPrefixCls:z,direction:L,allowClear:H,autoComplete:D,className:V,style:W,classNames:G,styles:U}=(0,s.useComponentConfig)("input"),q=z("input",b),J=(0,t.useRef)(null),K=(0,u.default)(q),[X,Y,Z]=(0,g.useSharedStyle)(q,P),[Q]=(0,g.default)(q,K),{compactSize:ee,compactItemClassnames:et}=(0,m.useCompactItemContext)(q,L),er=(0,d.default)(e=>{var t;return null!=(t=null!=C?C:ee)?t:e}),en=t.default.useContext(c.default),{status:eo,hasFeedback:ea,feedbackIcon:ei}=(0,t.useContext)(f.FormItemInputContext),el=(0,l.getMergedStatus)(eo,$),es=!!(e.prefix||e.suffix||e.allowClear||e.showCount)||!!ea;(0,t.useRef)(es);let ec=h(J,!0),eu=(ea||k)&&t.default.createElement(t.default.Fragment,null,k,ea&&ei),ed=(0,i.default)(null!=j?j:H),[ef,ep]=(0,p.default)("input",M,w);return X(Q(t.default.createElement(n.default,Object.assign({ref:(0,o.composeRef)(y,J),prefixCls:q,autoComplete:D},A,{disabled:null!=E?E:en,onBlur:e=>{ec(),null==x||x(e)},onFocus:e=>{ec(),null==S||S(e)},style:Object.assign(Object.assign({},W),_),styles:Object.assign(Object.assign({},U),I),suffix:eu,allowClear:ed,className:(0,r.default)(F,P,Z,K,et,V),onChange:e=>{ec(),null==N||N(e)},addonBefore:T&&t.default.createElement(a.default,{form:!0,space:!0},T),addonAfter:O&&t.default.createElement(a.default,{form:!0,space:!0},O),classNames:Object.assign(Object.assign(Object.assign({},R),G),{input:(0,r.default)({[`${q}-sm`]:"small"===er,[`${q}-lg`]:"large"===er,[`${q}-rtl`]:"rtl"===L},null==R?void 0:R.input,G.input,Y),variant:(0,r.default)({[`${q}-${ef}`]:ep},(0,l.getStatusClassNames)(q,el)),affixWrapper:(0,r.default)({[`${q}-affix-wrapper-sm`]:"small"===er,[`${q}-affix-wrapper-lg`]:"large"===er,[`${q}-affix-wrapper-rtl`]:"rtl"===L},Y),wrapper:(0,r.default)({[`${q}-group-rtl`]:"rtl"===L},Y),groupWrapper:(0,r.default)({[`${q}-group-wrapper-sm`]:"small"===er,[`${q}-group-wrapper-lg`]:"large"===er,[`${q}-group-wrapper-rtl`]:"rtl"===L,[`${q}-group-wrapper-${ef}`]:ep},(0,l.getStatusClassNames)(`${q}-group-wrapper`,el,ea),Y)})}))))});e.s(["default",0,y],90635)},932399,741585,984125,236798,e=>{"use strict";e.i(247167);var t=e.i(8211),r=e.i(271645),n=e.i(343794),o=e.i(175066),a=e.i(244009),i=e.i(52956),l=e.i(242064),s=e.i(517455),c=e.i(62139),u=e.i(246422),d=e.i(838378),f=e.i(517458);let p=(0,u.genStyleHooks)(["Input","OTP"],e=>(e=>{let{componentCls:t,paddingXS:r}=e;return{[t]:{display:"inline-flex",alignItems:"center",flexWrap:"nowrap",columnGap:r,[`${t}-input-wrapper`]:{position:"relative",[`${t}-mask-icon`]:{position:"absolute",zIndex:"1",top:"50%",right:"50%",transform:"translate(50%, -50%)",pointerEvents:"none"},[`${t}-mask-input`]:{color:"transparent",caretColor:e.colorText},[`${t}-mask-input[type=number]::-webkit-inner-spin-button`]:{"-webkit-appearance":"none",margin:0},[`${t}-mask-input[type=number]`]:{"-moz-appearance":"textfield"}},"&-rtl":{direction:"rtl"},[`${t}-input`]:{textAlign:"center",paddingInline:e.paddingXXS},[`&${t}-sm ${t}-input`]:{paddingInline:e.calc(e.paddingXXS).div(2).equal()},[`&${t}-lg ${t}-input`]:{paddingInline:e.paddingXS}}}})((0,d.mergeToken)(e,(0,f.initInputToken)(e))),f.initComponentToken);var m=e.i(963188),h=e.i(90635),g=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let v=r.forwardRef((e,t)=>{let{className:o,value:a,onChange:i,onActiveChange:s,index:c,mask:u}=e,d=g(e,["className","value","onChange","onActiveChange","index","mask"]),{getPrefixCls:f}=r.useContext(l.ConfigContext),p=f("otp"),v="string"==typeof u?u:a,y=r.useRef(null);r.useImperativeHandle(t,()=>y.current);let b=()=>{(0,m.default)(()=>{var e;let t=null==(e=y.current)?void 0:e.input;document.activeElement===t&&t&&t.select()})};return r.createElement("span",{className:`${p}-input-wrapper`,role:"presentation"},u&&""!==a&&void 0!==a&&r.createElement("span",{className:`${p}-mask-icon`,"aria-hidden":"true"},v),r.createElement(h.default,Object.assign({"aria-label":`OTP Input ${c+1}`,type:!0===u?"password":"text"},d,{ref:y,value:a,onInput:e=>{i(c,e.target.value)},onFocus:b,onKeyDown:e=>{let{key:t,ctrlKey:r,metaKey:n}=e;"ArrowLeft"===t?s(c-1):"ArrowRight"===t?s(c+1):"z"===t&&(r||n)?e.preventDefault():"Backspace"!==t||a||s(c-1),b()},onMouseDown:b,onMouseUp:b,className:(0,n.default)(o,{[`${p}-mask-input`]:u})})))});var y=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};function b(e){return(e||"").split("")}let w=e=>{let{index:t,prefixCls:n,separator:o}=e,a="function"==typeof o?o(t):o;return a?r.createElement("span",{className:`${n}-separator`},a):null},$=r.forwardRef((e,u)=>{let{prefixCls:d,length:f=6,size:m,defaultValue:h,value:g,onChange:$,formatter:C,separator:E,variant:x,disabled:S,status:k,autoFocus:j,mask:O,type:T,onInput:F,inputMode:_}=e,I=y(e,["prefixCls","length","size","defaultValue","value","onChange","formatter","separator","variant","disabled","status","autoFocus","mask","type","onInput","inputMode"]),{getPrefixCls:P,direction:N}=r.useContext(l.ConfigContext),R=P("otp",d),M=(0,a.default)(I,{aria:!0,data:!0,attr:!0}),[B,A,z]=p(R),L=(0,s.default)(e=>null!=m?m:e),H=r.useContext(c.FormItemInputContext),D=(0,i.getMergedStatus)(H.status,k),V=r.useMemo(()=>Object.assign(Object.assign({},H),{status:D,hasFeedback:!1,feedbackIcon:null}),[H,D]),W=r.useRef(null),G=r.useRef({});r.useImperativeHandle(u,()=>({focus:()=>{var e;null==(e=G.current[0])||e.focus()},blur:()=>{var e;for(let t=0;tC?C(e):e,[q,J]=r.useState(()=>b(U(h||"")));r.useEffect(()=>{void 0!==g&&J(b(g))},[g]);let K=(0,o.default)(e=>{J(e),F&&F(e),$&&e.length===f&&e.every(e=>e)&&e.some((e,t)=>q[t]!==e)&&$(e.join(""))}),X=(0,o.default)((e,r)=>{let n=(0,t.default)(q);for(let t=0;t=0&&!n[e];e-=1)n.pop();return n=b(U(n.map(e=>e||" ").join(""))).map((e,t)=>" "!==e||n[t]?e:n[t])}),Y=(e,t)=>{var r;let n=X(e,t),o=Math.min(e+t.length,f-1);o!==e&&void 0!==n[e]&&(null==(r=G.current[o])||r.focus()),K(n)},Z=e=>{var t;null==(t=G.current[e])||t.focus()},Q={variant:x,disabled:S,status:D,mask:O,type:T,inputMode:_};return B(r.createElement("div",Object.assign({},M,{ref:W,className:(0,n.default)(R,{[`${R}-sm`]:"small"===L,[`${R}-lg`]:"large"===L,[`${R}-rtl`]:"rtl"===N},z,A),role:"group"}),r.createElement(c.FormItemInputContext.Provider,{value:V},Array.from({length:f}).map((e,t)=>{let n=`otp-${t}`,o=q[t]||"";return r.createElement(r.Fragment,{key:n},r.createElement(v,Object.assign({ref:e=>{G.current[t]=e},index:t,size:L,htmlSize:1,className:`${R}-input`,onChange:Y,value:o,onActiveChange:Z,autoFocus:0===t&&j},Q)),tt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let P=e=>e?r.createElement(j,null):r.createElement(S,null),N={click:"onClick",hover:"onMouseOver"},R=r.forwardRef((e,t)=>{let o,a,i,{disabled:s,action:c="click",visibilityToggle:u=!0,iconRender:d=P,suffix:f}=e,p=r.useContext(F.default),m=null!=s?s:p,g="object"==typeof u&&void 0!==u.visible,[v,y]=(0,r.useState)(()=>!!g&&u.visible),b=(0,r.useRef)(null);r.useEffect(()=>{g&&y(u.visible)},[g,u]);let w=(0,_.default)(b),{className:$,prefixCls:C,inputPrefixCls:E,size:x}=e,S=I(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:k}=r.useContext(l.ConfigContext),j=k("input",E),R=k("input-password",C),M=u&&(o=N[c]||"",a=d(v),i={[o]:()=>{var e;if(m)return;v&&w();let t=!v;y(t),"object"==typeof u&&(null==(e=u.onVisibleChange)||e.call(u,t))},className:`${R}-icon`,key:"passwordIcon",onMouseDown:e=>{e.preventDefault()},onMouseUp:e=>{e.preventDefault()}},r.cloneElement(r.isValidElement(a)?a:r.createElement("span",null,a),i)),B=(0,n.default)(R,$,{[`${R}-${x}`]:!!x}),A=Object.assign(Object.assign({},(0,O.default)(S,["suffix","iconRender","visibilityToggle"])),{type:v?"text":"password",className:B,prefixCls:j,suffix:r.createElement(r.Fragment,null,M,f)});return x&&(A.size=x),r.createElement(h.default,Object.assign({ref:(0,T.composeRef)(t,b)},A))});e.s(["default",0,R],236798)},38953,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"};var o=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(o.default,(0,t.default)({},e,{ref:a,icon:n}))});e.s(["default",0,a],38953)},995387,e=>{"use strict";var t=e.i(271645),r=e.i(38953),n=e.i(343794),o=e.i(611935),a=e.i(763731),i=e.i(920228),l=e.i(242064),s=e.i(517455),c=e.i(249616),u=e.i(90635),d=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r};let f=t.forwardRef((e,f)=>{let p,{prefixCls:m,inputPrefixCls:h,className:g,size:v,suffix:y,enterButton:b=!1,addonAfter:w,loading:$,disabled:C,onSearch:E,onChange:x,onCompositionStart:S,onCompositionEnd:k,variant:j,onPressEnter:O}=e,T=d(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd","variant","onPressEnter"]),{getPrefixCls:F,direction:_}=t.useContext(l.ConfigContext),I=t.useRef(!1),P=F("input-search",m),N=F("input",h),{compactSize:R}=(0,c.useCompactItemContext)(P,_),M=(0,s.default)(e=>{var t;return null!=(t=null!=v?v:R)?t:e}),B=t.useRef(null),A=e=>{var t;document.activeElement===(null==(t=B.current)?void 0:t.input)&&e.preventDefault()},z=e=>{var t,r;E&&E(null==(r=null==(t=B.current)?void 0:t.input)?void 0:r.value,e,{source:"input"})},L="boolean"==typeof b?t.createElement(r.default,null):null,H=`${P}-button`,D=b||{},V=D.type&&!0===D.type.__ANT_BUTTON;p=V||"button"===D.type?(0,a.cloneElement)(D,Object.assign({onMouseDown:A,onClick:e=>{var t,r;null==(r=null==(t=null==D?void 0:D.props)?void 0:t.onClick)||r.call(t,e),z(e)},key:"enterButton"},V?{className:H,size:M}:{})):t.createElement(i.default,{className:H,color:b?"primary":"default",size:M,disabled:C,key:"enterButton",onMouseDown:A,onClick:z,loading:$,icon:L,variant:"borderless"===j||"filled"===j||"underlined"===j?"text":b?"solid":void 0},b),w&&(p=[p,(0,a.cloneElement)(w,{key:"addonAfter"})]);let W=(0,n.default)(P,{[`${P}-rtl`]:"rtl"===_,[`${P}-${M}`]:!!M,[`${P}-with-button`]:!!b},g),G=Object.assign(Object.assign({},T),{className:W,prefixCls:N,type:"search",size:M,variant:j,onPressEnter:e=>{I.current||$||(null==O||O(e),z(e))},onCompositionStart:e=>{I.current=!0,null==S||S(e)},onCompositionEnd:e=>{I.current=!1,null==k||k(e)},addonAfter:p,suffix:y,onChange:e=>{(null==e?void 0:e.target)&&"click"===e.type&&E&&E(e.target.value,e,{source:"clear"}),null==x||x(e)},disabled:C,_skipAddonWarning:!0});return t.createElement(u.default,Object.assign({ref:(0,o.composeRef)(B,f)},G))});e.s(["default",0,f])},302384,e=>{"use strict";var t=e.i(367397);e.s(["BaseInput",()=>t.default])},598030,e=>{"use strict";var t,r=e.i(931067),n=e.i(211577),o=e.i(209428),a=e.i(8211),i=e.i(392221),l=e.i(703923),s=e.i(343794);e.i(175636);var c=e.i(302384),u=e.i(874460),d=e.i(131299),f=e.i(914949),p=e.i(271645);e.i(247167);var m=e.i(410160),h=e.i(430073),g=e.i(174428),v=e.i(963188),y=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],b={},w=["prefixCls","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],$=p.forwardRef(function(e,a){var c=e.prefixCls,u=e.defaultValue,d=e.value,$=e.autoSize,C=e.onResize,E=e.className,x=e.style,S=e.disabled,k=e.onChange,j=(e.onInternalAutoSize,(0,l.default)(e,w)),O=(0,f.default)(u,{value:d,postState:function(e){return null!=e?e:""}}),T=(0,i.default)(O,2),F=T[0],_=T[1],I=p.useRef();p.useImperativeHandle(a,function(){return{textArea:I.current}});var P=p.useMemo(function(){return $&&"object"===(0,m.default)($)?[$.minRows,$.maxRows]:[]},[$]),N=(0,i.default)(P,2),R=N[0],M=N[1],B=!!$,A=p.useState(2),z=(0,i.default)(A,2),L=z[0],H=z[1],D=p.useState(),V=(0,i.default)(D,2),W=V[0],G=V[1],U=function(){H(0)};(0,g.default)(function(){B&&U()},[d,R,M,B]),(0,g.default)(function(){if(0===L)H(1);else if(1===L){var e=function(e){var r,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t||((t=document.createElement("textarea")).setAttribute("tab-index","-1"),t.setAttribute("aria-hidden","true"),t.setAttribute("name","hiddenTextarea"),document.body.appendChild(t)),e.getAttribute("wrap")?t.setAttribute("wrap",e.getAttribute("wrap")):t.removeAttribute("wrap");var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&b[r])return b[r];var n=window.getComputedStyle(e),o=n.getPropertyValue("box-sizing")||n.getPropertyValue("-moz-box-sizing")||n.getPropertyValue("-webkit-box-sizing"),a=parseFloat(n.getPropertyValue("padding-bottom"))+parseFloat(n.getPropertyValue("padding-top")),i=parseFloat(n.getPropertyValue("border-bottom-width"))+parseFloat(n.getPropertyValue("border-top-width")),l={sizingStyle:y.map(function(e){return"".concat(e,":").concat(n.getPropertyValue(e))}).join(";"),paddingSize:a,borderSize:i,boxSizing:o};return t&&r&&(b[r]=l),l}(e,n),l=i.paddingSize,s=i.borderSize,c=i.boxSizing,u=i.sizingStyle;t.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n")),t.value=e.value||e.placeholder||"";var d=void 0,f=void 0,p=t.scrollHeight;if("border-box"===c?p+=s:"content-box"===c&&(p-=l),null!==o||null!==a){t.value=" ";var m=t.scrollHeight-l;null!==o&&(d=m*o,"border-box"===c&&(d=d+l+s),p=Math.max(d,p)),null!==a&&(f=m*a,"border-box"===c&&(f=f+l+s),r=p>f?"":"hidden",p=Math.min(f,p))}var h={height:p,overflowY:r,resize:"none"};return d&&(h.minHeight=d),f&&(h.maxHeight=f),h}(I.current,!1,R,M);H(2),G(e)}},[L]);var q=p.useRef(),J=function(){v.default.cancel(q.current)};p.useEffect(function(){return J},[]);var K=(0,o.default)((0,o.default)({},x),B?W:null);return(0===L||1===L)&&(K.overflowY="hidden",K.overflowX="hidden"),p.createElement(h.default,{onResize:function(e){2===L&&(null==C||C(e),$&&(J(),q.current=(0,v.default)(function(){U()})))},disabled:!($||C)},p.createElement("textarea",(0,r.default)({},j,{ref:I,style:K,className:(0,s.default)(c,E,(0,n.default)({},"".concat(c,"-disabled"),S)),disabled:S,value:F,onChange:function(e){_(e.target.value),null==k||k(e)}})))}),C=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize","onClear","onPressEnter","readOnly","autoSize","onKeyDown"],E=p.default.forwardRef(function(e,t){var m,h,g=e.defaultValue,v=e.value,y=e.onFocus,b=e.onBlur,w=e.onChange,E=e.allowClear,x=e.maxLength,S=e.onCompositionStart,k=e.onCompositionEnd,j=e.suffix,O=e.prefixCls,T=void 0===O?"rc-textarea":O,F=e.showCount,_=e.count,I=e.className,P=e.style,N=e.disabled,R=e.hidden,M=e.classNames,B=e.styles,A=e.onResize,z=e.onClear,L=e.onPressEnter,H=e.readOnly,D=e.autoSize,V=e.onKeyDown,W=(0,l.default)(e,C),G=(0,f.default)(g,{value:v,defaultValue:g}),U=(0,i.default)(G,2),q=U[0],J=U[1],K=null==q?"":String(q),X=p.default.useState(!1),Y=(0,i.default)(X,2),Z=Y[0],Q=Y[1],ee=p.default.useRef(!1),et=p.default.useState(null),er=(0,i.default)(et,2),en=er[0],eo=er[1],ea=(0,p.useRef)(null),ei=(0,p.useRef)(null),el=function(){var e;return null==(e=ei.current)?void 0:e.textArea},es=function(){el().focus()};(0,p.useImperativeHandle)(t,function(){var e;return{resizableTextArea:ei.current,focus:es,blur:function(){el().blur()},nativeElement:(null==(e=ea.current)?void 0:e.nativeElement)||el()}}),(0,p.useEffect)(function(){Q(function(e){return!N&&e})},[N]);var ec=p.default.useState(null),eu=(0,i.default)(ec,2),ed=eu[0],ef=eu[1];p.default.useEffect(function(){if(ed){var e;(e=el()).setSelectionRange.apply(e,(0,a.default)(ed))}},[ed]);var ep=(0,u.default)(_,F),em=null!=(m=ep.max)?m:x,eh=Number(em)>0,eg=ep.strategy(K),ev=!!em&&eg>em,ey=function(e,t){var r=t;!ee.current&&ep.exceedFormatter&&ep.max&&ep.strategy(t)>ep.max&&(r=ep.exceedFormatter(t,{max:ep.max}),t!==r&&ef([el().selectionStart||0,el().selectionEnd||0])),J(r),(0,d.resolveOnChange)(e.currentTarget,e,w,r)},eb=j;ep.show&&(h=ep.showFormatter?ep.showFormatter({value:K,count:eg,maxLength:em}):"".concat(eg).concat(eh?" / ".concat(em):""),eb=p.default.createElement(p.default.Fragment,null,eb,p.default.createElement("span",{className:(0,s.default)("".concat(T,"-data-count"),null==M?void 0:M.count),style:null==B?void 0:B.count},h)));var ew=!D&&!F&&!E;return p.default.createElement(c.BaseInput,{ref:ea,value:K,allowClear:E,handleReset:function(e){J(""),es(),(0,d.resolveOnChange)(el(),e,w)},suffix:eb,prefixCls:T,classNames:(0,o.default)((0,o.default)({},M),{},{affixWrapper:(0,s.default)(null==M?void 0:M.affixWrapper,(0,n.default)((0,n.default)({},"".concat(T,"-show-count"),F),"".concat(T,"-textarea-allow-clear"),E))}),disabled:N,focused:Z,className:(0,s.default)(I,ev&&"".concat(T,"-out-of-range")),style:(0,o.default)((0,o.default)({},P),en&&!ew?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":"string"==typeof h?h:void 0}},hidden:R,readOnly:H,onClear:z},p.default.createElement($,(0,r.default)({},W,{autoSize:D,maxLength:x,onKeyDown:function(e){"Enter"===e.key&&L&&L(e),null==V||V(e)},onChange:function(e){ey(e,e.target.value)},onFocus:function(e){Q(!0),null==y||y(e)},onBlur:function(e){Q(!1),null==b||b(e)},onCompositionStart:function(e){ee.current=!0,null==S||S(e)},onCompositionEnd:function(e){ee.current=!1,ey(e,e.currentTarget.value),null==k||k(e)},className:(0,s.default)(null==M?void 0:M.textarea),style:(0,o.default)((0,o.default)({},null==B?void 0:B.textarea),{},{resize:null==P?void 0:P.resize}),disabled:N,prefixCls:T,onResize:function(e){var t;null==A||A(e),null!=(t=el())&&t.style.height&&eo(!0)},ref:ei,readOnly:H})))});e.s(["default",0,E],598030)},635432,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(598030),o=e.i(330683),a=e.i(52956),i=e.i(242064),l=e.i(937328),s=e.i(321883),c=e.i(517455),u=e.i(62139),d=e.i(792812),f=e.i(249616),p=e.i(131299),m=e.i(349942),h=e.i(246422),g=e.i(838378),v=e.i(517458);let y=(0,h.genStyleHooks)(["Input","TextArea"],e=>(e=>{let{componentCls:t,paddingLG:r}=e,n=`${t}-textarea`;return{[`textarea${t}`]:{maxWidth:"100%",height:"auto",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:"bottom",transition:`all ${e.motionDurationSlow}`,resize:"vertical",[`&${t}-mouse-active`]:{transition:`all ${e.motionDurationSlow}, height 0s, width 0s`}},[`${t}-textarea-affix-wrapper-resize-dirty`]:{width:"auto"},[n]:{position:"relative","&-show-count":{[`${t}-data-count`]:{position:"absolute",bottom:e.calc(e.fontSize).mul(e.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:e.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},[` + ${t}-affix-wrapper`]:{"&:hover, &:focus, &:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}})(t),(e=>{let{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}})(t),(0,n.genCompactItemStyle)(t)]},l,{resetFont:!1});e.s(["default",0,T,"genBasicInputStyle",0,j,"genInputGroupStyle",0,k,"genInputSmallStyle",0,S,"genPlaceholderStyle",0,E,"useSharedStyle",0,O],349942)},831357,e=>{"use strict";var t=e.i(271645),r=e.i(343794),n=e.i(242064),o=e.i(62139),a=e.i(349942);e.s(["default",0,e=>{let{getPrefixCls:i,direction:l}=(0,t.useContext)(n.ConfigContext),{prefixCls:s,className:c}=e,u=i("input-group",s),d=i("input"),[f,p,m]=(0,a.default)(d),h=(0,r.default)(u,m,{[`${u}-lg`]:"large"===e.size,[`${u}-sm`]:"small"===e.size,[`${u}-compact`]:e.compact,[`${u}-rtl`]:"rtl"===l},p,c),g=(0,t.useContext)(o.FormItemInputContext),v=(0,t.useMemo)(()=>Object.assign(Object.assign({},g),{isFormItemInput:!1}),[g]);return f(t.createElement("span",{className:h,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},t.createElement(o.FormItemInputContext.Provider,{value:v},e.children)))}])},175636,131299,367397,874460,e=>{"use strict";var t=e.i(209428),r=e.i(931067),n=e.i(211577),o=e.i(410160),a=e.i(343794),i=e.i(271645);function l(e){return!!(e.addonBefore||e.addonAfter)}function s(e){return!!(e.prefix||e.suffix||e.allowClear)}function c(e,t,r){var n=t.cloneNode(!0),o=Object.create(e,{target:{value:n},currentTarget:{value:n}});return n.value=r,"number"==typeof t.selectionStart&&"number"==typeof t.selectionEnd&&(n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd),n.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},o}function u(e,t,r,n){if(r){var o=t;if("click"===t.type)return void r(o=c(t,e,""));if("file"!==e.type&&void 0!==n)return void r(o=c(t,e,n));r(o)}}function d(e,t){if(e){e.focus(t);var r=(t||{}).cursor;if(r){var n=e.value.length;switch(r){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(n,n);break;default:e.setSelectionRange(0,n)}}}}e.s(["hasAddon",()=>l,"hasPrefixSuffix",()=>s,"resolveOnChange",()=>u,"triggerFocus",()=>d],131299);var f=i.default.forwardRef(function(e,c){var u,d,f,p=e.inputElement,m=e.children,h=e.prefixCls,g=e.prefix,v=e.suffix,y=e.addonBefore,b=e.addonAfter,w=e.className,$=e.style,C=e.disabled,E=e.readOnly,x=e.focused,S=e.triggerFocus,j=e.allowClear,k=e.value,O=e.handleReset,T=e.hidden,F=e.classes,I=e.classNames,_=e.dataAttrs,P=e.styles,N=e.components,R=e.onClear,M=null!=m?m:p,B=(null==N?void 0:N.affixWrapper)||"span",A=(null==N?void 0:N.groupWrapper)||"span",z=(null==N?void 0:N.wrapper)||"span",L=(null==N?void 0:N.groupAddon)||"span",H=(0,i.useRef)(null),D=s(e),V=(0,i.cloneElement)(M,{value:k,className:(0,a.default)(null==(u=M.props)?void 0:u.className,!D&&(null==I?void 0:I.variant))||null}),W=(0,i.useRef)(null);if(i.default.useImperativeHandle(c,function(){return{nativeElement:W.current||H.current}}),D){var G=null;if(j){var U=!C&&!E&&k,q="".concat(h,"-clear-icon"),J="object"===(0,o.default)(j)&&null!=j&&j.clearIcon?j.clearIcon:"✖";G=i.default.createElement("button",{type:"button",tabIndex:-1,onClick:function(e){null==O||O(e),null==R||R()},onMouseDown:function(e){return e.preventDefault()},className:(0,a.default)(q,(0,n.default)((0,n.default)({},"".concat(q,"-hidden"),!U),"".concat(q,"-has-suffix"),!!v))},J)}var K="".concat(h,"-affix-wrapper"),X=(0,a.default)(K,(0,n.default)((0,n.default)((0,n.default)((0,n.default)((0,n.default)({},"".concat(h,"-disabled"),C),"".concat(K,"-disabled"),C),"".concat(K,"-focused"),x),"".concat(K,"-readonly"),E),"".concat(K,"-input-with-clear-btn"),v&&j&&k),null==F?void 0:F.affixWrapper,null==I?void 0:I.affixWrapper,null==I?void 0:I.variant),Y=(v||j)&&i.default.createElement("span",{className:(0,a.default)("".concat(h,"-suffix"),null==I?void 0:I.suffix),style:null==P?void 0:P.suffix},G,v);V=i.default.createElement(B,(0,r.default)({className:X,style:null==P?void 0:P.affixWrapper,onClick:function(e){var t;null!=(t=H.current)&&t.contains(e.target)&&(null==S||S())}},null==_?void 0:_.affixWrapper,{ref:H}),g&&i.default.createElement("span",{className:(0,a.default)("".concat(h,"-prefix"),null==I?void 0:I.prefix),style:null==P?void 0:P.prefix},g),V,Y)}if(l(e)){var Z="".concat(h,"-group"),Q="".concat(Z,"-addon"),ee="".concat(Z,"-wrapper"),et=(0,a.default)("".concat(h,"-wrapper"),Z,null==F?void 0:F.wrapper,null==I?void 0:I.wrapper),er=(0,a.default)(ee,(0,n.default)({},"".concat(ee,"-disabled"),C),null==F?void 0:F.group,null==I?void 0:I.groupWrapper);V=i.default.createElement(A,{className:er,ref:W},i.default.createElement(z,{className:et},y&&i.default.createElement(L,{className:Q},y),V,b&&i.default.createElement(L,{className:Q},b)))}return i.default.cloneElement(V,{className:(0,a.default)(null==(d=V.props)?void 0:d.className,w)||null,style:(0,t.default)((0,t.default)({},null==(f=V.props)?void 0:f.style),$),hidden:T})});e.s(["default",0,f],367397);var p=e.i(8211),m=e.i(392221),h=e.i(703923),g=e.i(914949),v=e.i(529681),y=["show"];function b(e,r){return i.useMemo(function(){var n={};r&&(n.show="object"===(0,o.default)(r)&&r.formatter?r.formatter:!!r);var a=n=(0,t.default)((0,t.default)({},n),e),i=a.show,l=(0,h.default)(a,y);return(0,t.default)((0,t.default)({},l),{},{show:!!i,showFormatter:"function"==typeof i?i:void 0,strategy:l.strategy||function(e){return e.length}})},[e,r])}e.s(["default",()=>b],874460);var w=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","onKeyUp","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],$=(0,i.forwardRef)(function(e,o){var l,s=e.autoComplete,c=e.onChange,y=e.onFocus,$=e.onBlur,C=e.onPressEnter,E=e.onKeyDown,x=e.onKeyUp,S=e.prefixCls,j=void 0===S?"rc-input":S,k=e.disabled,O=e.htmlSize,T=e.className,F=e.maxLength,I=e.suffix,_=e.showCount,P=e.count,N=e.type,R=e.classes,M=e.classNames,B=e.styles,A=e.onCompositionStart,z=e.onCompositionEnd,L=(0,h.default)(e,w),H=(0,i.useState)(!1),D=(0,m.default)(H,2),V=D[0],W=D[1],G=(0,i.useRef)(!1),U=(0,i.useRef)(!1),q=(0,i.useRef)(null),J=(0,i.useRef)(null),K=function(e){q.current&&d(q.current,e)},X=(0,g.default)(e.defaultValue,{value:e.value}),Y=(0,m.default)(X,2),Z=Y[0],Q=Y[1],ee=null==Z?"":String(Z),et=(0,i.useState)(null),er=(0,m.default)(et,2),en=er[0],eo=er[1],ea=b(P,_),ei=ea.max||F,el=ea.strategy(ee),es=!!ei&&el>ei;(0,i.useImperativeHandle)(o,function(){var e;return{focus:K,blur:function(){var e;null==(e=q.current)||e.blur()},setSelectionRange:function(e,t,r){var n;null==(n=q.current)||n.setSelectionRange(e,t,r)},select:function(){var e;null==(e=q.current)||e.select()},input:q.current,nativeElement:(null==(e=J.current)?void 0:e.nativeElement)||q.current}}),(0,i.useEffect)(function(){U.current&&(U.current=!1),W(function(e){return(!e||!k)&&e})},[k]);var ec=function(e,t,r){var n,o,a=t;if(!G.current&&ea.exceedFormatter&&ea.max&&ea.strategy(t)>ea.max)a=ea.exceedFormatter(t,{max:ea.max}),t!==a&&eo([(null==(n=q.current)?void 0:n.selectionStart)||0,(null==(o=q.current)?void 0:o.selectionEnd)||0]);else if("compositionEnd"===r.source)return;Q(a),q.current&&u(q.current,e,c,a)};(0,i.useEffect)(function(){if(en){var e;null==(e=q.current)||e.setSelectionRange.apply(e,(0,p.default)(en))}},[en]);var eu=es&&"".concat(j,"-out-of-range");return i.default.createElement(f,(0,r.default)({},L,{prefixCls:j,className:(0,a.default)(T,eu),handleReset:function(e){Q(""),K(),q.current&&u(q.current,e,c)},value:ee,focused:V,triggerFocus:K,suffix:function(){var e=Number(ei)>0;if(I||ea.show){var r=ea.showFormatter?ea.showFormatter({value:ee,count:el,maxLength:ei}):"".concat(el).concat(e?" / ".concat(ei):"");return i.default.createElement(i.default.Fragment,null,ea.show&&i.default.createElement("span",{className:(0,a.default)("".concat(j,"-show-count-suffix"),(0,n.default)({},"".concat(j,"-show-count-has-suffix"),!!I),null==M?void 0:M.count),style:(0,t.default)({},null==B?void 0:B.count)},r),I)}return null}(),disabled:k,classes:R,classNames:M,styles:B,ref:J}),(l=(0,v.default)(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames","onClear"]),i.default.createElement("input",(0,r.default)({autoComplete:s},l,{onChange:function(e){ec(e,e.target.value,{source:"change"})},onFocus:function(e){W(!0),null==y||y(e)},onBlur:function(e){U.current&&(U.current=!1),W(!1),null==$||$(e)},onKeyDown:function(e){C&&"Enter"===e.key&&!U.current&&(U.current=!0,C(e)),null==E||E(e)},onKeyUp:function(e){"Enter"===e.key&&(U.current=!1),null==x||x(e)},className:(0,a.default)(j,(0,n.default)({},"".concat(j,"-disabled"),k),null==M?void 0:M.input),style:null==B?void 0:B.input,ref:q,size:O,type:void 0===N?"text":N,onCompositionStart:function(e){G.current=!0,null==A||A(e)},onCompositionEnd:function(e){G.current=!1,ec(e,e.currentTarget.value,{source:"compositionEnd"}),null==z||z(e)}}))))});e.s(["default",0,$],175636)},330683,e=>{"use strict";var t=e.i(271645),r=e.i(726289);e.s(["default",0,e=>{let n;return"object"==typeof e&&(null==e?void 0:e.clearIcon)?n=e:e&&(n={clearIcon:t.default.createElement(r.default,null)}),n}])},52956,e=>{"use strict";var t=e.i(343794);function r(e,r,n){return(0,t.default)({[`${e}-status-success`]:"success"===r,[`${e}-status-warning`]:"warning"===r,[`${e}-status-error`]:"error"===r,[`${e}-status-validating`]:"validating"===r,[`${e}-has-feedback`]:n})}e.s(["getMergedStatus",0,(e,t)=>t||e,"getStatusClassNames",()=>r])},792812,e=>{"use strict";var t=e.i(271645),r=e.i(242064),n=e.i(62139);e.s(["default",0,(e,o,a)=>{var i,l;let s,{variant:c,[e]:u}=t.useContext(r.ConfigContext),d=t.useContext(n.VariantContext),f=null==u?void 0:u.variant;s=void 0!==o?o:!1===a?"borderless":null!=(l=null!=(i=null!=d?d:f)?i:c)?l:"outlined";let p=r.Variants.includes(s);return[s,p]}])},90635,545719,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),n=e.i(175636);e.i(131299);var o=e.i(611935),a=e.i(617206),i=e.i(330683),l=e.i(52956),s=e.i(242064),c=e.i(937328),u=e.i(321883),d=e.i(517455),f=e.i(62139),p=e.i(792812),m=e.i(249616);function h(e,r){let n=(0,t.useRef)([]),o=()=>{n.current.push(setTimeout(()=>{var t,r,n,o;(null==(t=e.current)?void 0:t.input)&&(null==(r=e.current)?void 0:r.input.getAttribute("type"))==="password"&&(null==(n=e.current)?void 0:n.input.hasAttribute("value"))&&(null==(o=e.current)||o.input.removeAttribute("value"))}))};return(0,t.useEffect)(()=>(r&&o(),()=>n.current.forEach(e=>{e&&clearTimeout(e)})),[]),o}e.s(["default",()=>h],545719);var g=e.i(349942),v=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);o