diff --git a/.aspect/rules/external_repository_action_cache/npm_translate_lock_MzA5NzUwNzMx b/.aspect/rules/external_repository_action_cache/npm_translate_lock_MzA5NzUwNzMx index 7ef68f57a431..1cf17d0e3178 100755 --- a/.aspect/rules/external_repository_action_cache/npm_translate_lock_MzA5NzUwNzMx +++ b/.aspect/rules/external_repository_action_cache/npm_translate_lock_MzA5NzUwNzMx @@ -1,8 +1,23 @@ # @generated # Input hashes for repository rule npm_translate_lock(name = "npm2", pnpm_lock = "@//:pnpm-lock.yaml"). # This file should be checked into version control along with the pnpm-lock.yaml file. -.npmrc=-2023857461 -package.json=1644151301 -pnpm-lock.yaml=2107069472 -pnpm-workspace.yaml=1711114604 -yarn.lock=1593491870 +.npmrc=-1406867100 +integration/package.json=-620011313 +package.json=20540807 +patches/@angular__compiler-cli.patch=-65319555 +pnpm-lock.yaml=-1601778403 +pnpm-workspace.yaml=334858811 +src/cdk-experimental/package.json=237487315 +src/cdk/package.json=-908433069 +src/components-examples/package.json=560048349 +src/dev-app/package.json=624475908 +src/e2e-app/package.json=-1971485006 +src/google-maps/package.json=-886415500 +src/material-date-fns-adapter/package.json=-332076964 +src/material-experimental/package.json=1822916455 +src/material-luxon-adapter/package.json=-199007660 +src/material-moment-adapter/package.json=-1407689629 +src/material/package.json=-1237533685 +src/universal-app/package.json=346715231 +src/youtube-player/package.json=68300461 +yarn.lock=230420156 diff --git a/.bazelignore b/.bazelignore index 8acf7d2bfa0c..d6abb382275c 100644 --- a/.bazelignore +++ b/.bazelignore @@ -17,3 +17,18 @@ integration/yarn-pnp-compat/.yarn/cache integration/yarn-pnp-compat/.yarn/unplugged integration/yarn-pnp-compat/.yarn/install-state.gz integration/yarn-pnp-compat/node_modules + +integration/node_modules +src/cdk-experimental/node_modules +src/cdk/node_modules +src/components-examples/node_modules +src/dev-app/node_modules +src/e2e-app/node_modules +src/google-maps/node_modules +src/material-date-fns-adapter/node_modules +src/material-experimental/node_modules +src/material-luxon-adapter/node_modules +src/material-moment-adapter/node_modules +src/material/node_modules +src/universal-app/node_modules +src/youtube-player/node_modules diff --git a/.bazelrc b/.bazelrc index 235349ee660e..84e6ab570436 100644 --- a/.bazelrc +++ b/.bazelrc @@ -11,7 +11,7 @@ common --@aspect_rules_ts//ts:default_to_tsc_transpiler # https://github.com/bazelbuild/rules_typescript/issues/12 which affects the common case of # having `tsconfig.json` in the WORKSPACE directory. Instead, you should run # `bazel info output_base` to find out where the outputs went. -build --symlink_prefix=/ +build --symlink_prefix=dist/ # Performance: avoid stat'ing input files build --watchfs @@ -35,7 +35,7 @@ build --nobuild_runfile_links ############################### # A more useful default output mode for bazel query -# Prints eg. "ng_module rule //foo:bar" rather than just "//foo:bar" +# Prints eg. "ng_project rule //foo:bar" rather than just "//foo:bar" query --output=label_kind # By default, failing tests don't print any output, it goes to the log file @@ -58,7 +58,7 @@ build:snapshot-build --stamp #################################### # Bazel custom flags # #################################### -build --flag_alias=partial_compilation=@npm//@angular/bazel/src:partial_compilation +build --flag_alias=partial_compilation=@rules_angular//src/ng_project/config:partial_compilation ################################## # Always enable Ivy compilation # @@ -120,6 +120,10 @@ build:build-results --bes_results_url="https://source.cloud.google.com/results/i # Set remote caching settings build:remote --remote_accept_cached=true +build:remote --remote_upload_local_results=false + +# Additional flags added when running a "trusted build" with additional access +build:trusted-build --remote_upload_local_results=true ################################ # --config=debug # diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index 350d10bea7ab..50ea78941573 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/branch-manager@e4bf37af223483ce00f9316d227fd62cd744dc4b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.material-aio.yml b/.github/workflows/ci.material-aio.yml index 6a43565e32fd..da9b5e655489 100644 --- a/.github/workflows/ci.material-aio.yml +++ b/.github/workflows/ci.material-aio.yml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Linting @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Direct Production Build (deploy usage) @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Tests @@ -67,7 +67,7 @@ jobs: runs-on: ubuntu-22.04 # Note, fails on Ubuntu 24.04. see https://github.com/actions/runner-images/issues/10636 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Lighthouse Audit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c78447eb326..541b72cb2499 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Install node modules @@ -54,13 +54,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Check API Goldens @@ -75,13 +77,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run e2e tests @@ -96,19 +100,19 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run integration tests run: yarn integration-tests - - name: Running size integration tests - run: yarn integration-tests:size-test continue-on-error: true - uses: ./.github/actions/slack if: failure() @@ -120,13 +124,15 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run linker AOT tests @@ -141,13 +147,15 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run linker JIT tests @@ -162,13 +170,15 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run tests @@ -185,13 +195,15 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules run: yarn install --frozen-lockfile - name: Run tests @@ -206,13 +218,13 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Build and Verify Release Output @@ -237,7 +249,7 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true # See: https://github.com/puppeteer/puppeteer/pull/13196 and @@ -245,9 +257,9 @@ jobs: - name: Disable AppArmor run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Build and Verify Release Output @@ -275,14 +287,14 @@ jobs: CI_RUNNER_NUMBER: ${{ github.run_id }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Browserstack Variables - uses: angular/dev-infra/github-actions/browserstack@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/browserstack@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Run tests on Browserstack run: ./scripts/circleci/run-browserstack-tests.sh diff --git a/.github/workflows/deploy-dev-app-main-push.yml b/.github/workflows/deploy-dev-app-main-push.yml index 77e678c04fbf..20b653a8a764 100644 --- a/.github/workflows/deploy-dev-app-main-push.yml +++ b/.github/workflows/deploy-dev-app-main-push.yml @@ -17,13 +17,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 0f01b72264fb..d88858a6ddbc 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 - - uses: angular/dev-infra/github-actions/commit-message-based-labels@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/commit-message-based-labels@e4bf37af223483ce00f9316d227fd62cd744dc4b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3.0.2 - - uses: angular/dev-infra/github-actions/post-approval-changes@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/post-approval-changes@e4bf37af223483ce00f9316d227fd62cd744dc4b with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml index d7378e03f932..598e8e599aba 100644 --- a/.github/workflows/google-internal-tests.yml +++ b/.github/workflows/google-internal-tests.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - - uses: angular/dev-infra/github-actions/google-internal-tests@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/google-internal-tests@e4bf37af223483ce00f9316d227fd62cd744dc4b with: run-tests-guide-url: http://go/angular-material-presubmit github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr.material-aio.yml b/.github/workflows/pr.material-aio.yml index 05053cadba24..70353aad9138 100644 --- a/.github/workflows/pr.material-aio.yml +++ b/.github/workflows/pr.material-aio.yml @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Linting @@ -36,7 +36,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Direct Production Build (deploy usage) @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Tests @@ -65,7 +65,7 @@ jobs: runs-on: ubuntu-22.04 # Note, fails on Ubuntu 24.04. see https://github.com/actions/runner-images/issues/10636 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --immutable - name: Execute Lighthouse Audit diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ce4e8114f893..361e4d0e5172 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Install node modules @@ -45,7 +45,7 @@ jobs: - name: Check code format run: yarn ng-dev format changed --check ${{ github.event.pull_request.base.sha }} - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/linting/licenses@e4bf37af223483ce00f9316d227fd62cd744dc4b # Commit message check is last intentionally, because the caretaker can fix it # during merge, while other lint failures have to be resolved by the PR author. - name: Check commit message @@ -55,13 +55,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Check API Goldens @@ -71,13 +71,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run e2e tests @@ -87,32 +87,29 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run integration tests run: yarn integration-tests - - name: Running size integration tests - run: yarn integration-tests:size-test - continue-on-error: true linker_aot_tests: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run linker AOT tests @@ -122,13 +119,13 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run linker JIT tests @@ -138,13 +135,13 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run tests @@ -156,13 +153,13 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Run tests @@ -172,13 +169,13 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Install node modules run: yarn install --frozen-lockfile - name: Build and Verify Release Output @@ -201,7 +198,7 @@ jobs: CI_RUNNER_NUMBER: ${{ github.run_id }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true # Checking out the pull request commit is intended here as we need to run the changed code tests. @@ -209,8 +206,8 @@ jobs: - name: Install node modules run: yarn install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Browserstack Variables - uses: angular/dev-infra/github-actions/browserstack@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/browserstack@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Run tests on Browserstack run: ./scripts/circleci/run-browserstack-tests.sh diff --git a/.github/workflows/preview-build-dev-app.yml b/.github/workflows/preview-build-dev-app.yml index 12d5cd9a1262..4d506aa5817a 100644 --- a/.github/workflows/preview-build-dev-app.yml +++ b/.github/workflows/preview-build-dev-app.yml @@ -23,18 +23,18 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'dev-app preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b # Build the web package - run: bazel build //src/dev-app:web_package --symlink_prefix=dist/ - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@e4bf37af223483ce00f9316d227fd62cd744dc4b with: workflow-artifact-name: 'dev-app' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/preview-deploy-dev-app.yml b/.github/workflows/preview-deploy-dev-app.yml index 166d7c61cefb..c72d22d2fa59 100644 --- a/.github/workflows/preview-deploy-dev-app.yml +++ b/.github/workflows/preview-deploy-dev-app.yml @@ -33,7 +33,7 @@ jobs: npx -y firebase-tools@latest target:clear --project ${{env.PREVIEW_PROJECT}} hosting dev-app npx -y firebase-tools@latest target:apply --project ${{env.PREVIEW_PROJECT}} hosting dev-app ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@8a438a3bdc519880d78b5ac92b62bfe688deb058 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@e4bf37af223483ce00f9316d227fd62cd744dc4b with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'dev-app' diff --git a/.github/workflows/scheduled-ci.yml b/.github/workflows/scheduled-ci.yml index 33f89596c323..38475eff39c4 100644 --- a/.github/workflows/scheduled-ci.yml +++ b/.github/workflows/scheduled-ci.yml @@ -19,13 +19,15 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Setting up Angular snapshot builds # Angular snapshots must be set up first so that the yarn install properly # updates the yarn.lock as expected with the changes @@ -44,13 +46,15 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/setup@e4bf37af223483ce00f9316d227fd62cd744dc4b - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/bazel/configure-remote@e4bf37af223483ce00f9316d227fd62cd744dc4b + with: + google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Setting up Angular snapshot builds # Angular snapshots must be set up first so that the yarn install properly # updates the yarn.lock as expected with the changes @@ -71,7 +75,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8a438a3bdc519880d78b5ac92b62bfe688deb058 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@e4bf37af223483ce00f9316d227fd62cd744dc4b with: cache-node-modules: true # See: https://github.com/puppeteer/puppeteer/pull/13196 and diff --git a/.husky/commit-msg b/.husky/commit-msg index 5de69ce0b147..b286f08d97f4 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,6 +1,2 @@ -#!/bin/sh -# commit-msg git hook, see https://typicode.github.io/husky/#/ for more on how husky works. -. "$(dirname $0)/_/husky.sh" - # Ahead of creating the commit, validate the commit message. yarn -s ng-dev commit-message pre-commit-validate --file $1; diff --git a/.husky/pre-commit b/.husky/pre-commit index 7c7220b3d4de..8cfccc94adb8 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,6 +1,3 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - # Allow for the formatting command to fail without exiting the script. set +e @@ -8,4 +5,4 @@ yarn -s ng-dev format staged 2>/dev/null if [ $? -ne 0 ]; then echo "WARNING: failed to run file formatting (ng-dev format staged)" -fi \ No newline at end of file +fi diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg index fdf5c9b17f59..65952642a6ef 100755 --- a/.husky/prepare-commit-msg +++ b/.husky/prepare-commit-msg @@ -1,6 +1,2 @@ -#!/bin/sh -# prepare-commit-msg git hook, see https://typicode.github.io/husky/#/ for more on how husky works. -. "$(dirname $0)/_/husky.sh" - # When a commit is started, restore the previous commit message draft if it exists. yarn -s ng-dev commit-message restore-commit-message-draft $1 $2; diff --git a/.ng-dev/google-sync-config.json b/.ng-dev/google-sync-config.json index 04974862c102..7bd62f2ffcb8 100644 --- a/.ng-dev/google-sync-config.json +++ b/.ng-dev/google-sync-config.json @@ -26,6 +26,7 @@ "src/cdk/schematics/**/*", "src/material/schematics/**/*", "src/material/schematics/ng-generate/theme-color/**/*.bazel", + "src/material/schematics/ng-generate/theme-color/index_bundled.d.ts", "src/google-maps/schematics/**/*", "src/cdk/testing/testbed/zone-types.d.ts", "src/material/_theming.scss", diff --git a/.npmrc b/.npmrc index b8d41f41d029..7c7738880a15 100644 --- a/.npmrc +++ b/.npmrc @@ -5,3 +5,8 @@ engine-strict = false # projects using rules_js so that pnpm outside of Bazel lays out a node_modules tree similar to what # rules_js lays out under Bazel (without a hidden node_modules/.pnpm/node_modules) hoist=false + +# Avoid pnpm auto-installing peer dependencies. We want to be explicit about our versions used +# for peer dependencies, avoiding potential mismatches. In addition, it ensures we can continue +# to rely on peer dependency placeholders substituted via Bazel. +auto-install-peers=false diff --git a/.nvmrc b/.nvmrc index 1d975bef2460..7af24b7ddbde 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.0.0 +22.11.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 823b5a045eb6..3ba5ed733fa5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,78 @@ + +# 20.0.0-next.5 "chitin-enigma" (2025-04-02) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [f9973ee231](https://github.com/angular/components/commit/f9973ee231166e02bb176f5c6172f1d4a1e0bfef) | fix | **overlay:** use MutationObserver to detach overlay ([#30703](https://github.com/angular/components/pull/30703)) | +| [1372f52ae6](https://github.com/angular/components/commit/1372f52ae6774015b1a956aa1dbcde12d62eb42f) | perf | **drag-drop:** fix performance regression when destroying items ([#30751](https://github.com/angular/components/pull/30751)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [3daa360300](https://github.com/angular/components/commit/3daa360300a98e0c63db770f6812faa94eea1133) | feat | **core:** introduce custom token for controlling animations ([#30749](https://github.com/angular/components/pull/30749)) | +| [907815dc5c](https://github.com/angular/components/commit/907815dc5cecc2b56d54fd9c525b1e37fb9002be) | fix | **checkbox:** hardcode token renames ([#30752](https://github.com/angular/components/pull/30752)) | +| [e9b015737c](https://github.com/angular/components/commit/e9b015737ca86eabd18e1ce2411dd4e5c8882dc4) | fix | **form-field:** move error aria-live to parent container ([#30678](https://github.com/angular/components/pull/30678)) | +| [ec538b598b](https://github.com/angular/components/commit/ec538b598bb7e4b5184d460de852b31523b99710) | fix | **form-field:** use ResizeObserver for label offset calculation ([#30702](https://github.com/angular/components/pull/30702)) | +| [2d86ad441e](https://github.com/angular/components/commit/2d86ad441eeb3ec5fac3e99d7c9081db356615b3) | fix | **slider:** fix clobbered token for hover/focus/pressed ([#30754](https://github.com/angular/components/pull/30754)) | +| [40d0ab4fc7](https://github.com/angular/components/commit/40d0ab4fc73f059cb5496c4c035d4dcebc08b8b0) | fix | **snack-bar:** rename snackbar token prefix ([#30750](https://github.com/angular/components/pull/30750)) | +| [387313fc41](https://github.com/angular/components/commit/387313fc4112399d05d2b677c9e5fcf7f2424e49) | fix | **tabs:** allow ID to be set on tab ([#30768](https://github.com/angular/components/pull/30768)) | +### cdk-experimental +| Commit | Type | Description | +| -- | -- | -- | +| [149fe6129c](https://github.com/angular/components/commit/149fe6129c9647b0d330ec47d901909f01f933a5) | fix | **popover-edit:** use MutationObserver to detect table rows ([#30713](https://github.com/angular/components/pull/30713)) | +| [4bf3591c77](https://github.com/angular/components/commit/4bf3591c77af15881a5d49b73492ddfa023d9833) | fix | **ui-patterns:** add modifier checks for regexps ([#30738](https://github.com/angular/components/pull/30738)) | +| [dd69023340](https://github.com/angular/components/commit/dd69023340987ccc0371abfed30603df6982e36f) | perf | **column-resize:** improve hover responsiveness of… ([#30708](https://github.com/angular/components/pull/30708)) | +### multiple +| Commit | Type | Description | +| -- | -- | -- | +| [590971359f](https://github.com/angular/components/commit/590971359f053f93e891d84d8544c6295d6d321e) | fix | remove backwards-compatibility code ([#30747](https://github.com/angular/components/pull/30747)) | + + + + +# 19.2.8 "sapphire-kraken" (2025-04-02) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [0ee159390f](https://github.com/angular/components/commit/0ee159390f7f40322187c1f08c3684a6382fc2b8) | perf | **drag-drop:** fix performance regression when destroying items ([#30751](https://github.com/angular/components/pull/30751)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [491fce2aa7](https://github.com/angular/components/commit/491fce2aa7aa9fc72cb95c043172a8f1a1ea2b1b) | fix | **form-field:** move error aria-live to parent container ([#30678](https://github.com/angular/components/pull/30678)) | +| [bdbf32af29](https://github.com/angular/components/commit/bdbf32af2980d517c55262d852439058dbc65b6a) | fix | **tabs:** allow ID to be set on tab ([#30768](https://github.com/angular/components/pull/30768)) | +### cdk-experimental +| Commit | Type | Description | +| -- | -- | -- | +| [bc99b420b2](https://github.com/angular/components/commit/bc99b420b22af93d5dcde34b7bf1ba567519a3bd) | perf | **column-resize:** improve hover responsiveness of… ([#30708](https://github.com/angular/components/pull/30708)) | + + + + +# 20.0.0-next.4 "bohrium-beans" (2025-03-26) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [985721c5d](https://github.com/angular/components/commit/985721c5d013f43ee5b779e1b87b2e5ec7eddf28) | fix | **menu:** not clearing aria-controls on context menu ([#30680](https://github.com/angular/components/pull/30680)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [3aecb3521](https://github.com/angular/components/commit/3aecb3521614d1bae40a5233d7fcc609fed0e632) | fix | **button:** tonal touch target token transgression ([#30688](https://github.com/angular/components/pull/30688)) | +| [2d7da0ac7](https://github.com/angular/components/commit/2d7da0ac706d6eb32439c256d9b3fa2e1d7c9225) | fix | **sort:** set cursor on entire clickable area ([#30696](https://github.com/angular/components/pull/30696)) | + + + + +# 19.2.7 "bohrium-banana" (2025-03-26) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [259bd2323](https://github.com/angular/components/commit/259bd2323d6172eb9382c90d604193193696b9b7) | fix | **menu:** not clearing aria-controls on context menu ([#30680](https://github.com/angular/components/pull/30680)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [3ba64d85c](https://github.com/angular/components/commit/3ba64d85cdb730e914d5c7492228c9f47135d77a) | fix | **sort:** set cursor on entire clickable area ([#30696](https://github.com/angular/components/pull/30696)) | + + + # 20.0.0-next.3 "iridium-irrigator" (2025-03-21) ### cdk diff --git a/WORKSPACE b/WORKSPACE index b5cd77f94fcb..b44ed4bf9167 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -76,16 +76,16 @@ rules_js_dependencies() load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") -NODE_VERSION = "22.0.0" +NODE_VERSION = "22.11.0" NODE_REPOSITORIES = { - "22.0.0-darwin_arm64": ("node-v22.0.0-darwin-arm64.tar.gz", "node-v22.0.0-darwin-arm64", "ea96d349cfaa67aa87ceeaa3e5b52c9167f7ac302fd8d1ff162d0785e9dc0785"), - "22.0.0-darwin_amd64": ("node-v22.0.0-darwin-x64.tar.gz", "node-v22.0.0-darwin-x64", "422a3887ff5418f0a4552d89cf99346ab8ab51bb5d384660baa88b8444d2c111"), - "22.0.0-linux_arm64": ("node-v22.0.0-linux-arm64.tar.xz", "node-v22.0.0-linux-arm64", "83711d29cbe46375bdffab5419f3d831892e24294169272f6c39edc364556241"), - "22.0.0-linux_ppc64le": ("node-v22.0.0-linux-ppc64le.tar.xz", "node-v22.0.0-linux-ppc64le", "2b3fb8707a79243bfb3131312b86716ddc3855bce21bb168095b6b916798e5e9"), - "22.0.0-linux_s390x": ("node-v22.0.0-linux-s390x.tar.xz", "node-v22.0.0-linux-s390x", "89a8efeeb9f94ce9ea251b8109e079c14919f4c0dc2cbc9f545ec47ef0886737"), - "22.0.0-linux_amd64": ("node-v22.0.0-linux-x64.tar.xz", "node-v22.0.0-linux-x64", "9122e50f2642afd5f6078cafd1f52ede60fc464284384f05c18a04d13d07ae5a"), - "22.0.0-windows_amd64": ("node-v22.0.0-win-x64.zip", "node-v22.0.0-win-x64", "32d639b47d4c0a651ff8f8d7d41a454168a3d4045be37985f9a810cf8cef6174"), + "22.11.0-darwin_arm64": ("node-v22.11.0-darwin-arm64.tar.gz", "node-v22.11.0-darwin-arm64", "2e89afe6f4e3aa6c7e21c560d8a0453d84807e97850bbb819b998531a22bdfde"), + "22.11.0-darwin_amd64": ("node-v22.11.0-darwin-x64.tar.gz", "node-v22.11.0-darwin-x64", "668d30b9512137b5f5baeef6c1bb4c46efff9a761ba990a034fb6b28b9da2465"), + "22.11.0-linux_arm64": ("node-v22.11.0-linux-arm64.tar.xz", "node-v22.11.0-linux-arm64", "6031d04b98f59ff0f7cb98566f65b115ecd893d3b7870821171708cdbaf7ae6e"), + "22.11.0-linux_ppc64le": ("node-v22.11.0-linux-ppc64le.tar.xz", "node-v22.11.0-linux-ppc64le", "d1d49d7d611b104b6d616e18ac439479d8296aa20e3741432de0e85f4735a81e"), + "22.11.0-linux_s390x": ("node-v22.11.0-linux-s390x.tar.xz", "node-v22.11.0-linux-s390x", "f474ed77d6b13d66d07589aee1c2b9175be4c1b165483e608ac1674643064a99"), + "22.11.0-linux_amd64": ("node-v22.11.0-linux-x64.tar.xz", "node-v22.11.0-linux-x64", "83bf07dd343002a26211cf1fcd46a9d9534219aad42ee02847816940bf610a72"), + "22.11.0-windows_amd64": ("node-v22.11.0-win-x64.zip", "node-v22.11.0-win-x64", "905373a059aecaf7f48c1ce10ffbd5334457ca00f678747f19db5ea7d256c236"), } nodejs_register_toolchains( @@ -112,9 +112,8 @@ yarn_install( "//:.yarn/releases/yarn-1.22.17.cjs", "//:.yarnrc", "//:tools/postinstall/apply-patches.js", - "//:tools/postinstall/patches/@angular+bazel+20.0.0-next.1.patch", + "//:tools/postinstall/patches/@angular+bazel+20.0.0-next.3.patch", "//:tools/postinstall/patches/@angular+build-tooling+0.0.0-1ebf18a3a60b182a3dbad12e9a149fd93af5c29b.patch", - "//:tools/postinstall/patches/@bazel+concatjs+5.8.1.patch", "//:tools/postinstall/patches/tsec+0.2.2.patch", ], # Currently disabled due to: @@ -168,15 +167,42 @@ npm_translate_lock( "@angular/animations": "node ../../@nginfra/angular-linking/index.mjs", "@angular/common": "node ../../@nginfra/angular-linking/index.mjs", "@angular/forms": "node ../../@nginfra/angular-linking/index.mjs", + "@angular/localize": "node ../../@nginfra/angular-linking/index.mjs", "@angular/platform-browser": "node ../../@nginfra/angular-linking/index.mjs", + "@angular/platform-server": "node ../../@nginfra/angular-linking/index.mjs", "@angular/router": "node ../../@nginfra/angular-linking/index.mjs", - "@angular/localize": "node ../../@nginfra/angular-linking/index.mjs", }, data = [ "//:package.json", + "//:patches/@angular__compiler-cli.patch", "//:pnpm-workspace.yaml", + "//integration:package.json", + "//src/cdk:package.json", + "//src/cdk-experimental:package.json", + "//src/components-examples:package.json", + "//src/dev-app:package.json", + "//src/e2e-app:package.json", + "//src/google-maps:package.json", + "//src/material:package.json", + "//src/material-date-fns-adapter:package.json", + "//src/material-experimental:package.json", + "//src/material-luxon-adapter:package.json", + "//src/material-moment-adapter:package.json", + "//src/universal-app:package.json", + "//src/youtube-player:package.json", ], npmrc = "//:.npmrc", + package_visibility = { + "@angular/cdk": ["//integration:__subpackages__"], + "@angular/cdk-experimental": ["//integration:__subpackages__"], + "@angular/material": ["//integration:__subpackages__"], + "@angular/material-experimental": ["//integration:__subpackages__"], + "@angular/google-maps": ["//integration:__subpackages__"], + "@angular/youtube-player": ["//integration:__subpackages__"], + "@angular/material-moment-adapter": ["//integration:__subpackages__"], + "@angular/material-date-fns-adapter": ["//integration:__subpackages__"], + "@angular/material-luxon-adapter": ["//integration:__subpackages__"], + }, pnpm_lock = "//:pnpm-lock.yaml", update_pnpm_lock = True, verify_node_modules_ignored = "//:.bazelignore", @@ -209,11 +235,22 @@ http_archive( url = "https://github.com/aspect-build/rules_rollup/releases/download/v2.0.0/rules_rollup-v2.0.0.tar.gz", ) +http_archive( + name = "aspect_rules_jasmine", + sha256 = "0d2f9c977842685895020cac721d8cc4f1b37aae15af46128cf619741dc61529", + strip_prefix = "rules_jasmine-2.0.0", + url = "https://github.com/aspect-build/rules_jasmine/releases/download/v2.0.0/rules_jasmine-v2.0.0.tar.gz", +) + +load("@aspect_rules_jasmine//jasmine:dependencies.bzl", "rules_jasmine_dependencies") + +rules_jasmine_dependencies() + load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") git_repository( name = "devinfra", - commit = "cc73dde52b557f831cc3b6e48daf8c3b542a33df", + commit = "e4bf37af223483ce00f9316d227fd62cd744dc4b", remote = "https://github.com/angular/dev-infra.git", ) @@ -227,14 +264,39 @@ setup_dependencies_2() git_repository( name = "rules_angular", - commit = "e10bf488aca18c159399f4c1163324a40f45a5dc", + commit = "60d0dbdf18224f5167da1a43f4de9c4cb717b593", remote = "https://github.com/devversion/rules_angular.git", ) -load("@rules_angular//setup:step_1.bzl", "step_1") +load("@rules_angular//setup:step_1.bzl", "rules_angular_step1") + +rules_angular_step1() + +load("@rules_angular//setup:step_2.bzl", "rules_angular_step2") -step_1() +rules_angular_step2() -load("@rules_angular//setup:step_2.bzl", "step_2") +load("@rules_angular//setup:step_3.bzl", "rules_angular_step3") -step_2() +rules_angular_step3( + angular_compiler_cli = "//:node_modules/@angular/compiler-cli", + typescript = "//:node_modules/typescript", +) + +http_archive( + name = "aspect_rules_esbuild", + sha256 = "550e33ddeb86a564b22b2c5d3f84748c6639b1b2b71fae66bf362c33392cbed8", + strip_prefix = "rules_esbuild-0.21.0", + url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.21.0/rules_esbuild-v0.21.0.tar.gz", +) + +load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies") + +rules_esbuild_dependencies() + +load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains") + +esbuild_register_toolchains( + name = "esbuild", + esbuild_version = LATEST_ESBUILD_VERSION, +) diff --git a/goldens/BUILD.bazel b/goldens/BUILD.bazel index 901cacb40520..73386e61fbda 100644 --- a/goldens/BUILD.bazel +++ b/goldens/BUILD.bazel @@ -1,7 +1,6 @@ -load("@devinfra//bazel/api-golden:index.bzl", "api_golden_test_npm_package") +load("@devinfra//bazel/api-golden:index_rjs.bzl", "api_golden_test_npm_package") exports_files([ - "size-test.yaml", "tsec-exemption.json", ]) @@ -10,29 +9,33 @@ api_golden_test_npm_package( data = glob(["cdk/**"]) + [ "//src/cdk:npm_package", ], - golden_dir = "angular_material/goldens/cdk", - npm_package = "angular_material/src/cdk/npm_package", + golden_dir = "goldens/cdk", + npm_package = "src/cdk/npm_package", ) api_golden_test_npm_package( name = "material_api", data = glob(["material/**"]) + ["//src/material:npm_package"], - golden_dir = "angular_material/goldens/material", - npm_package = "angular_material/src/material/npm_package", + golden_dir = "goldens/material", + npm_package = "src/material/npm_package", ) api_golden_test_npm_package( name = "google_maps_api", data = glob(["google-maps/**"]) + ["//src/google-maps:npm_package"], - golden_dir = "angular_material/goldens/google-maps", - npm_package = "angular_material/src/google-maps/npm_package", - types = ["@npm//@types/google.maps"], + golden_dir = "goldens/google-maps", + npm_package = "src/google-maps/npm_package", + types = { + "//:node_modules/@types/google.maps": "google.maps", + }, ) api_golden_test_npm_package( name = "youtube_player_api", data = glob(["youtube-player/**"]) + ["//src/youtube-player:npm_package"], - golden_dir = "angular_material/goldens/youtube-player", - npm_package = "angular_material/src/youtube-player/npm_package", - types = ["@npm//@types/youtube"], + golden_dir = "goldens/youtube-player", + npm_package = "src/youtube-player/npm_package", + types = { + "//:node_modules/@types/youtube": "youtube", + }, ) diff --git a/goldens/cdk/bidi/index.api.md b/goldens/cdk/bidi/index.api.md index 6245020b9454..5ca0f0661766 100644 --- a/goldens/cdk/bidi/index.api.md +++ b/goldens/cdk/bidi/index.api.md @@ -31,6 +31,8 @@ export class Dir implements Directionality, AfterContentInit, OnDestroy { _rawDir: string; get value(): Direction; // (undocumented) + readonly valueSignal: i0.WritableSignal; + // (undocumented) static ɵdir: i0.ɵɵDirectiveDeclaration; // (undocumented) static ɵfac: i0.ɵɵFactoryDeclaration; @@ -48,7 +50,8 @@ export class Directionality implements OnDestroy { readonly change: EventEmitter; // (undocumented) ngOnDestroy(): void; - readonly value: Direction; + get value(): Direction; + readonly valueSignal: i0.WritableSignal; // (undocumented) static ɵfac: i0.ɵɵFactoryDeclaration; // (undocumented) diff --git a/goldens/cdk/platform/index.api.md b/goldens/cdk/platform/index.api.md index 11fa92af5272..21144f237ded 100644 --- a/goldens/cdk/platform/index.api.md +++ b/goldens/cdk/platform/index.api.md @@ -5,10 +5,6 @@ ```ts import * as i0 from '@angular/core'; -import { Renderer2 } from '@angular/core'; - -// @public -export function _bindEventWithOptions(renderer: Renderer2, target: EventTarget, eventName: string, callback: (event: any) => boolean | void, options: _ListenerOptions): () => void; // @public export function _getEventTarget(event: Event): T | null; @@ -28,16 +24,6 @@ export function getSupportedInputTypes(): Set; // @public export function _isTestEnvironment(): boolean; -// @public -export interface _ListenerOptions { - // (undocumented) - capture?: boolean; - // (undocumented) - once?: boolean; - // (undocumented) - passive?: boolean; -} - // @public export function normalizePassiveListenerOptions(options: AddEventListenerOptions): AddEventListenerOptions | boolean; diff --git a/goldens/cdk/testing/private/index.api.md b/goldens/cdk/testing/private/index.api.md new file mode 100644 index 000000000000..4e853366f70f --- /dev/null +++ b/goldens/cdk/testing/private/index.api.md @@ -0,0 +1,76 @@ +## API Report File for "@angular/cdk_testing_private" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public +export function clearElement(element: HTMLInputElement | HTMLTextAreaElement): void; + +// @public +export function createFakeEvent(type: string, bubbles?: boolean, cancelable?: boolean, composed?: boolean): Event; + +// @public +export function createKeyboardEvent(type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys, code?: string): KeyboardEvent; + +// @public +export function createMouseEvent(type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, button?: number, modifiers?: ModifierKeys): MouseEvent; + +// @public +export function createPointerEvent(type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, options?: PointerEventInit): PointerEvent; + +// @public +export function createTouchEvent(type: string, pageX?: number, pageY?: number, clientX?: number, clientY?: number): UIEvent; + +// @public +export function dedent(strings: TemplateStringsArray, ...values: any[]): string; + +// @public +function dispatchEvent_2(node: Node | Window, event: T): T; +export { dispatchEvent_2 as dispatchEvent } + +// @public +export function dispatchFakeEvent(node: Node | Window, type: string, bubbles?: boolean): Event; + +// @public +export function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys, code?: string): KeyboardEvent; + +// @public +export function dispatchMouseEvent(node: Node, type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, button?: number, modifiers?: ModifierKeys): MouseEvent; + +// @public +export function dispatchPointerEvent(node: Node, type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, options?: PointerEventInit): PointerEvent; + +// @public +export function dispatchTouchEvent(node: Node, type: string, pageX?: number, pageY?: number, clientX?: number, clientY?: number): UIEvent; + +// @public +export function isTextInput(element: Element): element is HTMLInputElement | HTMLTextAreaElement; + +// @public +export function patchElementFocus(element: HTMLElement): void; + +// @public +export function triggerBlur(element: HTMLElement): void; + +// @public +export function triggerFocus(element: HTMLElement): void; + +// @public +export function typeInElement(element: HTMLElement, ...keys: (string | { + keyCode?: number; + key?: string; +})[]): void; + +// @public +export function typeInElement(element: HTMLElement, modifiers: ModifierKeys, ...keys: (string | { + keyCode?: number; + key?: string; +})[]): void; + +// @public +export function wrappedErrorMessage(e: Error): RegExp; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/goldens/material/chips/index.api.md b/goldens/material/chips/index.api.md index a46a68404f9f..8e7323e3f684 100644 --- a/goldens/material/chips/index.api.md +++ b/goldens/material/chips/index.api.md @@ -165,6 +165,7 @@ export class MatChipGrid extends MatChipSet implements AfterContentInit, AfterVi protected _allowFocusEscape(): void; _blur(): void; readonly change: EventEmitter; + _change(): void; get chipBlurChanges(): Observable; protected _chipInput: MatChipTextControl; // (undocumented) diff --git a/goldens/material/core/index.api.md b/goldens/material/core/index.api.md index a94fe4237e4f..1d16f9ab5ec9 100644 --- a/goldens/material/core/index.api.md +++ b/goldens/material/core/index.api.md @@ -51,6 +51,11 @@ export class AnimationDurations { static EXITING: string; } +// @public +export interface AnimationsConfig { + animationsDisabled?: boolean; +} + // @public export function _animationsDisabled(): boolean; @@ -189,6 +194,9 @@ export type MatDateFormats = { }; }; +// @public +export const MATERIAL_ANIMATIONS: InjectionToken; + // @public @deprecated export const MATERIAL_SANITY_CHECKS: InjectionToken; diff --git a/goldens/material/datepicker/index.api.md b/goldens/material/datepicker/index.api.md index 019ec7298abc..aed65904949b 100644 --- a/goldens/material/datepicker/index.api.md +++ b/goldens/material/datepicker/index.api.md @@ -12,7 +12,6 @@ import { AfterViewInit } from '@angular/core'; import { ChangeDetectorRef } from '@angular/core'; import { ComponentType } from '@angular/cdk/portal'; import { ControlValueAccessor } from '@angular/forms'; -import { DateAdapter } from '@angular/material/core'; import { Directionality } from '@angular/cdk/bidi'; import { DoCheck } from '@angular/core'; import { ElementRef } from '@angular/core'; @@ -701,7 +700,7 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { _comparisonRangeStart: number | null; comparisonStart: D | null; // (undocumented) - _dateAdapter: DateAdapter_2; + _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; dateFilter: (date: D) => boolean; _dateSelected(event: MatCalendarUserEvent): void; @@ -759,7 +758,7 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { set activeDate(value: D); readonly activeDateChange: EventEmitter; // (undocumented) - _dateAdapter: DateAdapter_2; + _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; dateFilter: (date: D) => boolean; _focusActiveCell(): void; @@ -848,7 +847,7 @@ export class MatYearView implements AfterContentInit, OnDestroy { // (undocumented) readonly _changeDetectorRef: ChangeDetectorRef; // (undocumented) - _dateAdapter: DateAdapter_2; + _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; dateFilter: (date: D) => boolean; _focusActiveCell(): void; diff --git a/goldens/material/form-field/index.api.md b/goldens/material/form-field/index.api.md index d61325f57c02..a9ef59692e37 100644 --- a/goldens/material/form-field/index.api.md +++ b/goldens/material/form-field/index.api.md @@ -80,8 +80,8 @@ export class MatFormField implements FloatingLabelParent, AfterContentInit, Afte // (undocumented) _formFieldControl: MatFormFieldControl_2; getConnectedOverlayOrigin(): ElementRef; - _getDisplayedMessages(): 'error' | 'hint'; getLabelId: i0.Signal; + _getSubscriptMessageType(): 'error' | 'hint'; _handleLabelResized(): void; // (undocumented) _hasFloatingLabel: i0.Signal; diff --git a/goldens/material/input/index.api.md b/goldens/material/input/index.api.md index da333f3049a1..ebebf92f5181 100644 --- a/goldens/material/input/index.api.md +++ b/goldens/material/input/index.api.md @@ -73,8 +73,8 @@ export class MatFormField implements FloatingLabelParent, AfterContentInit, Afte // (undocumented) _formFieldControl: MatFormFieldControl; getConnectedOverlayOrigin(): ElementRef; - _getDisplayedMessages(): 'error' | 'hint'; getLabelId: i0.Signal; + _getSubscriptMessageType(): 'error' | 'hint'; _handleLabelResized(): void; // (undocumented) _hasFloatingLabel: i0.Signal; diff --git a/goldens/material/list/index.api.md b/goldens/material/list/index.api.md index 99a0d258fd64..0939c4bf4fc6 100644 --- a/goldens/material/list/index.api.md +++ b/goldens/material/list/index.api.md @@ -11,10 +11,8 @@ import { ElementRef } from '@angular/core'; import { EventEmitter } from '@angular/core'; import * as i0 from '@angular/core'; import * as i1 from '@angular/cdk/bidi'; -import * as i12 from '@angular/material/divider'; import * as i2 from '@angular/cdk/observers'; import { InjectionToken } from '@angular/core'; -import { MatDivider } from '@angular/material/divider'; import { NgZone } from '@angular/core'; import { OnChanges } from '@angular/core'; import { OnDestroy } from '@angular/core'; @@ -45,7 +43,17 @@ export class MatActionList extends MatListBase { static ɵfac: i0.ɵɵFactoryDeclaration; } -export { MatDivider } +// @public (undocumented) +export class MatDivider { + get inset(): boolean; + set inset(value: BooleanInput); + get vertical(): boolean; + set vertical(value: BooleanInput); + // (undocumented) + static ɵcmp: i0.ɵɵComponentDeclaration; + // (undocumented) + static ɵfac: i0.ɵɵFactoryDeclaration; +} // @public (undocumented) export class MatList extends MatListBase { @@ -151,7 +159,7 @@ export class MatListModule { // (undocumented) static ɵinj: i0.ɵɵInjectorDeclaration; // (undocumented) - static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; } // @public (undocumented) diff --git a/goldens/material/select/index.api.md b/goldens/material/select/index.api.md index 2dfac47d5448..7a4abc9a00da 100644 --- a/goldens/material/select/index.api.md +++ b/goldens/material/select/index.api.md @@ -96,8 +96,8 @@ export class MatFormField implements FloatingLabelParent, AfterContentInit, Afte // (undocumented) _formFieldControl: MatFormFieldControl_2; getConnectedOverlayOrigin(): ElementRef; - _getDisplayedMessages(): 'error' | 'hint'; getLabelId: i0.Signal; + _getSubscriptMessageType(): 'error' | 'hint'; _handleLabelResized(): void; // (undocumented) _hasFloatingLabel: i0.Signal; diff --git a/goldens/material/tabs/index.api.md b/goldens/material/tabs/index.api.md index 512b07eb4b8a..abe762fdddd8 100644 --- a/goldens/material/tabs/index.api.md +++ b/goldens/material/tabs/index.api.md @@ -152,6 +152,7 @@ export class MatTab implements OnInit, OnChanges, OnDestroy { _closestTabGroup: any; get content(): TemplatePortal | null; disabled: boolean; + id: string | null; _implicitContent: TemplateRef; isActive: boolean; labelClass: string | string[]; @@ -170,7 +171,7 @@ export class MatTab implements OnInit, OnChanges, OnDestroy { set templateLabel(value: MatTabLabel); textLabel: string; // (undocumented) - static ɵcmp: i0.ɵɵComponentDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; // (undocumented) static ɵfac: i0.ɵɵFactoryDeclaration; } @@ -267,9 +268,9 @@ export class MatTabGroup implements AfterViewInit, AfterContentInit, AfterConten // (undocumented) _focusChanged(index: number): void; focusTab(index: number): void; - _getTabContentId(i: number): string; + _getTabContentId(index: number): string; _getTabIndex(index: number): number; - _getTabLabelId(i: number): string; + _getTabLabelId(tab: MatTab, index: number): string; _handleClick(tab: MatTab, tabHeader: MatTabGroupBaseHeader, index: number): void; headerPosition: MatTabHeaderPosition; protected _isServer: boolean; diff --git a/goldens/size-test.yaml b/goldens/size-test.yaml deleted file mode 100644 index d3b577de0535..000000000000 --- a/goldens/size-test.yaml +++ /dev/null @@ -1,15 +0,0 @@ -cdk/drag-drop/all-directives: 179236 -cdk/drag-drop/basic: 175100 -material/autocomplete/without-optgroup: 240989 -material/button-toggle/standalone: 159023 -material/chips/basic: 220624 -material/datepicker/range-picker/without-form-field: 389083 -material/expansion/without-accordion: 157841 -material/form-field/advanced: 237040 -material/form-field/basic: 235120 -material/list/nav-list: 162378 -material/menu/without-lazy-content: 236952 -material/radio/without-group: 160056 -material/select/basic: 288687 -material/tabs/advanced: 230594 -material/tabs/basic: 230451 diff --git a/integration/BUILD.bazel b/integration/BUILD.bazel index 92b7d1bc1357..7a937e536058 100644 --- a/integration/BUILD.bazel +++ b/integration/BUILD.bazel @@ -1,10 +1,5 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("@npm2//:defs.bzl", "npm_link_all_packages") package(default_visibility = ["//visibility:public"]) -# JavaScript library that exposes a script for retrieving all NPM packages -# available in the runfiles of an action. -js_library( - name = "npm-packages-from-runfiles", - srcs = ["npm-packages-from-runfiles.mjs"], -) +npm_link_all_packages() diff --git a/integration/harness-e2e-cli/package.json b/integration/harness-e2e-cli/package.json index 5668d7aa73ad..d1549310e98c 100644 --- a/integration/harness-e2e-cli/package.json +++ b/integration/harness-e2e-cli/package.json @@ -21,7 +21,6 @@ "@angular/forms": "file:../../node_modules/@angular/forms", "@angular/material": "file:../../dist/releases/material", "@angular/platform-browser": "file:../../node_modules/@angular/platform-browser", - "@angular/platform-browser-dynamic": "file:../../node_modules/@angular/platform-browser-dynamic", "@angular/router": "file:../../node_modules/@angular/router", "rxjs": "^7.5.5", "tslib": "^2.3.0", diff --git a/integration/harness-e2e-cli/src/main.ts b/integration/harness-e2e-cli/src/main.ts index 947bb036a501..5276a5b7b744 100644 --- a/integration/harness-e2e-cli/src/main.ts +++ b/integration/harness-e2e-cli/src/main.ts @@ -1,5 +1,5 @@ import {enableProdMode} from '@angular/core'; -import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; +import {platformBrowser} from '@angular/platform-browser'; import {AppModule} from './app/app.module'; import {environment} from './environments/environment'; @@ -8,6 +8,6 @@ if (environment.production) { enableProdMode(); } -platformBrowserDynamic() +platformBrowser() .bootstrapModule(AppModule) .catch(err => console.error(err)); diff --git a/integration/harness-e2e-cli/src/test.ts b/integration/harness-e2e-cli/src/test.ts index b5bdf422bc79..96df71d96f12 100644 --- a/integration/harness-e2e-cli/src/test.ts +++ b/integration/harness-e2e-cli/src/test.ts @@ -2,10 +2,7 @@ import 'zone.js/testing'; import {getTestBed} from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import {BrowserTestingModule, platformBrowserTesting} from '@angular/platform-browser/testing'; declare const require: { context( @@ -19,7 +16,7 @@ declare const require: { }; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); diff --git a/integration/harness-e2e-cli/yarn.lock b/integration/harness-e2e-cli/yarn.lock index 561aacae41d8..461744a0efab 100644 --- a/integration/harness-e2e-cli/yarn.lock +++ b/integration/harness-e2e-cli/yarn.lock @@ -10,41 +10,41 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@angular-devkit/architect@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.0.tgz#314d4a145b8734eb540db22f50663266c9be9e01" - integrity sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA== +"@angular-devkit/architect@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.2.tgz#6ba015657f979a48fa01212b2dedb9878e664344" + integrity sha512-h/6VqShV5ayUEdSMdQdYx4/bAil38V/xVDXvgiTWhvdyrwGeMBgvfhpL51/rj5ye4RH2Amy9KFbQ3HQh6xQqEw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" rxjs "7.8.2" "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/build-webpack" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular/build" "20.0.0-next.0" - "@babel/core" "7.26.9" - "@babel/generator" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/build-webpack" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular/build" "20.0.0-next.2" + "@babel/core" "7.26.10" + "@babel/generator" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-transform-async-generator-functions" "7.26.8" "@babel/plugin-transform-async-to-generator" "7.25.9" - "@babel/plugin-transform-runtime" "7.26.9" + "@babel/plugin-transform-runtime" "7.26.10" "@babel/preset-env" "7.26.9" - "@babel/runtime" "7.26.9" + "@babel/runtime" "7.26.10" "@discoveryjs/json-ext" "0.6.3" - "@ngtools/webpack" "20.0.0-next.0" + "@ngtools/webpack" "20.0.0-next.2" "@vitejs/plugin-basic-ssl" "2.0.0" ansi-colors "4.1.3" - autoprefixer "10.4.20" + autoprefixer "10.4.21" babel-loader "10.0.0" browserslist "^4.21.5" copy-webpack-plugin "13.0.0" css-loader "7.1.2" - esbuild-wasm "0.25.0" + esbuild-wasm "0.25.1" fast-glob "3.3.3" http-proxy-middleware "3.0.3" istanbul-lib-instrument "6.0.3" @@ -58,12 +58,12 @@ open "10.1.0" ora "5.4.1" picomatch "4.0.2" - piscina "4.8.0" + piscina "4.9.2" postcss "8.5.3" postcss-loader "8.1.1" resolve-url-loader "5.0.0" rxjs "7.8.2" - sass "1.85.1" + sass "1.86.0" sass-loader "16.0.5" semver "7.7.1" source-map-loader "5.0.0" @@ -77,20 +77,20 @@ webpack-merge "6.0.1" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.25.0" + esbuild "0.25.1" -"@angular-devkit/build-webpack@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.0.tgz#9604053b64b55aaaa87edee8c3175fb03e6cdcc5" - integrity sha512-OxE7F81bi4raByPP7ac3XpxrWqoMFKWAvVsspdckDsnkqIvtcp8b6XNLw70MNo0ZNUkVpyyEyetp3CyKajZVqQ== +"@angular-devkit/build-webpack@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.2.tgz#d2378f92ab4988b10fe98b209180ce3e2390aee6" + integrity sha512-WW0j2MQ9/YCdQXat6jjar9ORTlNFV6VIgnMkMSFVZm5Utdp+cUuD+bkwz2ysxxb4Y3F/HUt8LhlUEoAM1yQYmQ== dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" + "@angular-devkit/architect" "0.2000.0-next.2" rxjs "7.8.2" -"@angular-devkit/core@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.0.tgz#06fb808283fe6af1e7dbd9a2e4ad72c5294f1f42" - integrity sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw== +"@angular-devkit/core@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.2.tgz#5bc8dd91a1b21b7803d958419a4c548b74701a62" + integrity sha512-AX5GQDHoVmmOfIH1vl9gRM4lURbmC2xI/JtYb+Q/lAbLlGc3E4wk0LHCQKBTCAM2/0zRreSTgrZBRxBGM5UgNw== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -99,52 +99,53 @@ rxjs "7.8.2" source-map "0.7.4" -"@angular-devkit/schematics@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.0.tgz#5bdfeacb1f48f61d4ee293a4abaa77547f6071e6" - integrity sha512-73NyW0AI+dx3yvstZcoaDlzUsk6MJ1h65Pej0qtXnmkhcXfcI2OJzyBSZ7Vjqz0pwqqoq2vlwx9OvZ4zdKTmJw== +"@angular-devkit/schematics@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.2.tgz#9979f875a80a8803e1769223b0696f73a497880f" + integrity sha512-HcOvEVcEzEcUxe4VRxc5m5TJuczXZJ0qNdu9DkbRKUfuT7Y1y2bgDaiSrr9/4r08GilZ9pbUOyyvXUsoyXo3aw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" rxjs "7.8.2" "@angular/animations@file:../../node_modules/@angular/animations": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" -"@angular/build@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.0.tgz#d4cc3c12d3ca5d1244271e9e7db371060e34c6f7" - integrity sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA== +"@angular/build@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.2.tgz#0aaae436b3cada18d98feb9c2f29342665cb2804" + integrity sha512-PNSB1e+Q08onVSiIJmQg7KtL4+pVquwmAcDgnpmm0a+C8GhVdgtV4yzlDEe6LX78hdxWVSdgYpSyTzyA8tcMsQ== dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@babel/core" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@babel/core" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-syntax-import-attributes" "7.26.0" - "@inquirer/confirm" "5.1.6" + "@inquirer/confirm" "5.1.8" "@vitejs/plugin-basic-ssl" "2.0.0" beasties "0.2.0" browserslist "^4.23.0" - esbuild "0.25.0" + esbuild "0.25.1" https-proxy-agent "7.0.6" istanbul-lib-instrument "6.0.3" + jsonc-parser "3.3.1" listr2 "8.2.5" magic-string "0.30.17" mrmime "2.0.1" parse5-html-rewriting-stream "7.0.0" picomatch "4.0.2" - piscina "4.8.0" - rollup "4.34.9" - sass "1.85.1" + piscina "4.9.2" + rollup "4.36.0" + sass "1.86.0" semver "7.7.1" source-map-support "0.5.21" tinyglobby "0.2.12" - vite "6.2.0" + vite "6.2.2" watchpack "2.4.2" optionalDependencies: lmdb "3.2.6" @@ -157,14 +158,14 @@ parse5 "^7.1.2" "@angular/cli@file:../../node_modules/@angular/cli": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" - "@inquirer/prompts" "7.3.2" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" + "@inquirer/prompts" "7.4.0" "@listr2/prompt-adapter-inquirer" "2.0.18" - "@schematics/angular" "20.0.0-next.0" + "@schematics/angular" "20.0.0-next.2" "@yarnpkg/lockfile" "1.1.0" ini "5.0.0" jsonc-parser "3.3.1" @@ -178,14 +179,14 @@ yargs "17.7.2" "@angular/common@file:../../node_modules/@angular/common": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: - "@babel/core" "7.26.9" + "@babel/core" "7.26.10" "@jridgewell/sourcemap-codec" "^1.4.14" chokidar "^4.0.0" convert-source-map "^1.5.1" @@ -195,17 +196,17 @@ yargs "^17.2.1" "@angular/compiler@file:../../node_modules/@angular/compiler": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/core@file:../../node_modules/@angular/core": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/forms@file:../../node_modules/@angular/forms": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -214,18 +215,13 @@ dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic": - version "20.0.0-next.1" - dependencies: - tslib "^2.3.0" - "@angular/platform-browser@file:../../node_modules/@angular/platform-browser": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/router@file:../../node_modules/@angular/router": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -243,7 +239,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== -"@babel/core@7.26.9", "@babel/core@^7.23.9", "@babel/core@^7.7.5": +"@babel/core@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/core@^7.23.9", "@babel/core@^7.7.5": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.9.tgz#71838542a4b1e49dfed353d7acbc6eb89f4a76f2" integrity sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw== @@ -264,7 +281,29 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.26.9", "@babel/generator@^7.26.9": +"@babel/generator@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7" + integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang== + dependencies: + "@babel/parser" "^7.26.10" + "@babel/types" "^7.26.10" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.9.tgz#75a9482ad3d0cc7188a537aa4910bc59db67cbca" integrity sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg== @@ -315,7 +354,7 @@ regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": +"@babel/helper-define-polyfill-provider@^0.6.3": version "0.6.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== @@ -420,6 +459,14 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/helpers@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.9.tgz#28f3fb45252fc88ef2dc547c8a911c255fc9fef6" @@ -435,6 +482,13 @@ dependencies: "@babel/types" "^7.26.9" +"@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" @@ -821,15 +875,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-runtime@7.26.9": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz#ea8be19ef134668e98f7b54daf7c4f853859dc44" - integrity sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ== +"@babel/plugin-transform-runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" + integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/helper-plugin-utils" "^7.26.5" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" @@ -984,7 +1038,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@7.26.9", "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": +"@babel/runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" + integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433" integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== @@ -1000,6 +1061,15 @@ "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" +"@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.9.tgz#4398f2394ba66d05d988b2ad13c219a2c857461a" @@ -1013,6 +1083,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.9", "@babel/types@^7.4.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce" @@ -1021,6 +1104,14 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@babel/types@^7.26.10", "@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1043,126 +1134,251 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== +"@esbuild/aix-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d" + integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ== + "@esbuild/android-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== +"@esbuild/android-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d" + integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA== + "@esbuild/android-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== +"@esbuild/android-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c" + integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q== + "@esbuild/android-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== +"@esbuild/android-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed" + integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw== + "@esbuild/darwin-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== +"@esbuild/darwin-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591" + integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ== + "@esbuild/darwin-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== +"@esbuild/darwin-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98" + integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA== + "@esbuild/freebsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== +"@esbuild/freebsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e" + integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A== + "@esbuild/freebsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== +"@esbuild/freebsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde" + integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww== + "@esbuild/linux-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== +"@esbuild/linux-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498" + integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ== + "@esbuild/linux-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== +"@esbuild/linux-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a" + integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ== + "@esbuild/linux-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== +"@esbuild/linux-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754" + integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ== + "@esbuild/linux-loong64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== +"@esbuild/linux-loong64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c" + integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg== + "@esbuild/linux-mips64el@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== +"@esbuild/linux-mips64el@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57" + integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg== + "@esbuild/linux-ppc64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== +"@esbuild/linux-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589" + integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg== + "@esbuild/linux-riscv64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== +"@esbuild/linux-riscv64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8" + integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ== + "@esbuild/linux-s390x@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== +"@esbuild/linux-s390x@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa" + integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ== + "@esbuild/linux-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== +"@esbuild/linux-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954" + integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA== + "@esbuild/netbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== +"@esbuild/netbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29" + integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g== + "@esbuild/netbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== +"@esbuild/netbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0" + integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA== + "@esbuild/openbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== +"@esbuild/openbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217" + integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg== + "@esbuild/openbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== +"@esbuild/openbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de" + integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw== + "@esbuild/sunos-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== +"@esbuild/sunos-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27" + integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg== + "@esbuild/win32-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== +"@esbuild/win32-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582" + integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ== + "@esbuild/win32-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== +"@esbuild/win32-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb" + integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A== + "@esbuild/win32-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== +"@esbuild/win32-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz#7d79922cb2d88f9048f06393dbf62d2e4accb584" + integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg== + "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -1175,32 +1391,32 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@inquirer/checkbox@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.2.tgz#a12079f6aff68253392a1955d1a202eb9ac2e207" - integrity sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ== +"@inquirer/checkbox@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.4.tgz#30c243015670126ac95d9b94cb37f631d5ad3f88" + integrity sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" -"@inquirer/confirm@5.1.6", "@inquirer/confirm@^5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.6.tgz#e5a959676716860c26560b33997b38bd65bf96ad" - integrity sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw== +"@inquirer/confirm@5.1.8", "@inquirer/confirm@^5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.8.tgz#476af2476cd4867905dcabfca8598da4dd65e923" + integrity sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/core@^10.1.7": - version "10.1.7" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.7.tgz#04260b59e0343e86f76da0a4e1fbe4975aca03ca" - integrity sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA== +"@inquirer/core@^10.1.9": + version "10.1.9" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.9.tgz#9ab672a2d9ca60c5d45c7fa9b63e4fe9e038a02e" + integrity sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw== dependencies: - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" cli-width "^4.1.0" mute-stream "^2.0.0" @@ -1208,97 +1424,97 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.2" -"@inquirer/editor@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.7.tgz#61cb58486b125a9cbfc88a9424bf1681bb7dbd2d" - integrity sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA== +"@inquirer/editor@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.9.tgz#4ff0c69b3940428d4549b719803655d7ae2cf2d6" + integrity sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" external-editor "^3.1.0" -"@inquirer/expand@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.9.tgz#935947192dad0d07a537664ba6a527b9ced44be2" - integrity sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig== +"@inquirer/expand@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.11.tgz#d898b2d028def42064eee15f34e2c0bdc4a1ad2c" + integrity sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.10.tgz#e3676a51c9c51aaabcd6ba18a28e82b98417db37" - integrity sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw== +"@inquirer/figures@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.11.tgz#4744e6db95288fea1dead779554859710a959a21" + integrity sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw== -"@inquirer/input@^4.1.6": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.6.tgz#329700fd5a2d2f37be63768b09afd0a44edf3c67" - integrity sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ== +"@inquirer/input@^4.1.8": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.8.tgz#8e637f1163904d951762abab4584682daf484a91" + integrity sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/number@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.9.tgz#23dae9e31de368e18c4ec2543a9f006e4bb4a98d" - integrity sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w== +"@inquirer/number@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.11.tgz#b42b7b24e9e1916d26bbdc7c368852fdb626fa9a" + integrity sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/password@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.9.tgz#1a7d14a14bd2e54294d7fa5cc9fa6da99315149c" - integrity sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ== +"@inquirer/password@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.11.tgz#f23a632fb9a18c7a7ce1f2ac36d94e8aa0b7229e" + integrity sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" -"@inquirer/prompts@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.3.2.tgz#ad0879eb3bc783c19b78c420e5eeb18a09fc9b47" - integrity sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ== - dependencies: - "@inquirer/checkbox" "^4.1.2" - "@inquirer/confirm" "^5.1.6" - "@inquirer/editor" "^4.2.7" - "@inquirer/expand" "^4.0.9" - "@inquirer/input" "^4.1.6" - "@inquirer/number" "^3.0.9" - "@inquirer/password" "^4.0.9" - "@inquirer/rawlist" "^4.0.9" - "@inquirer/search" "^3.0.9" - "@inquirer/select" "^4.0.9" - -"@inquirer/rawlist@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.9.tgz#c5f8253c87ad48713e0e8b34274fdd1aa8b08d2c" - integrity sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A== - dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" +"@inquirer/prompts@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.4.0.tgz#bd9be38372be8db75afb04776eb0cf096ae9814b" + integrity sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w== + dependencies: + "@inquirer/checkbox" "^4.1.4" + "@inquirer/confirm" "^5.1.8" + "@inquirer/editor" "^4.2.9" + "@inquirer/expand" "^4.0.11" + "@inquirer/input" "^4.1.8" + "@inquirer/number" "^3.0.11" + "@inquirer/password" "^4.0.11" + "@inquirer/rawlist" "^4.0.11" + "@inquirer/search" "^3.0.11" + "@inquirer/select" "^4.1.0" + +"@inquirer/rawlist@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.11.tgz#29d74eea2607cbb3d80eac7fca0011d51c74c46d" + integrity sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg== + dependencies: + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/search@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.9.tgz#00848c93ce86dcd24989a72dabfd8aeb34d2829b" - integrity sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA== +"@inquirer/search@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.11.tgz#660b181516acc306cf21dbc1d3d49f662cb7d917" + integrity sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/select@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.9.tgz#28a4c7b9a406798a9ea365d67dbad5e427c3febe" - integrity sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg== +"@inquirer/select@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.1.0.tgz#e99f483cb004c0247ced597f2c6015f084223dfb" + integrity sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" @@ -1309,10 +1525,10 @@ dependencies: mute-stream "^1.0.0" -"@inquirer/type@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.4.tgz#fa5f9e91a0abf3c9e93d3e1990ecb891d8195cf2" - integrity sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA== +"@inquirer/type@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.5.tgz#fe00207e57d5f040e5b18e809c8e7abc3a2ade3a" + integrity sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1580,10 +1796,10 @@ "@napi-rs/nice-win32-ia32-msvc" "1.0.1" "@napi-rs/nice-win32-x64-msvc" "1.0.1" -"@ngtools/webpack@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.0.tgz#e96f9830e5a5ac8e2a6a67d53b839ce755fe92b1" - integrity sha512-dOm+V836ujgyrpbrqINwyYsTvNb/N+dJRcAaof1iS+gzXQZNpgOC2FadzNu5MUvdRk5khNrvkoNoFD3OmszNjQ== +"@ngtools/webpack@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.2.tgz#b93d565874ec3a688e0d27c8b67dd29109e3d985" + integrity sha512-Edr7kfYosxoHKpvABk1A28S2jlJQlz/7vf6E2VOK74d0sIbT+h6CgQulRlNOgi5jyH3qOldEgDm3iE+S5KMXxA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1787,103 +2003,198 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz#661a45a4709c70e59e596ec78daa9cb8b8d27604" integrity sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA== +"@rollup/rollup-android-arm-eabi@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz#6229c36cddc172c468f53107f2b7aebe2585609b" + integrity sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w== + "@rollup/rollup-android-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz#128fe8dd510d880cf98b4cb6c7add326815a0c4b" integrity sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg== +"@rollup/rollup-android-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz#d38163692d0729bd64a026c13749ecac06f847e8" + integrity sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg== + "@rollup/rollup-darwin-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz#363467bc49fd0b1e17075798ac8e9ad1e1e29535" integrity sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ== +"@rollup/rollup-darwin-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz#82601b8ff81f3dbaef28017aa3d0e9709edc99c0" + integrity sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw== + "@rollup/rollup-darwin-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz#c2fe3d85fffe47f0ed0f076b3563ada22c8af19c" integrity sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q== +"@rollup/rollup-darwin-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz#0e961354fb2bf26d691810ca61dc861d9a1e94b2" + integrity sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA== + "@rollup/rollup-freebsd-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz#d95bd8f6eaaf829781144fc8bd2d5d71d9f6a9f5" integrity sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw== +"@rollup/rollup-freebsd-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz#6aee296cd6b8c39158d377c89b7e0cd0851dd7c7" + integrity sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg== + "@rollup/rollup-freebsd-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz#c3576c6011656e4966ded29f051edec636b44564" integrity sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g== +"@rollup/rollup-freebsd-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz#432e49d93942225ac1b4d98254a6fb6ca0afcd17" + integrity sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ== + "@rollup/rollup-linux-arm-gnueabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz#48c87d0dee4f8dc9591a416717f91b4a89d77e3d" integrity sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg== +"@rollup/rollup-linux-arm-gnueabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz#a66910c6c63b46d45f239528ad5509097f8df885" + integrity sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg== + "@rollup/rollup-linux-arm-musleabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz#f4c4e7c03a7767f2e5aa9d0c5cfbf5c0f59f2d41" integrity sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA== +"@rollup/rollup-linux-arm-musleabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz#1cfadc70d44501b0a58615a460cf1b6ec8cfddf3" + integrity sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg== + "@rollup/rollup-linux-arm64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz#1015c9d07a99005025d13b8622b7600029d0b52f" integrity sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw== +"@rollup/rollup-linux-arm64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz#d32e42b25216472dfdc5cb7df6a37667766d3855" + integrity sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A== + "@rollup/rollup-linux-arm64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz#8f895eb5577748fc75af21beae32439626e0a14c" integrity sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A== +"@rollup/rollup-linux-arm64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz#d742917d61880941be26ff8d3352d935139188b9" + integrity sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw== + "@rollup/rollup-linux-loongarch64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz#c9cd5dbbdc6b3ca4dbeeb0337498cf31949004a0" integrity sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg== +"@rollup/rollup-linux-loongarch64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz#9ad12d1a5d3abf4ecb90fbe1a49249608cee8cbb" + integrity sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg== + "@rollup/rollup-linux-powerpc64le-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz#7ebb5b4441faa17843a210f7d0583a20c93b40e4" integrity sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA== +"@rollup/rollup-linux-powerpc64le-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz#c3ca6f5ce4a8b785dd450113660d9529a75fdf2a" + integrity sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg== + "@rollup/rollup-linux-riscv64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz#10f5d7349fbd2fe78f9e36ecc90aab3154435c8d" integrity sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg== +"@rollup/rollup-linux-riscv64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz#05eb5e71db5b5b1d1a3428265a63c5f6f8a1e4b8" + integrity sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA== + "@rollup/rollup-linux-s390x-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz#196347d2fa20593ab09d0b7e2589fb69bdf742c6" integrity sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ== +"@rollup/rollup-linux-s390x-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz#6fa895f181fa6804bc6ca27c0e9a6823355436dd" + integrity sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag== + "@rollup/rollup-linux-x64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz#7193cbd8d128212b8acda37e01b39d9e96259ef8" integrity sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A== +"@rollup/rollup-linux-x64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz#d2e69f7598c71f03287b763fdbefce4163f07419" + integrity sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ== + "@rollup/rollup-linux-x64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz#29a6867278ca0420b891574cfab98ecad70c59d1" integrity sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA== +"@rollup/rollup-linux-x64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz#9eb0075deaabf5d88a9dc8b61bd7bd122ac64ef9" + integrity sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ== + "@rollup/rollup-win32-arm64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz#89427dcac0c8e3a6d32b13a03a296a275d0de9a9" integrity sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q== +"@rollup/rollup-win32-arm64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz#bfda7178ed8cb8fa8786474a02eae9fc8649a74d" + integrity sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A== + "@rollup/rollup-win32-ia32-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz#ecb9711ba2b6d2bf6ee51265abe057ab90913deb" integrity sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w== +"@rollup/rollup-win32-ia32-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz#8e12739b9c43de8f0690b280c676af3de571cee0" + integrity sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ== + "@rollup/rollup-win32-x64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz#1973871850856ae72bc678aeb066ab952330e923" integrity sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw== -"@schematics/angular@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.0.tgz#7428dea5382978bc3b6f832d36021cba3e927e25" - integrity sha512-IMJA7/okzzlw/riADSzbMEvXXCWefz69AN6pE8lV+T05mc/dkxYTJ36tm32oYdHSSLnsPev7JuvnxdgTHJgqLA== +"@rollup/rollup-win32-x64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz#88b23fe29d28fa647030b36e912c1b5b50831b1d" + integrity sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw== + +"@schematics/angular@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.2.tgz#efd509bf2dd4e3c5b64a86229524da13883702af" + integrity sha512-du8Ft+vEGelxt4BNuSHD2PZx+9fNgZpVFtu/4N+unsjImdaK5dOstaRXJkRmBy+DUr5z6V633rN9/q1tE14VPg== dependencies: - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" jsonc-parser "3.3.1" "@sideway/address@^4.1.5": @@ -2468,16 +2779,16 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -autoprefixer@10.4.20: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== +autoprefixer@10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.1" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" axios@^0.25.0: @@ -2503,14 +2814,6 @@ babel-plugin-polyfill-corejs2@^0.4.10: "@babel/helper-define-polyfill-provider" "^0.6.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" - babel-plugin-polyfill-corejs3@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" @@ -2632,7 +2935,7 @@ braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.4: +browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.4: version "4.24.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -2706,11 +3009,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: +caniuse-lite@^1.0.30001688: version "1.0.30001702" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz#cde16fa8adaa066c04aec2967b6cde46354644c4" integrity sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA== +caniuse-lite@^1.0.30001702: + version "1.0.30001707" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41" + integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -2957,7 +3265,7 @@ copy-webpack-plugin@13.0.0: serialize-javascript "^6.0.2" tinyglobby "^0.2.12" -core-js-compat@^3.38.0, core-js-compat@^3.40.0: +core-js-compat@^3.40.0: version "3.41.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== @@ -3326,12 +3634,43 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" -esbuild-wasm@0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.0.tgz#56bbcc29d9eb5052ff1598248dc37dd958876e82" - integrity sha512-60iuWr6jdTVylmGXjpnqk3pCktUi5Rmjiv6EMza3h4X20BLtfL2BjUGs1+UCt2G9UK7jVGrJdUr5i1k0sL3wBg== +esbuild-wasm@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.1.tgz#fbe9ca6d7afbfe351389cad02c0fcd584cf40bcc" + integrity sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw== -esbuild@0.25.0, esbuild@^0.25.0: +esbuild@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f" + integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.1" + "@esbuild/android-arm" "0.25.1" + "@esbuild/android-arm64" "0.25.1" + "@esbuild/android-x64" "0.25.1" + "@esbuild/darwin-arm64" "0.25.1" + "@esbuild/darwin-x64" "0.25.1" + "@esbuild/freebsd-arm64" "0.25.1" + "@esbuild/freebsd-x64" "0.25.1" + "@esbuild/linux-arm" "0.25.1" + "@esbuild/linux-arm64" "0.25.1" + "@esbuild/linux-ia32" "0.25.1" + "@esbuild/linux-loong64" "0.25.1" + "@esbuild/linux-mips64el" "0.25.1" + "@esbuild/linux-ppc64" "0.25.1" + "@esbuild/linux-riscv64" "0.25.1" + "@esbuild/linux-s390x" "0.25.1" + "@esbuild/linux-x64" "0.25.1" + "@esbuild/netbsd-arm64" "0.25.1" + "@esbuild/netbsd-x64" "0.25.1" + "@esbuild/openbsd-arm64" "0.25.1" + "@esbuild/openbsd-x64" "0.25.1" + "@esbuild/sunos-x64" "0.25.1" + "@esbuild/win32-arm64" "0.25.1" + "@esbuild/win32-ia32" "0.25.1" + "@esbuild/win32-x64" "0.25.1" + +esbuild@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== @@ -5237,7 +5576,7 @@ path-to-regexp@0.1.12: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -5257,10 +5596,10 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -piscina@4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.8.0.tgz#5f5c5b1f4f3f50f8de894239c98b7b10d41ba4a6" - integrity sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA== +piscina@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.9.2.tgz#80f2c2375231720337c703e443941adfac8caf75" + integrity sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ== optionalDependencies: "@napi-rs/nice" "^1.0.1" @@ -5592,7 +5931,35 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -rollup@4.34.9, rollup@^4.30.1: +rollup@4.36.0: + version "4.36.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.36.0.tgz#f40f4db47ba3b4f5846d32a47e580c0ed7cd8f02" + integrity sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.36.0" + "@rollup/rollup-android-arm64" "4.36.0" + "@rollup/rollup-darwin-arm64" "4.36.0" + "@rollup/rollup-darwin-x64" "4.36.0" + "@rollup/rollup-freebsd-arm64" "4.36.0" + "@rollup/rollup-freebsd-x64" "4.36.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.36.0" + "@rollup/rollup-linux-arm-musleabihf" "4.36.0" + "@rollup/rollup-linux-arm64-gnu" "4.36.0" + "@rollup/rollup-linux-arm64-musl" "4.36.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.36.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.36.0" + "@rollup/rollup-linux-riscv64-gnu" "4.36.0" + "@rollup/rollup-linux-s390x-gnu" "4.36.0" + "@rollup/rollup-linux-x64-gnu" "4.36.0" + "@rollup/rollup-linux-x64-musl" "4.36.0" + "@rollup/rollup-win32-arm64-msvc" "4.36.0" + "@rollup/rollup-win32-ia32-msvc" "4.36.0" + "@rollup/rollup-win32-x64-msvc" "4.36.0" + fsevents "~2.3.2" + +rollup@^4.30.1: version "4.34.9" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.9.tgz#e1eb397856476778aeb6ac2ac3d09b2ce177a558" integrity sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ== @@ -5670,10 +6037,10 @@ sass-loader@16.0.5: dependencies: neo-async "^2.6.2" -sass@1.85.1: - version "1.85.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.1.tgz#18ab0bb48110ae99163778f06445b406148ca0d5" - integrity sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag== +sass@1.86.0: + version "1.86.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.86.0.tgz#f49464fb6237a903a93f4e8760ef6e37a5030114" + integrity sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -6405,10 +6772,10 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vite@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.0.tgz#9dcb543380dab18d8384eb840a76bf30d78633f0" - integrity sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ== +vite@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.2.tgz#8098b12a6bfd95abe39399aa7d5faa56545d7a1a" + integrity sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ== dependencies: esbuild "^0.25.0" postcss "^8.5.3" diff --git a/integration/linker/BUILD.bazel b/integration/linker/BUILD.bazel index f84234bfcbde..8f625bdc8c02 100644 --- a/integration/linker/BUILD.bazel +++ b/integration/linker/BUILD.bazel @@ -1,22 +1,21 @@ -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test") +load("@aspect_rules_js//js:defs.bzl", "js_test") # Test which ensures that specified NPM packages can be transformed from their partial # declarations to definitions using the `@angular/compiler-cli` linker babel plugin. -nodejs_test( +js_test( name = "linker", data = [ "link-packages-test.mjs", - "//integration:npm-packages-from-runfiles", + "//:node_modules/@angular/compiler-cli", + "//:node_modules/@babel/core", + "//:node_modules/chalk", + "//:node_modules/glob", "//src/cdk:npm_package", "//src/cdk-experimental:npm_package", "//src/google-maps:npm_package", "//src/material:npm_package", "//src/material-experimental:npm_package", "//src/youtube-player:npm_package", - "@npm//@angular/compiler-cli", - "@npm//@babel/core", - "@npm//chalk", - "@npm//glob", ], entry_point = "link-packages-test.mjs", ) diff --git a/integration/linker/link-packages-test.mjs b/integration/linker/link-packages-test.mjs index 5b98d918680d..f9bb64a4f060 100644 --- a/integration/linker/link-packages-test.mjs +++ b/integration/linker/link-packages-test.mjs @@ -5,7 +5,6 @@ import {createEs2015LinkerPlugin} from '@angular/compiler-cli/linker/babel'; import {NodeJSFileSystem, ConsoleLogger, LogLevel} from '@angular/compiler-cli'; -import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs'; import fs from 'fs'; import path from 'path'; import babel from '@babel/core'; @@ -17,7 +16,14 @@ const fileSystem = new NodeJSFileSystem(); /** Logger used by the Angular linker plugin. */ const logger = new ConsoleLogger(LogLevel.info); /** List of NPM packages available in the Bazel runfiles. */ -const npmPackages = getNpmPackagesFromRunfiles(); +const npmPackages = [ + {name: 'cdk', pkgPath: '../../src/cdk/npm_package'}, + {name: 'cdk-experimental', pkgPath: '../../src/cdk-experimental/npm_package'}, + {name: 'google-maps', pkgPath: '../../src/google-maps/npm_package'}, + {name: 'material', pkgPath: '../../src/material/npm_package'}, + {name: 'material-experimental', pkgPath: '../../src/material-experimental/npm_package'}, + {name: 'youtube-player', pkgPath: '../../src/youtube-player/npm_package'}, +]; /** Whether any package could not be linked successfully. */ let failedPackages = false; @@ -47,7 +53,7 @@ if (failedPackages) { // uses exit code `3` to indicate non-fatal test failures. process.exitCode = 3; } else { - console.info(chalk.green('✓ All packages have been successfully linked.')); + console.info(chalk.green(`✓ All packages have been successfully linked: ${npmPackages.length}`)); } /** diff --git a/integration/module-tests/index.bzl b/integration/module-tests/index.bzl index 54ca6da86809..1de0d7e00906 100644 --- a/integration/module-tests/index.bzl +++ b/integration/module-tests/index.bzl @@ -15,7 +15,7 @@ def module_test(name, npm_packages, skipped_entry_points = [], additional_deps = name = "test", data = [ ":%s_config" % name, - "//integration/module-tests:test_lib_rjs", + "//integration/module-tests:test_lib", "//:node_modules/@angular/common", "//:node_modules/@angular/core", ] + additional_deps + [pkg[0] for pkg in npm_packages.items()], diff --git a/integration/ng-add-standalone/package.json b/integration/ng-add-standalone/package.json index 5437f639a9d8..b956b6418fb5 100644 --- a/integration/ng-add-standalone/package.json +++ b/integration/ng-add-standalone/package.json @@ -18,7 +18,6 @@ "@angular/forms": "file:../../node_modules/@angular/forms", "@angular/material": "file:../../dist/releases/material", "@angular/platform-browser": "file:../../node_modules/@angular/platform-browser", - "@angular/platform-browser-dynamic": "file:../../node_modules/@angular/platform-browser-dynamic", "@angular/router": "file:../../node_modules/@angular/router", "rxjs": "^7.5.5", "tslib": "^2.3.0", diff --git a/integration/ng-add-standalone/yarn.lock b/integration/ng-add-standalone/yarn.lock index 1e85a3609747..e2263811e069 100644 --- a/integration/ng-add-standalone/yarn.lock +++ b/integration/ng-add-standalone/yarn.lock @@ -10,41 +10,41 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@angular-devkit/architect@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.0.tgz#314d4a145b8734eb540db22f50663266c9be9e01" - integrity sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA== +"@angular-devkit/architect@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.2.tgz#6ba015657f979a48fa01212b2dedb9878e664344" + integrity sha512-h/6VqShV5ayUEdSMdQdYx4/bAil38V/xVDXvgiTWhvdyrwGeMBgvfhpL51/rj5ye4RH2Amy9KFbQ3HQh6xQqEw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" rxjs "7.8.2" "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/build-webpack" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular/build" "20.0.0-next.0" - "@babel/core" "7.26.9" - "@babel/generator" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/build-webpack" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular/build" "20.0.0-next.2" + "@babel/core" "7.26.10" + "@babel/generator" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-transform-async-generator-functions" "7.26.8" "@babel/plugin-transform-async-to-generator" "7.25.9" - "@babel/plugin-transform-runtime" "7.26.9" + "@babel/plugin-transform-runtime" "7.26.10" "@babel/preset-env" "7.26.9" - "@babel/runtime" "7.26.9" + "@babel/runtime" "7.26.10" "@discoveryjs/json-ext" "0.6.3" - "@ngtools/webpack" "20.0.0-next.0" + "@ngtools/webpack" "20.0.0-next.2" "@vitejs/plugin-basic-ssl" "2.0.0" ansi-colors "4.1.3" - autoprefixer "10.4.20" + autoprefixer "10.4.21" babel-loader "10.0.0" browserslist "^4.21.5" copy-webpack-plugin "13.0.0" css-loader "7.1.2" - esbuild-wasm "0.25.0" + esbuild-wasm "0.25.1" fast-glob "3.3.3" http-proxy-middleware "3.0.3" istanbul-lib-instrument "6.0.3" @@ -58,12 +58,12 @@ open "10.1.0" ora "5.4.1" picomatch "4.0.2" - piscina "4.8.0" + piscina "4.9.2" postcss "8.5.3" postcss-loader "8.1.1" resolve-url-loader "5.0.0" rxjs "7.8.2" - sass "1.85.1" + sass "1.86.0" sass-loader "16.0.5" semver "7.7.1" source-map-loader "5.0.0" @@ -77,20 +77,20 @@ webpack-merge "6.0.1" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.25.0" + esbuild "0.25.1" -"@angular-devkit/build-webpack@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.0.tgz#9604053b64b55aaaa87edee8c3175fb03e6cdcc5" - integrity sha512-OxE7F81bi4raByPP7ac3XpxrWqoMFKWAvVsspdckDsnkqIvtcp8b6XNLw70MNo0ZNUkVpyyEyetp3CyKajZVqQ== +"@angular-devkit/build-webpack@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.2.tgz#d2378f92ab4988b10fe98b209180ce3e2390aee6" + integrity sha512-WW0j2MQ9/YCdQXat6jjar9ORTlNFV6VIgnMkMSFVZm5Utdp+cUuD+bkwz2ysxxb4Y3F/HUt8LhlUEoAM1yQYmQ== dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" + "@angular-devkit/architect" "0.2000.0-next.2" rxjs "7.8.2" -"@angular-devkit/core@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.0.tgz#06fb808283fe6af1e7dbd9a2e4ad72c5294f1f42" - integrity sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw== +"@angular-devkit/core@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.2.tgz#5bc8dd91a1b21b7803d958419a4c548b74701a62" + integrity sha512-AX5GQDHoVmmOfIH1vl9gRM4lURbmC2xI/JtYb+Q/lAbLlGc3E4wk0LHCQKBTCAM2/0zRreSTgrZBRxBGM5UgNw== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -99,52 +99,53 @@ rxjs "7.8.2" source-map "0.7.4" -"@angular-devkit/schematics@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.0.tgz#5bdfeacb1f48f61d4ee293a4abaa77547f6071e6" - integrity sha512-73NyW0AI+dx3yvstZcoaDlzUsk6MJ1h65Pej0qtXnmkhcXfcI2OJzyBSZ7Vjqz0pwqqoq2vlwx9OvZ4zdKTmJw== +"@angular-devkit/schematics@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.2.tgz#9979f875a80a8803e1769223b0696f73a497880f" + integrity sha512-HcOvEVcEzEcUxe4VRxc5m5TJuczXZJ0qNdu9DkbRKUfuT7Y1y2bgDaiSrr9/4r08GilZ9pbUOyyvXUsoyXo3aw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" rxjs "7.8.2" "@angular/animations@file:../../node_modules/@angular/animations": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" -"@angular/build@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.0.tgz#d4cc3c12d3ca5d1244271e9e7db371060e34c6f7" - integrity sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA== +"@angular/build@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.2.tgz#0aaae436b3cada18d98feb9c2f29342665cb2804" + integrity sha512-PNSB1e+Q08onVSiIJmQg7KtL4+pVquwmAcDgnpmm0a+C8GhVdgtV4yzlDEe6LX78hdxWVSdgYpSyTzyA8tcMsQ== dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@babel/core" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@babel/core" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-syntax-import-attributes" "7.26.0" - "@inquirer/confirm" "5.1.6" + "@inquirer/confirm" "5.1.8" "@vitejs/plugin-basic-ssl" "2.0.0" beasties "0.2.0" browserslist "^4.23.0" - esbuild "0.25.0" + esbuild "0.25.1" https-proxy-agent "7.0.6" istanbul-lib-instrument "6.0.3" + jsonc-parser "3.3.1" listr2 "8.2.5" magic-string "0.30.17" mrmime "2.0.1" parse5-html-rewriting-stream "7.0.0" picomatch "4.0.2" - piscina "4.8.0" - rollup "4.34.9" - sass "1.85.1" + piscina "4.9.2" + rollup "4.36.0" + sass "1.86.0" semver "7.7.1" source-map-support "0.5.21" tinyglobby "0.2.12" - vite "6.2.0" + vite "6.2.2" watchpack "2.4.2" optionalDependencies: lmdb "3.2.6" @@ -157,14 +158,14 @@ parse5 "^7.1.2" "@angular/cli@file:../../node_modules/@angular/cli": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" - "@inquirer/prompts" "7.3.2" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" + "@inquirer/prompts" "7.4.0" "@listr2/prompt-adapter-inquirer" "2.0.18" - "@schematics/angular" "20.0.0-next.0" + "@schematics/angular" "20.0.0-next.2" "@yarnpkg/lockfile" "1.1.0" ini "5.0.0" jsonc-parser "3.3.1" @@ -178,14 +179,14 @@ yargs "17.7.2" "@angular/common@file:../../node_modules/@angular/common": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: - "@babel/core" "7.26.9" + "@babel/core" "7.26.10" "@jridgewell/sourcemap-codec" "^1.4.14" chokidar "^4.0.0" convert-source-map "^1.5.1" @@ -195,17 +196,17 @@ yargs "^17.2.1" "@angular/compiler@file:../../node_modules/@angular/compiler": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/core@file:../../node_modules/@angular/core": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/forms@file:../../node_modules/@angular/forms": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -214,18 +215,13 @@ dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic": - version "20.0.0-next.1" - dependencies: - tslib "^2.3.0" - "@angular/platform-browser@file:../../node_modules/@angular/platform-browser": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/router@file:../../node_modules/@angular/router": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -243,7 +239,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== -"@babel/core@7.26.9", "@babel/core@^7.12.3", "@babel/core@^7.23.9": +"@babel/core@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/core@^7.12.3", "@babel/core@^7.23.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.9.tgz#71838542a4b1e49dfed353d7acbc6eb89f4a76f2" integrity sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw== @@ -264,7 +281,29 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.26.9", "@babel/generator@^7.26.9": +"@babel/generator@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7" + integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang== + dependencies: + "@babel/parser" "^7.26.10" + "@babel/types" "^7.26.10" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.9.tgz#75a9482ad3d0cc7188a537aa4910bc59db67cbca" integrity sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg== @@ -315,7 +354,7 @@ regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": +"@babel/helper-define-polyfill-provider@^0.6.3": version "0.6.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== @@ -420,6 +459,14 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/helpers@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.9.tgz#28f3fb45252fc88ef2dc547c8a911c255fc9fef6" @@ -435,6 +482,13 @@ dependencies: "@babel/types" "^7.26.9" +"@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" @@ -821,15 +875,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-runtime@7.26.9": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz#ea8be19ef134668e98f7b54daf7c4f853859dc44" - integrity sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ== +"@babel/plugin-transform-runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" + integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/helper-plugin-utils" "^7.26.5" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" @@ -984,7 +1038,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@7.26.9", "@babel/runtime@^7.8.4": +"@babel/runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" + integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.8.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433" integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== @@ -1000,6 +1061,15 @@ "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" +"@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.9.tgz#4398f2394ba66d05d988b2ad13c219a2c857461a" @@ -1013,6 +1083,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.9", "@babel/types@^7.4.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce" @@ -1021,6 +1104,14 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@babel/types@^7.26.10", "@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1036,152 +1127,277 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== +"@esbuild/aix-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d" + integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ== + "@esbuild/android-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== +"@esbuild/android-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d" + integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA== + "@esbuild/android-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== +"@esbuild/android-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c" + integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q== + "@esbuild/android-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== +"@esbuild/android-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed" + integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw== + "@esbuild/darwin-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== +"@esbuild/darwin-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591" + integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ== + "@esbuild/darwin-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== +"@esbuild/darwin-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98" + integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA== + "@esbuild/freebsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== +"@esbuild/freebsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e" + integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A== + "@esbuild/freebsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== +"@esbuild/freebsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde" + integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww== + "@esbuild/linux-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== +"@esbuild/linux-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498" + integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ== + "@esbuild/linux-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== +"@esbuild/linux-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a" + integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ== + "@esbuild/linux-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== +"@esbuild/linux-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754" + integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ== + "@esbuild/linux-loong64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== +"@esbuild/linux-loong64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c" + integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg== + "@esbuild/linux-mips64el@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== +"@esbuild/linux-mips64el@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57" + integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg== + "@esbuild/linux-ppc64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== +"@esbuild/linux-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589" + integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg== + "@esbuild/linux-riscv64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== +"@esbuild/linux-riscv64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8" + integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ== + "@esbuild/linux-s390x@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== +"@esbuild/linux-s390x@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa" + integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ== + "@esbuild/linux-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== +"@esbuild/linux-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954" + integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA== + "@esbuild/netbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== +"@esbuild/netbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29" + integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g== + "@esbuild/netbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== +"@esbuild/netbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0" + integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA== + "@esbuild/openbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== +"@esbuild/openbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217" + integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg== + "@esbuild/openbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== +"@esbuild/openbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de" + integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw== + "@esbuild/sunos-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== +"@esbuild/sunos-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27" + integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg== + "@esbuild/win32-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== +"@esbuild/win32-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582" + integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ== + "@esbuild/win32-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== +"@esbuild/win32-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb" + integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A== + "@esbuild/win32-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== -"@inquirer/checkbox@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.2.tgz#a12079f6aff68253392a1955d1a202eb9ac2e207" - integrity sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ== +"@esbuild/win32-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz#7d79922cb2d88f9048f06393dbf62d2e4accb584" + integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg== + +"@inquirer/checkbox@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.4.tgz#30c243015670126ac95d9b94cb37f631d5ad3f88" + integrity sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" -"@inquirer/confirm@5.1.6", "@inquirer/confirm@^5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.6.tgz#e5a959676716860c26560b33997b38bd65bf96ad" - integrity sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw== +"@inquirer/confirm@5.1.8", "@inquirer/confirm@^5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.8.tgz#476af2476cd4867905dcabfca8598da4dd65e923" + integrity sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/core@^10.1.7": - version "10.1.7" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.7.tgz#04260b59e0343e86f76da0a4e1fbe4975aca03ca" - integrity sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA== +"@inquirer/core@^10.1.9": + version "10.1.9" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.9.tgz#9ab672a2d9ca60c5d45c7fa9b63e4fe9e038a02e" + integrity sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw== dependencies: - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" cli-width "^4.1.0" mute-stream "^2.0.0" @@ -1189,97 +1405,97 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.2" -"@inquirer/editor@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.7.tgz#61cb58486b125a9cbfc88a9424bf1681bb7dbd2d" - integrity sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA== +"@inquirer/editor@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.9.tgz#4ff0c69b3940428d4549b719803655d7ae2cf2d6" + integrity sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" external-editor "^3.1.0" -"@inquirer/expand@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.9.tgz#935947192dad0d07a537664ba6a527b9ced44be2" - integrity sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig== +"@inquirer/expand@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.11.tgz#d898b2d028def42064eee15f34e2c0bdc4a1ad2c" + integrity sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.10.tgz#e3676a51c9c51aaabcd6ba18a28e82b98417db37" - integrity sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw== +"@inquirer/figures@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.11.tgz#4744e6db95288fea1dead779554859710a959a21" + integrity sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw== -"@inquirer/input@^4.1.6": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.6.tgz#329700fd5a2d2f37be63768b09afd0a44edf3c67" - integrity sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ== +"@inquirer/input@^4.1.8": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.8.tgz#8e637f1163904d951762abab4584682daf484a91" + integrity sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/number@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.9.tgz#23dae9e31de368e18c4ec2543a9f006e4bb4a98d" - integrity sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w== +"@inquirer/number@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.11.tgz#b42b7b24e9e1916d26bbdc7c368852fdb626fa9a" + integrity sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/password@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.9.tgz#1a7d14a14bd2e54294d7fa5cc9fa6da99315149c" - integrity sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ== +"@inquirer/password@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.11.tgz#f23a632fb9a18c7a7ce1f2ac36d94e8aa0b7229e" + integrity sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" -"@inquirer/prompts@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.3.2.tgz#ad0879eb3bc783c19b78c420e5eeb18a09fc9b47" - integrity sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ== - dependencies: - "@inquirer/checkbox" "^4.1.2" - "@inquirer/confirm" "^5.1.6" - "@inquirer/editor" "^4.2.7" - "@inquirer/expand" "^4.0.9" - "@inquirer/input" "^4.1.6" - "@inquirer/number" "^3.0.9" - "@inquirer/password" "^4.0.9" - "@inquirer/rawlist" "^4.0.9" - "@inquirer/search" "^3.0.9" - "@inquirer/select" "^4.0.9" - -"@inquirer/rawlist@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.9.tgz#c5f8253c87ad48713e0e8b34274fdd1aa8b08d2c" - integrity sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A== - dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" +"@inquirer/prompts@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.4.0.tgz#bd9be38372be8db75afb04776eb0cf096ae9814b" + integrity sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w== + dependencies: + "@inquirer/checkbox" "^4.1.4" + "@inquirer/confirm" "^5.1.8" + "@inquirer/editor" "^4.2.9" + "@inquirer/expand" "^4.0.11" + "@inquirer/input" "^4.1.8" + "@inquirer/number" "^3.0.11" + "@inquirer/password" "^4.0.11" + "@inquirer/rawlist" "^4.0.11" + "@inquirer/search" "^3.0.11" + "@inquirer/select" "^4.1.0" + +"@inquirer/rawlist@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.11.tgz#29d74eea2607cbb3d80eac7fca0011d51c74c46d" + integrity sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg== + dependencies: + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/search@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.9.tgz#00848c93ce86dcd24989a72dabfd8aeb34d2829b" - integrity sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA== +"@inquirer/search@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.11.tgz#660b181516acc306cf21dbc1d3d49f662cb7d917" + integrity sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/select@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.9.tgz#28a4c7b9a406798a9ea365d67dbad5e427c3febe" - integrity sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg== +"@inquirer/select@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.1.0.tgz#e99f483cb004c0247ced597f2c6015f084223dfb" + integrity sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" @@ -1290,10 +1506,10 @@ dependencies: mute-stream "^1.0.0" -"@inquirer/type@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.4.tgz#fa5f9e91a0abf3c9e93d3e1990ecb891d8195cf2" - integrity sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA== +"@inquirer/type@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.5.tgz#fe00207e57d5f040e5b18e809c8e7abc3a2ade3a" + integrity sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1553,10 +1769,10 @@ "@napi-rs/nice-win32-ia32-msvc" "1.0.1" "@napi-rs/nice-win32-x64-msvc" "1.0.1" -"@ngtools/webpack@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.0.tgz#e96f9830e5a5ac8e2a6a67d53b839ce755fe92b1" - integrity sha512-dOm+V836ujgyrpbrqINwyYsTvNb/N+dJRcAaof1iS+gzXQZNpgOC2FadzNu5MUvdRk5khNrvkoNoFD3OmszNjQ== +"@ngtools/webpack@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.2.tgz#b93d565874ec3a688e0d27c8b67dd29109e3d985" + integrity sha512-Edr7kfYosxoHKpvABk1A28S2jlJQlz/7vf6E2VOK74d0sIbT+h6CgQulRlNOgi5jyH3qOldEgDm3iE+S5KMXxA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1760,103 +1976,198 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz#661a45a4709c70e59e596ec78daa9cb8b8d27604" integrity sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA== +"@rollup/rollup-android-arm-eabi@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz#6229c36cddc172c468f53107f2b7aebe2585609b" + integrity sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w== + "@rollup/rollup-android-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz#128fe8dd510d880cf98b4cb6c7add326815a0c4b" integrity sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg== +"@rollup/rollup-android-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz#d38163692d0729bd64a026c13749ecac06f847e8" + integrity sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg== + "@rollup/rollup-darwin-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz#363467bc49fd0b1e17075798ac8e9ad1e1e29535" integrity sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ== +"@rollup/rollup-darwin-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz#82601b8ff81f3dbaef28017aa3d0e9709edc99c0" + integrity sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw== + "@rollup/rollup-darwin-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz#c2fe3d85fffe47f0ed0f076b3563ada22c8af19c" integrity sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q== +"@rollup/rollup-darwin-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz#0e961354fb2bf26d691810ca61dc861d9a1e94b2" + integrity sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA== + "@rollup/rollup-freebsd-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz#d95bd8f6eaaf829781144fc8bd2d5d71d9f6a9f5" integrity sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw== +"@rollup/rollup-freebsd-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz#6aee296cd6b8c39158d377c89b7e0cd0851dd7c7" + integrity sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg== + "@rollup/rollup-freebsd-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz#c3576c6011656e4966ded29f051edec636b44564" integrity sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g== +"@rollup/rollup-freebsd-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz#432e49d93942225ac1b4d98254a6fb6ca0afcd17" + integrity sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ== + "@rollup/rollup-linux-arm-gnueabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz#48c87d0dee4f8dc9591a416717f91b4a89d77e3d" integrity sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg== +"@rollup/rollup-linux-arm-gnueabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz#a66910c6c63b46d45f239528ad5509097f8df885" + integrity sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg== + "@rollup/rollup-linux-arm-musleabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz#f4c4e7c03a7767f2e5aa9d0c5cfbf5c0f59f2d41" integrity sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA== +"@rollup/rollup-linux-arm-musleabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz#1cfadc70d44501b0a58615a460cf1b6ec8cfddf3" + integrity sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg== + "@rollup/rollup-linux-arm64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz#1015c9d07a99005025d13b8622b7600029d0b52f" integrity sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw== +"@rollup/rollup-linux-arm64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz#d32e42b25216472dfdc5cb7df6a37667766d3855" + integrity sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A== + "@rollup/rollup-linux-arm64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz#8f895eb5577748fc75af21beae32439626e0a14c" integrity sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A== +"@rollup/rollup-linux-arm64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz#d742917d61880941be26ff8d3352d935139188b9" + integrity sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw== + "@rollup/rollup-linux-loongarch64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz#c9cd5dbbdc6b3ca4dbeeb0337498cf31949004a0" integrity sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg== +"@rollup/rollup-linux-loongarch64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz#9ad12d1a5d3abf4ecb90fbe1a49249608cee8cbb" + integrity sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg== + "@rollup/rollup-linux-powerpc64le-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz#7ebb5b4441faa17843a210f7d0583a20c93b40e4" integrity sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA== +"@rollup/rollup-linux-powerpc64le-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz#c3ca6f5ce4a8b785dd450113660d9529a75fdf2a" + integrity sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg== + "@rollup/rollup-linux-riscv64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz#10f5d7349fbd2fe78f9e36ecc90aab3154435c8d" integrity sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg== +"@rollup/rollup-linux-riscv64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz#05eb5e71db5b5b1d1a3428265a63c5f6f8a1e4b8" + integrity sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA== + "@rollup/rollup-linux-s390x-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz#196347d2fa20593ab09d0b7e2589fb69bdf742c6" integrity sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ== +"@rollup/rollup-linux-s390x-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz#6fa895f181fa6804bc6ca27c0e9a6823355436dd" + integrity sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag== + "@rollup/rollup-linux-x64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz#7193cbd8d128212b8acda37e01b39d9e96259ef8" integrity sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A== +"@rollup/rollup-linux-x64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz#d2e69f7598c71f03287b763fdbefce4163f07419" + integrity sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ== + "@rollup/rollup-linux-x64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz#29a6867278ca0420b891574cfab98ecad70c59d1" integrity sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA== +"@rollup/rollup-linux-x64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz#9eb0075deaabf5d88a9dc8b61bd7bd122ac64ef9" + integrity sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ== + "@rollup/rollup-win32-arm64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz#89427dcac0c8e3a6d32b13a03a296a275d0de9a9" integrity sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q== +"@rollup/rollup-win32-arm64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz#bfda7178ed8cb8fa8786474a02eae9fc8649a74d" + integrity sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A== + "@rollup/rollup-win32-ia32-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz#ecb9711ba2b6d2bf6ee51265abe057ab90913deb" integrity sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w== +"@rollup/rollup-win32-ia32-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz#8e12739b9c43de8f0690b280c676af3de571cee0" + integrity sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ== + "@rollup/rollup-win32-x64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz#1973871850856ae72bc678aeb066ab952330e923" integrity sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw== -"@schematics/angular@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.0.tgz#7428dea5382978bc3b6f832d36021cba3e927e25" - integrity sha512-IMJA7/okzzlw/riADSzbMEvXXCWefz69AN6pE8lV+T05mc/dkxYTJ36tm32oYdHSSLnsPev7JuvnxdgTHJgqLA== +"@rollup/rollup-win32-x64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz#88b23fe29d28fa647030b36e912c1b5b50831b1d" + integrity sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw== + +"@schematics/angular@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.2.tgz#efd509bf2dd4e3c5b64a86229524da13883702af" + integrity sha512-du8Ft+vEGelxt4BNuSHD2PZx+9fNgZpVFtu/4N+unsjImdaK5dOstaRXJkRmBy+DUr5z6V633rN9/q1tE14VPg== dependencies: - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" jsonc-parser "3.3.1" "@sigstore/bundle@^3.1.0": @@ -2382,16 +2693,16 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -autoprefixer@10.4.20: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== +autoprefixer@10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.1" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" babel-loader@10.0.0: @@ -2410,14 +2721,6 @@ babel-plugin-polyfill-corejs2@^0.4.10: "@babel/helper-define-polyfill-provider" "^0.6.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" - babel-plugin-polyfill-corejs3@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" @@ -2539,7 +2842,7 @@ braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.4: +browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.4: version "4.24.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -2613,11 +2916,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: +caniuse-lite@^1.0.30001688: version "1.0.30001702" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz#cde16fa8adaa066c04aec2967b6cde46354644c4" integrity sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA== +caniuse-lite@^1.0.30001702: + version "1.0.30001707" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41" + integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -2849,7 +3157,7 @@ copy-webpack-plugin@13.0.0: serialize-javascript "^6.0.2" tinyglobby "^0.2.12" -core-js-compat@^3.38.0, core-js-compat@^3.40.0: +core-js-compat@^3.40.0: version "3.41.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== @@ -3201,12 +3509,43 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" -esbuild-wasm@0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.0.tgz#56bbcc29d9eb5052ff1598248dc37dd958876e82" - integrity sha512-60iuWr6jdTVylmGXjpnqk3pCktUi5Rmjiv6EMza3h4X20BLtfL2BjUGs1+UCt2G9UK7jVGrJdUr5i1k0sL3wBg== +esbuild-wasm@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.1.tgz#fbe9ca6d7afbfe351389cad02c0fcd584cf40bcc" + integrity sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw== -esbuild@0.25.0, esbuild@^0.25.0: +esbuild@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f" + integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.1" + "@esbuild/android-arm" "0.25.1" + "@esbuild/android-arm64" "0.25.1" + "@esbuild/android-x64" "0.25.1" + "@esbuild/darwin-arm64" "0.25.1" + "@esbuild/darwin-x64" "0.25.1" + "@esbuild/freebsd-arm64" "0.25.1" + "@esbuild/freebsd-x64" "0.25.1" + "@esbuild/linux-arm" "0.25.1" + "@esbuild/linux-arm64" "0.25.1" + "@esbuild/linux-ia32" "0.25.1" + "@esbuild/linux-loong64" "0.25.1" + "@esbuild/linux-mips64el" "0.25.1" + "@esbuild/linux-ppc64" "0.25.1" + "@esbuild/linux-riscv64" "0.25.1" + "@esbuild/linux-s390x" "0.25.1" + "@esbuild/linux-x64" "0.25.1" + "@esbuild/netbsd-arm64" "0.25.1" + "@esbuild/netbsd-x64" "0.25.1" + "@esbuild/openbsd-arm64" "0.25.1" + "@esbuild/openbsd-x64" "0.25.1" + "@esbuild/sunos-x64" "0.25.1" + "@esbuild/win32-arm64" "0.25.1" + "@esbuild/win32-ia32" "0.25.1" + "@esbuild/win32-x64" "0.25.1" + +esbuild@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== @@ -5052,7 +5391,7 @@ path-to-regexp@0.1.12: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -5072,10 +5411,10 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -piscina@4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.8.0.tgz#5f5c5b1f4f3f50f8de894239c98b7b10d41ba4a6" - integrity sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA== +piscina@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.9.2.tgz#80f2c2375231720337c703e443941adfac8caf75" + integrity sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ== optionalDependencies: "@napi-rs/nice" "^1.0.1" @@ -5400,7 +5739,35 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -rollup@4.34.9, rollup@^4.30.1: +rollup@4.36.0: + version "4.36.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.36.0.tgz#f40f4db47ba3b4f5846d32a47e580c0ed7cd8f02" + integrity sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.36.0" + "@rollup/rollup-android-arm64" "4.36.0" + "@rollup/rollup-darwin-arm64" "4.36.0" + "@rollup/rollup-darwin-x64" "4.36.0" + "@rollup/rollup-freebsd-arm64" "4.36.0" + "@rollup/rollup-freebsd-x64" "4.36.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.36.0" + "@rollup/rollup-linux-arm-musleabihf" "4.36.0" + "@rollup/rollup-linux-arm64-gnu" "4.36.0" + "@rollup/rollup-linux-arm64-musl" "4.36.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.36.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.36.0" + "@rollup/rollup-linux-riscv64-gnu" "4.36.0" + "@rollup/rollup-linux-s390x-gnu" "4.36.0" + "@rollup/rollup-linux-x64-gnu" "4.36.0" + "@rollup/rollup-linux-x64-musl" "4.36.0" + "@rollup/rollup-win32-arm64-msvc" "4.36.0" + "@rollup/rollup-win32-ia32-msvc" "4.36.0" + "@rollup/rollup-win32-x64-msvc" "4.36.0" + fsevents "~2.3.2" + +rollup@^4.30.1: version "4.34.9" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.9.tgz#e1eb397856476778aeb6ac2ac3d09b2ce177a558" integrity sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ== @@ -5478,10 +5845,10 @@ sass-loader@16.0.5: dependencies: neo-async "^2.6.2" -sass@1.85.1: - version "1.85.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.1.tgz#18ab0bb48110ae99163778f06445b406148ca0d5" - integrity sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag== +sass@1.86.0: + version "1.86.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.86.0.tgz#f49464fb6237a903a93f4e8760ef6e37a5030114" + integrity sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -6162,10 +6529,10 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vite@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.0.tgz#9dcb543380dab18d8384eb840a76bf30d78633f0" - integrity sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ== +vite@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.2.tgz#8098b12a6bfd95abe39399aa7d5faa56545d7a1a" + integrity sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ== dependencies: esbuild "^0.25.0" postcss "^8.5.3" diff --git a/integration/ng-add/package.json b/integration/ng-add/package.json index e2f4ac0ec027..fa15335c2089 100644 --- a/integration/ng-add/package.json +++ b/integration/ng-add/package.json @@ -18,7 +18,6 @@ "@angular/forms": "file:../../node_modules/@angular/forms", "@angular/material": "file:../../dist/releases/material", "@angular/platform-browser": "file:../../node_modules/@angular/platform-browser", - "@angular/platform-browser-dynamic": "file:../../node_modules/@angular/platform-browser-dynamic", "@angular/router": "file:../../node_modules/@angular/router", "rxjs": "^7.5.5", "tslib": "^2.3.0", diff --git a/integration/ng-add/yarn.lock b/integration/ng-add/yarn.lock index d068063202e6..19fc54d14007 100644 --- a/integration/ng-add/yarn.lock +++ b/integration/ng-add/yarn.lock @@ -10,41 +10,41 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@angular-devkit/architect@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.0.tgz#314d4a145b8734eb540db22f50663266c9be9e01" - integrity sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA== +"@angular-devkit/architect@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2000.0-next.2.tgz#6ba015657f979a48fa01212b2dedb9878e664344" + integrity sha512-h/6VqShV5ayUEdSMdQdYx4/bAil38V/xVDXvgiTWhvdyrwGeMBgvfhpL51/rj5ye4RH2Amy9KFbQ3HQh6xQqEw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" rxjs "7.8.2" "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/build-webpack" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular/build" "20.0.0-next.0" - "@babel/core" "7.26.9" - "@babel/generator" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/build-webpack" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular/build" "20.0.0-next.2" + "@babel/core" "7.26.10" + "@babel/generator" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-transform-async-generator-functions" "7.26.8" "@babel/plugin-transform-async-to-generator" "7.25.9" - "@babel/plugin-transform-runtime" "7.26.9" + "@babel/plugin-transform-runtime" "7.26.10" "@babel/preset-env" "7.26.9" - "@babel/runtime" "7.26.9" + "@babel/runtime" "7.26.10" "@discoveryjs/json-ext" "0.6.3" - "@ngtools/webpack" "20.0.0-next.0" + "@ngtools/webpack" "20.0.0-next.2" "@vitejs/plugin-basic-ssl" "2.0.0" ansi-colors "4.1.3" - autoprefixer "10.4.20" + autoprefixer "10.4.21" babel-loader "10.0.0" browserslist "^4.21.5" copy-webpack-plugin "13.0.0" css-loader "7.1.2" - esbuild-wasm "0.25.0" + esbuild-wasm "0.25.1" fast-glob "3.3.3" http-proxy-middleware "3.0.3" istanbul-lib-instrument "6.0.3" @@ -58,12 +58,12 @@ open "10.1.0" ora "5.4.1" picomatch "4.0.2" - piscina "4.8.0" + piscina "4.9.2" postcss "8.5.3" postcss-loader "8.1.1" resolve-url-loader "5.0.0" rxjs "7.8.2" - sass "1.85.1" + sass "1.86.0" sass-loader "16.0.5" semver "7.7.1" source-map-loader "5.0.0" @@ -77,20 +77,20 @@ webpack-merge "6.0.1" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.25.0" + esbuild "0.25.1" -"@angular-devkit/build-webpack@0.2000.0-next.0": - version "0.2000.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.0.tgz#9604053b64b55aaaa87edee8c3175fb03e6cdcc5" - integrity sha512-OxE7F81bi4raByPP7ac3XpxrWqoMFKWAvVsspdckDsnkqIvtcp8b6XNLw70MNo0ZNUkVpyyEyetp3CyKajZVqQ== +"@angular-devkit/build-webpack@0.2000.0-next.2": + version "0.2000.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.2.tgz#d2378f92ab4988b10fe98b209180ce3e2390aee6" + integrity sha512-WW0j2MQ9/YCdQXat6jjar9ORTlNFV6VIgnMkMSFVZm5Utdp+cUuD+bkwz2ysxxb4Y3F/HUt8LhlUEoAM1yQYmQ== dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" + "@angular-devkit/architect" "0.2000.0-next.2" rxjs "7.8.2" -"@angular-devkit/core@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.0.tgz#06fb808283fe6af1e7dbd9a2e4ad72c5294f1f42" - integrity sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw== +"@angular-devkit/core@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.0.0-next.2.tgz#5bc8dd91a1b21b7803d958419a4c548b74701a62" + integrity sha512-AX5GQDHoVmmOfIH1vl9gRM4lURbmC2xI/JtYb+Q/lAbLlGc3E4wk0LHCQKBTCAM2/0zRreSTgrZBRxBGM5UgNw== dependencies: ajv "8.17.1" ajv-formats "3.0.1" @@ -99,52 +99,53 @@ rxjs "7.8.2" source-map "0.7.4" -"@angular-devkit/schematics@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.0.tgz#5bdfeacb1f48f61d4ee293a4abaa77547f6071e6" - integrity sha512-73NyW0AI+dx3yvstZcoaDlzUsk6MJ1h65Pej0qtXnmkhcXfcI2OJzyBSZ7Vjqz0pwqqoq2vlwx9OvZ4zdKTmJw== +"@angular-devkit/schematics@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.0.0-next.2.tgz#9979f875a80a8803e1769223b0696f73a497880f" + integrity sha512-HcOvEVcEzEcUxe4VRxc5m5TJuczXZJ0qNdu9DkbRKUfuT7Y1y2bgDaiSrr9/4r08GilZ9pbUOyyvXUsoyXo3aw== dependencies: - "@angular-devkit/core" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" jsonc-parser "3.3.1" magic-string "0.30.17" ora "5.4.1" rxjs "7.8.2" "@angular/animations@file:../../node_modules/@angular/animations": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" -"@angular/build@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.0.tgz#d4cc3c12d3ca5d1244271e9e7db371060e34c6f7" - integrity sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA== +"@angular/build@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.0.0-next.2.tgz#0aaae436b3cada18d98feb9c2f29342665cb2804" + integrity sha512-PNSB1e+Q08onVSiIJmQg7KtL4+pVquwmAcDgnpmm0a+C8GhVdgtV4yzlDEe6LX78hdxWVSdgYpSyTzyA8tcMsQ== dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2000.0-next.0" - "@babel/core" "7.26.9" + "@angular-devkit/architect" "0.2000.0-next.2" + "@babel/core" "7.26.10" "@babel/helper-annotate-as-pure" "7.25.9" "@babel/helper-split-export-declaration" "7.24.7" "@babel/plugin-syntax-import-attributes" "7.26.0" - "@inquirer/confirm" "5.1.6" + "@inquirer/confirm" "5.1.8" "@vitejs/plugin-basic-ssl" "2.0.0" beasties "0.2.0" browserslist "^4.23.0" - esbuild "0.25.0" + esbuild "0.25.1" https-proxy-agent "7.0.6" istanbul-lib-instrument "6.0.3" + jsonc-parser "3.3.1" listr2 "8.2.5" magic-string "0.30.17" mrmime "2.0.1" parse5-html-rewriting-stream "7.0.0" picomatch "4.0.2" - piscina "4.8.0" - rollup "4.34.9" - sass "1.85.1" + piscina "4.9.2" + rollup "4.36.0" + sass "1.86.0" semver "7.7.1" source-map-support "0.5.21" tinyglobby "0.2.12" - vite "6.2.0" + vite "6.2.2" watchpack "2.4.2" optionalDependencies: lmdb "3.2.6" @@ -157,14 +158,14 @@ parse5 "^7.1.2" "@angular/cli@file:../../node_modules/@angular/cli": - version "20.0.0-next.0" + version "20.0.0-next.2" dependencies: - "@angular-devkit/architect" "0.2000.0-next.0" - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" - "@inquirer/prompts" "7.3.2" + "@angular-devkit/architect" "0.2000.0-next.2" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" + "@inquirer/prompts" "7.4.0" "@listr2/prompt-adapter-inquirer" "2.0.18" - "@schematics/angular" "20.0.0-next.0" + "@schematics/angular" "20.0.0-next.2" "@yarnpkg/lockfile" "1.1.0" ini "5.0.0" jsonc-parser "3.3.1" @@ -178,14 +179,14 @@ yargs "17.7.2" "@angular/common@file:../../node_modules/@angular/common": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: - "@babel/core" "7.26.9" + "@babel/core" "7.26.10" "@jridgewell/sourcemap-codec" "^1.4.14" chokidar "^4.0.0" convert-source-map "^1.5.1" @@ -195,17 +196,17 @@ yargs "^17.2.1" "@angular/compiler@file:../../node_modules/@angular/compiler": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/core@file:../../node_modules/@angular/core": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/forms@file:../../node_modules/@angular/forms": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -214,18 +215,13 @@ dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic": - version "20.0.0-next.1" - dependencies: - tslib "^2.3.0" - "@angular/platform-browser@file:../../node_modules/@angular/platform-browser": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" "@angular/router@file:../../node_modules/@angular/router": - version "20.0.0-next.1" + version "20.0.0-next.3" dependencies: tslib "^2.3.0" @@ -243,7 +239,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== -"@babel/core@7.26.9", "@babel/core@^7.23.9", "@babel/core@^7.7.5": +"@babel/core@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/core@^7.23.9", "@babel/core@^7.7.5": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.9.tgz#71838542a4b1e49dfed353d7acbc6eb89f4a76f2" integrity sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw== @@ -264,7 +281,29 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.26.9", "@babel/generator@^7.26.9": +"@babel/generator@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7" + integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang== + dependencies: + "@babel/parser" "^7.26.10" + "@babel/types" "^7.26.10" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/generator@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.9.tgz#75a9482ad3d0cc7188a537aa4910bc59db67cbca" integrity sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg== @@ -315,7 +354,7 @@ regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": +"@babel/helper-define-polyfill-provider@^0.6.3": version "0.6.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== @@ -420,6 +459,14 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/helpers@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.9.tgz#28f3fb45252fc88ef2dc547c8a911c255fc9fef6" @@ -435,6 +482,13 @@ dependencies: "@babel/types" "^7.26.9" +"@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" @@ -821,15 +875,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-runtime@7.26.9": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz#ea8be19ef134668e98f7b54daf7c4f853859dc44" - integrity sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ== +"@babel/plugin-transform-runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" + integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/helper-plugin-utils" "^7.26.5" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" @@ -984,7 +1038,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@7.26.9", "@babel/runtime@^7.8.4": +"@babel/runtime@7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" + integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.8.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433" integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== @@ -1000,6 +1061,15 @@ "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" +"@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.9.tgz#4398f2394ba66d05d988b2ad13c219a2c857461a" @@ -1013,6 +1083,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.9", "@babel/types@^7.4.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce" @@ -1021,6 +1104,14 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@babel/types@^7.26.10", "@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1036,152 +1127,277 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== +"@esbuild/aix-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d" + integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ== + "@esbuild/android-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== +"@esbuild/android-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d" + integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA== + "@esbuild/android-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== +"@esbuild/android-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c" + integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q== + "@esbuild/android-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== +"@esbuild/android-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed" + integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw== + "@esbuild/darwin-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== +"@esbuild/darwin-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591" + integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ== + "@esbuild/darwin-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== +"@esbuild/darwin-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98" + integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA== + "@esbuild/freebsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== +"@esbuild/freebsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e" + integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A== + "@esbuild/freebsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== +"@esbuild/freebsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde" + integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww== + "@esbuild/linux-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== +"@esbuild/linux-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498" + integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ== + "@esbuild/linux-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== +"@esbuild/linux-arm@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a" + integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ== + "@esbuild/linux-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== +"@esbuild/linux-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754" + integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ== + "@esbuild/linux-loong64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== +"@esbuild/linux-loong64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c" + integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg== + "@esbuild/linux-mips64el@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== +"@esbuild/linux-mips64el@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57" + integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg== + "@esbuild/linux-ppc64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== +"@esbuild/linux-ppc64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589" + integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg== + "@esbuild/linux-riscv64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== +"@esbuild/linux-riscv64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8" + integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ== + "@esbuild/linux-s390x@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== +"@esbuild/linux-s390x@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa" + integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ== + "@esbuild/linux-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== +"@esbuild/linux-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954" + integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA== + "@esbuild/netbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== +"@esbuild/netbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29" + integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g== + "@esbuild/netbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== +"@esbuild/netbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0" + integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA== + "@esbuild/openbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== +"@esbuild/openbsd-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217" + integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg== + "@esbuild/openbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== +"@esbuild/openbsd-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de" + integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw== + "@esbuild/sunos-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== +"@esbuild/sunos-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27" + integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg== + "@esbuild/win32-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== +"@esbuild/win32-arm64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582" + integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ== + "@esbuild/win32-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== +"@esbuild/win32-ia32@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb" + integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A== + "@esbuild/win32-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== -"@inquirer/checkbox@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.2.tgz#a12079f6aff68253392a1955d1a202eb9ac2e207" - integrity sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ== +"@esbuild/win32-x64@0.25.1": + version "0.25.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz#7d79922cb2d88f9048f06393dbf62d2e4accb584" + integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg== + +"@inquirer/checkbox@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.4.tgz#30c243015670126ac95d9b94cb37f631d5ad3f88" + integrity sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" -"@inquirer/confirm@5.1.6", "@inquirer/confirm@^5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.6.tgz#e5a959676716860c26560b33997b38bd65bf96ad" - integrity sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw== +"@inquirer/confirm@5.1.8", "@inquirer/confirm@^5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.8.tgz#476af2476cd4867905dcabfca8598da4dd65e923" + integrity sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/core@^10.1.7": - version "10.1.7" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.7.tgz#04260b59e0343e86f76da0a4e1fbe4975aca03ca" - integrity sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA== +"@inquirer/core@^10.1.9": + version "10.1.9" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.9.tgz#9ab672a2d9ca60c5d45c7fa9b63e4fe9e038a02e" + integrity sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw== dependencies: - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" cli-width "^4.1.0" mute-stream "^2.0.0" @@ -1189,97 +1405,97 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.2" -"@inquirer/editor@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.7.tgz#61cb58486b125a9cbfc88a9424bf1681bb7dbd2d" - integrity sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA== +"@inquirer/editor@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.9.tgz#4ff0c69b3940428d4549b719803655d7ae2cf2d6" + integrity sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" external-editor "^3.1.0" -"@inquirer/expand@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.9.tgz#935947192dad0d07a537664ba6a527b9ced44be2" - integrity sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig== +"@inquirer/expand@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.11.tgz#d898b2d028def42064eee15f34e2c0bdc4a1ad2c" + integrity sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/figures@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.10.tgz#e3676a51c9c51aaabcd6ba18a28e82b98417db37" - integrity sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw== +"@inquirer/figures@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.11.tgz#4744e6db95288fea1dead779554859710a959a21" + integrity sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw== -"@inquirer/input@^4.1.6": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.6.tgz#329700fd5a2d2f37be63768b09afd0a44edf3c67" - integrity sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ== +"@inquirer/input@^4.1.8": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.8.tgz#8e637f1163904d951762abab4584682daf484a91" + integrity sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/number@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.9.tgz#23dae9e31de368e18c4ec2543a9f006e4bb4a98d" - integrity sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w== +"@inquirer/number@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.11.tgz#b42b7b24e9e1916d26bbdc7c368852fdb626fa9a" + integrity sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" -"@inquirer/password@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.9.tgz#1a7d14a14bd2e54294d7fa5cc9fa6da99315149c" - integrity sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ== +"@inquirer/password@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.11.tgz#f23a632fb9a18c7a7ce1f2ac36d94e8aa0b7229e" + integrity sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" -"@inquirer/prompts@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.3.2.tgz#ad0879eb3bc783c19b78c420e5eeb18a09fc9b47" - integrity sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ== - dependencies: - "@inquirer/checkbox" "^4.1.2" - "@inquirer/confirm" "^5.1.6" - "@inquirer/editor" "^4.2.7" - "@inquirer/expand" "^4.0.9" - "@inquirer/input" "^4.1.6" - "@inquirer/number" "^3.0.9" - "@inquirer/password" "^4.0.9" - "@inquirer/rawlist" "^4.0.9" - "@inquirer/search" "^3.0.9" - "@inquirer/select" "^4.0.9" - -"@inquirer/rawlist@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.9.tgz#c5f8253c87ad48713e0e8b34274fdd1aa8b08d2c" - integrity sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A== - dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/type" "^3.0.4" +"@inquirer/prompts@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.4.0.tgz#bd9be38372be8db75afb04776eb0cf096ae9814b" + integrity sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w== + dependencies: + "@inquirer/checkbox" "^4.1.4" + "@inquirer/confirm" "^5.1.8" + "@inquirer/editor" "^4.2.9" + "@inquirer/expand" "^4.0.11" + "@inquirer/input" "^4.1.8" + "@inquirer/number" "^3.0.11" + "@inquirer/password" "^4.0.11" + "@inquirer/rawlist" "^4.0.11" + "@inquirer/search" "^3.0.11" + "@inquirer/select" "^4.1.0" + +"@inquirer/rawlist@^4.0.11": + version "4.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.11.tgz#29d74eea2607cbb3d80eac7fca0011d51c74c46d" + integrity sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg== + dependencies: + "@inquirer/core" "^10.1.9" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/search@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.9.tgz#00848c93ce86dcd24989a72dabfd8aeb34d2829b" - integrity sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA== +"@inquirer/search@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.11.tgz#660b181516acc306cf21dbc1d3d49f662cb7d917" + integrity sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" yoctocolors-cjs "^2.1.2" -"@inquirer/select@^4.0.9": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.9.tgz#28a4c7b9a406798a9ea365d67dbad5e427c3febe" - integrity sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg== +"@inquirer/select@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.1.0.tgz#e99f483cb004c0247ced597f2c6015f084223dfb" + integrity sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA== dependencies: - "@inquirer/core" "^10.1.7" - "@inquirer/figures" "^1.0.10" - "@inquirer/type" "^3.0.4" + "@inquirer/core" "^10.1.9" + "@inquirer/figures" "^1.0.11" + "@inquirer/type" "^3.0.5" ansi-escapes "^4.3.2" yoctocolors-cjs "^2.1.2" @@ -1290,10 +1506,10 @@ dependencies: mute-stream "^1.0.0" -"@inquirer/type@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.4.tgz#fa5f9e91a0abf3c9e93d3e1990ecb891d8195cf2" - integrity sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA== +"@inquirer/type@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.5.tgz#fe00207e57d5f040e5b18e809c8e7abc3a2ade3a" + integrity sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1553,10 +1769,10 @@ "@napi-rs/nice-win32-ia32-msvc" "1.0.1" "@napi-rs/nice-win32-x64-msvc" "1.0.1" -"@ngtools/webpack@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.0.tgz#e96f9830e5a5ac8e2a6a67d53b839ce755fe92b1" - integrity sha512-dOm+V836ujgyrpbrqINwyYsTvNb/N+dJRcAaof1iS+gzXQZNpgOC2FadzNu5MUvdRk5khNrvkoNoFD3OmszNjQ== +"@ngtools/webpack@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.0.0-next.2.tgz#b93d565874ec3a688e0d27c8b67dd29109e3d985" + integrity sha512-Edr7kfYosxoHKpvABk1A28S2jlJQlz/7vf6E2VOK74d0sIbT+h6CgQulRlNOgi5jyH3qOldEgDm3iE+S5KMXxA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1760,103 +1976,198 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz#661a45a4709c70e59e596ec78daa9cb8b8d27604" integrity sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA== +"@rollup/rollup-android-arm-eabi@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz#6229c36cddc172c468f53107f2b7aebe2585609b" + integrity sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w== + "@rollup/rollup-android-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz#128fe8dd510d880cf98b4cb6c7add326815a0c4b" integrity sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg== +"@rollup/rollup-android-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz#d38163692d0729bd64a026c13749ecac06f847e8" + integrity sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg== + "@rollup/rollup-darwin-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz#363467bc49fd0b1e17075798ac8e9ad1e1e29535" integrity sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ== +"@rollup/rollup-darwin-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz#82601b8ff81f3dbaef28017aa3d0e9709edc99c0" + integrity sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw== + "@rollup/rollup-darwin-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz#c2fe3d85fffe47f0ed0f076b3563ada22c8af19c" integrity sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q== +"@rollup/rollup-darwin-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz#0e961354fb2bf26d691810ca61dc861d9a1e94b2" + integrity sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA== + "@rollup/rollup-freebsd-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz#d95bd8f6eaaf829781144fc8bd2d5d71d9f6a9f5" integrity sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw== +"@rollup/rollup-freebsd-arm64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz#6aee296cd6b8c39158d377c89b7e0cd0851dd7c7" + integrity sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg== + "@rollup/rollup-freebsd-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz#c3576c6011656e4966ded29f051edec636b44564" integrity sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g== +"@rollup/rollup-freebsd-x64@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz#432e49d93942225ac1b4d98254a6fb6ca0afcd17" + integrity sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ== + "@rollup/rollup-linux-arm-gnueabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz#48c87d0dee4f8dc9591a416717f91b4a89d77e3d" integrity sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg== +"@rollup/rollup-linux-arm-gnueabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz#a66910c6c63b46d45f239528ad5509097f8df885" + integrity sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg== + "@rollup/rollup-linux-arm-musleabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz#f4c4e7c03a7767f2e5aa9d0c5cfbf5c0f59f2d41" integrity sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA== +"@rollup/rollup-linux-arm-musleabihf@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz#1cfadc70d44501b0a58615a460cf1b6ec8cfddf3" + integrity sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg== + "@rollup/rollup-linux-arm64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz#1015c9d07a99005025d13b8622b7600029d0b52f" integrity sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw== +"@rollup/rollup-linux-arm64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz#d32e42b25216472dfdc5cb7df6a37667766d3855" + integrity sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A== + "@rollup/rollup-linux-arm64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz#8f895eb5577748fc75af21beae32439626e0a14c" integrity sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A== +"@rollup/rollup-linux-arm64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz#d742917d61880941be26ff8d3352d935139188b9" + integrity sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw== + "@rollup/rollup-linux-loongarch64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz#c9cd5dbbdc6b3ca4dbeeb0337498cf31949004a0" integrity sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg== +"@rollup/rollup-linux-loongarch64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz#9ad12d1a5d3abf4ecb90fbe1a49249608cee8cbb" + integrity sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg== + "@rollup/rollup-linux-powerpc64le-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz#7ebb5b4441faa17843a210f7d0583a20c93b40e4" integrity sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA== +"@rollup/rollup-linux-powerpc64le-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz#c3ca6f5ce4a8b785dd450113660d9529a75fdf2a" + integrity sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg== + "@rollup/rollup-linux-riscv64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz#10f5d7349fbd2fe78f9e36ecc90aab3154435c8d" integrity sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg== +"@rollup/rollup-linux-riscv64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz#05eb5e71db5b5b1d1a3428265a63c5f6f8a1e4b8" + integrity sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA== + "@rollup/rollup-linux-s390x-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz#196347d2fa20593ab09d0b7e2589fb69bdf742c6" integrity sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ== +"@rollup/rollup-linux-s390x-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz#6fa895f181fa6804bc6ca27c0e9a6823355436dd" + integrity sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag== + "@rollup/rollup-linux-x64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz#7193cbd8d128212b8acda37e01b39d9e96259ef8" integrity sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A== +"@rollup/rollup-linux-x64-gnu@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz#d2e69f7598c71f03287b763fdbefce4163f07419" + integrity sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ== + "@rollup/rollup-linux-x64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz#29a6867278ca0420b891574cfab98ecad70c59d1" integrity sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA== +"@rollup/rollup-linux-x64-musl@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz#9eb0075deaabf5d88a9dc8b61bd7bd122ac64ef9" + integrity sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ== + "@rollup/rollup-win32-arm64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz#89427dcac0c8e3a6d32b13a03a296a275d0de9a9" integrity sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q== +"@rollup/rollup-win32-arm64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz#bfda7178ed8cb8fa8786474a02eae9fc8649a74d" + integrity sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A== + "@rollup/rollup-win32-ia32-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz#ecb9711ba2b6d2bf6ee51265abe057ab90913deb" integrity sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w== +"@rollup/rollup-win32-ia32-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz#8e12739b9c43de8f0690b280c676af3de571cee0" + integrity sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ== + "@rollup/rollup-win32-x64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz#1973871850856ae72bc678aeb066ab952330e923" integrity sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw== -"@schematics/angular@20.0.0-next.0": - version "20.0.0-next.0" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.0.tgz#7428dea5382978bc3b6f832d36021cba3e927e25" - integrity sha512-IMJA7/okzzlw/riADSzbMEvXXCWefz69AN6pE8lV+T05mc/dkxYTJ36tm32oYdHSSLnsPev7JuvnxdgTHJgqLA== +"@rollup/rollup-win32-x64-msvc@4.36.0": + version "4.36.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz#88b23fe29d28fa647030b36e912c1b5b50831b1d" + integrity sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw== + +"@schematics/angular@20.0.0-next.2": + version "20.0.0-next.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.0.0-next.2.tgz#efd509bf2dd4e3c5b64a86229524da13883702af" + integrity sha512-du8Ft+vEGelxt4BNuSHD2PZx+9fNgZpVFtu/4N+unsjImdaK5dOstaRXJkRmBy+DUr5z6V633rN9/q1tE14VPg== dependencies: - "@angular-devkit/core" "20.0.0-next.0" - "@angular-devkit/schematics" "20.0.0-next.0" + "@angular-devkit/core" "20.0.0-next.2" + "@angular-devkit/schematics" "20.0.0-next.2" jsonc-parser "3.3.1" "@sigstore/bundle@^3.1.0": @@ -2387,16 +2698,16 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -autoprefixer@10.4.20: - version "10.4.20" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== +autoprefixer@10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.1" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" babel-loader@10.0.0: @@ -2415,14 +2726,6 @@ babel-plugin-polyfill-corejs2@^0.4.10: "@babel/helper-define-polyfill-provider" "^0.6.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" - babel-plugin-polyfill-corejs3@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" @@ -2544,7 +2847,7 @@ braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.4: +browserslist@^4.21.5, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.4: version "4.24.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -2618,11 +2921,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: +caniuse-lite@^1.0.30001688: version "1.0.30001702" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz#cde16fa8adaa066c04aec2967b6cde46354644c4" integrity sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA== +caniuse-lite@^1.0.30001702: + version "1.0.30001707" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz#c5e104d199e6f4355a898fcd995a066c7eb9bf41" + integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -2854,7 +3162,7 @@ copy-webpack-plugin@13.0.0: serialize-javascript "^6.0.2" tinyglobby "^0.2.12" -core-js-compat@^3.38.0, core-js-compat@^3.40.0: +core-js-compat@^3.40.0: version "3.41.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== @@ -3206,12 +3514,43 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" -esbuild-wasm@0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.0.tgz#56bbcc29d9eb5052ff1598248dc37dd958876e82" - integrity sha512-60iuWr6jdTVylmGXjpnqk3pCktUi5Rmjiv6EMza3h4X20BLtfL2BjUGs1+UCt2G9UK7jVGrJdUr5i1k0sL3wBg== +esbuild-wasm@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.25.1.tgz#fbe9ca6d7afbfe351389cad02c0fcd584cf40bcc" + integrity sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw== -esbuild@0.25.0, esbuild@^0.25.0: +esbuild@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.1.tgz#a16b8d070b6ad4871935277bda6ccfe852e3fa2f" + integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.1" + "@esbuild/android-arm" "0.25.1" + "@esbuild/android-arm64" "0.25.1" + "@esbuild/android-x64" "0.25.1" + "@esbuild/darwin-arm64" "0.25.1" + "@esbuild/darwin-x64" "0.25.1" + "@esbuild/freebsd-arm64" "0.25.1" + "@esbuild/freebsd-x64" "0.25.1" + "@esbuild/linux-arm" "0.25.1" + "@esbuild/linux-arm64" "0.25.1" + "@esbuild/linux-ia32" "0.25.1" + "@esbuild/linux-loong64" "0.25.1" + "@esbuild/linux-mips64el" "0.25.1" + "@esbuild/linux-ppc64" "0.25.1" + "@esbuild/linux-riscv64" "0.25.1" + "@esbuild/linux-s390x" "0.25.1" + "@esbuild/linux-x64" "0.25.1" + "@esbuild/netbsd-arm64" "0.25.1" + "@esbuild/netbsd-x64" "0.25.1" + "@esbuild/openbsd-arm64" "0.25.1" + "@esbuild/openbsd-x64" "0.25.1" + "@esbuild/sunos-x64" "0.25.1" + "@esbuild/win32-arm64" "0.25.1" + "@esbuild/win32-ia32" "0.25.1" + "@esbuild/win32-x64" "0.25.1" + +esbuild@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== @@ -5061,7 +5400,7 @@ path-to-regexp@0.1.12: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -5081,10 +5420,10 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -piscina@4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.8.0.tgz#5f5c5b1f4f3f50f8de894239c98b7b10d41ba4a6" - integrity sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA== +piscina@4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.9.2.tgz#80f2c2375231720337c703e443941adfac8caf75" + integrity sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ== optionalDependencies: "@napi-rs/nice" "^1.0.1" @@ -5409,7 +5748,35 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -rollup@4.34.9, rollup@^4.30.1: +rollup@4.36.0: + version "4.36.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.36.0.tgz#f40f4db47ba3b4f5846d32a47e580c0ed7cd8f02" + integrity sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q== + dependencies: + "@types/estree" "1.0.6" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.36.0" + "@rollup/rollup-android-arm64" "4.36.0" + "@rollup/rollup-darwin-arm64" "4.36.0" + "@rollup/rollup-darwin-x64" "4.36.0" + "@rollup/rollup-freebsd-arm64" "4.36.0" + "@rollup/rollup-freebsd-x64" "4.36.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.36.0" + "@rollup/rollup-linux-arm-musleabihf" "4.36.0" + "@rollup/rollup-linux-arm64-gnu" "4.36.0" + "@rollup/rollup-linux-arm64-musl" "4.36.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.36.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.36.0" + "@rollup/rollup-linux-riscv64-gnu" "4.36.0" + "@rollup/rollup-linux-s390x-gnu" "4.36.0" + "@rollup/rollup-linux-x64-gnu" "4.36.0" + "@rollup/rollup-linux-x64-musl" "4.36.0" + "@rollup/rollup-win32-arm64-msvc" "4.36.0" + "@rollup/rollup-win32-ia32-msvc" "4.36.0" + "@rollup/rollup-win32-x64-msvc" "4.36.0" + fsevents "~2.3.2" + +rollup@^4.30.1: version "4.34.9" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.34.9.tgz#e1eb397856476778aeb6ac2ac3d09b2ce177a558" integrity sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ== @@ -5487,10 +5854,10 @@ sass-loader@16.0.5: dependencies: neo-async "^2.6.2" -sass@1.85.1: - version "1.85.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.1.tgz#18ab0bb48110ae99163778f06445b406148ca0d5" - integrity sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag== +sass@1.86.0: + version "1.86.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.86.0.tgz#f49464fb6237a903a93f4e8760ef6e37a5030114" + integrity sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -6171,10 +6538,10 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vite@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.0.tgz#9dcb543380dab18d8384eb840a76bf30d78633f0" - integrity sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ== +vite@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.2.2.tgz#8098b12a6bfd95abe39399aa7d5faa56545d7a1a" + integrity sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ== dependencies: esbuild "^0.25.0" postcss "^8.5.3" diff --git a/integration/npm-packages-from-runfiles.mjs b/integration/npm-packages-from-runfiles.mjs deleted file mode 100644 index db16950d7c07..000000000000 --- a/integration/npm-packages-from-runfiles.mjs +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Collection of common logic for dealing with Bazel runfiles within - * integration tests. - */ - -import path from 'path'; -import fs from 'fs'; - -/** - * Gets all built Angular NPM package artifacts by querying the Bazel runfiles. - * In case there is a runfiles manifest (e.g. on Windows), the packages are resolved - * through the manifest because the runfiles are not symlinked and cannot be searched - * within the real filesystem. - * TODO: Simplify if Bazel on Windows uses runfile symlinking. - */ -export function getNpmPackagesFromRunfiles() { - // Path to the Bazel runfiles manifest if present. This file is present if runfiles are - // not symlinked into the runfiles directory. - const runfilesManifestPath = process.env.RUNFILES_MANIFEST_FILE; - const workspacePath = 'angular_material/src'; - if (!runfilesManifestPath) { - const packageRunfilesDir = path.join(process.env.RUNFILES, workspacePath); - return fs - .readdirSync(packageRunfilesDir) - .map(name => ({name, pkgPath: path.join(packageRunfilesDir, name, 'npm_package/')})) - .filter(({pkgPath}) => fs.existsSync(pkgPath)); - } - const workspaceManifestPathRegex = new RegExp(`^${workspacePath}/[\\w-]+/npm_package$`); - return fs - .readFileSync(runfilesManifestPath, 'utf8') - .split('\n') - .map(mapping => mapping.split(' ')) - .filter(([runfilePath]) => runfilePath.match(workspaceManifestPathRegex)) - .map(([runfilePath, realPath]) => ({ - name: path.relative(workspacePath, runfilePath).split(path.sep)[0], - pkgPath: realPath, - })); -} diff --git a/integration/package.json b/integration/package.json new file mode 100644 index 000000000000..400e22592be4 --- /dev/null +++ b/integration/package.json @@ -0,0 +1,10 @@ +{ + "dependencies": { + "@angular/cdk": "workspace:*", + "@angular/cdk-experimental": "workspace:*", + "@angular/material": "workspace:*", + "@angular/material-experimental": "workspace:*", + "@angular/google-maps": "workspace:*", + "@angular/youtube-player": "workspace:*" + } +} diff --git a/integration/size-test/BUILD.bazel b/integration/size-test/BUILD.bazel deleted file mode 100644 index 41db55a67cf5..000000000000 --- a/integration/size-test/BUILD.bazel +++ /dev/null @@ -1,34 +0,0 @@ -load("@npm//@bazel/esbuild:index.bzl", "esbuild_config") -load("//tools:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -exports_files([ - "rollup.config.js", - "terser-config.json", - "index-tmpl.ts", -]) - -esbuild_config( - name = "esbuild_config", - config_file = "esbuild.config.mjs", - deps = [ - "@npm//@angular/build", - "@npm//@angular/compiler-cli", - "@npm//@babel/core", - ], -) - -ts_library( - name = "check-size", - srcs = ["check-size.ts"], - # TODO(ESM): remove this once the Bazel NodeJS rules can handle ESM with `nodejs_binary`. - devmode_module = "commonjs", - deps = [ - "@npm//@bazel/runfiles", - "@npm//@types/node", - "@npm//@types/yaml", - "@npm//chalk", - "@npm//yaml", - ], -) diff --git a/integration/size-test/cdk/drag-drop/BUILD.bazel b/integration/size-test/cdk/drag-drop/BUILD.bazel deleted file mode 100644 index 84c685425c87..000000000000 --- a/integration/size-test/cdk/drag-drop/BUILD.bazel +++ /dev/null @@ -1,13 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "basic", - file = "basic.ts", - deps = ["//src/cdk/drag-drop"], -) - -size_test( - name = "all-directives", - file = "all-directives.ts", - deps = ["//src/cdk/drag-drop"], -) diff --git a/integration/size-test/cdk/drag-drop/all-directives.ts b/integration/size-test/cdk/drag-drop/all-directives.ts deleted file mode 100644 index 303e9633ae49..000000000000 --- a/integration/size-test/cdk/drag-drop/all-directives.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {Component, NgModule} from '@angular/core'; - -/** Component using all parts of the drag-drop module. All directives should be preserved. */ -@Component({ - standalone: false, - template: ` -
-
-
- handle - Placeholder - Preview -
-
-
- `, -}) -export class TestComponent {} - -@NgModule({ - imports: [DragDropModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/cdk/drag-drop/basic.ts b/integration/size-test/cdk/drag-drop/basic.ts deleted file mode 100644 index aa1f7757d32e..000000000000 --- a/integration/size-test/cdk/drag-drop/basic.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {DragDropModule} from '@angular/cdk/drag-drop'; -import {Component, NgModule} from '@angular/core'; - -/** - * Basic component using `CdkDropList` and `CdkDrag`. Other parts of the drag-drop - * module such as `CdkDropListGroup`, `CdkDragPlaceholder`, `CdkDragPreview` or - * `CdkDragHandle` are not used and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` -
-
-
- `, -}) -export class TestComponent {} - -@NgModule({ - imports: [DragDropModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/check-size.ts b/integration/size-test/check-size.ts deleted file mode 100644 index 0ad6615f10aa..000000000000 --- a/integration/size-test/check-size.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Script that measures the size of a given test file and compares it - * with an entry in a file size golden. If the size deviates by certain - * amount, the script will fail with a non-zero exit code. - */ - -import {readFileSync, statSync, writeFileSync} from 'fs'; -import {parse, stringify} from 'yaml'; -import {runfiles} from '@bazel/runfiles'; - -const chalk = require('chalk'); - -/** - * Absolute byte deviation from the expected value that is allowed. If the - * size deviates by 500 bytes of the expected value, the script will fail. - */ -const ABSOLUTE_BYTE_THRESHOLD = 500; -/** - * Percentage deviation from the expected value that is allowed. If the - * size deviates by 1% of the expected value, the script will fail. - */ -const PERCENTAGE_DEVIATION_THRESHOLD = 1; - -/** Type that represents the parsed size-test golden. */ -type Golden = {[testId: string]: number}; - -/** - * Extracted command line arguments specified by the Bazel NodeJS binaries: - * - `testId`: Unique id for the given test file that is used as key in the golden. - * - `testFileRootpath`: Bazel rootpath that resolves to the test file that should be measured. - * - `isApprove`: Whether the script runs in approve mode, and the golden should be updated - * with the actual measured size. - */ -const [testId, testFileRootpath, isApprove] = process.argv.slice(2); -const testFilePath = runfiles.resolveWorkspaceRelative(testFileRootpath); -const goldenFilePath = runfiles.resolveWorkspaceRelative('goldens/size-test.yaml'); - -const golden: Golden = parse(readFileSync(goldenFilePath, 'utf8')) || {}; -const fileStat = statSync(testFilePath); -const actualSize = fileStat.size; - -// If in approve mode, update the golden to reflect the new size. -if (isApprove) { - golden[testId] = actualSize; - writeFileSync(goldenFilePath, stringify(getSortedGolden())); - console.info(chalk.green(`Approved golden size for "${testId}"`)); - process.exit(0); -} - -// If no size has been collected for the test id, report an error. -if (golden[testId] === undefined) { - console.error(`No golden size for "${testId}". Please create a new entry.`); - printApproveCommand(); - process.exit(1); -} - -const expectedSize = Number(golden[testId]); -const absoluteSizeDiff = Math.abs(actualSize - expectedSize); -const deviatedByPercentage = - absoluteSizeDiff > (expectedSize * PERCENTAGE_DEVIATION_THRESHOLD) / 100; -const deviatedByAbsoluteDiff = absoluteSizeDiff > ABSOLUTE_BYTE_THRESHOLD; - -// Always print the expected and actual size so that it's easier to find culprit -// commits when the size slowly moves toward the threshold boundaries. -console.info(chalk.yellow(`Expected: ${expectedSize}, but got: ${actualSize}`)); - -if (deviatedByPercentage) { - console.error(`Actual size deviates by more than 1% of the expected size. `); - printApproveCommand(); - process.exit(1); -} else if (deviatedByAbsoluteDiff) { - console.error(`Actual size deviates by more than 500 bytes from the expected.`); - printApproveCommand(); - process.exit(1); -} - -/** Prints the command for approving the current test. */ -function printApproveCommand() { - console.info(chalk.yellow('You can approve the golden by running the following command:')); - console.info(chalk.yellow(` bazel run ${process.env['BAZEL_TARGET']}.approve`)); -} - -/** Gets the lexicographically sorted size-test golden. */ -function getSortedGolden(): Golden { - return Object.keys(golden) - .sort() - .reduce((result: Golden, key: string) => { - return {...result, [key]: golden[key]}; - }, {} as Golden); -} diff --git a/integration/size-test/esbuild.config.mjs b/integration/size-test/esbuild.config.mjs deleted file mode 100644 index 55454056b84b..000000000000 --- a/integration/size-test/esbuild.config.mjs +++ /dev/null @@ -1,87 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import babel from '@babel/core'; -import {createEs2015LinkerPlugin} from '@angular/compiler-cli/linker/babel'; -import {ConsoleLogger, NodeJSFileSystem, LogLevel} from '@angular/compiler-cli'; -import {GLOBAL_DEFS_FOR_TERSER_WITH_AOT} from '@angular/compiler-cli/private/tooling'; -import ngBuild from '@angular/build/private'; -import fs from 'fs'; - -/** Babel plugin running the Angular linker. */ -const linkerBabelPlugin = createEs2015LinkerPlugin({ - fileSystem: new NodeJSFileSystem(), - logger: new ConsoleLogger(LogLevel.warn), - linkerJitMode: false, -}); - -/** - * ESBuild plugin configuring various optimization Babel plugins. The Babel plugins - * configured as part of this plugin run in the Angular CLI compilation pipeline as well. - */ -const esbuildBabelOptimizePlugin = { - name: 'ng-babel-optimize-esbuild', - setup: build => { - build.onLoad({filter: /.*/}, async args => { - const filePath = args.path; - const content = await fs.promises.readFile(filePath, 'utf8'); - const plugins = [ - linkerBabelPlugin, - ngBuild.adjustStaticMembers, - ngBuild.elideAngularMetadata, - ngBuild.adjustTypeScriptEnums, - ]; - - // All files except for the auto-generated module entry-point are considered side-effect - // free. For these we can add the pure-top level Babel plugin. This matches conceptually - // with what is done in the Angular CLI compilation pipeline, with respect to everything - // in this repo being an official side-effect free APF package. - if (!args.path.includes('autogenerated_module_index.mjs')) { - plugins.push(ngBuild.markTopLevelPure); - } - - const {code} = await babel.transformAsync(content, { - filename: filePath, - filenameRelative: filePath, - plugins: plugins, - // Sourcemaps are generated inline so that ESBuild can process them. - sourceMaps: 'inline', - compact: false, - }); - - return {contents: code}; - }); - }, -}; - -export default { - // Note: We prefer `.mjs` here as this is the extension used by Angular APF packages. - resolveExtensions: ['.mjs', '.js'], - conditions: ['es2020', 'es2015'], - mainFields: ['fesm2020', 'es2020', 'es2015', 'module'], - format: 'iife', - // The majority of these options match with the ones the CLI sets: - // https://github.com/angular/angular-cli/blob/0d76bf04bca6e083865972b5398a32bbe9396e14/packages/angular_devkit/build_angular/src/webpack/plugins/javascript-optimizer-worker.ts#L133. - treeShaking: true, - minifyIdentifiers: true, - minifySyntax: true, - minifyWhitespace: false, - pure: ['forwardRef'], - legalComments: 'none', - // ESBuild requires the `define` option to take a string-based dictionary. - define: convertObjectToStringDictionary(GLOBAL_DEFS_FOR_TERSER_WITH_AOT), - plugins: [esbuildBabelOptimizePlugin], -}; - -/** Converts an object to a string dictionary. */ -function convertObjectToStringDictionary(value) { - return Object.entries(value).reduce((result, [propName, value]) => { - result[propName] = String(value); - return result; - }, {}); -} diff --git a/integration/size-test/index-tmpl.ts b/integration/size-test/index-tmpl.ts deleted file mode 100644 index b415eb83a18d..000000000000 --- a/integration/size-test/index-tmpl.ts +++ /dev/null @@ -1,4 +0,0 @@ -import {platformBrowser} from '@angular/platform-browser'; -import {AppModule} from './$TEST_FILE'; - -platformBrowser().bootstrapModule(AppModule); diff --git a/integration/size-test/index.bzl b/integration/size-test/index.bzl deleted file mode 100644 index 93841aa94d38..000000000000 --- a/integration/size-test/index.bzl +++ /dev/null @@ -1,89 +0,0 @@ -load("@npm//@angular/build-tooling/bazel:expand_template.bzl", "expand_template") -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "nodejs_test") -load("@bazel_skylib//lib:paths.bzl", "paths") -load("@npm//@bazel/esbuild:index.bzl", "esbuild") -load("@npm//@bazel/terser:index.bzl", "terser_minified") -load("//tools:defaults.bzl", "ng_module") - -""" - Performs size measurements for the specified file. The file will be built as part - of a `ng_module` and then will be optimized with esbuild, babel and terser. - - The resulting size will be validated against a golden file to ensure that we don't - regress in payload size, or that we can improvements to payload size. -""" - -def size_test(name, file, deps): - # Generates an unique id for the given size test. e.g. if the macro is called - # within the `integration/size-test/material` package with `name = list`, then - # the unique id will be set to `material/list`. - test_id = "%s/%s" % (native.package_name()[len("integration/size-test/"):], name) - index_file = "%s_autogenerated_module_index.ts" % name - - expand_template( - name = "%s_index" % name, - output_name = index_file, - template = "//integration/size-test:index-tmpl.ts", - substitutions = { - "$TEST_FILE": paths.split_extension(file)[0], - }, - ) - - ng_module( - name = "%s_lib" % name, - srcs = ["%s.ts" % name, index_file], - testonly = True, - deps = [ - "@npm//@angular/core", - "@npm//@angular/platform-browser", - ] + deps, - ) - - esbuild( - name = "%s_bundle" % name, - config = "//integration/size-test:esbuild_config", - testonly = True, - minify = True, - entry_point = index_file, - deps = [ - ":%s_lib" % name, - ], - target = "es2020", - platform = "browser", - # Link the workspace root so that files can be loaded from the workspace. - link_workspace_root = True, - sourcemap = "external", - sources_content = True, - ) - - terser_minified( - testonly = True, - name = "%s_bundle_min" % name, - src = "%s_bundle" % name, - config_file = "//integration/size-test:terser-config.json", - sourcemap = False, - ) - - nodejs_test( - name = name, - data = [ - "//goldens:size-test.yaml", - "//integration/size-test:check-size", - ":%s_bundle_min" % name, - ], - entry_point = "//integration/size-test:check-size.ts", - args = [test_id, "$(rootpath :%s_bundle_min)" % name], - ) - - nodejs_binary( - name = "%s.approve" % name, - testonly = True, - templated_args = ["--bazel_patch_module_resolver"], - data = [ - "//goldens:size-test.yaml", - "//integration/size-test:check-size", - ":%s_bundle_min" % name, - ], - entry_point = "//integration/size-test:check-size.ts", - args = [test_id, "$(rootpath :%s_bundle_min)" % name, "true"], - ) diff --git a/integration/size-test/material/autocomplete/BUILD.bazel b/integration/size-test/material/autocomplete/BUILD.bazel deleted file mode 100644 index 1deede624097..000000000000 --- a/integration/size-test/material/autocomplete/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "without-optgroup", - file = "without-optgroup.ts", - deps = ["//src/material/autocomplete"], -) diff --git a/integration/size-test/material/autocomplete/without-optgroup.ts b/integration/size-test/material/autocomplete/without-optgroup.ts deleted file mode 100644 index ef4881841d1c..000000000000 --- a/integration/size-test/material/autocomplete/without-optgroup.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatAutocompleteModule} from '@angular/material/autocomplete'; - -/** - * Basic component using `MatAutocomplete` and `MatOption`. Other supported parts of the - * autocomplete like `MatOptgroup` are not used and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - - First - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatAutocompleteModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/button-toggle/BUILD.bazel b/integration/size-test/material/button-toggle/BUILD.bazel deleted file mode 100644 index f3c7998dd6bd..000000000000 --- a/integration/size-test/material/button-toggle/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "standalone", - file = "standalone.ts", - deps = ["//src/material/button-toggle"], -) diff --git a/integration/size-test/material/button-toggle/standalone.ts b/integration/size-test/material/button-toggle/standalone.ts deleted file mode 100644 index c6c8bb47d00b..000000000000 --- a/integration/size-test/material/button-toggle/standalone.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatButtonToggleModule} from '@angular/material/button-toggle'; - -/** - * Basic component using a standalone `MatButtonToggle`. Other parts of the button-toggle - * module such as `MatButtonToggleGroup` are not used and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - Center text - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatButtonToggleModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/chips/BUILD.bazel b/integration/size-test/material/chips/BUILD.bazel deleted file mode 100644 index 4a2dc13e56c0..000000000000 --- a/integration/size-test/material/chips/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "basic", - file = "basic.ts", - deps = ["//src/material/chips"], -) diff --git a/integration/size-test/material/chips/basic.ts b/integration/size-test/material/chips/basic.ts deleted file mode 100644 index d5607a708401..000000000000 --- a/integration/size-test/material/chips/basic.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatChipsModule} from '@angular/material/chips'; - -/** - * Basic component using `MatChipList` and `MatChip`. Other supported parts of the - * chip module such as `MatChipRemove` are not used and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - First - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatChipsModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/datepicker/range-picker/BUILD.bazel b/integration/size-test/material/datepicker/range-picker/BUILD.bazel deleted file mode 100644 index 8acc49078791..000000000000 --- a/integration/size-test/material/datepicker/range-picker/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "without-form-field", - file = "without-form-field.ts", - deps = ["//src/material/datepicker"], -) diff --git a/integration/size-test/material/datepicker/range-picker/without-form-field.ts b/integration/size-test/material/datepicker/range-picker/without-form-field.ts deleted file mode 100644 index 52a85d09c21f..000000000000 --- a/integration/size-test/material/datepicker/range-picker/without-form-field.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatDatepickerModule} from '@angular/material/datepicker'; - -/** - * Basic component using `MatDateRangePicker` with `MatDatepickerToggle`. Form fields - * are optionally used in combination with the date-range input, so we expect that to - * be tree-shaken away in this example. Similarly the standard datepicker input directive - * should be omitted. - */ -@Component({ - standalone: false, - template: ` - - - - - - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatDatepickerModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/expansion/BUILD.bazel b/integration/size-test/material/expansion/BUILD.bazel deleted file mode 100644 index 07d2d1249eab..000000000000 --- a/integration/size-test/material/expansion/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "without-accordion", - file = "without-accordion.ts", - deps = ["//src/material/expansion"], -) diff --git a/integration/size-test/material/expansion/without-accordion.ts b/integration/size-test/material/expansion/without-accordion.ts deleted file mode 100644 index 10be13872738..000000000000 --- a/integration/size-test/material/expansion/without-accordion.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatExpansionModule} from '@angular/material/expansion'; - -/** - * Basic component using `MatExpansionPanel` and `MatExpansionPanelHeader`. Other parts of - * the module such as `MatAccordion` or `CdkAccordion` should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - Title - Content - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatExpansionModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/form-field/BUILD.bazel b/integration/size-test/material/form-field/BUILD.bazel deleted file mode 100644 index 4030cd1032b9..000000000000 --- a/integration/size-test/material/form-field/BUILD.bazel +++ /dev/null @@ -1,19 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "basic", - file = "basic.ts", - deps = [ - "//src/material/form-field", - "//src/material/input", - ], -) - -size_test( - name = "advanced", - file = "advanced.ts", - deps = [ - "//src/material/form-field", - "//src/material/input", - ], -) diff --git a/integration/size-test/material/form-field/advanced.ts b/integration/size-test/material/form-field/advanced.ts deleted file mode 100644 index d663269732cf..000000000000 --- a/integration/size-test/material/form-field/advanced.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatFormFieldModule} from '@angular/material/form-field'; -import {MatInputModule} from '@angular/material/input'; - -/** - * Advanced component using `MatFormField` and `MatInput` in combination with content - * directives such as `MatError`, `MatHint`, `MatPrefix` or `MatSuffix`. - */ -@Component({ - standalone: false, - template: ` - -
-
- Error - Hint - -
- `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatInputModule, MatFormFieldModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/form-field/basic.ts b/integration/size-test/material/form-field/basic.ts deleted file mode 100644 index fb518efb9898..000000000000 --- a/integration/size-test/material/form-field/basic.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatFormFieldModule} from '@angular/material/form-field'; -import {MatInputModule} from '@angular/material/input'; - -/** - * Basic component using `MatFormField` and `MatInput`. Other parts of the form-field - * module such as `MatError`, `MatHint`, `MatPrefix` or `MatSuffix` are not used - * and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatInputModule, MatFormFieldModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/list/BUILD.bazel b/integration/size-test/material/list/BUILD.bazel deleted file mode 100644 index c349ba35a86c..000000000000 --- a/integration/size-test/material/list/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "nav-list", - file = "nav-list.ts", - deps = ["//src/material/list"], -) diff --git a/integration/size-test/material/list/nav-list.ts b/integration/size-test/material/list/nav-list.ts deleted file mode 100644 index 576120f476e9..000000000000 --- a/integration/size-test/material/list/nav-list.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatListModule} from '@angular/material/list'; - -/** - * Basic component using `MatNavList` and `MatListItem`. Other parts of the list - * module such as `MatList`, `MatSelectionList` or `MatListOption` are not used - * and should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - - hello - - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatListModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/menu/BUILD.bazel b/integration/size-test/material/menu/BUILD.bazel deleted file mode 100644 index b05792da3d1d..000000000000 --- a/integration/size-test/material/menu/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "without-lazy-content", - file = "without-lazy-content.ts", - deps = ["//src/material/menu"], -) diff --git a/integration/size-test/material/menu/without-lazy-content.ts b/integration/size-test/material/menu/without-lazy-content.ts deleted file mode 100644 index 602b9fb25cad..000000000000 --- a/integration/size-test/material/menu/without-lazy-content.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatMenuModule} from '@angular/material/menu'; - -/** - * Basic component using `MatMenu` and `MatMenuTrigger`. No lazy `MatMenuContent` is - * specified, so it should be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatMenuModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/radio/BUILD.bazel b/integration/size-test/material/radio/BUILD.bazel deleted file mode 100644 index 12e1478d275f..000000000000 --- a/integration/size-test/material/radio/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "without-group", - file = "without-group.ts", - deps = ["//src/material/radio"], -) diff --git a/integration/size-test/material/radio/without-group.ts b/integration/size-test/material/radio/without-group.ts deleted file mode 100644 index e976e49bf95c..000000000000 --- a/integration/size-test/material/radio/without-group.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatRadioModule} from '@angular/material/radio'; - -/** - * Basic component using `MatRadioButton`. Doesn't use a `MatRadioGroup`, so the class - * should be tree-shaken away properly. - */ -@Component({ - standalone: false, - template: ` - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatRadioModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/select/BUILD.bazel b/integration/size-test/material/select/BUILD.bazel deleted file mode 100644 index e973d9d851cb..000000000000 --- a/integration/size-test/material/select/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "basic", - file = "basic.ts", - deps = ["//src/material/select"], -) diff --git a/integration/size-test/material/select/basic.ts b/integration/size-test/material/select/basic.ts deleted file mode 100644 index 69b5947d38fa..000000000000 --- a/integration/size-test/material/select/basic.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatSelectModule} from '@angular/material/select'; - -/** - * Basic component using `MatSelect` and `MatOption`. Other supported parts of the - * select like `MatOptgroup` or `MatSelectTrigger` are not used and should be - * tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - First - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatSelectModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/tabs/BUILD.bazel b/integration/size-test/material/tabs/BUILD.bazel deleted file mode 100644 index 2138fad1bb66..000000000000 --- a/integration/size-test/material/tabs/BUILD.bazel +++ /dev/null @@ -1,13 +0,0 @@ -load("//integration/size-test:index.bzl", "size_test") - -size_test( - name = "basic", - file = "basic.ts", - deps = ["//src/material/tabs"], -) - -size_test( - name = "advanced", - file = "advanced.ts", - deps = ["//src/material/tabs"], -) diff --git a/integration/size-test/material/tabs/advanced.ts b/integration/size-test/material/tabs/advanced.ts deleted file mode 100644 index 9f953bd0078e..000000000000 --- a/integration/size-test/material/tabs/advanced.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatTabsModule} from '@angular/material/tabs'; - -/** - * Advanced component using `MatTabGroup` and `MatTab` in combination with - * lazy `MatTabContent` and `MatTabLabel`. - */ -@Component({ - standalone: false, - template: ` - - - Label - Content - - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatTabsModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/material/tabs/basic.ts b/integration/size-test/material/tabs/basic.ts deleted file mode 100644 index 92ccd61b72e5..000000000000 --- a/integration/size-test/material/tabs/basic.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {Component, NgModule} from '@angular/core'; -import {MatTabsModule} from '@angular/material/tabs'; - -/** - * Basic component using `MatTabGroup` and `MatTab`. Other parts of the tabs - * module such as lazy `MatTabContent` or `MatTabLabel` are not used and should - * be tree-shaken away. - */ -@Component({ - standalone: false, - template: ` - - Content - - `, -}) -export class TestComponent {} - -@NgModule({ - imports: [MatTabsModule], - declarations: [TestComponent], - bootstrap: [TestComponent], -}) -export class AppModule {} diff --git a/integration/size-test/terser-config.json b/integration/size-test/terser-config.json deleted file mode 100644 index d0af1569ea37..000000000000 --- a/integration/size-test/terser-config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ecma": "es2020", - "compress": { - "passes": 2, - "pure_getters": true - }, - "format": { - "ascii_only": true, - "wrap_func_args": false - }, - "mangle": false -} diff --git a/integration/size-test/tsconfig.json b/integration/size-test/tsconfig.json deleted file mode 100644 index bbd7a5761215..000000000000 --- a/integration/size-test/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true, - "lib": ["es2015"], - "types": ["node"] - } -} diff --git a/integration/ts-compat/BUILD.bazel b/integration/ts-compat/BUILD.bazel index c0232d31eb76..b1acfbd51a31 100644 --- a/integration/ts-compat/BUILD.bazel +++ b/integration/ts-compat/BUILD.bazel @@ -1,5 +1,5 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file") -load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test") +load("@aspect_rules_js//js:defs.bzl", "js_test") load("//integration/ts-compat:import-all-entry-points.bzl", "generate_import_all_entry_points_file") package(default_visibility = ["//visibility:public"]) @@ -18,24 +18,24 @@ typescript_version_packages = [ # Generates a NodeJS test for each configured TypeScript version. [ - nodejs_test( + js_test( name = ts_pkg_name, args = [ts_pkg_name], + chdir = package_name(), data = [ "helpers.mjs", "test.mjs", ":import-all-entry-points-file", - "//integration:npm-packages-from-runfiles", - "//src/cdk:npm_package", - "//src/cdk-experimental:npm_package", - "//src/google-maps:npm_package", - "//src/material:npm_package", - "//src/material-experimental:npm_package", - "//src/youtube-player:npm_package", - "@npm//@bazel/runfiles", - "@npm//shelljs", - "@npm//%s" % ts_pkg_name, - "@npm//@types/node", + "//:node_modules/shelljs", + "//integration:node_modules/@angular/cdk", + "//integration:node_modules/@angular/cdk-experimental", + "//integration:node_modules/@angular/google-maps", + "//integration:node_modules/@angular/material", + "//integration:node_modules/@angular/material-experimental", + "//integration:node_modules/@angular/youtube-player", + "//:node_modules/%s" % ts_pkg_name, + "//:node_modules/@types/node", + "//:node_modules/@types/selenium-webdriver", ], entry_point = "test.mjs", ) diff --git a/integration/ts-compat/helpers.mjs b/integration/ts-compat/helpers.mjs index 685b520b6073..511ef3ce08bf 100644 --- a/integration/ts-compat/helpers.mjs +++ b/integration/ts-compat/helpers.mjs @@ -1,21 +1,12 @@ -import {join} from 'path'; -import {unlinkSync} from 'fs'; +import path from 'path'; import shelljs from 'shelljs'; import {fork} from 'child_process'; -import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs'; -import {runfiles} from '@bazel/runfiles'; // Exit if any command fails. shelljs.set('-e'); -// List of NPM packages that have been built for the current test target. -const npmPackages = getNpmPackagesFromRunfiles(); -// Path to the node modules of the workspace. -const nodeModulesDir = runfiles.resolve('npm/node_modules'); // Path to the generated file that imports all entry-points. -const testFilePath = runfiles.resolveWorkspaceRelative( - 'integration/ts-compat/import-all-entry-points.ts', -); +const testFilePath = path.resolve('./import-all-entry-points.ts'); /** * Runs the TypeScript compatibility test with the specified tsc binary. The @@ -24,18 +15,6 @@ const testFilePath = runfiles.resolveWorkspaceRelative( */ export async function runTypeScriptCompatibilityTest(tscBinPath) { return new Promise((resolve, reject) => { - const angularDir = join(nodeModulesDir, '@angular/'); - - // Create the `node_modules/@angular` directory in case it's not present. - shelljs.mkdir('-p', angularDir); - - // Symlink npm packages into `node_modules/` so that the project can - // be compiled without path mappings (simulating a real project). - for (const {name, pkgPath} of npmPackages) { - console.info(`Linking "@angular/${name}" into node modules..`); - shelljs.ln('-sf', pkgPath, join(angularDir, name)); - } - const tscArgs = [ '--strict', // Disables automatic type resolution. In non-sandbox environments, the node modules @@ -43,10 +22,6 @@ export async function runTypeScriptCompatibilityTest(tscBinPath) { '--types', '--lib', 'es2015,dom', - // Ensures that `node_modules` can be resolved. By default, in sandbox environments the - // node modules cannot be resolved because they are wrapped in the `npm/node_modules` folder - '--baseUrl', - nodeModulesDir, testFilePath, ]; // Run `tsc` to compile the project. The stdout/stderr output is inherited, so that @@ -54,12 +29,6 @@ export async function runTypeScriptCompatibilityTest(tscBinPath) { const tscProcess = fork(tscBinPath, tscArgs, {stdio: 'inherit'}); tscProcess.on('exit', exitCode => { - // Remove symlinks to keep a clean repository state. - for (const {name} of npmPackages) { - console.info(`Removing link for "@angular/${name}"..`); - unlinkSync(join(angularDir, name)); - shelljs.rm('-rf', join(angularDir, name)); - } exitCode === 0 ? resolve() : reject(); }); }); diff --git a/integration/ts-compat/test.mjs b/integration/ts-compat/test.mjs index 50a707eb7399..651817019ba2 100644 --- a/integration/ts-compat/test.mjs +++ b/integration/ts-compat/test.mjs @@ -4,8 +4,8 @@ * by a Bazel `nodejs_test` target and relies on Bazel runfile resolution. */ -import {runfiles} from '@bazel/runfiles'; import {runTypeScriptCompatibilityTest} from './helpers.mjs'; +import path from 'path'; const [pkgName] = process.argv.slice(2); if (!pkgName) { @@ -13,7 +13,7 @@ if (!pkgName) { process.exit(1); } -const tscBin = runfiles.resolve(`npm/node_modules/${pkgName}/bin/tsc`); +const tscBin = path.resolve(`../../node_modules/${pkgName}/bin/tsc`); runTypeScriptCompatibilityTest(tscBin).catch(e => { console.error(e); diff --git a/integration/yarn-pnp-compat/package.json b/integration/yarn-pnp-compat/package.json index 00ed1b07035c..20018fc36dba 100644 --- a/integration/yarn-pnp-compat/package.json +++ b/integration/yarn-pnp-compat/package.json @@ -19,7 +19,6 @@ "@angular/material": "file:../../dist/releases/material", "@angular/material-experimental": "file:../../dist/releases/material-experimental", "@angular/platform-browser": "file:../../node_modules/@angular/platform-browser", - "@angular/platform-browser-dynamic": "file:../../node_modules/@angular/platform-browser-dynamic", "@angular/router": "file:../../node_modules/@angular/router", "rxjs": "^7.5.5", "tslib": "^2.3.0", diff --git a/integration/yarn-pnp-compat/src/main.ts b/integration/yarn-pnp-compat/src/main.ts index 947bb036a501..5276a5b7b744 100644 --- a/integration/yarn-pnp-compat/src/main.ts +++ b/integration/yarn-pnp-compat/src/main.ts @@ -1,5 +1,5 @@ import {enableProdMode} from '@angular/core'; -import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; +import {platformBrowser} from '@angular/platform-browser'; import {AppModule} from './app/app.module'; import {environment} from './environments/environment'; @@ -8,6 +8,6 @@ if (environment.production) { enableProdMode(); } -platformBrowserDynamic() +platformBrowser() .bootstrapModule(AppModule) .catch(err => console.error(err)); diff --git a/integration/yarn-pnp-compat/src/test.ts b/integration/yarn-pnp-compat/src/test.ts index 826f7f0d03fa..e9fd7db25dac 100644 --- a/integration/yarn-pnp-compat/src/test.ts +++ b/integration/yarn-pnp-compat/src/test.ts @@ -2,10 +2,7 @@ import 'zone.js/testing'; import {getTestBed} from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import {BrowserTestingModule, platformBrowserTesting} from '@angular/platform-browser/testing'; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()); diff --git a/integration/yarn-pnp-compat/yarn.lock b/integration/yarn-pnp-compat/yarn.lock index 874b9154e2d8..cc59be890f8c 100644 --- a/integration/yarn-pnp-compat/yarn.lock +++ b/integration/yarn-pnp-compat/yarn.lock @@ -15,45 +15,45 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.2000.0-next.0": - version: 0.2000.0-next.0 - resolution: "@angular-devkit/architect@npm:0.2000.0-next.0" +"@angular-devkit/architect@npm:0.2000.0-next.2": + version: 0.2000.0-next.2 + resolution: "@angular-devkit/architect@npm:0.2000.0-next.2" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.2" rxjs: "npm:7.8.2" - checksum: 10/a87d8395a35d9ae886b7530d86537568a671491b1d1641757b393325d64b75833c1f749cea5c838e687df684450098fa3220403d2d51139ab14f8830ac28eef7 + checksum: 10/76cfde4e4b697ac1c51ec09c8d7c50ec3faf8cb708d43e43e2571ce9cbd6cf1c6bc35383c4a95a95237b0873fcf59035708b6641bb47518405aeb2cb350e72c2 languageName: node linkType: hard "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.0 - resolution: "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular#../../node_modules/@angular-devkit/build-angular::hash=dad45e&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.2 + resolution: "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular#../../node_modules/@angular-devkit/build-angular::hash=7f354b&locator=yarn-pnp-compat%40workspace%3A." dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@angular-devkit/build-webpack": "npm:0.2000.0-next.0" - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular/build": "npm:20.0.0-next.0" - "@babel/core": "npm:7.26.9" - "@babel/generator": "npm:7.26.9" + "@angular-devkit/architect": "npm:0.2000.0-next.2" + "@angular-devkit/build-webpack": "npm:0.2000.0-next.2" + "@angular-devkit/core": "npm:20.0.0-next.2" + "@angular/build": "npm:20.0.0-next.2" + "@babel/core": "npm:7.26.10" + "@babel/generator": "npm:7.26.10" "@babel/helper-annotate-as-pure": "npm:7.25.9" "@babel/helper-split-export-declaration": "npm:7.24.7" "@babel/plugin-transform-async-generator-functions": "npm:7.26.8" "@babel/plugin-transform-async-to-generator": "npm:7.25.9" - "@babel/plugin-transform-runtime": "npm:7.26.9" + "@babel/plugin-transform-runtime": "npm:7.26.10" "@babel/preset-env": "npm:7.26.9" - "@babel/runtime": "npm:7.26.9" + "@babel/runtime": "npm:7.26.10" "@discoveryjs/json-ext": "npm:0.6.3" - "@ngtools/webpack": "npm:20.0.0-next.0" + "@ngtools/webpack": "npm:20.0.0-next.2" "@vitejs/plugin-basic-ssl": "npm:2.0.0" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.20" + autoprefixer: "npm:10.4.21" babel-loader: "npm:10.0.0" browserslist: "npm:^4.21.5" copy-webpack-plugin: "npm:13.0.0" css-loader: "npm:7.1.2" - esbuild: "npm:0.25.0" - esbuild-wasm: "npm:0.25.0" + esbuild: "npm:0.25.1" + esbuild-wasm: "npm:0.25.1" fast-glob: "npm:3.3.3" http-proxy-middleware: "npm:3.0.3" istanbul-lib-instrument: "npm:6.0.3" @@ -67,12 +67,12 @@ __metadata: open: "npm:10.1.0" ora: "npm:5.4.1" picomatch: "npm:4.0.2" - piscina: "npm:4.8.0" + piscina: "npm:4.9.2" postcss: "npm:8.5.3" postcss-loader: "npm:8.1.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.2" - sass: "npm:1.85.1" + sass: "npm:1.86.0" sass-loader: "npm:16.0.5" semver: "npm:7.7.1" source-map-loader: "npm:5.0.0" @@ -90,7 +90,7 @@ __metadata: "@angular/localize": ^20.0.0 || ^20.0.0-next.0 "@angular/platform-server": ^20.0.0 || ^20.0.0-next.0 "@angular/service-worker": ^20.0.0 || ^20.0.0-next.0 - "@angular/ssr": ^20.0.0-next.0 + "@angular/ssr": ^20.0.0-next.2 "@web/test-runner": ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -99,7 +99,7 @@ __metadata: ng-packagr: ^20.0.0 || ^20.0.0-next.0 protractor: ^7.0.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" dependenciesMeta: esbuild: optional: true @@ -128,26 +128,26 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10/e6234697c552f47623057a29939965732140e22cb0abee487a2e16d53e1f40074df8b3a3a515f4e6da94934cd4d977aa4bd9bb573071c0c34118eb80bcdc8b80 + checksum: 10/986d2ed727147f00940b54ad72ea5ff61d4419c0f9b9ce76982cb6d811bb2f976c691680c41d0bcdff09b053485db2faf73e4d2efa0c5970bb1dee3b03b2935b languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.2000.0-next.0": - version: 0.2000.0-next.0 - resolution: "@angular-devkit/build-webpack@npm:0.2000.0-next.0" +"@angular-devkit/build-webpack@npm:0.2000.0-next.2": + version: 0.2000.0-next.2 + resolution: "@angular-devkit/build-webpack@npm:0.2000.0-next.2" dependencies: - "@angular-devkit/architect": "npm:0.2000.0-next.0" + "@angular-devkit/architect": "npm:0.2000.0-next.2" rxjs: "npm:7.8.2" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - checksum: 10/3568ed540be122b341b28e9f8579c7ca494d16fa6d7026c1e30f2cb54d236f3ec77d4e4e93cbd2b8bbbae6c23250508455a8fcafa0d1fd58f9563b17d090dc9a + checksum: 10/5949de817f66543d43f7ee3bee8996d0658c447af6ff7b71513211b2d9f66b73ae271918b97cb4b9bcfadb3ebe1ca2d9ebd27a6904a9fa33802525ebd7d5d7b4 languageName: node linkType: hard -"@angular-devkit/core@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular-devkit/core@npm:20.0.0-next.0" +"@angular-devkit/core@npm:20.0.0-next.2": + version: 20.0.0-next.2 + resolution: "@angular-devkit/core@npm:20.0.0-next.2" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -160,64 +160,65 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10/e964efd15e1e5b99641b50a1caaee29dbd4e8e796e5b15bd05abe7376ab5b6bc6b5175e4d55040485bae7e72eb6762a3148032b6624310e91a93af632cc6d63d + checksum: 10/e95bea64eb10221bb1deec708a3a7a9b2ce817095a9337c26d0b55eb93927a455718ea8e874903c0efd29e590db5880f0482da3d39d802aee5aef445e5581a76 languageName: node linkType: hard -"@angular-devkit/schematics@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular-devkit/schematics@npm:20.0.0-next.0" +"@angular-devkit/schematics@npm:20.0.0-next.2": + version: 20.0.0-next.2 + resolution: "@angular-devkit/schematics@npm:20.0.0-next.2" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.2" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.17" ora: "npm:5.4.1" rxjs: "npm:7.8.2" - checksum: 10/c5dfdb98637924ef5125ba4782e104d5e526721c87a4f3bcee4008bc2fd349bf4d337dd3634543ecfd7e0c62cb3948bf27d279b419cc34efe5eb23dd75f6c42c + checksum: 10/5538e848a00eb01762a2c16505d40d7925f6a08a72d4c96277fadb072cedc2e56880feffe8265033f8558b06b0d200ff113eef69f9057efb8cb8a9169541239c languageName: node linkType: hard "@angular/animations@file:../../node_modules/@angular/animations::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/animations@file:../../node_modules/@angular/animations#../../node_modules/@angular/animations::hash=cb41f9&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/animations@file:../../node_modules/@angular/animations#../../node_modules/@angular/animations::hash=1dd1d9&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 20.0.0-next.1 - checksum: 10/86233fe0e9c35727266bddd634efb5429c490cf3efa693b2b3a11fb0ebdd64d293d22df7244c127998fb95d112d15aa1c5cca33bf4d23af8dc1fc7eb534c670f + "@angular/core": 20.0.0-next.3 + checksum: 10/990394b7dbafd34347ed58aa2f42e63c36510905557dea630250b2934b0c70e36f4e037e1aca61a7d038f07751feadbc94c72fc2aaf2fbe241a1aee4486e28af languageName: node linkType: hard -"@angular/build@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/build@npm:20.0.0-next.0" +"@angular/build@npm:20.0.0-next.2": + version: 20.0.0-next.2 + resolution: "@angular/build@npm:20.0.0-next.2" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@babel/core": "npm:7.26.9" + "@angular-devkit/architect": "npm:0.2000.0-next.2" + "@babel/core": "npm:7.26.10" "@babel/helper-annotate-as-pure": "npm:7.25.9" "@babel/helper-split-export-declaration": "npm:7.24.7" "@babel/plugin-syntax-import-attributes": "npm:7.26.0" - "@inquirer/confirm": "npm:5.1.6" + "@inquirer/confirm": "npm:5.1.8" "@vitejs/plugin-basic-ssl": "npm:2.0.0" beasties: "npm:0.2.0" browserslist: "npm:^4.23.0" - esbuild: "npm:0.25.0" + esbuild: "npm:0.25.1" https-proxy-agent: "npm:7.0.6" istanbul-lib-instrument: "npm:6.0.3" + jsonc-parser: "npm:3.3.1" listr2: "npm:8.2.5" lmdb: "npm:3.2.6" magic-string: "npm:0.30.17" mrmime: "npm:2.0.1" parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" - piscina: "npm:4.8.0" - rollup: "npm:4.34.9" - sass: "npm:1.85.1" + piscina: "npm:4.9.2" + rollup: "npm:4.36.0" + sass: "npm:1.86.0" semver: "npm:7.7.1" source-map-support: "npm:0.5.21" tinyglobby: "npm:0.2.12" - vite: "npm:6.2.0" + vite: "npm:6.2.2" watchpack: "npm:2.4.2" peerDependencies: "@angular/compiler": ^20.0.0 || ^20.0.0-next.0 @@ -225,13 +226,13 @@ __metadata: "@angular/localize": ^20.0.0 || ^20.0.0-next.0 "@angular/platform-server": ^20.0.0 || ^20.0.0-next.0 "@angular/service-worker": ^20.0.0 || ^20.0.0-next.0 - "@angular/ssr": ^20.0.0-next.0 + "@angular/ssr": ^20.0.0-next.2 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 || ^20.0.0-next.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" dependenciesMeta: lmdb: optional: true @@ -254,7 +255,7 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10/955c4bef9aa6d1dae6a406ad1dcbc657d57f83c620ebcd97cbdb548a2f5c539bfd89e3a9e917840bbf377f7203118afcd430f0d00ee13ef03b5ea8efaba4b633 + checksum: 10/c491787e6369cf47eb152d0db1015c867183bf89903e35b680ee34d1464427a65cc4913648991beff86db4734b8130c41faa31d08483c401f902c90e24b6fe85 languageName: node linkType: hard @@ -276,15 +277,15 @@ __metadata: linkType: hard "@angular/cli@file:../../node_modules/@angular/cli::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.0 - resolution: "@angular/cli@file:../../node_modules/@angular/cli#../../node_modules/@angular/cli::hash=201fbf&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.2 + resolution: "@angular/cli@file:../../node_modules/@angular/cli#../../node_modules/@angular/cli::hash=fd6a56&locator=yarn-pnp-compat%40workspace%3A." dependencies: - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular-devkit/schematics": "npm:20.0.0-next.0" - "@inquirer/prompts": "npm:7.3.2" + "@angular-devkit/architect": "npm:0.2000.0-next.2" + "@angular-devkit/core": "npm:20.0.0-next.2" + "@angular-devkit/schematics": "npm:20.0.0-next.2" + "@inquirer/prompts": "npm:7.4.0" "@listr2/prompt-adapter-inquirer": "npm:2.0.18" - "@schematics/angular": "npm:20.0.0-next.0" + "@schematics/angular": "npm:20.0.0-next.2" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:5.0.0" jsonc-parser: "npm:3.3.1" @@ -298,27 +299,27 @@ __metadata: yargs: "npm:17.7.2" bin: ng: ./bin/ng.js - checksum: 10/ae636d740c2336751862cecac663a00ae6accf6e6fbd2320ce938cb83c24990b6b82f875338042d89e2816361a33c8617ca37607c95c70532d10a9792c7d7348 + checksum: 10/648d129cf1046386278eacf8d28c022dc29f7b93a64ffb614cceb6d1aab82317e180cb5592a71222590b4582c67882a7c01516e507321b94b30297f5e29b5532 languageName: node linkType: hard "@angular/common@file:../../node_modules/@angular/common::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/common@file:../../node_modules/@angular/common#../../node_modules/@angular/common::hash=a3d0e3&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/common@file:../../node_modules/@angular/common#../../node_modules/@angular/common::hash=38e5fb&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 20.0.0-next.1 + "@angular/core": 20.0.0-next.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10/78fa62e5e770e31d1e03e602223d4800926f42b100eb473fd5d9032a494abea8883c4540ae4b544d0193c670556b40e31d22f196d59fe037ae0973c8966f1839 + checksum: 10/4a9b0a03a428f69cb96043a7eec19bb61176ec5c1601c120f533fb8a50f62cfcede68e32f70264bb4fca20178eb68f5f8c2a56d4b098c66fe39c926dc79795f8 languageName: node linkType: hard "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli#../../node_modules/@angular/compiler-cli::hash=a88df2&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli#../../node_modules/@angular/compiler-cli::hash=4e9955&locator=yarn-pnp-compat%40workspace%3A." dependencies: - "@babel/core": "npm:7.26.9" + "@babel/core": "npm:7.26.10" "@jridgewell/sourcemap-codec": "npm:^1.4.14" chokidar: "npm:^4.0.0" convert-source-map: "npm:^1.5.1" @@ -327,56 +328,51 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 20.0.0-next.1 + "@angular/compiler": 20.0.0-next.3 typescript: ">=5.8 <5.9" bin: ng-xi18n: ./bundles/src/bin/ng_xi18n.js ngc: ./bundles/src/bin/ngc.js - checksum: 10/e68871ec2f58159a3899c56d96c176b04613100eef1b59917f58d3377a4f2cddd4b0b3bcdd325d3c902f67d9e6b9f49a18a4b59108e546a678e99f71a9843738 + checksum: 10/bed71f2bef4130f0c09a8ddd25787b5e604034b23828d419fae48281c216c7040d11d9f959152ba1cefd2415fd73cb6e5757ada7f240d4b7304250f79de3cb32 languageName: node linkType: hard "@angular/compiler@file:../../node_modules/@angular/compiler::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/compiler@file:../../node_modules/@angular/compiler#../../node_modules/@angular/compiler::hash=01264f&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/compiler@file:../../node_modules/@angular/compiler#../../node_modules/@angular/compiler::hash=520dd4&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" - peerDependencies: - "@angular/core": 20.0.0-next.1 - peerDependenciesMeta: - "@angular/core": - optional: true - checksum: 10/43c3df69276eb2667a6fd61220eaf193f63a16903ab2b6a6195dd2631bf97ede8aad1aa9cda4e6ad92597c93ba8828605a6e77e6d137f3a381f83e131bb40f4a + checksum: 10/8c8347cbd9db055de46407adb780f0ccf703e12e3816ddf9db6bebc44ce1d4f1bca0593a65fba122c184e54ba63cc066acfd137ba72b1b1ab213486fb45530ba languageName: node linkType: hard "@angular/core@file:../../node_modules/@angular/core::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/core@file:../../node_modules/@angular/core#../../node_modules/@angular/core::hash=1267ca&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/core@file:../../node_modules/@angular/core#../../node_modules/@angular/core::hash=64ce97&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/compiler": 20.0.0-next.1 + "@angular/compiler": 20.0.0-next.3 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: "@angular/compiler": optional: true - checksum: 10/5fb57e2e4202cebf3aa59618ac6fdf93465b0d400e62ff5a9d8b547163e2b39dc978abb09e8022f4792216e711ccc43e173da679c1993cb16da78a91304efe22 + checksum: 10/9c6ae1eea6da7e351690197ac45f2ab52ea853520abde9f8bccdf3746d99a55ee5c00a7cd061f3ccb5bc5eecbf0e562deb54bf2d879a517301bddbbc22f6e259 languageName: node linkType: hard "@angular/forms@file:../../node_modules/@angular/forms::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/forms@file:../../node_modules/@angular/forms#../../node_modules/@angular/forms::hash=60bf68&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/forms@file:../../node_modules/@angular/forms#../../node_modules/@angular/forms::hash=7779a6&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 + "@angular/common": 20.0.0-next.3 + "@angular/core": 20.0.0-next.3 + "@angular/platform-browser": 20.0.0-next.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10/a1815142fd5b5eb1b69551047bfd0656af1b0e6f3e1d92cf96de6ab89d7eafc6ec88f66a899a7744e70f66f5f8fa8c26f56820b5d7cef2aa415ede8e320facbc + checksum: 10/0b6c8f6fae9509a5a7120fe2c4c434b9269a98e3540bc509c0feec1b7875321a5e47245eeb1136fc4453587d03c2f17aac2f9ca62ab49a90afcab70bb130bfd6 languageName: node linkType: hard @@ -412,47 +408,33 @@ __metadata: languageName: node linkType: hard -"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic#../../node_modules/@angular/platform-browser-dynamic::hash=e3ebd9&locator=yarn-pnp-compat%40workspace%3A." - dependencies: - tslib: "npm:^2.3.0" - peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/compiler": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 - checksum: 10/b2a19a3bb97dc667b222c977775add7ae7319e8f5c24cc897136deee0e65a4585d8e1fc4086c7812a9ffb20471f632f788f6e8fd6743d67353fcec29085b12d9 - languageName: node - linkType: hard - "@angular/platform-browser@file:../../node_modules/@angular/platform-browser::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/platform-browser@file:../../node_modules/@angular/platform-browser#../../node_modules/@angular/platform-browser::hash=0129f1&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/platform-browser@file:../../node_modules/@angular/platform-browser#../../node_modules/@angular/platform-browser::hash=e8f54d&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 20.0.0-next.1 - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 + "@angular/animations": 20.0.0-next.3 + "@angular/common": 20.0.0-next.3 + "@angular/core": 20.0.0-next.3 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10/4cabc7cc2cf9b8e60587b65dfafaf648c99415a6c7abf7e1d4bf0a808a42894dbfa8e3b1fd21bb3c191cbc082c163f8f2dab32ab3a569f19ae59821a7064bdb9 + checksum: 10/fdee6171a9fbedbd655076881ac36750e05d548a94d60b7610036a70fd58aac6967ec46370a8b8a3edcb5f134419696b0ee70a22429a8150304f29f427378969 languageName: node linkType: hard "@angular/router@file:../../node_modules/@angular/router::locator=yarn-pnp-compat%40workspace%3A.": - version: 20.0.0-next.1 - resolution: "@angular/router@file:../../node_modules/@angular/router#../../node_modules/@angular/router::hash=07f2f0&locator=yarn-pnp-compat%40workspace%3A." + version: 20.0.0-next.3 + resolution: "@angular/router@file:../../node_modules/@angular/router#../../node_modules/@angular/router::hash=d01a91&locator=yarn-pnp-compat%40workspace%3A." dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 + "@angular/common": 20.0.0-next.3 + "@angular/core": 20.0.0-next.3 + "@angular/platform-browser": 20.0.0-next.3 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10/b23b03b3badf322ace9b437e012b1c60937bacd8a06fda12155df7d98c32198836dec038baec03079df72cad4a73b7001e733584bbf6f27399992f30d79f5656 + checksum: 10/4c97fd27d1a0f095c25f1d681cae1b2350de6a9dea6e4ff6e51df94c2561a6d579419e0ff7040cbd9c71eca541ee22f58bb9f6bbb06ac48d578b3a01f38fc9ce languageName: node linkType: hard @@ -474,7 +456,30 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.26.9, @babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": +"@babel/core@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/core@npm:7.26.10" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.10" + "@babel/helper-compilation-targets": "npm:^7.26.5" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.10" + "@babel/parser": "npm:^7.26.10" + "@babel/template": "npm:^7.26.9" + "@babel/traverse": "npm:^7.26.10" + "@babel/types": "npm:^7.26.10" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/68f6707eebd6bb8beed7ceccf5153e35b86c323e40d11d796d75c626ac8f1cc4e1f795584c5ab5f886bc64150c22d5088123d68c069c63f29984c4fc054d1dab + languageName: node + linkType: hard + +"@babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": version: 7.26.9 resolution: "@babel/core@npm:7.26.9" dependencies: @@ -497,7 +502,33 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:7.26.9, @babel/generator@npm:^7.26.9": +"@babel/generator@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/generator@npm:7.26.10" + dependencies: + "@babel/parser": "npm:^7.26.10" + "@babel/types": "npm:^7.26.10" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/acf5e6544ee672810b598add2451302146cc79e1974fa5d87c5f70d5a51cab140abb628e36c434d01616af3747fd42378379e4b828f3eb9672e84c14f21db46b + languageName: node + linkType: hard + +"@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/generator@npm:7.27.0" + dependencies: + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/5447c402b1d841132534a0a9715e89f4f28b6f2886a23e70aaa442150dba4a1e29e4e2351814f439ee1775294dccdef9ab0a4192b6e6a5ad44e24233b3611da2 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.26.9": version: 7.26.9 resolution: "@babel/generator@npm:7.26.9" dependencies: @@ -562,7 +593,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.2, @babel/helper-define-polyfill-provider@npm:^0.6.3": +"@babel/helper-define-polyfill-provider@npm:^0.6.3": version: 0.6.3 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.3" dependencies: @@ -703,6 +734,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/helpers@npm:7.27.0" + dependencies: + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10/0dd40ba1e5ba4b72d1763bb381384585a56f21a61a19dc1b9a03381fe8e840207fdaa4da645d14dc028ad768087d41aad46347cc6573bd69d82f597f5a12dc6f + languageName: node + linkType: hard + "@babel/helpers@npm:^7.26.9": version: 7.26.9 resolution: "@babel/helpers@npm:7.26.9" @@ -724,6 +765,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/parser@npm:7.27.0" + dependencies: + "@babel/types": "npm:^7.27.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10/0fee9f05c6db753882ca9d10958301493443da9f6986d7020ebd7a696b35886240016899bc0b47d871aea2abcafd64632343719742e87432c8145e0ec2af2a03 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" @@ -1310,19 +1362,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.26.9": - version: 7.26.9 - resolution: "@babel/plugin-transform-runtime@npm:7.26.9" +"@babel/plugin-transform-runtime@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/plugin-transform-runtime@npm:7.26.10" dependencies: "@babel/helper-module-imports": "npm:^7.25.9" "@babel/helper-plugin-utils": "npm:^7.26.5" babel-plugin-polyfill-corejs2: "npm:^0.4.10" - babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-corejs3: "npm:^0.11.0" babel-plugin-polyfill-regenerator: "npm:^0.6.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/7893c3501474ef19af778d02c711edc511b82df2cd4500c575f1c61565026253b024a6c9868808ea8fc3c67168e3c8bfda3b943b0d3ac3e870ada5a2dff4a77a + checksum: 10/452c7ef0fd18518d19c3c75922650bbfb1a0e6390ca54198294bb84ad697e1380989ed9ee1727d278c8c39b0e6f97320081a84f57256edf3781741c6568721b2 languageName: node linkType: hard @@ -1521,7 +1573,16 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.26.9, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/runtime@npm:7.26.10" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10/9d7ff8e96abe3791047c1138789c742411e3ef19c4d7ca18ce916f83cec92c06ec5dc64401759f6dd1e377cf8a01bbd2c62e033eb7550f435cf6579768d0d4a5 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.8.4": version: 7.26.9 resolution: "@babel/runtime@npm:7.26.9" dependencies: @@ -1541,6 +1602,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/template@npm:7.27.0" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10/7159ca1daea287ad34676d45a7146675444d42c7664aca3e617abc9b1d9548c8f377f35a36bb34cf956e1d3610dcb7acfcfe890aebf81880d35f91a7bd273ee5 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9": version: 7.26.9 resolution: "@babel/traverse@npm:7.26.9" @@ -1556,6 +1628,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/traverse@npm:7.27.0" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.27.0" + "@babel/parser": "npm:^7.27.0" + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/b0675bc16bd87187e8b090557b0650135de56a621692ad8614b20f32621350ae0fc2e1129b73b780d64a9ed4beab46849a17f90d5267b6ae6ce09ec8412a12c7 + languageName: node + linkType: hard + "@babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.4.4": version: 7.26.9 resolution: "@babel/types@npm:7.26.9" @@ -1566,6 +1653,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/types@npm:7.27.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10/2c322bce107c8a534dc4a23be60d570e6a4cc7ca2e44d4f0eee08c0b626104eb7e60ab8de03463bc5da1773a2f69f1e6edec1648d648d65461d6520a7f3b0770 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -1587,6 +1684,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/aix-ppc64@npm:0.25.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-arm64@npm:0.25.0" @@ -1594,6 +1698,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm64@npm:0.25.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-arm@npm:0.25.0" @@ -1601,6 +1712,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm@npm:0.25.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-x64@npm:0.25.0" @@ -1608,6 +1726,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-x64@npm:0.25.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/darwin-arm64@npm:0.25.0" @@ -1615,6 +1740,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-arm64@npm:0.25.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/darwin-x64@npm:0.25.0" @@ -1622,6 +1754,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-x64@npm:0.25.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/freebsd-arm64@npm:0.25.0" @@ -1629,6 +1768,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-arm64@npm:0.25.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/freebsd-x64@npm:0.25.0" @@ -1636,6 +1782,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-x64@npm:0.25.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-arm64@npm:0.25.0" @@ -1643,6 +1796,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm64@npm:0.25.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-arm@npm:0.25.0" @@ -1650,6 +1810,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm@npm:0.25.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-ia32@npm:0.25.0" @@ -1657,6 +1824,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ia32@npm:0.25.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-loong64@npm:0.25.0" @@ -1664,6 +1838,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-loong64@npm:0.25.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-mips64el@npm:0.25.0" @@ -1671,6 +1852,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-mips64el@npm:0.25.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-ppc64@npm:0.25.0" @@ -1678,6 +1866,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ppc64@npm:0.25.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-riscv64@npm:0.25.0" @@ -1685,6 +1880,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-riscv64@npm:0.25.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-s390x@npm:0.25.0" @@ -1692,6 +1894,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-s390x@npm:0.25.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-x64@npm:0.25.0" @@ -1699,6 +1908,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-x64@npm:0.25.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/netbsd-arm64@npm:0.25.0" @@ -1706,6 +1922,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-arm64@npm:0.25.1" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/netbsd-x64@npm:0.25.0" @@ -1713,6 +1936,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-x64@npm:0.25.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/openbsd-arm64@npm:0.25.0" @@ -1720,6 +1950,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-arm64@npm:0.25.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/openbsd-x64@npm:0.25.0" @@ -1727,6 +1964,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-x64@npm:0.25.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/sunos-x64@npm:0.25.0" @@ -1734,6 +1978,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/sunos-x64@npm:0.25.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-arm64@npm:0.25.0" @@ -1741,6 +1992,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-arm64@npm:0.25.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-ia32@npm:0.25.0" @@ -1748,6 +2006,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-ia32@npm:0.25.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-x64@npm:0.25.0" @@ -1755,13 +2020,20 @@ __metadata: languageName: node linkType: hard -"@inquirer/checkbox@npm:^4.1.2": - version: 4.1.2 - resolution: "@inquirer/checkbox@npm:4.1.2" +"@esbuild/win32-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-x64@npm:0.25.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@inquirer/checkbox@npm:^4.1.4": + version: 4.1.4 + resolution: "@inquirer/checkbox@npm:4.1.4" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: @@ -1769,31 +2041,31 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10/fb25b3b608e2f08be99cd8acce571a325b11d9c5ee0e84d0c6fcfa235c9115e3864a621c081b42ffd0bde2268bc9302c6823414fcad4161d2693bfafe96182fe + checksum: 10/bee79343fbec99f804fc456ca28e86f2ab6bb1f20162e80375f37e5b9d58d6a486a58e1e84519745c4978317e74e7178977825e67f1ad6da9a559dc791b62585 languageName: node linkType: hard -"@inquirer/confirm@npm:5.1.6, @inquirer/confirm@npm:^5.1.6": - version: 5.1.6 - resolution: "@inquirer/confirm@npm:5.1.6" +"@inquirer/confirm@npm:5.1.8, @inquirer/confirm@npm:^5.1.8": + version: 5.1.8 + resolution: "@inquirer/confirm@npm:5.1.8" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/445314a5472a4df2a95f8e44a0d214ed89b13344077433e29b28933f6d360fda567bed4b7cbdb32a97fca52be2ad2f655f4103f6aaa43c37a40ab53b150251e8 + checksum: 10/54c2e5c1a2138164007d68a408b54272c455780c7973deca72c379278408bd22c124a1c21dc25aa4342115158f2b7efc5e42c637bd0afb2da6359adda1e65b3b languageName: node linkType: hard -"@inquirer/core@npm:^10.1.7": - version: 10.1.7 - resolution: "@inquirer/core@npm:10.1.7" +"@inquirer/core@npm:^10.1.9": + version: 10.1.9 + resolution: "@inquirer/core@npm:10.1.9" dependencies: - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" cli-width: "npm:^4.1.0" mute-stream: "npm:^2.0.0" @@ -1805,158 +2077,158 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10/9c016d92ab00749c8cc35a958266e696bfa12dfd1455875ca749fbee3f39b38e55be49634bc19a2fdadd3d2b73a561eb8ea42dffedb4fcffde3d9a485cf21997 + checksum: 10/cb52d639a2280be95baf77dbab59bb272ce3f8b5e64cf1924e4d3e18d39e68815113419b188d68eac1773ba9e102b15e3d8811c30f1288841e11ca5309d8158d languageName: node linkType: hard -"@inquirer/editor@npm:^4.2.7": - version: 4.2.7 - resolution: "@inquirer/editor@npm:4.2.7" +"@inquirer/editor@npm:^4.2.9": + version: 4.2.9 + resolution: "@inquirer/editor@npm:4.2.9" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" external-editor: "npm:^3.1.0" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/0930012f4be5ae9aaee0b021816ab7bbbe802542c9b3d8b9f5939401c06cc293bd6cbc1cdaf715f113bb94dde7bcce034a87a36398f0b5d4f86bfa93597e8bcb + checksum: 10/f11d60b212fa62414621b5bd4a6216c82b8af0e3cba16767b2510ca988a6bd567b561bbf8b1e19e93b3fb59c802382424e4802a746dde7a0af6a3c8b98827571 languageName: node linkType: hard -"@inquirer/expand@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/expand@npm:4.0.9" +"@inquirer/expand@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/expand@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/a1b07006d05d0bc4351d7a5ce26c3732ecaafd2f847154d9720c3c22196d84a8311096beee596924cceba855ec8ea31fee9abbc472258806c768c18a07e538ca + checksum: 10/69728c9ec835e15d586d6ad039f6a15dccf187bf845395b5b106439352eff89be24ca6c16a48e8fc867c4ab9c27814d68e16fbf3aa5b131ba01db6381dd792a0 languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.10": - version: 1.0.10 - resolution: "@inquirer/figures@npm:1.0.10" - checksum: 10/ecdeb3e23722375fd634d93a75e5d642fa7fdb0af90c001058054bd9817fb23062ef01039e6a994d6c9427e472b50a1fd1950775c26b9e5103aa1e64cfd5fdd4 +"@inquirer/figures@npm:^1.0.11": + version: 1.0.11 + resolution: "@inquirer/figures@npm:1.0.11" + checksum: 10/357ddd2e83718bc3c9189d518b93fd69099af9c860354df9a5ac0ec024cb5df1228ae4608d2de7625624d2adcd047db813f29426a610eaae7b9e449f8c753c6b languageName: node linkType: hard -"@inquirer/input@npm:^4.1.6": - version: 4.1.6 - resolution: "@inquirer/input@npm:4.1.6" +"@inquirer/input@npm:^4.1.8": + version: 4.1.8 + resolution: "@inquirer/input@npm:4.1.8" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/662d623b40adf9b5e433669ef62ae0b66b2afaa58355f12530f3c83da0ac7ec6016fdd4438dbcdec3690e164013e02ebebb8d9c1599c262241ffcc6a797c5f03 + checksum: 10/adad1978d2daf12a20fc4f9c7e84ce31aca10ce3de32db9818c424031d86e3660fd35801e31305c13b842c98817a4885f78f50b22a5df058f01e733bbf933bc5 languageName: node linkType: hard -"@inquirer/number@npm:^3.0.9": - version: 3.0.9 - resolution: "@inquirer/number@npm:3.0.9" +"@inquirer/number@npm:^3.0.11": + version: 3.0.11 + resolution: "@inquirer/number@npm:3.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/6dd7ab715c3b94de12054e80b19ff44741b984b9696f57d2e3ea16370683d14bf486ff0364e72cd99c185532b48ef19e7a5d3976761e2ae712b74f2b10fda2a4 + checksum: 10/43c1158dbf50975304eaa3cdd0fe318c65bb6ecf841311959cc14c85ce48bc30311d3fdd8815b9b6a0a6fe308ec8dd54baf5f3d9202200c7edf910acb282e444 languageName: node linkType: hard -"@inquirer/password@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/password@npm:4.0.9" +"@inquirer/password@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/password@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/e00ce9f5cad048d782d16d0e4764b7c2a5860fe03e29f52725628f28a6c0f0675fa92f189bbcb2b823ef323214e13a20cfe0270fcf88245bda426850793e07ef + checksum: 10/3efbe564e6ac2774959fcde4c9e6b15ca3d13e0b345c85c42889eb70ccb886c53e721d40a43fc5cf6be583e59cc149955f50d208e7acba22f3d20793f668d13f languageName: node linkType: hard -"@inquirer/prompts@npm:7.3.2": - version: 7.3.2 - resolution: "@inquirer/prompts@npm:7.3.2" +"@inquirer/prompts@npm:7.4.0": + version: 7.4.0 + resolution: "@inquirer/prompts@npm:7.4.0" dependencies: - "@inquirer/checkbox": "npm:^4.1.2" - "@inquirer/confirm": "npm:^5.1.6" - "@inquirer/editor": "npm:^4.2.7" - "@inquirer/expand": "npm:^4.0.9" - "@inquirer/input": "npm:^4.1.6" - "@inquirer/number": "npm:^3.0.9" - "@inquirer/password": "npm:^4.0.9" - "@inquirer/rawlist": "npm:^4.0.9" - "@inquirer/search": "npm:^3.0.9" - "@inquirer/select": "npm:^4.0.9" + "@inquirer/checkbox": "npm:^4.1.4" + "@inquirer/confirm": "npm:^5.1.8" + "@inquirer/editor": "npm:^4.2.9" + "@inquirer/expand": "npm:^4.0.11" + "@inquirer/input": "npm:^4.1.8" + "@inquirer/number": "npm:^3.0.11" + "@inquirer/password": "npm:^4.0.11" + "@inquirer/rawlist": "npm:^4.0.11" + "@inquirer/search": "npm:^3.0.11" + "@inquirer/select": "npm:^4.1.0" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/476ea162f6820628dbbb4ffff78a9ddf0cc9d99237bfbd976b944034eb4362eec748cabe2c886fa69eab551866172952fc26f2c12f4429008321105048743b41 + checksum: 10/ba230f97ea45707974fa5457a948ffc43453e5aee87ff7860d803ad17f53d007ca196dbeb3e81eb8082c9598fb21055c39affd68cc73a0f428bd89a269377e73 languageName: node linkType: hard -"@inquirer/rawlist@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/rawlist@npm:4.0.9" +"@inquirer/rawlist@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/rawlist@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/bdda866b6ef88ef64569d2ac947473178ac4f831de1773381034c2c519ae1bab6d3805359ea7c164021b843751cd328a54031856293e3ccf26924efdab7ca17e + checksum: 10/5f755c5d36138a7cea445d61218cddf3664b9afa66c000d4350838e69b1f9587756a41dfbb4285799e9561971dc780f3853f223c2b733daeefd092467941b3bd languageName: node linkType: hard -"@inquirer/search@npm:^3.0.9": - version: 3.0.9 - resolution: "@inquirer/search@npm:3.0.9" +"@inquirer/search@npm:^3.0.11": + version: 3.0.11 + resolution: "@inquirer/search@npm:3.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/33531deae1bfb917c3441469c16f0548cf4b0209324da4abd4fa9e285c53718ec3497aac7ee9642571bb8725f7593a34b96e4380c367a88411ab3310d03d955e + checksum: 10/fa75f9e40a30a1e8b4f0c6556ebfbc06b3f92ffa74a8eeb4c648b44034870b4bfbad95f52ba6dab5bdde742d8857145235a54cdb9904d3b1383986b7177f6bff languageName: node linkType: hard -"@inquirer/select@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/select@npm:4.0.9" +"@inquirer/select@npm:^4.1.0": + version: 4.1.0 + resolution: "@inquirer/select@npm:4.1.0" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: @@ -1964,7 +2236,7 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10/5cea4e114bcfea104fc592a89a186f83c12e1feb870e29628c06ad035519cb6a8e7e831a50a96f157931f3bdeb45ea2a720b0ef20e42713edf8aa2e11a6dfba2 + checksum: 10/f978e21c63ede9d00c9efbc329f270a75b6ea43a88b4ff5877dacfae7bafed2100d5ef8018ebed9e64e7b9866b86665a12dc649fb4b2fc8304580a88b13b0055 languageName: node linkType: hard @@ -1977,15 +2249,15 @@ __metadata: languageName: node linkType: hard -"@inquirer/type@npm:^3.0.4": - version: 3.0.4 - resolution: "@inquirer/type@npm:3.0.4" +"@inquirer/type@npm:^3.0.5": + version: 3.0.5 + resolution: "@inquirer/type@npm:3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/64ec072d2725ee31586af65cf32f553f217978f7020011d049e663b45776ff8c72aefe18eb12ece46788eaef9b239fc3bd01edfbe1d07b9162cc97aae5c173fb + checksum: 10/a2d2aeba1b7e2000c5cddbb289cbf7a751dcea924f6c4a732a6ec99cac98a668bcce23f98357e098855027e18113949a4fb31162e3b3742775ab8e96cf59fb88 languageName: node linkType: hard @@ -2374,14 +2646,14 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@ngtools/webpack@npm:20.0.0-next.0" +"@ngtools/webpack@npm:20.0.0-next.2": + version: 20.0.0-next.2 + resolution: "@ngtools/webpack@npm:20.0.0-next.2" peerDependencies: "@angular/compiler-cli": ^20.0.0 || ^20.0.0-next.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" webpack: ^5.54.0 - checksum: 10/4fb52c8dd61d0a856b84d4f9c65452e59a9a5f5a87e3e816ff4e3cfa45203a50a431d7c0c498bf48e979f63f9b9157b9683f13511151abe7c0a2d5ff56cc892f + checksum: 10/61b319bf25a409cd3789bafc4331933e72bccb252ce2435209748209d2df001a6e2eec29641126067ef4af2642438ec4463d04d566cccc9ddb1c6883391ea410 languageName: node linkType: hard @@ -2672,6 +2944,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.36.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-android-arm64@npm:4.34.9" @@ -2679,6 +2958,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-android-arm64@npm:4.36.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-darwin-arm64@npm:4.34.9" @@ -2686,6 +2972,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.36.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-darwin-x64@npm:4.34.9" @@ -2693,6 +2986,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.36.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-arm64@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.9" @@ -2700,6 +3000,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-arm64@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.36.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-x64@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-freebsd-x64@npm:4.34.9" @@ -2707,6 +3014,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-x64@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.36.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9" @@ -2714,6 +3028,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.36.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.9" @@ -2721,6 +3042,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.36.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.9" @@ -2728,6 +3056,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.36.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.9" @@ -2735,6 +3070,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.36.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9" @@ -2742,6 +3084,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-loongarch64-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.36.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9" @@ -2749,6 +3098,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.36.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.9" @@ -2756,6 +3112,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.36.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.9" @@ -2763,6 +3126,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.36.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.9" @@ -2770,6 +3140,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.36.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.9" @@ -2777,6 +3154,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.36.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.9" @@ -2784,6 +3168,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.36.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.9" @@ -2791,6 +3182,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.36.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.34.9": version: 4.34.9 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.9" @@ -2798,14 +3196,21 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@schematics/angular@npm:20.0.0-next.0" +"@rollup/rollup-win32-x64-msvc@npm:4.36.0": + version: 4.36.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.36.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@schematics/angular@npm:20.0.0-next.2": + version: 20.0.0-next.2 + resolution: "@schematics/angular@npm:20.0.0-next.2" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular-devkit/schematics": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.2" + "@angular-devkit/schematics": "npm:20.0.0-next.2" jsonc-parser: "npm:3.3.1" - checksum: 10/3602c0444089ac4f177a7a4abac64641aa685ebdc5dc6fe8fbc4fb3a36eb3ec7c133979255fd8d5b59b2735e4418f89d2e6e76ddb2b0997109ce6972e0652fc8 + checksum: 10/95ce6dcd3ec2f102a7f54ac7b3aba68e9539bbc7ab0e72ef937d7cdab0ab6a2aa734934da4b683e8b7c4b1629cb2d7b944835c0885aeea7959f9a3db1c316e04 languageName: node linkType: hard @@ -3507,21 +3912,21 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.20": - version: 10.4.20 - resolution: "autoprefixer@npm:10.4.20" +"autoprefixer@npm:10.4.21": + version: 10.4.21 + resolution: "autoprefixer@npm:10.4.21" dependencies: - browserslist: "npm:^4.23.3" - caniuse-lite: "npm:^1.0.30001646" + browserslist: "npm:^4.24.4" + caniuse-lite: "npm:^1.0.30001702" fraction.js: "npm:^4.3.7" normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.1" + picocolors: "npm:^1.1.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 10/d3c4b562fc4af2393623a0207cc336f5b9f94c4264ae1c316376904c279702ce2b12dc3f27205f491195d1e29bb52ffc269970ceb0f271f035fadee128a273f7 + checksum: 10/5d7aeee78ef362a6838e12312908516a8ac5364414175273e5cff83bbff67612755b93d567f3aa01ce318342df48aeab4b291847b5800c780e58c458f61a98a6 languageName: node linkType: hard @@ -3550,18 +3955,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.6": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - core-js-compat: "npm:^3.38.0" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/360ac9054a57a18c540059dc627ad5d84d15f79790cb3d84d19a02eec7188c67d08a07db789c3822d6f5df22d918e296d1f27c4055fec2e287d328f09ea8a78a - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs3@npm:^0.11.0": version: 0.11.1 resolution: "babel-plugin-polyfill-corejs3@npm:0.11.1" @@ -3719,7 +4112,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.5, browserslist@npm:^4.21.7, browserslist@npm:^4.23.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": +"browserslist@npm:^4.21.5, browserslist@npm:^4.21.7, browserslist@npm:^4.23.0, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": version: 4.24.4 resolution: "browserslist@npm:4.24.4" dependencies: @@ -3813,13 +4206,20 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001688": +"caniuse-lite@npm:^1.0.30001688": version: 1.0.30001702 resolution: "caniuse-lite@npm:1.0.30001702" checksum: 10/1f756953e5caf6c5b17562413cbbb7768b6b853620001b592aff07235ed98e84a1c169ad627d2cd77acd1524f482b5a9682edbd1b7b5cd3dae7753785d7b021d languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001702": + version: 1.0.30001707 + resolution: "caniuse-lite@npm:1.0.30001707" + checksum: 10/5c5f9aad651f4d957cc59c8b4ac22bb7ac3a1c86c26ee7d5c59b00062bdc1c421980513179da1f5e20cade2da8d7f3c41d482ce7d4a8d9f411e4a827fe092d29 + languageName: node + linkType: hard + "chalk@npm:^4.1.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -4123,7 +4523,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.40.0": +"core-js-compat@npm:^3.40.0": version: 3.41.0 resolution: "core-js-compat@npm:3.41.0" dependencies: @@ -4627,16 +5027,102 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.25.0": - version: 0.25.0 - resolution: "esbuild-wasm@npm:0.25.0" +"esbuild-wasm@npm:0.25.1": + version: 0.25.1 + resolution: "esbuild-wasm@npm:0.25.1" + bin: + esbuild: bin/esbuild + checksum: 10/095ba90c8a710e4fed2bac30fe5351a91268163d501d530f6287a972b8fb97d8028df997e931cd8ec26199c6e1af03c18ae6fcb97f6afdc10de122defe406541 + languageName: node + linkType: hard + +"esbuild@npm:0.25.1": + version: 0.25.1 + resolution: "esbuild@npm:0.25.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.1" + "@esbuild/android-arm": "npm:0.25.1" + "@esbuild/android-arm64": "npm:0.25.1" + "@esbuild/android-x64": "npm:0.25.1" + "@esbuild/darwin-arm64": "npm:0.25.1" + "@esbuild/darwin-x64": "npm:0.25.1" + "@esbuild/freebsd-arm64": "npm:0.25.1" + "@esbuild/freebsd-x64": "npm:0.25.1" + "@esbuild/linux-arm": "npm:0.25.1" + "@esbuild/linux-arm64": "npm:0.25.1" + "@esbuild/linux-ia32": "npm:0.25.1" + "@esbuild/linux-loong64": "npm:0.25.1" + "@esbuild/linux-mips64el": "npm:0.25.1" + "@esbuild/linux-ppc64": "npm:0.25.1" + "@esbuild/linux-riscv64": "npm:0.25.1" + "@esbuild/linux-s390x": "npm:0.25.1" + "@esbuild/linux-x64": "npm:0.25.1" + "@esbuild/netbsd-arm64": "npm:0.25.1" + "@esbuild/netbsd-x64": "npm:0.25.1" + "@esbuild/openbsd-arm64": "npm:0.25.1" + "@esbuild/openbsd-x64": "npm:0.25.1" + "@esbuild/sunos-x64": "npm:0.25.1" + "@esbuild/win32-arm64": "npm:0.25.1" + "@esbuild/win32-ia32": "npm:0.25.1" + "@esbuild/win32-x64": "npm:0.25.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true bin: esbuild: bin/esbuild - checksum: 10/2bcc445e170a8d7220b7c590cde559566c068c9803216e593315fdd06771c1944a5d088089757e5d069fcb2c9f09f97b4a9b3ec14cec3997198bb16b10918948 + checksum: 10/f1dcaa7c72133c4e130dc7a6c05158d48d7ccf6643efb12fd0c5a9727226a9249d3ea4a4ea34f879c4559819d9dd706a968fd34d5c180ae019ea0403246c5564 languageName: node linkType: hard -"esbuild@npm:0.25.0, esbuild@npm:^0.25.0": +"esbuild@npm:^0.25.0": version: 0.25.0 resolution: "esbuild@npm:0.25.0" dependencies: @@ -7218,7 +7704,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -7246,15 +7732,15 @@ __metadata: languageName: node linkType: hard -"piscina@npm:4.8.0": - version: 4.8.0 - resolution: "piscina@npm:4.8.0" +"piscina@npm:4.9.2": + version: 4.9.2 + resolution: "piscina@npm:4.9.2" dependencies: "@napi-rs/nice": "npm:^1.0.1" dependenciesMeta: "@napi-rs/nice": optional: true - checksum: 10/5c28396c2fa3001bcf669d3c5d2678a2e89de622f6a8dcf0ba00ed58412d9aa8fc4aca2cd28c6901a8dbf718ce3520b92bb2cd701d8309ca04258472267a2972 + checksum: 10/2ae40fc2ba54d230c8372757608458af113ae2b5e66cb4f75bb8ec87f69c1209ab5deec41d471b3649e45571b6c9b04a2aca5d8d3459364bdc69a4dbf9c3d205 languageName: node linkType: hard @@ -7713,7 +8199,79 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.34.9, rollup@npm:^4.30.1": +"rollup@npm:4.36.0": + version: 4.36.0 + resolution: "rollup@npm:4.36.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.36.0" + "@rollup/rollup-android-arm64": "npm:4.36.0" + "@rollup/rollup-darwin-arm64": "npm:4.36.0" + "@rollup/rollup-darwin-x64": "npm:4.36.0" + "@rollup/rollup-freebsd-arm64": "npm:4.36.0" + "@rollup/rollup-freebsd-x64": "npm:4.36.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.36.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.36.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.36.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.36.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.36.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.36.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.36.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.36.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.36.0" + "@rollup/rollup-linux-x64-musl": "npm:4.36.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.36.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.36.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.36.0" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10/151b1c6e41f6bcd89aa63cd1cd96be8664aaa64dbf9eb4fe26d9a921731b2bd7650fecbc39fe8c8ac94ff84d8d4bf36028be1532aafd48ef2654f75a6356f26c + languageName: node + linkType: hard + +"rollup@npm:^4.30.1": version: 4.34.9 resolution: "rollup@npm:4.34.9" dependencies: @@ -7868,9 +8426,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.85.1": - version: 1.85.1 - resolution: "sass@npm:1.85.1" +"sass@npm:1.86.0": + version: 1.86.0 + resolution: "sass@npm:1.86.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -7881,7 +8439,7 @@ __metadata: optional: true bin: sass: sass.js - checksum: 10/2803b8d4d256a5ab6e7711776714e5bfaee957bd47d05489994d1d88e38307dc76f15ec8e35708d6f5701cf981a48cd005db574063242fcceaf056123ad644d5 + checksum: 10/d943e114340781d1d77bf8dc09c7daa8e1310bbdcdcf9cdd798e3d67c339132b19f6a88838800d11f48fc32e6726266fb87528d4aa087682a95abe690af1009c languageName: node linkType: hard @@ -8816,9 +9374,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:6.2.0": - version: 6.2.0 - resolution: "vite@npm:6.2.0" +"vite@npm:6.2.2": + version: 6.2.2 + resolution: "vite@npm:6.2.2" dependencies: esbuild: "npm:^0.25.0" fsevents: "npm:~2.3.3" @@ -8864,7 +9422,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/5ffa8bb22881276d12cc38d15feaf7df6c95f902ac6c4cd983f27af1cdb6929cf9e3ef9d6dfe74e8af27f1c1adf4cdfeeeed7fada8a53011575241bdaf0ca6e5 + checksum: 10/30896cbdbc082131cca3a343461ada8c2e8c30eed640dfaca39fd44b2f2fa4a1a312fe298e037063106af09f3026239be822a6b2f49e3d8239b8a64e86e83193 languageName: node linkType: hard @@ -9269,7 +9827,6 @@ __metadata: "@angular/material": "file:../../dist/releases/material" "@angular/material-experimental": "file:../../dist/releases/material-experimental" "@angular/platform-browser": "file:../../node_modules/@angular/platform-browser" - "@angular/platform-browser-dynamic": "file:../../node_modules/@angular/platform-browser-dynamic" "@angular/router": "file:../../node_modules/@angular/router" "@types/jasmine": "npm:~3.10.0" "@types/node": "npm:^16.10.9" diff --git a/material.angular.io/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= b/material.angular.io/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= index 41f07e954a9e..45f9445e63a7 100755 --- a/material.angular.io/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= +++ b/material.angular.io/.aspect/rules/external_repository_action_cache/npm_translate_lock_LTE4Nzc1MDcwNjU= @@ -1,7 +1,7 @@ # @generated -# Input hashes for repository rule npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml"). +# Input hashes for repository rule npm_translate_lock(name = "npm", pnpm_lock = "@//:pnpm-lock.yaml"). # This file should be checked into version control along with the pnpm-lock.yaml file. .npmrc=-1306950124 -pnpm-lock.yaml=1087437730 -yarn.lock=-1043892813 -package.json=430646288 +package.json=1173052608 +pnpm-lock.yaml=1096160048 +yarn.lock=-1571468811 diff --git a/material.angular.io/WORKSPACE.bazel b/material.angular.io/WORKSPACE.bazel index 5402335f9926..02c86342a0b9 100644 --- a/material.angular.io/WORKSPACE.bazel +++ b/material.angular.io/WORKSPACE.bazel @@ -1,4 +1,5 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") http_archive( name = "aspect_bazel_lib", @@ -10,6 +11,7 @@ http_archive( load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies", "aspect_bazel_lib_register_toolchains") aspect_bazel_lib_dependencies() + aspect_bazel_lib_register_toolchains() http_archive( @@ -44,17 +46,6 @@ http_archive( urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz"], ) -http_archive( - name = "dev-infra", - strip_prefix = "dev-infra-8a438a3bdc519880d78b5ac92b62bfe688deb058", - sha256 = "2e75c26ba9f678de8496f05a10470d62a398bad05f6b64864bbed5dc304a6f4e", - url = "https://github.com/angular/dev-infra/archive/8a438a3bdc519880d78b5ac92b62bfe688deb058/8a438a3bdc519880d78b5ac92b62bfe688deb058.tar.gz", -) - -load("@dev-infra//bazel/browsers:browser_repositories.bzl", "browser_repositories") - -browser_repositories() - load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories") web_test_repositories() @@ -64,15 +55,34 @@ load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "npm", data = ["//:package.json"], - yarn_lock = "//:yarn.lock", - pnpm_lock = "//:pnpm-lock.yaml", npmrc = "//:.npmrc", - verify_node_modules_ignored = "//:.bazelignore", patches = { - "@angular-devkit/architect-cli": ["//:tools/patches/bazel-architect-cli.patch"], + "@angular-devkit/architect-cli": ["//:tools/patches/bazel-architect-cli.patch"], }, + pnpm_lock = "//:pnpm-lock.yaml", + update_pnpm_lock = True, + verify_node_modules_ignored = "//:.bazelignore", + yarn_lock = "//:yarn.lock", ) load("@npm//:repositories.bzl", "npm_repositories") npm_repositories() + +git_repository( + name = "devinfra", + commit = "e4bf37af223483ce00f9316d227fd62cd744dc4b", + remote = "https://github.com/angular/dev-infra.git", +) + +load("@devinfra//bazel:setup_dependencies_1.bzl", "setup_dependencies_1") + +setup_dependencies_1() + +load("@devinfra//bazel:setup_dependencies_2.bzl", "setup_dependencies_2") + +setup_dependencies_2() + +load("@devinfra//bazel/browsers:browser_repositories.bzl", "browser_repositories") + +browser_repositories() \ No newline at end of file diff --git a/material.angular.io/defs.bzl b/material.angular.io/defs.bzl index 3c6f3b68ba56..817fbfc00bfa 100644 --- a/material.angular.io/defs.bzl +++ b/material.angular.io/defs.bzl @@ -53,9 +53,8 @@ APPLICATION_CONFIG = COMMON_CONFIG + [ # Common dependencies of Angular CLI test suites TEST_CONFIG = COMMON_CONFIG + [ - "@dev-infra//bazel/browsers/chromium", - "@dev-infra//bazel/browsers/firefox", - + "@devinfra//bazel/browsers/chromium", + "@devinfra//bazel/browsers/firefox", "//:ng-base-test-config", ":ng-test-config", "//:node_modules/karma", @@ -74,9 +73,8 @@ TEST_DEPS = [ # Common dependencies of Angular CLI e2e tests E2E_CONFIG = COMMON_CONFIG + [ - "@dev-infra//bazel/browsers/chromium", - "@dev-infra//bazel/browsers/firefox", - + "@devinfra//bazel/browsers/chromium", + "@devinfra//bazel/browsers/firefox", "//:ng-base-test-config", ":ng-e2e-config", "//:node_modules/jasmine-spec-reporter", @@ -89,28 +87,28 @@ E2E_DEPS = [ ] LINT_CONFIG = COMMON_CONFIG + [ - # Lint uses the e2e config - "//:ng-base-test-config", - ":ng-e2e-config", - "//:ng-base-lint-config", - "//:node_modules/@angular-eslint/builder", - "//:node_modules/@angular-eslint/eslint-plugin", - "//:node_modules/@angular-eslint/eslint-plugin-template", - "//:node_modules/@angular-eslint/template-parser", - "//:node_modules/eslint-plugin-ban", - "//:node_modules/eslint-plugin-import", - "//:node_modules/eslint-plugin-jsdoc", - "//:node_modules/eslint-plugin-prefer-arrow", - "//:node_modules/@typescript-eslint/eslint-plugin", - "//:node_modules/@typescript-eslint/parser", - "//:node_modules/@stylistic/eslint-plugin", + # Lint uses the e2e config + "//:ng-base-test-config", + ":ng-e2e-config", + "//:ng-base-lint-config", + "//:node_modules/@angular-eslint/builder", + "//:node_modules/@angular-eslint/eslint-plugin", + "//:node_modules/@angular-eslint/eslint-plugin-template", + "//:node_modules/@angular-eslint/template-parser", + "//:node_modules/eslint-plugin-ban", + "//:node_modules/eslint-plugin-import", + "//:node_modules/eslint-plugin-jsdoc", + "//:node_modules/eslint-plugin-prefer-arrow", + "//:node_modules/@typescript-eslint/eslint-plugin", + "//:node_modules/@typescript-eslint/parser", + "//:node_modules/@stylistic/eslint-plugin", ] LINT_DEPS = [ - # TODO(bazel): this should be included as a transitive of @angular-devkit/architect-cli!? - "//:node_modules/@angular-devkit/architect", + # TODO(bazel): this should be included as a transitive of @angular-devkit/architect-cli!? + "//:node_modules/@angular-devkit/architect", ] - +# buildifier: disable=unused-variable def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], **kwargs): """ Macro for Angular applications, creating various targets aligning with the Angular CLI. @@ -137,7 +135,7 @@ def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], test_srcs = native.glob(["src/test.ts", "src/**/*.spec.ts"]) - e2e_srcs = native.glob(["e2e/src/**/*.ts"]) + e2e_srcs = native.glob(["e2e/src/**/*.ts"]) tags = kwargs.pop("tags", []) @@ -145,36 +143,36 @@ def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], copy_to_bin( name = "ng-app-config", srcs = [ - "tsconfig.app.json", + "tsconfig.app.json", ], visibility = ["//visibility:private"], ) copy_to_bin( name = "ng-test-config", srcs = [ - "karma.conf.js", - "tsconfig.spec.json", + "karma.conf.js", + "tsconfig.spec.json", ], visibility = ["//visibility:private"], ) copy_to_bin( name = "ng-e2e-config", srcs = [ - "e2e/tsconfig.json", - "e2e/protractor.conf.js", + "e2e/tsconfig.json", + "e2e/protractor.conf.js", ], visibility = ["//visibility:private"], ) # Lint config files in addition to the root - if native.package_name() != '': - copy_to_bin( - name = "lint-config", - srcs = [ - ".eslintrc.json", - ], - visibility = ["//visibility:private"], - ) + if native.package_name() != "": + copy_to_bin( + name = "lint-config", + srcs = [ + ".eslintrc.json", + ], + visibility = ["//visibility:private"], + ) project_name = project_name if project_name else name @@ -239,7 +237,7 @@ def ng_app(name, project_name = None, deps = [], test_deps = [], e2e_deps = [], _architect_test( project_name, "lint", - srcs = srcs + test_srcs + e2e_srcs + deps + test_deps + NG_COMMON_DEPS + LINT_DEPS + LINT_CONFIG + ([":lint-config"] if native.package_name() != '' else []), + srcs = srcs + test_srcs + e2e_srcs + deps + test_deps + NG_COMMON_DEPS + LINT_DEPS + LINT_CONFIG + ([":lint-config"] if native.package_name() != "" else []), tags = tags + ["lint"], **kwargs ) @@ -248,8 +246,9 @@ def _architect_build(project_name, configuration = None, args = [], srcs = [], * output_dir = "%s%s" % (project_name, ".%s" % configuration if configuration else "") args = [ - "%s:build%s" % (project_name, ":%s" % configuration if configuration else ""), - "--output-path", output_dir + "%s:build%s" % (project_name, ":%s" % configuration if configuration else ""), + "--output-path", + output_dir, ] + args architect_cli.architect( @@ -258,13 +257,13 @@ def _architect_build(project_name, configuration = None, args = [], srcs = [], * args = args, out_dirs = [output_dir], srcs = srcs, - **kwargs, + **kwargs ) def _architect_test(project_name, command, configuration = None, args = [], srcs = [], **kwargs): to_root = "" if native.package_name() != "": - to_root = "".join(["../" for _ in native.package_name().split("/")]) + to_root = "".join(["../" for _ in native.package_name().split("/")]) env = { "CHROME_BIN": to_root + "$(CHROMIUM)", @@ -275,15 +274,15 @@ def _architect_test(project_name, command, configuration = None, args = [], srcs name = "%s%s" % (command, ".%s" % configuration if configuration else ""), chdir = native.package_name(), args = [ - "%s:%s%s" % (project_name, command, ":%s" % configuration if configuration else "") + "%s:%s%s" % (project_name, command, ":%s" % configuration if configuration else ""), ] + args, data = srcs, env = env, toolchains = [ - "@dev-infra//bazel/browsers/chromium:toolchain_alias", - "@dev-infra//bazel/browsers/firefox:toolchain_alias", + "@devinfra//bazel/browsers/chromium:toolchain_alias", + "@devinfra//bazel/browsers/firefox:toolchain_alias", ], - **kwargs, + **kwargs ) def _architect_binary(project_name, command, configuration = None, args = [], srcs = [], **kwargs): @@ -291,9 +290,8 @@ def _architect_binary(project_name, command, configuration = None, args = [], sr name = "%s%s" % (command, ".%s" % configuration if configuration else ""), chdir = native.package_name(), args = [ - "%s:%s%s" % (project_name, command, ":%s" % configuration if configuration else "") + "%s:%s%s" % (project_name, command, ":%s" % configuration if configuration else ""), ] + args, data = srcs, - **kwargs, + **kwargs ) - diff --git a/material.angular.io/package.json b/material.angular.io/package.json index 55552da5cb40..eb8b6ba159b8 100644 --- a/material.angular.io/package.json +++ b/material.angular.io/package.json @@ -30,24 +30,24 @@ "npm": "Please use yarn instead of NPM to install dependencies" }, "dependencies": { - "@angular/animations": "^20.0.0-next.0", - "@angular/cdk": "^20.0.0-next.0", - "@angular/cdk-experimental": "^20.0.0-next.0", - "@angular/common": "^20.0.0-next.0", - "@angular/compiler": "^20.0.0-next.0", - "@angular/components-examples": "https://github.com/angular/material2-docs-content.git#48e6a2c4281e5ef36f8ef20532ec0aa1825608d7", - "@angular/core": "^20.0.0-next.0", - "@angular/forms": "^20.0.0-next.0", - "@angular/google-maps": "^20.0.0-next.0", - "@angular/localize": "^20.0.0-next.0", - "@angular/material": "^20.0.0-next.0", - "@angular/material-experimental": "^20.0.0-next.0", - "@angular/material-moment-adapter": "^20.0.0-next.0", - "@angular/platform-browser": "^20.0.0-next.0", - "@angular/platform-browser-dynamic": "^20.0.0-next.0", - "@angular/router": "^20.0.0-next.0", - "@angular/ssr": "^20.0.0-next.0", - "@angular/youtube-player": "^20.0.0-next.0", + "@angular/animations": "^20.0.0-next.4", + "@angular/cdk": "^20.0.0-next.4", + "@angular/cdk-experimental": "^20.0.0-next.4", + "@angular/common": "^20.0.0-next.4", + "@angular/compiler": "^20.0.0-next.4", + "@angular/components-examples": "https://github.com/angular/material2-docs-content.git#e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3", + "@angular/core": "^20.0.0-next.4", + "@angular/forms": "^20.0.0-next.4", + "@angular/google-maps": "^20.0.0-next.4", + "@angular/localize": "^20.0.0-next.4", + "@angular/material": "^20.0.0-next.4", + "@angular/material-experimental": "^20.0.0-next.4", + "@angular/material-moment-adapter": "^20.0.0-next.4", + "@angular/platform-browser": "^20.0.0-next.4", + "@angular/platform-browser-dynamic": "^20.0.0-next.4", + "@angular/router": "^20.0.0-next.4", + "@angular/ssr": "^20.0.0-next.3", + "@angular/youtube-player": "^20.0.0-next.4", "@stackblitz/sdk": "^1.5.2", "moment": "^2.29.1", "path-normalize": "^6.0.13", @@ -56,15 +56,15 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/architect": "^0.2000.0-next.0", - "@angular-devkit/architect-cli": "^0.2000.0-next.0", - "@angular-devkit/build-angular": "^20.0.0-next.0", + "@angular-devkit/architect": "^0.2000.0-next.3", + "@angular-devkit/architect-cli": "^0.2000.0-next.3", + "@angular-devkit/build-angular": "^20.0.0-next.3", "@angular-eslint/builder": "^14.0.0", "@angular-eslint/eslint-plugin": "^14.0.0", "@angular-eslint/eslint-plugin-template": "^14.0.0", "@angular-eslint/template-parser": "^14.0.0", - "@angular/cli": "^20.0.0-next.0", - "@angular/compiler-cli": "^20.0.0-next.0", + "@angular/cli": "^20.0.0-next.3", + "@angular/compiler-cli": "^20.0.0-next.4", "@bazel/bazelisk": "^1.12.1", "@stylistic/eslint-plugin": "^2.6.2", "@types/jasmine": "^3.7.7", diff --git a/material.angular.io/pnpm-lock.yaml b/material.angular.io/pnpm-lock.yaml index 7aee0ae5e28e..049c780fa252 100644 --- a/material.angular.io/pnpm-lock.yaml +++ b/material.angular.io/pnpm-lock.yaml @@ -6,59 +6,59 @@ settings: dependencies: '@angular/animations': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/core@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/core@20.0.0-next.4) '@angular/cdk': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) '@angular/cdk-experimental': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/core@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/core@20.0.0-next.4) '@angular/common': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/core@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4 '@angular/components-examples': - specifier: https://github.com/angular/material2-docs-content.git#48e6a2c4281e5ef36f8ef20532ec0aa1825608d7 - version: github.com/angular/material2-docs-content/48e6a2c4281e5ef36f8ef20532ec0aa1825608d7(@angular/cdk-experimental@20.0.0-next.0)(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/material-date-fns-adapter@20.0.0-next.0)(@angular/material-experimental@20.0.0-next.0)(@angular/material-luxon-adapter@20.0.0-next.0)(@angular/material-moment-adapter@20.0.0-next.0)(@angular/material@20.0.0-next.0) + specifier: https://github.com/angular/material2-docs-content.git#e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3 + version: github.com/angular/material2-docs-content/e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3(@angular/cdk-experimental@20.0.0-next.4)(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/material-date-fns-adapter@20.0.0-next.4)(@angular/material-experimental@20.0.0-next.4)(@angular/material-luxon-adapter@20.0.0-next.4)(@angular/material-moment-adapter@20.0.0-next.4)(@angular/material@20.0.0-next.4) '@angular/core': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) '@angular/google-maps': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) '@angular/localize': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) '@angular/material': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) '@angular/material-experimental': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/material@20.0.0-next.0)(@angular/platform-browser@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/material@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4) '@angular/material-moment-adapter': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(moment@2.30.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(moment@2.30.1) '@angular/platform-browser': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4) '@angular/router': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) '@angular/ssr': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/router@20.0.0-next.1) + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/router@20.0.0-next.4) '@angular/youtube-player': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) '@stackblitz/sdk': specifier: ^1.5.2 version: 1.11.0 @@ -70,24 +70,24 @@ dependencies: version: 6.0.13 rxjs: specifier: ^7.8.1 - version: 7.8.1 + version: 7.8.2 tslib: specifier: ^2.3.0 - version: 2.6.3 + version: 2.8.1 zone.js: specifier: ~0.15.0 version: 0.15.0 devDependencies: '@angular-devkit/architect': - specifier: ^0.2000.0-next.0 - version: 0.2000.0-next.0 + specifier: ^0.2000.0-next.3 + version: 0.2000.0-next.3 '@angular-devkit/architect-cli': - specifier: ^0.2000.0-next.0 - version: 0.2000.0-next.0 + specifier: ^0.2000.0-next.3 + version: 0.2000.0-next.3 '@angular-devkit/build-angular': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/localize@20.0.0-next.1)(@angular/ssr@20.0.0-next.0)(@types/node@18.19.78)(karma@6.4.4)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.0) + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/ssr@20.0.0-next.3)(@types/node@18.19.78)(karma@6.4.4)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.3) '@angular-eslint/builder': specifier: ^14.0.0 version: 14.4.0(eslint@8.57.0)(typescript@5.8.2) @@ -101,20 +101,17 @@ devDependencies: specifier: ^14.0.0 version: 14.4.0(eslint@8.57.0)(typescript@5.8.2) '@angular/cli': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.0(@types/node@18.19.78) + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3(@types/node@18.19.78) '@angular/compiler-cli': - specifier: ^20.0.0-next.0 - version: 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) '@bazel/bazelisk': specifier: ^1.12.1 version: 1.19.0 '@stylistic/eslint-plugin': specifier: ^2.6.2 version: 2.6.2(eslint@8.57.0)(typescript@5.8.2) - '@types/imagemin': - specifier: ^7.0.0 - version: 7.0.1 '@types/jasmine': specifier: ^3.7.7 version: 3.10.18 @@ -148,12 +145,6 @@ devDependencies: firebase-tools: specifier: ^11.0.1 version: 11.30.0 - imagemin: - specifier: ^7.0.1 - version: 7.0.1 - imagemin-pngquant: - specifier: ^9.0.2 - version: 9.0.2 jasmine-core: specifier: ^3.7.1 version: 3.99.1 @@ -195,10 +186,10 @@ devDependencies: version: 7.0.0 puppeteer: specifier: ^24.1.0 - version: 24.2.0(typescript@5.8.2) + version: 24.1.0(typescript@5.8.2) sass: specifier: ^1.70.0 - version: 1.77.8 + version: 1.86.0 shelljs: specifier: ^0.8.4 version: 0.8.5 @@ -226,13 +217,13 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@angular-devkit/architect-cli@0.2000.0-next.0: - resolution: {integrity: sha512-YYOmbp3vpYG2SxuDzitTTkYwPbxOpmy3Wf5+OChEm4XR6nixEmk7hOFIjTsZ5a9hOeqtaoA7thvO5HofpdGJtQ==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/architect-cli@0.2000.0-next.3: + resolution: {integrity: sha512-XIoCZwo0WJcMlKFYurooni29QlcCcQx2RhMT7cWwK5bvigFq31fCvz9kahfakvJg8Qh05l9PUnTt+yz2gp/i1w==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true dependencies: - '@angular-devkit/architect': 0.2000.0-next.0 - '@angular-devkit/core': 20.0.0-next.0 + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular-devkit/core': 20.0.0-next.3 ansi-colors: 4.1.3 progress: 2.0.3 symbol-observable: 4.0.0 @@ -241,25 +232,26 @@ packages: - chokidar dev: true - /@angular-devkit/architect@0.2000.0-next.0: - resolution: {integrity: sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/architect@0.2000.0-next.3: + resolution: {integrity: sha512-7gI/gEMMcc3xVOwgQ8OutDbvxSbv23KOCEgUwk7Siap96wILk9o9h/ky1C8e/2WWAlr0pmVWK1mtbzAj9sQXqA==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.0 + '@angular-devkit/core': 20.0.0-next.3 rxjs: 7.8.2 transitivePeerDependencies: - chokidar dev: true - /@angular-devkit/build-angular@20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/localize@20.0.0-next.1)(@angular/ssr@20.0.0-next.0)(@types/node@18.19.78)(karma@6.4.4)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.0): - resolution: {integrity: sha512-Yoi4+fWhl5NyCAIp+XYo+roaHvZWIeCIf60cl7h4QqK8Q83JPVTFB/iDL4RGRp8vCrTTbYbXFfBqD0E6eg6DPw==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/build-angular@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/ssr@20.0.0-next.3)(@types/node@18.19.78)(karma@6.4.4)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.3): + resolution: {integrity: sha512-ubX6B5EOStqgQoD5Y/vKTsta2nJq70Hov61v0lQZ5pYxmYsuk3EhZBoAfOX7ImdmlBZfkqoeFvkisnzF722aNg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 '@angular/localize': ^20.0.0 || ^20.0.0-next.0 + '@angular/platform-browser': ^20.0.0 || ^20.0.0-next.0 '@angular/platform-server': ^20.0.0 || ^20.0.0-next.0 '@angular/service-worker': ^20.0.0 || ^20.0.0-next.0 - '@angular/ssr': ^20.0.0-next.0 + '@angular/ssr': ^20.0.0-next.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -268,10 +260,12 @@ packages: ng-packagr: ^20.0.0 || ^20.0.0-next.0 protractor: ^7.0.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: '>=5.5 <5.9' + typescript: '>=5.8 <5.9' peerDependenciesMeta: '@angular/localize': optional: true + '@angular/platform-browser': + optional: true '@angular/platform-server': optional: true '@angular/service-worker': @@ -296,32 +290,33 @@ packages: optional: true dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2000.0-next.0 - '@angular-devkit/build-webpack': 0.2000.0-next.0(webpack-dev-server@5.2.0)(webpack@5.98.0) - '@angular-devkit/core': 20.0.0-next.0 - '@angular/build': 20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/localize@20.0.0-next.1)(@angular/ssr@20.0.0-next.0)(@types/node@18.19.78)(karma@6.4.4)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2) - '@angular/compiler-cli': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2) - '@angular/localize': 20.0.0-next.1(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1) - '@angular/ssr': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/router@20.0.0-next.1) - '@babel/core': 7.26.9 - '@babel/generator': 7.26.9 + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular-devkit/build-webpack': 0.2000.0-next.3(webpack-dev-server@5.2.0)(webpack@5.98.0) + '@angular-devkit/core': 20.0.0-next.3 + '@angular/build': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/ssr@20.0.0-next.3)(@types/node@18.19.78)(karma@6.4.4)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2) + '@angular/compiler-cli': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@angular/localize': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/ssr': 20.0.0-next.3(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/router@20.0.0-next.4) + '@babel/core': 7.26.10 + '@babel/generator': 7.27.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.9) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-runtime': 7.26.9(@babel/core@7.26.9) - '@babel/preset-env': 7.26.9(@babel/core@7.26.9) - '@babel/runtime': 7.26.9 + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) + '@babel/preset-env': 7.26.9(@babel/core@7.26.10) + '@babel/runtime': 7.27.0 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(typescript@5.8.2)(webpack@5.98.0) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.0) + '@ngtools/webpack': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(typescript@5.8.2)(webpack@5.98.0) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.3) ansi-colors: 4.1.3 - autoprefixer: 10.4.20(postcss@8.5.3) - babel-loader: 10.0.0(@babel/core@7.26.9)(webpack@5.98.0) + autoprefixer: 10.4.21(postcss@8.5.3) + babel-loader: 10.0.0(@babel/core@7.26.10)(webpack@5.98.0) browserslist: 4.24.4 copy-webpack-plugin: 13.0.0(webpack@5.98.0) css-loader: 7.1.2(webpack@5.98.0) - esbuild-wasm: 0.25.0 + esbuild-wasm: 0.25.1 fast-glob: 3.3.3 http-proxy-middleware: 3.0.3 istanbul-lib-instrument: 6.0.3 @@ -336,14 +331,14 @@ packages: open: 10.1.0 ora: 5.4.1 picomatch: 4.0.2 - piscina: 4.8.0 + piscina: 4.9.2 postcss: 8.5.3 postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0) protractor: 7.0.0 resolve-url-loader: 5.0.0 rxjs: 7.8.2 - sass: 1.85.1 - sass-loader: 16.0.5(sass@1.85.1)(webpack@5.98.0) + sass: 1.86.0 + sass-loader: 16.0.5(sass@1.86.0)(webpack@5.98.0) semver: 7.7.1 source-map-loader: 5.0.0(webpack@5.98.0) source-map-support: 0.5.21 @@ -351,13 +346,13 @@ packages: tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-middleware: 7.4.2(webpack@5.98.0) webpack-dev-server: 5.2.0(webpack@5.98.0) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.98.0) optionalDependencies: - esbuild: 0.25.0 + esbuild: 0.25.1 transitivePeerDependencies: - '@angular/compiler' - '@rspack/core' @@ -382,24 +377,24 @@ packages: - yaml dev: true - /@angular-devkit/build-webpack@0.2000.0-next.0(webpack-dev-server@5.2.0)(webpack@5.98.0): - resolution: {integrity: sha512-OxE7F81bi4raByPP7ac3XpxrWqoMFKWAvVsspdckDsnkqIvtcp8b6XNLw70MNo0ZNUkVpyyEyetp3CyKajZVqQ==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/build-webpack@0.2000.0-next.3(webpack-dev-server@5.2.0)(webpack@5.98.0): + resolution: {integrity: sha512-qLex4we60IjBUC9tHUrU7gV9keH3AFj3nn9kB/Ye16bTLzN8VgKvGNf1U5KQm/2YaIVmiXNuQipYWLKZB+jfMw==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 dependencies: - '@angular-devkit/architect': 0.2000.0-next.0 + '@angular-devkit/architect': 0.2000.0-next.3 rxjs: 7.8.2 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-server: 5.2.0(webpack@5.98.0) transitivePeerDependencies: - chokidar dev: true - /@angular-devkit/core@20.0.0-next.0: - resolution: {integrity: sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/core@20.0.0-next.3: + resolution: {integrity: sha512-4u0FmzFjluX/2G2DBzPvcajMUA66zp2tjv/31s7yu83mTtTmaSD5femxDbeLDLXMhVWyC25d4I6ki96cbvV5rg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 peerDependenciesMeta: @@ -414,11 +409,11 @@ packages: source-map: 0.7.4 dev: true - /@angular-devkit/schematics@20.0.0-next.0: - resolution: {integrity: sha512-73NyW0AI+dx3yvstZcoaDlzUsk6MJ1h65Pej0qtXnmkhcXfcI2OJzyBSZ7Vjqz0pwqqoq2vlwx9OvZ4zdKTmJw==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/schematics@20.0.0-next.3: + resolution: {integrity: sha512-1tnJrTx66x6ohg6tFsi5WtzdFrRwEI+g7NVimM9ssbgOPYS3EikmjPVIiMisMRvGX70VwX1o+6mVvoxS0DB3Ig==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.0 + '@angular-devkit/core': 20.0.0-next.3 jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -499,34 +494,37 @@ packages: - supports-color dev: true - /@angular/animations@20.0.0-next.1(@angular/core@20.0.0-next.1): - resolution: {integrity: sha512-gdQmIX1QIeTavYipty612eWNvhkBITKkvgnk34rZ2anDOJeCL+7HimHy4bOhj0oeRx2c+WGcrFLYMK4jOf5JYA==} + /@angular/animations@20.0.0-next.4(@angular/core@20.0.0-next.4): + resolution: {integrity: sha512-LZRI0bUtsFXVGcH/B+nLIpsgPQmqFGzQ9GjDUsW4ZweBIdmbagIygkExhWVAYO+NxOedezpb4xzOL+D66oJdsg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 20.0.0-next.1 + '@angular/core': 20.0.0-next.4 dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - /@angular/build@20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/localize@20.0.0-next.1)(@angular/ssr@20.0.0-next.0)(@types/node@18.19.78)(karma@6.4.4)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2): - resolution: {integrity: sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular/build@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/ssr@20.0.0-next.3)(@types/node@18.19.78)(karma@6.4.4)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2): + resolution: {integrity: sha512-gmzlm3N0F7ivr8WFbhw2z64l1c3Tas87WDXWi7OpwLmAWxQT5Np6c3tnA6/cR1D0HnsfkOLKHlQljKFkZjIzew==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 || ^20.0.0-next.0 '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 '@angular/localize': ^20.0.0 || ^20.0.0-next.0 + '@angular/platform-browser': ^20.0.0 || ^20.0.0-next.0 '@angular/platform-server': ^20.0.0 || ^20.0.0-next.0 '@angular/service-worker': ^20.0.0 || ^20.0.0-next.0 - '@angular/ssr': ^20.0.0-next.0 + '@angular/ssr': ^20.0.0-next.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 || ^20.0.0-next.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: '>=5.5 <5.9' + typescript: '>=5.8 <5.9' peerDependenciesMeta: '@angular/localize': optional: true + '@angular/platform-browser': + optional: true '@angular/platform-server': optional: true '@angular/service-worker': @@ -545,22 +543,24 @@ packages: optional: true dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2000.0-next.0 - '@angular/compiler': 20.0.0-next.1(@angular/core@20.0.0-next.1) - '@angular/compiler-cli': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2) - '@angular/localize': 20.0.0-next.1(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1) - '@angular/ssr': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/router@20.0.0-next.1) - '@babel/core': 7.26.9 + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@angular/localize': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/ssr': 20.0.0-next.3(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/router@20.0.0-next.4) + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.9) - '@inquirer/confirm': 5.1.6(@types/node@18.19.78) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@inquirer/confirm': 5.1.8(@types/node@18.19.78) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.3) beasties: 0.2.0 browserslist: 4.24.4 - esbuild: 0.25.0 + esbuild: 0.25.1 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 karma: 6.4.4 less: 4.2.2 listr2: 8.2.5 @@ -568,15 +568,15 @@ packages: mrmime: 2.0.1 parse5-html-rewriting-stream: 7.0.0 picomatch: 4.0.2 - piscina: 4.8.0 + piscina: 4.9.2 postcss: 8.5.3 - rollup: 4.34.9 - sass: 1.85.1 + rollup: 4.37.0 + sass: 1.86.0 semver: 7.7.1 source-map-support: 0.5.21 tinyglobby: 0.2.12 typescript: 5.8.2 - vite: 6.2.0(@types/node@18.19.78)(less@4.2.2)(sass@1.85.1)(terser@5.39.0) + vite: 6.2.3(@types/node@18.19.78)(less@4.2.2)(sass@1.86.0)(terser@5.39.0) watchpack: 2.4.2 optionalDependencies: lmdb: 3.2.6 @@ -594,43 +594,42 @@ packages: - yaml dev: true - /@angular/cdk-experimental@20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/core@20.0.0-next.1): - resolution: {integrity: sha512-mUvnjkdKGqm16xlQnbw9s9AluXFaIQQ39HjDWANm7j/vmufqUX2HXBrNwdaSh7IFzbWjoLI0KNCPGcoA5n+fkg==} + /@angular/cdk-experimental@20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/core@20.0.0-next.4): + resolution: {integrity: sha512-4/wP3C1x9tuRcoulgAVGd67SWvVMlcKM7UZicGy543iyyVtu+jPir5yVZJZmCvlfY03WH/JnOeVOqyhXafSMZg==} peerDependencies: - '@angular/cdk': 20.0.0-next.0 + '@angular/cdk': 20.0.0-next.4 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 dependencies: - '@angular/cdk': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/cdk': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 dev: false - /@angular/cdk@20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-3PB0GP6EaEHC/8kkEUwZ3ULjDhXcIfBdlI14eKVpKMDnmVJxg3Yl48k2U6zrWbHR+nPsWqpGd96iKkbSm1YM6g==} + /@angular/cdk@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-gJnvo/EfiM+CNlAaAxUYEOWsdeFeEt+jodKNJVhnC0ARr+AKXPWxagzALSJB0bnEfaP+GwfkDPM1m/ONDXmsAw==} peerDependencies: '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - rxjs: 7.8.1 - tslib: 2.8.1 - optionalDependencies: + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) parse5: 7.1.2 + rxjs: 7.8.2 + tslib: 2.8.1 dev: false - /@angular/cli@20.0.0-next.0(@types/node@18.19.78): - resolution: {integrity: sha512-kTDyY+tQUWJi31l+oL0OY58HQxy4sO76hQ7MWZptP595uC1CvcVJhM0UDln87AkZFlIPzxsVVu9bQqDb4zc2CA==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular/cli@20.0.0-next.3(@types/node@18.19.78): + resolution: {integrity: sha512-W3ZE4Vtd80CzlAtNC+asBfVRr/rlj1q93Us3VB7cJKZq1BQDUT/KsEU8oYGBb1Ksgfw5KCSx3mm6rpjBkoa5Hg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true dependencies: - '@angular-devkit/architect': 0.2000.0-next.0 - '@angular-devkit/core': 20.0.0-next.0 - '@angular-devkit/schematics': 20.0.0-next.0 - '@inquirer/prompts': 7.3.2(@types/node@18.19.78) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2) - '@schematics/angular': 20.0.0-next.0 + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular-devkit/core': 20.0.0-next.3 + '@angular-devkit/schematics': 20.0.0-next.3 + '@inquirer/prompts': 7.4.0(@types/node@18.19.78) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.4.0) + '@schematics/angular': 20.0.0-next.3 '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 @@ -649,27 +648,27 @@ packages: - supports-color dev: true - /@angular/common@20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-NqkucRjpT4L6Y9ghkhxEevGGnOONE9jRYi1HszTba3lZWOhHLUkAO18z3wNDVREcTI+Bw25z9U/M5VAM7wAxUw==} + /@angular/common@20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-Qh7+7lFcTGjYWmlb0HOp/rRxdKWq0BPxFkw6xHHaFszzJKDv24Doj2akVf3SV2gi9f2lzIR5PICJLw00zy4jtA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 20.0.0-next.1 + '@angular/core': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - rxjs: 7.8.1 + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + rxjs: 7.8.2 tslib: 2.8.1 - /@angular/compiler-cli@20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2): - resolution: {integrity: sha512-6g17TQVRA8CWYP1oYLED6aUw7Txy586aQ14Fmlkmd5drpOWSPzyawE+bV0KHq3zT1Hx3UoKuU/ALB4RvlgeY9w==} + /@angular/compiler-cli@20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2): + resolution: {integrity: sha512-BPBVbsWLzZe1sPl7/2rF8OLypLO0RDOSZeXarSb90JwlUX/pp6/85Cl566tPiqX7EWntnVhwlaMFiBmNTV5vrA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.0.0-next.1 + '@angular/compiler': 20.0.0-next.4 typescript: '>=5.8 <5.9' dependencies: - '@angular/compiler': 20.0.0-next.1(@angular/core@20.0.0-next.1) - '@babel/core': 7.26.9 + '@angular/compiler': 20.0.0-next.4 + '@babel/core': 7.26.10 '@jridgewell/sourcemap-codec': 1.5.0 chokidar: 4.0.1 convert-source-map: 1.9.0 @@ -681,207 +680,201 @@ packages: transitivePeerDependencies: - supports-color - /@angular/compiler@20.0.0-next.1(@angular/core@20.0.0-next.1): - resolution: {integrity: sha512-IlNC7y+xYSygp3t+BiFk+xM1cbOXMOZ+2hftmWCJS5DmCGp775DtlPGT/lQd6yV5ud4PJ67dhcpj2SJFtNpL8A==} + /@angular/compiler@20.0.0-next.4: + resolution: {integrity: sha512-1lQxn1L2yVtc631cwCf0ez50hqbmQXq562wJAaQmcJlfH2EoLcjtfP3xBCluEpI+Dpto7yxXA4Ms9FYPAk8HDA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} - peerDependencies: - '@angular/core': 20.0.0-next.1 - peerDependenciesMeta: - '@angular/core': - optional: true dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) tslib: 2.8.1 - /@angular/core@20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0): - resolution: {integrity: sha512-QBJI6eG1qfDoEXddyc6rObyoWVrWbGBFsFNRfW8hzyKE6xILDyN9lca327CU0iPTysJBlzeeKPPrlaUZ1X0Hww==} + /@angular/core@20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0): + resolution: {integrity: sha512-LZIiGPsfyWxrlLcU1LQy3A+/OR6iyJ8Y40IsMnTFzZlQq96NomQM0AIksGjB2YyMM8z8VLBw5nvitVCbfVXn3w==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/compiler': 20.0.0-next.1 + '@angular/compiler': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: '@angular/compiler': optional: true dependencies: - '@angular/compiler': 20.0.0-next.1(@angular/core@20.0.0-next.1) - rxjs: 7.8.1 + '@angular/compiler': 20.0.0-next.4 + rxjs: 7.8.2 tslib: 2.8.1 zone.js: 0.15.0 - /@angular/forms@20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-Eb3aWev/pWUFaE22nJPyJG32j8GwARUJ3LSBePpMY0Dd9Ddo4z02evAGsihkIOwuPlwml6hWVWbjHSAwGbfeoQ==} + /@angular/forms@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-FatZvZriwOZ2WocTlhyRqasXdgbFrUa04n6Wvvn9zNDLiF3expW534R6djmcZQ20ynmHQjeJxBPF42Ark/zeaQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.1 - '@angular/core': 20.0.0-next.1 - '@angular/platform-browser': 20.0.0-next.1 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) - rxjs: 7.8.1 + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) + rxjs: 7.8.2 tslib: 2.8.1 dev: false - /@angular/google-maps@20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-bGL3WdW2vEopehbQ1eqbt2U1isnAkhYFELepka38VYsaS2NuuDhlSkIw+IDnSkOYG9TvO3/dVLK21v8JjynZBg==} + /@angular/google-maps@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-ncnq8qSDHmM8UfHcJdoIx0STUVrKOmjp8nOOSs/YI7Ksizn8uKz8ZBuHShxRTLNO49r0HYCDG6go8csm1xM+XA==} peerDependencies: '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) '@types/google.maps': 3.55.12 - rxjs: 7.8.1 + rxjs: 7.8.2 tslib: 2.8.1 dev: false - /@angular/localize@20.0.0-next.1(@angular/compiler-cli@20.0.0-next.1)(@angular/compiler@20.0.0-next.1): - resolution: {integrity: sha512-5oOqQlCnE5H2YdDDWUxn+s51BWJGabF9m3bfnRxDAmoriMzUn5Z9eUqQ2v7zG32q9Ve71TgqfGPy1jQmlbWV7Q==} + /@angular/localize@20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4): + resolution: {integrity: sha512-uUXgFyVF4D4wJzZFUn1et3oc4ThlL72Dzc19Br5tNJkFgFDD73f/O+tJ+vrq0VqbDknpM2xxZcRSYoS7RGGKZw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.0.0-next.1 - '@angular/compiler-cli': 20.0.0-next.1 + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4 dependencies: - '@angular/compiler': 20.0.0-next.1(@angular/core@20.0.0-next.1) - '@angular/compiler-cli': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2) - '@babel/core': 7.26.9 + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 - fast-glob: 3.3.3 + tinyglobby: 0.2.12 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /@angular/material-date-fns-adapter@20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(date-fns@3.6.0): - resolution: {integrity: sha512-7fC7UpWjJtGlBAdplZ97eUjsEMgXe7qLnHVHS2OQDE8FzkwPrelIlvjXqxXxUcRLe5kNH9y0Ir5tTgdmApotcw==} + /@angular/material-date-fns-adapter@20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(date-fns@4.1.0): + resolution: {integrity: sha512-gfzk8QcutZBC55jD80d9dKIqnagn+9dT6f2VhBjnGZs3JAha8Q2tqsOZnIRV22LKtho7fKgQ+9PU95q7ws0o7Q==} peerDependencies: '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/material': 20.0.0-next.0 + '@angular/material': 20.0.0-next.4 date-fns: '>2.20.0 <5.0' dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/material': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - date-fns: 3.6.0 + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/material': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + date-fns: 4.1.0 tslib: 2.8.1 dev: false - /@angular/material-experimental@20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/material@20.0.0-next.0)(@angular/platform-browser@20.0.0-next.1): - resolution: {integrity: sha512-Wqlbnlt2zCN779hQ3tjBFf8AzgLwI//3BEkxKWhFnMw6JgZ6F4zpnqLWIcyIxx695e0CqEBl/y4cvJaKFw6uvA==} + /@angular/material-experimental@20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/material@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4): + resolution: {integrity: sha512-2mpeB2rpos+uUD7ZqNf1OqUkPHtxT9k+ey0U31HjgxZpqTUBuXhC5vQo8HAGnD2imNNdDf9xGvLtA4RObHuYgg==} peerDependencies: - '@angular/cdk': 20.0.0-next.0 + '@angular/cdk': 20.0.0-next.4 '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/forms': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/material': 20.0.0-next.0 + '@angular/material': 20.0.0-next.4 '@angular/platform-browser': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 dependencies: - '@angular/cdk': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/forms': 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - '@angular/material': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - '@angular/platform-browser': 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) + '@angular/cdk': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/forms': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + '@angular/material': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) tslib: 2.8.1 dev: false - /@angular/material-luxon-adapter@20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(luxon@3.5.0): - resolution: {integrity: sha512-qgUuWnk461qd8yLXo1399vtuSzOL3KB5daq1LK9+l4DrN8jRfuVkl+GaCvno7NgZmZk4aLmbMIqTDbBlKoG6GQ==} + /@angular/material-luxon-adapter@20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(luxon@3.6.0): + resolution: {integrity: sha512-DYSBEBDLIjw4qX/K1m3Ix2soSz7agZccEtSM/72W3XRueAvAOjHBEBeb8/rAz9iqH/bf2CwzqO9bEU/Goup+pA==} peerDependencies: '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/material': 20.0.0-next.0 + '@angular/material': 20.0.0-next.4 luxon: ^3.0.0 dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/material': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - luxon: 3.5.0 + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/material': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + luxon: 3.6.0 tslib: 2.8.1 dev: false - /@angular/material-moment-adapter@20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(moment@2.30.1): - resolution: {integrity: sha512-hOXamP61NauCKHV7bW0qqHELLqSWMC0OYk5XVipo8e43wr0qlPkZA6w59zF6oFT/TyxSUmelrMHoL1xc3OaKkQ==} + /@angular/material-moment-adapter@20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(moment@2.30.1): + resolution: {integrity: sha512-9Z/LjhCzkpEqzgA4DeHEWQlNmAjFFVyjwSLyW5B+wn7mYoJDavHO0p6NT7cn6lxOQ6K5Mbmo4c4Ix+CcKeiTbg==} peerDependencies: '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/material': 20.0.0-next.0 + '@angular/material': 20.0.0-next.4 moment: ^2.18.1 dependencies: - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/material': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/material': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) moment: 2.30.1 tslib: 2.8.1 dev: false - /@angular/material@20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-cexU/AOkVFzPCVh5BtVEzUAewE0KjLQW/8nC6LGSOnbHjJ1tUoM+zHeqiMMDvOKzA7f7YsQg4WddlL++ANF5jA==} + /@angular/material@20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-ryvtEO22VWaW554Wf1thsqa/m2NzKaSTHBb0klEeGtb5oWgUOXm8Dn86pCDxrXsMnCOvp5GG+viMJVf0D5QDxA==} peerDependencies: - '@angular/cdk': 20.0.0-next.0 + '@angular/cdk': 20.0.0-next.4 '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/forms': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/platform-browser': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/cdk': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/forms': 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - '@angular/platform-browser': 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) - rxjs: 7.8.1 + '@angular/cdk': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/forms': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) + rxjs: 7.8.2 tslib: 2.8.1 dev: false - /@angular/platform-browser-dynamic@20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/compiler@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1): - resolution: {integrity: sha512-HoQXaW3Se8wxuRYtcJzanX2fOROXfy+VAEjLTyk7GFh2oXj/PsQs837sdX4qJfxdV2DXWkAB60YpzNI3xXuHtw==} + /@angular/platform-browser-dynamic@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4): + resolution: {integrity: sha512-nKaPNCzYJqoNToPBYCLKJK9nHoeTxJqos+KWiIWLCcP6FJxJHHhOszG7gEE5l28QjbtdpCYiHsZ5ZDGLs4TZvg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.1 - '@angular/compiler': 20.0.0-next.1 - '@angular/core': 20.0.0-next.1 - '@angular/platform-browser': 20.0.0-next.1 + '@angular/common': 20.0.0-next.4 + '@angular/compiler': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/compiler': 20.0.0-next.1(@angular/core@20.0.0-next.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/compiler': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) tslib: 2.8.1 dev: false - /@angular/platform-browser@20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1): - resolution: {integrity: sha512-v0r05Y/GqvFtjVh0P9/TEzuElmX15fKLpqm+OPGKPjHstibzLPtS6bDMxpONVW0/cBtH25gm9zkim19GY3o2eA==} + /@angular/platform-browser@20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4): + resolution: {integrity: sha512-9nnloL9JD3UZbgdYpRsFynkX99BBJbFZ1f8XlhWC3b0Vwwmlq6dXH96fuWSlpbHwz7+NVooUZmWOx8GI/qK/Uw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/animations': 20.0.0-next.1 - '@angular/common': 20.0.0-next.1 - '@angular/core': 20.0.0-next.1 + '@angular/animations': 20.0.0-next.4 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 peerDependenciesMeta: '@angular/animations': optional: true dependencies: - '@angular/animations': 20.0.0-next.1(@angular/core@20.0.0-next.1) - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/animations': 20.0.0-next.4(@angular/core@20.0.0-next.4) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - /@angular/router@20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-aScQ230WCripRSQ2gg0zSoR4nBHPN2eD9DzCX2jQWFRnTAflqHpGJvBV/MRiTGRDUNk7Q4d9mC/y9R36fyuPLw==} + /@angular/router@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-cCAC6nsUTq9gWACqCZiLZUd42Fm4r4+7qQ4u52pFEe1Suhuh/7FqzBXXQAXrgoF1MiM903tmAdN7ZO5Yh5Wiig==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.1 - '@angular/core': 20.0.0-next.1 - '@angular/platform-browser': 20.0.0-next.1 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.1(@angular/animations@20.0.0-next.1)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1) - rxjs: 7.8.1 + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4) + rxjs: 7.8.2 tslib: 2.8.1 - /@angular/ssr@20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/router@20.0.0-next.1): - resolution: {integrity: sha512-mXtOeuXi3y2Hg2VZIomyICkoGwa3J3H021AsTgSZVqv+NqKhFbwAX024dfS1r9Kj3KiiCPCoPHBJynxIaFB8kA==} + /@angular/ssr@20.0.0-next.3(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/router@20.0.0-next.4): + resolution: {integrity: sha512-MdCLuVymjyfYdSg9pPGF5nwnZG5+iCM6W2OGugsD3XkV7j3lJ5TN3hOROJnNcKlTqb15WJH+EIfR/TD6/xeKzA==} peerDependencies: '@angular/common': ^20.0.0 || ^20.0.0-next.0 '@angular/core': ^20.0.0 || ^20.0.0-next.0 @@ -891,22 +884,22 @@ packages: '@angular/platform-server': optional: true dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/router': 20.0.0-next.1(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/router': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) tslib: 2.8.1 - /@angular/youtube-player@20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1): - resolution: {integrity: sha512-SoL5xnaTX2CaV/MfuJpKWKUxQeIWwlAL+4vAr3GMRfWGGv0z4xyk0YPVt+b+y9HyRAEdfSeFBQ9+K88b/5MJSg==} + /@angular/youtube-player@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2): + resolution: {integrity: sha512-sj6/h9yOg37Al4JqujyTOSBhyU1TjS7gqnDhJX2Fpm5FScu/l/MhdIu9PvBhHL4GN2FwXPXudyoMe96+BUHWGQ==} peerDependencies: '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) '@types/youtube': 0.1.0 - rxjs: 7.8.1 + rxjs: 7.8.2 tslib: 2.8.1 dev: false @@ -931,20 +924,20 @@ packages: resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.26.9: - resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} + /@babel/core@7.26.10: + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.9 + '@babel/generator': 7.27.0 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) - '@babel/helpers': 7.26.9 - '@babel/parser': 7.26.9 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -953,12 +946,12 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.26.9: - resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} + /@babel/generator@7.27.0: + resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -967,7 +960,7 @@ packages: resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 dev: true /@babel/helper-compilation-targets@7.26.5: @@ -980,42 +973,42 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.9): + /@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.9) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.9): + /@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.1.1 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.9): + /@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.10): resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 debug: 4.4.0 @@ -1029,8 +1022,8 @@ packages: resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true @@ -1039,21 +1032,21 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color - /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9): + /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10): resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color @@ -1061,7 +1054,7 @@ packages: resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 dev: true /@babel/helper-plugin-utils@7.26.5: @@ -1069,30 +1062,30 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.9): + /@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-replace-supers@7.25.9(@babel/core@7.26.9): + /@babel/helper-replace-supers@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true @@ -1101,8 +1094,8 @@ packages: resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true @@ -1111,7 +1104,7 @@ packages: resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 dev: true /@babel/helper-string-parser@7.25.9: @@ -1130,835 +1123,835 @@ packages: resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers@7.26.9: - resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} + /@babel/helpers@7.27.0: + resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.9 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 - /@babel/parser@7.26.9: - resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} + /@babel/parser@7.27.0: + resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.9): + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.9): + /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.9): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.9): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.9): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 dev: true - /@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.9): + /@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10): resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.9): + /@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10): resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.9): + /@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10): resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.9) - '@babel/traverse': 7.26.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.9) + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.9): + /@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10): resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.9): + /@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10): resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.9) - '@babel/traverse': 7.26.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) + '@babel/traverse': 7.27.0 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.26.9 + '@babel/template': 7.27.0 dev: true - /@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.9): + /@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10): resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.9): + /@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10): resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.9): + /@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10): resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.9 + '@babel/traverse': 7.27.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.9): + /@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10): resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) dev: true - /@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.9) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.9): + /@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10): resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-runtime@7.26.9(@babel/core@7.26.9): - resolution: {integrity: sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ==} + /@babel/plugin-transform-runtime@7.26.10(@babel/core@7.26.10): + resolution: {integrity: sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.9) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.9) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.9) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.10) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.10) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.9): + /@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10): resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.9): + /@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.10): resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.9): + /@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10): resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.26.5 dev: true - /@babel/preset-env@7.26.9(@babel/core@7.26.9): + /@babel/preset-env@7.26.9(@babel/core@7.26.10): resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.9) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.9) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.9) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.9) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.9) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.9) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.9) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.9) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.9) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.9) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.9) - '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.9) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.9) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.9) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.9) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.9) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.10) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.10) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.10) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.10) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.10) + '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.10) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.10) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.10) core-js-compat: 3.40.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.9): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 esutils: 2.0.3 dev: true - /@babel/runtime@7.26.9: - resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} + /@babel/runtime@7.27.0: + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.26.9: - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + /@babel/template@7.27.0: + resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 - /@babel/traverse@7.26.9: - resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} + /@babel/traverse@7.27.0: + resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.9 - '@babel/parser': 7.26.9 - '@babel/template': 7.26.9 - '@babel/types': 7.26.9 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.26.9: - resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} + /@babel/types@7.27.0: + resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.25.9 @@ -2001,8 +1994,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@esbuild/aix-ppc64@0.25.0: - resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + /@esbuild/aix-ppc64@0.25.1: + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2010,8 +2003,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.25.0: - resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + /@esbuild/android-arm64@0.25.1: + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2019,8 +2012,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.25.0: - resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + /@esbuild/android-arm@0.25.1: + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2028,8 +2021,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.25.0: - resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + /@esbuild/android-x64@0.25.1: + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2037,8 +2030,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.25.0: - resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + /@esbuild/darwin-arm64@0.25.1: + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2046,8 +2039,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.25.0: - resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + /@esbuild/darwin-x64@0.25.1: + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2055,8 +2048,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.25.0: - resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + /@esbuild/freebsd-arm64@0.25.1: + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2064,8 +2057,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.25.0: - resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + /@esbuild/freebsd-x64@0.25.1: + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2073,8 +2066,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.25.0: - resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + /@esbuild/linux-arm64@0.25.1: + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2082,8 +2075,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.25.0: - resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + /@esbuild/linux-arm@0.25.1: + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2091,8 +2084,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.25.0: - resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + /@esbuild/linux-ia32@0.25.1: + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2100,8 +2093,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.25.0: - resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + /@esbuild/linux-loong64@0.25.1: + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2109,8 +2102,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.25.0: - resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + /@esbuild/linux-mips64el@0.25.1: + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2118,8 +2111,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.25.0: - resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + /@esbuild/linux-ppc64@0.25.1: + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2127,8 +2120,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.25.0: - resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + /@esbuild/linux-riscv64@0.25.1: + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2136,8 +2129,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.25.0: - resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + /@esbuild/linux-s390x@0.25.1: + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2145,8 +2138,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.25.0: - resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + /@esbuild/linux-x64@0.25.1: + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2154,8 +2147,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-arm64@0.25.0: - resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + /@esbuild/netbsd-arm64@0.25.1: + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2163,8 +2156,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.25.0: - resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + /@esbuild/netbsd-x64@0.25.1: + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2172,8 +2165,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-arm64@0.25.0: - resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + /@esbuild/openbsd-arm64@0.25.1: + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2181,8 +2174,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.25.0: - resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + /@esbuild/openbsd-x64@0.25.1: + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2190,8 +2183,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.25.0: - resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + /@esbuild/sunos-x64@0.25.1: + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2199,8 +2192,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.25.0: - resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + /@esbuild/win32-arm64@0.25.1: + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2208,8 +2201,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.25.0: - resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + /@esbuild/win32-ia32@0.25.1: + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2217,8 +2210,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.25.0: - resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + /@esbuild/win32-x64@0.25.1: + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2246,7 +2239,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.6 + debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -2316,7 +2309,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.13 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@grpc/proto-loader@0.7.13: @@ -2336,7 +2329,7 @@ packages: deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -2352,8 +2345,8 @@ packages: deprecated: Use @eslint/object-schema instead dev: true - /@inquirer/checkbox@4.1.2(@types/node@18.19.78): - resolution: {integrity: sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ==} + /@inquirer/checkbox@4.1.4(@types/node@18.19.78): + resolution: {integrity: sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2361,16 +2354,16 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 dev: true - /@inquirer/confirm@5.1.6(@types/node@18.19.78): - resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} + /@inquirer/confirm@5.1.8(@types/node@18.19.78): + resolution: {integrity: sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2378,13 +2371,13 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 dev: true - /@inquirer/core@10.1.7(@types/node@18.19.78): - resolution: {integrity: sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA==} + /@inquirer/core@10.1.9(@types/node@18.19.78): + resolution: {integrity: sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2392,8 +2385,8 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -2403,8 +2396,8 @@ packages: yoctocolors-cjs: 2.1.2 dev: true - /@inquirer/editor@4.2.7(@types/node@18.19.78): - resolution: {integrity: sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA==} + /@inquirer/editor@4.2.9(@types/node@18.19.78): + resolution: {integrity: sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2412,14 +2405,14 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 external-editor: 3.1.0 dev: true - /@inquirer/expand@4.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig==} + /@inquirer/expand@4.0.11(@types/node@18.19.78): + resolution: {integrity: sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2427,19 +2420,19 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 yoctocolors-cjs: 2.1.2 dev: true - /@inquirer/figures@1.0.10: - resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} + /@inquirer/figures@1.0.11: + resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} engines: {node: '>=18'} dev: true - /@inquirer/input@4.1.6(@types/node@18.19.78): - resolution: {integrity: sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ==} + /@inquirer/input@4.1.8(@types/node@18.19.78): + resolution: {integrity: sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2447,13 +2440,13 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 dev: true - /@inquirer/number@3.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w==} + /@inquirer/number@3.0.11(@types/node@18.19.78): + resolution: {integrity: sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2461,13 +2454,13 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 dev: true - /@inquirer/password@4.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ==} + /@inquirer/password@4.0.11(@types/node@18.19.78): + resolution: {integrity: sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2475,14 +2468,14 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 ansi-escapes: 4.3.2 dev: true - /@inquirer/prompts@7.3.2(@types/node@18.19.78): - resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} + /@inquirer/prompts@7.4.0(@types/node@18.19.78): + resolution: {integrity: sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2490,21 +2483,21 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/checkbox': 4.1.2(@types/node@18.19.78) - '@inquirer/confirm': 5.1.6(@types/node@18.19.78) - '@inquirer/editor': 4.2.7(@types/node@18.19.78) - '@inquirer/expand': 4.0.9(@types/node@18.19.78) - '@inquirer/input': 4.1.6(@types/node@18.19.78) - '@inquirer/number': 3.0.9(@types/node@18.19.78) - '@inquirer/password': 4.0.9(@types/node@18.19.78) - '@inquirer/rawlist': 4.0.9(@types/node@18.19.78) - '@inquirer/search': 3.0.9(@types/node@18.19.78) - '@inquirer/select': 4.0.9(@types/node@18.19.78) + '@inquirer/checkbox': 4.1.4(@types/node@18.19.78) + '@inquirer/confirm': 5.1.8(@types/node@18.19.78) + '@inquirer/editor': 4.2.9(@types/node@18.19.78) + '@inquirer/expand': 4.0.11(@types/node@18.19.78) + '@inquirer/input': 4.1.8(@types/node@18.19.78) + '@inquirer/number': 3.0.11(@types/node@18.19.78) + '@inquirer/password': 4.0.11(@types/node@18.19.78) + '@inquirer/rawlist': 4.0.11(@types/node@18.19.78) + '@inquirer/search': 3.0.11(@types/node@18.19.78) + '@inquirer/select': 4.1.0(@types/node@18.19.78) '@types/node': 18.19.78 dev: true - /@inquirer/rawlist@4.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A==} + /@inquirer/rawlist@4.0.11(@types/node@18.19.78): + resolution: {integrity: sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2512,14 +2505,14 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 yoctocolors-cjs: 2.1.2 dev: true - /@inquirer/search@3.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA==} + /@inquirer/search@3.0.11(@types/node@18.19.78): + resolution: {integrity: sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2527,15 +2520,15 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 yoctocolors-cjs: 2.1.2 dev: true - /@inquirer/select@4.0.9(@types/node@18.19.78): - resolution: {integrity: sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg==} + /@inquirer/select@4.1.0(@types/node@18.19.78): + resolution: {integrity: sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2543,9 +2536,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.1.7(@types/node@18.19.78) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@18.19.78) + '@inquirer/core': 10.1.9(@types/node@18.19.78) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@18.19.78) '@types/node': 18.19.78 ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 @@ -2558,8 +2551,8 @@ packages: mute-stream: 1.0.0 dev: true - /@inquirer/type@3.0.4(@types/node@18.19.78): - resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} + /@inquirer/type@3.0.5(@types/node@18.19.78): + resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2672,13 +2665,13 @@ packages: resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} dev: true - /@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2): + /@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.4.0): resolution: {integrity: sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==} engines: {node: '>=18.0.0'} peerDependencies: '@inquirer/prompts': '>= 3 < 8' dependencies: - '@inquirer/prompts': 7.3.2(@types/node@18.19.78) + '@inquirer/prompts': 7.4.0(@types/node@18.19.78) '@inquirer/type': 1.5.5 dev: true @@ -2946,17 +2939,17 @@ packages: dev: true optional: true - /@ngtools/webpack@20.0.0-next.0(@angular/compiler-cli@20.0.0-next.1)(typescript@5.8.2)(webpack@5.98.0): - resolution: {integrity: sha512-dOm+V836ujgyrpbrqINwyYsTvNb/N+dJRcAaof1iS+gzXQZNpgOC2FadzNu5MUvdRk5khNrvkoNoFD3OmszNjQ==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@ngtools/webpack@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(typescript@5.8.2)(webpack@5.98.0): + resolution: {integrity: sha512-aVfC9dckydLIjmFvmyoaI3rO1B8z5JysJ1/xlyejhSbKY0Wg6+5QuWMBuh9fnCJljnBucPGpu+EzBIxCKVC8Hw==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 - typescript: '>=5.5 <5.9' + typescript: '>=5.8 <5.9' webpack: ^5.54.0 dependencies: - '@angular/compiler-cli': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(typescript@5.8.2) + '@angular/compiler-cli': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /@nodelib/fs.scandir@2.1.5: @@ -2965,10 +2958,12 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 + dev: true /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} + dev: true /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -2976,17 +2971,17 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + dev: true /@npmcli/agent@2.2.2: resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} - requiresBuild: true dependencies: agent-base: 7.1.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 10.4.3 - socks-proxy-agent: 8.0.4 + socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color dev: true @@ -3007,7 +3002,6 @@ packages: /@npmcli/fs@3.1.1: resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dependencies: semver: 7.7.1 dev: true @@ -3327,8 +3321,8 @@ packages: - supports-color dev: true - /@puppeteer/browsers@2.7.1: - resolution: {integrity: sha512-MK7rtm8JjaxPN7Mf1JdZIZKPD2Z+W7osvrC1vjpvfOX1K0awDIHYbNi89f7eotp7eMUn2shWnt03HwVbriXtKQ==} + /@puppeteer/browsers@2.7.0: + resolution: {integrity: sha512-bO61XnTuopsz9kvtfqhVbH6LTM1koxK0IlBR+yuVrM2LB7mk8+5o1w18l5zqd5cs8xlf+ntgambqRqGifMDjog==} engines: {node: '>=18'} hasBin: true dependencies: @@ -3338,170 +3332,179 @@ packages: proxy-agent: 6.5.0 semver: 7.7.1 tar-fs: 3.0.8 + unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: - bare-buffer - supports-color dev: true - /@rollup/rollup-android-arm-eabi@4.34.9: - resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} + /@rollup/rollup-android-arm-eabi@4.37.0: + resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.34.9: - resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} + /@rollup/rollup-android-arm64@4.37.0: + resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.34.9: - resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} + /@rollup/rollup-darwin-arm64@4.37.0: + resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.34.9: - resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} + /@rollup/rollup-darwin-x64@4.37.0: + resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-freebsd-arm64@4.34.9: - resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} + /@rollup/rollup-freebsd-arm64@4.37.0: + resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /@rollup/rollup-freebsd-x64@4.34.9: - resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} + /@rollup/rollup-freebsd-x64@4.37.0: + resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.34.9: - resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} + /@rollup/rollup-linux-arm-gnueabihf@4.37.0: + resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.34.9: - resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} + /@rollup/rollup-linux-arm-musleabihf@4.37.0: + resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.34.9: - resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} + /@rollup/rollup-linux-arm64-gnu@4.37.0: + resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.34.9: - resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} + /@rollup/rollup-linux-arm64-musl@4.37.0: + resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-loongarch64-gnu@4.34.9: - resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} + /@rollup/rollup-linux-loongarch64-gnu@4.37.0: + resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} cpu: [loong64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.34.9: - resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} + /@rollup/rollup-linux-powerpc64le-gnu@4.37.0: + resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.34.9: - resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} + /@rollup/rollup-linux-riscv64-gnu@4.37.0: + resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-musl@4.37.0: + resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.34.9: - resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} + /@rollup/rollup-linux-s390x-gnu@4.37.0: + resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.34.9: - resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} + /@rollup/rollup-linux-x64-gnu@4.37.0: + resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.34.9: - resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} + /@rollup/rollup-linux-x64-musl@4.37.0: + resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.34.9: - resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} + /@rollup/rollup-win32-arm64-msvc@4.37.0: + resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.34.9: - resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} + /@rollup/rollup-win32-ia32-msvc@4.37.0: + resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.34.9: - resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} + /@rollup/rollup-win32-x64-msvc@4.37.0: + resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@schematics/angular@20.0.0-next.0: - resolution: {integrity: sha512-IMJA7/okzzlw/riADSzbMEvXXCWefz69AN6pE8lV+T05mc/dkxYTJ36tm32oYdHSSLnsPev7JuvnxdgTHJgqLA==} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@schematics/angular@20.0.0-next.3: + resolution: {integrity: sha512-QEkCset/k0s0jR7+BJYnI/UxpQV3Y9ORiG03XFx3/fRfs/0d8HeMxJgssUw2wa96kUxJZIzvPnYd6yYqm4tn0g==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.0 - '@angular-devkit/schematics': 20.0.0-next.0 + '@angular-devkit/core': 20.0.0-next.3 + '@angular-devkit/schematics': 20.0.0-next.3 jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -3589,7 +3592,7 @@ packages: '@sigstore/bundle': 3.0.0 '@sigstore/core': 2.0.0 '@sigstore/protobuf-specs': 0.3.2 - make-fetch-happen: 14.0.3 + make-fetch-happen: 14.0.2 proc-log: 5.0.0 promise-retry: 2.0.1 transitivePeerDependencies: @@ -3615,11 +3618,6 @@ packages: '@sigstore/protobuf-specs': 0.3.2 dev: true - /@sindresorhus/is@0.7.0: - resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} - engines: {node: '>=4'} - dev: true - /@socket.io/component-emitter@3.1.2: resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} dev: true @@ -3634,10 +3632,10 @@ packages: peerDependencies: eslint: '>=8.40.0' dependencies: - '@types/eslint': 9.6.0 - acorn: 8.12.1 + '@types/eslint': 9.6.1 + acorn: 8.14.0 eslint: 8.57.0 - eslint-visitor-keys: 4.0.0 + eslint-visitor-keys: 4.2.0 espree: 10.1.0 dev: true @@ -3648,7 +3646,7 @@ packages: eslint: '>=8.40.0' dependencies: '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0) - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 eslint: 8.57.0 estraverse: 5.3.0 picomatch: 4.0.2 @@ -3659,8 +3657,8 @@ packages: peerDependencies: eslint: '*' dependencies: - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.8.2) + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.26.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -3674,8 +3672,8 @@ packages: eslint: '>=8.40.0' dependencies: '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0) - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.8.2) + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.26.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -3692,7 +3690,7 @@ packages: '@stylistic/eslint-plugin-jsx': 2.6.2(eslint@8.57.0) '@stylistic/eslint-plugin-plus': 2.6.2(eslint@8.57.0)(typescript@5.8.2) '@stylistic/eslint-plugin-ts': 2.6.2(eslint@8.57.0)(typescript@5.8.2) - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -3724,8 +3722,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 @@ -3733,43 +3731,43 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 /@types/babel__traverse@7.20.6: resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.26.9 + '@babel/types': 7.27.0 /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/bonjour@3.5.13: resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.19.5 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/cookie@0.4.1: @@ -3779,33 +3777,29 @@ packages: /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/duplexify@3.6.4: resolution: {integrity: sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 '@types/estree': 1.0.6 dev: true - /@types/eslint@9.6.0: - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + /@types/eslint@9.6.1: + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 dev: true - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - /@types/estree@1.0.6: resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} dev: true @@ -3813,7 +3807,7 @@ packages: /@types/express-serve-static-core@4.19.5: resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3832,14 +3826,14 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/google.maps@3.55.12: @@ -3853,13 +3847,7 @@ packages: /@types/http-proxy@1.17.15: resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} dependencies: - '@types/node': 18.19.78 - dev: true - - /@types/imagemin@7.0.1: - resolution: {integrity: sha512-xEn5+M3lDBtI3JxLy6eU3ksoVurygnlG7OYhTqJfGGP4PcvYnfn+IABCmMve7ziM/SneHDm5xgJFKC8hCYPicw==} - dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/jasmine@3.10.18: @@ -3874,12 +3862,6 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 18.19.78 - dev: true - /@types/linkify-it@5.0.0: resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} dev: true @@ -3910,7 +3892,7 @@ packages: /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/node@18.19.78: @@ -3919,6 +3901,12 @@ packages: undici-types: 5.26.5 dev: true + /@types/node@22.3.0: + resolution: {integrity: sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==} + dependencies: + undici-types: 6.18.2 + dev: true + /@types/q@0.0.32: resolution: {integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==} dev: true @@ -3931,12 +3919,6 @@ packages: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true - /@types/responselike@1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - dependencies: - '@types/node': 18.19.78 - dev: true - /@types/retry@0.12.2: resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} dev: true @@ -3945,7 +3927,7 @@ packages: resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} dependencies: '@types/glob': 8.1.0 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/selenium-webdriver@3.0.26: @@ -3960,7 +3942,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/serve-index@1.9.4: @@ -3973,7 +3955,7 @@ packages: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.78 + '@types/node': 22.3.0 '@types/send': 0.17.4 dev: true @@ -3981,13 +3963,13 @@ packages: resolution: {integrity: sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==} dependencies: '@types/glob': 7.2.0 - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/triple-beam@1.3.5: @@ -3997,14 +3979,14 @@ packages: /@types/ws@8.5.12: resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 dev: true optional: true @@ -4062,14 +4044,6 @@ packages: '@typescript-eslint/visitor-keys': 5.43.0 dev: true - /@typescript-eslint/scope-manager@8.1.0: - resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 - dev: true - /@typescript-eslint/scope-manager@8.26.0: resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4090,7 +4064,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.43.0(typescript@5.8.2) '@typescript-eslint/utils': 5.43.0(eslint@8.57.0)(typescript@5.8.2) - debug: 4.3.6 + debug: 4.4.0 eslint: 8.57.0 tsutils: 3.21.0(typescript@5.8.2) typescript: 5.8.2 @@ -4120,11 +4094,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@8.1.0: - resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /@typescript-eslint/types@8.26.0: resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4141,33 +4110,11 @@ packages: dependencies: '@typescript-eslint/types': 5.43.0 '@typescript-eslint/visitor-keys': 5.43.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@8.1.0(typescript@5.8.2): - resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.8.2) + semver: 7.7.1 + tsutils: 3.21.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -4206,23 +4153,7 @@ packages: eslint: 8.57.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0(eslint@8.57.0) - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@8.1.0(eslint@8.57.0)(typescript@5.8.2): - resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.8.2) - eslint: 8.57.0 + semver: 7.7.1 transitivePeerDependencies: - supports-color - typescript @@ -4253,14 +4184,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@8.1.0: - resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.1.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@8.26.0: resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4273,13 +4196,13 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.0): + /@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.3): resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} peerDependencies: vite: ^6.0.0 dependencies: - vite: 6.2.0(@types/node@18.19.78)(less@4.2.2)(sass@1.77.8) + vite: 6.2.3(@types/node@18.19.78)(less@4.2.2)(sass@1.86.0)(terser@5.39.0) dev: true /@webassemblyjs/ast@1.14.1: @@ -4403,7 +4326,6 @@ packages: /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dev: true /abort-controller@3.0.0: @@ -4421,25 +4343,19 @@ packages: negotiator: 0.6.3 dev: true - /acorn-jsx@5.3.2(acorn@8.12.1): + /acorn-jsx@5.3.2(acorn@8.14.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.12.1 + acorn: 8.14.0 dev: true /acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} dependencies: - acorn: 8.12.1 - dev: true - - /acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn: 8.14.0 dev: true /acorn@8.14.0: @@ -4477,15 +4393,6 @@ packages: - supports-color dev: true - /agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -4494,7 +4401,6 @@ packages: /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - requiresBuild: true dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 @@ -4634,17 +4540,6 @@ packages: picomatch: 2.3.1 dev: true - /arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} - dev: true - - /archive-type@4.0.0: - resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} - engines: {node: '>=4'} - dependencies: - file-type: 4.4.0 - dev: true - /archiver-utils@2.1.0: resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} engines: {node: '>= 6'} @@ -4856,15 +4751,15 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /autoprefixer@10.4.20(postcss@8.5.3): - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + /autoprefixer@10.4.21(postcss@8.5.3): + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001699 + caniuse-lite: 1.0.30001707 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -4902,62 +4797,50 @@ packages: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} dev: true - /babel-loader@10.0.0(@babel/core@7.26.9)(webpack@5.98.0): + /babel-loader@10.0.0(@babel/core@7.26.10)(webpack@5.98.0): resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5.61.0' dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.26.10 find-up: 5.0.0 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.9): + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.10): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.9 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.9): - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.26.9 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) - core-js-compat: 3.40.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.9): + /babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) core-js-compat: 3.40.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.9): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.10): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.26.9 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + '@babel/core': 7.26.10 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) transitivePeerDependencies: - supports-color dev: true @@ -4966,8 +4849,8 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /bare-events@2.4.2: - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + /bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} requiresBuild: true dev: true optional: true @@ -4977,9 +4860,9 @@ packages: engines: {bare: '>=1.7.0'} requiresBuild: true dependencies: - bare-events: 2.4.2 + bare-events: 2.5.4 bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.4.2) + bare-stream: 2.6.4(bare-events@2.5.4) transitivePeerDependencies: - bare-buffer dev: true @@ -5000,8 +4883,8 @@ packages: dev: true optional: true - /bare-stream@2.6.5(bare-events@2.4.2): - resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + /bare-stream@2.6.4(bare-events@2.5.4): + resolution: {integrity: sha512-G6i3A74FjNq4nVrrSTUz5h3vgXzBJnjmWAVlBWaZETkgu+LgKd7AiyOml3EDJY1AHlIbBHKDXE+TUT53Ff8OaA==} requiresBuild: true peerDependencies: bare-buffer: '*' @@ -5012,8 +4895,8 @@ packages: bare-events: optional: true dependencies: - bare-events: 2.4.2 - streamx: 2.22.0 + bare-events: 2.5.4 + streamx: 2.21.1 dev: true optional: true @@ -5074,66 +4957,11 @@ packages: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} dev: true - /bin-build@3.0.0: - resolution: {integrity: sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==} - engines: {node: '>=4'} - dependencies: - decompress: 4.2.1 - download: 6.2.5 - execa: 0.7.0 - p-map-series: 1.0.0 - tempfile: 2.0.0 - dev: true - - /bin-check@4.1.0: - resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} - engines: {node: '>=4'} - dependencies: - execa: 0.7.0 - executable: 4.1.1 - dev: true - - /bin-version-check@4.0.0: - resolution: {integrity: sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==} - engines: {node: '>=6'} - dependencies: - bin-version: 3.1.0 - semver: 5.7.2 - semver-truncate: 1.1.2 - dev: true - - /bin-version@3.1.0: - resolution: {integrity: sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==} - engines: {node: '>=6'} - dependencies: - execa: 1.0.0 - find-versions: 3.2.0 - dev: true - - /bin-wrapper@4.1.0: - resolution: {integrity: sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==} - engines: {node: '>=6'} - dependencies: - bin-check: 4.1.0 - bin-version-check: 4.0.0 - download: 7.1.0 - import-lazy: 3.1.0 - os-filter-obj: 2.0.0 - pify: 4.0.1 - dev: true - /binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true - /bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - dev: true - /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -5154,26 +4982,6 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -5237,16 +5045,17 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.1.1 + dev: true /browserslist@4.24.4: resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001699 + caniuse-lite: 1.0.30001707 electron-to-chromium: 1.5.98 node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.4) + update-browserslist-db: 1.1.2(browserslist@4.24.4) /browserstack@1.6.1: resolution: {integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==} @@ -5256,17 +5065,6 @@ packages: - supports-color dev: true - /buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} - dev: true - - /buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - dev: true - /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -5275,10 +5073,6 @@ packages: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: true - /buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} - dev: true - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -5310,7 +5104,6 @@ packages: /cacache@18.0.4: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} - requiresBuild: true dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 @@ -5344,18 +5137,6 @@ packages: unique-filename: 4.0.0 dev: true - /cacheable-request@2.1.4: - resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} - dependencies: - clone-response: 1.0.2 - get-stream: 3.0.0 - http-cache-semantics: 3.8.1 - keyv: 3.0.0 - lowercase-keys: 1.0.0 - normalize-url: 2.0.1 - responselike: 1.0.2 - dev: true - /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -5386,8 +5167,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + /caniuse-lite@1.0.30001707: + resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} /cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} @@ -5408,16 +5189,6 @@ packages: lodash: 4.17.21 dev: true - /caw@2.0.1: - resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} - engines: {node: '>=4'} - dependencies: - get-proxy: 2.1.0 - isurl: 1.0.0 - tunnel-agent: 0.6.0 - url-to-options: 1.0.1 - dev: true - /chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} engines: {node: '>=0.10.0'} @@ -5491,7 +5262,7 @@ packages: engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.1 @@ -5504,24 +5275,34 @@ packages: engines: {node: '>=6.0'} dev: true - /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): - resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} + /chromium-bidi@0.11.0(devtools-protocol@0.0.1380148): + resolution: {integrity: sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1232444 + devtools-protocol: 0.0.1380148 mitt: 3.0.1 - urlpattern-polyfill: 10.0.0 + zod: 3.23.8 + dev: true + + /chromium-bidi@0.12.0(devtools-protocol@0.0.1380148): + resolution: {integrity: sha512-xzXveJmX826GGq1MeE5okD8XxaDT8172CXByhFJ687eY65rbjOIebdbUuQh+jXKaNyGKI14Veb3KjLLmSueaxA==} + peerDependencies: + devtools-protocol: '*' + dependencies: + devtools-protocol: 0.0.1380148 + mitt: 3.0.1 + zod: 3.24.1 dev: true - /chromium-bidi@1.2.0(devtools-protocol@0.0.1402036): - resolution: {integrity: sha512-XtdJ1GSN6S3l7tO7F77GhNsw0K367p0IsLYf2yZawCVAKKC3lUvDhPdMVrB2FNhmhfW43QGYbEX3Wg6q0maGwQ==} + /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): + resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1402036 + devtools-protocol: 0.0.1232444 mitt: 3.0.1 - zod: 3.24.2 + urlpattern-polyfill: 10.0.0 dev: true /ci-info@2.0.0: @@ -5538,7 +5319,6 @@ packages: /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - requiresBuild: true dev: true /cli-boxes@2.2.1: @@ -5632,12 +5412,6 @@ packages: shallow-clone: 3.0.1 dev: true - /clone-response@1.0.2: - resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} - dependencies: - mimic-response: 1.0.1 - dev: true - /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -5844,11 +5618,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - dev: true - /cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -5871,7 +5640,7 @@ packages: schema-utils: 4.3.0 serialize-javascript: 6.0.2 tinyglobby: 0.2.12 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /core-js-compat@3.40.0: @@ -5942,14 +5711,6 @@ packages: - encoding dev: true - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - dev: true - /cross-spawn@6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} @@ -5999,7 +5760,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.5.3) postcss-value-parser: 4.2.0 semver: 7.7.1 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /css-select@5.1.0: @@ -6075,8 +5836,8 @@ packages: is-data-view: 1.0.1 dev: true - /date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + /date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} dev: false /date-format@4.0.14: @@ -6130,8 +5891,8 @@ packages: ms: 2.1.2 dev: true - /debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + /debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6139,7 +5900,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 dev: true /debug@4.4.0: @@ -6158,74 +5919,9 @@ packages: engines: {node: '>=0.10.0'} dev: true - /decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: true - - /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - dependencies: - mimic-response: 1.0.1 - dev: true - - /decompress-tar@4.1.1: - resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} - engines: {node: '>=4'} - dependencies: - file-type: 5.2.0 - is-stream: 1.1.0 - tar-stream: 1.6.2 - dev: true - - /decompress-tarbz2@4.1.1: - resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - file-type: 6.2.0 - is-stream: 1.1.0 - seek-bzip: 1.0.6 - unbzip2-stream: 1.4.3 - dev: true - - /decompress-targz@4.1.1: - resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - file-type: 5.2.0 - is-stream: 1.1.0 - dev: true - - /decompress-unzip@4.0.1: - resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} - engines: {node: '>=4'} - dependencies: - file-type: 3.9.0 - get-stream: 2.3.1 - pify: 2.3.0 - yauzl: 2.10.0 - dev: true - - /decompress@4.2.1: - resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} - engines: {node: '>=4'} - dependencies: - decompress-tar: 4.1.1 - decompress-tarbz2: 4.1.1 - decompress-targz: 4.1.1 - decompress-unzip: 4.0.1 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 2.3.0 - strip-dirs: 2.1.0 - dev: true - - /deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 @@ -6390,8 +6086,8 @@ packages: resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} dev: true - /devtools-protocol@0.0.1402036: - resolution: {integrity: sha512-JwAYQgEvm3yD45CHB+RmF5kMbWtXBaOGwuxa87sZogHcLCv8c/IqnThaoQ1y60d7pXWjSKWQphPEc+1rAScVdg==} + /devtools-protocol@0.0.1380148: + resolution: {integrity: sha512-1CJABgqLxbYxVI+uJY/UDUHJtJ0KZTSjNYJYKqd9FRoXT33WDakDHNxRapMEgzeJ/C3rcs01+avshMnPmKQbvA==} dev: true /di@0.0.1: @@ -6474,45 +6170,6 @@ packages: is-obj: 2.0.0 dev: true - /download@6.2.5: - resolution: {integrity: sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==} - engines: {node: '>=4'} - dependencies: - caw: 2.0.1 - content-disposition: 0.5.4 - decompress: 4.2.1 - ext-name: 5.0.0 - file-type: 5.2.0 - filenamify: 2.1.0 - get-stream: 3.0.0 - got: 7.1.0 - make-dir: 1.3.0 - p-event: 1.3.0 - pify: 3.0.0 - dev: true - - /download@7.1.0: - resolution: {integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==} - engines: {node: '>=6'} - dependencies: - archive-type: 4.0.0 - caw: 2.0.1 - content-disposition: 0.5.4 - decompress: 4.2.1 - ext-name: 5.0.0 - file-type: 8.1.0 - filenamify: 2.1.0 - get-stream: 3.0.0 - got: 8.3.2 - make-dir: 1.3.0 - p-event: 2.3.1 - pify: 3.0.0 - dev: true - - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: true - /duplexify@4.1.3: resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} dependencies: @@ -6601,12 +6258,12 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 18.19.78 + '@types/node': 22.3.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.6 + debug: 4.3.7 engine.io-parser: 5.2.3 ws: 8.17.1 transitivePeerDependencies: @@ -6794,48 +6451,44 @@ packages: es6-promise: 4.2.8 dev: true - /esbuild-wasm@0.25.0: - resolution: {integrity: sha512-60iuWr6jdTVylmGXjpnqk3pCktUi5Rmjiv6EMza3h4X20BLtfL2BjUGs1+UCt2G9UK7jVGrJdUr5i1k0sL3wBg==} + /esbuild-wasm@0.25.1: + resolution: {integrity: sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw==} engines: {node: '>=18'} hasBin: true dev: true - /esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + /esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} engines: {node: '>=18'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.25.0 - '@esbuild/android-arm': 0.25.0 - '@esbuild/android-arm64': 0.25.0 - '@esbuild/android-x64': 0.25.0 - '@esbuild/darwin-arm64': 0.25.0 - '@esbuild/darwin-x64': 0.25.0 - '@esbuild/freebsd-arm64': 0.25.0 - '@esbuild/freebsd-x64': 0.25.0 - '@esbuild/linux-arm': 0.25.0 - '@esbuild/linux-arm64': 0.25.0 - '@esbuild/linux-ia32': 0.25.0 - '@esbuild/linux-loong64': 0.25.0 - '@esbuild/linux-mips64el': 0.25.0 - '@esbuild/linux-ppc64': 0.25.0 - '@esbuild/linux-riscv64': 0.25.0 - '@esbuild/linux-s390x': 0.25.0 - '@esbuild/linux-x64': 0.25.0 - '@esbuild/netbsd-arm64': 0.25.0 - '@esbuild/netbsd-x64': 0.25.0 - '@esbuild/openbsd-arm64': 0.25.0 - '@esbuild/openbsd-x64': 0.25.0 - '@esbuild/sunos-x64': 0.25.0 - '@esbuild/win32-arm64': 0.25.0 - '@esbuild/win32-ia32': 0.25.0 - '@esbuild/win32-x64': 0.25.0 - dev: true - - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 + dev: true /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -6894,8 +6547,8 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.15.0 - resolve: 1.22.8 + is-core-module: 2.16.1 + resolve: 1.22.10 transitivePeerDependencies: - supports-color dev: true @@ -6957,7 +6610,7 @@ packages: eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 - is-core-module: 2.15.0 + is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -6980,13 +6633,13 @@ packages: '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.6 + debug: 4.4.0 escape-string-regexp: 4.0.0 eslint: 8.57.0 espree: 10.1.0 esquery: 1.6.0 parse-imports: 2.1.1 - semver: 7.6.3 + semver: 7.7.1 spdx-expression-parse: 4.0.0 synckit: 0.9.1 transitivePeerDependencies: @@ -7037,11 +6690,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /eslint-visitor-keys@4.2.0: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7050,6 +6698,7 @@ packages: /eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -7063,7 +6712,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -7098,17 +6747,17 @@ packages: resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 dev: true @@ -7174,54 +6823,6 @@ packages: engines: {node: '>=0.8.x'} dev: true - /execa@0.7.0: - resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} - engines: {node: '>=4'} - dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - dev: true - - /execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - dependencies: - cross-spawn: 6.0.5 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - dev: true - - /execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /executable@4.1.1: - resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} - engines: {node: '>=4'} - dependencies: - pify: 2.3.0 - dev: true - /exegesis-express@4.0.0: resolution: {integrity: sha512-V2hqwTtYRj0bj43K4MCtm0caD97YWkqOUHFMRCBW5L1x9IjyqOEc7Xa4oQjjiFbeFOSQzzwPV+BzXsQjSz08fw==} engines: {node: '>=6.0.0', npm: '>5.0.0'} @@ -7238,7 +6839,7 @@ packages: '@apidevtools/json-schema-ref-parser': 9.1.2 ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) - body-parser: 1.20.2 + body-parser: 1.20.3 content-type: 1.0.5 deep-freeze: 0.0.1 events-listener: 1.1.0 @@ -7251,7 +6852,7 @@ packages: pump: 3.0.0 qs: 6.13.0 raw-body: 2.5.2 - semver: 7.6.3 + semver: 7.7.1 transitivePeerDependencies: - supports-color dev: true @@ -7263,46 +6864,6 @@ packages: /exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - requiresBuild: true - dev: true - - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color dev: true /express@4.21.2: @@ -7344,21 +6905,6 @@ packages: - supports-color dev: true - /ext-list@2.2.2: - resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} - engines: {node: '>=0.10.0'} - dependencies: - mime-db: 1.53.0 - dev: true - - /ext-name@5.0.0: - resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} - engines: {node: '>=4'} - dependencies: - ext-list: 2.2.2 - sort-keys-length: 1.0.1 - dev: true - /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -7404,17 +6950,6 @@ packages: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} dev: true - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - dev: true - /fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -7424,6 +6959,7 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 + dev: true /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7451,6 +6987,7 @@ packages: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 + dev: true /faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -7474,7 +7011,6 @@ packages: optional: true dependencies: picomatch: 4.0.2 - dev: true /fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -7494,55 +7030,11 @@ packages: flat-cache: 3.2.0 dev: true - /file-type@12.4.2: - resolution: {integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==} - engines: {node: '>=8'} - dev: true - - /file-type@3.9.0: - resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} - engines: {node: '>=0.10.0'} - dev: true - - /file-type@4.4.0: - resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} - engines: {node: '>=4'} - dev: true - - /file-type@5.2.0: - resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} - engines: {node: '>=4'} - dev: true - - /file-type@6.2.0: - resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} - engines: {node: '>=4'} - dev: true - - /file-type@8.1.0: - resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==} - engines: {node: '>=6'} - dev: true - /file-uri-to-path@2.0.0: resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} engines: {node: '>= 6'} dev: true - /filename-reserved-regex@2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} - engines: {node: '>=4'} - dev: true - - /filenamify@2.1.0: - resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==} - engines: {node: '>=4'} - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - dev: true - /filesize@6.4.0: resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} @@ -7553,6 +7045,7 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true /finalhandler@1.1.2: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} @@ -7569,21 +7062,6 @@ packages: - supports-color dev: true - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /finalhandler@1.3.1: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} @@ -7615,13 +7093,6 @@ packages: path-exists: 4.0.0 dev: true - /find-versions@3.2.0: - resolution: {integrity: sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==} - engines: {node: '>=6'} - dependencies: - semver-regex: 2.0.0 - dev: true - /firebase-tools@11.30.0: resolution: {integrity: sha512-rNMhtsFKy35AZqfy0obY2Kgsfmg8N1duEx2UDT14NsMHB7xt2Z7cUd92bkAoQAfD0jAOd7LhRT/7E6J5yB+kGw==} engines: {node: ^14.18.0 || >=16.4.0} @@ -7632,7 +7103,7 @@ packages: ajv: 6.12.6 archiver: 5.3.2 async-lock: 1.3.2 - body-parser: 1.20.2 + body-parser: 1.20.3 chokidar: 3.6.0 cjson: 0.3.3 cli-table: 0.3.11 @@ -7645,7 +7116,7 @@ packages: csv-parse: 5.5.6 exegesis: 4.2.0 exegesis-express: 4.0.0 - express: 4.19.2 + express: 4.21.2 filesize: 6.4.0 form-data: 4.0.0 fs-extra: 10.1.0 @@ -7778,13 +7249,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 - dev: true - /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true @@ -7948,33 +7412,6 @@ packages: hasown: 2.0.2 dev: true - /get-proxy@2.1.0: - resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} - engines: {node: '>=4'} - dependencies: - npm-conf: 1.1.3 - dev: true - - /get-stream@2.3.1: - resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} - engines: {node: '>=0.10.0'} - dependencies: - object-assign: 4.1.1 - pinkie-promise: 2.0.1 - dev: true - - /get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} - engines: {node: '>=4'} - dev: true - - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - dependencies: - pump: 3.0.0 - dev: true - /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -8028,6 +7465,7 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -8126,27 +7564,13 @@ packages: gopd: 1.0.1 dev: true - /globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - glob: 7.2.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -8258,53 +7682,6 @@ packages: get-intrinsic: 1.2.4 dev: true - /got@7.1.0: - resolution: {integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==} - engines: {node: '>=4'} - dependencies: - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 3.0.0 - is-plain-obj: 1.1.0 - is-retry-allowed: 1.2.0 - is-stream: 1.1.0 - isurl: 1.0.0 - lowercase-keys: 1.0.1 - p-cancelable: 0.3.0 - p-timeout: 1.2.1 - safe-buffer: 5.2.1 - timed-out: 4.0.1 - url-parse-lax: 1.0.0 - url-to-options: 1.0.1 - dev: true - - /got@8.3.2: - resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==} - engines: {node: '>=4'} - dependencies: - '@sindresorhus/is': 0.7.0 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 2.1.4 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 3.0.0 - into-stream: 3.1.0 - is-retry-allowed: 1.2.0 - isurl: 1.0.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 0.4.1 - p-timeout: 2.0.1 - pify: 3.0.0 - safe-buffer: 5.2.1 - timed-out: 4.0.1 - url-parse-lax: 3.0.0 - url-to-options: 1.0.1 - dev: true - /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -8391,21 +7768,11 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-symbol-support-x@1.4.2: - resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} - dev: true - /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true - /has-to-string-tag-x@1.4.1: - resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} - dependencies: - has-symbol-support-x: 1.4.2 - dev: true - /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -8463,10 +7830,6 @@ packages: entities: 4.5.0 dev: true - /http-cache-semantics@3.8.1: - resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} - dev: true - /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true @@ -8531,7 +7894,7 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.3 debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -8610,31 +7973,16 @@ packages: - supports-color dev: true - /https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.1 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.3 - debug: 4.3.6 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: true - /human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: true - /hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -8691,38 +8039,10 @@ packages: resolution: {integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==} dev: true - /imagemin-pngquant@9.0.2: - resolution: {integrity: sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==} - engines: {node: '>=10'} - dependencies: - execa: 4.1.0 - is-png: 2.0.0 - is-stream: 2.0.1 - ow: 0.17.0 - pngquant-bin: 6.0.1 - dev: true - - /imagemin@7.0.1: - resolution: {integrity: sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==} - engines: {node: '>=8'} - dependencies: - file-type: 12.4.2 - globby: 10.0.2 - graceful-fs: 4.2.11 - junk: 3.1.0 - make-dir: 3.1.0 - p-pipe: 3.1.0 - replace-ext: 1.0.1 - dev: true - /immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: true - /immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - dev: true - /immutable@5.0.3: resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} dev: true @@ -8740,11 +8060,6 @@ packages: engines: {node: '>=4'} dev: true - /import-lazy@3.1.0: - resolution: {integrity: sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==} - engines: {node: '>=6'} - dev: true - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -8753,7 +8068,6 @@ packages: /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - requiresBuild: true dev: true /inflight@1.0.6: @@ -8800,7 +8114,7 @@ packages: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.8.1 + rxjs: 7.8.2 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -8839,14 +8153,6 @@ packages: intl-messageformat-parser: 1.8.1 dev: true - /into-stream@3.1.0: - resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} - engines: {node: '>=4'} - dependencies: - from2: 2.3.0 - p-is-promise: 1.1.0 - dev: true - /ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -8931,13 +8237,6 @@ packages: ci-info: 2.0.0 dev: true - /is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - dev: true - /is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -8974,6 +8273,7 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + dev: true /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -8996,6 +8296,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} @@ -9020,7 +8321,6 @@ packages: /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - requiresBuild: true dev: true /is-map@2.0.3: @@ -9028,10 +8328,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-natural-number@4.0.1: - resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} - dev: true - /is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -9057,16 +8353,13 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + dev: true /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: true - /is-object@1.0.2: - resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} - dev: true - /is-path-cwd@1.0.0: resolution: {integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==} engines: {node: '>=0.10.0'} @@ -9091,11 +8384,6 @@ packages: engines: {node: '>=8'} dev: true - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - /is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -9113,11 +8401,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-png@2.0.0: - resolution: {integrity: sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==} - engines: {node: '>=8'} - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -9126,11 +8409,6 @@ packages: has-tostringtag: 1.0.2 dev: true - /is-retry-allowed@1.2.0: - resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} - engines: {node: '>=0.10.0'} - dev: true - /is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -9147,11 +8425,6 @@ packages: resolution: {integrity: sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==} dev: true - /is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -9304,8 +8577,8 @@ packages: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.26.9 - '@babel/parser': 7.26.9 + '@babel/core': 7.26.10 + '@babel/parser': 7.27.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -9326,7 +8599,7 @@ packages: resolution: {integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==} engines: {node: '>=6'} dependencies: - debug: 4.3.6 + debug: 4.4.0 istanbul-lib-coverage: 2.0.5 make-dir: 2.1.0 rimraf: 2.7.1 @@ -9343,14 +8616,6 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /isurl@1.0.0: - resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} - engines: {node: '>= 4'} - dependencies: - has-to-string-tag-x: 1.4.1 - is-object: 1.0.2 - dev: true - /jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: @@ -9391,7 +8656,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -9464,7 +8729,7 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@babel/parser': 7.26.9 + '@babel/parser': 7.27.0 '@jsdoc/salty': 0.2.8 '@types/markdown-it': 14.1.2 bluebird: 3.7.2 @@ -9492,10 +8757,6 @@ packages: bignumber.js: 9.1.2 dev: true - /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: true - /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true @@ -9591,7 +8852,7 @@ packages: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.6.3 + semver: 7.7.1 dev: true /jsprim@1.4.2: @@ -9613,11 +8874,6 @@ packages: setimmediate: 1.0.5 dev: true - /junk@3.1.0: - resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} - engines: {node: '>=8'} - dev: true - /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -9707,7 +8963,7 @@ packages: hasBin: true dependencies: '@colors/colors': 1.5.0 - body-parser: 1.20.2 + body-parser: 1.20.3 braces: 3.0.3 chokidar: 3.6.0 connect: 3.7.0 @@ -9737,12 +8993,6 @@ packages: - utf-8-validate dev: true - /keyv@3.0.0: - resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} - dependencies: - json-buffer: 3.0.0 - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -9792,7 +9042,7 @@ packages: optional: true dependencies: less: 4.2.2 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /less@4.2.2: @@ -9852,7 +9102,7 @@ packages: webpack: optional: true dependencies: - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) webpack-sources: 3.2.3 dev: true @@ -10131,7 +9381,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.6 + debug: 4.4.0 flatted: 3.3.1 rfdc: 1.4.1 streamroller: 3.1.5 @@ -10159,27 +9409,10 @@ packages: resolution: {integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==} dev: true - /lowercase-keys@1.0.0: - resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} - engines: {node: '>=0.10.0'} - dev: true - - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: true - /lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} dev: true - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - dev: true - /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -10201,8 +9434,8 @@ packages: resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} dev: true - /luxon@3.5.0: - resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + /luxon@3.6.0: + resolution: {integrity: sha512-WE7p0p7W1xji9qxkLYsvcIxZyfP48GuFrWIBQZIsbjCyf65dG1rv4n83HcOyEyhvzxJCrUoObCRNFgRNIQ5KNA==} engines: {node: '>=12'} dev: false @@ -10212,13 +9445,6 @@ packages: '@jridgewell/sourcemap-codec': 1.5.0 dev: true - /make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -10238,7 +9464,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.3 + semver: 7.7.1 dev: true /make-error@1.3.6: @@ -10248,7 +9474,6 @@ packages: /make-fetch-happen@13.0.1: resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} - requiresBuild: true dependencies: '@npmcli/agent': 2.2.2 cacache: 18.0.4 @@ -10266,8 +9491,8 @@ packages: - supports-color dev: true - /make-fetch-happen@14.0.3: - resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} + /make-fetch-happen@14.0.2: + resolution: {integrity: sha512-ByhSXJdWoBKRHKaqfmULjm4RwlL3EN9bZogHPDIuT9GHJIqHgh8FYkxpcCMsvaNTwl2VzFFYgzrGMlGsOEtGPQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/agent': 3.0.0 @@ -10277,7 +9502,7 @@ packages: minipass-fetch: 4.0.0 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 1.0.0 + negotiator: 0.6.3 proc-log: 5.0.0 promise-retry: 2.0.1 ssri: 12.0.0 @@ -10356,10 +9581,6 @@ packages: engines: {node: '>= 0.10.0'} dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: true - /merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} dev: true @@ -10371,6 +9592,7 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + dev: true /metaviewport-parser@0.3.0: resolution: {integrity: sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==} @@ -10387,6 +9609,7 @@ packages: dependencies: braces: 3.0.3 picomatch: 2.3.1 + dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -10427,11 +9650,6 @@ packages: engines: {node: '>=18'} dev: true - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: true - /mini-css-extract-plugin@2.9.2(webpack@5.98.0): resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} @@ -10440,7 +9658,7 @@ packages: dependencies: schema-utils: 4.3.0 tapable: 2.2.1 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /minimalistic-assert@1.0.1: @@ -10494,7 +9712,6 @@ packages: /minipass-fetch@3.0.5: resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dependencies: minipass: 7.1.2 minipass-sized: 1.0.3 @@ -10706,11 +9923,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} - dev: true - /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true @@ -10794,7 +10006,6 @@ packages: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - requiresBuild: true dependencies: abbrev: 2.0.0 dev: true @@ -10803,7 +10014,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -10827,15 +10038,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /normalize-url@2.0.1: - resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - query-string: 5.1.1 - sort-keys: 2.0.0 - dev: true - /npm-bundled@4.0.0: resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -10843,14 +10045,6 @@ packages: npm-normalize-package-bin: 4.0.0 dev: true - /npm-conf@1.1.3: - resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} - engines: {node: '>=4'} - dependencies: - config-chain: 1.1.13 - pify: 3.0.0 - dev: true - /npm-install-checks@7.1.0: resolution: {integrity: sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -10896,7 +10090,7 @@ packages: dependencies: '@npmcli/redact': 3.0.0 jsonparse: 1.3.1 - make-fetch-happen: 14.0.3 + make-fetch-happen: 14.0.2 minipass: 7.1.2 minipass-fetch: 4.0.0 minizlib: 3.0.1 @@ -10922,20 +10116,6 @@ packages: string.prototype.padend: 3.1.6 dev: true - /npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - dependencies: - path-key: 2.0.1 - dev: true - - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -11143,64 +10323,16 @@ packages: dev: true optional: true - /os-filter-obj@2.0.0: - resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==} - engines: {node: '>=4'} - dependencies: - arch: 2.2.0 - dev: true - /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} dev: true - /ow@0.17.0: - resolution: {integrity: sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==} - engines: {node: '>=10'} - dependencies: - type-fest: 0.11.0 - dev: true - - /p-cancelable@0.3.0: - resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==} - engines: {node: '>=4'} - dev: true - - /p-cancelable@0.4.1: - resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} - engines: {node: '>=4'} - dev: true - /p-defer@3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} engines: {node: '>=8'} dev: true - /p-event@1.3.0: - resolution: {integrity: sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==} - engines: {node: '>=4'} - dependencies: - p-timeout: 1.2.1 - dev: true - - /p-event@2.3.1: - resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==} - engines: {node: '>=6'} - dependencies: - p-timeout: 2.0.1 - dev: true - - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - dev: true - - /p-is-promise@1.1.0: - resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} - engines: {node: '>=4'} - dev: true - /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -11229,17 +10361,9 @@ packages: p-limit: 3.1.0 dev: true - /p-map-series@1.0.0: - resolution: {integrity: sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==} - engines: {node: '>=4'} - dependencies: - p-reduce: 1.0.0 - dev: true - /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - requiresBuild: true dependencies: aggregate-error: 3.1.0 dev: true @@ -11249,16 +10373,6 @@ packages: engines: {node: '>=18'} dev: true - /p-pipe@3.1.0: - resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} - engines: {node: '>=8'} - dev: true - - /p-reduce@1.0.0: - resolution: {integrity: sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==} - engines: {node: '>=4'} - dev: true - /p-retry@6.2.0: resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} engines: {node: '>=16.17'} @@ -11268,20 +10382,6 @@ packages: retry: 0.13.1 dev: true - /p-timeout@1.2.1: - resolution: {integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==} - engines: {node: '>=4'} - dependencies: - p-finally: 1.0.0 - dev: true - - /p-timeout@2.0.1: - resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} - engines: {node: '>=4'} - dependencies: - p-finally: 1.0.0 - dev: true - /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -11304,22 +10404,6 @@ packages: - supports-color dev: true - /pac-proxy-agent@7.0.2: - resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} - engines: {node: '>= 14'} - dependencies: - '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 - debug: 4.4.0 - get-uri: 6.0.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /pac-proxy-agent@7.1.0: resolution: {integrity: sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==} engines: {node: '>= 14'} @@ -11535,11 +10619,11 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + dev: true /picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - dev: true /pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} @@ -11560,6 +10644,7 @@ packages: /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + requiresBuild: true dev: true /pinkie-promise@2.0.1: @@ -11574,23 +10659,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /piscina@4.8.0: - resolution: {integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==} + /piscina@4.9.2: + resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} optionalDependencies: '@napi-rs/nice': 1.0.1 dev: true - /pngquant-bin@6.0.1: - resolution: {integrity: sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==} - engines: {node: '>=10'} - hasBin: true - requiresBuild: true - dependencies: - bin-build: 3.0.0 - bin-wrapper: 4.1.0 - execa: 4.1.0 - dev: true - /portfinder@1.0.32: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} @@ -11624,7 +10698,7 @@ packages: jiti: 1.21.6 postcss: 8.5.3 semver: 7.7.1 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) transitivePeerDependencies: - typescript dev: true @@ -11700,25 +10774,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prepend-http@1.0.4: - resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} - engines: {node: '>=0.10.0'} - dev: true - - /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} dev: true /proc-log@4.2.0: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dev: true /proc-log@5.0.0: @@ -11802,7 +10865,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.78 + '@types/node': 22.3.0 long: 5.2.3 dev: true @@ -11821,7 +10884,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.78 + '@types/node': 22.3.0 long: 5.2.3 dev: true @@ -11863,7 +10926,7 @@ packages: engines: {node: '>= 8'} dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.4.0 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 lru-cache: 5.1.1 @@ -11878,14 +10941,14 @@ packages: resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.3 debug: 4.4.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 lru-cache: 7.18.3 - pac-proxy-agent: 7.0.2 + pac-proxy-agent: 7.1.0 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.4 + socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color dev: true @@ -11921,10 +10984,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: true - /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true @@ -11974,14 +11033,14 @@ packages: - utf-8-validate dev: true - /puppeteer-core@24.2.0: - resolution: {integrity: sha512-e4A4/xqWdd4kcE6QVHYhJ+Qlx/+XpgjP4d8OwBx0DJoY/nkIRhSgYmKQnv7+XSs1ofBstalt+XPGrkaz4FoXOQ==} + /puppeteer-core@24.1.0: + resolution: {integrity: sha512-ReefWoQgqdyl67uWEBy/TMZ4mAB7hP0JB5HIxSE8B1ot/4ningX1gmzHCOSNfMbTiS/VJHCvaZAe3oJTXph7yw==} engines: {node: '>=18'} dependencies: - '@puppeteer/browsers': 2.7.1 - chromium-bidi: 1.2.0(devtools-protocol@0.0.1402036) + '@puppeteer/browsers': 2.7.0 + chromium-bidi: 0.11.0(devtools-protocol@0.0.1380148) debug: 4.4.0 - devtools-protocol: 0.0.1402036 + devtools-protocol: 0.0.1380148 typed-query-selector: 2.12.0 ws: 8.18.0 transitivePeerDependencies: @@ -11991,17 +11050,17 @@ packages: - utf-8-validate dev: true - /puppeteer@24.2.0(typescript@5.8.2): - resolution: {integrity: sha512-z8vv7zPEgrilIbOo3WNvM+2mXMnyM9f4z6zdrB88Fzeuo43Oupmjrzk3EpuvuCtyK0A7Lsllfx7Z+4BvEEGJcQ==} + /puppeteer@24.1.0(typescript@5.8.2): + resolution: {integrity: sha512-F+3yKILaosLToT7amR7LIkTKkKMR0EGQPjFBch+MtgS8vRPS+4cPnLJuXDVTfCj2NqfrCnShtOr7yD+9dEgHRQ==} engines: {node: '>=18'} hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 2.7.1 - chromium-bidi: 1.2.0(devtools-protocol@0.0.1402036) + '@puppeteer/browsers': 2.7.0 + chromium-bidi: 0.12.0(devtools-protocol@0.0.1380148) cosmiconfig: 9.0.0(typescript@5.8.2) - devtools-protocol: 0.0.1402036 - puppeteer-core: 24.2.0 + devtools-protocol: 0.0.1380148 + puppeteer-core: 24.1.0 typed-query-selector: 2.12.0 transitivePeerDependencies: - bare-buffer @@ -12034,13 +11093,6 @@ packages: engines: {node: '>=0.9'} dev: true - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.6 - dev: true - /qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -12053,17 +11105,9 @@ packages: engines: {node: '>=0.6'} dev: true - /query-string@5.1.1: - resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} - engines: {node: '>=0.10.0'} - dependencies: - decode-uri-component: 0.2.2 - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} @@ -12172,7 +11216,7 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: - resolve: 1.22.8 + resolve: 1.22.10 dev: true /redeyed@2.1.1: @@ -12202,7 +11246,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.26.9 + '@babel/runtime': 7.27.0 dev: true /regex-parser@2.3.0: @@ -12256,11 +11300,6 @@ packages: jsesc: 3.0.2 dev: true - /replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} - dev: true - /request@2.88.2: resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} engines: {node: '>= 6'} @@ -12342,21 +11381,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.15.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} - dependencies: - lowercase-keys: 1.0.1 - dev: true - /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -12396,6 +11420,7 @@ packages: /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true /rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -12429,32 +11454,33 @@ packages: engines: {node: '>=10.0.0'} dev: true - /rollup@4.34.9: - resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} + /rollup@4.37.0: + resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.9 - '@rollup/rollup-android-arm64': 4.34.9 - '@rollup/rollup-darwin-arm64': 4.34.9 - '@rollup/rollup-darwin-x64': 4.34.9 - '@rollup/rollup-freebsd-arm64': 4.34.9 - '@rollup/rollup-freebsd-x64': 4.34.9 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.9 - '@rollup/rollup-linux-arm-musleabihf': 4.34.9 - '@rollup/rollup-linux-arm64-gnu': 4.34.9 - '@rollup/rollup-linux-arm64-musl': 4.34.9 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.9 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.9 - '@rollup/rollup-linux-riscv64-gnu': 4.34.9 - '@rollup/rollup-linux-s390x-gnu': 4.34.9 - '@rollup/rollup-linux-x64-gnu': 4.34.9 - '@rollup/rollup-linux-x64-musl': 4.34.9 - '@rollup/rollup-win32-arm64-msvc': 4.34.9 - '@rollup/rollup-win32-ia32-msvc': 4.34.9 - '@rollup/rollup-win32-x64-msvc': 4.34.9 + '@rollup/rollup-android-arm-eabi': 4.37.0 + '@rollup/rollup-android-arm64': 4.37.0 + '@rollup/rollup-darwin-arm64': 4.37.0 + '@rollup/rollup-darwin-x64': 4.37.0 + '@rollup/rollup-freebsd-arm64': 4.37.0 + '@rollup/rollup-freebsd-x64': 4.37.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 + '@rollup/rollup-linux-arm-musleabihf': 4.37.0 + '@rollup/rollup-linux-arm64-gnu': 4.37.0 + '@rollup/rollup-linux-arm64-musl': 4.37.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-musl': 4.37.0 + '@rollup/rollup-linux-s390x-gnu': 4.37.0 + '@rollup/rollup-linux-x64-gnu': 4.37.0 + '@rollup/rollup-linux-x64-musl': 4.37.0 + '@rollup/rollup-win32-arm64-msvc': 4.37.0 + '@rollup/rollup-win32-ia32-msvc': 4.37.0 + '@rollup/rollup-win32-x64-msvc': 4.37.0 fsevents: 2.3.3 dev: true @@ -12487,17 +11513,12 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.8.0 + dev: true /rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} dependencies: tslib: 2.8.1 - dev: true /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} @@ -12535,7 +11556,7 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass-loader@16.0.5(sass@1.85.1)(webpack@5.98.0): + /sass-loader@16.0.5(sass@1.86.0)(webpack@5.98.0): resolution: {integrity: sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -12557,22 +11578,12 @@ packages: optional: true dependencies: neo-async: 2.6.2 - sass: 1.85.1 - webpack: 5.98.0(esbuild@0.25.0) - dev: true - - /sass@1.77.8: - resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - chokidar: 3.6.0 - immutable: 4.3.7 - source-map-js: 1.2.0 + sass: 1.86.0 + webpack: 5.98.0(esbuild@0.25.1) dev: true - /sass@1.85.1: - resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==} + /sass@1.86.0: + resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -12605,13 +11616,6 @@ packages: ajv-keywords: 5.1.0(ajv@8.17.1) dev: true - /seek-bzip@1.0.6: - resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} - hasBin: true - dependencies: - commander: 2.20.3 - dev: true - /select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true @@ -12641,18 +11645,6 @@ packages: semver: 6.3.1 dev: true - /semver-regex@2.0.0: - resolution: {integrity: sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==} - engines: {node: '>=6'} - dev: true - - /semver-truncate@1.1.2: - resolution: {integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==} - engines: {node: '>=0.10.0'} - dependencies: - semver: 5.7.2 - dev: true - /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -12662,12 +11654,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - dev: true - /semver@7.7.1: resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} @@ -12694,27 +11680,6 @@ packages: - supports-color dev: true - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -12769,18 +11734,6 @@ packages: - supports-color dev: true - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: true - /serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -12948,7 +11901,7 @@ packages: /socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} dependencies: - debug: 4.3.6 + debug: 4.3.7 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -12961,7 +11914,7 @@ packages: engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: true @@ -12973,7 +11926,7 @@ packages: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.6 + debug: 4.3.7 engine.io: 6.5.5 socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 @@ -13002,17 +11955,6 @@ packages: - supports-color dev: true - /socks-proxy-agent@8.0.4: - resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.1 - debug: 4.4.0 - socks: 2.8.3 - transitivePeerDependencies: - - supports-color - dev: true - /socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -13032,32 +11974,6 @@ packages: smart-buffer: 4.2.0 dev: true - /sort-keys-length@1.0.1: - resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} - engines: {node: '>=0.10.0'} - dependencies: - sort-keys: 1.1.2 - dev: true - - /sort-keys@1.1.2: - resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-obj: 1.1.0 - dev: true - - /sort-keys@2.0.0: - resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} - engines: {node: '>=4'} - dependencies: - is-plain-obj: 1.1.0 - dev: true - - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true - /source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -13071,7 +11987,7 @@ packages: dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /source-map-support@0.4.18: @@ -13148,7 +12064,7 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: - debug: 4.3.6 + debug: 4.4.0 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -13161,7 +12077,7 @@ packages: resolution: {integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==} engines: {node: '>=8.0'} dependencies: - '@types/node': 18.19.78 + '@types/node': 22.3.0 image-ssim: 0.2.0 jpeg-js: 0.4.4 dev: true @@ -13193,7 +12109,6 @@ packages: /ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dependencies: minipass: 7.1.2 dev: true @@ -13256,30 +12171,14 @@ packages: - supports-color dev: true - /streamx@2.18.0: - resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + /streamx@2.21.1: + resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 text-decoder: 1.1.1 optionalDependencies: - bare-events: 2.4.2 - dev: true - - /streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} - requiresBuild: true - dependencies: - fast-fifo: 1.3.2 - text-decoder: 1.1.1 - optionalDependencies: - bare-events: 2.4.2 - dev: true - optional: true - - /strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} + bare-events: 2.5.4 dev: true /string-width@4.2.3: @@ -13386,22 +12285,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-dirs@2.1.0: - resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} - dependencies: - is-natural-number: 4.0.1 - dev: true - - /strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - dev: true - - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -13412,13 +12295,6 @@ packages: engines: {node: '>=8'} dev: true - /strip-outer@1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /superstatic@9.0.3: resolution: {integrity: sha512-e/tmW0bsnQ/33ivK6y3CapJT0Ovy4pk/ohNPGhIAGU2oasoNLRQ1cv6enua09NU9w6Y0H/fBu07cjzuiWvLXxw==} engines: {node: ^14.18.0 || >=16.4.0} @@ -13498,7 +12374,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tslib: 2.8.1 dev: true /tapable@2.2.1: @@ -13526,19 +12402,6 @@ packages: - bare-buffer dev: true - /tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} - engines: {node: '>= 0.8.0'} - dependencies: - bl: 1.2.3 - buffer-alloc: 1.2.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - readable-stream: 2.3.8 - to-buffer: 1.1.1 - xtend: 4.0.2 - dev: true - /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -13555,7 +12418,7 @@ packages: dependencies: b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.18.0 + streamx: 2.21.1 dev: true /tar@6.2.1: @@ -13591,20 +12454,7 @@ packages: - supports-color dev: true - /temp-dir@1.0.0: - resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} - engines: {node: '>=4'} - dev: true - - /tempfile@2.0.0: - resolution: {integrity: sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==} - engines: {node: '>=4'} - dependencies: - temp-dir: 1.0.0 - uuid: 3.4.0 - dev: true - - /terser-webpack-plugin@5.3.12(esbuild@0.25.0)(webpack@5.98.0): + /terser-webpack-plugin@5.3.12(esbuild@0.25.1)(webpack@5.98.0): resolution: {integrity: sha512-jDLYqo7oF8tJIttjXO6jBY5Hk8p3A8W4ttih7cCEq64fQFWmgJ4VqAQjKr7WwIDlmXKEc6QeoRb5ecjZ+2afcg==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -13621,12 +12471,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - esbuild: 0.25.0 + esbuild: 0.25.1 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /terser@5.39.0: @@ -13675,18 +12525,12 @@ packages: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true - /timed-out@4.0.1: - resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} - engines: {node: '>=0.10.0'} - dev: true - /tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 - dev: true /tmp@0.0.30: resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==} @@ -13707,15 +12551,12 @@ packages: engines: {node: '>=14.14'} dev: true - /to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} - dev: true - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} @@ -13754,27 +12595,11 @@ packages: hasBin: true dev: true - /trim-repeated@1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} - engines: {node: '>=0.10.0'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /triple-beam@1.4.1: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} dev: true - /ts-api-utils@1.3.0(typescript@5.8.2): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.8.2 - dev: true - /ts-api-utils@2.0.1(typescript@5.8.2): resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} @@ -13812,12 +12637,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - /tslib@2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -13837,7 +12656,7 @@ packages: dependencies: '@tufjs/models': 3.0.1 debug: 4.4.0 - make-fetch-happen: 14.0.3 + make-fetch-happen: 14.0.2 transitivePeerDependencies: - supports-color dev: true @@ -13866,11 +12685,6 @@ packages: prelude-ls: 1.2.1 dev: true - /type-fest@0.11.0: - resolution: {integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==} - engines: {node: '>=8'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -13994,6 +12808,10 @@ packages: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true + /undici-types@6.18.2: + resolution: {integrity: sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==} + dev: true + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -14020,7 +12838,6 @@ packages: /unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dependencies: unique-slug: 4.0.0 dev: true @@ -14035,7 +12852,6 @@ packages: /unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - requiresBuild: true dependencies: imurmurhash: 0.1.4 dev: true @@ -14058,7 +12874,7 @@ packages: resolution: {integrity: sha512-HXSMyIcf2XTvwZ6ZZQLfxfViRm/yTGoRgDeTbojtq6rezeyKB0sTBcKH2fhddnteAHRcHiKgr/ACpbgjGOC6RQ==} engines: {node: '>=12.18.2'} dependencies: - debug: 4.3.6 + debug: 4.4.0 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -14079,8 +12895,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /update-browserslist-db@1.1.1(browserslist@4.24.4): - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + /update-browserslist-db@1.1.2(browserslist@4.24.4): + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -14106,7 +12922,7 @@ packages: pupa: 2.1.1 registry-auth-token: 5.0.2 registry-url: 5.1.0 - semver: 7.6.3 + semver: 7.7.1 semver-diff: 3.1.1 xdg-basedir: 4.0.0 transitivePeerDependencies: @@ -14123,25 +12939,6 @@ packages: resolution: {integrity: sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw==} dev: true - /url-parse-lax@1.0.0: - resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==} - engines: {node: '>=0.10.0'} - dependencies: - prepend-http: 1.0.4 - dev: true - - /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - dev: true - - /url-to-options@1.0.1: - resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} - engines: {node: '>= 4'} - dev: true - /urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} dev: true @@ -14196,58 +12993,8 @@ packages: extsprintf: 1.4.1 dev: true - /vite@6.2.0(@types/node@18.19.78)(less@4.2.2)(sass@1.77.8): - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - dependencies: - '@types/node': 18.19.78 - esbuild: 0.25.0 - less: 4.2.2 - postcss: 8.5.3 - rollup: 4.34.9 - sass: 1.77.8 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite@6.2.0(@types/node@18.19.78)(less@4.2.2)(sass@1.85.1)(terser@5.39.0): - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} + /vite@6.2.3(@types/node@18.19.78)(less@4.2.2)(sass@1.86.0)(terser@5.39.0): + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -14287,11 +13034,11 @@ packages: optional: true dependencies: '@types/node': 18.19.78 - esbuild: 0.25.0 + esbuild: 0.25.1 less: 4.2.2 postcss: 8.5.3 - rollup: 4.34.9 - sass: 1.85.1 + rollup: 4.37.0 + sass: 1.86.0 terser: 5.39.0 optionalDependencies: fsevents: 2.3.3 @@ -14303,7 +13050,7 @@ packages: deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. hasBin: true dependencies: - acorn: 8.12.1 + acorn: 8.14.0 acorn-walk: 8.3.3 dev: true @@ -14383,7 +13130,7 @@ packages: on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true /webpack-dev-server@5.2.0(webpack@5.98.0): @@ -14424,7 +13171,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-middleware: 7.4.2(webpack@5.98.0) ws: 8.18.0 transitivePeerDependencies: @@ -14459,10 +13206,10 @@ packages: optional: true dependencies: typed-assert: 1.0.9 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0(esbuild@0.25.1) dev: true - /webpack@5.98.0(esbuild@0.25.0): + /webpack@5.98.0(esbuild@0.25.1): resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==} engines: {node: '>=10.13.0'} hasBin: true @@ -14492,7 +13239,7 @@ packages: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.12(esbuild@0.25.0)(webpack@5.98.0) + terser-webpack-plugin: 5.3.12(esbuild@0.25.1)(webpack@5.98.0) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -14588,7 +13335,6 @@ packages: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} hasBin: true - requiresBuild: true dependencies: isexe: 3.1.1 dev: true @@ -14769,11 +13515,6 @@ packages: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true @@ -14782,10 +13523,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true - /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -14843,7 +13580,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -14856,7 +13593,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -14894,37 +13631,41 @@ packages: readable-stream: 3.6.2 dev: true - /zod@3.24.2: - resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + dev: true + + /zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} dev: true /zone.js@0.15.0: resolution: {integrity: sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==} - github.com/angular/material2-docs-content/48e6a2c4281e5ef36f8ef20532ec0aa1825608d7(@angular/cdk-experimental@20.0.0-next.0)(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/material-date-fns-adapter@20.0.0-next.0)(@angular/material-experimental@20.0.0-next.0)(@angular/material-luxon-adapter@20.0.0-next.0)(@angular/material-moment-adapter@20.0.0-next.0)(@angular/material@20.0.0-next.0): - resolution: {tarball: https://codeload.github.com/angular/material2-docs-content/tar.gz/48e6a2c4281e5ef36f8ef20532ec0aa1825608d7} - id: github.com/angular/material2-docs-content/48e6a2c4281e5ef36f8ef20532ec0aa1825608d7 + github.com/angular/material2-docs-content/e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3(@angular/cdk-experimental@20.0.0-next.4)(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/material-date-fns-adapter@20.0.0-next.4)(@angular/material-experimental@20.0.0-next.4)(@angular/material-luxon-adapter@20.0.0-next.4)(@angular/material-moment-adapter@20.0.0-next.4)(@angular/material@20.0.0-next.4): + resolution: {tarball: https://codeload.github.com/angular/material2-docs-content/tar.gz/e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3} + id: github.com/angular/material2-docs-content/e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3 name: '@angular/components-examples' - version: 20.0.0-next.0 + version: 20.0.0-next.4 peerDependencies: - '@angular/cdk': 20.0.0-next.0+sha-11599f8 - '@angular/cdk-experimental': 20.0.0-next.0+sha-11599f8 + '@angular/cdk': 20.0.0-next.4+sha-beacb8d + '@angular/cdk-experimental': 20.0.0-next.4+sha-beacb8d '@angular/common': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 '@angular/core': ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - '@angular/material': 20.0.0-next.0+sha-11599f8 - '@angular/material-date-fns-adapter': 20.0.0-next.0+sha-11599f8 - '@angular/material-experimental': 20.0.0-next.0+sha-11599f8 - '@angular/material-luxon-adapter': 20.0.0-next.0+sha-11599f8 - '@angular/material-moment-adapter': 20.0.0-next.0+sha-11599f8 - dependencies: - '@angular/cdk': 20.0.0-next.0(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/cdk-experimental': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/core@20.0.0-next.1) - '@angular/common': 20.0.0-next.1(@angular/core@20.0.0-next.1)(rxjs@7.8.1) - '@angular/core': 20.0.0-next.1(@angular/compiler@20.0.0-next.1)(rxjs@7.8.1)(zone.js@0.15.0) - '@angular/material': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/platform-browser@20.0.0-next.1)(rxjs@7.8.1) - '@angular/material-date-fns-adapter': 20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(date-fns@3.6.0) - '@angular/material-experimental': 20.0.0-next.0(@angular/cdk@20.0.0-next.0)(@angular/common@20.0.0-next.1)(@angular/core@20.0.0-next.1)(@angular/forms@20.0.0-next.1)(@angular/material@20.0.0-next.0)(@angular/platform-browser@20.0.0-next.1) - '@angular/material-luxon-adapter': 20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(luxon@3.5.0) - '@angular/material-moment-adapter': 20.0.0-next.0(@angular/core@20.0.0-next.1)(@angular/material@20.0.0-next.0)(moment@2.30.1) + '@angular/material': 20.0.0-next.4+sha-beacb8d + '@angular/material-date-fns-adapter': 20.0.0-next.4+sha-beacb8d + '@angular/material-experimental': 20.0.0-next.4+sha-beacb8d + '@angular/material-luxon-adapter': 20.0.0-next.4+sha-beacb8d + '@angular/material-moment-adapter': 20.0.0-next.4+sha-beacb8d + dependencies: + '@angular/cdk': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/cdk-experimental': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/common': 20.0.0-next.4(@angular/core@20.0.0-next.4)(rxjs@7.8.2) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/material': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@7.8.2) + '@angular/material-date-fns-adapter': 20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(date-fns@4.1.0) + '@angular/material-experimental': 20.0.0-next.4(@angular/cdk@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/forms@20.0.0-next.4)(@angular/material@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4) + '@angular/material-luxon-adapter': 20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(luxon@3.6.0) + '@angular/material-moment-adapter': 20.0.0-next.4(@angular/core@20.0.0-next.4)(@angular/material@20.0.0-next.4)(moment@2.30.1) tslib: 2.8.1 dev: false diff --git a/material.angular.io/scenes/src/app/scenes/snack-bar/snack-bar-scene.scss b/material.angular.io/scenes/src/app/scenes/snack-bar/snack-bar-scene.scss index be8cf2218ddc..8c8df3a97fb4 100644 --- a/material.angular.io/scenes/src/app/scenes/snack-bar/snack-bar-scene.scss +++ b/material.angular.io/scenes/src/app/scenes/snack-bar/snack-bar-scene.scss @@ -2,7 +2,7 @@ // within the scene bounds. .mat-mdc-snack-bar-container { margin: 8px !important; - --mdc-snackbar-container-color: red; + --mat-snack-bar-container-color: red; color: rgba(white, 0.87) !important; button { diff --git a/material.angular.io/scenes/src/test.ts b/material.angular.io/scenes/src/test.ts index 826f7f0d03fa..e9fd7db25dac 100644 --- a/material.angular.io/scenes/src/test.ts +++ b/material.angular.io/scenes/src/test.ts @@ -2,10 +2,7 @@ import 'zone.js/testing'; import {getTestBed} from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import {BrowserTestingModule, platformBrowserTesting} from '@angular/platform-browser/testing'; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()); diff --git a/material.angular.io/src/app/pages/component-viewer/component-api.scss b/material.angular.io/src/app/pages/component-viewer/component-api.scss index d491b650aa41..bc44c524617d 100644 --- a/material.angular.io/src/app/pages/component-viewer/component-api.scss +++ b/material.angular.io/src/app/pages/component-viewer/component-api.scss @@ -31,6 +31,7 @@ .docs-api-method-description-cell, .docs-api-property-description, .docs-api-class-export-label, +.docs-api-component-selectors, .docs-api-directive-selectors, .docs-api-class-description, .docs-api-class-export-name { diff --git a/material.angular.io/src/app/pages/component-viewer/component-viewer.ts b/material.angular.io/src/app/pages/component-viewer/component-viewer.ts index b5472ce47451..e879480b94c9 100644 --- a/material.angular.io/src/app/pages/component-viewer/component-viewer.ts +++ b/material.angular.io/src/app/pages/component-viewer/component-viewer.ts @@ -168,7 +168,7 @@ export class ComponentOverview extends ComponentBaseView { // folder named after the component while the overview file is named similarly. e.g. // `cdk#overlay` -> `cdk/overlay/overlay.md` // `material#button` -> `material/button/button.md` - const overviewPath = doc.overviewPath || `${doc.packageName}/${doc.id}/${doc.id}.html`; + const overviewPath = doc.overviewPath || `${doc.packageName}/${doc.id}/${doc.id}.md.html`; return `/docs-content/overviews/${overviewPath}`; } } diff --git a/material.angular.io/src/app/shared/documentation-items/documentation-items.ts b/material.angular.io/src/app/shared/documentation-items/documentation-items.ts index 4e8f29089ff2..c6cc6f94ddfa 100644 --- a/material.angular.io/src/app/shared/documentation-items/documentation-items.ts +++ b/material.angular.io/src/app/shared/documentation-items/documentation-items.ts @@ -269,7 +269,7 @@ const DOCS: {[key: string]: DocItem[]} = { { id: 'ripple', name: 'Ripples', - overviewPath: 'material/core/ripple/ripple.html', + overviewPath: 'material/core/ripple/ripple.md.html', summary: 'Directive for adding Material Design ripple effects', hasStyling: false, // Ripple styling is documented through `core`. exampleSpecs: { @@ -545,7 +545,7 @@ const DOCS: {[key: string]: DocItem[]} = { exampleSpecs: { prefix: 'cdk-test-harnesses-', }, - overviewPath: 'cdk/testing/test-harnesses.html', + overviewPath: 'cdk/testing/test-harnesses.md.html', apiDocId: 'cdk-testing', additionalApiDocs: [ { diff --git a/material.angular.io/src/app/shared/guide-items/guide-items.ts b/material.angular.io/src/app/shared/guide-items/guide-items.ts index 81e74ab01859..b999852cc615 100644 --- a/material.angular.io/src/app/shared/guide-items/guide-items.ts +++ b/material.angular.io/src/app/shared/guide-items/guide-items.ts @@ -13,19 +13,19 @@ const GUIDES: GuideItem[] = [ { id: 'getting-started', name: 'Getting started', - document: '/docs-content/guides/getting-started.html', + document: '/docs-content/guides/getting-started.md.html', overview: 'Add Angular Material to your project!', }, { id: 'schematics', name: 'Schematics', - document: '/docs-content/guides/schematics.html', + document: '/docs-content/guides/schematics.md.html', overview: 'Use schematics to quickly generate views with Material Design components.', }, { id: 'theming', name: 'Theming Angular Material', - document: '/docs-content/guides/theming.html', + document: '/docs-content/guides/theming.md.html', overview: "Customize your application with Angular Material's theming system.", }, { @@ -37,25 +37,25 @@ const GUIDES: GuideItem[] = [ { id: 'creating-a-custom-form-field-control', name: 'Custom form field control', - document: '/docs-content/guides/creating-a-custom-form-field-control.html', + document: '/docs-content/guides/creating-a-custom-form-field-control.md.html', overview: 'Build a custom control that integrates with ``.', }, { id: 'creating-a-custom-stepper-using-the-cdk-stepper', name: 'Custom stepper using the CdkStepper', - document: '/docs-content/guides/creating-a-custom-stepper-using-the-cdk-stepper.html', + document: '/docs-content/guides/creating-a-custom-stepper-using-the-cdk-stepper.md.html', overview: 'Create a custom stepper components using Angular CDK.', }, { id: 'using-component-harnesses', name: 'Testing with component harnesses', - document: '/docs-content/guides/using-component-harnesses.html', + document: '/docs-content/guides/using-component-harnesses.md.html', overview: 'Write tests with component harnesses for convenience and meaningful results.', }, { id: 'material-2-theming', name: 'Theming Angular Material with Material 2', - document: '/docs-content/guides/material-2.html', + document: '/docs-content/guides/material-2.md.html', overview: "Customize your application with Angular Material's theming system.", }, ]; diff --git a/material.angular.io/src/test.ts b/material.angular.io/src/test.ts index 826f7f0d03fa..e9fd7db25dac 100644 --- a/material.angular.io/src/test.ts +++ b/material.angular.io/src/test.ts @@ -2,10 +2,7 @@ import 'zone.js/testing'; import {getTestBed} from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import {BrowserTestingModule, platformBrowserTesting} from '@angular/platform-browser/testing'; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()); diff --git a/material.angular.io/yarn.lock b/material.angular.io/yarn.lock index 023c6ef3a5d6..03a0afe8a2f3 100644 --- a/material.angular.io/yarn.lock +++ b/material.angular.io/yarn.lock @@ -15,61 +15,61 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect-cli@npm:^0.2000.0-next.0": - version: 0.2000.0-next.0 - resolution: "@angular-devkit/architect-cli@npm:0.2000.0-next.0" +"@angular-devkit/architect-cli@npm:^0.2000.0-next.3": + version: 0.2000.0-next.3 + resolution: "@angular-devkit/architect-cli@npm:0.2000.0-next.3" dependencies: - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@angular-devkit/core": "npm:20.0.0-next.0" + "@angular-devkit/architect": "npm:0.2000.0-next.3" + "@angular-devkit/core": "npm:20.0.0-next.3" ansi-colors: "npm:4.1.3" progress: "npm:2.0.3" symbol-observable: "npm:4.0.0" yargs-parser: "npm:21.1.1" bin: architect: bin/architect.js - checksum: 10c0/0df9ed10ffd1b783398eb9e198eef5a1f7ff4561a98f3dd22895c55a6be8f6481514e91100613abedbdd8108e011e73cb7c82dfb06cf5c9b0e2098113dba6761 + checksum: 10c0/cee8a76a4ce726aec8d7bfc1b8f7f9aba688a9754287ce119259b94a249f166a30ffb19b7bdc789639321faf382e2bcdbbbf396d2a35e0986e279802909010df languageName: node linkType: hard -"@angular-devkit/architect@npm:0.2000.0-next.0, @angular-devkit/architect@npm:^0.2000.0-next.0": - version: 0.2000.0-next.0 - resolution: "@angular-devkit/architect@npm:0.2000.0-next.0" +"@angular-devkit/architect@npm:0.2000.0-next.3, @angular-devkit/architect@npm:^0.2000.0-next.3": + version: 0.2000.0-next.3 + resolution: "@angular-devkit/architect@npm:0.2000.0-next.3" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.3" rxjs: "npm:7.8.2" - checksum: 10c0/1c11b797b232e1b39f3acd00fa76663eb5fd6f1f221768326ad0b31bc646d561205d9e98d54d82abe9693eeca580ec5a9abcf85b416688019a5e15a06c4f83f3 + checksum: 10c0/1c3a3cc1065a6ae153b370ad93a08e2b5454f5bf4a883872b3f23da2275cc85f35feb6e4cf5384aba4f06f1da7c2293f3ef92a72806f083ea0d1c602646b87bb languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular-devkit/build-angular@npm:20.0.0-next.0" +"@angular-devkit/build-angular@npm:^20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular-devkit/build-angular@npm:20.0.0-next.3" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@angular-devkit/build-webpack": "npm:0.2000.0-next.0" - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular/build": "npm:20.0.0-next.0" - "@babel/core": "npm:7.26.9" - "@babel/generator": "npm:7.26.9" + "@angular-devkit/architect": "npm:0.2000.0-next.3" + "@angular-devkit/build-webpack": "npm:0.2000.0-next.3" + "@angular-devkit/core": "npm:20.0.0-next.3" + "@angular/build": "npm:20.0.0-next.3" + "@babel/core": "npm:7.26.10" + "@babel/generator": "npm:7.27.0" "@babel/helper-annotate-as-pure": "npm:7.25.9" "@babel/helper-split-export-declaration": "npm:7.24.7" "@babel/plugin-transform-async-generator-functions": "npm:7.26.8" "@babel/plugin-transform-async-to-generator": "npm:7.25.9" - "@babel/plugin-transform-runtime": "npm:7.26.9" + "@babel/plugin-transform-runtime": "npm:7.26.10" "@babel/preset-env": "npm:7.26.9" - "@babel/runtime": "npm:7.26.9" + "@babel/runtime": "npm:7.27.0" "@discoveryjs/json-ext": "npm:0.6.3" - "@ngtools/webpack": "npm:20.0.0-next.0" + "@ngtools/webpack": "npm:20.0.0-next.3" "@vitejs/plugin-basic-ssl": "npm:2.0.0" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.20" + autoprefixer: "npm:10.4.21" babel-loader: "npm:10.0.0" browserslist: "npm:^4.21.5" copy-webpack-plugin: "npm:13.0.0" css-loader: "npm:7.1.2" - esbuild: "npm:0.25.0" - esbuild-wasm: "npm:0.25.0" + esbuild: "npm:0.25.1" + esbuild-wasm: "npm:0.25.1" fast-glob: "npm:3.3.3" http-proxy-middleware: "npm:3.0.3" istanbul-lib-instrument: "npm:6.0.3" @@ -83,12 +83,12 @@ __metadata: open: "npm:10.1.0" ora: "npm:5.4.1" picomatch: "npm:4.0.2" - piscina: "npm:4.8.0" + piscina: "npm:4.9.2" postcss: "npm:8.5.3" postcss-loader: "npm:8.1.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.2" - sass: "npm:1.85.1" + sass: "npm:1.86.0" sass-loader: "npm:16.0.5" semver: "npm:7.7.1" source-map-loader: "npm:5.0.0" @@ -104,9 +104,10 @@ __metadata: peerDependencies: "@angular/compiler-cli": ^20.0.0 || ^20.0.0-next.0 "@angular/localize": ^20.0.0 || ^20.0.0-next.0 + "@angular/platform-browser": ^20.0.0 || ^20.0.0-next.0 "@angular/platform-server": ^20.0.0 || ^20.0.0-next.0 "@angular/service-worker": ^20.0.0 || ^20.0.0-next.0 - "@angular/ssr": ^20.0.0-next.0 + "@angular/ssr": ^20.0.0-next.3 "@web/test-runner": ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -115,13 +116,15 @@ __metadata: ng-packagr: ^20.0.0 || ^20.0.0-next.0 protractor: ^7.0.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" dependenciesMeta: esbuild: optional: true peerDependenciesMeta: "@angular/localize": optional: true + "@angular/platform-browser": + optional: true "@angular/platform-server": optional: true "@angular/service-worker": @@ -144,26 +147,26 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/541687c8556b07d4bf320b3a8d598c734c4b61367724a730f788c8d48c5a6989739167784fe64562f3a8e94b81ee74af6b11cca63e18b2fad7c4785dc069e452 + checksum: 10c0/30be5840158244c46740573c757d4b6a3de95d3cc8375233b39d92ff91866a468df15cb7a17104833a62e578eb1c1480df3045433d7fd124fc4b1b9505de558d languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.2000.0-next.0": - version: 0.2000.0-next.0 - resolution: "@angular-devkit/build-webpack@npm:0.2000.0-next.0" +"@angular-devkit/build-webpack@npm:0.2000.0-next.3": + version: 0.2000.0-next.3 + resolution: "@angular-devkit/build-webpack@npm:0.2000.0-next.3" dependencies: - "@angular-devkit/architect": "npm:0.2000.0-next.0" + "@angular-devkit/architect": "npm:0.2000.0-next.3" rxjs: "npm:7.8.2" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - checksum: 10c0/e64ab2951e7d05bc74e239a33ca969b4657b2ce6897919776669f5d4a7d046e0de73536c12c06f825852d2493ac4138bbe2850301ca4ab6985c2bcfc1aeb269b + checksum: 10c0/cac9332ef072048f171016036e619fca82e9552ade1e05e86580669f90e94fb1fc063e866a778f2f6bb7bc56bcaf47b3c93624811b57d88468a17dbecf38ec3e languageName: node linkType: hard -"@angular-devkit/core@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular-devkit/core@npm:20.0.0-next.0" +"@angular-devkit/core@npm:20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular-devkit/core@npm:20.0.0-next.3" dependencies: ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" @@ -176,20 +179,20 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/dbcf534f83be08f203090fc6cdc15d9f2f1e909109d4628cc5f95715003f5b5270c936e519692dc5d4ccba547991a462b675675cc2baa4dfe6a65505a3047087 + checksum: 10c0/933c2f1c906ff339cd4b90404e2eb6c032b2dda38034636fe8a8a55eafd1e528df7e0838ef79eb3a01fc9551919c5b07890262d5bd29d6f379d9053234c62820 languageName: node linkType: hard -"@angular-devkit/schematics@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular-devkit/schematics@npm:20.0.0-next.0" +"@angular-devkit/schematics@npm:20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular-devkit/schematics@npm:20.0.0-next.3" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.3" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.17" ora: "npm:5.4.1" rxjs: "npm:7.8.2" - checksum: 10c0/47e64344fed3750cbc63871311025339fcd69007877bc7392bbced226887ac24dbd3484de31c03d4e0a7e6920f81fb41b8d6f53dfddf44974998fb8b62d821d3 + checksum: 10c0/d02de81afed39af4f9dbf7a44f56114ed63fd3d220974e3e3b3b0e1ff6ed5b3d3ff98c72ce21c97fdf1bba94ff82ba64ba28e5a0ab5cc64d8933207cd2ecf375 languageName: node linkType: hard @@ -266,67 +269,71 @@ __metadata: languageName: node linkType: hard -"@angular/animations@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/animations@npm:20.0.0-next.1" +"@angular/animations@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/animations@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 20.0.0-next.1 - checksum: 10c0/f505afed1901cfe166d2e1d5bf1d90659467e6d0743032421f9bf67507250f2479965d58ef062ab7625570a0834587b9e402e5fedff881c17542f98e7ea0c2db + "@angular/core": 20.0.0-next.4 + checksum: 10c0/b47b65f13d2a7d674d13b313bd62b9c42220ccab8e0777ce5240eb67099ebbd5a37d8b2e5aaa6e91955c6d20d0a0d04581f2eef2320cda4b81e2669949073c7f languageName: node linkType: hard -"@angular/build@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/build@npm:20.0.0-next.0" +"@angular/build@npm:20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular/build@npm:20.0.0-next.3" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@babel/core": "npm:7.26.9" + "@angular-devkit/architect": "npm:0.2000.0-next.3" + "@babel/core": "npm:7.26.10" "@babel/helper-annotate-as-pure": "npm:7.25.9" "@babel/helper-split-export-declaration": "npm:7.24.7" "@babel/plugin-syntax-import-attributes": "npm:7.26.0" - "@inquirer/confirm": "npm:5.1.6" + "@inquirer/confirm": "npm:5.1.8" "@vitejs/plugin-basic-ssl": "npm:2.0.0" beasties: "npm:0.2.0" browserslist: "npm:^4.23.0" - esbuild: "npm:0.25.0" + esbuild: "npm:0.25.1" https-proxy-agent: "npm:7.0.6" istanbul-lib-instrument: "npm:6.0.3" + jsonc-parser: "npm:3.3.1" listr2: "npm:8.2.5" lmdb: "npm:3.2.6" magic-string: "npm:0.30.17" mrmime: "npm:2.0.1" parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" - piscina: "npm:4.8.0" - rollup: "npm:4.34.9" - sass: "npm:1.85.1" + piscina: "npm:4.9.2" + rollup: "npm:4.37.0" + sass: "npm:1.86.0" semver: "npm:7.7.1" source-map-support: "npm:0.5.21" tinyglobby: "npm:0.2.12" - vite: "npm:6.2.0" + vite: "npm:6.2.3" watchpack: "npm:2.4.2" peerDependencies: "@angular/compiler": ^20.0.0 || ^20.0.0-next.0 "@angular/compiler-cli": ^20.0.0 || ^20.0.0-next.0 "@angular/localize": ^20.0.0 || ^20.0.0-next.0 + "@angular/platform-browser": ^20.0.0 || ^20.0.0-next.0 "@angular/platform-server": ^20.0.0 || ^20.0.0-next.0 "@angular/service-worker": ^20.0.0 || ^20.0.0-next.0 - "@angular/ssr": ^20.0.0-next.0 + "@angular/ssr": ^20.0.0-next.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 || ^20.0.0-next.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" dependenciesMeta: lmdb: optional: true peerDependenciesMeta: "@angular/localize": optional: true + "@angular/platform-browser": + optional: true "@angular/platform-server": optional: true "@angular/service-worker": @@ -343,25 +350,25 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/1fcfd5ec1dc9447895ebecc41665c7cf94b8c4d807ae57f2c79712ca3f639316b2067a5789962847172fcf32c09230a9f6336af388ee9ba2e8f3c9429e351cc0 + checksum: 10c0/07323c0b81c64fe0d29f24feeb3669b9dd9e15d34af0ead90d708340d7f170c0d65d3c8fc71f84ee6a803795a37d165eb784f0411ccb4fdaefde384323f32017 languageName: node linkType: hard -"@angular/cdk-experimental@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/cdk-experimental@npm:20.0.0-next.0" +"@angular/cdk-experimental@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/cdk-experimental@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/cdk": 20.0.0-next.0 + "@angular/cdk": 20.0.0-next.4 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - checksum: 10c0/616088b6a7d8586408dd0c7761aadf5c98914e4600ec4d49e23c2a81e7ee599d30a8a27163149489c7ef475f643a25f78e22158511a215b68ba63282dacb1440 + checksum: 10c0/1bf8fb2f7078856efa87597288d5c70e1197cc695e791ea3ac7894a24f854907ce0fbc88c045ad65fbe39647049294c63ff9d45bf917805cb8f5e2bdafab00c6 languageName: node linkType: hard -"@angular/cdk@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/cdk@npm:20.0.0-next.0" +"@angular/cdk@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/cdk@npm:20.0.0-next.4" dependencies: parse5: "npm:^7.1.2" tslib: "npm:^2.3.0" @@ -369,23 +376,20 @@ __metadata: "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 - dependenciesMeta: - parse5: - optional: true - checksum: 10c0/7ecc28a12eacd6d931a3b1f4fdecd7c2e361d76c00f49dbfecacaf88e63caf46afe59e535b35d636d9104c91e477171f587e99e5ba3515ac3e3bd64df4d827b2 + checksum: 10c0/b3799fae1d760bd08c3ba0b436820b9d4ca59b121e2181248c9e95198e049aa96481ef0e169390687dfd4f50bfa277fe88384090589d63f2036948fd8a812660 languageName: node linkType: hard -"@angular/cli@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/cli@npm:20.0.0-next.0" +"@angular/cli@npm:^20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular/cli@npm:20.0.0-next.3" dependencies: - "@angular-devkit/architect": "npm:0.2000.0-next.0" - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular-devkit/schematics": "npm:20.0.0-next.0" - "@inquirer/prompts": "npm:7.3.2" + "@angular-devkit/architect": "npm:0.2000.0-next.3" + "@angular-devkit/core": "npm:20.0.0-next.3" + "@angular-devkit/schematics": "npm:20.0.0-next.3" + "@inquirer/prompts": "npm:7.4.0" "@listr2/prompt-adapter-inquirer": "npm:2.0.18" - "@schematics/angular": "npm:20.0.0-next.0" + "@schematics/angular": "npm:20.0.0-next.3" "@yarnpkg/lockfile": "npm:1.1.0" ini: "npm:5.0.0" jsonc-parser: "npm:3.3.1" @@ -399,27 +403,27 @@ __metadata: yargs: "npm:17.7.2" bin: ng: bin/ng.js - checksum: 10c0/2a061be5cca725786b4150cf20bfe46d16e60a1f1757953695207f5593284d420b80defb4be0610ae8891600a511e498429e0ea10b9ba8a4c5e42181b6f2d2b4 + checksum: 10c0/9081301ff9e09dc92088c23366b535f2b139dd712a23e783d8d1841f0e82ba0e0aaa2de90531a54b562fb01f706b6c6f4f7cbb1c880ebbc6f3c609509de4f604 languageName: node linkType: hard -"@angular/common@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/common@npm:20.0.0-next.1" +"@angular/common@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/common@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 20.0.0-next.1 + "@angular/core": 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/390c010d403a10c59a9581af7576c77f3dc270c10949b156fec1e8c53b8b4951c30ae8fff777cc78288ca5994686b67ceddb81e69ce3eabeb03cc0e87ecb8a7a + checksum: 10c0/90c8cc55760dec3b02aa52e0f537c9c500b3b010243580c04a34b980e00ad4c22f846a31a75ca2ee3b95e24cf3367a81f8d054c718fe3be39185b2c928db34a7 languageName: node linkType: hard -"@angular/compiler-cli@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/compiler-cli@npm:20.0.0-next.1" +"@angular/compiler-cli@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/compiler-cli@npm:20.0.0-next.4" dependencies: - "@babel/core": "npm:7.26.9" + "@babel/core": "npm:7.26.10" "@jridgewell/sourcemap-codec": "npm:^1.4.14" chokidar: "npm:^4.0.0" convert-source-map: "npm:^1.5.1" @@ -428,81 +432,76 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 20.0.0-next.1 + "@angular/compiler": 20.0.0-next.4 typescript: ">=5.8 <5.9" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js - checksum: 10c0/2c7fea54c16700989d0b36b1406a534565164e9318db5e6f9234debf2b8e4e25c23ec7d53f5b50fa8164ce984ab1e7685bcdc787de69426f2162fc3b7976a44f + checksum: 10c0/a1f78e7a56b10cc51a09a2f9eeb51e9a2ea886f412107bf175ffa48d3e472c14c20f968b68bb533459582006b1439fddf3576e81bf0700e140883aab8e896b05 languageName: node linkType: hard -"@angular/compiler@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/compiler@npm:20.0.0-next.1" +"@angular/compiler@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/compiler@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" - peerDependencies: - "@angular/core": 20.0.0-next.1 - peerDependenciesMeta: - "@angular/core": - optional: true - checksum: 10c0/ff3de2cc3a13214ff6829cd9c35613e1e1bd7d69850617a0bc035e081069733aa9adfb6f6a09732784fd84e241f6bfc82ca1d86ba975ee834ad5fa050a50950f + checksum: 10c0/b4d1af1d7b7aa6e2ba4d313cf03ad9ff26d18bfe3a722c1ec603633b49160201b88df06a55b6d1d3f78803d82e059a8599cf6d6f144287ec5719ba04f0141c1f languageName: node linkType: hard -"@angular/components-examples@https://github.com/angular/material2-docs-content.git#48e6a2c4281e5ef36f8ef20532ec0aa1825608d7": - version: 20.0.0-next.0+sha-11599f8 - resolution: "@angular/components-examples@https://github.com/angular/material2-docs-content.git#commit=48e6a2c4281e5ef36f8ef20532ec0aa1825608d7" +"@angular/components-examples@https://github.com/angular/material2-docs-content.git#e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3": + version: 20.0.0-next.4+sha-beacb8d + resolution: "@angular/components-examples@https://github.com/angular/material2-docs-content.git#commit=e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/cdk": 20.0.0-next.0+sha-11599f8 - "@angular/cdk-experimental": 20.0.0-next.0+sha-11599f8 + "@angular/cdk": 20.0.0-next.4+sha-beacb8d + "@angular/cdk-experimental": 20.0.0-next.4+sha-beacb8d "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - "@angular/material": 20.0.0-next.0+sha-11599f8 - "@angular/material-date-fns-adapter": 20.0.0-next.0+sha-11599f8 - "@angular/material-experimental": 20.0.0-next.0+sha-11599f8 - "@angular/material-luxon-adapter": 20.0.0-next.0+sha-11599f8 - "@angular/material-moment-adapter": 20.0.0-next.0+sha-11599f8 - checksum: 10c0/f89349370f96a9157e70d12cebbebd6cc91e65c1b0702f09eb25a3d099f310633e89b07cd10cfc642f2ea6ef2e8a185433f6c555f51f4b750e8c70664c38dc23 + "@angular/material": 20.0.0-next.4+sha-beacb8d + "@angular/material-date-fns-adapter": 20.0.0-next.4+sha-beacb8d + "@angular/material-experimental": 20.0.0-next.4+sha-beacb8d + "@angular/material-luxon-adapter": 20.0.0-next.4+sha-beacb8d + "@angular/material-moment-adapter": 20.0.0-next.4+sha-beacb8d + checksum: 10c0/e0b6d79bc6a9c4cf3a4ae8377b4926605b05ea79500a83ec275dd02bcda350ebce2e6919f8c9d068a675a5ce1b3a7db07c7c2d9326531c8aa2fa32a95b7786d7 languageName: node linkType: hard -"@angular/core@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/core@npm:20.0.0-next.1" +"@angular/core@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/core@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/compiler": 20.0.0-next.1 + "@angular/compiler": 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: "@angular/compiler": optional: true - checksum: 10c0/b849477ae384cac3901ca834ec06c906a3b8d91e5776b1e85bced584ba4f75975a95f568a23bbdfd3179f6d1a0970530597ff7800d6e17a29c7b521cb5f936e8 + checksum: 10c0/5499ba32563704c91954a9c18a7f71c03f6df1e0c16aa239fa8a1df7af86f7e6a158c975ce6e754a690bb055c764a4b4552b82b3292721e6d2699d376b716a86 languageName: node linkType: hard -"@angular/forms@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/forms@npm:20.0.0-next.1" +"@angular/forms@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/forms@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 + "@angular/common": 20.0.0-next.4 + "@angular/core": 20.0.0-next.4 + "@angular/platform-browser": 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/416a48a3d2d6793626a1808cd29ca934634dce69dbd077c3202f1b9fd29efb70a497af0ca608c1e1c74b5561dad80cfab42acbf478d092817023c4c4910010e6 + checksum: 10c0/a077c5d81e75667e57fe5cfe3583d217df9604a8965891c1cf1ecdef38a6ea87b18507be0a4106a338ec4ac5dceebc127d2ac8067a25b8107972e5ab698e6b50 languageName: node linkType: hard -"@angular/google-maps@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/google-maps@npm:20.0.0-next.0" +"@angular/google-maps@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/google-maps@npm:20.0.0-next.4" dependencies: "@types/google.maps": "npm:^3.54.10" tslib: "npm:^2.3.0" @@ -510,121 +509,121 @@ __metadata: "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/7a38941eb0f0074c7eef7270dc68450989e5701f36d4ff278002e21727da341d468a028f8235bd7028c658859995ceba29f2ddcff5a4fc85daccfa97e8c5feb6 + checksum: 10c0/957a6a6d0d114fdc19eb749adb6af968e815ec381d7261f24f653fab172f2e05d3531c6810c05b16ce3322d359f56883f564dd4f4464d2ea73eaed5e2e38cc38 languageName: node linkType: hard -"@angular/localize@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/localize@npm:20.0.0-next.1" +"@angular/localize@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/localize@npm:20.0.0-next.4" dependencies: - "@babel/core": "npm:7.26.9" + "@babel/core": "npm:7.26.10" "@types/babel__core": "npm:7.20.5" - fast-glob: "npm:3.3.3" + tinyglobby: "npm:^0.2.12" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 20.0.0-next.1 - "@angular/compiler-cli": 20.0.0-next.1 + "@angular/compiler": 20.0.0-next.4 + "@angular/compiler-cli": 20.0.0-next.4 bin: localize-extract: tools/bundles/src/extract/cli.js localize-migrate: tools/bundles/src/migrate/cli.js localize-translate: tools/bundles/src/translate/cli.js - checksum: 10c0/5b9400268f668aa770861d395e7d75f5c92f33f6e04cc80c82c294b58cc20ac52abcffab14eac050633117719a9ba22562bc5b9126a4db9c10c92cd4499f1903 + checksum: 10c0/2e0a4846c3b3b297b13e0e21841294f51f5d071101f1747761dc1ec7b30a887441683912489fb48139d3074131d96cd1b88aafd87d47ac703b585ad1a6735670 languageName: node linkType: hard -"@angular/material-experimental@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/material-experimental@npm:20.0.0-next.0" +"@angular/material-experimental@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/material-experimental@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/cdk": 20.0.0-next.0 + "@angular/cdk": 20.0.0-next.4 "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/forms": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - "@angular/material": 20.0.0-next.0 + "@angular/material": 20.0.0-next.4 "@angular/platform-browser": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - checksum: 10c0/14feecd243e809b191a92f864de8d35a509926f7edd8fcd4a9c8877e2e0a42b48d8d5c8b2bfc15a6b6657ba4f32b6d633e25b355e1b087ea408f09996fc02b99 + checksum: 10c0/0efe290faff8b5a4ee69543163c20907bd75ef1ebd28c8cd1ecf57ec5add144c72902e40e5552a0bd97c90bbf94a1aa0e25e7ceee308a2566a61a505c2c6d056 languageName: node linkType: hard -"@angular/material-moment-adapter@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/material-moment-adapter@npm:20.0.0-next.0" +"@angular/material-moment-adapter@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/material-moment-adapter@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 - "@angular/material": 20.0.0-next.0 + "@angular/material": 20.0.0-next.4 moment: ^2.18.1 - checksum: 10c0/501df9a7118e4faadab66661562d9d5f054edd21c82eb0f3bf8bb0dd49759d8e3d3d9b228683f043e3df8fcdc6136738498c0eb4400f1f9a53df3bb0a0db25f3 + checksum: 10c0/55ff095cc56783661446d1d6de78a09350b745aeef878eb7275c756d1f42cc9e1ac86d1b2bd87078ea3b331f4264f28a13a50e71a364a5735584454bdf369e65 languageName: node linkType: hard -"@angular/material@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/material@npm:20.0.0-next.0" +"@angular/material@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/material@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/cdk": 20.0.0-next.0 + "@angular/cdk": 20.0.0-next.4 "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/forms": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/platform-browser": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/1c37196f10ff64bc6d97f0b29d38b3f93046daf970f8d6b0f1670d88b18938113b16ab128b01d8a406acec8d724a514f1f26481ff797188733ad555c3203c3e7 + checksum: 10c0/836976e51f1eb36d5a4c86d887b93c06993e070709342459e1cf9ac68021d4e7edbbda1608544c26cb97cbac226f364fff02aec4f9cfcb67f28edfaf34f1384e languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/platform-browser-dynamic@npm:20.0.0-next.1" +"@angular/platform-browser-dynamic@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/platform-browser-dynamic@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/compiler": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 - checksum: 10c0/56f96ce991a4a05c845c72abb4974a43538ca5f164013cef4b4f78a17877b57788ee2ddf539ab2039c172fbc082b0d54db00f2786d1ca4a6b32c3ddfbd38f6fe + "@angular/common": 20.0.0-next.4 + "@angular/compiler": 20.0.0-next.4 + "@angular/core": 20.0.0-next.4 + "@angular/platform-browser": 20.0.0-next.4 + checksum: 10c0/59fec3fb21f650b2dcd23e787481470bc0fe748c16800b65bac313d8a8b8c4e9b1ff97da474558cd3786c5aaf10dae73f3bc3438c196e35680514d6f74b03620 languageName: node linkType: hard -"@angular/platform-browser@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/platform-browser@npm:20.0.0-next.1" +"@angular/platform-browser@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/platform-browser@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 20.0.0-next.1 - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 + "@angular/animations": 20.0.0-next.4 + "@angular/common": 20.0.0-next.4 + "@angular/core": 20.0.0-next.4 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/601441056a11357c9506f30bf0e14e3b50bf507e24f2693d7a0446e5125392d0a25e3f546ac53f80752a74b50e7ace83f7286a077c73adeb6110183e0cd158a9 + checksum: 10c0/074c038e5a06869c1abe64d2d1665972cecbb7832fb462f4db43278f8a3bb6a7163bc1ba9fe98c1c97b55cde286a10133f3b6fadc3d210bfe25a322a312c3c22 languageName: node linkType: hard -"@angular/router@npm:^20.0.0-next.0": - version: 20.0.0-next.1 - resolution: "@angular/router@npm:20.0.0-next.1" +"@angular/router@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/router@npm:20.0.0-next.4" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 20.0.0-next.1 - "@angular/core": 20.0.0-next.1 - "@angular/platform-browser": 20.0.0-next.1 + "@angular/common": 20.0.0-next.4 + "@angular/core": 20.0.0-next.4 + "@angular/platform-browser": 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/fdcf4bbae0e90aadbb4c42f5c67aa19b3e34211cc8ceafe1229e4a6fa2d516052d56b50bf449083bc5a859ef5e2e3d382c93e31961db0433f94500df611d240d + checksum: 10c0/31aeddb31cc91c69ba298dab0d60cb0847b8fcd3633cc489a66bd6ae7d74df1b008f4d80638d58855a2425609a4730fd8bd2ca85b6b6a322b66b7e519c440ebe languageName: node linkType: hard -"@angular/ssr@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/ssr@npm:20.0.0-next.0" +"@angular/ssr@npm:^20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@angular/ssr@npm:20.0.0-next.3" dependencies: tslib: "npm:^2.3.0" peerDependencies: @@ -635,13 +634,13 @@ __metadata: peerDependenciesMeta: "@angular/platform-server": optional: true - checksum: 10c0/6c60ef8b91d0b6a4df2341fbf06bda470e3d32f896ff5a685044b4ab7a81bdaccd90735eba160e5fb6c1c66313e8d14c673a9715a96f3ebc8e62b64f25a63499 + checksum: 10c0/fdc0fd1e0c73db8b5f78c565b8dcab4c455925b571e51fbe86d10f4992296685cfc51d16c4c0fcaea3a44b403543d14a7c21fc246d2326150fba6e379262a383 languageName: node linkType: hard -"@angular/youtube-player@npm:^20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@angular/youtube-player@npm:20.0.0-next.0" +"@angular/youtube-player@npm:^20.0.0-next.4": + version: 20.0.0-next.4 + resolution: "@angular/youtube-player@npm:20.0.0-next.4" dependencies: "@types/youtube": "npm:^0.1.0" tslib: "npm:^2.3.0" @@ -649,7 +648,7 @@ __metadata: "@angular/common": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 "@angular/core": ^20.0.0-0 || ^20.1.0-0 || ^20.2.0-0 || ^20.3.0-0 || ^21.0.0-0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/b8c61aa7e525133989c7b73e036b5abb971cb33eea0cc376da6c8a4b4f374b39cbafaef0afe68d8be3b6a0aaa0300a35c9f4029a6946a0262cc2c8eab570a25b + checksum: 10c0/4a1cee2561d3b45d5f553e17757275dbd5f4521a278ed0191aaaa8a55954d4abbe9bb4fdeafb679a760f7e84c0f43cf956643766c912ee4212955d3e90d28a3b languageName: node linkType: hard @@ -707,26 +706,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.26.9": - version: 7.26.9 - resolution: "@babel/core@npm:7.26.9" +"@babel/core@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/core@npm:7.26.10" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.26.9" + "@babel/generator": "npm:^7.26.10" "@babel/helper-compilation-targets": "npm:^7.26.5" "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.9" - "@babel/parser": "npm:^7.26.9" + "@babel/helpers": "npm:^7.26.10" + "@babel/parser": "npm:^7.26.10" "@babel/template": "npm:^7.26.9" - "@babel/traverse": "npm:^7.26.9" - "@babel/types": "npm:^7.26.9" + "@babel/traverse": "npm:^7.26.10" + "@babel/types": "npm:^7.26.10" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/ed7212ff42a9453765787019b7d191b167afcacd4bd8fec10b055344ef53fa0cc648c9a80159ae4ecf870016a6318731e087042dcb68d1a2a9d34eb290dc014b + checksum: 10c0/e046e0e988ab53841b512ee9d263ca409f6c46e2a999fe53024688b92db394346fa3aeae5ea0866331f62133982eee05a675d22922a4603c3f603aa09a581d62 languageName: node linkType: hard @@ -753,16 +752,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:7.26.9, @babel/generator@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/generator@npm:7.26.9" +"@babel/generator@npm:7.27.0, @babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/generator@npm:7.27.0" dependencies: - "@babel/parser": "npm:^7.26.9" - "@babel/types": "npm:^7.26.9" + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/6b78872128205224a9a9761b9ea7543a9a7902a04b82fc2f6801ead4de8f59056bab3fd17b1f834ca7b049555fc4c79234b9a6230dd9531a06525306050becad + checksum: 10c0/7cb10693d2b365c278f109a745dc08856cae139d262748b77b70ce1d97da84627f79648cab6940d847392c0e5d180441669ed958b3aee98d9c7d274b37c553bd languageName: node linkType: hard @@ -1139,13 +1138,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/helpers@npm:7.26.9" +"@babel/helpers@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/helpers@npm:7.27.0" dependencies: - "@babel/template": "npm:^7.26.9" - "@babel/types": "npm:^7.26.9" - checksum: 10c0/3d4dbc4a33fe4181ed810cac52318b578294745ceaec07e2f6ecccf6cda55d25e4bfcea8f085f333bf911c9e1fc13320248dd1d5315ab47ad82ce1077410df05 + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10c0/a3c64fd2d8b164c041808826cc00769d814074ea447daaacaf2e3714b66d3f4237ef6e420f61d08f463d6608f3468c2ac5124ab7c68f704e20384def5ade95f4 languageName: node linkType: hard @@ -1183,6 +1182,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/parser@npm:7.27.0" + dependencies: + "@babel/types": "npm:^7.27.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/ba2ed3f41735826546a3ef2a7634a8d10351df221891906e59b29b0a0cd748f9b0e7a6f07576858a9de8e77785aad925c8389ddef146de04ea2842047c9d2859 + languageName: node + linkType: hard + "@babel/parser@npm:^7.26.8": version: 7.26.8 resolution: "@babel/parser@npm:7.26.8" @@ -1791,19 +1801,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.26.9": - version: 7.26.9 - resolution: "@babel/plugin-transform-runtime@npm:7.26.9" +"@babel/plugin-transform-runtime@npm:7.26.10": + version: 7.26.10 + resolution: "@babel/plugin-transform-runtime@npm:7.26.10" dependencies: "@babel/helper-module-imports": "npm:^7.25.9" "@babel/helper-plugin-utils": "npm:^7.26.5" babel-plugin-polyfill-corejs2: "npm:^0.4.10" - babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-corejs3: "npm:^0.11.0" babel-plugin-polyfill-regenerator: "npm:^0.6.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2c4d77d0671badc7fd53dcd7015df5db892712436c7e9740ffb2f5b85e8591e5bfe208f78dff402b4ee2d55d0f7a3c0a1102c683f333f4ee0cfa62f68ea68842 + checksum: 10c0/4b70a63b904a3f7faa6ca95f9034d2f29330764820b06cf1814dda4ab0482b233a28241e98d8497bc1690dd31972e72861d8534ae0e37f26e04637e7d615e43d languageName: node linkType: hard @@ -2009,12 +2019,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.26.9": - version: 7.26.9 - resolution: "@babel/runtime@npm:7.26.9" +"@babel/runtime@npm:7.27.0": + version: 7.27.0 + resolution: "@babel/runtime@npm:7.27.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/e8517131110a6ec3a7360881438b85060e49824e007f4a64b5dfa9192cf2bb5c01e84bfc109f02d822c7edb0db926928dd6b991e3ee460b483fb0fac43152d9b + checksum: 10c0/35091ea9de48bd7fd26fb177693d64f4d195eb58ab2b142b893b7f3fa0f1d7c677604d36499ae0621a3703f35ba0c6a8f6c572cc8f7dc0317213841e493cf663 languageName: node linkType: hard @@ -2071,6 +2081,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/template@npm:7.27.0" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10c0/13af543756127edb5f62bf121f9b093c09a2b6fe108373887ccffc701465cfbcb17e07cf48aa7f440415b263f6ec006e9415c79dfc2e8e6010b069435f81f340 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": version: 7.25.3 resolution: "@babel/traverse@npm:7.25.3" @@ -2101,6 +2122,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/traverse@npm:7.27.0" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.27.0" + "@babel/parser": "npm:^7.27.0" + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/c7af29781960dacaae51762e8bc6c4b13d6ab4b17312990fbca9fc38e19c4ad7fecaae24b1cf52fb844e8e6cdc76c70ad597f90e496bcb3cc0a1d66b41a0aa5b + languageName: node + linkType: hard + "@babel/traverse@npm:^7.26.8": version: 7.26.8 resolution: "@babel/traverse@npm:7.26.8" @@ -2116,21 +2152,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/traverse@npm:7.26.9" - dependencies: - "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.26.9" - "@babel/parser": "npm:^7.26.9" - "@babel/template": "npm:^7.26.9" - "@babel/types": "npm:^7.26.9" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/51dd57fa39ea34d04816806bfead04c74f37301269d24c192d1406dc6e244fea99713b3b9c5f3e926d9ef6aa9cd5c062ad4f2fc1caa9cf843d5e864484ac955e - languageName: node - linkType: hard - "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.4.4": version: 7.25.2 resolution: "@babel/types@npm:7.25.2" @@ -2152,6 +2173,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/types@npm:7.27.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/6f1592eabe243c89a608717b07b72969be9d9d2fce1dee21426238757ea1fa60fdfc09b29de9e48d8104311afc6e6fb1702565a9cc1e09bc1e76f2b2ddb0f6e1 + languageName: node + linkType: hard + "@babel/types@npm:^7.26.8": version: 7.26.8 resolution: "@babel/types@npm:7.26.8" @@ -2232,6 +2263,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/aix-ppc64@npm:0.25.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-arm64@npm:0.25.0" @@ -2239,6 +2277,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm64@npm:0.25.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-arm@npm:0.25.0" @@ -2246,6 +2291,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm@npm:0.25.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/android-x64@npm:0.25.0" @@ -2253,6 +2305,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-x64@npm:0.25.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/darwin-arm64@npm:0.25.0" @@ -2260,6 +2319,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-arm64@npm:0.25.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/darwin-x64@npm:0.25.0" @@ -2267,6 +2333,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-x64@npm:0.25.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/freebsd-arm64@npm:0.25.0" @@ -2274,6 +2347,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-arm64@npm:0.25.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/freebsd-x64@npm:0.25.0" @@ -2281,6 +2361,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-x64@npm:0.25.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-arm64@npm:0.25.0" @@ -2288,6 +2375,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm64@npm:0.25.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-arm@npm:0.25.0" @@ -2295,6 +2389,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm@npm:0.25.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-ia32@npm:0.25.0" @@ -2302,6 +2403,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ia32@npm:0.25.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-loong64@npm:0.25.0" @@ -2309,6 +2417,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-loong64@npm:0.25.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-mips64el@npm:0.25.0" @@ -2316,6 +2431,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-mips64el@npm:0.25.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-ppc64@npm:0.25.0" @@ -2323,6 +2445,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ppc64@npm:0.25.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-riscv64@npm:0.25.0" @@ -2330,6 +2459,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-riscv64@npm:0.25.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-s390x@npm:0.25.0" @@ -2337,6 +2473,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-s390x@npm:0.25.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/linux-x64@npm:0.25.0" @@ -2344,6 +2487,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-x64@npm:0.25.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/netbsd-arm64@npm:0.25.0" @@ -2351,6 +2501,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-arm64@npm:0.25.1" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/netbsd-x64@npm:0.25.0" @@ -2358,6 +2515,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-x64@npm:0.25.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/openbsd-arm64@npm:0.25.0" @@ -2365,6 +2529,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-arm64@npm:0.25.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/openbsd-x64@npm:0.25.0" @@ -2372,6 +2543,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-x64@npm:0.25.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/sunos-x64@npm:0.25.0" @@ -2379,6 +2557,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/sunos-x64@npm:0.25.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-arm64@npm:0.25.0" @@ -2386,6 +2571,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-arm64@npm:0.25.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-ia32@npm:0.25.0" @@ -2393,6 +2585,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-ia32@npm:0.25.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/win32-x64@npm:0.25.0" @@ -2400,6 +2599,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-x64@npm:0.25.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -2546,13 +2752,13 @@ __metadata: languageName: node linkType: hard -"@inquirer/checkbox@npm:^4.1.2": - version: 4.1.2 - resolution: "@inquirer/checkbox@npm:4.1.2" +"@inquirer/checkbox@npm:^4.1.4": + version: 4.1.4 + resolution: "@inquirer/checkbox@npm:4.1.4" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: @@ -2560,31 +2766,31 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/5edd83063cf6f828ca2400561c857f1869382d431d584b009d3cd04a5f12fb1a4887fe4c9bd4c93f7f68e07a75e00aabdf85c58f2964eff356ac55dd52d01cee + checksum: 10c0/3770c6de7958825d032cfc469a658e0d4f7c15d0acbb00aaebf11d23171acf52cd932a475696afd960f8e09bde882872ae082b54163ccace3592ccd917daa644 languageName: node linkType: hard -"@inquirer/confirm@npm:5.1.6, @inquirer/confirm@npm:^5.1.6": - version: 5.1.6 - resolution: "@inquirer/confirm@npm:5.1.6" +"@inquirer/confirm@npm:5.1.8, @inquirer/confirm@npm:^5.1.8": + version: 5.1.8 + resolution: "@inquirer/confirm@npm:5.1.8" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/57b667f8096ec261504b613656e7b7718a238a73e059870a2b8e97c3127bc50085251100ed371250733b7cc5cd68122d8694d6a04a46de95d08bb590a8437b11 + checksum: 10c0/e4d3e3ef2c46db3235ead8c149fda442fb7e8ef5049d070803a3d9fbc7bd07a4c67175c66283b545a96944737c4567b4203502482ab3497a0575e35a42f5dcfd languageName: node linkType: hard -"@inquirer/core@npm:^10.1.7": - version: 10.1.7 - resolution: "@inquirer/core@npm:10.1.7" +"@inquirer/core@npm:^10.1.9": + version: 10.1.9 + resolution: "@inquirer/core@npm:10.1.9" dependencies: - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" cli-width: "npm:^4.1.0" mute-stream: "npm:^2.0.0" @@ -2596,158 +2802,158 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/13c25ced3e66b0ef9018fc9cc1bb841d20d56917e2609514f80df91f2395f18d9851c91987064e15afa36a6161b6bd2daee6ebef4a1791ffb12b816d4273ca55 + checksum: 10c0/36eae788713a9ad67172a86cda9b782481df5663c760dddb0b620292b78374720e6f86b662038e32bcee6fd0ffb4c0ae0c48e84ceb27c7641984a5deff1ade1f languageName: node linkType: hard -"@inquirer/editor@npm:^4.2.7": - version: 4.2.7 - resolution: "@inquirer/editor@npm:4.2.7" +"@inquirer/editor@npm:^4.2.9": + version: 4.2.9 + resolution: "@inquirer/editor@npm:4.2.9" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" external-editor: "npm:^3.1.0" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/8570bd5992dab031b7eea498941a728fbbada04072ce64192c46987a6d6e91669f9dd846049b5c49e87de01efd292fb2137606aafd7eee33e047864b2989d87f + checksum: 10c0/90d518878a6ee4cc2ff331e8c72a6a7047508723af4bfdd2f4331bdfc4caff59b63c3637a1f1a92e947d7c3744a9bb8fad509e6682f0d8ab7a9a0abe579ac915 languageName: node linkType: hard -"@inquirer/expand@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/expand@npm:4.0.9" +"@inquirer/expand@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/expand@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/4267c404f0c053abc613bcf359e80d701043062e79c4f34857e612955826a133eaa83014084f8f3e371e5f2e0706674069c399301902691e54da86e442cf8ea9 + checksum: 10c0/a41da938889980c7d7b736032268339fa7696aaa005554e68366a1453d0658ff365190151df43544f01891864409784281edb241cae673314e6e3b598339e8f4 languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.10": - version: 1.0.10 - resolution: "@inquirer/figures@npm:1.0.10" - checksum: 10c0/013b0eef03706d5ff8847c1ab1a12643edfb3d1902a5353bfe626999bc3b46653f8317d011a9dd4e831d3f2bfef3da84104a1fda4db0de0f4938122f5c70362e +"@inquirer/figures@npm:^1.0.11": + version: 1.0.11 + resolution: "@inquirer/figures@npm:1.0.11" + checksum: 10c0/6270e24eebbe42bbc4e7f8e761e906be66b4896787f31ab3e7484ad271c8edc90bce4ec20e232a5da447aee4fc73803397b2dda8cf645f4f7eea83e773b44e1e languageName: node linkType: hard -"@inquirer/input@npm:^4.1.6": - version: 4.1.6 - resolution: "@inquirer/input@npm:4.1.6" +"@inquirer/input@npm:^4.1.8": + version: 4.1.8 + resolution: "@inquirer/input@npm:4.1.8" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/b1df056e4855e2617f0c4000a09978902b8c65ec757ecfb59b1ac02c303dedc6c5e2fd677ceeabe02d18b97be2011bcbcd20ac9ed55d7c3371ef3e2a00814740 + checksum: 10c0/07e8de6252c9f69afc2db005e52fdbd3885128173259f1b9e6c8fb9236c61f176fb25ef572df0885c25b9535f78e437b28a0ef68d3222fbd2fa0f443f2936cba languageName: node linkType: hard -"@inquirer/number@npm:^3.0.9": - version: 3.0.9 - resolution: "@inquirer/number@npm:3.0.9" +"@inquirer/number@npm:^3.0.11": + version: 3.0.11 + resolution: "@inquirer/number@npm:3.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/5569d570fa539263324d3651f8fc3fe451e4a5d8d7799b8576abb3246eefbabc15a48ff4f2ef3353238aa42c01815cd761b5a148a236943b73e03e969a4a7ac7 + checksum: 10c0/185e351c2005d299cef806608895445bfccfe6f525488f4fe9b5d6ad0be9b7a382fba06fe63b13abe72b982254d0dbb53273edb9db0fad769e98e2486cb237ab languageName: node linkType: hard -"@inquirer/password@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/password@npm:4.0.9" +"@inquirer/password@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/password@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/7e2a7bc48715d933f8826112a41237905ce3ce7839b286a7d68079cda351db17c6e868727902061588f5baa75dd203e66ba1f265646bfe440da572d17d5c21eb + checksum: 10c0/d355ea4a8407bd1d85ebe31ac2b28391f7b2ad85896553aa00e96f86f81d9929558b1c39585d3a78a16d07f4c3bbb03c06db4e9d17e0740e3879669eef77ea68 languageName: node linkType: hard -"@inquirer/prompts@npm:7.3.2": - version: 7.3.2 - resolution: "@inquirer/prompts@npm:7.3.2" - dependencies: - "@inquirer/checkbox": "npm:^4.1.2" - "@inquirer/confirm": "npm:^5.1.6" - "@inquirer/editor": "npm:^4.2.7" - "@inquirer/expand": "npm:^4.0.9" - "@inquirer/input": "npm:^4.1.6" - "@inquirer/number": "npm:^3.0.9" - "@inquirer/password": "npm:^4.0.9" - "@inquirer/rawlist": "npm:^4.0.9" - "@inquirer/search": "npm:^3.0.9" - "@inquirer/select": "npm:^4.0.9" +"@inquirer/prompts@npm:7.4.0": + version: 7.4.0 + resolution: "@inquirer/prompts@npm:7.4.0" + dependencies: + "@inquirer/checkbox": "npm:^4.1.4" + "@inquirer/confirm": "npm:^5.1.8" + "@inquirer/editor": "npm:^4.2.9" + "@inquirer/expand": "npm:^4.0.11" + "@inquirer/input": "npm:^4.1.8" + "@inquirer/number": "npm:^3.0.11" + "@inquirer/password": "npm:^4.0.11" + "@inquirer/rawlist": "npm:^4.0.11" + "@inquirer/search": "npm:^3.0.11" + "@inquirer/select": "npm:^4.1.0" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/a318d7c2a963f753f4868151f2ce5673e214f3a6597430e712bc59ef9605c831b71a6b52a9c5ea2f312b23063d2ee9fd633e127cdc9e4999e95ef15a5e90c7e1 + checksum: 10c0/fbcb799beb1095274d4d2a33eb0742269cc45e9909ac4c4464b49917b84ac4d011262ac238546e4ad131cb33aa2cb347f42c841ec1c0a7b414e6643613eb90e5 languageName: node linkType: hard -"@inquirer/rawlist@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/rawlist@npm:4.0.9" +"@inquirer/rawlist@npm:^4.0.11": + version: 4.0.11 + resolution: "@inquirer/rawlist@npm:4.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/6639a662a88f2ceb44b43d7303c24b49570becfa296db11902d69a76e11e3ba865f546502a9808c1e04a1a9ab387401ec6c801a34f2b6d95091e7ad1eb185c1a + checksum: 10c0/d66c9f40770e1ff9e4dc96cf8f91834152d0447dc017d295cef4e4d95fcd73c62112a4ae7c45b26cb6d0109abf297b79c543952e43a620ba32b562465d36aa50 languageName: node linkType: hard -"@inquirer/search@npm:^3.0.9": - version: 3.0.9 - resolution: "@inquirer/search@npm:3.0.9" +"@inquirer/search@npm:^3.0.11": + version: 3.0.11 + resolution: "@inquirer/search@npm:3.0.11" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/5d1c1865705a79054b35b5767df21dd5e3215eccfc5a2e4c5b9a962875ae71c32541da124426f380c4264f87265f9b32f2df6562a47b77ba32b88658076178a1 + checksum: 10c0/483812605366c6b716bd9c96cfd701f97c5001bab3a02ce9dd0012e9e1bd2fe43333d8137013b8fd7a7bc224fac4d6fe0c15351a382c4b5e63cbe76bbfd7f01c languageName: node linkType: hard -"@inquirer/select@npm:^4.0.9": - version: 4.0.9 - resolution: "@inquirer/select@npm:4.0.9" +"@inquirer/select@npm:^4.1.0": + version: 4.1.0 + resolution: "@inquirer/select@npm:4.1.0" dependencies: - "@inquirer/core": "npm:^10.1.7" - "@inquirer/figures": "npm:^1.0.10" - "@inquirer/type": "npm:^3.0.4" + "@inquirer/core": "npm:^10.1.9" + "@inquirer/figures": "npm:^1.0.11" + "@inquirer/type": "npm:^3.0.5" ansi-escapes: "npm:^4.3.2" yoctocolors-cjs: "npm:^2.1.2" peerDependencies: @@ -2755,7 +2961,7 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/e03e00a7e0ab1e9fd95a3cbed0eeadacc3ff89af53afd81209a17c5f991b69d9c10d031dc7b5773c4c4d88b527dfd2f560e0d7f3eb44444ebeb6293edf422adb + checksum: 10c0/ec3bf89e3441d5cec5a170cfb9b6781a3c7bc4b3d832f41cd6c1cf0befaabba486d1c3975d371c75a11add741ddba585edddf365dbfd96861d856d7a7fbddd8a languageName: node linkType: hard @@ -2768,15 +2974,15 @@ __metadata: languageName: node linkType: hard -"@inquirer/type@npm:^3.0.4": - version: 3.0.4 - resolution: "@inquirer/type@npm:3.0.4" +"@inquirer/type@npm:^3.0.5": + version: 3.0.5 + resolution: "@inquirer/type@npm:3.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/d1db1833e879646ce1f31daff372e90ee099457cf7a2c09a62e8bbce47aced5f22599ef51aa8b82b5ffaeb624340c263cdd9d7a9eae8d3dfc9740efad080915e + checksum: 10c0/d6aec3e69bbd5b79ec7e5f4b7b7d2afadd6d6c0566f5fb2b3964a7d72bae89e1736f8d092df15bfdc5cb520678db02f2bde469931c7139e8402ea7ad4d3bdd80 languageName: node linkType: hard @@ -3181,14 +3387,14 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@ngtools/webpack@npm:20.0.0-next.0" +"@ngtools/webpack@npm:20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@ngtools/webpack@npm:20.0.0-next.3" peerDependencies: "@angular/compiler-cli": ^20.0.0 || ^20.0.0-next.0 - typescript: ">=5.5 <5.9" + typescript: ">=5.8 <5.9" webpack: ^5.54.0 - checksum: 10c0/df239edeb11bd46d54f5a4292e344089791a911f95cc491ece1bf26590518ce65ce8438e9115c7f93214413137c57d53adbb4e794d1f58a86667afacf3e6d810 + checksum: 10c0/cd6f34c4366836657ff563c5be64e86b9a81231634be10fef5f2ddc345c25a1c2f6a0b1f33fee2849dab42fc6706dd470930ec199b29a687dbf0ff71ea6b58d0 languageName: node linkType: hard @@ -3648,9 +3854,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.34.9" +"@rollup/rollup-android-arm-eabi@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.37.0" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -3662,9 +3868,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-android-arm64@npm:4.34.9" +"@rollup/rollup-android-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-android-arm64@npm:4.37.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -3676,9 +3882,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-darwin-arm64@npm:4.34.9" +"@rollup/rollup-darwin-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.37.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -3690,9 +3896,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-darwin-x64@npm:4.34.9" +"@rollup/rollup-darwin-x64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.37.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -3704,9 +3910,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.9" +"@rollup/rollup-freebsd-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.37.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -3718,9 +3924,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-freebsd-x64@npm:4.34.9" +"@rollup/rollup-freebsd-x64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.37.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -3732,9 +3938,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard @@ -3746,9 +3952,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.9" +"@rollup/rollup-linux-arm-musleabihf@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.37.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard @@ -3760,9 +3966,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.9" +"@rollup/rollup-linux-arm64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.37.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -3774,9 +3980,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.9" +"@rollup/rollup-linux-arm64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.37.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -3788,9 +3994,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard @@ -3802,9 +4008,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -3816,13 +4022,20 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.9" +"@rollup/rollup-linux-riscv64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.37.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.37.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.34.6": version: 4.34.6 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.6" @@ -3830,9 +4043,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.9" +"@rollup/rollup-linux-s390x-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.37.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -3844,9 +4057,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.9" +"@rollup/rollup-linux-x64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.37.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -3858,9 +4071,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.9" +"@rollup/rollup-linux-x64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.37.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -3872,9 +4085,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.9" +"@rollup/rollup-win32-arm64-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.37.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -3886,9 +4099,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.9" +"@rollup/rollup-win32-ia32-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.37.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -3900,21 +4113,21 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.9" +"@rollup/rollup-win32-x64-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.37.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@schematics/angular@npm:20.0.0-next.0": - version: 20.0.0-next.0 - resolution: "@schematics/angular@npm:20.0.0-next.0" +"@schematics/angular@npm:20.0.0-next.3": + version: 20.0.0-next.3 + resolution: "@schematics/angular@npm:20.0.0-next.3" dependencies: - "@angular-devkit/core": "npm:20.0.0-next.0" - "@angular-devkit/schematics": "npm:20.0.0-next.0" + "@angular-devkit/core": "npm:20.0.0-next.3" + "@angular-devkit/schematics": "npm:20.0.0-next.3" jsonc-parser: "npm:3.3.1" - checksum: 10c0/2abd96313c79dea911429a12c0b2273a44621a863f20331c982da2c2ff83e1f1e0f68d064ee2c2a0ffb160a440417f56d6fa68e13215291283add8f95842e391 + checksum: 10c0/df50b42ebc9bf365c0e21e29535a0fbf2f815af18a920ef0265d76d4258911128afd2bf0713f5b0485c07fbf42467f17d087d24c4ff15e12cdc6abffa60e1d04 languageName: node linkType: hard @@ -5625,21 +5838,21 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.20": - version: 10.4.20 - resolution: "autoprefixer@npm:10.4.20" +"autoprefixer@npm:10.4.21": + version: 10.4.21 + resolution: "autoprefixer@npm:10.4.21" dependencies: - browserslist: "npm:^4.23.3" - caniuse-lite: "npm:^1.0.30001646" + browserslist: "npm:^4.24.4" + caniuse-lite: "npm:^1.0.30001702" fraction.js: "npm:^4.3.7" normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.1" + picocolors: "npm:^1.1.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 10c0/e1f00978a26e7c5b54ab12036d8c13833fad7222828fc90914771b1263f51b28c7ddb5803049de4e77696cbd02bb25cfc3634e80533025bb26c26aacdf938940 + checksum: 10c0/de5b71d26d0baff4bbfb3d59f7cf7114a6030c9eeb66167acf49a32c5b61c68e308f1e0f869d92334436a221035d08b51cd1b2f2c4689b8d955149423c16d4d4 languageName: node linkType: hard @@ -5714,18 +5927,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.6": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - core-js-compat: "npm:^3.38.0" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/3a69220471b07722c2ae6537310bf26b772514e12b601398082965459c838be70a0ca70b0662f0737070654ff6207673391221d48599abb4a2b27765206d9f79 - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs3@npm:^0.11.0": version: 0.11.1 resolution: "babel-plugin-polyfill-corejs3@npm:0.11.1" @@ -6034,7 +6235,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.5, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": +"browserslist@npm:^4.21.5, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1": version: 4.23.3 resolution: "browserslist@npm:4.23.3" dependencies: @@ -6062,7 +6263,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.3": +"browserslist@npm:^4.24.3, browserslist@npm:^4.24.4": version: 4.24.4 resolution: "browserslist@npm:4.24.4" dependencies: @@ -6241,6 +6442,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001702": + version: 1.0.30001707 + resolution: "caniuse-lite@npm:1.0.30001707" + checksum: 10c0/a1beaf84bad4f6617bbc5616d6bc0c9cab73e73f7e9e09b6466af5195b1bc393e0f6f19643d7a1c88bd3f4bfa122d7bea81cf6225ec3ade57d5b1dd3478c1a1b + languageName: node + linkType: hard + "cardinal@npm:^2.1.1": version: 2.1.1 resolution: "cardinal@npm:2.1.1" @@ -6882,15 +7090,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.38.0": - version: 3.38.0 - resolution: "core-js-compat@npm:3.38.0" - dependencies: - browserslist: "npm:^4.23.3" - checksum: 10c0/9d653a448b8a491034358d2f052e63dda86f75fb65646e2d313a938212470ba1c2f5a83bf31cc583d6c87a9e8d7b0d49458447cab2ff36c4caa097ae381de336 - languageName: node - linkType: hard - "core-js-compat@npm:^3.40.0": version: 3.40.0 resolution: "core-js-compat@npm:3.40.0" @@ -7954,16 +8153,102 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.25.0": - version: 0.25.0 - resolution: "esbuild-wasm@npm:0.25.0" +"esbuild-wasm@npm:0.25.1": + version: 0.25.1 + resolution: "esbuild-wasm@npm:0.25.1" bin: esbuild: bin/esbuild - checksum: 10c0/9d0a457dd9e1fd9c2ed81ffacfa64c4e744e4a9d764b8a82a19238fae3f95c5593b98ba2382d00f9d409ce622217f71186d58d92d4ec46178a301b98d21aa9e0 + checksum: 10c0/9cc20c0f1c31c686f26202b86279a80307225ac82e52f1713d2971638baf7afd7e89ab5602648f53e1b9c331b7bfea99a76a75e38bb310ecb18c655fa7a9fd63 + languageName: node + linkType: hard + +"esbuild@npm:0.25.1": + version: 0.25.1 + resolution: "esbuild@npm:0.25.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.1" + "@esbuild/android-arm": "npm:0.25.1" + "@esbuild/android-arm64": "npm:0.25.1" + "@esbuild/android-x64": "npm:0.25.1" + "@esbuild/darwin-arm64": "npm:0.25.1" + "@esbuild/darwin-x64": "npm:0.25.1" + "@esbuild/freebsd-arm64": "npm:0.25.1" + "@esbuild/freebsd-x64": "npm:0.25.1" + "@esbuild/linux-arm": "npm:0.25.1" + "@esbuild/linux-arm64": "npm:0.25.1" + "@esbuild/linux-ia32": "npm:0.25.1" + "@esbuild/linux-loong64": "npm:0.25.1" + "@esbuild/linux-mips64el": "npm:0.25.1" + "@esbuild/linux-ppc64": "npm:0.25.1" + "@esbuild/linux-riscv64": "npm:0.25.1" + "@esbuild/linux-s390x": "npm:0.25.1" + "@esbuild/linux-x64": "npm:0.25.1" + "@esbuild/netbsd-arm64": "npm:0.25.1" + "@esbuild/netbsd-x64": "npm:0.25.1" + "@esbuild/openbsd-arm64": "npm:0.25.1" + "@esbuild/openbsd-x64": "npm:0.25.1" + "@esbuild/sunos-x64": "npm:0.25.1" + "@esbuild/win32-arm64": "npm:0.25.1" + "@esbuild/win32-ia32": "npm:0.25.1" + "@esbuild/win32-x64": "npm:0.25.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/80fca30dd0f21aec23fdfab34f0a8d5f55df5097dd7f475f2ab561d45662c32ee306f5649071cd1a0ba0614b164c48ca3dc3ee1551a4daf204b8af90e4d893f5 languageName: node linkType: hard -"esbuild@npm:0.25.0, esbuild@npm:^0.25.0": +"esbuild@npm:^0.25.0": version: 0.25.0 resolution: "esbuild@npm:0.25.0" dependencies: @@ -12121,33 +12406,33 @@ __metadata: version: 0.0.0-use.local resolution: "material-angular-io@workspace:." dependencies: - "@angular-devkit/architect": "npm:^0.2000.0-next.0" - "@angular-devkit/architect-cli": "npm:^0.2000.0-next.0" - "@angular-devkit/build-angular": "npm:^20.0.0-next.0" + "@angular-devkit/architect": "npm:^0.2000.0-next.3" + "@angular-devkit/architect-cli": "npm:^0.2000.0-next.3" + "@angular-devkit/build-angular": "npm:^20.0.0-next.3" "@angular-eslint/builder": "npm:^14.0.0" "@angular-eslint/eslint-plugin": "npm:^14.0.0" "@angular-eslint/eslint-plugin-template": "npm:^14.0.0" "@angular-eslint/template-parser": "npm:^14.0.0" - "@angular/animations": "npm:^20.0.0-next.0" - "@angular/cdk": "npm:^20.0.0-next.0" - "@angular/cdk-experimental": "npm:^20.0.0-next.0" - "@angular/cli": "npm:^20.0.0-next.0" - "@angular/common": "npm:^20.0.0-next.0" - "@angular/compiler": "npm:^20.0.0-next.0" - "@angular/compiler-cli": "npm:^20.0.0-next.0" - "@angular/components-examples": "https://github.com/angular/material2-docs-content.git#48e6a2c4281e5ef36f8ef20532ec0aa1825608d7" - "@angular/core": "npm:^20.0.0-next.0" - "@angular/forms": "npm:^20.0.0-next.0" - "@angular/google-maps": "npm:^20.0.0-next.0" - "@angular/localize": "npm:^20.0.0-next.0" - "@angular/material": "npm:^20.0.0-next.0" - "@angular/material-experimental": "npm:^20.0.0-next.0" - "@angular/material-moment-adapter": "npm:^20.0.0-next.0" - "@angular/platform-browser": "npm:^20.0.0-next.0" - "@angular/platform-browser-dynamic": "npm:^20.0.0-next.0" - "@angular/router": "npm:^20.0.0-next.0" - "@angular/ssr": "npm:^20.0.0-next.0" - "@angular/youtube-player": "npm:^20.0.0-next.0" + "@angular/animations": "npm:^20.0.0-next.4" + "@angular/cdk": "npm:^20.0.0-next.4" + "@angular/cdk-experimental": "npm:^20.0.0-next.4" + "@angular/cli": "npm:^20.0.0-next.3" + "@angular/common": "npm:^20.0.0-next.4" + "@angular/compiler": "npm:^20.0.0-next.4" + "@angular/compiler-cli": "npm:^20.0.0-next.4" + "@angular/components-examples": "https://github.com/angular/material2-docs-content.git#e904af2636dc19b7d774a1d8e8b123ea2dfeb2b3" + "@angular/core": "npm:^20.0.0-next.4" + "@angular/forms": "npm:^20.0.0-next.4" + "@angular/google-maps": "npm:^20.0.0-next.4" + "@angular/localize": "npm:^20.0.0-next.4" + "@angular/material": "npm:^20.0.0-next.4" + "@angular/material-experimental": "npm:^20.0.0-next.4" + "@angular/material-moment-adapter": "npm:^20.0.0-next.4" + "@angular/platform-browser": "npm:^20.0.0-next.4" + "@angular/platform-browser-dynamic": "npm:^20.0.0-next.4" + "@angular/router": "npm:^20.0.0-next.4" + "@angular/ssr": "npm:^20.0.0-next.3" + "@angular/youtube-player": "npm:^20.0.0-next.4" "@bazel/bazelisk": "npm:^1.12.1" "@stackblitz/sdk": "npm:^1.5.2" "@stylistic/eslint-plugin": "npm:^2.6.2" @@ -13758,15 +14043,15 @@ __metadata: languageName: node linkType: hard -"piscina@npm:4.8.0": - version: 4.8.0 - resolution: "piscina@npm:4.8.0" +"piscina@npm:4.9.2": + version: 4.9.2 + resolution: "piscina@npm:4.9.2" dependencies: "@napi-rs/nice": "npm:^1.0.1" dependenciesMeta: "@napi-rs/nice": optional: true - checksum: 10c0/963ee0dc0862e936c88357b21b0b4fa32407ab21e9600756504411f368dcfae7478c8a19e13d0dd8afed56a8252a8e5967ee4413aa33dd436751b7ee2804531e + checksum: 10c0/ab67830065ff41523cd901db41b11045cb00a0be43bf79323ff7b4ef2fbce5e3a56ad440d99d6c3944ce94451a0a69fd175500e3220b21efe54142e601322189 languageName: node linkType: hard @@ -14839,29 +15124,30 @@ __metadata: languageName: node linkType: hard -"rollup@npm:4.34.9": - version: 4.34.9 - resolution: "rollup@npm:4.34.9" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.34.9" - "@rollup/rollup-android-arm64": "npm:4.34.9" - "@rollup/rollup-darwin-arm64": "npm:4.34.9" - "@rollup/rollup-darwin-x64": "npm:4.34.9" - "@rollup/rollup-freebsd-arm64": "npm:4.34.9" - "@rollup/rollup-freebsd-x64": "npm:4.34.9" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.34.9" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.34.9" - "@rollup/rollup-linux-arm64-gnu": "npm:4.34.9" - "@rollup/rollup-linux-arm64-musl": "npm:4.34.9" - "@rollup/rollup-linux-loongarch64-gnu": "npm:4.34.9" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.34.9" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.34.9" - "@rollup/rollup-linux-s390x-gnu": "npm:4.34.9" - "@rollup/rollup-linux-x64-gnu": "npm:4.34.9" - "@rollup/rollup-linux-x64-musl": "npm:4.34.9" - "@rollup/rollup-win32-arm64-msvc": "npm:4.34.9" - "@rollup/rollup-win32-ia32-msvc": "npm:4.34.9" - "@rollup/rollup-win32-x64-msvc": "npm:4.34.9" +"rollup@npm:4.37.0": + version: 4.37.0 + resolution: "rollup@npm:4.37.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.37.0" + "@rollup/rollup-android-arm64": "npm:4.37.0" + "@rollup/rollup-darwin-arm64": "npm:4.37.0" + "@rollup/rollup-darwin-x64": "npm:4.37.0" + "@rollup/rollup-freebsd-arm64": "npm:4.37.0" + "@rollup/rollup-freebsd-x64": "npm:4.37.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.37.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.37.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.37.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.37.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.37.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.37.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.37.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.37.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.37.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.37.0" + "@rollup/rollup-linux-x64-musl": "npm:4.37.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.37.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.37.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.37.0" "@types/estree": "npm:1.0.6" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -14891,6 +15177,8 @@ __metadata: optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": @@ -14907,7 +15195,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/dd0be1f7c4f8a93040026be13ecc39259fb55313db0dac7eafd97a3ac01ab4584e6b1a8afd86b0259dcf391699d5560a678abe6c0729af0aa4f2d5df70f05c8c + checksum: 10c0/2e00382e08938636edfe0a7547ea2eaa027205dc0b6ff85d8b82be0fbe55a4ef88a1995fee2a5059e33dbccf12d1376c236825353afb89c96298cc95c5160a46 languageName: node linkType: hard @@ -15116,9 +15404,9 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.85.1": - version: 1.85.1 - resolution: "sass@npm:1.85.1" +"sass@npm:1.86.0": + version: 1.86.0 + resolution: "sass@npm:1.86.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" @@ -15129,7 +15417,7 @@ __metadata: optional: true bin: sass: sass.js - checksum: 10c0/f843aa1df1dca2f0e9cb2fb247e4939fd514ae4c182cdd1900a0622c0d71b40dfb1c4225f78b78e165a318287ca137ec597695db3e496408bd16a921a2bc2b3f + checksum: 10c0/921caea1fd8a450d4a986e5570ce13c4ca7b2a57da390811add3d2087ad8f46f53b34652ddcb237d8bdaad49c560b8d6eee130c733c787d058bc5a71a914c139 languageName: node linkType: hard @@ -17101,9 +17389,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:6.2.0": - version: 6.2.0 - resolution: "vite@npm:6.2.0" +"vite@npm:6.2.3": + version: 6.2.3 + resolution: "vite@npm:6.2.3" dependencies: esbuild: "npm:^0.25.0" fsevents: "npm:~2.3.3" @@ -17149,7 +17437,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/db62c93d4a823e805c6f8429de035528b3c35cc7f6de4948b41e0528f94ed2ac55047d90f8534f626ef3a04e682883b570fe5ec9ee92f51bf0c3c210dbec5ac1 + checksum: 10c0/ba6ad7e83e5a63fb0b6f62d3a3963624b8784bdc1bfa2a83e16cf268fb58c76bd9f8e69f39ed34bf8711cdb8fd7702916f878781da53c232c34ef7a85e0600cf languageName: node linkType: hard diff --git a/package.json b/package.json index f23aa335a990..59c946ef15dc 100644 --- a/package.json +++ b/package.json @@ -38,13 +38,11 @@ "tslint": "tslint -c tslint.json --project ./tsconfig.json", "stylelint": "stylelint \"src/**/*.+(css|scss)\" --config .stylelintrc.json", "resync-caretaker-app": "ts-node --project scripts/tsconfig.json scripts/caretaking/resync-caretaker-app-prs.ts", - "ts-circular-deps:check": "yarn -s ng-dev ts-circular-deps check --config ./src/circular-deps-test.conf.js", - "ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --config ./src/circular-deps-test.conf.js", + "ts-circular-deps:check": "yarn -s ng-dev ts-circular-deps check --config ./src/circular-deps-test.conf.cjs", + "ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --config ./src/circular-deps-test.conf.cjs", "merge": "yarn -s ng-dev pr merge", "approve-api": "node ./scripts/approve-api-golden.js", - "approve-size-tests": "node ./scripts/approve-size-golden.js", - "integration-tests": "bazel test --test_tag_filters=-linker-integration-test --build_tests_only -- //integration/... -//integration/size-test/...", - "integration-tests:size-test": "bazel test //integration/size-test/...", + "integration-tests": "bazel test --test_tag_filters=-linker-integration-test --build_tests_only -- //integration/...", "test-linker-aot": "bazel test --partial_compilation --test_tag_filters=partial-compilation-integration,-firefox --build_tests_only -- //integration/... //src/...", "test-linker-jit": "bazel test --partial_compilation --test_tag_filters=partial-compilation-integration,-firefox --build_tests_only --//tools:force_partial_jit_compilation=True -- //integration/... //src/...", "check-tooling-setup": "yarn tsc --project tools/tsconfig.json --noEmit && yarn tsc --project scripts/tsconfig.json --noEmit && yarn tsc --project .ng-dev/tsconfig.json --noEmit", @@ -54,35 +52,37 @@ "ci-notify-slack-failure": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/circleci/notify-slack-job-failure.mts", "prepare": "husky" }, - "version": "20.0.0-next.3", + "version": "20.0.0-next.5", "dependencies": { - "@angular/animations": "^20.0.0-next.3", - "@angular/common": "^20.0.0-next.3", - "@angular/compiler": "^20.0.0-next.3", - "@angular/core": "^20.0.0-next.3", - "@angular/forms": "^20.0.0-next.3", - "@angular/platform-browser": "^20.0.0-next.3", + "@angular/animations": "^20.0.0-next.4", + "@angular/common": "^20.0.0-next.4", + "@angular/compiler": "^20.0.0-next.4", + "@angular/core": "^20.0.0-next.4", + "@angular/forms": "^20.0.0-next.4", + "@angular/platform-browser": "^20.0.0-next.4", "@types/google.maps": "^3.54.10", "@types/youtube": "^0.1.0", + "date-fns": "^4.1.0", + "luxon": "^3.0.0", + "moment": "^2.29.1", "rxjs": "^6.6.7", "rxjs-tslint-rules": "^4.34.8", "tslib": "^2.3.1", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^20.0.0-next.2", - "@angular-devkit/core": "^20.0.0-next.2", - "@angular-devkit/schematics": "^20.0.0-next.2", + "@angular-devkit/build-angular": "^20.0.0-next.3", + "@angular-devkit/core": "^20.0.0-next.3", + "@angular-devkit/schematics": "^20.0.0-next.3", "@angular/bazel": "https://github.com/angular/bazel-builds.git#54a0ac1bc77b58214a1c4d3cdcf167676ea621e4", - "@angular/build": "^20.0.0-next.2", + "@angular/build": "^20.0.0-next.3", "@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#ec9df12469082e3cb087a9af55072dc2d833c73f", - "@angular/cli": "^20.0.0-next.2", - "@angular/compiler-cli": "^20.0.0-next.3", - "@angular/localize": "^20.0.0-next.3", + "@angular/cli": "^20.0.0-next.3", + "@angular/compiler-cli": "^20.0.0-next.4", + "@angular/localize": "^20.0.0-next.4", "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#1fa3a08b6a111de820da092799319ed47c058849", - "@angular/platform-browser-dynamic": "^20.0.0-next.3", - "@angular/platform-server": "^20.0.0-next.3", - "@angular/router": "^20.0.0-next.3", + "@angular/platform-server": "^20.0.0-next.4", + "@angular/router": "^20.0.0-next.4", "@babel/core": "^7.16.12", "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/helper-string-parser": "^7.22.5", @@ -102,7 +102,7 @@ "@octokit/rest": "18.3.5", "@rollup/plugin-commonjs": "^21.0.0", "@rollup/plugin-node-resolve": "^13.1.3", - "@schematics/angular": "^20.0.0-next.2", + "@schematics/angular": "^20.0.0-next.3", "@types/babel__core": "^7.1.18", "@types/browser-sync": "^2.26.3", "@types/fs-extra": "^9.0.13", @@ -122,7 +122,6 @@ "browser-sync": "2.26.13", "chalk": "^4.1.0", "cross-env": "^7.0.3", - "date-fns": "^4.1.0", "dgeni": "^0.4.14", "dgeni-packages": "^0.29.5", "esbuild": "^0.17.5", @@ -134,6 +133,7 @@ "inquirer": "^8.2.0", "jasmine": "^4.1.0", "jasmine-core": "^4.1.0", + "jasmine-reporters": "^2.5.2", "jsonc-parser": "^3.0.0", "kagekiri": "^1.4.1", "karma": "^6.3.12", @@ -144,10 +144,8 @@ "karma-parallel": "^0.3.1", "karma-requirejs": "^1.1.0", "karma-sourcemap-loader": "^0.3.8", - "luxon": "^3.0.0", "marked": "^2.0.0", "minimatch": "^3.0.4", - "moment": "^2.29.1", "node-fetch": "^2.6.0", "parse5": "^7.1.2", "patch-package": "^6.5.1", @@ -164,6 +162,7 @@ "semver": "^7.3.5", "send": "^0.17.2", "shelljs": "^0.8.5", + "source-map-support": "^0.5.21", "stylelint": "^14.14.0", "terser": "^5.10.0", "ts-node": "^10.9.1", @@ -186,35 +185,51 @@ }, "pnpm": { "onlyBuiltDependencies": [], + "patchedDependencies": { + "@angular/compiler-cli@20.0.0-next.4": "patches/@angular__compiler-cli.patch" + }, "packageExtensions": { + "dgeni-packages": { + "dependencies": { + "clonedeep": "*" + } + }, "@angular/animations": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" + }, + "peerDependencies": { + "@angular/common": "*" } }, "@angular/common": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" } }, "@angular/forms": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" } }, "@angular/platform-browser": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" } }, "@angular/router": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" } }, "@angular/localize": { "dependencies": { - "@nginfra/angular-linking": "1.0.0" + "@nginfra/angular-linking": "1.0.6" + } + }, + "@angular/platform-server": { + "dependencies": { + "@nginfra/angular-linking": "1.0.6" } } } diff --git a/packages.bzl b/packages.bzl index 71734420cc6f..83431596f3ea 100644 --- a/packages.bzl +++ b/packages.bzl @@ -1,9 +1,3 @@ -# Each individual package uses a placeholder for the version of Angular to ensure they're -# all in-sync. This map is passed to each ng_package rule to stamp out the appropriate -# version for the placeholders. -TSLIB_PACKAGE_VERSION = "^2.3.0" -RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.4.0" - # Packages which are versioned together on npm ANGULAR_COMPONENTS_SCOPED_PACKAGES = ["@angular/%s" % p for p in [ "material", @@ -27,12 +21,8 @@ PKG_GROUP_REPLACEMENTS = { NPM_PACKAGE_SUBSTITUTIONS = dict(PKG_GROUP_REPLACEMENTS, **{ # Peer dependency version on the Angular framework. "0.0.0-NG": "{STABLE_FRAMEWORK_PEER_DEP_RANGE}", - # Version of `tslib` - "0.0.0-TSLIB": TSLIB_PACKAGE_VERSION, # Version of the local package being built, generated via the `--workspace_status_command` flag. "0.0.0-PLACEHOLDER": "{STABLE_PROJECT_VERSION}", - # Version of `rxjs` - "0.0.0-RXJS": RXJS_PACKAGE_VERSION, }) NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS = dict(NPM_PACKAGE_SUBSTITUTIONS, **{ @@ -50,7 +40,6 @@ ANGULAR_PACKAGES_CONFIG = [ ("@angular/forms", struct(entry_points = [])), ("@angular/platform-browser", struct(entry_points = ["testing", "animations"])), ("@angular/platform-server", struct(entry_points = [], platform = "node")), - ("@angular/platform-browser-dynamic", struct(entry_points = ["testing"])), ("@angular/router", struct(entry_points = [])), ("@angular/localize", struct(entry_points = ["init"])), ] diff --git a/patches/@angular__compiler-cli.patch b/patches/@angular__compiler-cli.patch new file mode 100644 index 000000000000..81688fd00268 --- /dev/null +++ b/patches/@angular__compiler-cli.patch @@ -0,0 +1,13 @@ +diff --git a/bundles/chunk-7CTS3DE5.js b/bundles/chunk-7CTS3DE5.js +index c2dac3e174206f2e1e701cfc0a45cb9a12754d15..517e0a50292f96676dea638cf44014dfbf853a31 100755 +--- a/bundles/chunk-7CTS3DE5.js ++++ b/bundles/chunk-7CTS3DE5.js +@@ -4189,7 +4189,7 @@ var NgCompiler = class { + let aliasingHost = null; + if (this.adapter.unifiedModulesHost === null || !this.options["_useHostForImportGeneration"] && !this.options["_useHostForImportAndAliasGeneration"]) { + let localImportStrategy; +- if (this.options.rootDir !== void 0 || this.options.rootDirs !== void 0 && this.options.rootDirs.length > 0) { ++ if (this.options.rootDirs !== void 0 && this.options.rootDirs.length > 0) { + localImportStrategy = new LogicalProjectStrategy(reflector, new LogicalFileSystem([...this.adapter.rootDirs], this.adapter)); + } else { + localImportStrategy = new RelativePathStrategy(reflector); diff --git a/pkg-externals.bzl b/pkg-externals.bzl index d640abee1b59..61196eab9293 100644 --- a/pkg-externals.bzl +++ b/pkg-externals.bzl @@ -17,13 +17,12 @@ PKG_EXTERNALS = [ "@angular/common/http", "@angular/common/http/testing", "@angular/common/testing", + "@angular/localize/init", "@angular/core", "@angular/core/rxjs-interop", "@angular/core/testing", "@angular/forms", "@angular/platform-browser", - "@angular/platform-browser-dynamic", - "@angular/platform-browser-dynamic/testing", "@angular/platform-browser/animations", "@angular/platform-server", "@angular/router", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5056f2b374eb..efa8f5c0c14c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: '6.0' settings: - autoInstallPeers: true + autoInstallPeers: false excludeLinksFromLockfile: false onlyBuiltDependencies: [] @@ -13,36 +13,50 @@ overrides: string-width: 4.2.3 wrap-ansi: 7.0.0 -packageExtensionsChecksum: 30b86fa4d9ef090f3f7ab1684b2075bc +packageExtensionsChecksum: 8f389e19c3029fbb48347f408e442e2e + +patchedDependencies: + '@angular/compiler-cli@20.0.0-next.4': + hash: bkmikb4osdzaovoldc46tgsqpe + path: patches/@angular__compiler-cli.patch importers: .: dependencies: '@angular/animations': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) '@angular/common': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) '@angular/compiler': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3 + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4 '@angular/core': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) '@angular/forms': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@angular/platform-browser': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) '@types/google.maps': specifier: ^3.54.10 version: 3.55.10 '@types/youtube': specifier: ^0.1.0 version: 0.1.0 + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + luxon: + specifier: ^3.0.0 + version: 3.4.4 + moment: + specifier: ^2.29.1 + version: 2.30.1 rxjs: specifier: ^6.6.7 version: 6.6.7 @@ -57,44 +71,41 @@ importers: version: 0.15.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@16.18.101)(browser-sync@2.26.13)(karma@6.4.3)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.2)(yaml@1.10.2) + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@16.18.101)(browser-sync@2.26.13)(karma@6.4.3)(protractor@7.0.0)(typescript@5.8.2)(yaml@1.10.2) '@angular-devkit/core': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2 + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3 '@angular-devkit/schematics': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2 + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3 '@angular/bazel': specifier: https://github.com/angular/bazel-builds.git#54a0ac1bc77b58214a1c4d3cdcf167676ea621e4 - version: github.com/angular/bazel-builds/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4(@angular/compiler-cli@20.0.0-next.3)(@bazel/concatjs@5.8.1)(@bazel/worker@5.8.1)(@rollup/plugin-commonjs@21.1.0)(@rollup/plugin-node-resolve@13.3.0)(@types/node@16.18.101)(rollup-plugin-dts@6.1.1)(rollup-plugin-sourcemaps@0.6.3)(rollup@2.79.1)(terser@5.39.0)(typescript@5.8.2) + version: github.com/angular/bazel-builds/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4(@angular/compiler-cli@20.0.0-next.4)(@bazel/concatjs@5.8.1)(@bazel/worker@5.8.1)(@rollup/plugin-commonjs@21.1.0)(@rollup/plugin-node-resolve@13.3.0)(@types/node@16.18.101)(rollup-plugin-dts@6.1.1)(rollup-plugin-sourcemaps@0.6.3)(rollup@2.79.1)(terser@5.39.0)(typescript@5.8.2) '@angular/build': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) '@angular/build-tooling': specifier: https://github.com/angular/dev-infra-private-build-tooling-builds.git#ec9df12469082e3cb087a9af55072dc2d833c73f - version: github.com/angular/dev-infra-private-build-tooling-builds/ec9df12469082e3cb087a9af55072dc2d833c73f(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(rxjs@6.6.7)(terser@5.39.0)(yaml@1.10.2)(zone.js@0.15.0) + version: github.com/angular/dev-infra-private-build-tooling-builds/ec9df12469082e3cb087a9af55072dc2d833c73f(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(postcss@8.5.3)(rxjs@6.6.7)(terser@5.39.0)(yaml@1.10.2)(zone.js@0.15.0) '@angular/cli': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2(@types/node@16.18.101) - '@angular/compiler-cli': specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) + version: 20.0.0-next.3(@types/node@16.18.101) + '@angular/compiler-cli': + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) '@angular/localize': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) '@angular/ng-dev': specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#1fa3a08b6a111de820da092799319ed47c058849 version: github.com/angular/dev-infra-private-ng-dev-builds/1fa3a08b6a111de820da092799319ed47c058849 - '@angular/platform-browser-dynamic': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3) '@angular/platform-server': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@angular/router': - specifier: ^20.0.0-next.3 - version: 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + specifier: ^20.0.0-next.4 + version: 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@babel/core': specifier: ^7.16.12 version: 7.26.10 @@ -112,7 +123,7 @@ importers: version: 6.1.2 '@bazel/concatjs': specifier: 5.8.1 - version: 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) + version: 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) '@bazel/esbuild': specifier: 5.8.1 version: 5.8.1 @@ -153,8 +164,8 @@ importers: specifier: ^13.1.3 version: 13.3.0(rollup@2.79.1) '@schematics/angular': - specifier: ^20.0.0-next.2 - version: 20.0.0-next.2 + specifier: ^20.0.0-next.3 + version: 20.0.0-next.3 '@types/babel__core': specifier: ^7.1.18 version: 7.20.5 @@ -212,9 +223,6 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - date-fns: - specifier: ^4.1.0 - version: 4.1.0 dgeni: specifier: ^0.4.14 version: 0.4.14 @@ -248,6 +256,9 @@ importers: jasmine-core: specifier: ^4.1.0 version: 4.6.1 + jasmine-reporters: + specifier: ^2.5.2 + version: 2.5.2 jsonc-parser: specifier: ^3.0.0 version: 3.3.1 @@ -278,18 +289,12 @@ importers: karma-sourcemap-loader: specifier: ^0.3.8 version: 0.3.8 - luxon: - specifier: ^3.0.0 - version: 3.4.4 marked: specifier: ^2.0.0 version: 2.1.3 minimatch: specifier: ^3.0.4 version: 3.1.2 - moment: - specifier: ^2.29.1 - version: 2.30.1 node-fetch: specifier: ^2.6.0 version: 2.7.0 @@ -338,6 +343,9 @@ importers: shelljs: specifier: ^0.8.5 version: 0.8.5 + source-map-support: + specifier: ^0.5.21 + version: 0.5.21 stylelint: specifier: ^14.14.0 version: 14.16.1 @@ -375,17 +383,200 @@ importers: specifier: ^6.2.4 version: 6.2.5 + integration: + dependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../src/cdk + '@angular/cdk-experimental': + specifier: workspace:* + version: link:../src/cdk-experimental + '@angular/google-maps': + specifier: workspace:* + version: link:../src/google-maps + '@angular/material': + specifier: workspace:* + version: link:../src/material + '@angular/material-experimental': + specifier: workspace:* + version: link:../src/material-experimental + '@angular/youtube-player': + specifier: workspace:* + version: link:../src/youtube-player + + src/cdk: + dependencies: + parse5: + specifier: ^7.1.2 + version: 7.1.2 + tslib: + specifier: ^2.3.0 + version: 2.8.1 + + src/cdk-experimental: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + + src/components-examples: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + + src/dev-app: + devDependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + '@angular/cdk-experimental': + specifier: workspace:* + version: link:../cdk-experimental + '@angular/components-examples': + specifier: workspace:* + version: link:../components-examples + '@angular/google-maps': + specifier: workspace:* + version: link:../google-maps + '@angular/material': + specifier: workspace:* + version: link:../material + '@angular/material-experimental': + specifier: workspace:* + version: link:../material-experimental + '@angular/youtube-player': + specifier: workspace:* + version: link:../youtube-player + + src/e2e-app: + devDependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + '@angular/cdk-experimental': + specifier: workspace:* + version: link:../cdk-experimental + '@angular/components-examples': + specifier: workspace:* + version: link:../components-examples + '@angular/material': + specifier: workspace:* + version: link:../material + + src/google-maps: + dependencies: + '@types/google.maps': + specifier: ^3.54.10 + version: 3.55.10 + tslib: + specifier: ^2.3.0 + version: 2.8.1 + + src/material: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + + src/material-date-fns-adapter: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/material': + specifier: workspace:* + version: link:../material + + src/material-experimental: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + '@angular/cdk-experimental': + specifier: workspace:* + version: link:../cdk-experimental + '@angular/material': + specifier: workspace:* + version: link:../material + + src/material-luxon-adapter: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/material': + specifier: workspace:* + version: link:../material + + src/material-moment-adapter: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + devDependencies: + '@angular/material': + specifier: workspace:* + version: link:../material + + src/universal-app: + dependencies: + '@angular/cdk': + specifier: workspace:* + version: link:../cdk + '@angular/cdk-experimental': + specifier: workspace:* + version: link:../cdk-experimental + '@angular/components-examples': + specifier: workspace:* + version: link:../components-examples + '@angular/google-maps': + specifier: workspace:* + version: link:../google-maps + '@angular/material': + specifier: workspace:* + version: link:../material + '@angular/material-experimental': + specifier: workspace:* + version: link:../material-experimental + '@angular/youtube-player': + specifier: workspace:* + version: link:../youtube-player + + src/youtube-player: + dependencies: + '@types/youtube': + specifier: ^0.1.0 + version: 0.1.0 + tslib: + specifier: ^2.3.0 + version: 2.8.1 + packages: /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, tarball: https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz} + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 /@angular-devkit/architect@0.2000.0-next.0: - resolution: {integrity: sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA==, tarball: https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2000.0-next.0.tgz} + resolution: {integrity: sha512-1G1Kx3xauekxJ0L1JyULl8hEvEY4SebNihSaiVwAhx5sLXUOZt3MMfR0JWRMrnU92CVG7p/n6W9NcpZicIKvcA==} engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: '@angular-devkit/core': 20.0.0-next.0 @@ -394,25 +585,26 @@ packages: - chokidar dev: true - /@angular-devkit/architect@0.2000.0-next.2: - resolution: {integrity: sha512-h/6VqShV5ayUEdSMdQdYx4/bAil38V/xVDXvgiTWhvdyrwGeMBgvfhpL51/rj5ye4RH2Amy9KFbQ3HQh6xQqEw==, tarball: https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2000.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/architect@0.2000.0-next.3: + resolution: {integrity: sha512-7gI/gEMMcc3xVOwgQ8OutDbvxSbv23KOCEgUwk7Siap96wILk9o9h/ky1C8e/2WWAlr0pmVWK1mtbzAj9sQXqA==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.2 + '@angular-devkit/core': 20.0.0-next.3 rxjs: 7.8.2 transitivePeerDependencies: - chokidar dev: true - /@angular-devkit/build-angular@20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@16.18.101)(browser-sync@2.26.13)(karma@6.4.3)(protractor@7.0.0)(typescript@5.8.2)(vite@6.2.2)(yaml@1.10.2): - resolution: {integrity: sha512-0uKksY0jYd4jOveWfA6BPRJYtrUBOpcOYeTbDei5Eg637JzP3dLxCGbaBThIneVB1XIQOLm9IZoqnFAUBteSFA==, tarball: https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/build-angular@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@16.18.101)(browser-sync@2.26.13)(karma@6.4.3)(protractor@7.0.0)(typescript@5.8.2)(yaml@1.10.2): + resolution: {integrity: sha512-ubX6B5EOStqgQoD5Y/vKTsta2nJq70Hov61v0lQZ5pYxmYsuk3EhZBoAfOX7ImdmlBZfkqoeFvkisnzF722aNg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 '@angular/localize': ^20.0.0 || ^20.0.0-next.0 + '@angular/platform-browser': ^20.0.0 || ^20.0.0-next.0 '@angular/platform-server': ^20.0.0 || ^20.0.0-next.0 '@angular/service-worker': ^20.0.0 || ^20.0.0-next.0 - '@angular/ssr': ^20.0.0-next.2 + '@angular/ssr': ^20.0.0-next.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -425,6 +617,8 @@ packages: peerDependenciesMeta: '@angular/localize': optional: true + '@angular/platform-browser': + optional: true '@angular/platform-server': optional: true '@angular/service-worker': @@ -449,25 +643,26 @@ packages: optional: true dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2000.0-next.2 - '@angular-devkit/build-webpack': 0.2000.0-next.2(webpack-dev-server@5.2.0)(webpack@5.98.0) - '@angular-devkit/core': 20.0.0-next.2 - '@angular/build': 20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) - '@angular/localize': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3) - '@angular/platform-server': 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular-devkit/build-webpack': 0.2000.0-next.3(webpack-dev-server@5.2.0)(webpack@5.98.0) + '@angular-devkit/core': 20.0.0-next.3 + '@angular/build': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@angular/localize': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/platform-server': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@babel/core': 7.26.10 - '@babel/generator': 7.26.10 + '@babel/generator': 7.27.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) '@babel/preset-env': 7.26.9(@babel/core@7.26.10) - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(typescript@5.8.2)(webpack@5.98.0) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.2) + '@ngtools/webpack': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(typescript@5.8.2)(webpack@5.98.0) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.0) ansi-colors: 4.1.3 autoprefixer: 10.4.21(postcss@8.5.3) babel-loader: 10.0.0(@babel/core@7.26.10)(webpack@5.98.0) @@ -505,7 +700,7 @@ packages: tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-middleware: 7.4.2(webpack@5.98.0) webpack-dev-server: 5.2.0(webpack@5.98.0) webpack-merge: 6.0.1 @@ -536,23 +731,23 @@ packages: - yaml dev: true - /@angular-devkit/build-webpack@0.2000.0-next.2(webpack-dev-server@5.2.0)(webpack@5.98.0): - resolution: {integrity: sha512-WW0j2MQ9/YCdQXat6jjar9ORTlNFV6VIgnMkMSFVZm5Utdp+cUuD+bkwz2ysxxb4Y3F/HUt8LhlUEoAM1yQYmQ==, tarball: https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2000.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/build-webpack@0.2000.0-next.3(webpack-dev-server@5.2.0)(webpack@5.98.0): + resolution: {integrity: sha512-qLex4we60IjBUC9tHUrU7gV9keH3AFj3nn9kB/Ye16bTLzN8VgKvGNf1U5KQm/2YaIVmiXNuQipYWLKZB+jfMw==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 dependencies: - '@angular-devkit/architect': 0.2000.0-next.2 + '@angular-devkit/architect': 0.2000.0-next.3 rxjs: 7.8.2 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-server: 5.2.0(webpack@5.98.0) transitivePeerDependencies: - chokidar dev: true /@angular-devkit/core@20.0.0-next.0: - resolution: {integrity: sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw==, tarball: https://registry.npmjs.org/@angular-devkit/core/-/core-20.0.0-next.0.tgz} + resolution: {integrity: sha512-AFZxr7n02z+Gq+FJy4YMvdQfZZrmdegpTflkKXNBfQZaLOfXkJ0k1TsXaAlA8ttawHBSDpXK0o4cqL05NL0Euw==} engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -561,16 +756,16 @@ packages: optional: true dependencies: ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + ajv-formats: 3.0.1 jsonc-parser: 3.3.1 picomatch: 4.0.2 rxjs: 7.8.2 source-map: 0.7.4 dev: true - /@angular-devkit/core@20.0.0-next.2: - resolution: {integrity: sha512-AX5GQDHoVmmOfIH1vl9gRM4lURbmC2xI/JtYb+Q/lAbLlGc3E4wk0LHCQKBTCAM2/0zRreSTgrZBRxBGM5UgNw==, tarball: https://registry.npmjs.org/@angular-devkit/core/-/core-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/core@20.0.0-next.3: + resolution: {integrity: sha512-4u0FmzFjluX/2G2DBzPvcajMUA66zp2tjv/31s7yu83mTtTmaSD5femxDbeLDLXMhVWyC25d4I6ki96cbvV5rg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 peerDependenciesMeta: @@ -578,18 +773,18 @@ packages: optional: true dependencies: ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + ajv-formats: 3.0.1 jsonc-parser: 3.3.1 picomatch: 4.0.2 rxjs: 7.8.2 source-map: 0.7.4 dev: true - /@angular-devkit/schematics@20.0.0-next.2: - resolution: {integrity: sha512-HcOvEVcEzEcUxe4VRxc5m5TJuczXZJ0qNdu9DkbRKUfuT7Y1y2bgDaiSrr9/4r08GilZ9pbUOyyvXUsoyXo3aw==, tarball: https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular-devkit/schematics@20.0.0-next.3: + resolution: {integrity: sha512-1tnJrTx66x6ohg6tFsi5WtzdFrRwEI+g7NVimM9ssbgOPYS3EikmjPVIiMisMRvGX70VwX1o+6mVvoxS0DB3Ig==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.2 + '@angular-devkit/core': 20.0.0-next.3 jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -598,21 +793,23 @@ packages: - chokidar dev: true - /@angular/animations@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3): - resolution: {integrity: sha512-hperYaQGLz1Y2O7CRVfp3ea+nztPqM//C1VdBHFXt3BH2E+IKYnMQilIc8KEwU56MYS0JYdcWYzM4/NYiV4ruA==, tarball: https://registry.npmjs.org/@angular/animations/-/animations-20.0.0-next.3.tgz} + /@angular/animations@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4): + resolution: {integrity: sha512-LZRI0bUtsFXVGcH/B+nLIpsgPQmqFGzQ9GjDUsW4ZweBIdmbagIygkExhWVAYO+NxOedezpb4xzOL+D66oJdsg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 20.0.0-next.3 + '@angular/common': '*' + '@angular/core': 20.0.0-next.4 dependencies: - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@angular/common': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color /@angular/benchpress@0.3.0(rxjs@6.6.7)(zone.js@0.15.0): - resolution: {integrity: sha512-ApxoY5lTj1S0QFLdq5ZdTfdkIds1m3tma9EJOZpNVHRU9eCj2D/5+VFb5tlWsv9NHQ2S0XXkJjauFOAdfzT8uw==, tarball: https://registry.npmjs.org/@angular/benchpress/-/benchpress-0.3.0.tgz} + resolution: {integrity: sha512-ApxoY5lTj1S0QFLdq5ZdTfdkIds1m3tma9EJOZpNVHRU9eCj2D/5+VFb5tlWsv9NHQ2S0XXkJjauFOAdfzT8uw==} dependencies: '@angular/core': 14.3.0(rxjs@6.6.7)(zone.js@0.15.0) reflect-metadata: 0.1.14 @@ -621,8 +818,8 @@ packages: - zone.js dev: true - /@angular/build@20.0.0-next.0(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@20.17.24)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2): - resolution: {integrity: sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA==, tarball: https://registry.npmjs.org/@angular/build/-/build-20.0.0-next.0.tgz} + /@angular/build@20.0.0-next.0(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@20.17.24)(karma@6.4.3)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2): + resolution: {integrity: sha512-8Cu4smOcsxC+/jecUkS7W5sdiD1XTby7KA3Fi77KpBJAjNLNMHVFh/zZkALVYoG/Uyy7wcQAg/3yo6/7g0WDkA==} engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 || ^20.0.0-next.0 @@ -659,10 +856,10 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0-next.0 - '@angular/compiler': 20.0.0-next.3 - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) - '@angular/localize': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3) - '@angular/platform-server': 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@angular/localize': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) + '@angular/platform-server': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@babel/core': 7.26.9 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 @@ -675,7 +872,6 @@ packages: https-proxy-agent: 5.0.0(supports-color@10.0.0) istanbul-lib-instrument: 6.0.3 karma: 6.4.3 - less: 4.2.2 listr2: 8.2.5 magic-string: 0.30.17 mrmime: 2.0.1 @@ -689,7 +885,7 @@ packages: source-map-support: 0.5.21 tinyglobby: 0.2.12 typescript: 5.8.2 - vite: 6.2.0(@types/node@20.17.24)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2) + vite: 6.2.0(@types/node@20.17.24)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2) watchpack: 2.4.2 optionalDependencies: lmdb: 3.2.6 @@ -707,16 +903,17 @@ packages: - yaml dev: true - /@angular/build@20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2): - resolution: {integrity: sha512-PNSB1e+Q08onVSiIJmQg7KtL4+pVquwmAcDgnpmm0a+C8GhVdgtV4yzlDEe6LX78hdxWVSdgYpSyTzyA8tcMsQ==, tarball: https://registry.npmjs.org/@angular/build/-/build-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular/build@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@16.18.101)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2): + resolution: {integrity: sha512-gmzlm3N0F7ivr8WFbhw2z64l1c3Tas87WDXWi7OpwLmAWxQT5Np6c3tnA6/cR1D0HnsfkOLKHlQljKFkZjIzew==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 || ^20.0.0-next.0 '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 '@angular/localize': ^20.0.0 || ^20.0.0-next.0 + '@angular/platform-browser': ^20.0.0 || ^20.0.0-next.0 '@angular/platform-server': ^20.0.0 || ^20.0.0-next.0 '@angular/service-worker': ^20.0.0 || ^20.0.0-next.0 - '@angular/ssr': ^20.0.0-next.2 + '@angular/ssr': ^20.0.0-next.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 || ^20.0.0-next.0 @@ -726,6 +923,8 @@ packages: peerDependenciesMeta: '@angular/localize': optional: true + '@angular/platform-browser': + optional: true '@angular/platform-server': optional: true '@angular/service-worker': @@ -744,17 +943,18 @@ packages: optional: true dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2000.0-next.2 - '@angular/compiler': 20.0.0-next.3 - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) - '@angular/localize': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3) - '@angular/platform-server': 20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7) + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@angular/localize': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/platform-server': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7) '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) '@inquirer/confirm': 5.1.8(@types/node@16.18.101) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.2) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.2.3) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.25.1 @@ -770,13 +970,13 @@ packages: picomatch: 4.0.2 piscina: 4.9.2 postcss: 8.5.3 - rollup: 4.36.0 + rollup: 4.37.0 sass: 1.86.0 semver: 7.7.1 source-map-support: 0.5.21 tinyglobby: 0.2.12 typescript: 5.8.2 - vite: 6.2.2(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2) + vite: 6.2.3(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2) watchpack: 2.4.2 optionalDependencies: lmdb: 3.2.6 @@ -794,17 +994,17 @@ packages: - yaml dev: true - /@angular/cli@20.0.0-next.2(@types/node@16.18.101): - resolution: {integrity: sha512-/v6/p6E0swTw+xUpj1VLZP2vD3ys0itdzop+oerLNTw+BLo9AOSTjUPcc3NpMFXvorMSZKOJg32HsWhgJt920A==, tarball: https://registry.npmjs.org/@angular/cli/-/cli-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@angular/cli@20.0.0-next.3(@types/node@16.18.101): + resolution: {integrity: sha512-W3ZE4Vtd80CzlAtNC+asBfVRr/rlj1q93Us3VB7cJKZq1BQDUT/KsEU8oYGBb1Ksgfw5KCSx3mm6rpjBkoa5Hg==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true dependencies: - '@angular-devkit/architect': 0.2000.0-next.2 - '@angular-devkit/core': 20.0.0-next.2 - '@angular-devkit/schematics': 20.0.0-next.2 + '@angular-devkit/architect': 0.2000.0-next.3 + '@angular-devkit/core': 20.0.0-next.3 + '@angular-devkit/schematics': 20.0.0-next.3 '@inquirer/prompts': 7.4.0(@types/node@16.18.101) '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.4.0) - '@schematics/angular': 20.0.0-next.2 + '@schematics/angular': 20.0.0-next.3 '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 @@ -823,30 +1023,30 @@ packages: - supports-color dev: true - /@angular/common@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7): - resolution: {integrity: sha512-Ie5GhDhxSXTKw/nfZM/KIYSiEw1Nry/7tVoqpnDwRE12OkhyDCn+gW9X5ag42wNECCi99p+dnZuqnramZriV3A==, tarball: https://registry.npmjs.org/@angular/common/-/common-20.0.0-next.3.tgz} + /@angular/common@20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7): + resolution: {integrity: sha512-Qh7+7lFcTGjYWmlb0HOp/rRxdKWq0BPxFkw6xHHaFszzJKDv24Doj2akVf3SV2gi9f2lzIR5PICJLw00zy4jtA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/core': 20.0.0-next.3 + '@angular/core': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - /@angular/compiler-cli@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2): - resolution: {integrity: sha512-TRAEMOQG6z/1GzmCJ6Khzdt0teDgC892O9unW1BBiCQqABjdb3/ahdiIIrK2TzsJPT9USzWfzT2jugFpaPwOgQ==, tarball: https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.0.0-next.3.tgz} + /@angular/compiler-cli@20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2): + resolution: {integrity: sha512-BPBVbsWLzZe1sPl7/2rF8OLypLO0RDOSZeXarSb90JwlUX/pp6/85Cl566tPiqX7EWntnVhwlaMFiBmNTV5vrA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.0.0-next.3 + '@angular/compiler': 20.0.0-next.4 typescript: 5.8.2 dependencies: - '@angular/compiler': 20.0.0-next.3 + '@angular/compiler': 20.0.0-next.4 '@babel/core': 7.26.10 '@jridgewell/sourcemap-codec': 1.5.0 chokidar: 4.0.1 @@ -858,15 +1058,16 @@ packages: yargs: 17.7.2 transitivePeerDependencies: - supports-color + patched: true - /@angular/compiler@20.0.0-next.3: - resolution: {integrity: sha512-gofIOMEFtyFZTTAvU/GTra2U1D2/tck2aQqInQVykwbSAezfnCfEztDmd3DgscbHIr/KzovsiL8guMTTjMGUZA==, tarball: https://registry.npmjs.org/@angular/compiler/-/compiler-20.0.0-next.3.tgz} + /@angular/compiler@20.0.0-next.4: + resolution: {integrity: sha512-1lQxn1L2yVtc631cwCf0ez50hqbmQXq562wJAaQmcJlfH2EoLcjtfP3xBCluEpI+Dpto7yxXA4Ms9FYPAk8HDA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} dependencies: tslib: 2.8.1 /@angular/core@14.3.0(rxjs@6.6.7)(zone.js@0.15.0): - resolution: {integrity: sha512-wYiwItc0Uyn4FWZ/OAx/Ubp2/WrD3EgUJ476y1XI7yATGPF8n9Ld5iCXT08HOvc4eBcYlDfh90kTXR6/MfhzdQ==, tarball: https://registry.npmjs.org/@angular/core/-/core-14.3.0.tgz} + resolution: {integrity: sha512-wYiwItc0Uyn4FWZ/OAx/Ubp2/WrD3EgUJ476y1XI7yATGPF8n9Ld5iCXT08HOvc4eBcYlDfh90kTXR6/MfhzdQ==} engines: {node: ^14.15.0 || >=16.10.0} peerDependencies: rxjs: ^6.5.3 || ^7.4.0 @@ -877,35 +1078,35 @@ packages: zone.js: 0.15.0 dev: true - /@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0): - resolution: {integrity: sha512-UYIUKeDB6UkTrYd5pCurIJav7gK7vwsbzH8DdfUrI32Zj7Yfyn5r7odG1VDIOTiCS54sK0D7rZLa8PtWD8QR6A==, tarball: https://registry.npmjs.org/@angular/core/-/core-20.0.0-next.3.tgz} + /@angular/core@20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0): + resolution: {integrity: sha512-LZIiGPsfyWxrlLcU1LQy3A+/OR6iyJ8Y40IsMnTFzZlQq96NomQM0AIksGjB2YyMM8z8VLBw5nvitVCbfVXn3w==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/compiler': 20.0.0-next.3 + '@angular/compiler': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: '@angular/compiler': optional: true dependencies: - '@angular/compiler': 20.0.0-next.3 + '@angular/compiler': 20.0.0-next.4 rxjs: 6.6.7 tslib: 2.8.1 zone.js: 0.15.0 - /@angular/forms@20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7): - resolution: {integrity: sha512-Tv4H3R6XKyrROZXLHqiUB2LjB2dQgwvFFbp6dUqN4pnsKmgx0PbZJNnA3IwBo+9ONnNZZe9JbDRu6Z4+BZa5Dg==, tarball: https://registry.npmjs.org/@angular/forms/-/forms-20.0.0-next.3.tgz} + /@angular/forms@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7): + resolution: {integrity: sha512-FatZvZriwOZ2WocTlhyRqasXdgbFrUa04n6Wvvn9zNDLiF3expW534R6djmcZQ20ynmHQjeJxBPF42Ark/zeaQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 - '@angular/platform-browser': 20.0.0-next.3 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@angular/common': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: @@ -913,18 +1114,18 @@ packages: - supports-color dev: false - /@angular/localize@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3): - resolution: {integrity: sha512-Kmz89nDEmFwcXy+yDeXAqDN+MTiv0Xt60QyCIwinmJVXeiKa0cE5ecEjUPThmOGRnEvIuuOSAV6lzsW7k7RzKA==, tarball: https://registry.npmjs.org/@angular/localize/-/localize-20.0.0-next.3.tgz} + /@angular/localize@20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4): + resolution: {integrity: sha512-uUXgFyVF4D4wJzZFUn1et3oc4ThlL72Dzc19Br5tNJkFgFDD73f/O+tJ+vrq0VqbDknpM2xxZcRSYoS7RGGKZw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.0.0-next.3 - '@angular/compiler-cli': 20.0.0-next.3 + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4 dependencies: - '@angular/compiler': 20.0.0-next.3 - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) + '@angular/compiler': 20.0.0-next.4 + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) '@babel/core': 7.26.10 - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) '@types/babel__core': 7.20.5 tinyglobby: 0.2.12 yargs: 17.7.2 @@ -932,74 +1133,62 @@ packages: - supports-color dev: true - /@angular/platform-browser-dynamic@20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3): - resolution: {integrity: sha512-i1UbOtTXFEurf/qX4zRuTPyrn+M35JZQZjn9PMyzVgDtpcZlEBpvcSL8ctogDxYXkYd6/rEByPyFdTvH8YN+Ug==, tarball: https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.0.0-next.3.tgz} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} - peerDependencies: - '@angular/common': 20.0.0-next.3 - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 - '@angular/platform-browser': 20.0.0-next.3 - dependencies: - '@angular/common': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) - tslib: 2.8.1 - dev: true - - /@angular/platform-browser@20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3): - resolution: {integrity: sha512-rtBwaE0suHAHn5KpFIP6LKGRCIqCg9qPjQQrpgR4Yguke0peNFdY7j6k0oga+vd8xjxrRZftjXcC6cpK5itQGw==, tarball: https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.0.0-next.3.tgz} + /@angular/platform-browser@20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4): + resolution: {integrity: sha512-9nnloL9JD3UZbgdYpRsFynkX99BBJbFZ1f8XlhWC3b0Vwwmlq6dXH96fuWSlpbHwz7+NVooUZmWOx8GI/qK/Uw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/animations': 20.0.0-next.3 - '@angular/common': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 + '@angular/animations': 20.0.0-next.4 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 peerDependenciesMeta: '@angular/animations': optional: true dependencies: - '@angular/animations': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) - '@angular/common': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@angular/animations': 20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@angular/common': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - /@angular/platform-server@20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7): - resolution: {integrity: sha512-1s71I0Oir60JQz/ewxD9G64YTsgns+f8dIpSCUYIMBZWOWEddjUQLmTu58bTRZiah7stzze0SuPHzwdKtlfPyQ==, tarball: https://registry.npmjs.org/@angular/platform-server/-/platform-server-20.0.0-next.3.tgz} + /@angular/platform-server@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7): + resolution: {integrity: sha512-Iaszz4BBK882sNLo03cDV07P/qyDXmqax4N5f2QuoEx/GNDFSbePsRDJLshlB8MxnMClamEhOisZSVfwFZ+aKg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.3 - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 - '@angular/platform-browser': 20.0.0-next.3 + '@angular/common': 20.0.0-next.4 + '@angular/compiler': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) + '@angular/common': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) + '@angular/compiler': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) rxjs: 6.6.7 tslib: 2.8.1 xhr2: 0.2.1 + transitivePeerDependencies: + - '@angular/compiler-cli' + - supports-color dev: true - /@angular/router@20.0.0-next.3(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(@angular/platform-browser@20.0.0-next.3)(rxjs@6.6.7): - resolution: {integrity: sha512-Nr2By+GuKoHkA4aUFCfJQmMQK73cETreD50iDE+ZeiRhQL0cM8NgIYCOFsroG9Dk6xXiwETyIDuyVWx4vrE+qQ==, tarball: https://registry.npmjs.org/@angular/router/-/router-20.0.0-next.3.tgz} + /@angular/router@20.0.0-next.4(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(@angular/platform-browser@20.0.0-next.4)(rxjs@6.6.7): + resolution: {integrity: sha512-cCAC6nsUTq9gWACqCZiLZUd42Fm4r4+7qQ4u52pFEe1Suhuh/7FqzBXXQAXrgoF1MiM903tmAdN7ZO5Yh5Wiig==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} peerDependencies: - '@angular/common': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 - '@angular/platform-browser': 20.0.0-next.3 + '@angular/common': 20.0.0-next.4 + '@angular/core': 20.0.0-next.4 + '@angular/platform-browser': 20.0.0-next.4 rxjs: ^6.5.3 || ^7.4.0 dependencies: - '@angular/common': 20.0.0-next.3(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3)(rxjs@6.6.7) - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@6.6.7)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.3(@angular/animations@20.0.0-next.3)(@angular/common@20.0.0-next.3)(@angular/compiler-cli@20.0.0-next.3)(@angular/core@20.0.0-next.3) - '@nginfra/angular-linking': 1.0.0(@angular/compiler-cli@20.0.0-next.3) + '@angular/common': 20.0.0-next.4(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4)(rxjs@6.6.7) + '@angular/core': 20.0.0-next.4(@angular/compiler@20.0.0-next.4)(rxjs@6.6.7)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0-next.4(@angular/animations@20.0.0-next.4)(@angular/common@20.0.0-next.4)(@angular/compiler-cli@20.0.0-next.4)(@angular/core@20.0.0-next.4) + '@nginfra/angular-linking': 1.0.6(@angular/compiler-cli@20.0.0-next.4) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: @@ -1008,7 +1197,7 @@ packages: dev: true /@apidevtools/json-schema-ref-parser@9.1.2: - resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==, tarball: https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz} + resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 @@ -1017,7 +1206,7 @@ packages: dev: true /@babel/code-frame@7.26.2: - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz} + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -1025,23 +1214,23 @@ packages: picocolors: 1.1.1 /@babel/compat-data@7.26.8: - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz} + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} /@babel/core@7.26.10: - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz} + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 + '@babel/generator': 7.27.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helpers': 7.26.10 - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/template': 7.26.9 '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@10.0.0) gensync: 1.0.0-beta.2 @@ -1051,19 +1240,19 @@ packages: - supports-color /@babel/core@7.26.9: - resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz} + resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 + '@babel/generator': 7.27.0 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) '@babel/helpers': 7.26.10 - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/template': 7.26.9 '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@10.0.0) gensync: 1.0.0-beta.2 @@ -1073,25 +1262,25 @@ packages: - supports-color dev: true - /@babel/generator@7.26.10: - resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz} + /@babel/generator@7.27.0: + resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 /@babel/helper-annotate-as-pure@7.25.9: - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==, tarball: https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz} + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@babel/helper-compilation-targets@7.26.5: - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==, tarball: https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz} + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.26.8 @@ -1101,7 +1290,7 @@ packages: semver: 6.3.1 /@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==, tarball: https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz} + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1119,7 +1308,7 @@ packages: dev: true /@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==, tarball: https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz} + resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1131,7 +1320,7 @@ packages: dev: true /@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.10): - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==, tarball: https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz} + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: @@ -1146,40 +1335,40 @@ packages: dev: true /@babel/helper-environment-visitor@7.24.7: - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==, tarball: https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz} + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@babel/helper-explode-assignable-expression@7.18.6: - resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==, tarball: https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz} + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@babel/helper-member-expression-to-functions@7.25.9: - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==, tarball: https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz} + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true /@babel/helper-module-imports@7.25.9: - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==, tarball: https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz} + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10): - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==, tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz} + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1192,7 +1381,7 @@ packages: - supports-color /@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9): - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==, tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz} + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1206,19 +1395,19 @@ packages: dev: true /@babel/helper-optimise-call-expression@7.25.9: - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==, tarball: https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz} + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@babel/helper-plugin-utils@7.26.5: - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz} + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} dev: true /@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==, tarball: https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz} + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1232,7 +1421,7 @@ packages: dev: true /@babel/helper-replace-supers@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==, tarball: https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz} + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1246,61 +1435,61 @@ packages: dev: true /@babel/helper-skip-transparent-expression-wrappers@7.25.9: - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==, tarball: https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz} + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} dependencies: '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true /@babel/helper-split-export-declaration@7.24.7: - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==, tarball: https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz} + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@babel/helper-string-parser@7.25.9: - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==, tarball: https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz} + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.25.9: - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz} + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} /@babel/helper-validator-option@7.25.9: - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==, tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz} + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} /@babel/helper-wrap-function@7.25.9: - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==, tarball: https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz} + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.26.9 '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 transitivePeerDependencies: - supports-color dev: true /@babel/helpers@7.26.10: - resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==, tarball: https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz} + resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 - /@babel/parser@7.26.10: - resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==, tarball: https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz} + /@babel/parser@7.27.0: + resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz} + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1313,7 +1502,7 @@ packages: dev: true /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz} + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1323,7 +1512,7 @@ packages: dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz} + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1333,7 +1522,7 @@ packages: dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz} + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 @@ -1347,7 +1536,7 @@ packages: dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz} + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1360,7 +1549,7 @@ packages: dev: true /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.26.10): - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz} + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: @@ -1376,7 +1565,7 @@ packages: dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz} + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1385,7 +1574,7 @@ packages: dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -1394,7 +1583,7 @@ packages: dev: true /@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10): - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz} + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1404,7 +1593,7 @@ packages: dev: true /@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10): - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz} + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1414,7 +1603,7 @@ packages: dev: true /@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.9): - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz} + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1424,7 +1613,7 @@ packages: dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz} + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1435,7 +1624,7 @@ packages: dev: true /@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz} + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1445,7 +1634,7 @@ packages: dev: true /@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10): - resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz} + resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1459,7 +1648,7 @@ packages: dev: true /@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz} + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1473,7 +1662,7 @@ packages: dev: true /@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10): - resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz} + resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1483,7 +1672,7 @@ packages: dev: true /@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz} + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1493,7 +1682,7 @@ packages: dev: true /@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz} + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1506,7 +1695,7 @@ packages: dev: true /@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10): - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz} + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 @@ -1519,7 +1708,7 @@ packages: dev: true /@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz} + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1536,7 +1725,7 @@ packages: dev: true /@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz} + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1547,7 +1736,7 @@ packages: dev: true /@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz} + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1557,7 +1746,7 @@ packages: dev: true /@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz} + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1568,7 +1757,7 @@ packages: dev: true /@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz} + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1578,7 +1767,7 @@ packages: dev: true /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==, tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz} + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1589,7 +1778,7 @@ packages: dev: true /@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz} + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1599,7 +1788,7 @@ packages: dev: true /@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10): - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz} + resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1609,7 +1798,7 @@ packages: dev: true /@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==, tarball: https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz} + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1619,7 +1808,7 @@ packages: dev: true /@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10): - resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz} + resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1632,7 +1821,7 @@ packages: dev: true /@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz} + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1646,7 +1835,7 @@ packages: dev: true /@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz} + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1656,7 +1845,7 @@ packages: dev: true /@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz} + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1666,7 +1855,7 @@ packages: dev: true /@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz} + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1676,7 +1865,7 @@ packages: dev: true /@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz} + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1686,7 +1875,7 @@ packages: dev: true /@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz} + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1699,7 +1888,7 @@ packages: dev: true /@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10): - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz} + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1712,7 +1901,7 @@ packages: dev: true /@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz} + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1727,7 +1916,7 @@ packages: dev: true /@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz} + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1740,7 +1929,7 @@ packages: dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz} + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1751,7 +1940,7 @@ packages: dev: true /@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz} + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1761,7 +1950,7 @@ packages: dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10): - resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz} + resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1771,7 +1960,7 @@ packages: dev: true /@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz} + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1781,7 +1970,7 @@ packages: dev: true /@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz} + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1793,7 +1982,7 @@ packages: dev: true /@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==, tarball: https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz} + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1806,7 +1995,7 @@ packages: dev: true /@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz} + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1816,7 +2005,7 @@ packages: dev: true /@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==, tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz} + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1829,7 +2018,7 @@ packages: dev: true /@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz} + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1839,7 +2028,7 @@ packages: dev: true /@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz} + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1852,7 +2041,7 @@ packages: dev: true /@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz} + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1866,7 +2055,7 @@ packages: dev: true /@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz} + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1876,7 +2065,7 @@ packages: dev: true /@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz} + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1887,7 +2076,7 @@ packages: dev: true /@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10): - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz} + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1898,7 +2087,7 @@ packages: dev: true /@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz} + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1908,7 +2097,7 @@ packages: dev: true /@babel/plugin-transform-runtime@7.26.10(@babel/core@7.26.10): - resolution: {integrity: sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz} + resolution: {integrity: sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1925,7 +2114,7 @@ packages: dev: true /@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==, tarball: https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz} + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1935,7 +2124,7 @@ packages: dev: true /@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==, tarball: https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz} + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1948,7 +2137,7 @@ packages: dev: true /@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz} + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1958,7 +2147,7 @@ packages: dev: true /@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10): - resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz} + resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1968,7 +2157,7 @@ packages: dev: true /@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.10): - resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz} + resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1978,7 +2167,7 @@ packages: dev: true /@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz} + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1988,7 +2177,7 @@ packages: dev: true /@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz} + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1999,7 +2188,7 @@ packages: dev: true /@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz} + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2010,7 +2199,7 @@ packages: dev: true /@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10): - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz} + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2021,7 +2210,7 @@ packages: dev: true /@babel/preset-env@7.26.9(@babel/core@7.26.10): - resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==, tarball: https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz} + resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2101,69 +2290,69 @@ packages: dev: true /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, tarball: https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz} + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 esutils: 2.0.3 dev: true - /@babel/runtime@7.26.10: - resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz} + /@babel/runtime@7.27.0: + resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true /@babel/template@7.26.9: - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==, tarball: https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz} + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 /@babel/traverse@7.26.10: - resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==, tarball: https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz} + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 debug: 4.4.0(supports-color@10.0.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.26.10: - resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==, tarball: https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz} + /@babel/types@7.27.0: + resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 /@bazel/bazelisk@1.12.1: - resolution: {integrity: sha512-TGCwVeIiVeQUP6yLpxAg8yluFOC+tBQnWw5l8lqwMxKhRtOA+WaH1CJKAXeCBAaS2MxohhkXq44zj/7AM+t2jg==, tarball: https://registry.npmjs.org/@bazel/bazelisk/-/bazelisk-1.12.1.tgz} + resolution: {integrity: sha512-TGCwVeIiVeQUP6yLpxAg8yluFOC+tBQnWw5l8lqwMxKhRtOA+WaH1CJKAXeCBAaS2MxohhkXq44zj/7AM+t2jg==} hasBin: true dev: true /@bazel/buildifier@6.1.2: - resolution: {integrity: sha512-psKePmRkP6acwyePOhXP67R/wdwN7BGJxHqp1j5myaO24feMsaXyyiO+oW49x8YAwOpKVSCujVzkTwX2auAc0A==, tarball: https://registry.npmjs.org/@bazel/buildifier/-/buildifier-6.1.2.tgz} + resolution: {integrity: sha512-psKePmRkP6acwyePOhXP67R/wdwN7BGJxHqp1j5myaO24feMsaXyyiO+oW49x8YAwOpKVSCujVzkTwX2auAc0A==} hasBin: true dev: true /@bazel/buildifier@6.3.3: - resolution: {integrity: sha512-0f5eNWhylZQbiTddfVkIXKkugQadzZdonLw4ur58oK4X+gIHOZ42Xv94sepu8Di9UWKFXNc4zxuuTiWM22hGvw==, tarball: https://registry.npmjs.org/@bazel/buildifier/-/buildifier-6.3.3.tgz} + resolution: {integrity: sha512-0f5eNWhylZQbiTddfVkIXKkugQadzZdonLw4ur58oK4X+gIHOZ42Xv94sepu8Di9UWKFXNc4zxuuTiWM22hGvw==} hasBin: true dev: true - /@bazel/concatjs@5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2): - resolution: {integrity: sha512-TkARsNUxgi3bjFeGwIGlffmQglNhuR9qK9uE7uKhdBZvQE5caAWVCjYiMTzo3viKDhwKn5QNRcHY5huuJMVFfA==, tarball: https://registry.npmjs.org/@bazel/concatjs/-/concatjs-5.8.1.tgz} + /@bazel/concatjs@5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2): + resolution: {integrity: sha512-TkARsNUxgi3bjFeGwIGlffmQglNhuR9qK9uE7uKhdBZvQE5caAWVCjYiMTzo3viKDhwKn5QNRcHY5huuJMVFfA==} hasBin: true peerDependencies: karma: '>=4.0.0' @@ -2178,7 +2367,6 @@ packages: karma-chrome-launcher: 3.2.0 karma-firefox-launcher: 2.1.3 karma-jasmine: 4.0.2(karma@6.4.3) - karma-junit-reporter: 2.0.1(karma@6.4.3) karma-requirejs: 1.1.0(karma@6.4.3)(requirejs@2.3.6) karma-sourcemap-loader: 0.3.8 protobufjs: 6.8.8 @@ -2189,16 +2377,16 @@ packages: dev: true /@bazel/esbuild@5.8.1: - resolution: {integrity: sha512-8k4LL8P3ivCnFeBOcjiFxL8U+M5VtEGuOyIqm2hfEiP8xDWsZLS7YQ7KhshKJy7Elh2dlK9oGgMtl0D/x9kxxg==, tarball: https://registry.npmjs.org/@bazel/esbuild/-/esbuild-5.8.1.tgz} + resolution: {integrity: sha512-8k4LL8P3ivCnFeBOcjiFxL8U+M5VtEGuOyIqm2hfEiP8xDWsZLS7YQ7KhshKJy7Elh2dlK9oGgMtl0D/x9kxxg==} dev: true /@bazel/ibazel@0.16.2: - resolution: {integrity: sha512-KgqAWMH0emL6f3xH6nqyTryoBMqlJ627LBIe9PT1PRRQPz2FtHib3FIHJPukp1slzF3hJYZvdiVwgPnHbaSOOA==, tarball: https://registry.npmjs.org/@bazel/ibazel/-/ibazel-0.16.2.tgz} + resolution: {integrity: sha512-KgqAWMH0emL6f3xH6nqyTryoBMqlJ627LBIe9PT1PRRQPz2FtHib3FIHJPukp1slzF3hJYZvdiVwgPnHbaSOOA==} hasBin: true dev: true /@bazel/jasmine@5.8.1(jasmine-core@4.6.1)(jasmine@4.6.0): - resolution: {integrity: sha512-052veW5EbJRH+5hL4l9Sf99bTmdKQ5WXXMF0QiBOZcA3ZHYMAaKfYNO+brutiWoX6FrBloiskLrMzF8OiHBqyw==, tarball: https://registry.npmjs.org/@bazel/jasmine/-/jasmine-5.8.1.tgz} + resolution: {integrity: sha512-052veW5EbJRH+5hL4l9Sf99bTmdKQ5WXXMF0QiBOZcA3ZHYMAaKfYNO+brutiWoX6FrBloiskLrMzF8OiHBqyw==} hasBin: true peerDependencies: jasmine: '>=2.99.0' @@ -2211,7 +2399,7 @@ packages: dev: true /@bazel/protractor@5.8.1(protractor@7.0.0): - resolution: {integrity: sha512-6JpP4uQLVRu3m0GrpexDjICKK8YJW/9voc8rZFQxVf3sm8yNjapUVN/b/PBAwua+nDY3uMe3W9aHgStZFOST0A==, tarball: https://registry.npmjs.org/@bazel/protractor/-/protractor-5.8.1.tgz} + resolution: {integrity: sha512-6JpP4uQLVRu3m0GrpexDjICKK8YJW/9voc8rZFQxVf3sm8yNjapUVN/b/PBAwua+nDY3uMe3W9aHgStZFOST0A==} peerDependencies: protractor: '>=5.0.0' dependencies: @@ -2219,7 +2407,7 @@ packages: dev: true /@bazel/rollup@5.8.1(rollup@2.79.1): - resolution: {integrity: sha512-Ys+UWbRp1TY2j+z15N+SZgID/nuqAtJTgJDsz0NZVjm8F8KzmgXxLDnBb/cUKFVk83pNOAi84G/bq1tINjMSNA==, tarball: https://registry.npmjs.org/@bazel/rollup/-/rollup-5.8.1.tgz} + resolution: {integrity: sha512-Ys+UWbRp1TY2j+z15N+SZgID/nuqAtJTgJDsz0NZVjm8F8KzmgXxLDnBb/cUKFVk83pNOAi84G/bq1tINjMSNA==} hasBin: true peerDependencies: rollup: '>=2.3.0 <3.0.0' @@ -2229,11 +2417,11 @@ packages: dev: true /@bazel/runfiles@5.8.1: - resolution: {integrity: sha512-NDdfpdQ6rZlylgv++iMn5FkObC/QlBQvipinGLSOguTYpRywmieOyJ29XHvUilspwTFSILWpoE9CqMGkHXug1g==, tarball: https://registry.npmjs.org/@bazel/runfiles/-/runfiles-5.8.1.tgz} + resolution: {integrity: sha512-NDdfpdQ6rZlylgv++iMn5FkObC/QlBQvipinGLSOguTYpRywmieOyJ29XHvUilspwTFSILWpoE9CqMGkHXug1g==} dev: true /@bazel/terser@5.8.1(terser@5.39.0): - resolution: {integrity: sha512-TPjSDhw1pSZt9P2hd/22IJwl8KCZiJL+u2gB5mghBTCFDVdC5Dgsx135pFtvlqc6LjjOvd3s6dzcQr0YJo2HSg==, tarball: https://registry.npmjs.org/@bazel/terser/-/terser-5.8.1.tgz} + resolution: {integrity: sha512-TPjSDhw1pSZt9P2hd/22IJwl8KCZiJL+u2gB5mghBTCFDVdC5Dgsx135pFtvlqc6LjjOvd3s6dzcQr0YJo2HSg==} hasBin: true peerDependencies: terser: '>=4.0.0 <5.9.0' @@ -2242,8 +2430,7 @@ packages: dev: true /@bazel/typescript@5.8.1(typescript@5.8.2): - resolution: {integrity: sha512-NAJ8WQHZL1WE1YmRoCrq/1hhG15Mvy/viWh6TkvFnBeEhNUiQUsA5GYyhU1ztnBIYW03nATO3vwhAEfO7Q0U5g==, tarball: https://registry.npmjs.org/@bazel/typescript/-/typescript-5.8.1.tgz} - deprecated: No longer maintained, https://github.com/aspect-build/rules_ts is the recommended replacement + resolution: {integrity: sha512-NAJ8WQHZL1WE1YmRoCrq/1hhG15Mvy/viWh6TkvFnBeEhNUiQUsA5GYyhU1ztnBIYW03nATO3vwhAEfO7Q0U5g==} hasBin: true peerDependencies: typescript: 5.8.2 @@ -2256,34 +2443,34 @@ packages: dev: true /@bazel/worker@5.8.1: - resolution: {integrity: sha512-GMyZSNW3F34f9GjbJqvs1aHyed5BNrNeiDzNJhC1fIizo/UeBM21oBBONIYLBDoBtq936U85VyPZ76JaP/83hw==, tarball: https://registry.npmjs.org/@bazel/worker/-/worker-5.8.1.tgz} + resolution: {integrity: sha512-GMyZSNW3F34f9GjbJqvs1aHyed5BNrNeiDzNJhC1fIizo/UeBM21oBBONIYLBDoBtq936U85VyPZ76JaP/83hw==} dependencies: google-protobuf: 3.21.2 dev: true /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, tarball: https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz} + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz} + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} dev: true /@colors/colors@1.6.0: - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==, tarball: https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz} + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} dev: true /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 dev: true /@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.0): - resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==, tarball: https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz} + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.10 @@ -2292,7 +2479,7 @@ packages: dev: true /@dabh/diagnostics@2.0.3: - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==, tarball: https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz} + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} dependencies: colorspace: 1.1.4 enabled: 2.0.0 @@ -2300,12 +2487,12 @@ packages: dev: true /@discoveryjs/json-ext@0.6.3: - resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==, tarball: https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz} + resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} dev: true /@esbuild/aix-ppc64@0.25.0: - resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz} + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2313,7 +2500,7 @@ packages: optional: true /@esbuild/aix-ppc64@0.25.1: - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz} + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2321,7 +2508,7 @@ packages: optional: true /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2329,7 +2516,7 @@ packages: optional: true /@esbuild/android-arm64@0.25.0: - resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz} + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2337,7 +2524,7 @@ packages: optional: true /@esbuild/android-arm64@0.25.1: - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz} + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2345,7 +2532,7 @@ packages: optional: true /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz} + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2353,7 +2540,7 @@ packages: optional: true /@esbuild/android-arm@0.25.0: - resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz} + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2361,7 +2548,7 @@ packages: optional: true /@esbuild/android-arm@0.25.1: - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz} + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2369,7 +2556,7 @@ packages: optional: true /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz} + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2377,7 +2564,7 @@ packages: optional: true /@esbuild/android-x64@0.25.0: - resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz} + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2385,7 +2572,7 @@ packages: optional: true /@esbuild/android-x64@0.25.1: - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz} + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2393,7 +2580,7 @@ packages: optional: true /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2401,7 +2588,7 @@ packages: optional: true /@esbuild/darwin-arm64@0.25.0: - resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz} + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2409,7 +2596,7 @@ packages: optional: true /@esbuild/darwin-arm64@0.25.1: - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz} + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2417,7 +2604,7 @@ packages: optional: true /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2425,7 +2612,7 @@ packages: optional: true /@esbuild/darwin-x64@0.25.0: - resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz} + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2433,7 +2620,7 @@ packages: optional: true /@esbuild/darwin-x64@0.25.1: - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz} + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2441,7 +2628,7 @@ packages: optional: true /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2449,7 +2636,7 @@ packages: optional: true /@esbuild/freebsd-arm64@0.25.0: - resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz} + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2457,7 +2644,7 @@ packages: optional: true /@esbuild/freebsd-arm64@0.25.1: - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz} + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2465,7 +2652,7 @@ packages: optional: true /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2473,7 +2660,7 @@ packages: optional: true /@esbuild/freebsd-x64@0.25.0: - resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz} + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2481,7 +2668,7 @@ packages: optional: true /@esbuild/freebsd-x64@0.25.1: - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz} + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2489,7 +2676,7 @@ packages: optional: true /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2497,7 +2684,7 @@ packages: optional: true /@esbuild/linux-arm64@0.25.0: - resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz} + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2505,7 +2692,7 @@ packages: optional: true /@esbuild/linux-arm64@0.25.1: - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz} + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2513,7 +2700,7 @@ packages: optional: true /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2521,7 +2708,7 @@ packages: optional: true /@esbuild/linux-arm@0.25.0: - resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz} + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2529,7 +2716,7 @@ packages: optional: true /@esbuild/linux-arm@0.25.1: - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz} + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2537,7 +2724,7 @@ packages: optional: true /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2545,7 +2732,7 @@ packages: optional: true /@esbuild/linux-ia32@0.25.0: - resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz} + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2553,7 +2740,7 @@ packages: optional: true /@esbuild/linux-ia32@0.25.1: - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz} + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2561,7 +2748,7 @@ packages: optional: true /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2569,7 +2756,7 @@ packages: optional: true /@esbuild/linux-loong64@0.25.0: - resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz} + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2577,7 +2764,7 @@ packages: optional: true /@esbuild/linux-loong64@0.25.1: - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz} + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2585,7 +2772,7 @@ packages: optional: true /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2593,7 +2780,7 @@ packages: optional: true /@esbuild/linux-mips64el@0.25.0: - resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz} + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2601,7 +2788,7 @@ packages: optional: true /@esbuild/linux-mips64el@0.25.1: - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz} + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2609,7 +2796,7 @@ packages: optional: true /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2617,7 +2804,7 @@ packages: optional: true /@esbuild/linux-ppc64@0.25.0: - resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz} + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2625,7 +2812,7 @@ packages: optional: true /@esbuild/linux-ppc64@0.25.1: - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz} + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2633,7 +2820,7 @@ packages: optional: true /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2641,7 +2828,7 @@ packages: optional: true /@esbuild/linux-riscv64@0.25.0: - resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz} + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2649,7 +2836,7 @@ packages: optional: true /@esbuild/linux-riscv64@0.25.1: - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz} + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2657,7 +2844,7 @@ packages: optional: true /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2665,7 +2852,7 @@ packages: optional: true /@esbuild/linux-s390x@0.25.0: - resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz} + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2673,7 +2860,7 @@ packages: optional: true /@esbuild/linux-s390x@0.25.1: - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz} + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2681,7 +2868,7 @@ packages: optional: true /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2689,7 +2876,7 @@ packages: optional: true /@esbuild/linux-x64@0.25.0: - resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz} + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2697,7 +2884,7 @@ packages: optional: true /@esbuild/linux-x64@0.25.1: - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz} + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2705,7 +2892,7 @@ packages: optional: true /@esbuild/netbsd-arm64@0.25.0: - resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz} + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2713,7 +2900,7 @@ packages: optional: true /@esbuild/netbsd-arm64@0.25.1: - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==, tarball: https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz} + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2721,7 +2908,7 @@ packages: optional: true /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2729,7 +2916,7 @@ packages: optional: true /@esbuild/netbsd-x64@0.25.0: - resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz} + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2737,7 +2924,7 @@ packages: optional: true /@esbuild/netbsd-x64@0.25.1: - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz} + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2745,7 +2932,7 @@ packages: optional: true /@esbuild/openbsd-arm64@0.25.0: - resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz} + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2753,7 +2940,7 @@ packages: optional: true /@esbuild/openbsd-arm64@0.25.1: - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==, tarball: https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz} + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2761,7 +2948,7 @@ packages: optional: true /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2769,7 +2956,7 @@ packages: optional: true /@esbuild/openbsd-x64@0.25.0: - resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz} + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2777,7 +2964,7 @@ packages: optional: true /@esbuild/openbsd-x64@0.25.1: - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz} + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2785,7 +2972,7 @@ packages: optional: true /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2793,7 +2980,7 @@ packages: optional: true /@esbuild/sunos-x64@0.25.0: - resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz} + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2801,7 +2988,7 @@ packages: optional: true /@esbuild/sunos-x64@0.25.1: - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz} + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2809,7 +2996,7 @@ packages: optional: true /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2817,7 +3004,7 @@ packages: optional: true /@esbuild/win32-arm64@0.25.0: - resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz} + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2825,7 +3012,7 @@ packages: optional: true /@esbuild/win32-arm64@0.25.1: - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz} + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2833,7 +3020,7 @@ packages: optional: true /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2841,7 +3028,7 @@ packages: optional: true /@esbuild/win32-ia32@0.25.0: - resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz} + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2849,7 +3036,7 @@ packages: optional: true /@esbuild/win32-ia32@0.25.1: - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz} + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2857,7 +3044,7 @@ packages: optional: true /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2865,7 +3052,7 @@ packages: optional: true /@esbuild/win32-x64@0.25.0: - resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz} + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2873,7 +3060,7 @@ packages: optional: true /@esbuild/win32-x64@0.25.1: - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz} + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2881,11 +3068,11 @@ packages: optional: true /@firebase/app-types@0.7.0: - resolution: {integrity: sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==, tarball: https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz} + resolution: {integrity: sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==} dev: true /@google-cloud/common@5.0.2(supports-color@10.0.0): - resolution: {integrity: sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==, tarball: https://registry.npmjs.org/@google-cloud/common/-/common-5.0.2.tgz} + resolution: {integrity: sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==} engines: {node: '>=14.0.0'} dependencies: '@google-cloud/projectify': 4.0.0 @@ -2903,7 +3090,7 @@ packages: dev: true /@google-cloud/paginator@3.0.7: - resolution: {integrity: sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==, tarball: https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz} + resolution: {integrity: sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==} engines: {node: '>=10'} dependencies: arrify: 2.0.1 @@ -2911,37 +3098,37 @@ packages: dev: true /@google-cloud/precise-date@2.0.4: - resolution: {integrity: sha512-nOB+mZdevI/1Si0QAfxWfzzIqFdc7wrO+DYePFvgbOoMtvX+XfFTINNt7e9Zg66AbDbWCPRnikU+6f5LTm9Wyg==, tarball: https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-2.0.4.tgz} + resolution: {integrity: sha512-nOB+mZdevI/1Si0QAfxWfzzIqFdc7wrO+DYePFvgbOoMtvX+XfFTINNt7e9Zg66AbDbWCPRnikU+6f5LTm9Wyg==} engines: {node: '>=10.4.0'} dev: true /@google-cloud/precise-date@4.0.0: - resolution: {integrity: sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA==, tarball: https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-4.0.0.tgz} + resolution: {integrity: sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA==} engines: {node: '>=14.0.0'} dev: true /@google-cloud/projectify@2.1.1: - resolution: {integrity: sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==, tarball: https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz} + resolution: {integrity: sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==} engines: {node: '>=10'} dev: true /@google-cloud/projectify@4.0.0: - resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==, tarball: https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz} + resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} engines: {node: '>=14.0.0'} dev: true /@google-cloud/promisify@2.0.4: - resolution: {integrity: sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==, tarball: https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz} + resolution: {integrity: sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==} engines: {node: '>=10'} dev: true /@google-cloud/promisify@4.0.0: - resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==, tarball: https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz} + resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} engines: {node: '>=14'} dev: true /@google-cloud/pubsub@2.19.4: - resolution: {integrity: sha512-+aZxq6N5XGarQS3xGXjKSRFy4TB+3PMpI0CBmSrcC59g3TB5nmwps3pv/KkdLa0Cd+CPHDdfrEW1uSrGBMLICw==, tarball: https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.19.4.tgz} + resolution: {integrity: sha512-+aZxq6N5XGarQS3xGXjKSRFy4TB+3PMpI0CBmSrcC59g3TB5nmwps3pv/KkdLa0Cd+CPHDdfrEW1uSrGBMLICw==} engines: {node: '>=10'} dependencies: '@google-cloud/paginator': 3.0.7 @@ -2965,7 +3152,7 @@ packages: dev: true /@google-cloud/spanner@7.17.1(supports-color@10.0.0): - resolution: {integrity: sha512-+dTR6wvb2jANVxNe2bF048QCOVRGbesHe8Tm0OFRhvCgv3ot31JFGPyRKukD7y3jAFSBqyX0bIUV9GVNk4oRPQ==, tarball: https://registry.npmjs.org/@google-cloud/spanner/-/spanner-7.17.1.tgz} + resolution: {integrity: sha512-+dTR6wvb2jANVxNe2bF048QCOVRGbesHe8Tm0OFRhvCgv3ot31JFGPyRKukD7y3jAFSBqyX0bIUV9GVNk4oRPQ==} engines: {node: '>=14.0.0'} dependencies: '@google-cloud/common': 5.0.2(supports-color@10.0.0) @@ -3005,7 +3192,7 @@ packages: dev: true /@grpc/grpc-js@1.12.5: - resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==, tarball: https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz} + resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} engines: {node: '>=12.10.0'} dependencies: '@grpc/proto-loader': 0.7.13 @@ -3013,7 +3200,7 @@ packages: dev: true /@grpc/grpc-js@1.6.12: - resolution: {integrity: sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==, tarball: https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz} + resolution: {integrity: sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==} engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.13 @@ -3021,7 +3208,7 @@ packages: dev: true /@grpc/proto-loader@0.6.9: - resolution: {integrity: sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==, tarball: https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz} + resolution: {integrity: sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==} engines: {node: '>=6'} hasBin: true dependencies: @@ -3033,7 +3220,7 @@ packages: dev: true /@grpc/proto-loader@0.7.13: - resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==, tarball: https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz} + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} engines: {node: '>=6'} hasBin: true dependencies: @@ -3044,7 +3231,7 @@ packages: dev: true /@inquirer/checkbox@4.1.4(@types/node@16.18.101): - resolution: {integrity: sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA==, tarball: https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.4.tgz} + resolution: {integrity: sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3061,7 +3248,7 @@ packages: dev: true /@inquirer/confirm@5.1.6(@types/node@20.17.24): - resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==, tarball: https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz} + resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3075,7 +3262,7 @@ packages: dev: true /@inquirer/confirm@5.1.8(@types/node@16.18.101): - resolution: {integrity: sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==, tarball: https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.8.tgz} + resolution: {integrity: sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3089,7 +3276,7 @@ packages: dev: true /@inquirer/core@10.1.9(@types/node@16.18.101): - resolution: {integrity: sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==, tarball: https://registry.npmjs.org/@inquirer/core/-/core-10.1.9.tgz} + resolution: {integrity: sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3109,7 +3296,7 @@ packages: dev: true /@inquirer/core@10.1.9(@types/node@20.17.24): - resolution: {integrity: sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==, tarball: https://registry.npmjs.org/@inquirer/core/-/core-10.1.9.tgz} + resolution: {integrity: sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3129,7 +3316,7 @@ packages: dev: true /@inquirer/editor@4.2.9(@types/node@16.18.101): - resolution: {integrity: sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw==, tarball: https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.9.tgz} + resolution: {integrity: sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3144,7 +3331,7 @@ packages: dev: true /@inquirer/expand@4.0.11(@types/node@16.18.101): - resolution: {integrity: sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA==, tarball: https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.11.tgz} + resolution: {integrity: sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3159,12 +3346,12 @@ packages: dev: true /@inquirer/figures@1.0.11: - resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==, tarball: https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz} + resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} engines: {node: '>=18'} dev: true /@inquirer/input@4.1.8(@types/node@16.18.101): - resolution: {integrity: sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q==, tarball: https://registry.npmjs.org/@inquirer/input/-/input-4.1.8.tgz} + resolution: {integrity: sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3178,7 +3365,7 @@ packages: dev: true /@inquirer/number@3.0.11(@types/node@16.18.101): - resolution: {integrity: sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw==, tarball: https://registry.npmjs.org/@inquirer/number/-/number-3.0.11.tgz} + resolution: {integrity: sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3192,7 +3379,7 @@ packages: dev: true /@inquirer/password@4.0.11(@types/node@16.18.101): - resolution: {integrity: sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg==, tarball: https://registry.npmjs.org/@inquirer/password/-/password-4.0.11.tgz} + resolution: {integrity: sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3207,7 +3394,7 @@ packages: dev: true /@inquirer/prompts@7.4.0(@types/node@16.18.101): - resolution: {integrity: sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w==, tarball: https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.4.0.tgz} + resolution: {integrity: sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3229,7 +3416,7 @@ packages: dev: true /@inquirer/rawlist@4.0.11(@types/node@16.18.101): - resolution: {integrity: sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg==, tarball: https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.11.tgz} + resolution: {integrity: sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3244,7 +3431,7 @@ packages: dev: true /@inquirer/search@3.0.11(@types/node@16.18.101): - resolution: {integrity: sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew==, tarball: https://registry.npmjs.org/@inquirer/search/-/search-3.0.11.tgz} + resolution: {integrity: sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3260,7 +3447,7 @@ packages: dev: true /@inquirer/select@4.1.0(@types/node@16.18.101): - resolution: {integrity: sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA==, tarball: https://registry.npmjs.org/@inquirer/select/-/select-4.1.0.tgz} + resolution: {integrity: sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3277,14 +3464,14 @@ packages: dev: true /@inquirer/type@1.5.5: - resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==, tarball: https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz} + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} engines: {node: '>=18'} dependencies: mute-stream: 1.0.0 dev: true /@inquirer/type@3.0.5(@types/node@16.18.101): - resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==, tarball: https://registry.npmjs.org/@inquirer/type/-/type-3.0.5.tgz} + resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3296,7 +3483,7 @@ packages: dev: true /@inquirer/type@3.0.5(@types/node@20.17.24): - resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==, tarball: https://registry.npmjs.org/@inquirer/type/-/type-3.0.5.tgz} + resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3308,7 +3495,7 @@ packages: dev: true /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, tarball: https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz} + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} dependencies: string-width: 4.2.3 @@ -3320,19 +3507,19 @@ packages: dev: true /@isaacs/fs-minipass@4.0.1: - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==, tarball: https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz} + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} dependencies: minipass: 7.1.2 dev: true /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, tarball: https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz} + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz} + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 @@ -3340,46 +3527,46 @@ packages: '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz} + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, tarball: https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz} + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, tarball: https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz} + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/sourcemap-codec@1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz} + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz} + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@js-sdsl/ordered-map@4.4.2: - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, tarball: https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz} + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} dev: true /@jsdevtools/ono@7.1.3: - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==, tarball: https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz} + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} dev: true /@jsonjoy.com/base64@1.1.2(tslib@2.8.1): - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==, tarball: https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz} + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -3388,7 +3575,7 @@ packages: dev: true /@jsonjoy.com/json-pack@1.0.4(tslib@2.8.1): - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==, tarball: https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz} + resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -3401,7 +3588,7 @@ packages: dev: true /@jsonjoy.com/util@1.2.0(tslib@2.8.1): - resolution: {integrity: sha512-4B8B+3vFsY4eo33DMKyJPlQ3sBMpPFUZK2dr3O3rXrOGKKbYG44J0XSFkDo1VOQiri5HFEhIeVvItjR2xcazmg==, tarball: https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.2.0.tgz} + resolution: {integrity: sha512-4B8B+3vFsY4eo33DMKyJPlQ3sBMpPFUZK2dr3O3rXrOGKKbYG44J0XSFkDo1VOQiri5HFEhIeVvItjR2xcazmg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -3410,11 +3597,11 @@ packages: dev: true /@leichtgewicht/ip-codec@2.0.5: - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==, tarball: https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz} + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} dev: true /@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.4.0): - resolution: {integrity: sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==, tarball: https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz} + resolution: {integrity: sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==} engines: {node: '>=18.0.0'} peerDependencies: '@inquirer/prompts': '>= 3 < 8' @@ -3424,53 +3611,53 @@ packages: dev: true /@lmdb/lmdb-darwin-arm64@3.2.6: - resolution: {integrity: sha512-yF/ih9EJJZc72psFQbwnn8mExIWfTnzWJg+N02hnpXtDPETYLmQswIMBn7+V88lfCaFrMozJsUvcEQIkEPU0Gg==, tarball: https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.6.tgz} + resolution: {integrity: sha512-yF/ih9EJJZc72psFQbwnn8mExIWfTnzWJg+N02hnpXtDPETYLmQswIMBn7+V88lfCaFrMozJsUvcEQIkEPU0Gg==} cpu: [arm64] os: [darwin] dev: true optional: true /@lmdb/lmdb-darwin-x64@3.2.6: - resolution: {integrity: sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==, tarball: https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.6.tgz} + resolution: {integrity: sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==} cpu: [x64] os: [darwin] dev: true optional: true /@lmdb/lmdb-linux-arm64@3.2.6: - resolution: {integrity: sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==, tarball: https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.6.tgz} + resolution: {integrity: sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==} cpu: [arm64] os: [linux] dev: true optional: true /@lmdb/lmdb-linux-arm@3.2.6: - resolution: {integrity: sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==, tarball: https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.6.tgz} + resolution: {integrity: sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==} cpu: [arm] os: [linux] dev: true optional: true /@lmdb/lmdb-linux-x64@3.2.6: - resolution: {integrity: sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==, tarball: https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.6.tgz} + resolution: {integrity: sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==} cpu: [x64] os: [linux] dev: true optional: true /@lmdb/lmdb-win32-x64@3.2.6: - resolution: {integrity: sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==, tarball: https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.6.tgz} + resolution: {integrity: sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==} cpu: [x64] os: [win32] dev: true optional: true /@material/material-color-utilities@0.3.0: - resolution: {integrity: sha512-ztmtTd6xwnuh2/xu+Vb01btgV8SQWYCaK56CkRK8gEkWe5TuDyBcYJ0wgkMRn+2VcE9KUmhvkz+N9GHrqw/C0g==, tarball: https://registry.npmjs.org/@material/material-color-utilities/-/material-color-utilities-0.3.0.tgz} + resolution: {integrity: sha512-ztmtTd6xwnuh2/xu+Vb01btgV8SQWYCaK56CkRK8gEkWe5TuDyBcYJ0wgkMRn+2VcE9KUmhvkz+N9GHrqw/C0g==} dev: true /@microsoft/api-extractor-model@7.30.4(@types/node@16.18.101): - resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==, tarball: https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.4.tgz} + resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==} dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 @@ -3480,7 +3667,7 @@ packages: dev: true /@microsoft/api-extractor-model@7.30.4(@types/node@20.17.24): - resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==, tarball: https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.4.tgz} + resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==} dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 @@ -3490,7 +3677,7 @@ packages: dev: true /@microsoft/api-extractor@7.52.1(@types/node@16.18.101): - resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==, tarball: https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.1.tgz} + resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==} hasBin: true dependencies: '@microsoft/api-extractor-model': 7.30.4(@types/node@16.18.101) @@ -3511,7 +3698,7 @@ packages: dev: true /@microsoft/api-extractor@7.52.1(@types/node@20.17.24): - resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==, tarball: https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.1.tgz} + resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==} hasBin: true dependencies: '@microsoft/api-extractor-model': 7.30.4(@types/node@20.17.24) @@ -3532,7 +3719,7 @@ packages: dev: true /@microsoft/tsdoc-config@0.17.1: - resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==, tarball: https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz} + resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} dependencies: '@microsoft/tsdoc': 0.15.1 ajv: 8.12.0 @@ -3541,53 +3728,53 @@ packages: dev: true /@microsoft/tsdoc@0.15.1: - resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==, tarball: https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz} + resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} dev: true /@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3: - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz} + resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} cpu: [arm64] os: [darwin] dev: true optional: true /@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3: - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz} + resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} cpu: [x64] os: [darwin] dev: true optional: true /@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3: - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz} + resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} cpu: [arm64] os: [linux] dev: true optional: true /@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3: - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz} + resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} cpu: [arm] os: [linux] dev: true optional: true /@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3: - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz} + resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} cpu: [x64] os: [linux] dev: true optional: true /@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3: - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==, tarball: https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz} + resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} cpu: [x64] os: [win32] dev: true optional: true /@napi-rs/nice-android-arm-eabi@1.0.1: - resolution: {integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==, tarball: https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz} + resolution: {integrity: sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==} engines: {node: '>= 10'} cpu: [arm] os: [android] @@ -3595,7 +3782,7 @@ packages: optional: true /@napi-rs/nice-android-arm64@1.0.1: - resolution: {integrity: sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==, tarball: https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz} + resolution: {integrity: sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==} engines: {node: '>= 10'} cpu: [arm64] os: [android] @@ -3603,7 +3790,7 @@ packages: optional: true /@napi-rs/nice-darwin-arm64@1.0.1: - resolution: {integrity: sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==, tarball: https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz} + resolution: {integrity: sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -3611,7 +3798,7 @@ packages: optional: true /@napi-rs/nice-darwin-x64@1.0.1: - resolution: {integrity: sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==, tarball: https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz} + resolution: {integrity: sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -3619,7 +3806,7 @@ packages: optional: true /@napi-rs/nice-freebsd-x64@1.0.1: - resolution: {integrity: sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==, tarball: https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz} + resolution: {integrity: sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] @@ -3627,7 +3814,7 @@ packages: optional: true /@napi-rs/nice-linux-arm-gnueabihf@1.0.1: - resolution: {integrity: sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz} + resolution: {integrity: sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -3635,7 +3822,7 @@ packages: optional: true /@napi-rs/nice-linux-arm64-gnu@1.0.1: - resolution: {integrity: sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz} + resolution: {integrity: sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3643,7 +3830,7 @@ packages: optional: true /@napi-rs/nice-linux-arm64-musl@1.0.1: - resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz} + resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3651,7 +3838,7 @@ packages: optional: true /@napi-rs/nice-linux-ppc64-gnu@1.0.1: - resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz} + resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] @@ -3659,7 +3846,7 @@ packages: optional: true /@napi-rs/nice-linux-riscv64-gnu@1.0.1: - resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz} + resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] @@ -3667,7 +3854,7 @@ packages: optional: true /@napi-rs/nice-linux-s390x-gnu@1.0.1: - resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz} + resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] @@ -3675,7 +3862,7 @@ packages: optional: true /@napi-rs/nice-linux-x64-gnu@1.0.1: - resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz} + resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3683,7 +3870,7 @@ packages: optional: true /@napi-rs/nice-linux-x64-musl@1.0.1: - resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==, tarball: https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz} + resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3691,7 +3878,7 @@ packages: optional: true /@napi-rs/nice-win32-arm64-msvc@1.0.1: - resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==, tarball: https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz} + resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -3699,7 +3886,7 @@ packages: optional: true /@napi-rs/nice-win32-ia32-msvc@1.0.1: - resolution: {integrity: sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==, tarball: https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz} + resolution: {integrity: sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -3707,7 +3894,7 @@ packages: optional: true /@napi-rs/nice-win32-x64-msvc@1.0.1: - resolution: {integrity: sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==, tarball: https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz} + resolution: {integrity: sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3715,7 +3902,7 @@ packages: optional: true /@napi-rs/nice@1.0.1: - resolution: {integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==, tarball: https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz} + resolution: {integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==} engines: {node: '>= 10'} optionalDependencies: '@napi-rs/nice-android-arm-eabi': 1.0.1 @@ -3737,32 +3924,32 @@ packages: dev: true optional: true - /@nginfra/angular-linking@1.0.0(@angular/compiler-cli@20.0.0-next.3): - resolution: {integrity: sha512-i4Wveg0UrCkdE9OPbfa8N7lsfzzF2hfaxlg8gTTIotOOek52lFDsSiLpj6wmQF0+dUmAtr+INqAaH2gzdnJZKg==, tarball: https://registry.npmjs.org/@nginfra/angular-linking/-/angular-linking-1.0.0.tgz} + /@nginfra/angular-linking@1.0.6(@angular/compiler-cli@20.0.0-next.4): + resolution: {integrity: sha512-DYrj4ul41hSN1IvvVYmvxAu3JIOfn4QK1le4u61kyCecMQP0zxW2jBD3pw11Ymd6PmsK7QxaqKY0BWiXEevAjA==} peerDependencies: '@angular/compiler-cli': '*' dependencies: - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) '@babel/core': 7.26.10 tinyglobby: 0.2.12 transitivePeerDependencies: - supports-color - /@ngtools/webpack@20.0.0-next.2(@angular/compiler-cli@20.0.0-next.3)(typescript@5.8.2)(webpack@5.98.0): - resolution: {integrity: sha512-Edr7kfYosxoHKpvABk1A28S2jlJQlz/7vf6E2VOK74d0sIbT+h6CgQulRlNOgi5jyH3qOldEgDm3iE+S5KMXxA==, tarball: https://registry.npmjs.org/@ngtools/webpack/-/webpack-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@ngtools/webpack@20.0.0-next.3(@angular/compiler-cli@20.0.0-next.4)(typescript@5.8.2)(webpack@5.98.0): + resolution: {integrity: sha512-aVfC9dckydLIjmFvmyoaI3rO1B8z5JysJ1/xlyejhSbKY0Wg6+5QuWMBuh9fnCJljnBucPGpu+EzBIxCKVC8Hw==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 typescript: 5.8.2 webpack: ^5.54.0 dependencies: - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) typescript: 5.8.2 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3770,12 +3957,12 @@ packages: dev: true /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 @@ -3783,7 +3970,7 @@ packages: dev: true /@npmcli/agent@2.2.2: - resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==, tarball: https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz} + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: agent-base: 7.1.1 @@ -3796,7 +3983,7 @@ packages: dev: true /@npmcli/agent@3.0.0: - resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==, tarball: https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz} + resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: agent-base: 7.1.1 @@ -3809,21 +3996,21 @@ packages: dev: true /@npmcli/fs@3.1.1: - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==, tarball: https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz} + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: semver: 7.7.1 dev: true /@npmcli/fs@4.0.0: - resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==, tarball: https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz} + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: semver: 7.7.1 dev: true /@npmcli/git@6.0.1: - resolution: {integrity: sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==, tarball: https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz} + resolution: {integrity: sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/promise-spawn': 8.0.1 @@ -3840,7 +4027,7 @@ packages: dev: true /@npmcli/installed-package-contents@3.0.0: - resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==, tarball: https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz} + resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dependencies: @@ -3849,12 +4036,12 @@ packages: dev: true /@npmcli/node-gyp@4.0.0: - resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==, tarball: https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz} + resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /@npmcli/package-json@6.0.1: - resolution: {integrity: sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==, tarball: https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz} + resolution: {integrity: sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/git': 6.0.1 @@ -3869,19 +4056,19 @@ packages: dev: true /@npmcli/promise-spawn@8.0.1: - resolution: {integrity: sha512-ZscqKtJqy7oj6MgXEJcHQ1om4utU0Q84QtC28UVuiO6ALSO9sDPanXdu6Wd1oYhItW8fx2u96zRFUE8BuPlAjA==, tarball: https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.1.tgz} + resolution: {integrity: sha512-ZscqKtJqy7oj6MgXEJcHQ1om4utU0Q84QtC28UVuiO6ALSO9sDPanXdu6Wd1oYhItW8fx2u96zRFUE8BuPlAjA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: which: 5.0.0 dev: true /@npmcli/redact@3.0.0: - resolution: {integrity: sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==, tarball: https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz} + resolution: {integrity: sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /@npmcli/run-script@9.0.1: - resolution: {integrity: sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==, tarball: https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz} + resolution: {integrity: sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/node-gyp': 4.0.0 @@ -3896,18 +4083,18 @@ packages: dev: true /@octokit/auth-token@2.5.0: - resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, tarball: https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz} + resolution: {integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==} dependencies: '@octokit/types': 6.41.0 dev: true /@octokit/auth-token@5.1.1: - resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==, tarball: https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz} + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} dev: true /@octokit/core@3.6.0: - resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, tarball: https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz} + resolution: {integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==} dependencies: '@octokit/auth-token': 2.5.0 '@octokit/graphql': 4.8.0 @@ -3921,7 +4108,7 @@ packages: dev: true /@octokit/core@6.1.3: - resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==, tarball: https://registry.npmjs.org/@octokit/core/-/core-6.1.3.tgz} + resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==} engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 5.1.1 @@ -3934,7 +4121,7 @@ packages: dev: true /@octokit/endpoint@10.1.2: - resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==, tarball: https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz} + resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} engines: {node: '>= 18'} dependencies: '@octokit/types': 13.7.0 @@ -3942,7 +4129,7 @@ packages: dev: true /@octokit/endpoint@6.0.12: - resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, tarball: https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz} + resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} dependencies: '@octokit/types': 6.41.0 is-plain-object: 5.0.0 @@ -3950,7 +4137,7 @@ packages: dev: true /@octokit/graphql@4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, tarball: https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz} + resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} dependencies: '@octokit/request': 5.6.3 '@octokit/types': 6.41.0 @@ -3960,7 +4147,7 @@ packages: dev: true /@octokit/graphql@8.1.2: - resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==, tarball: https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz} + resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==} engines: {node: '>= 18'} dependencies: '@octokit/request': 9.2.0 @@ -3969,15 +4156,15 @@ packages: dev: true /@octokit/openapi-types@12.11.0: - resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==, tarball: https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz} + resolution: {integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==} dev: true /@octokit/openapi-types@23.0.1: - resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==, tarball: https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz} + resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} dev: true /@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3): - resolution: {integrity: sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==, tarball: https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.0.tgz} + resolution: {integrity: sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' @@ -3987,7 +4174,7 @@ packages: dev: true /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): - resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==, tarball: https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz} + resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} peerDependencies: '@octokit/core': '>=2' dependencies: @@ -3996,7 +4183,7 @@ packages: dev: true /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==, tarball: https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz} + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} peerDependencies: '@octokit/core': '>=3' dependencies: @@ -4004,7 +4191,7 @@ packages: dev: true /@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.3): - resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==, tarball: https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz} + resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' @@ -4013,7 +4200,7 @@ packages: dev: true /@octokit/plugin-rest-endpoint-methods@13.3.0(@octokit/core@6.1.3): - resolution: {integrity: sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==, tarball: https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.0.tgz} + resolution: {integrity: sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' @@ -4023,7 +4210,7 @@ packages: dev: true /@octokit/plugin-rest-endpoint-methods@4.13.5(@octokit/core@3.6.0): - resolution: {integrity: sha512-kYKcWkFm4Ldk8bZai2RVEP1z97k1C/Ay2FN9FNTBg7JIyKoiiJjks4OtT6cuKeZX39tqa+C3J9xeYc6G+6g8uQ==, tarball: https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.13.5.tgz} + resolution: {integrity: sha512-kYKcWkFm4Ldk8bZai2RVEP1z97k1C/Ay2FN9FNTBg7JIyKoiiJjks4OtT6cuKeZX39tqa+C3J9xeYc6G+6g8uQ==} peerDependencies: '@octokit/core': '>=3' dependencies: @@ -4033,7 +4220,7 @@ packages: dev: true /@octokit/request-error@2.1.0: - resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, tarball: https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz} + resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} dependencies: '@octokit/types': 6.41.0 deprecation: 2.3.1 @@ -4041,14 +4228,14 @@ packages: dev: true /@octokit/request-error@6.1.6: - resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==, tarball: https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz} + resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==} engines: {node: '>= 18'} dependencies: '@octokit/types': 13.7.0 dev: true /@octokit/request@5.6.3: - resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, tarball: https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz} + resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 @@ -4061,7 +4248,7 @@ packages: dev: true /@octokit/request@9.2.0: - resolution: {integrity: sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==, tarball: https://registry.npmjs.org/@octokit/request/-/request-9.2.0.tgz} + resolution: {integrity: sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==} engines: {node: '>= 18'} dependencies: '@octokit/endpoint': 10.1.2 @@ -4072,7 +4259,7 @@ packages: dev: true /@octokit/rest@18.3.5: - resolution: {integrity: sha512-ZPeRms3WhWxQBEvoIh0zzf8xdU2FX0Capa7+lTca8YHmRsO3QNJzf1H3PcuKKsfgp91/xVDRtX91sTe1kexlbw==, tarball: https://registry.npmjs.org/@octokit/rest/-/rest-18.3.5.tgz} + resolution: {integrity: sha512-ZPeRms3WhWxQBEvoIh0zzf8xdU2FX0Capa7+lTca8YHmRsO3QNJzf1H3PcuKKsfgp91/xVDRtX91sTe1kexlbw==} dependencies: '@octokit/core': 3.6.0 '@octokit/plugin-paginate-rest': 2.21.3(@octokit/core@3.6.0) @@ -4083,7 +4270,7 @@ packages: dev: true /@octokit/rest@21.1.0: - resolution: {integrity: sha512-93iLxcKDJboUpmnUyeJ6cRIi7z7cqTZT1K7kRK4LobGxwTwpsa+2tQQbRQNGy7IFDEAmrtkf4F4wBj3D5rVlJQ==, tarball: https://registry.npmjs.org/@octokit/rest/-/rest-21.1.0.tgz} + resolution: {integrity: sha512-93iLxcKDJboUpmnUyeJ6cRIi7z7cqTZT1K7kRK4LobGxwTwpsa+2tQQbRQNGy7IFDEAmrtkf4F4wBj3D5rVlJQ==} engines: {node: '>= 18'} dependencies: '@octokit/core': 6.1.3 @@ -4093,24 +4280,24 @@ packages: dev: true /@octokit/types@13.7.0: - resolution: {integrity: sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==, tarball: https://registry.npmjs.org/@octokit/types/-/types-13.7.0.tgz} + resolution: {integrity: sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==} dependencies: '@octokit/openapi-types': 23.0.1 dev: true /@octokit/types@6.41.0: - resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==, tarball: https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz} + resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} dependencies: '@octokit/openapi-types': 12.11.0 dev: true /@opentelemetry/api@1.9.0: - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==, tarball: https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz} + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} dev: true /@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0): - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==, tarball: https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz} + resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -4119,7 +4306,7 @@ packages: dev: true /@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0): - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==, tarball: https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz} + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -4129,12 +4316,12 @@ packages: dev: true /@opentelemetry/semantic-conventions@1.28.0: - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==, tarball: https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz} + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} dev: true /@parcel/watcher-android-arm64@2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==, tarball: https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz} + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] @@ -4142,7 +4329,7 @@ packages: optional: true /@parcel/watcher-darwin-arm64@2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==, tarball: https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz} + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] @@ -4150,7 +4337,7 @@ packages: optional: true /@parcel/watcher-darwin-x64@2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==, tarball: https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz} + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] @@ -4158,7 +4345,7 @@ packages: optional: true /@parcel/watcher-freebsd-x64@2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==, tarball: https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz} + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] @@ -4166,7 +4353,7 @@ packages: optional: true /@parcel/watcher-linux-arm-glibc@2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==, tarball: https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz} + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] @@ -4174,7 +4361,7 @@ packages: optional: true /@parcel/watcher-linux-arm64-glibc@2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==, tarball: https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz} + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4182,7 +4369,7 @@ packages: optional: true /@parcel/watcher-linux-arm64-musl@2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==, tarball: https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz} + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4190,7 +4377,7 @@ packages: optional: true /@parcel/watcher-linux-x64-glibc@2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==, tarball: https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz} + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4198,7 +4385,7 @@ packages: optional: true /@parcel/watcher-linux-x64-musl@2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==, tarball: https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz} + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4206,7 +4393,7 @@ packages: optional: true /@parcel/watcher-win32-arm64@2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==, tarball: https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz} + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] @@ -4214,7 +4401,7 @@ packages: optional: true /@parcel/watcher-win32-ia32@2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==, tarball: https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz} + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] @@ -4222,7 +4409,7 @@ packages: optional: true /@parcel/watcher-win32-x64@2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==, tarball: https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz} + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] @@ -4230,7 +4417,7 @@ packages: optional: true /@parcel/watcher@2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==, tarball: https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz} + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} engines: {node: '>= 10.0.0'} dependencies: detect-libc: 1.0.3 @@ -4254,7 +4441,7 @@ packages: optional: true /@phenomnomnominal/tsquery@4.2.0(typescript@5.8.2): - resolution: {integrity: sha512-hR2U3uVcrrdkuG30ItQ+uFDs4ncZAybxWG0OjTE8ptPzVoU7GVeXpy+vMU8zX9EbmjGeITPw/su5HjYQyAH8bA==, tarball: https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.2.0.tgz} + resolution: {integrity: sha512-hR2U3uVcrrdkuG30ItQ+uFDs4ncZAybxWG0OjTE8ptPzVoU7GVeXpy+vMU8zX9EbmjGeITPw/su5HjYQyAH8bA==} peerDependencies: typescript: 5.8.2 dependencies: @@ -4263,56 +4450,56 @@ packages: dev: false /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} dev: true optional: true /@protobufjs/aspromise@1.1.2: - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, tarball: https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz} + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: true /@protobufjs/base64@1.1.2: - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, tarball: https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz} + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} dev: true /@protobufjs/codegen@2.0.4: - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, tarball: https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz} + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} dev: true /@protobufjs/eventemitter@1.1.0: - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, tarball: https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz} + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} dev: true /@protobufjs/fetch@1.1.0: - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, tarball: https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz} + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 dev: true /@protobufjs/float@1.0.2: - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, tarball: https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz} + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} dev: true /@protobufjs/inquire@1.1.0: - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, tarball: https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz} + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} dev: true /@protobufjs/path@1.1.2: - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, tarball: https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz} + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} dev: true /@protobufjs/pool@1.1.0: - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, tarball: https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz} + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} dev: true /@protobufjs/utf8@1.1.0: - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, tarball: https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz} + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: true /@rollup/plugin-commonjs@21.1.0(rollup@2.79.1): - resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==, tarball: https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.1.0.tgz} + resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.38.3 @@ -4328,7 +4515,7 @@ packages: dev: true /@rollup/plugin-node-resolve@13.3.0(rollup@2.79.1): - resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, tarball: https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 @@ -4343,7 +4530,7 @@ packages: dev: true /@rollup/pluginutils@3.1.0(rollup@2.79.1): - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, tarball: https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 @@ -4355,273 +4542,280 @@ packages: dev: true /@rollup/rollup-android-arm-eabi@4.34.9: - resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz} + resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} cpu: [arm] os: [android] dev: true optional: true - /@rollup/rollup-android-arm-eabi@4.36.0: - resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz} + /@rollup/rollup-android-arm-eabi@4.37.0: + resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} cpu: [arm] os: [android] dev: true optional: true /@rollup/rollup-android-arm64@4.34.9: - resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz} + resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} cpu: [arm64] os: [android] dev: true optional: true - /@rollup/rollup-android-arm64@4.36.0: - resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz} + /@rollup/rollup-android-arm64@4.37.0: + resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} cpu: [arm64] os: [android] dev: true optional: true /@rollup/rollup-darwin-arm64@4.34.9: - resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz} + resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} cpu: [arm64] os: [darwin] dev: true optional: true - /@rollup/rollup-darwin-arm64@4.36.0: - resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz} + /@rollup/rollup-darwin-arm64@4.37.0: + resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} cpu: [arm64] os: [darwin] dev: true optional: true /@rollup/rollup-darwin-x64@4.34.9: - resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz} + resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} cpu: [x64] os: [darwin] dev: true optional: true - /@rollup/rollup-darwin-x64@4.36.0: - resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz} + /@rollup/rollup-darwin-x64@4.37.0: + resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} cpu: [x64] os: [darwin] dev: true optional: true /@rollup/rollup-freebsd-arm64@4.34.9: - resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz} + resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} cpu: [arm64] os: [freebsd] dev: true optional: true - /@rollup/rollup-freebsd-arm64@4.36.0: - resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz} + /@rollup/rollup-freebsd-arm64@4.37.0: + resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} cpu: [arm64] os: [freebsd] dev: true optional: true /@rollup/rollup-freebsd-x64@4.34.9: - resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz} + resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} cpu: [x64] os: [freebsd] dev: true optional: true - /@rollup/rollup-freebsd-x64@4.36.0: - resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz} + /@rollup/rollup-freebsd-x64@4.37.0: + resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} cpu: [x64] os: [freebsd] dev: true optional: true /@rollup/rollup-linux-arm-gnueabihf@4.34.9: - resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz} + resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} cpu: [arm] os: [linux] dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.36.0: - resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz} + /@rollup/rollup-linux-arm-gnueabihf@4.37.0: + resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} cpu: [arm] os: [linux] dev: true optional: true /@rollup/rollup-linux-arm-musleabihf@4.34.9: - resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz} + resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} cpu: [arm] os: [linux] dev: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.36.0: - resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz} + /@rollup/rollup-linux-arm-musleabihf@4.37.0: + resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} cpu: [arm] os: [linux] dev: true optional: true /@rollup/rollup-linux-arm64-gnu@4.34.9: - resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz} + resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} cpu: [arm64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.36.0: - resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz} + /@rollup/rollup-linux-arm64-gnu@4.37.0: + resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} cpu: [arm64] os: [linux] dev: true optional: true /@rollup/rollup-linux-arm64-musl@4.34.9: - resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz} + resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} cpu: [arm64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.36.0: - resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz} + /@rollup/rollup-linux-arm64-musl@4.37.0: + resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} cpu: [arm64] os: [linux] dev: true optional: true /@rollup/rollup-linux-loongarch64-gnu@4.34.9: - resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz} + resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} cpu: [loong64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-loongarch64-gnu@4.36.0: - resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz} + /@rollup/rollup-linux-loongarch64-gnu@4.37.0: + resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} cpu: [loong64] os: [linux] dev: true optional: true /@rollup/rollup-linux-powerpc64le-gnu@4.34.9: - resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz} + resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} cpu: [ppc64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.36.0: - resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz} + /@rollup/rollup-linux-powerpc64le-gnu@4.37.0: + resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} cpu: [ppc64] os: [linux] dev: true optional: true /@rollup/rollup-linux-riscv64-gnu@4.34.9: - resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz} + resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} cpu: [riscv64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.36.0: - resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz} + /@rollup/rollup-linux-riscv64-gnu@4.37.0: + resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} + cpu: [riscv64] + os: [linux] + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-musl@4.37.0: + resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} cpu: [riscv64] os: [linux] dev: true optional: true /@rollup/rollup-linux-s390x-gnu@4.34.9: - resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz} + resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} cpu: [s390x] os: [linux] dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.36.0: - resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz} + /@rollup/rollup-linux-s390x-gnu@4.37.0: + resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} cpu: [s390x] os: [linux] dev: true optional: true /@rollup/rollup-linux-x64-gnu@4.34.9: - resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz} + resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} cpu: [x64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.36.0: - resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz} + /@rollup/rollup-linux-x64-gnu@4.37.0: + resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} cpu: [x64] os: [linux] dev: true optional: true /@rollup/rollup-linux-x64-musl@4.34.9: - resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz} + resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} cpu: [x64] os: [linux] dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.36.0: - resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz} + /@rollup/rollup-linux-x64-musl@4.37.0: + resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} cpu: [x64] os: [linux] dev: true optional: true /@rollup/rollup-win32-arm64-msvc@4.34.9: - resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz} + resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} cpu: [arm64] os: [win32] dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.36.0: - resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz} + /@rollup/rollup-win32-arm64-msvc@4.37.0: + resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} cpu: [arm64] os: [win32] dev: true optional: true /@rollup/rollup-win32-ia32-msvc@4.34.9: - resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz} + resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} cpu: [ia32] os: [win32] dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.36.0: - resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz} + /@rollup/rollup-win32-ia32-msvc@4.37.0: + resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} cpu: [ia32] os: [win32] dev: true optional: true /@rollup/rollup-win32-x64-msvc@4.34.9: - resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz} + resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} cpu: [x64] os: [win32] dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.36.0: - resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz} + /@rollup/rollup-win32-x64-msvc@4.37.0: + resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} cpu: [x64] os: [win32] dev: true optional: true /@rushstack/node-core-library@5.12.0(@types/node@16.18.101): - resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==, tarball: https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.12.0.tgz} + resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4631,7 +4825,7 @@ packages: '@types/node': 16.18.101 ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) + ajv-formats: 3.0.1 fs-extra: 11.3.0 import-lazy: 4.0.0 jju: 1.4.0 @@ -4640,7 +4834,7 @@ packages: dev: true /@rushstack/node-core-library@5.12.0(@types/node@20.17.24): - resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==, tarball: https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.12.0.tgz} + resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4650,7 +4844,7 @@ packages: '@types/node': 20.17.24 ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) + ajv-formats: 3.0.1 fs-extra: 11.3.0 import-lazy: 4.0.0 jju: 1.4.0 @@ -4659,14 +4853,14 @@ packages: dev: true /@rushstack/rig-package@0.5.3: - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==, tarball: https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz} + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 dev: true /@rushstack/terminal@0.15.1(@types/node@16.18.101): - resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==, tarball: https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.15.1.tgz} + resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4679,7 +4873,7 @@ packages: dev: true /@rushstack/terminal@0.15.1(@types/node@20.17.24): - resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==, tarball: https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.15.1.tgz} + resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4692,7 +4886,7 @@ packages: dev: true /@rushstack/ts-command-line@4.23.6(@types/node@16.18.101): - resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==, tarball: https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.6.tgz} + resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==} dependencies: '@rushstack/terminal': 0.15.1(@types/node@16.18.101) '@types/argparse': 1.0.38 @@ -4703,7 +4897,7 @@ packages: dev: true /@rushstack/ts-command-line@4.23.6(@types/node@20.17.24): - resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==, tarball: https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.6.tgz} + resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==} dependencies: '@rushstack/terminal': 0.15.1(@types/node@20.17.24) '@types/argparse': 1.0.38 @@ -4713,36 +4907,36 @@ packages: - '@types/node' dev: true - /@schematics/angular@20.0.0-next.2: - resolution: {integrity: sha512-du8Ft+vEGelxt4BNuSHD2PZx+9fNgZpVFtu/4N+unsjImdaK5dOstaRXJkRmBy+DUr5z6V633rN9/q1tE14VPg==, tarball: https://registry.npmjs.org/@schematics/angular/-/angular-20.0.0-next.2.tgz} - engines: {node: ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + /@schematics/angular@20.0.0-next.3: + resolution: {integrity: sha512-QEkCset/k0s0jR7+BJYnI/UxpQV3Y9ORiG03XFx3/fRfs/0d8HeMxJgssUw2wa96kUxJZIzvPnYd6yYqm4tn0g==} + engines: {node: ^20.11.1 || >=22.11.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 20.0.0-next.2 - '@angular-devkit/schematics': 20.0.0-next.2 + '@angular-devkit/core': 20.0.0-next.3 + '@angular-devkit/schematics': 20.0.0-next.3 jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar dev: true /@sigstore/bundle@3.0.0: - resolution: {integrity: sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==, tarball: https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz} + resolution: {integrity: sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@sigstore/protobuf-specs': 0.3.2 dev: true /@sigstore/core@2.0.0: - resolution: {integrity: sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==, tarball: https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz} + resolution: {integrity: sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /@sigstore/protobuf-specs@0.3.2: - resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==, tarball: https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz} + resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} engines: {node: ^16.14.0 || >=18.0.0} dev: true /@sigstore/sign@3.0.0: - resolution: {integrity: sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==, tarball: https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz} + resolution: {integrity: sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@sigstore/bundle': 3.0.0 @@ -4756,7 +4950,7 @@ packages: dev: true /@sigstore/tuf@3.0.0: - resolution: {integrity: sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==, tarball: https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz} + resolution: {integrity: sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@sigstore/protobuf-specs': 0.3.2 @@ -4766,7 +4960,7 @@ packages: dev: true /@sigstore/verify@2.0.0: - resolution: {integrity: sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==, tarball: https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz} + resolution: {integrity: sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@sigstore/bundle': 3.0.0 @@ -4775,54 +4969,54 @@ packages: dev: true /@sindresorhus/is@0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==, tarball: https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz} + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} dev: true /@socket.io/component-emitter@3.1.2: - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==, tarball: https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz} + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} dev: true /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==, tarball: https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz} + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} dependencies: defer-to-connect: 1.1.3 dev: true /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz} + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} dev: true /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz} + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true /@tsconfig/node10@1.0.11: - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, tarball: https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz} + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} dev: true /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, tarball: https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz} + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} dev: true /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, tarball: https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz} + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, tarball: https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz} + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true /@tufjs/canonical-json@2.0.0: - resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==, tarball: https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz} + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} dev: true /@tufjs/models@3.0.1: - resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==, tarball: https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz} + resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@tufjs/canonical-json': 2.0.0 @@ -4830,63 +5024,63 @@ packages: dev: true /@types/archiver@5.3.4: - resolution: {integrity: sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==, tarball: https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz} + resolution: {integrity: sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==} dependencies: '@types/readdir-glob': 1.1.5 dev: true /@types/argparse@1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==, tarball: https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz} + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, tarball: https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz} + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 dev: true /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, tarball: https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz} + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, tarball: https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz} + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 dev: true /@types/babel__traverse@7.20.6: - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, tarball: https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz} + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 dev: true /@types/big.js@6.2.2: - resolution: {integrity: sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA==, tarball: https://registry.npmjs.org/@types/big.js/-/big.js-6.2.2.tgz} + resolution: {integrity: sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA==} dev: true /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, tarball: https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz} + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 '@types/node': 20.17.24 dev: true /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==, tarball: https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz} + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: '@types/node': 20.17.24 dev: true /@types/browser-sync@2.29.0: - resolution: {integrity: sha512-d2V8FDX/LbDCSm343N2VChzDxvll0h76I8oSigYpdLgPDmcdcR6fywTggKBkUiDM3qAbHOq7NZvepj/HJM5e2g==, tarball: https://registry.npmjs.org/@types/browser-sync/-/browser-sync-2.29.0.tgz} + resolution: {integrity: sha512-d2V8FDX/LbDCSm343N2VChzDxvll0h76I8oSigYpdLgPDmcdcR6fywTggKBkUiDM3qAbHOq7NZvepj/HJM5e2g==} dependencies: '@types/micromatch': 2.3.35 '@types/node': 20.17.24 @@ -4895,62 +5089,62 @@ packages: dev: true /@types/caseless@0.12.5: - resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==, tarball: https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz} + resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} dev: true /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==, tarball: https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz} + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.19.5 '@types/node': 20.17.24 dev: true /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, tarball: https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz} + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: '@types/node': 20.17.24 dev: true /@types/cookie@0.4.1: - resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==, tarball: https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz} + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true /@types/cors@2.8.17: - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==, tarball: https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz} + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: '@types/node': 20.17.24 dev: true /@types/duplexify@3.6.4: - resolution: {integrity: sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg==, tarball: https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.4.tgz} + resolution: {integrity: sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg==} dependencies: '@types/node': 20.17.24 dev: true /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, tarball: https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: '@types/eslint': 9.6.1 '@types/estree': 1.0.6 dev: true /@types/eslint@9.6.1: - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==, tarball: https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz} + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} dependencies: '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 dev: true /@types/estree@0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz} + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true /@types/estree@1.0.6: - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz} + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} dev: true /@types/express-serve-static-core@4.19.5: - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==, tarball: https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz} + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: '@types/node': 20.17.24 '@types/qs': 6.9.15 @@ -4959,7 +5153,7 @@ packages: dev: true /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, tarball: https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz} + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.5 @@ -4968,158 +5162,158 @@ packages: dev: true /@types/fs-extra@9.0.13: - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==, tarball: https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz} + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: '@types/node': 20.17.24 dev: true /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, tarball: https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz} + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 '@types/node': 20.17.24 dev: true /@types/google.maps@3.55.10: - resolution: {integrity: sha512-XbDu2MIvcKgN+MBrufjWcsQRtXTbrBGBKperbhMLnPSq4770+pvlR66Oqq/Ub4AVkmGc9QciCfwPZpVCLaKAOw==, tarball: https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.10.tgz} + resolution: {integrity: sha512-XbDu2MIvcKgN+MBrufjWcsQRtXTbrBGBKperbhMLnPSq4770+pvlR66Oqq/Ub4AVkmGc9QciCfwPZpVCLaKAOw==} dev: false /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, tarball: https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz} + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} dev: true /@types/http-proxy@1.17.15: - resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, tarball: https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz} + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} dependencies: '@types/node': 20.17.24 dev: true /@types/is-windows@1.0.2: - resolution: {integrity: sha512-Qt86FJkakTwcZR+r08JSrOtw1g05EhZwSKRu9S5tu8pXulFRl06KS2fYAoxE32fc3gVXkpwlYIxUkjFIusvyFQ==, tarball: https://registry.npmjs.org/@types/is-windows/-/is-windows-1.0.2.tgz} + resolution: {integrity: sha512-Qt86FJkakTwcZR+r08JSrOtw1g05EhZwSKRu9S5tu8pXulFRl06KS2fYAoxE32fc3gVXkpwlYIxUkjFIusvyFQ==} dev: true /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, tarball: https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true /@types/jasmine@4.6.4: - resolution: {integrity: sha512-qCw5sVW+ylTnrEhe5kfX4l6MgU9REXIVDa/lWEcvTOUmd+LqDYwyjovDq+Zk9blElaEHOj1URDQ/djEBVRf+pw==, tarball: https://registry.npmjs.org/@types/jasmine/-/jasmine-4.6.4.tgz} + resolution: {integrity: sha512-qCw5sVW+ylTnrEhe5kfX4l6MgU9REXIVDa/lWEcvTOUmd+LqDYwyjovDq+Zk9blElaEHOj1URDQ/djEBVRf+pw==} dev: true /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz} + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, tarball: https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz} + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: '@types/node': 20.17.24 dev: true /@types/long@4.0.2: - resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, tarball: https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz} + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} dev: true /@types/luxon@3.4.2: - resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==, tarball: https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz} + resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} dev: true /@types/marked@2.0.5: - resolution: {integrity: sha512-shRZ7XnYFD/8n8zSjKvFdto1QNSf4tONZIlNEZGrJe8GsOE8DL/hG1Hbl8gZlfLnjS7+f5tZGIaTgfpyW38h4w==, tarball: https://registry.npmjs.org/@types/marked/-/marked-2.0.5.tgz} + resolution: {integrity: sha512-shRZ7XnYFD/8n8zSjKvFdto1QNSf4tONZIlNEZGrJe8GsOE8DL/hG1Hbl8gZlfLnjS7+f5tZGIaTgfpyW38h4w==} dev: true /@types/micromatch@2.3.35: - resolution: {integrity: sha512-J749bHo/Zu56w0G0NI/IGHLQPiSsjx//0zJhfEVAN95K/xM5C8ZDmhkXtU3qns0sBOao7HuQzr8XV1/2o5LbXA==, tarball: https://registry.npmjs.org/@types/micromatch/-/micromatch-2.3.35.tgz} + resolution: {integrity: sha512-J749bHo/Zu56w0G0NI/IGHLQPiSsjx//0zJhfEVAN95K/xM5C8ZDmhkXtU3qns0sBOao7HuQzr8XV1/2o5LbXA==} dependencies: '@types/parse-glob': 3.0.32 dev: true /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==, tarball: https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz} + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, tarball: https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz} + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, tarball: https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz} + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true /@types/node-fetch@2.6.11: - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, tarball: https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz} + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} dependencies: '@types/node': 20.17.24 form-data: 4.0.0 dev: true /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, tarball: https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz} + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: '@types/node': 20.17.24 dev: true /@types/node@10.17.60: - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==, tarball: https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz} + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true /@types/node@16.18.101: - resolution: {integrity: sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==, tarball: https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz} + resolution: {integrity: sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==} dev: true /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, tarball: https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz} + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true /@types/node@20.17.24: - resolution: {integrity: sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==, tarball: https://registry.npmjs.org/@types/node/-/node-20.17.24.tgz} + resolution: {integrity: sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==} dependencies: undici-types: 6.19.8 dev: true /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, tarball: https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz} + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true /@types/parse-glob@3.0.32: - resolution: {integrity: sha512-n4xmml2WKR12XeQprN8L/sfiVPa8FHS3k+fxp4kSr/PA2GsGUgFND+bvISJxM0y5QdvzNEGjEVU3eIrcKks/pA==, tarball: https://registry.npmjs.org/@types/parse-glob/-/parse-glob-3.0.32.tgz} + resolution: {integrity: sha512-n4xmml2WKR12XeQprN8L/sfiVPa8FHS3k+fxp4kSr/PA2GsGUgFND+bvISJxM0y5QdvzNEGjEVU3eIrcKks/pA==} dev: true /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, tarball: https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz} + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} dev: true /@types/ps-tree@1.1.6: - resolution: {integrity: sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==, tarball: https://registry.npmjs.org/@types/ps-tree/-/ps-tree-1.1.6.tgz} + resolution: {integrity: sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==} dev: true /@types/pumpify@1.4.4: - resolution: {integrity: sha512-+cWbQUecD04MQYkjNBhPmcUIP368aloYmqm+ImdMKA8rMpxRNAhZAD6gIj+sAVTF1DliqrT/qUp6aGNi/9U3tw==, tarball: https://registry.npmjs.org/@types/pumpify/-/pumpify-1.4.4.tgz} + resolution: {integrity: sha512-+cWbQUecD04MQYkjNBhPmcUIP368aloYmqm+ImdMKA8rMpxRNAhZAD6gIj+sAVTF1DliqrT/qUp6aGNi/9U3tw==} dependencies: '@types/duplexify': 3.6.4 '@types/node': 20.17.24 dev: true /@types/q@0.0.32: - resolution: {integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==, tarball: https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz} + resolution: {integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==} dev: true /@types/qs@6.9.15: - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==, tarball: https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz} + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} dev: true /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, tarball: https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz} + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true /@types/readdir-glob@1.1.5: - resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==, tarball: https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.5.tgz} + resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} dependencies: '@types/node': 20.17.24 dev: true /@types/request@2.48.12: - resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==, tarball: https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz} + resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} dependencies: '@types/caseless': 0.12.5 '@types/node': 20.17.24 @@ -5128,51 +5322,51 @@ packages: dev: true /@types/resolve@1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, tarball: https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz} + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: '@types/node': 20.17.24 dev: true /@types/responselike@1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, tarball: https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz} + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: '@types/node': 20.17.24 dev: true /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, tarball: https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz} + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} dev: true /@types/selenium-webdriver@3.0.26: - resolution: {integrity: sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==, tarball: https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.26.tgz} + resolution: {integrity: sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==} dev: true /@types/selenium-webdriver@4.1.23: - resolution: {integrity: sha512-PgreEfCfafYLyTwvJTZvOspCq3JABnS51e+NSFFL5yoiMO7h04lWgLfr10NA7nl/yZbz4m76rBfOOdDfleb7pQ==, tarball: https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-4.1.23.tgz} + resolution: {integrity: sha512-PgreEfCfafYLyTwvJTZvOspCq3JABnS51e+NSFFL5yoiMO7h04lWgLfr10NA7nl/yZbz4m76rBfOOdDfleb7pQ==} dependencies: '@types/node': 20.17.24 '@types/ws': 8.18.0 dev: true /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==, tarball: https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz} + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, tarball: https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz} + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 '@types/node': 20.17.24 dev: true /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==, tarball: https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz} + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} dependencies: '@types/express': 4.17.21 dev: true /@types/serve-static@1.15.7: - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==, tarball: https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz} + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 '@types/node': 20.17.24 @@ -5180,55 +5374,55 @@ packages: dev: true /@types/shelljs@0.8.15: - resolution: {integrity: sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==, tarball: https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.15.tgz} + resolution: {integrity: sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q==} dependencies: '@types/glob': 7.2.0 '@types/node': 20.17.24 dev: true /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==, tarball: https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz} + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: '@types/node': 20.17.24 dev: true /@types/stack-trace@0.0.33: - resolution: {integrity: sha512-O7in6531Bbvlb2KEsJ0dq0CHZvc3iWSR5ZYMtvGgnHA56VgriAN/AU2LorfmcvAl2xc9N5fbCTRyMRRl8nd74g==, tarball: https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.33.tgz} + resolution: {integrity: sha512-O7in6531Bbvlb2KEsJ0dq0CHZvc3iWSR5ZYMtvGgnHA56VgriAN/AU2LorfmcvAl2xc9N5fbCTRyMRRl8nd74g==} dev: true /@types/supports-color@8.1.3: - resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==, tarball: https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz} + resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} dev: true /@types/tmp@0.2.6: - resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==, tarball: https://registry.npmjs.org/@types/tmp/-/tmp-0.2.6.tgz} + resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} dev: true /@types/tough-cookie@4.0.5: - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==, tarball: https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz} + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} dev: true /@types/triple-beam@1.3.5: - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==, tarball: https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz} + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} dev: true /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, tarball: https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz} + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==, tarball: https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz} + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} dev: true /@types/vfile-message@2.0.0: - resolution: {integrity: sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==, tarball: https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz} + resolution: {integrity: sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==} deprecated: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed. dependencies: vfile-message: 4.0.2 dev: true /@types/vfile@3.0.2: - resolution: {integrity: sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==, tarball: https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz} + resolution: {integrity: sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==} dependencies: '@types/node': 20.17.24 '@types/unist': 3.0.2 @@ -5236,73 +5430,73 @@ packages: dev: true /@types/which@2.0.2: - resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==, tarball: https://registry.npmjs.org/@types/which/-/which-2.0.2.tgz} + resolution: {integrity: sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==} dev: true /@types/ws@8.18.0: - resolution: {integrity: sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==, tarball: https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz} + resolution: {integrity: sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==} dependencies: '@types/node': 20.17.24 dev: true /@types/yaml@1.9.7: - resolution: {integrity: sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==, tarball: https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz} + resolution: {integrity: sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==} deprecated: This is a stub types definition. yaml provides its own type definitions, so you do not need this installed. dependencies: yaml: 2.7.0 dev: true /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, tarball: https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz} + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: '@types/yargs-parser': 21.0.3 /@types/youtube@0.1.0: - resolution: {integrity: sha512-Pg33m3X2mFgdmhtvzOlAfUfgOa3341N3/2JCrVY/mXVxb4hagcqqEG6w4vGCfB64StQNWHSj/T8Eotb1Rko/FQ==, tarball: https://registry.npmjs.org/@types/youtube/-/youtube-0.1.0.tgz} + resolution: {integrity: sha512-Pg33m3X2mFgdmhtvzOlAfUfgOa3341N3/2JCrVY/mXVxb4hagcqqEG6w4vGCfB64StQNWHSj/T8Eotb1Rko/FQ==} dev: false /@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.0): - resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==, tarball: https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.0.0.tgz} + resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} peerDependencies: vite: ^6.0.0 dependencies: - vite: 6.2.0(@types/node@20.17.24)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2) + vite: 6.2.0(@types/node@20.17.24)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2) dev: true - /@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.2): - resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==, tarball: https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.0.0.tgz} + /@vitejs/plugin-basic-ssl@2.0.0(vite@6.2.3): + resolution: {integrity: sha512-gc9Tjg8bUxBVSTzeWT3Njc0Cl3PakHFKdNfABnZWiUgbxqmHDEn7uECv3fHVylxoYgNzAcmU7ZrILz+BwSo3sA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} peerDependencies: vite: ^6.0.0 dependencies: - vite: 6.2.2(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2) + vite: 6.2.3(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2) dev: true /@webassemblyjs/ast@1.14.1: - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==, tarball: https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz} + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} dependencies: '@webassemblyjs/helper-numbers': 1.13.2 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 dev: true /@webassemblyjs/floating-point-hex-parser@1.13.2: - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==, tarball: https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz} + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} dev: true /@webassemblyjs/helper-api-error@1.13.2: - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz} + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} dev: true /@webassemblyjs/helper-buffer@1.14.1: - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz} + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} dev: true /@webassemblyjs/helper-numbers@1.13.2: - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz} + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} dependencies: '@webassemblyjs/floating-point-hex-parser': 1.13.2 '@webassemblyjs/helper-api-error': 1.13.2 @@ -5310,11 +5504,11 @@ packages: dev: true /@webassemblyjs/helper-wasm-bytecode@1.13.2: - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz} + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} dev: true /@webassemblyjs/helper-wasm-section@1.14.1: - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz} + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} dependencies: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/helper-buffer': 1.14.1 @@ -5323,23 +5517,23 @@ packages: dev: true /@webassemblyjs/ieee754@1.13.2: - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==, tarball: https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz} + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} dependencies: '@xtuc/ieee754': 1.2.0 dev: true /@webassemblyjs/leb128@1.13.2: - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==, tarball: https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz} + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} dependencies: '@xtuc/long': 4.2.2 dev: true /@webassemblyjs/utf8@1.13.2: - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==, tarball: https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz} + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} dev: true /@webassemblyjs/wasm-edit@1.14.1: - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz} + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} dependencies: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/helper-buffer': 1.14.1 @@ -5352,7 +5546,7 @@ packages: dev: true /@webassemblyjs/wasm-gen@1.14.1: - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz} + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} dependencies: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/helper-wasm-bytecode': 1.13.2 @@ -5362,7 +5556,7 @@ packages: dev: true /@webassemblyjs/wasm-opt@1.14.1: - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz} + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} dependencies: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/helper-buffer': 1.14.1 @@ -5371,7 +5565,7 @@ packages: dev: true /@webassemblyjs/wasm-parser@1.14.1: - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz} + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} dependencies: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/helper-api-error': 1.13.2 @@ -5382,31 +5576,31 @@ packages: dev: true /@webassemblyjs/wast-printer@1.14.1: - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==, tarball: https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz} + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} dependencies: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 dev: true /@xmldom/xmldom@0.8.10: - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==, tarball: https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz} + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} dev: true /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, tarball: https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, tarball: https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz} + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} dev: true /@yarnpkg/lockfile@1.1.0: - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==, tarball: https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz} + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} dev: true /JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, tarball: https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz} + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true dependencies: jsonparse: 1.3.1 @@ -5414,31 +5608,31 @@ packages: dev: true /a-sync-waterfall@1.0.1: - resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==, tarball: https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz} + resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} dev: true /abbrev@1.0.9: - resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==, tarball: https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz} + resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} dev: true /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, tarball: https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz} + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true /abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==, tarball: https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz} + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, tarball: https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz} + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 dev: true /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, tarball: https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz} + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 @@ -5446,7 +5640,7 @@ packages: dev: true /acorn-jsx@5.3.2(acorn@7.4.1): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -5454,26 +5648,26 @@ packages: dev: true /acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz} + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} dependencies: acorn: 8.14.0 dev: true /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, tarball: https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz} + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true dev: true /acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, tarball: https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz} + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true dev: true /adjust-sourcemap-loader@4.0.0: - resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==, tarball: https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz} + resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} engines: {node: '>=8.9'} dependencies: loader-utils: 2.0.4 @@ -5481,16 +5675,16 @@ packages: dev: true /adm-zip@0.5.14: - resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==, tarball: https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.14.tgz} + resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} engines: {node: '>=12.0'} dev: true /after@0.8.2: - resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==, tarball: https://registry.npmjs.org/after/-/after-0.8.2.tgz} + resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==} dev: true /agent-base@6.0.2(supports-color@10.0.0): - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, tarball: https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz} + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: debug: 4.4.0(supports-color@10.0.0) @@ -5499,7 +5693,7 @@ packages: dev: true /agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==, tarball: https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz} + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: debug: 4.4.0(supports-color@10.0.0) @@ -5508,7 +5702,7 @@ packages: dev: true /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, tarball: https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz} + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 @@ -5516,7 +5710,7 @@ packages: dev: true /ajv-draft-04@1.0.0(ajv@8.13.0): - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==, tarball: https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz} + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: ajv: ^8.5.0 peerDependenciesMeta: @@ -5526,41 +5720,20 @@ packages: ajv: 8.13.0 dev: true - /ajv-formats@2.1.1(ajv@8.17.1): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, tarball: https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + /ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} dependencies: ajv: 8.17.1 dev: true - /ajv-formats@3.0.1(ajv@8.13.0): - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, tarball: https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.13.0 - dev: true - - /ajv-formats@3.0.1(ajv@8.17.1): - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, tarball: https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + /ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} dependencies: ajv: 8.17.1 dev: true /ajv-keywords@5.1.0(ajv@8.17.1): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, tarball: https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz} + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: ajv: ^8.8.2 dependencies: @@ -5569,7 +5742,7 @@ packages: dev: true /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz} + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -5578,7 +5751,7 @@ packages: dev: true /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz} + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -5587,7 +5760,7 @@ packages: dev: true /ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz} + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -5596,7 +5769,7 @@ packages: dev: true /ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz} + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.0.1 @@ -5605,94 +5778,94 @@ packages: dev: true /amdefine@1.0.1: - resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==, tarball: https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz} + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} dev: true optional: true /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, tarball: https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz} + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 dev: true /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz} + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} dev: true /ansi-escapes@3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==, tarball: https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz} + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} engines: {node: '>=4'} dev: true /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, tarball: https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz} + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true /ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==, tarball: https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz} + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} dependencies: environment: 1.1.0 dev: true /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, tarball: https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz} + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} engines: {'0': node >= 0.8.0} hasBin: true dev: true /ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz} + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} dev: true /ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz} + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} dev: true /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz} + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true /ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz} + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} dev: true /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz} + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz} + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true /ansicolors@0.3.2: - resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==, tarball: https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz} + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} dev: true /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz} + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 @@ -5700,7 +5873,7 @@ packages: dev: true /archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==, tarball: https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz} + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} engines: {node: '>= 6'} dependencies: glob: 7.2.3 @@ -5716,7 +5889,7 @@ packages: dev: true /archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==, tarball: https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz} + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} engines: {node: '>= 10'} dependencies: glob: 7.2.3 @@ -5732,7 +5905,7 @@ packages: dev: true /archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==, tarball: https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz} + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 @@ -5745,59 +5918,59 @@ packages: dev: true /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, tarball: https://registry.npmjs.org/arg/-/arg-4.1.3.tgz} + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, tarball: https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz} + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz} + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, tarball: https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz} + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true /array-flatten@3.0.0: - resolution: {integrity: sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==, tarball: https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz} + resolution: {integrity: sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==} dev: true /array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==, tarball: https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz} + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} dependencies: array-uniq: 1.0.3 dev: true /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, tarball: https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz} + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true /array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==, tarball: https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz} + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} dev: true /arraybuffer.slice@0.0.7: - resolution: {integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==, tarball: https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz} + resolution: {integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==} dev: true /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, tarball: https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz} + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true /arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, tarball: https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz} + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} dev: true /as-array@1.0.0: - resolution: {integrity: sha512-yTEVeqmnVlLJV0j8IAz/mcMGbr88+yX9SqTxyFc1HJwmW8Zy347jEmWFIg34MRqCUS8CXRKy8a8B/9BaoYDW2w==, tarball: https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz} + resolution: {integrity: sha512-yTEVeqmnVlLJV0j8IAz/mcMGbr88+yX9SqTxyFc1HJwmW8Zy347jEmWFIg34MRqCUS8CXRKy8a8B/9BaoYDW2w==} dependencies: lodash.isarguments: 2.4.1 lodash.isobject: 2.4.1 @@ -5805,76 +5978,76 @@ packages: dev: true /as-array@2.0.0: - resolution: {integrity: sha512-1Sd1LrodN0XYxYeZcN1J4xYZvmvTwD5tDWaPUGPIzH1mFsmzsPnVtd2exWhecMjtZk/wYWjNZJiD3b1SLCeJqg==, tarball: https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz} + resolution: {integrity: sha512-1Sd1LrodN0XYxYeZcN1J4xYZvmvTwD5tDWaPUGPIzH1mFsmzsPnVtd2exWhecMjtZk/wYWjNZJiD3b1SLCeJqg==} dev: true /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, tarball: https://registry.npmjs.org/asap/-/asap-2.0.6.tgz} + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true /asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, tarball: https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz} + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 dev: true /assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, tarball: https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz} + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} dev: true /ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, tarball: https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz} + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} dependencies: tslib: 2.8.1 dev: true /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, tarball: https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz} + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true /async-each-series@0.1.1: - resolution: {integrity: sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==, tarball: https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz} + resolution: {integrity: sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==} engines: {node: '>=0.8.0'} dev: true /async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==, tarball: https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz} + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} dev: true /async@1.5.2: - resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==, tarball: https://registry.npmjs.org/async/-/async-1.5.2.tgz} + resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} dev: true /async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==, tarball: https://registry.npmjs.org/async/-/async-2.6.4.tgz} + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: lodash: 4.17.21 dev: true /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, tarball: https://registry.npmjs.org/async/-/async-3.2.5.tgz} + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, tarball: https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz} + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, tarball: https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz} + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} dev: true /atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, tarball: https://registry.npmjs.org/atob/-/atob-2.1.2.tgz} + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} hasBin: true dev: true /autoprefixer@10.4.21(postcss@8.5.3): - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==, tarball: https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz} + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -5890,15 +6063,15 @@ packages: dev: true /aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, tarball: https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz} + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true /aws4@1.13.0: - resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==, tarball: https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz} + resolution: {integrity: sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==} dev: true /axios@0.21.4(debug@4.3.2): - resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==, tarball: https://registry.npmjs.org/axios/-/axios-0.21.4.tgz} + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: follow-redirects: 1.15.6(debug@4.3.2) transitivePeerDependencies: @@ -5906,7 +6079,7 @@ packages: dev: true /babel-loader@10.0.0(@babel/core@7.26.10)(webpack@5.98.0): - resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==, tarball: https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz} + resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} peerDependencies: '@babel/core': ^7.12.0 @@ -5914,11 +6087,11 @@ packages: dependencies: '@babel/core': 7.26.10 find-up: 5.0.0 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.10): - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz} + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: @@ -5931,7 +6104,7 @@ packages: dev: true /babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz} + resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: @@ -5943,7 +6116,7 @@ packages: dev: true /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.10): - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz} + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: @@ -5954,62 +6127,62 @@ packages: dev: true /backo2@1.0.2: - resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==, tarball: https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz} + resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} dev: true /bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==, tarball: https://registry.npmjs.org/bail/-/bail-1.0.5.tgz} + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} dev: true /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz} + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} dev: true /base64-arraybuffer@0.1.5: - resolution: {integrity: sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==, tarball: https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz} + resolution: {integrity: sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==} engines: {node: '>= 0.6.0'} dev: true /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, tarball: https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz} + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true /base64id@1.0.0: - resolution: {integrity: sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw==, tarball: https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz} + resolution: {integrity: sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw==} engines: {node: '>= 0.4.0'} dev: true /base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==, tarball: https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz} + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} dev: true /basic-auth-connect@1.0.0: - resolution: {integrity: sha512-kiV+/DTgVro4aZifY/hwRwALBISViL5NP4aReaR2EVJEObpbUBHIkdJh/YpcoEiYt7nBodZ6U2ajZeZvSxUCCg==, tarball: https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz} + resolution: {integrity: sha512-kiV+/DTgVro4aZifY/hwRwALBISViL5NP4aReaR2EVJEObpbUBHIkdJh/YpcoEiYt7nBodZ6U2ajZeZvSxUCCg==} dev: true /basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, tarball: https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz} + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} dependencies: safe-buffer: 5.1.2 dev: true /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, tarball: https://registry.npmjs.org/batch/-/batch-0.6.1.tgz} + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: true /bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, tarball: https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz} + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 dev: true /beasties@0.2.0: - resolution: {integrity: sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==, tarball: https://registry.npmjs.org/beasties/-/beasties-0.2.0.tgz} + resolution: {integrity: sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==} engines: {node: '>=14.0.0'} dependencies: css-select: 5.1.0 @@ -6023,15 +6196,15 @@ packages: dev: true /before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==, tarball: https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz} + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true /before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==, tarball: https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz} + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} dev: true /bent@7.3.12: - resolution: {integrity: sha512-T3yrKnVGB63zRuoco/7Ybl7BwwGZR0lceoVG5XmQyMIH9s19SV5m+a8qam4if0zQuAmOQTyPTPmsQBdAorGK3w==, tarball: https://registry.npmjs.org/bent/-/bent-7.3.12.tgz} + resolution: {integrity: sha512-T3yrKnVGB63zRuoco/7Ybl7BwwGZR0lceoVG5XmQyMIH9s19SV5m+a8qam4if0zQuAmOQTyPTPmsQBdAorGK3w==} dependencies: bytesish: 0.4.4 caseless: 0.12.0 @@ -6039,42 +6212,42 @@ packages: dev: false /better-assert@1.0.2: - resolution: {integrity: sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==, tarball: https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz} + resolution: {integrity: sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==} dependencies: callsite: 1.0.0 dev: true /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==, tarball: https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz} + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} dev: true /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, tarball: https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz} + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true /big.js@6.2.2: - resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==, tarball: https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz} + resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} dev: true /bignumber.js@9.1.2: - resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==, tarball: https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz} + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} dev: true /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, tarball: https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz} + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true /binary@0.3.0: - resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==, tarball: https://registry.npmjs.org/binary/-/binary-0.3.0.tgz} + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} dependencies: buffers: 0.1.1 chainsaw: 0.1.0 dev: true /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, tarball: https://registry.npmjs.org/bl/-/bl-4.1.0.tgz} + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 @@ -6082,15 +6255,15 @@ packages: dev: true /blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==, tarball: https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz} + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} dev: true /blob@0.0.5: - resolution: {integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==, tarball: https://registry.npmjs.org/blob/-/blob-0.0.5.tgz} + resolution: {integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==} dev: true /blocking-proxy@1.0.1: - resolution: {integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==, tarball: https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz} + resolution: {integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==} engines: {node: '>=6.9.x'} hasBin: true dependencies: @@ -6098,11 +6271,11 @@ packages: dev: true /bluebird@3.4.7: - resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==, tarball: https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz} + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} dev: true /body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, tarball: https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz} + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -6122,18 +6295,18 @@ packages: dev: true /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==, tarball: https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz} + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 dev: true /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz} + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true /boxen@4.2.0: - resolution: {integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==, tarball: https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz} + resolution: {integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==} engines: {node: '>=8'} dependencies: ansi-align: 3.0.1 @@ -6147,7 +6320,7 @@ packages: dev: true /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==, tarball: https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz} + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} dependencies: ansi-align: 3.0.1 @@ -6161,26 +6334,26 @@ packages: dev: true /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz} + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true /braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, tarball: https://registry.npmjs.org/braces/-/braces-3.0.3.tgz} + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: fill-range: 7.1.1 dev: true /browser-sync-client@2.26.13: - resolution: {integrity: sha512-p2VbZoYrpuDhkreq+/Sv1MkToHklh7T1OaIntDwpG6Iy2q/XkBcgwPcWjX+WwRNiZjN8MEehxIjEUh12LweLmQ==, tarball: https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.13.tgz} + resolution: {integrity: sha512-p2VbZoYrpuDhkreq+/Sv1MkToHklh7T1OaIntDwpG6Iy2q/XkBcgwPcWjX+WwRNiZjN8MEehxIjEUh12LweLmQ==} engines: {node: '>=8.0.0'} dependencies: etag: 1.8.1 @@ -6190,7 +6363,7 @@ packages: dev: true /browser-sync-ui@2.29.3: - resolution: {integrity: sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==, tarball: https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz} + resolution: {integrity: sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==} dependencies: async-each-series: 0.1.1 chalk: 4.1.2 @@ -6206,7 +6379,7 @@ packages: dev: true /browser-sync-ui@3.0.2: - resolution: {integrity: sha512-V3FwWAI+abVbFLTyJjXJlCMBwjc3GXf/BPGfwO2fMFACWbIGW9/4SrBOFYEOOtqzCjQE0Di+U3VIb7eES4omNA==, tarball: https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.2.tgz} + resolution: {integrity: sha512-V3FwWAI+abVbFLTyJjXJlCMBwjc3GXf/BPGfwO2fMFACWbIGW9/4SrBOFYEOOtqzCjQE0Di+U3VIb7eES4omNA==} dependencies: async-each-series: 0.1.1 chalk: 4.1.2 @@ -6222,7 +6395,7 @@ packages: dev: true /browser-sync@2.26.13: - resolution: {integrity: sha512-JPYLTngIzI+Dzx+StSSlMtF+Q9yjdh58HW6bMFqkFXuzQkJL8FCvp4lozlS6BbECZcsM2Gmlgp0uhEjvl18X4w==, tarball: https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.13.tgz} + resolution: {integrity: sha512-JPYLTngIzI+Dzx+StSSlMtF+Q9yjdh58HW6bMFqkFXuzQkJL8FCvp4lozlS6BbECZcsM2Gmlgp0uhEjvl18X4w==} engines: {node: '>= 8.0.0'} hasBin: true dependencies: @@ -6264,7 +6437,7 @@ packages: dev: true /browser-sync@3.0.2: - resolution: {integrity: sha512-PC9c7aWJFVR4IFySrJxOqLwB9ENn3/TaXCXtAa0SzLwocLN3qMjN+IatbjvtCX92BjNXsY6YWg9Eb7F3Wy255g==, tarball: https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.2.tgz} + resolution: {integrity: sha512-PC9c7aWJFVR4IFySrJxOqLwB9ENn3/TaXCXtAa0SzLwocLN3qMjN+IatbjvtCX92BjNXsY6YWg9Eb7F3Wy255g==} engines: {node: '>= 8.0.0'} hasBin: true dependencies: @@ -6304,7 +6477,7 @@ packages: dev: true /browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==, tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz} + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: @@ -6314,7 +6487,7 @@ packages: update-browserslist-db: 1.1.2(browserslist@4.24.4) /browserstack-local@1.5.5: - resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==, tarball: https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.5.5.tgz} + resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} dependencies: agent-base: 6.0.2(supports-color@10.0.0) https-proxy-agent: 5.0.0(supports-color@10.0.0) @@ -6326,7 +6499,7 @@ packages: dev: true /browserstack@1.5.3: - resolution: {integrity: sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==, tarball: https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz} + resolution: {integrity: sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==} dependencies: https-proxy-agent: 5.0.0(supports-color@10.0.0) transitivePeerDependencies: @@ -6334,7 +6507,7 @@ packages: dev: true /browserstack@1.6.1: - resolution: {integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==, tarball: https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz} + resolution: {integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==} dependencies: https-proxy-agent: 5.0.0(supports-color@10.0.0) transitivePeerDependencies: @@ -6342,74 +6515,74 @@ packages: dev: true /bs-recipes@1.3.4: - resolution: {integrity: sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==, tarball: https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz} + resolution: {integrity: sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==} dev: true /bs-snippet-injector@2.0.1: - resolution: {integrity: sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==, tarball: https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz} + resolution: {integrity: sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==} dev: true /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, tarball: https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz} + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true /buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, tarball: https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz} + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: true /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true /buffer-indexof-polyfill@1.0.2: - resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==, tarball: https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz} + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} engines: {node: '>=0.10'} dev: true /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz} + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true /buffers@0.1.1: - resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==, tarball: https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz} + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} engines: {node: '>=0.2.0'} dev: true /builtin-modules@1.1.1: - resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==, tarball: https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz} + resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} engines: {node: '>=0.10.0'} /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, tarball: https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz} + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} dev: true /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, tarball: https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz} + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} dependencies: run-applescript: 7.0.0 dev: true /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, tarball: https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz} + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} dev: true /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, tarball: https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz} + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} dev: true /bytesish@0.4.4: - resolution: {integrity: sha512-i4uu6M4zuMUiyfZN4RU2+i9+peJh//pXhd9x1oSe1LBkZ3LEbCoygu8W0bXTukU1Jme2txKuotpCZRaC3FLxcQ==, tarball: https://registry.npmjs.org/bytesish/-/bytesish-0.4.4.tgz} + resolution: {integrity: sha512-i4uu6M4zuMUiyfZN4RU2+i9+peJh//pXhd9x1oSe1LBkZ3LEbCoygu8W0bXTukU1Jme2txKuotpCZRaC3FLxcQ==} dev: false /c8@7.5.0: - resolution: {integrity: sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw==, tarball: https://registry.npmjs.org/c8/-/c8-7.5.0.tgz} + resolution: {integrity: sha512-GSkLsbvDr+FIwjNSJ8OwzWAyuznEYGTAd1pzb/Kr0FMLuV4vqYJTyjboDTwmlUNAG6jAU3PFWzqIdKrOt1D8tw==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -6429,7 +6602,7 @@ packages: dev: true /cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==, tarball: https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz} + resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.1 @@ -6447,7 +6620,7 @@ packages: dev: true /cacache@19.0.1: - resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==, tarball: https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz} + resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/fs': 4.0.0 @@ -6465,7 +6638,7 @@ packages: dev: true /cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==, tarball: https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz} + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} engines: {node: '>=8'} dependencies: clone-response: 1.0.3 @@ -6478,7 +6651,7 @@ packages: dev: true /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz} + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -6489,27 +6662,27 @@ packages: dev: true /call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==, tarball: https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz} + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} dev: true /callsite@1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==, tarball: https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz} + resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} dev: true /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz} + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true /camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, tarball: https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz} + resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} dependencies: no-case: 2.3.2 upper-case: 1.1.3 dev: true /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, tarball: https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz} + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} dependencies: camelcase: 5.3.1 @@ -6518,28 +6691,28 @@ packages: dev: true /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, tarball: https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz} + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} dev: true /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, tarball: https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz} + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} dev: true /caniuse-lite@1.0.30001706: - resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz} + resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} /canonical-path@0.0.2: - resolution: {integrity: sha512-y8EIEvL+IW81S4hRQWCRFtly+g1cc1G+wxHpjhYR9jI2+JJjWiaKnkH8mmvNHOMOAd9fzgARDO3AEzjuR51qaA==, tarball: https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz} + resolution: {integrity: sha512-y8EIEvL+IW81S4hRQWCRFtly+g1cc1G+wxHpjhYR9jI2+JJjWiaKnkH8mmvNHOMOAd9fzgARDO3AEzjuR51qaA==} dev: true /canonical-path@1.0.0: - resolution: {integrity: sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==, tarball: https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz} + resolution: {integrity: sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==} dev: true /cardinal@2.1.1: - resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==, tarball: https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz} + resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true dependencies: ansicolors: 0.3.2 @@ -6547,27 +6720,27 @@ packages: dev: true /caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, tarball: https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz} + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} /catharsis@0.8.11: - resolution: {integrity: sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==, tarball: https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz} + resolution: {integrity: sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==} engines: {node: '>= 8'} dependencies: lodash: 4.17.21 dev: true /ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==, tarball: https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz} + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} dev: true /chainsaw@0.1.0: - resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==, tarball: https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz} + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} dependencies: traverse: 0.3.9 dev: true /chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, tarball: https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz} + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} engines: {node: '>=0.10.0'} dependencies: ansi-styles: 2.2.1 @@ -6578,7 +6751,7 @@ packages: dev: true /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 @@ -6586,7 +6759,7 @@ packages: supports-color: 5.5.0 /chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, tarball: https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz} + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 @@ -6594,19 +6767,19 @@ packages: dev: true /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, tarball: https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz} + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true /change-case@3.0.0: - resolution: {integrity: sha512-O+B6Hvykrph2FAW3JxBU+sGgjEdhVn5Pu9x/GSPAq1yWiDQ5bjqzx1HlV16wUrb0pcOpBNHUD3h201gT3j22Ag==, tarball: https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz} + resolution: {integrity: sha512-O+B6Hvykrph2FAW3JxBU+sGgjEdhVn5Pu9x/GSPAq1yWiDQ5bjqzx1HlV16wUrb0pcOpBNHUD3h201gT3j22Ag==} dependencies: camel-case: 3.0.0 constant-case: 2.0.0 @@ -6629,19 +6802,19 @@ packages: dev: true /character-entities-html4@1.1.4: - resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==, tarball: https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz} + resolution: {integrity: sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==} dev: true /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, tarball: https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} dev: true /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, tarball: https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz} + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true /checkpoint-stream@0.1.2: - resolution: {integrity: sha512-eYXIcydL3mPjjEVLxHdi1ISgTwmxGJZ8vyJ3lYVvFTDRyTOZMTbKZdRJqiA7Gi1rPcwOyyzcrZmGLL8ff7e69w==, tarball: https://registry.npmjs.org/checkpoint-stream/-/checkpoint-stream-0.1.2.tgz} + resolution: {integrity: sha512-eYXIcydL3mPjjEVLxHdi1ISgTwmxGJZ8vyJ3lYVvFTDRyTOZMTbKZdRJqiA7Gi1rPcwOyyzcrZmGLL8ff7e69w==} dependencies: '@types/pumpify': 1.4.4 events-intercept: 2.0.0 @@ -6651,7 +6824,7 @@ packages: dev: true /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz} + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -6666,53 +6839,53 @@ packages: dev: true /chokidar@4.0.1: - resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz} + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} dependencies: readdirp: 4.0.2 /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, tarball: https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz} + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} dev: true /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, tarball: https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz} + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} dev: true /chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==, tarball: https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz} + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} dev: true /chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, tarball: https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz} + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} dev: true /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==, tarball: https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz} + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true /cjson@0.3.3: - resolution: {integrity: sha512-yKNcXi/Mvi5kb1uK0sahubYiyfUO2EUgOp4NcY9+8NX5Xmc+4yeNogZuLFkpLBBj7/QI9MjRUIuXrV9XOw5kVg==, tarball: https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz} + resolution: {integrity: sha512-yKNcXi/Mvi5kb1uK0sahubYiyfUO2EUgOp4NcY9+8NX5Xmc+4yeNogZuLFkpLBBj7/QI9MjRUIuXrV9XOw5kVg==} engines: {node: '>= 0.3.0'} dependencies: json-parse-helpfulerror: 1.0.3 dev: true /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, tarball: https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz} + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} dev: true /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==, tarball: https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz} + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} engines: {node: '>=6'} dev: true /cli-color@1.4.0: - resolution: {integrity: sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==, tarball: https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz} + resolution: {integrity: sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==} dependencies: ansi-regex: 2.1.1 d: 1.0.2 @@ -6723,40 +6896,40 @@ packages: dev: true /cli-cursor@2.1.0: - resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==, tarball: https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz} + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} engines: {node: '>=4'} dependencies: restore-cursor: 2.0.0 dev: true /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, tarball: https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz} + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true /cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==, tarball: https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz} + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} dependencies: restore-cursor: 5.1.0 dev: true /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, tarball: https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz} + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} dev: true /cli-table@0.3.11: - resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==, tarball: https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz} + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} engines: {node: '>= 0.2.0'} dependencies: colors: 1.0.3 dev: true /cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, tarball: https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz} + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} dependencies: slice-ansi: 5.0.0 @@ -6764,21 +6937,21 @@ packages: dev: true /cli-width@2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, tarball: https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz} + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} dev: true /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, tarball: https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz} + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} dev: true /cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, tarball: https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz} + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} dev: true /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz} + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -6786,7 +6959,7 @@ packages: dev: true /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz} + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -6794,7 +6967,7 @@ packages: dev: true /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz} + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} dependencies: string-width: 4.2.3 @@ -6802,7 +6975,7 @@ packages: wrap-ansi: 7.0.0 /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==, tarball: https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz} + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 @@ -6811,119 +6984,119 @@ packages: dev: true /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, tarball: https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz} + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 dev: true /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, tarball: https://registry.npmjs.org/clone/-/clone-1.0.4.tgz} + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: true /clonedeep@2.0.0: - resolution: {integrity: sha512-dbSwE7z2tJhF3511dzWqyKOKRA+5uQaILERDdQPxe/Eihm3atnkJRaz/t32fQqfmPBdJiICZD9iLSbaT47UbLw==, tarball: https://registry.npmjs.org/clonedeep/-/clonedeep-2.0.0.tgz} + resolution: {integrity: sha512-dbSwE7z2tJhF3511dzWqyKOKRA+5uQaILERDdQPxe/Eihm3atnkJRaz/t32fQqfmPBdJiICZD9iLSbaT47UbLw==} dev: true /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz} + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, tarball: https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz} + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 dev: true /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, tarball: https://registry.npmjs.org/color/-/color-3.2.1.tgz} + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} dependencies: color-convert: 1.9.3 color-string: 1.9.1 dev: true /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, tarball: https://registry.npmjs.org/colord/-/colord-2.9.3.tgz} + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: true /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, tarball: https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz} + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true /colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==, tarball: https://registry.npmjs.org/colors/-/colors-1.0.3.tgz} + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} engines: {node: '>=0.1.90'} dev: true /colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==, tarball: https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz} + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} dependencies: color: 3.2.1 text-hex: 1.0.0 dev: true /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, tarball: https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz} + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: true /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==, tarball: https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz} + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: true /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: https://registry.npmjs.org/commander/-/commander-2.20.3.tgz} + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, tarball: https://registry.npmjs.org/commander/-/commander-4.1.1.tgz} + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==, tarball: https://registry.npmjs.org/commander/-/commander-5.1.0.tgz} + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} dev: true /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, tarball: https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz} + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true /compare-semver@1.1.0: - resolution: {integrity: sha512-AENcdfhxsMCzzl+QRdOwMQeA8tZBEEacAmA4pGPoyco27G9sIaM98WNYkcToC9O0wIx1vE+1ErmaM4t0/fXhMw==, tarball: https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz} + resolution: {integrity: sha512-AENcdfhxsMCzzl+QRdOwMQeA8tZBEEacAmA4pGPoyco27G9sIaM98WNYkcToC9O0wIx1vE+1ErmaM4t0/fXhMw==} dependencies: semver: 5.7.2 dev: true /component-bind@1.0.0: - resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==, tarball: https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz} + resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==} dev: true /component-emitter@1.2.1: - resolution: {integrity: sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==, tarball: https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz} + resolution: {integrity: sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==} dev: true /component-inherit@0.0.3: - resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==, tarball: https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz} + resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==} dev: true /compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==, tarball: https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz} + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} engines: {node: '>= 10'} dependencies: buffer-crc32: 0.2.13 @@ -6933,14 +7106,14 @@ packages: dev: true /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, tarball: https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz} + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, tarball: https://registry.npmjs.org/compression/-/compression-1.7.4.tgz} + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 @@ -6955,10 +7128,10 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==, tarball: https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz} + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} dependencies: dot-prop: 5.3.0 @@ -6970,17 +7143,17 @@ packages: dev: true /connect-history-api-fallback@1.6.0: - resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==, tarball: https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz} + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} engines: {node: '>=0.8'} dev: true /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==, tarball: https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz} + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} dev: true /connect@3.6.6: - resolution: {integrity: sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==, tarball: https://registry.npmjs.org/connect/-/connect-3.6.6.tgz} + resolution: {integrity: sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==} engines: {node: '>= 0.10.0'} dependencies: debug: 2.6.9 @@ -6992,7 +7165,7 @@ packages: dev: true /connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==, tarball: https://registry.npmjs.org/connect/-/connect-3.7.0.tgz} + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} engines: {node: '>= 0.10.0'} dependencies: debug: 2.6.9 @@ -7004,57 +7177,57 @@ packages: dev: true /constant-case@2.0.0: - resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==, tarball: https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz} + resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} dependencies: snake-case: 2.1.0 upper-case: 1.1.3 dev: true /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, tarball: https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz} + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 dev: true /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, tarball: https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz} + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} dev: true /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, tarball: https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz} + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, tarball: https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz} + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, tarball: https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz} + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true /cookie@0.3.1: - resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==, tarball: https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz} + resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==} engines: {node: '>= 0.6'} dev: true /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==, tarball: https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz} + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} dev: true /cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==, tarball: https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz} + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} dev: true /copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, tarball: https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz} + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: is-what: 3.14.1 dev: true /copy-webpack-plugin@13.0.0(webpack@5.98.0): - resolution: {integrity: sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ==, tarball: https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.0.tgz} + resolution: {integrity: sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.1.0 @@ -7064,25 +7237,25 @@ packages: schema-utils: 4.3.0 serialize-javascript: 6.0.2 tinyglobby: 0.2.12 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /core-js-compat@3.40.0: - resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==, tarball: https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz} + resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==} dependencies: browserslist: 4.24.4 dev: true /core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, tarball: https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz} + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz} + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, tarball: https://registry.npmjs.org/cors/-/cors-2.8.5.tgz} + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 @@ -7090,7 +7263,7 @@ packages: dev: true /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, tarball: https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz} + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} dependencies: '@types/parse-json': 4.0.2 @@ -7101,7 +7274,7 @@ packages: dev: true /cosmiconfig@9.0.0(typescript@5.8.2): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, tarball: https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz} + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: 5.8.2 @@ -7117,13 +7290,13 @@ packages: dev: true /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, tarball: https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz} + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} hasBin: true dev: true /crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==, tarball: https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz} + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} engines: {node: '>= 10'} dependencies: crc-32: 1.2.2 @@ -7131,11 +7304,11 @@ packages: dev: true /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, tarball: https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz} + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true /cross-env@5.2.1: - resolution: {integrity: sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==, tarball: https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz} + resolution: {integrity: sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==} engines: {node: '>=4.0'} hasBin: true dependencies: @@ -7143,7 +7316,7 @@ packages: dev: true /cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==, tarball: https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz} + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true dependencies: @@ -7151,7 +7324,7 @@ packages: dev: true /cross-spawn@6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz} + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 @@ -7162,7 +7335,7 @@ packages: dev: true /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz} + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -7171,17 +7344,17 @@ packages: dev: true /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, tarball: https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz} + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} dev: true /css-functions-list@3.2.2: - resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==, tarball: https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz} + resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} engines: {node: '>=12 || >=16'} dev: true /css-loader@7.1.2(webpack@5.98.0): - resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==, tarball: https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz} + resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -7200,11 +7373,11 @@ packages: postcss-modules-values: 4.0.0(postcss@8.5.3) postcss-value-parser: 4.2.0 semver: 7.7.1 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz} + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 @@ -7214,18 +7387,18 @@ packages: dev: true /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz} + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} dev: true /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, tarball: https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz} + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: true /csv-streamify@3.0.4: - resolution: {integrity: sha512-IQkxN0zu0gym8/5CHrSyReeRewbw+aRDrMrGI5WmIY/LmEcNpAcPOyETBHREKgsWHeEQWEihiBmx5EcKAsKWZw==, tarball: https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz} + resolution: {integrity: sha512-IQkxN0zu0gym8/5CHrSyReeRewbw+aRDrMrGI5WmIY/LmEcNpAcPOyETBHREKgsWHeEQWEihiBmx5EcKAsKWZw==} engines: {node: '>=0.12.0'} hasBin: true dependencies: @@ -7233,16 +7406,16 @@ packages: dev: true /custom-event@1.0.1: - resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==, tarball: https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz} + resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} dev: true /cycle@1.0.3: - resolution: {integrity: sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==, tarball: https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz} + resolution: {integrity: sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==} engines: {node: '>=0.4.0'} dev: true /d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==, tarball: https://registry.npmjs.org/d/-/d-1.0.2.tgz} + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 @@ -7250,33 +7423,33 @@ packages: dev: true /dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, tarball: https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz} + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 dev: true /data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==, tarball: https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz} + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} dev: true /data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==, tarball: https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz} + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} dev: true /date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==, tarball: https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz} - dev: true + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + dev: false /date-format@4.0.14: - resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==, tarball: https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz} + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} dev: true /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz} + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -7287,7 +7460,7 @@ packages: dev: true /debug@3.1.0: - resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, tarball: https://registry.npmjs.org/debug/-/debug-3.1.0.tgz} + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -7298,7 +7471,7 @@ packages: dev: true /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, tarball: https://registry.npmjs.org/debug/-/debug-3.2.7.tgz} + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -7309,7 +7482,7 @@ packages: dev: true /debug@4.3.1: - resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.1.tgz} + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -7321,7 +7494,7 @@ packages: dev: true /debug@4.3.2: - resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.2.tgz} + resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -7333,7 +7506,7 @@ packages: dev: true /debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.6.tgz} + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -7345,7 +7518,7 @@ packages: dev: true /debug@4.4.0(supports-color@10.0.0): - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==, tarball: https://registry.npmjs.org/debug/-/debug-4.4.0.tgz} + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -7357,7 +7530,7 @@ packages: supports-color: 10.0.0 /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, tarball: https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz} + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 @@ -7365,52 +7538,52 @@ packages: dev: true /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, tarball: https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz} + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} dev: true /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==, tarball: https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz} + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} dev: false /decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, tarball: https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz} + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} dev: true /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, tarball: https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz} + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 dev: true /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, tarball: https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz} + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} dev: true /deep-freeze@0.0.1: - resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==, tarball: https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz} + resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==} dev: true /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz} + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, tarball: https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz} + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} engines: {node: '>=18'} dev: true /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, tarball: https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz} + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} dependencies: bundle-name: 4.1.0 @@ -7418,17 +7591,17 @@ packages: dev: true /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, tarball: https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz} + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: true /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==, tarball: https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz} + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} dev: true /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, tarball: https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz} + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -7437,12 +7610,12 @@ packages: dev: true /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, tarball: https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz} + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} dev: true /degenerator@3.0.4: - resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==, tarball: https://registry.npmjs.org/degenerator/-/degenerator-3.0.4.tgz} + resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==} engines: {node: '>= 6'} dependencies: ast-types: 0.13.4 @@ -7452,7 +7625,7 @@ packages: dev: true /del@2.2.2: - resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==, tarball: https://registry.npmjs.org/del/-/del-2.2.2.tgz} + resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} engines: {node: '>=0.10.0'} dependencies: globby: 5.0.0 @@ -7465,63 +7638,63 @@ packages: dev: true /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz} + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: true /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, tarball: https://registry.npmjs.org/depd/-/depd-1.1.2.tgz} + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} dev: true /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, tarball: https://registry.npmjs.org/depd/-/depd-2.0.0.tgz} + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} dev: true /dependency-graph@0.7.2: - resolution: {integrity: sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==, tarball: https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz} + resolution: {integrity: sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==} engines: {node: '>= 0.6.0'} dev: true /deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, tarball: https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz} + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} dev: true /destroy@1.0.4: - resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==, tarball: https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz} + resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} dev: true /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, tarball: https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz} + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true /detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz} + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} hasBin: true dev: true optional: true /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz} + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} dev: true optional: true /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, tarball: https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz} + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true /dev-ip@1.0.1: - resolution: {integrity: sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==, tarball: https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz} + resolution: {integrity: sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==} engines: {node: '>= 0.8.0'} hasBin: true dev: true /dgeni-packages@0.29.5(dgeni@0.4.14): - resolution: {integrity: sha512-jKwWNA10+p/TDKPEFnsbeRQ027CpmM+cWhh3Fp8dRI+2e2FkedoccPiQhoG5/kzheQFxcsMGB6/h63OXYNdz0A==, tarball: https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.29.5.tgz} + resolution: {integrity: sha512-jKwWNA10+p/TDKPEFnsbeRQ027CpmM+cWhh3Fp8dRI+2e2FkedoccPiQhoG5/kzheQFxcsMGB6/h63OXYNdz0A==} engines: {node: '>=12.0.0', yarn: '>=0.17.9'} peerDependencies: dgeni: ^0.4.0 @@ -7529,6 +7702,7 @@ packages: canonical-path: 1.0.0 catharsis: 0.8.11 change-case: 3.0.0 + clonedeep: 2.0.0 dgeni: 0.4.14 espree: 7.3.1 estraverse: 4.3.0 @@ -7550,7 +7724,7 @@ packages: dev: true /dgeni@0.4.14: - resolution: {integrity: sha512-/zUB1tLlu0/E5Pr/cl2fyKJqmPQoiO1KwahN4QmqS8QAYaHDT6X5ld/vYeO6dpqNlR7TZWXWzpfAnwR3R9scyQ==, tarball: https://registry.npmjs.org/dgeni/-/dgeni-0.4.14.tgz} + resolution: {integrity: sha512-/zUB1tLlu0/E5Pr/cl2fyKJqmPQoiO1KwahN4QmqS8QAYaHDT6X5ld/vYeO6dpqNlR7TZWXWzpfAnwR3R9scyQ==} hasBin: true dependencies: canonical-path: 0.0.2 @@ -7565,33 +7739,33 @@ packages: dev: true /di@0.0.1: - resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==, tarball: https://registry.npmjs.org/di/-/di-0.0.1.tgz} + resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} dev: true /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, tarball: https://registry.npmjs.org/diff/-/diff-4.0.2.tgz} + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, tarball: https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz} + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, tarball: https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz} + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: true /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==, tarball: https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz} + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.5 dev: true /dom-serialize@2.2.1: - resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==, tarball: https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz} + resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} dependencies: custom-event: 1.0.1 ent: 2.2.1 @@ -7600,14 +7774,14 @@ packages: dev: true /dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, tarball: https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz} + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} dependencies: domelementtype: 2.3.0 entities: 2.2.0 dev: true /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz} + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -7615,35 +7789,35 @@ packages: dev: true /domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, tarball: https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz} + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} dev: true /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz} + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true /domhandler@2.4.2: - resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==, tarball: https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz} + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} dependencies: domelementtype: 1.3.1 dev: true /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz} + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 dev: true /domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==, tarball: https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz} + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} dependencies: dom-serializer: 0.2.2 domelementtype: 1.3.1 dev: true /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, tarball: https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz} + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -7651,39 +7825,39 @@ packages: dev: true /dot-case@2.1.1: - resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==, tarball: https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz} + resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} dependencies: no-case: 2.3.2 dev: true /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, tarball: https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz} + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} dependencies: is-obj: 2.0.0 dev: true /dotenv@6.2.0: - resolution: {integrity: sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==, tarball: https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz} + resolution: {integrity: sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==} engines: {node: '>=6'} dev: true /duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==, tarball: https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz} + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} dependencies: readable-stream: 2.3.8 dev: true /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, tarball: https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz} + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} dev: true /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, tarball: https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz} + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true /duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, tarball: https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz} + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 @@ -7692,7 +7866,7 @@ packages: dev: true /duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==, tarball: https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz} + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 @@ -7701,83 +7875,83 @@ packages: dev: true /easy-extender@2.3.4: - resolution: {integrity: sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==, tarball: https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz} + resolution: {integrity: sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==} engines: {node: '>= 4.0.0'} dependencies: lodash: 4.17.21 dev: true /eazy-logger@3.1.0: - resolution: {integrity: sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==, tarball: https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz} + resolution: {integrity: sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==} engines: {node: '>= 0.8.0'} dependencies: tfunk: 4.0.0 dev: true /eazy-logger@4.0.1: - resolution: {integrity: sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==, tarball: https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz} + resolution: {integrity: sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==} engines: {node: '>= 0.8.0'} dependencies: chalk: 4.1.2 dev: true /ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, tarball: https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz} + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 dev: true /ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, tarball: https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz} + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: safe-buffer: 5.2.1 dev: true /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz} + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true /electron-to-chromium@1.5.102: - resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==, tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz} + resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==} /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz} + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, tarball: https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz} + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} dev: true /enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==, tarball: https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz} + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} dev: true /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, tarball: https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz} + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} dev: true /encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, tarball: https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz} + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} dev: true /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, tarball: https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz} + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 dev: true optional: true /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, tarball: https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz} + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true /engine.io-client@3.2.1: - resolution: {integrity: sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==, tarball: https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz} + resolution: {integrity: sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==} dependencies: component-emitter: 1.2.1 component-inherit: 0.0.3 @@ -7797,7 +7971,7 @@ packages: dev: true /engine.io-client@6.5.4: - resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==, tarball: https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz} + resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.3.6 @@ -7811,7 +7985,7 @@ packages: dev: true /engine.io-parser@2.1.3: - resolution: {integrity: sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==, tarball: https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz} + resolution: {integrity: sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==} dependencies: after: 0.8.2 arraybuffer.slice: 0.0.7 @@ -7821,12 +7995,12 @@ packages: dev: true /engine.io-parser@5.2.2: - resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==, tarball: https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz} + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} engines: {node: '>=10.0.0'} dev: true /engine.io@3.2.1: - resolution: {integrity: sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==, tarball: https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz} + resolution: {integrity: sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==} dependencies: accepts: 1.3.8 base64id: 1.0.0 @@ -7841,7 +8015,7 @@ packages: dev: true /engine.io@6.5.5: - resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==, tarball: https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz} + resolution: {integrity: sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==} engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 @@ -7861,7 +8035,7 @@ packages: dev: true /enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz} + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -7869,41 +8043,40 @@ packages: dev: true /ent@2.2.1: - resolution: {integrity: sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==, tarball: https://registry.npmjs.org/ent/-/ent-2.2.1.tgz} + resolution: {integrity: sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==} engines: {node: '>= 0.4'} dependencies: punycode: 1.4.1 dev: true /entities@1.1.2: - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==, tarball: https://registry.npmjs.org/entities/-/entities-1.1.2.tgz} + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} dev: true /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, tarball: https://registry.npmjs.org/entities/-/entities-2.2.0.tgz} + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz} + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, tarball: https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz} + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} dev: true /environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==, tarball: https://registry.npmjs.org/environment/-/environment-1.1.0.tgz} + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} dev: true /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, tarball: https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz} + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} dev: true /errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, tarball: https://registry.npmjs.org/errno/-/errno-0.1.8.tgz} + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true dependencies: prr: 1.0.1 @@ -7911,29 +8084,29 @@ packages: optional: true /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz} + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, tarball: https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz} + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 dev: true /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz} + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} dev: true /es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz} + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} dev: true /es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==, tarball: https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz} + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} dependencies: es6-iterator: 2.0.3 @@ -7943,7 +8116,7 @@ packages: dev: true /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, tarball: https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz} + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7951,7 +8124,7 @@ packages: dev: true /es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==, tarball: https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz} + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} dependencies: d: 1.0.2 @@ -7959,7 +8132,7 @@ packages: dev: true /es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==, tarball: https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz} + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7968,13 +8141,13 @@ packages: dev: true /esbuild-wasm@0.25.1: - resolution: {integrity: sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw==, tarball: https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.25.1.tgz} + resolution: {integrity: sha512-dZxPeDHcDIQ6ilml/NzYxnPbNkoVsHSFH3JGLSobttc5qYYgExMo8lh2XcB+w+AfiqykVDGK5PWanGB0gWaAWw==} engines: {node: '>=18'} hasBin: true dev: true /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz} + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} hasBin: true optionalDependencies: @@ -8003,7 +8176,7 @@ packages: dev: true /esbuild@0.25.0: - resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz} + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} hasBin: true optionalDependencies: @@ -8035,7 +8208,7 @@ packages: dev: true /esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz} + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} engines: {node: '>=18'} hasBin: true optionalDependencies: @@ -8067,24 +8240,24 @@ packages: dev: true /escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, tarball: https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz} + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} /escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==, tarball: https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz} + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} dev: true /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, tarball: https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz} + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} /escodegen@1.14.3: - resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==, tarball: https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz} + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} hasBin: true dependencies: @@ -8097,7 +8270,7 @@ packages: dev: true /escodegen@1.8.1: - resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==, tarball: https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz} + resolution: {integrity: sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==} engines: {node: '>=0.12.0'} hasBin: true dependencies: @@ -8110,7 +8283,7 @@ packages: dev: true /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz} + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 @@ -8118,12 +8291,12 @@ packages: dev: true /eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz} + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} engines: {node: '>=4'} dev: true /esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==, tarball: https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz} + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} dependencies: d: 1.0.2 @@ -8133,7 +8306,7 @@ packages: dev: true /espree@7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==, tarball: https://registry.npmjs.org/espree/-/espree-7.3.1.tgz} + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: acorn: 7.4.1 @@ -8142,71 +8315,71 @@ packages: dev: true /esprima@2.7.3: - resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==, tarball: https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz} + resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} engines: {node: '>=0.10.0'} hasBin: true dev: true /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, tarball: https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz} + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, tarball: https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz} + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: false /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true /estraverse@1.9.3: - resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz} + resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} engines: {node: '>=0.10.0'} dev: true /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz} + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} /estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz} + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz} + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, tarball: https://registry.npmjs.org/etag/-/etag-1.8.1.tgz} + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} dev: true /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==, tarball: https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz} + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 dev: true /event-stream@3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==, tarball: https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz} + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} dependencies: duplexer: 0.1.2 from: 0.1.7 @@ -8218,33 +8391,33 @@ packages: dev: true /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, tarball: https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz} + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} dev: true /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz} + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz} + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: true /events-intercept@2.0.0: - resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==, tarball: https://registry.npmjs.org/events-intercept/-/events-intercept-2.0.0.tgz} + resolution: {integrity: sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==} dev: true /events-listener@1.1.0: - resolution: {integrity: sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==, tarball: https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz} + resolution: {integrity: sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==} dev: true /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: https://registry.npmjs.org/events/-/events-3.3.0.tgz} + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} dev: true /exegesis-express@2.0.1: - resolution: {integrity: sha512-8ORl1YRygYGPdR+zcClMqzaU+JQuvdNIw/s0RNwYluxNecEHkDEcXFmO6A5T79p7e48KI8iXJYt6KIn4Z9z4bg==, tarball: https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.1.tgz} + resolution: {integrity: sha512-8ORl1YRygYGPdR+zcClMqzaU+JQuvdNIw/s0RNwYluxNecEHkDEcXFmO6A5T79p7e48KI8iXJYt6KIn4Z9z4bg==} engines: {node: '>=6.0.0', npm: '>5.0.0'} dependencies: exegesis: 2.5.7 @@ -8253,7 +8426,7 @@ packages: dev: true /exegesis@2.5.7: - resolution: {integrity: sha512-Y0gEY3hgoLa80aMUm8rhhlIW3/KWo4uqN5hKJqok2GLh3maZjRLRC+p0gj33Jw3upAOKOXeRgScT5rtRoMyxwQ==, tarball: https://registry.npmjs.org/exegesis/-/exegesis-2.5.7.tgz} + resolution: {integrity: sha512-Y0gEY3hgoLa80aMUm8rhhlIW3/KWo4uqN5hKJqok2GLh3maZjRLRC+p0gj33Jw3upAOKOXeRgScT5rtRoMyxwQ==} engines: {node: '>=6.0.0', npm: '>5.0.0'} dependencies: '@apidevtools/json-schema-ref-parser': 9.1.2 @@ -8277,20 +8450,20 @@ packages: dev: true /exit-code@1.0.2: - resolution: {integrity: sha512-U80QYrKun5np62yRqG6geNRP5TZKU2HF73Bb6IE3XjDHXKlserAdP14tIaP3W9J6ezv84DwbpbRTAtu4FsKcgw==, tarball: https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz} + resolution: {integrity: sha512-U80QYrKun5np62yRqG6geNRP5TZKU2HF73Bb6IE3XjDHXKlserAdP14tIaP3W9J6ezv84DwbpbRTAtu4FsKcgw==} dev: true /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, tarball: https://registry.npmjs.org/exit/-/exit-0.1.2.tgz} + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} dev: true /exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==, tarball: https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz} + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: true /express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==, tarball: https://registry.npmjs.org/express/-/express-4.21.2.tgz} + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 @@ -8329,17 +8502,17 @@ packages: dev: true /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==, tarball: https://registry.npmjs.org/ext/-/ext-1.7.0.tgz} + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: type: 2.7.3 dev: true /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, tarball: https://registry.npmjs.org/extend/-/extend-3.0.2.tgz} + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, tarball: https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz} + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} dependencies: chardet: 0.7.0 @@ -8348,30 +8521,30 @@ packages: dev: true /extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, tarball: https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz} + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} dev: true /extsprintf@1.4.1: - resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==, tarball: https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz} + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} engines: {'0': node >=0.6.0} dev: true /eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==, tarball: https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz} + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} dev: true /fast-content-type-parse@2.0.1: - resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==, tarball: https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz} + resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} dev: true /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true /fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, tarball: https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz} + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8382,47 +8555,47 @@ packages: dev: true /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fast-text-encoding@1.0.6: - resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==, tarball: https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz} + resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} dev: true /fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==, tarball: https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz} + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} dev: true /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==, tarball: https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz} + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: punycode: 1.4.1 dev: true /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, tarball: https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} dev: true /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, tarball: https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz} + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, tarball: https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz} + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 dev: true /fdir@6.4.3(picomatch@4.0.2): - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==, tarball: https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz} + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -8432,11 +8605,11 @@ packages: picomatch: 4.0.2 /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, tarball: https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz} + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: true /fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==, tarball: https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz} + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 @@ -8444,45 +8617,45 @@ packages: dev: true /figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, tarball: https://registry.npmjs.org/figures/-/figures-2.0.0.tgz} + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} dependencies: escape-string-regexp: 1.0.5 dev: true /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, tarball: https://registry.npmjs.org/figures/-/figures-3.2.0.tgz} + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 dev: true /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 dev: true /file-uri-to-path@2.0.0: - resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==, tarball: https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz} + resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} engines: {node: '>= 6'} dev: true /filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==, tarball: https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz} + resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} dev: true /fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz} + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true /finalhandler@1.1.0: - resolution: {integrity: sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz} + resolution: {integrity: sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==} engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 @@ -8497,7 +8670,7 @@ packages: dev: true /finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz} + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 @@ -8512,7 +8685,7 @@ packages: dev: true /finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz} + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 @@ -8527,7 +8700,7 @@ packages: dev: true /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, tarball: https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz} + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: locate-path: 5.0.0 @@ -8535,7 +8708,7 @@ packages: dev: true /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz} + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: locate-path: 6.0.0 @@ -8543,13 +8716,13 @@ packages: dev: true /find-yarn-workspace-root@2.0.0: - resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==, tarball: https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz} + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} dependencies: micromatch: 4.0.8 dev: true /firebase-tools@9.23.3: - resolution: {integrity: sha512-J1S/T96rL3vKObDtTuBkop9JtW3vYnfwyU83NopiuOy9oPBRxFkitgzk034qGrpGyZvDA6Do6ZHI50taB3hrEg==, tarball: https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.23.3.tgz} + resolution: {integrity: sha512-J1S/T96rL3vKObDtTuBkop9JtW3vYnfwyU83NopiuOy9oPBRxFkitgzk034qGrpGyZvDA6Do6ZHI50taB3hrEg==} engines: {node: '>= 10.13'} hasBin: true dependencies: @@ -8619,7 +8792,7 @@ packages: dev: true /flat-arguments@1.0.2: - resolution: {integrity: sha512-ZIkB09bqQdKP9buPOiZcS/4HK3q992C5q62qAE72d0xWAXfaSbP840BZYUBgHRkzdx6jYRIpKT4ur+Nay/JRlg==, tarball: https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz} + resolution: {integrity: sha512-ZIkB09bqQdKP9buPOiZcS/4HK3q992C5q62qAE72d0xWAXfaSbP840BZYUBgHRkzdx6jYRIpKT4ur+Nay/JRlg==} dependencies: array-flatten: 1.1.1 as-array: 1.0.0 @@ -8628,7 +8801,7 @@ packages: dev: true /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, tarball: https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz} + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.1 @@ -8637,20 +8810,20 @@ packages: dev: true /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, tarball: https://registry.npmjs.org/flat/-/flat-5.0.2.tgz} + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true dev: true /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, tarball: https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz} + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==, tarball: https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz} + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: true /follow-redirects@1.15.6(debug@4.3.2): - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz} + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -8662,7 +8835,7 @@ packages: dev: true /follow-redirects@1.15.6(debug@4.4.0): - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz} + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -8674,7 +8847,7 @@ packages: dev: true /foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==, tarball: https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz} + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} dependencies: cross-spawn: 7.0.3 @@ -8682,7 +8855,7 @@ packages: dev: true /foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==, tarball: https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz} + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -8690,11 +8863,11 @@ packages: dev: true /forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, tarball: https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz} + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true /form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, tarball: https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz} + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} dependencies: asynckit: 0.4.0 @@ -8703,7 +8876,7 @@ packages: dev: true /form-data@2.5.2: - resolution: {integrity: sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==, tarball: https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz} + resolution: {integrity: sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==} engines: {node: '>= 0.12'} dependencies: asynckit: 0.4.0 @@ -8713,7 +8886,7 @@ packages: dev: true /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz} + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 @@ -8722,36 +8895,36 @@ packages: dev: true /formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, tarball: https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz} + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.2.0 dev: true /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, tarball: https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz} + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} dev: true /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, tarball: https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz} + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, tarball: https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz} + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} dev: true /from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==, tarball: https://registry.npmjs.org/from/-/from-0.1.7.tgz} + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} dev: true /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz} + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz} + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: graceful-fs: 4.2.11 @@ -8760,7 +8933,7 @@ packages: dev: true /fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz} + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 @@ -8769,7 +8942,7 @@ packages: dev: true /fs-extra@3.0.1: - resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz} + resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==} dependencies: graceful-fs: 4.2.11 jsonfile: 3.0.1 @@ -8777,7 +8950,7 @@ packages: dev: true /fs-extra@5.0.0: - resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz} + resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 @@ -8785,7 +8958,7 @@ packages: dev: true /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz} + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 @@ -8794,7 +8967,7 @@ packages: dev: true /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz} + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 @@ -8804,37 +8977,37 @@ packages: dev: true /fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==, tarball: https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz} + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} dependencies: minipass: 2.9.0 dev: true /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, tarball: https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz} + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true /fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==, tarball: https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz} + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.1.2 dev: true /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] dev: true optional: true /fstream@1.0.12: - resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==, tarball: https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz} + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} deprecated: This package is no longer supported. dependencies: @@ -8845,7 +9018,7 @@ packages: dev: true /ftp@0.3.10: - resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==, tarball: https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz} + resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} engines: {node: '>=0.8.0'} dependencies: readable-stream: 1.1.14 @@ -8853,17 +9026,17 @@ packages: dev: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz} + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} /furi@2.0.0: - resolution: {integrity: sha512-uKuNsaU0WVaK/vmvj23wW1bicOFfyqSsAIH71bRZx8kA4Xj+YCHin7CJKJJjkIsmxYaPFLk9ljmjEyB7xF7WvQ==, tarball: https://registry.npmjs.org/furi/-/furi-2.0.0.tgz} + resolution: {integrity: sha512-uKuNsaU0WVaK/vmvj23wW1bicOFfyqSsAIH71bRZx8kA4Xj+YCHin7CJKJJjkIsmxYaPFLk9ljmjEyB7xF7WvQ==} dependencies: '@types/is-windows': 1.0.2 is-windows: 1.0.2 dev: true /gaxios@4.3.3: - resolution: {integrity: sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==, tarball: https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz} + resolution: {integrity: sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==} engines: {node: '>=10'} dependencies: abort-controller: 3.0.0 @@ -8877,7 +9050,7 @@ packages: dev: true /gaxios@6.7.1(supports-color@10.0.0): - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==, tarball: https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz} + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} engines: {node: '>=14'} dependencies: extend: 3.0.2 @@ -8891,7 +9064,7 @@ packages: dev: true /gcp-metadata@4.3.1: - resolution: {integrity: sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==, tarball: https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz} + resolution: {integrity: sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==} engines: {node: '>=10'} dependencies: gaxios: 4.3.3 @@ -8902,7 +9075,7 @@ packages: dev: true /gcp-metadata@6.1.0(supports-color@10.0.0): - resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==, tarball: https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz} + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} dependencies: gaxios: 6.7.1(supports-color@10.0.0) @@ -8913,20 +9086,20 @@ packages: dev: true /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, tarball: https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz} + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz} + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, tarball: https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz} + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} dev: true /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz} + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 @@ -8937,21 +9110,21 @@ packages: dev: true /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==, tarball: https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz} + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} dependencies: pump: 3.0.0 dev: true /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, tarball: https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz} + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 dev: true /get-uri@3.0.2: - resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==, tarball: https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz} + resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 1.1.2 @@ -8965,31 +9138,31 @@ packages: dev: true /getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, tarball: https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz} + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 dev: true /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz} + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true /glob-slash@1.0.0: - resolution: {integrity: sha512-ZwFh34WZhZX28ntCMAP1mwyAJkn8+Omagvt/GvA+JQM/qgT0+MR2NPF3vhvgdshfdvDyGZXs8fPXW84K32Wjuw==, tarball: https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz} + resolution: {integrity: sha512-ZwFh34WZhZX28ntCMAP1mwyAJkn8+Omagvt/GvA+JQM/qgT0+MR2NPF3vhvgdshfdvDyGZXs8fPXW84K32Wjuw==} dev: true /glob-slasher@1.0.1: - resolution: {integrity: sha512-5MUzqFiycIKLMD1B0dYOE4hGgLLUZUNGGYO4BExdwT32wUwW3DBOE7lMQars7vB1q43Fb3Tyt+HmgLKsJhDYdg==, tarball: https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz} + resolution: {integrity: sha512-5MUzqFiycIKLMD1B0dYOE4hGgLLUZUNGGYO4BExdwT32wUwW3DBOE7lMQars7vB1q43Fb3Tyt+HmgLKsJhDYdg==} dependencies: glob-slash: 1.0.0 lodash.isobject: 2.4.1 @@ -8997,11 +9170,11 @@ packages: dev: true /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, tarball: https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true /glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, tarball: https://registry.npmjs.org/glob/-/glob-10.4.5.tgz} + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: foreground-child: 3.2.1 @@ -9013,7 +9186,7 @@ packages: dev: true /glob@5.0.15: - resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==, tarball: https://registry.npmjs.org/glob/-/glob-5.0.15.tgz} + resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} deprecated: Glob versions prior to v9 are no longer supported dependencies: inflight: 1.0.6 @@ -9024,7 +9197,7 @@ packages: dev: true /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 @@ -9035,28 +9208,28 @@ packages: path-is-absolute: 1.0.1 /global-dirs@2.1.0: - resolution: {integrity: sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==, tarball: https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz} + resolution: {integrity: sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==} engines: {node: '>=8'} dependencies: ini: 1.3.7 dev: true /global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==, tarball: https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz} + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} dependencies: ini: 2.0.0 dev: true /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, tarball: https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz} + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} engines: {node: '>=6'} dependencies: global-prefix: 3.0.0 dev: true /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, tarball: https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz} + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} engines: {node: '>=6'} dependencies: ini: 1.3.8 @@ -9065,11 +9238,11 @@ packages: dev: true /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, tarball: https://registry.npmjs.org/globals/-/globals-11.12.0.tgz} + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, tarball: https://registry.npmjs.org/globby/-/globby-11.1.0.tgz} + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 @@ -9081,7 +9254,7 @@ packages: dev: true /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==, tarball: https://registry.npmjs.org/globby/-/globby-13.2.2.tgz} + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 @@ -9092,7 +9265,7 @@ packages: dev: true /globby@5.0.0: - resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==, tarball: https://registry.npmjs.org/globby/-/globby-5.0.0.tgz} + resolution: {integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==} engines: {node: '>=0.10.0'} dependencies: array-union: 1.0.2 @@ -9104,11 +9277,11 @@ packages: dev: true /globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, tarball: https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz} + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} dev: true /google-auth-library@6.1.6: - resolution: {integrity: sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==, tarball: https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz} + resolution: {integrity: sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==} engines: {node: '>=10'} dependencies: arrify: 2.0.1 @@ -9126,7 +9299,7 @@ packages: dev: true /google-auth-library@7.14.1: - resolution: {integrity: sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==, tarball: https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz} + resolution: {integrity: sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==} engines: {node: '>=10'} dependencies: arrify: 2.0.1 @@ -9144,7 +9317,7 @@ packages: dev: true /google-auth-library@9.15.0(supports-color@10.0.0): - resolution: {integrity: sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==, tarball: https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.0.tgz} + resolution: {integrity: sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==} engines: {node: '>=14'} dependencies: base64-js: 1.5.1 @@ -9159,7 +9332,7 @@ packages: dev: true /google-gax@2.30.3: - resolution: {integrity: sha512-Zsd6hbJBMvAcJS3cYpAsmupvfsxygFR2meUZJcGeR7iUqYHCR/1Hf2aQNB9srrlXQMm91pNiUvW0Kz6Qld8QkA==, tarball: https://registry.npmjs.org/google-gax/-/google-gax-2.30.3.tgz} + resolution: {integrity: sha512-Zsd6hbJBMvAcJS3cYpAsmupvfsxygFR2meUZJcGeR7iUqYHCR/1Hf2aQNB9srrlXQMm91pNiUvW0Kz6Qld8QkA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -9182,7 +9355,7 @@ packages: dev: true /google-gax@4.4.1(supports-color@10.0.0): - resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==, tarball: https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz} + resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==} engines: {node: '>=14'} dependencies: '@grpc/grpc-js': 1.12.5 @@ -9203,7 +9376,7 @@ packages: dev: true /google-p12-pem@3.1.4: - resolution: {integrity: sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==, tarball: https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz} + resolution: {integrity: sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==} engines: {node: '>=10'} deprecated: Package is no longer maintained hasBin: true @@ -9212,17 +9385,17 @@ packages: dev: true /google-protobuf@3.21.2: - resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==, tarball: https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz} + resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==} dev: true /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz} + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 dev: true /got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==, tarball: https://registry.npmjs.org/got/-/got-9.6.0.tgz} + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} engines: {node: '>=8.6'} dependencies: '@sindresorhus/is': 0.14.0 @@ -9241,18 +9414,18 @@ packages: dev: true /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz} + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true /grpc-gcp@1.0.1: - resolution: {integrity: sha512-06r73IoGaAIpzT+DRPnw7V5BXvZ5mjy1OcKqSPX+ZHOgbLxT+lJfz8IN83z/sbA3t55ZX88MfDaaCjDGdveVIA==, tarball: https://registry.npmjs.org/grpc-gcp/-/grpc-gcp-1.0.1.tgz} + resolution: {integrity: sha512-06r73IoGaAIpzT+DRPnw7V5BXvZ5mjy1OcKqSPX+ZHOgbLxT+lJfz8IN83z/sbA3t55ZX88MfDaaCjDGdveVIA==} engines: {node: '>=12'} dependencies: '@grpc/grpc-js': 1.12.5 dev: true /gtoken@5.3.2: - resolution: {integrity: sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==, tarball: https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz} + resolution: {integrity: sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==} engines: {node: '>=10'} dependencies: gaxios: 4.3.3 @@ -9264,7 +9437,7 @@ packages: dev: true /gtoken@7.1.0(supports-color@10.0.0): - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==, tarball: https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz} + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} dependencies: gaxios: 6.7.1(supports-color@10.0.0) @@ -9275,11 +9448,11 @@ packages: dev: true /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, tarball: https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz} + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} dev: true /handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, tarball: https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz} + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -9292,12 +9465,12 @@ packages: dev: true /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, tarball: https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz} + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} dev: true /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, tarball: https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz} + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} engines: {node: '>=6'} deprecated: this library is no longer supported dependencies: @@ -9306,74 +9479,74 @@ packages: dev: true /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, tarball: https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz} + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} dev: true /has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, tarball: https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz} + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 dev: true /has-binary2@1.0.3: - resolution: {integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==, tarball: https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz} + resolution: {integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==} dependencies: isarray: 2.0.1 dev: true /has-cors@1.1.0: - resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==, tarball: https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz} + resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==} dev: true /has-flag@1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz} + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} engines: {node: '>=0.10.0'} dev: true /has-flag@2.0.0: - resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz} + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} engines: {node: '>=0.10.0'} dev: true /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, tarball: https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz} + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 dev: true /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, tarball: https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz} + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: true /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, tarball: https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz} + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true /has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==, tarball: https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz} + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} engines: {node: '>=8'} dev: true /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz} + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 /hast-util-from-parse5@5.0.3: - resolution: {integrity: sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==, tarball: https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz} + resolution: {integrity: sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==} dependencies: ccount: 1.1.0 hastscript: 5.1.2 @@ -9383,15 +9556,15 @@ packages: dev: true /hast-util-is-element@1.1.0: - resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==, tarball: https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz} + resolution: {integrity: sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==} dev: true /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==, tarball: https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz} + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} dev: true /hast-util-to-html@6.1.0: - resolution: {integrity: sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==, tarball: https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz} + resolution: {integrity: sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==} dependencies: ccount: 1.1.0 comma-separated-tokens: 1.0.8 @@ -9406,11 +9579,11 @@ packages: dev: true /hast-util-whitespace@1.0.4: - resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==, tarball: https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz} + resolution: {integrity: sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==} dev: true /hastscript@5.1.2: - resolution: {integrity: sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==, tarball: https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz} + resolution: {integrity: sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==} dependencies: comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 @@ -9419,40 +9592,40 @@ packages: dev: true /header-case@1.0.1: - resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==, tarball: https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz} + resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} dependencies: no-case: 2.3.2 upper-case: 1.1.3 dev: true /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, tarball: https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz} + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} dev: true /home-dir@1.0.0: - resolution: {integrity: sha512-PPAP0BMY72XQ0sYwFow8EgHwUYfptkZusnZEGHkBjdKRXIYcVFsbEViqU4k8VrJWf0m7wMr9gscQX9klJYh7zg==, tarball: https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz} + resolution: {integrity: sha512-PPAP0BMY72XQ0sYwFow8EgHwUYfptkZusnZEGHkBjdKRXIYcVFsbEViqU4k8VrJWf0m7wMr9gscQX9klJYh7zg==} dev: true /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, tarball: https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz} + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, tarball: https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 dev: true /hosted-git-info@8.0.0: - resolution: {integrity: sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==, tarball: https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz} + resolution: {integrity: sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: lru-cache: 10.2.2 dev: true /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, tarball: https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz} + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: inherits: 2.0.4 obuf: 1.1.2 @@ -9461,28 +9634,28 @@ packages: dev: true /html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==, tarball: https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz} + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} dev: true /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, tarball: https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz} + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true /html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, tarball: https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz} + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} dev: true /html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==, tarball: https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz} + resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} dev: true /htmlencode@0.0.4: - resolution: {integrity: sha512-0uDvNVpzj/E2TfvLLyyXhKBRvF1y84aZsyRxRXFsQobnHaL4pcaXk+Y9cnFlvnxrBLeXDNq/VJBD+ngdBgQG1w==, tarball: https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz} + resolution: {integrity: sha512-0uDvNVpzj/E2TfvLLyyXhKBRvF1y84aZsyRxRXFsQobnHaL4pcaXk+Y9cnFlvnxrBLeXDNq/VJBD+ngdBgQG1w==} dev: true /htmlparser2@3.10.1: - resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==, tarball: https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz} + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} dependencies: domelementtype: 1.3.1 domhandler: 2.4.2 @@ -9493,7 +9666,7 @@ packages: dev: true /htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==, tarball: https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz} + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -9502,15 +9675,15 @@ packages: dev: true /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, tarball: https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz} + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, tarball: https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz} + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} dev: true /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==, tarball: https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz} + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 @@ -9520,7 +9693,7 @@ packages: dev: true /http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==, tarball: https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz} + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 @@ -9531,7 +9704,7 @@ packages: dev: true /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, tarball: https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz} + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 @@ -9542,11 +9715,11 @@ packages: dev: true /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, tarball: https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz} + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} dev: true /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 1.1.2 @@ -9557,7 +9730,7 @@ packages: dev: true /http-proxy-agent@5.0.0(supports-color@10.0.0): - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz} + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 @@ -9568,7 +9741,7 @@ packages: dev: true /http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz} + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 @@ -9578,7 +9751,7 @@ packages: dev: true /http-proxy-middleware@2.0.7(@types/express@4.17.21): - resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==, tarball: https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz} + resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -9597,7 +9770,7 @@ packages: dev: true /http-proxy-middleware@3.0.3: - resolution: {integrity: sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==, tarball: https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz} + resolution: {integrity: sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/http-proxy': 1.17.15 @@ -9611,7 +9784,7 @@ packages: dev: true /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz} + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 @@ -9622,7 +9795,7 @@ packages: dev: true /http-proxy@1.18.1(debug@4.4.0): - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz} + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 @@ -9633,7 +9806,7 @@ packages: dev: true /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, tarball: https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz} + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} dependencies: assert-plus: 1.0.0 @@ -9642,7 +9815,7 @@ packages: dev: true /https-proxy-agent@5.0.0(supports-color@10.0.0): - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==, tarball: https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz} + resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2(supports-color@10.0.0) @@ -9652,32 +9825,32 @@ packages: dev: true /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==, tarball: https://registry.npmjs.org/husky/-/husky-9.0.11.tgz} + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} engines: {node: '>=18'} hasBin: true dev: true /hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, tarball: https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz} + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} dev: true /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz} + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz} + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true /icss-utils@5.1.0(postcss@8.5.3): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, tarball: https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz} + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -9686,43 +9859,43 @@ packages: dev: true /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, tarball: https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz} + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true /ignore-walk@7.0.0: - resolution: {integrity: sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==, tarball: https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz} + resolution: {integrity: sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: minimatch: 9.0.5 dev: true /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz} + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true /image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, tarball: https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz} + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} hasBin: true dev: true optional: true /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, tarball: https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz} + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: true /immutable@3.8.2: - resolution: {integrity: sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==, tarball: https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz} + resolution: {integrity: sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==} engines: {node: '>=0.10.0'} dev: true /immutable@5.0.3: - resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==, tarball: https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz} + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} dev: true /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz} + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: parent-module: 1.0.1 @@ -9730,63 +9903,63 @@ packages: dev: true /import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==, tarball: https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz} + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} engines: {node: '>=4'} dev: true /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, tarball: https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz} + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} dev: true /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, tarball: https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz} + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} dev: true /indexof@0.0.1: - resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==, tarball: https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz} + resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} dev: true /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz} + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} dev: true /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} /ini@1.3.7: - resolution: {integrity: sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==, tarball: https://registry.npmjs.org/ini/-/ini-1.3.7.tgz} + resolution: {integrity: sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==} dev: true /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: https://registry.npmjs.org/ini/-/ini-1.3.8.tgz} + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==, tarball: https://registry.npmjs.org/ini/-/ini-2.0.0.tgz} + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} dev: true /ini@5.0.0: - resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==, tarball: https://registry.npmjs.org/ini/-/ini-5.0.0.tgz} + resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /inquirer@6.3.1: - resolution: {integrity: sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==, tarball: https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz} + resolution: {integrity: sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==} engines: {node: '>=6.0.0'} dependencies: ansi-escapes: 3.2.0 @@ -9805,7 +9978,7 @@ packages: dev: true /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, tarball: https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz} + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 @@ -9826,18 +9999,18 @@ packages: dev: true /install-artifact-from-github@1.3.5: - resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==, tarball: https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.5.tgz} + resolution: {integrity: sha512-gZHC7f/cJgXz7MXlHFBxPVMsvIbev1OQN1uKQYKVJDydGNm9oYf9JstbU4Atnh/eSvk41WtEovoRm+8IF686xg==} hasBin: true dev: true optional: true /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, tarball: https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz} + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} dev: true /ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==, tarball: https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz} + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} dependencies: jsbn: 1.1.0 @@ -9845,125 +10018,125 @@ packages: dev: true /ip-regex@4.3.0: - resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==, tarball: https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz} + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} dev: true /ip@1.1.9: - resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==, tarball: https://registry.npmjs.org/ip/-/ip-1.1.9.tgz} + resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} dev: true /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, tarball: https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz} + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} dev: true /ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, tarball: https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz} + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} dev: true /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, tarball: https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz} + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} dev: true /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, tarball: https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 dev: true /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, tarball: https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz} + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, tarball: https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz} + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} dev: true /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz} + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 dev: true /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, tarball: https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz} + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} dev: true /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==, tarball: https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz} + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 dev: true /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==, tarball: https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz} + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true dependencies: ci-info: 2.0.0 dev: true /is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz} + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, tarball: https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz} + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} dev: true /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, tarball: https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz} + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true dev: true /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, tarball: https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz} + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dev: true /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz} + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} dev: true /is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz} + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} dependencies: get-east-asian-width: 1.2.0 dev: true /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, tarball: https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} dev: true /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, tarball: https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz} + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true dependencies: @@ -9971,7 +10144,7 @@ packages: dev: true /is-installed-globally@0.3.2: - resolution: {integrity: sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==, tarball: https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz} + resolution: {integrity: sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==} engines: {node: '>=8'} dependencies: global-dirs: 2.1.0 @@ -9979,7 +10152,7 @@ packages: dev: true /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==, tarball: https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz} + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} dependencies: global-dirs: 3.0.1 @@ -9987,176 +10160,176 @@ packages: dev: true /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, tarball: https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz} + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} dev: true /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==, tarball: https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz} + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true /is-lower-case@1.1.3: - resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==, tarball: https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz} + resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} dependencies: lower-case: 1.1.4 dev: true /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, tarball: https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz} + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, tarball: https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz} + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} engines: {node: '>=16'} dev: true /is-npm@4.0.0: - resolution: {integrity: sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==, tarball: https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz} + resolution: {integrity: sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==} engines: {node: '>=8'} dev: true /is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==, tarball: https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz} + resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} engines: {node: '>=10'} dev: true /is-number-like@1.0.8: - resolution: {integrity: sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==, tarball: https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz} + resolution: {integrity: sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==} dependencies: lodash.isfinite: 3.3.2 dev: true /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz} + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, tarball: https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz} + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: true /is-path-cwd@1.0.0: - resolution: {integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==, tarball: https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz} + resolution: {integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==} engines: {node: '>=0.10.0'} dev: true /is-path-in-cwd@1.0.1: - resolution: {integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==, tarball: https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz} + resolution: {integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==} engines: {node: '>=0.10.0'} dependencies: is-path-inside: 1.0.1 dev: true /is-path-inside@1.0.1: - resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==, tarball: https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz} + resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==} engines: {node: '>=0.10.0'} dependencies: path-is-inside: 1.0.2 dev: true /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz} + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, tarball: https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz} + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} dev: true /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, tarball: https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz} + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} dev: true /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, tarball: https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz} + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 dev: true /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, tarball: https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz} + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} dev: true /is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, tarball: https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz} + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, tarball: https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz} + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: '@types/estree': 1.0.6 dev: true /is-running@2.1.0: - resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==, tarball: https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz} + resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==} dev: true /is-stream-ended@0.1.4: - resolution: {integrity: sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==, tarball: https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz} + resolution: {integrity: sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==} dev: true /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz} + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, tarball: https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz} + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, tarball: https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true /is-upper-case@1.1.2: - resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==, tarball: https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz} + resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} dependencies: upper-case: 1.1.3 dev: true /is-url@1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==, tarball: https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz} + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} dev: true /is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, tarball: https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz} + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} dev: true /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, tarball: https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz} + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} dev: true /is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==, tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz} + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} engines: {node: '>=4'} dev: true /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz} + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 dev: true /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, tarball: https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz} + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 dev: true /is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==, tarball: https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz} + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} dev: true /is2@2.0.9: - resolution: {integrity: sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==, tarball: https://registry.npmjs.org/is2/-/is2-2.0.9.tgz} + resolution: {integrity: sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==} engines: {node: '>=v0.10.0'} dependencies: deep-is: 0.1.4 @@ -10165,55 +10338,55 @@ packages: dev: true /is@3.3.0: - resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==, tarball: https://registry.npmjs.org/is/-/is-3.3.0.tgz} + resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==} dev: true /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, tarball: https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz} + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, tarball: https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz} + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true /isarray@2.0.1: - resolution: {integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==, tarball: https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz} + resolution: {integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==} dev: true /isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, tarball: https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz} + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} dev: true /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==, tarball: https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz} + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} dev: true /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, tarball: https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz} + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} dev: true /isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, tarball: https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz} + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, tarball: https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz} + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true /istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, tarball: https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz} + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -10222,7 +10395,7 @@ packages: dev: true /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, tarball: https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz} + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 @@ -10231,7 +10404,7 @@ packages: dev: true /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==, tarball: https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz} + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -10239,7 +10412,7 @@ packages: dev: true /istanbul@0.4.5: - resolution: {integrity: sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==, tarball: https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz} + resolution: {integrity: sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==} deprecated: |- This module is no longer maintained, try this instead: npm i nyc @@ -10263,7 +10436,7 @@ packages: dev: true /jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==, tarball: https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz} + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -10272,26 +10445,26 @@ packages: dev: true /jasmine-core@2.8.0: - resolution: {integrity: sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==, tarball: https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz} + resolution: {integrity: sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==} dev: true /jasmine-core@3.99.1: - resolution: {integrity: sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==, tarball: https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz} + resolution: {integrity: sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==} dev: true /jasmine-core@4.6.1: - resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==, tarball: https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz} + resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} dev: true /jasmine-reporters@2.5.2: - resolution: {integrity: sha512-qdewRUuFOSiWhiyWZX8Yx3YNQ9JG51ntBEO4ekLQRpktxFTwUHy24a86zD/Oi2BRTKksEdfWQZcQFqzjqIkPig==, tarball: https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-2.5.2.tgz} + resolution: {integrity: sha512-qdewRUuFOSiWhiyWZX8Yx3YNQ9JG51ntBEO4ekLQRpktxFTwUHy24a86zD/Oi2BRTKksEdfWQZcQFqzjqIkPig==} dependencies: '@xmldom/xmldom': 0.8.10 mkdirp: 1.0.4 dev: true /jasmine@2.8.0: - resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==, tarball: https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz} + resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} hasBin: true dependencies: exit: 0.1.2 @@ -10300,7 +10473,7 @@ packages: dev: true /jasmine@4.6.0: - resolution: {integrity: sha512-iq7HQ5M8ydNUspjd9vbFW9Lu+6lQ1QLDIqjl0WysEllF5EJZy8XaUyNlhCJVwOx2YFzqTtARWbS56F/f0PzRFw==, tarball: https://registry.npmjs.org/jasmine/-/jasmine-4.6.0.tgz} + resolution: {integrity: sha512-iq7HQ5M8ydNUspjd9vbFW9Lu+6lQ1QLDIqjl0WysEllF5EJZy8XaUyNlhCJVwOx2YFzqTtARWbS56F/f0PzRFw==} hasBin: true dependencies: glob: 7.2.3 @@ -10308,12 +10481,12 @@ packages: dev: true /jasminewd2@2.2.0: - resolution: {integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==, tarball: https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz} + resolution: {integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==} engines: {node: '>= 6.9.x'} dev: true /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz} + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: '@types/node': 20.17.24 @@ -10322,16 +10495,16 @@ packages: dev: true /jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==, tarball: https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz} + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true dev: true /jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, tarball: https://registry.npmjs.org/jju/-/jju-1.4.0.tgz} + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true /join-path@1.1.1: - resolution: {integrity: sha512-jnt9OC34sLXMLJ6YfPQ2ZEKrR9mB5ZbSnQb4LPaOx1c5rTzxpR33L18jjp0r75mGGTJmsil3qwN1B5IBeTnSSA==, tarball: https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz} + resolution: {integrity: sha512-jnt9OC34sLXMLJ6YfPQ2ZEKrR9mB5ZbSnQb4LPaOx1c5rTzxpR33L18jjp0r75mGGTJmsil3qwN1B5IBeTnSSA==} dependencies: as-array: 2.0.0 url-join: 0.0.1 @@ -10339,109 +10512,109 @@ packages: dev: true /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz} + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz} + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz} + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true /jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, tarball: https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz} + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true /jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==, tarball: https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz} + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} dev: true /jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, tarball: https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz} + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} hasBin: true /json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, tarball: https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz} + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} dependencies: bignumber.js: 9.1.2 dev: true /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==, tarball: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz} + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: true /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz} + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true /json-parse-even-better-errors@4.0.0: - resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==, tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz} + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /json-parse-helpfulerror@1.0.3: - resolution: {integrity: sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==, tarball: https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz} + resolution: {integrity: sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==} dependencies: jju: 1.4.0 dev: true /json-ptr@2.2.0: - resolution: {integrity: sha512-w9f6/zhz4kykltXMG7MLJWMajxiPj0q+uzQPR1cggNAE/sXoq/C5vjUb/7QNcC3rJsVIIKy37ALTXy1O+3c8QQ==, tarball: https://registry.npmjs.org/json-ptr/-/json-ptr-2.2.0.tgz} + resolution: {integrity: sha512-w9f6/zhz4kykltXMG7MLJWMajxiPj0q+uzQPR1cggNAE/sXoq/C5vjUb/7QNcC3rJsVIIKy37ALTXy1O+3c8QQ==} dependencies: tslib: 2.8.1 dev: true /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, tarball: https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz} + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, tarball: https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz} + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, tarball: https://registry.npmjs.org/json5/-/json5-2.2.3.tgz} + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true /jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==, tarball: https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz} + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} dev: true /jsonfile@3.0.1: - resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz} + resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==} optionalDependencies: graceful-fs: 4.2.11 dev: true /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz} + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 dev: true /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz} + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: @@ -10449,12 +10622,12 @@ packages: dev: true /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, tarball: https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz} + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true /jsonwebtoken@8.5.1: - resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==, tarball: https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz} + resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} dependencies: jws: 3.2.2 @@ -10470,7 +10643,7 @@ packages: dev: true /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, tarball: https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz} + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} dependencies: assert-plus: 1.0.0 @@ -10480,7 +10653,7 @@ packages: dev: true /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==, tarball: https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz} + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 @@ -10489,7 +10662,7 @@ packages: dev: true /jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, tarball: https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz} + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 @@ -10497,7 +10670,7 @@ packages: dev: true /jwa@2.0.0: - resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==, tarball: https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz} + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 @@ -10505,25 +10678,25 @@ packages: dev: true /jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, tarball: https://registry.npmjs.org/jws/-/jws-3.2.2.tgz} + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: jwa: 1.4.1 safe-buffer: 5.2.1 dev: true /jws@4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, tarball: https://registry.npmjs.org/jws/-/jws-4.0.0.tgz} + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} dependencies: jwa: 2.0.0 safe-buffer: 5.2.1 dev: true /kagekiri@1.4.3: - resolution: {integrity: sha512-aBJi52dwFm/hGTtGq3995H5KKcGP/bHo7pBpxyElpNGuo33JRpoxLx6Bx2EdOEXIy+6pg8FZUg1lk1cuNQcubg==, tarball: https://registry.npmjs.org/kagekiri/-/kagekiri-1.4.3.tgz} + resolution: {integrity: sha512-aBJi52dwFm/hGTtGq3995H5KKcGP/bHo7pBpxyElpNGuo33JRpoxLx6Bx2EdOEXIy+6pg8FZUg1lk1cuNQcubg==} dev: true /karma-browserstack-launcher@1.6.0(karma@6.4.3): - resolution: {integrity: sha512-Y/UWPdHZkHIVH2To4GWHCTzmrsB6H7PBWy6pw+TWz5sr4HW2mcE+Uj6qWgoVNxvQU1Pfn5LQQzI6EQ65p8QbiQ==, tarball: https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.6.0.tgz} + resolution: {integrity: sha512-Y/UWPdHZkHIVH2To4GWHCTzmrsB6H7PBWy6pw+TWz5sr4HW2mcE+Uj6qWgoVNxvQU1Pfn5LQQzI6EQ65p8QbiQ==} peerDependencies: karma: '>=0.9' dependencies: @@ -10536,20 +10709,20 @@ packages: dev: true /karma-chrome-launcher@3.2.0: - resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==, tarball: https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz} + resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} dependencies: which: 1.3.1 dev: true /karma-firefox-launcher@2.1.3: - resolution: {integrity: sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==, tarball: https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz} + resolution: {integrity: sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==} dependencies: is-wsl: 2.2.0 which: 3.0.1 dev: true /karma-jasmine@4.0.2(karma@6.4.3): - resolution: {integrity: sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==, tarball: https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz} + resolution: {integrity: sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==} engines: {node: '>= 10'} peerDependencies: karma: '*' @@ -10558,19 +10731,8 @@ packages: karma: 6.4.3 dev: true - /karma-junit-reporter@2.0.1(karma@6.4.3): - resolution: {integrity: sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==, tarball: https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz} - engines: {node: '>= 8'} - peerDependencies: - karma: '>=0.9' - dependencies: - karma: 6.4.3 - path-is-absolute: 1.0.1 - xmlbuilder: 12.0.0 - dev: true - /karma-parallel@0.3.1(karma@6.4.3): - resolution: {integrity: sha512-64jxNYamYi/9Y67h4+FfViSYhwDgod3rLuq+ZdZ0c3XeZFp/3q3v3HVkd8b5Czp3hCB+LLF8DIv4zlR4xFqbRw==, tarball: https://registry.npmjs.org/karma-parallel/-/karma-parallel-0.3.1.tgz} + resolution: {integrity: sha512-64jxNYamYi/9Y67h4+FfViSYhwDgod3rLuq+ZdZ0c3XeZFp/3q3v3HVkd8b5Czp3hCB+LLF8DIv4zlR4xFqbRw==} engines: {node: '>=6'} peerDependencies: karma: '>= 1.0.0' @@ -10581,7 +10743,7 @@ packages: dev: true /karma-requirejs@1.1.0(karma@6.4.3)(requirejs@2.3.6): - resolution: {integrity: sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==, tarball: https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz} + resolution: {integrity: sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==} peerDependencies: karma: '>=0.9' requirejs: ^2.1.0 @@ -10591,19 +10753,19 @@ packages: dev: true /karma-source-map-support@1.4.0: - resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==, tarball: https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz} + resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} dependencies: source-map-support: 0.5.21 dev: true /karma-sourcemap-loader@0.3.8: - resolution: {integrity: sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==, tarball: https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz} + resolution: {integrity: sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==} dependencies: graceful-fs: 4.2.11 dev: true /karma@6.4.3: - resolution: {integrity: sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==, tarball: https://registry.npmjs.org/karma/-/karma-6.4.3.tgz} + resolution: {integrity: sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==} engines: {node: '>= 10'} hasBin: true dependencies: @@ -10639,64 +10801,64 @@ packages: dev: true /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==, tarball: https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz} + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} dependencies: json-buffer: 3.0.0 dev: true /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, tarball: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz} + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 dev: true /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, tarball: https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz} + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: true /klaw-sync@6.0.0: - resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==, tarball: https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz} + resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} dependencies: graceful-fs: 4.2.11 dev: true /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, tarball: https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz} + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} dev: false /known-css-properties@0.26.0: - resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==, tarball: https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz} + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} dev: true /kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==, tarball: https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz} + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} dev: true /latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==, tarball: https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz} + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} dependencies: package-json: 6.5.0 dev: true /launch-editor@2.8.0: - resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==, tarball: https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz} + resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} dependencies: picocolors: 1.1.1 shell-quote: 1.8.1 dev: true /lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, tarball: https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz} + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} dependencies: readable-stream: 2.3.8 dev: true /less-loader@12.2.0(less@4.2.2)(webpack@5.98.0): - resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==, tarball: https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz} + resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -10709,11 +10871,11 @@ packages: optional: true dependencies: less: 4.2.2 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /less@4.2.2: - resolution: {integrity: sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==, tarball: https://registry.npmjs.org/less/-/less-4.2.2.tgz} + resolution: {integrity: sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==} engines: {node: '>=6'} hasBin: true dependencies: @@ -10731,12 +10893,12 @@ packages: dev: true /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, tarball: https://registry.npmjs.org/leven/-/leven-3.1.0.tgz} + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} dev: true /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, tarball: https://registry.npmjs.org/levn/-/levn-0.3.0.tgz} + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 @@ -10744,37 +10906,37 @@ packages: dev: true /license-webpack-plugin@4.0.2(webpack@5.98.0): - resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==, tarball: https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz} + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} peerDependencies: webpack: '*' peerDependenciesMeta: webpack: optional: true dependencies: - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) webpack-sources: 3.2.3 dev: true /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==, tarball: https://registry.npmjs.org/lie/-/lie-3.3.0.tgz} + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 dev: true /limiter@1.1.5: - resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==, tarball: https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz} + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} dev: true /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true /listenercount@1.0.1: - resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==, tarball: https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz} + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} dev: true /listr2@8.2.5: - resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==, tarball: https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz} + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} dependencies: cli-truncate: 4.0.0 @@ -10786,7 +10948,7 @@ packages: dev: true /lmdb@3.2.6: - resolution: {integrity: sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==, tarball: https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz} + resolution: {integrity: sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==} hasBin: true dependencies: msgpackr: 1.11.2 @@ -10805,12 +10967,12 @@ packages: optional: true /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, tarball: https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz} + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} dev: true /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, tarball: https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz} + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} dependencies: big.js: 5.2.2 @@ -10819,12 +10981,12 @@ packages: dev: true /loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==, tarball: https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz} + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} dev: true /localtunnel@2.0.2: - resolution: {integrity: sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==, tarball: https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz} + resolution: {integrity: sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==} engines: {node: '>=8.3.0'} hasBin: true dependencies: @@ -10837,105 +10999,105 @@ packages: dev: true /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, tarball: https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz} + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz} + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true /lodash._isnative@2.4.1: - resolution: {integrity: sha512-BOlKGKNHhCHswGOWtmVb5zBygyxN7EmTuzVOSQI6QSoGhG+kvv71gICFS1TBpnqvT1n53txK8CDK3u5D2/GZxQ==, tarball: https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz} + resolution: {integrity: sha512-BOlKGKNHhCHswGOWtmVb5zBygyxN7EmTuzVOSQI6QSoGhG+kvv71gICFS1TBpnqvT1n53txK8CDK3u5D2/GZxQ==} dev: true /lodash._objecttypes@2.4.1: - resolution: {integrity: sha512-XpqGh1e7hhkOzftBfWE7zt+Yn9mVHFkDhicVttvKLsoCMLVVL+xTQjfjB4X4vtznauxv0QZ5ZAeqjvat0dh62Q==, tarball: https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz} + resolution: {integrity: sha512-XpqGh1e7hhkOzftBfWE7zt+Yn9mVHFkDhicVttvKLsoCMLVVL+xTQjfjB4X4vtznauxv0QZ5ZAeqjvat0dh62Q==} dev: true /lodash._reinterpolate@3.0.0: - resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==, tarball: https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz} + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} dev: true /lodash._shimkeys@2.4.1: - resolution: {integrity: sha512-lBrglYxLD/6KAJ8IEa5Lg+YHgNAL7FyKqXg4XOUI+Du/vtniLs1ZqS+yHNKPkK54waAgkdUnDOYaWf+rv4B+AA==, tarball: https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz} + resolution: {integrity: sha512-lBrglYxLD/6KAJ8IEa5Lg+YHgNAL7FyKqXg4XOUI+Du/vtniLs1ZqS+yHNKPkK54waAgkdUnDOYaWf+rv4B+AA==} dependencies: lodash._objecttypes: 2.4.1 dev: true /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, tarball: https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, tarball: https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz} + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true /lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, tarball: https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz} + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} dev: true /lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==, tarball: https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz} + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} dev: true /lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, tarball: https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz} + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} dev: true /lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, tarball: https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz} + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} dev: true /lodash.isarguments@2.4.1: - resolution: {integrity: sha512-CyMQjsJqDgXL8M2xYAP6V2dlVXli8IhWXLsk19uXxiL9/qISjzQXyWtxsumR2q4CnR9FjCnxpuIO1d9KSKBcyA==, tarball: https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz} + resolution: {integrity: sha512-CyMQjsJqDgXL8M2xYAP6V2dlVXli8IhWXLsk19uXxiL9/qISjzQXyWtxsumR2q4CnR9FjCnxpuIO1d9KSKBcyA==} dev: true /lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, tarball: https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz} + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} dev: true /lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, tarball: https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz} + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} dev: true /lodash.isfinite@3.3.2: - resolution: {integrity: sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==, tarball: https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz} + resolution: {integrity: sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==} dev: true /lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, tarball: https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz} + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} dev: true /lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, tarball: https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz} + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} dev: true /lodash.isobject@2.4.1: - resolution: {integrity: sha512-sTebg2a1PoicYEZXD5PBdQcTlIJ6hUslrlWr7iV0O7n+i4596s2NQ9I5CaZ5FbXSfya/9WQsrYLANUJv9paYVA==, tarball: https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz} + resolution: {integrity: sha512-sTebg2a1PoicYEZXD5PBdQcTlIJ6hUslrlWr7iV0O7n+i4596s2NQ9I5CaZ5FbXSfya/9WQsrYLANUJv9paYVA==} dependencies: lodash._objecttypes: 2.4.1 dev: true /lodash.isobject@3.0.2: - resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==, tarball: https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz} + resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} dev: true /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, tarball: https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz} + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: true /lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, tarball: https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz} + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} dev: true /lodash.keys@2.4.1: - resolution: {integrity: sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==, tarball: https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz} + resolution: {integrity: sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==} dependencies: lodash._isnative: 2.4.1 lodash._shimkeys: 2.4.1 @@ -10943,15 +11105,15 @@ packages: dev: true /lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, tarball: https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz} + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} dev: true /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, tarball: https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz} + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} dev: true /lodash.template@4.5.0: - resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==, tarball: https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz} + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} deprecated: This package is deprecated. Use https://socket.dev/npm/package/eta instead. dependencies: lodash._reinterpolate: 3.0.0 @@ -10959,38 +11121,38 @@ packages: dev: true /lodash.templatesettings@4.2.0: - resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==, tarball: https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz} + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} dependencies: lodash._reinterpolate: 3.0.0 dev: true /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, tarball: https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz} + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true /lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==, tarball: https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz} + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} dev: true /lodash.values@2.4.1: - resolution: {integrity: sha512-fQwubKvj2Nox2gy6YnjFm8C1I6MIlzKUtBB+Pj7JGtloGqDDL5CPRr4DUUFWPwXWwAl2k3f4C3Aw8H1qAPB9ww==, tarball: https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz} + resolution: {integrity: sha512-fQwubKvj2Nox2gy6YnjFm8C1I6MIlzKUtBB+Pj7JGtloGqDDL5CPRr4DUUFWPwXWwAl2k3f4C3Aw8H1qAPB9ww==} dependencies: lodash.keys: 2.4.1 dev: true /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true /log-symbols@2.2.0: - resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, tarball: https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz} + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} engines: {node: '>=4'} dependencies: chalk: 2.4.2 dev: true /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, tarball: https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz} + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: chalk: 4.1.2 @@ -10998,7 +11160,7 @@ packages: dev: true /log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==, tarball: https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz} + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} dependencies: ansi-escapes: 7.0.0 @@ -11009,7 +11171,7 @@ packages: dev: true /log4js@6.9.1: - resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==, tarball: https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz} + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 @@ -11022,7 +11184,7 @@ packages: dev: true /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==, tarball: https://registry.npmjs.org/logform/-/logform-2.6.0.tgz} + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 @@ -11034,75 +11196,75 @@ packages: dev: true /long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==, tarball: https://registry.npmjs.org/long/-/long-4.0.0.tgz} + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: true /long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, tarball: https://registry.npmjs.org/long/-/long-5.2.3.tgz} + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: true /lower-case-first@1.0.2: - resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==, tarball: https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz} + resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} dependencies: lower-case: 1.1.4 dev: true /lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, tarball: https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz} + resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} dev: true /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, tarball: https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz} + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} dev: true /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, tarball: https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz} + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} dev: true /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz} + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} dev: true /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz} + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz} + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true /lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==, tarball: https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz} + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: es5-ext: 0.10.64 dev: true /luxon@3.4.4: - resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==, tarball: https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz} + resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} engines: {node: '>=12'} - dev: true + dev: false /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz} + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 dev: true /magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz} + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} dependencies: '@jridgewell/sourcemap-codec': 1.5.0 dev: true /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz} + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} dependencies: pify: 4.0.1 @@ -11111,25 +11273,25 @@ packages: optional: true /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz} + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: semver: 6.3.1 dev: true /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz} + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: semver: 7.7.1 dev: true /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, tarball: https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz} + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true /make-fetch-happen@13.0.1: - resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==, tarball: https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz} + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/agent': 2.2.2 @@ -11149,7 +11311,7 @@ packages: dev: true /make-fetch-happen@14.0.2: - resolution: {integrity: sha512-ByhSXJdWoBKRHKaqfmULjm4RwlL3EN9bZogHPDIuT9GHJIqHgh8FYkxpcCMsvaNTwl2VzFFYgzrGMlGsOEtGPQ==, tarball: https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.2.tgz} + resolution: {integrity: sha512-ByhSXJdWoBKRHKaqfmULjm4RwlL3EN9bZogHPDIuT9GHJIqHgh8FYkxpcCMsvaNTwl2VzFFYgzrGMlGsOEtGPQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/agent': 3.0.0 @@ -11168,21 +11330,21 @@ packages: dev: true /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, tarball: https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz} + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} dev: true /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, tarball: https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz} + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} dev: true /map-stream@0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==, tarball: https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz} + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: true /marked-terminal@3.3.0(marked@0.7.0): - resolution: {integrity: sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==, tarball: https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz} + resolution: {integrity: sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==} peerDependencies: marked: ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 dependencies: @@ -11196,28 +11358,28 @@ packages: dev: true /marked@0.7.0: - resolution: {integrity: sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==, tarball: https://registry.npmjs.org/marked/-/marked-0.7.0.tgz} + resolution: {integrity: sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==} engines: {node: '>=0.10.0'} hasBin: true dev: true /marked@2.1.3: - resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==, tarball: https://registry.npmjs.org/marked/-/marked-2.1.3.tgz} + resolution: {integrity: sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==} engines: {node: '>= 10'} hasBin: true dev: true /mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, tarball: https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} dev: true /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, tarball: https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz} + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} dev: true /memfs@4.9.3: - resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==, tarball: https://registry.npmjs.org/memfs/-/memfs-4.9.3.tgz} + resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==} engines: {node: '>= 4.0.0'} dependencies: '@jsonjoy.com/json-pack': 1.0.4(tslib@2.8.1) @@ -11227,7 +11389,7 @@ packages: dev: true /memoizee@0.4.17: - resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==, tarball: https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz} + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} engines: {node: '>=0.12'} dependencies: d: 1.0.2 @@ -11241,7 +11403,7 @@ packages: dev: true /meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, tarball: https://registry.npmjs.org/meow/-/meow-9.0.0.tgz} + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} engines: {node: '>=10'} dependencies: '@types/minimist': 1.2.5 @@ -11259,25 +11421,25 @@ packages: dev: true /merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, tarball: https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz} + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} dev: true /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz} + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, tarball: https://registry.npmjs.org/methods/-/methods-1.1.2.tgz} + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} dev: true /micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz} + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.3 @@ -11285,101 +11447,101 @@ packages: dev: true /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz} + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz} + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true /mime@1.4.1: - resolution: {integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==, tarball: https://registry.npmjs.org/mime/-/mime-1.4.1.tgz} + resolution: {integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==} hasBin: true dev: true /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: https://registry.npmjs.org/mime/-/mime-1.6.0.tgz} + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true dev: true /mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, tarball: https://registry.npmjs.org/mime/-/mime-2.6.0.tgz} + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} hasBin: true dev: true /mimic-fn@1.2.0: - resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==, tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz} + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} dev: true /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz} + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true /mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==, tarball: https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz} + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} dev: true /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, tarball: https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz} + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} dev: true /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, tarball: https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz} + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} dev: true /mini-css-extract-plugin@2.9.2(webpack@5.98.0): - resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==, tarball: https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz} + resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.3.0 tapable: 2.2.1 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, tarball: https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} dev: true /minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz} + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} dependencies: brace-expansion: 1.1.11 dev: true /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz} + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true /minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz} + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, tarball: https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz} + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} dependencies: arrify: 1.0.1 @@ -11388,17 +11550,17 @@ packages: dev: true /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} /minipass-collect@2.0.1: - resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==, tarball: https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz} + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: minipass: 7.1.2 dev: true /minipass-fetch@3.0.5: - resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==, tarball: https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz} + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.1.2 @@ -11409,7 +11571,7 @@ packages: dev: true /minipass-fetch@4.0.0: - resolution: {integrity: sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==, tarball: https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz} + resolution: {integrity: sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: minipass: 7.1.2 @@ -11420,58 +11582,58 @@ packages: dev: true /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, tarball: https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz} + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, tarball: https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz} + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 dev: true /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==, tarball: https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz} + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} dependencies: minipass: 3.3.6 dev: true /minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==, tarball: https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz} + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} dependencies: safe-buffer: 5.2.1 yallist: 3.1.1 dev: true /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, tarball: https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz} + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} dependencies: yallist: 4.0.0 dev: true /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, tarball: https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz} + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} dev: true /minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, tarball: https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz} + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} dev: true /minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==, tarball: https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz} + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} dependencies: minipass: 2.9.0 dev: true /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, tarball: https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz} + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} dependencies: minipass: 3.3.6 @@ -11479,7 +11641,7 @@ packages: dev: true /minizlib@3.0.1: - resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==, tarball: https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz} + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} dependencies: minipass: 7.1.2 @@ -11487,33 +11649,33 @@ packages: dev: true /mitt@1.2.0: - resolution: {integrity: sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==, tarball: https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz} + resolution: {integrity: sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==} dev: true /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz} + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.8 /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz} + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true /mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz} + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} hasBin: true dev: true /moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==, tarball: https://registry.npmjs.org/moment/-/moment-2.30.1.tgz} - dev: true + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + dev: false /morgan@1.10.0: - resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==, tarball: https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz} + resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} dependencies: basic-auth: 2.0.1 @@ -11526,23 +11688,23 @@ packages: dev: true /mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==, tarball: https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz} + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} dev: true /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, tarball: https://registry.npmjs.org/ms/-/ms-2.0.0.tgz} + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz} + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} /msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==, tarball: https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz} + resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true dependencies: node-gyp-build-optional-packages: 5.2.2 @@ -11557,14 +11719,14 @@ packages: optional: true /msgpackr@1.11.2: - resolution: {integrity: sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==, tarball: https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz} + resolution: {integrity: sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==} optionalDependencies: msgpackr-extract: 3.0.3 dev: true optional: true /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==, tarball: https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz} + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} hasBin: true dependencies: dns-packet: 5.6.1 @@ -11572,36 +11734,36 @@ packages: dev: true /mute-stream@0.0.7: - resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==, tarball: https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz} + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} dev: true /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, tarball: https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz} + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true /mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==, tarball: https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz} + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==, tarball: https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz} + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /nan@2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==, tarball: https://registry.npmjs.org/nan/-/nan-2.20.0.tgz} + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} dev: true optional: true /nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz} + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true /nash@3.0.0: - resolution: {integrity: sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==, tarball: https://registry.npmjs.org/nash/-/nash-3.0.0.tgz} + resolution: {integrity: sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==} dependencies: async: 1.5.2 flat-arguments: 1.0.2 @@ -11610,7 +11772,7 @@ packages: dev: true /needle@3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==, tarball: https://registry.npmjs.org/needle/-/needle-3.3.1.tgz} + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} engines: {node: '>= 4.4.x'} hasBin: true dependencies: @@ -11620,56 +11782,56 @@ packages: optional: true /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz} + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} dev: true /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz} + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true /netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, tarball: https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz} + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} dev: true /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, tarball: https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz} + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true /nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, tarball: https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz} + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true /no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, tarball: https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz} + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} dependencies: lower-case: 1.1.4 dev: true /node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==, tarball: https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz} + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: true optional: true /node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, tarball: https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz} + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} dev: true optional: true /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, tarball: https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz} + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} dev: true /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==, tarball: https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz} + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: lodash: 4.17.21 dev: true /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz} + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -11681,7 +11843,7 @@ packages: dev: true /node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz} + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.1 @@ -11690,12 +11852,12 @@ packages: dev: true /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, tarball: https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz} + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} dev: true /node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==, tarball: https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz} + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true dependencies: detect-libc: 2.0.3 @@ -11703,7 +11865,7 @@ packages: optional: true /node-gyp@10.1.0: - resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==, tarball: https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz} + resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: @@ -11722,17 +11884,17 @@ packages: dev: true /node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz} + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} /nopt@3.0.6: - resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==, tarball: https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz} + resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} hasBin: true dependencies: abbrev: 1.1.1 dev: true /nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==, tarball: https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz} + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: @@ -11740,7 +11902,7 @@ packages: dev: true /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, tarball: https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.10 @@ -11749,7 +11911,7 @@ packages: dev: true /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, tarball: https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 @@ -11759,7 +11921,7 @@ packages: dev: true /normalize-package-data@7.0.0: - resolution: {integrity: sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==, tarball: https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz} + resolution: {integrity: sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: hosted-git-info: 8.0.0 @@ -11768,41 +11930,41 @@ packages: dev: true /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz} + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, tarball: https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz} + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} dev: true /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==, tarball: https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz} + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} dev: true /npm-bundled@4.0.0: - resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==, tarball: https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz} + resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: npm-normalize-package-bin: 4.0.0 dev: true /npm-install-checks@7.1.0: - resolution: {integrity: sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==, tarball: https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.0.tgz} + resolution: {integrity: sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: semver: 7.7.1 dev: true /npm-normalize-package-bin@4.0.0: - resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==, tarball: https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz} + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /npm-package-arg@12.0.2: - resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==, tarball: https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz} + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: hosted-git-info: 8.0.0 @@ -11812,14 +11974,14 @@ packages: dev: true /npm-packlist@9.0.0: - resolution: {integrity: sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==, tarball: https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz} + resolution: {integrity: sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: ignore-walk: 7.0.0 dev: true /npm-pick-manifest@10.0.0: - resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==, tarball: https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz} + resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: npm-install-checks: 7.1.0 @@ -11829,7 +11991,7 @@ packages: dev: true /npm-registry-fetch@18.0.1: - resolution: {integrity: sha512-5XKlWmVtfTTmnU6rKBjjQDMdnFOVAH9t7D4DG1ZcsIDwkGYBTUl0fMnbzsVSM0t/HZRpyE1VMLZv9O0Bvkj3UA==, tarball: https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.1.tgz} + resolution: {integrity: sha512-5XKlWmVtfTTmnU6rKBjjQDMdnFOVAH9t7D4DG1ZcsIDwkGYBTUl0fMnbzsVSM0t/HZRpyE1VMLZv9O0Bvkj3UA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@npmcli/redact': 3.0.0 @@ -11845,13 +12007,13 @@ packages: dev: true /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz} + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true /nunjucks@3.2.4: - resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==, tarball: https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz} + resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==} engines: {node: '>= 6.9.0'} hasBin: true peerDependencies: @@ -11866,89 +12028,89 @@ packages: dev: true /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, tarball: https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz} + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz} + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true /object-component@0.0.3: - resolution: {integrity: sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA==, tarball: https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz} + resolution: {integrity: sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA==} dev: true /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, tarball: https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz} + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} dev: true /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz} + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true /objectdiff@1.1.0: - resolution: {integrity: sha512-erLmuAAfFoU13H1ud2b8btqsCLjHaSmQh5h+BoZSjMbIaeHp9v5xCSyEWN/AJHge4dHBR/dY/QhpuVMhYLoF+g==, tarball: https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz} + resolution: {integrity: sha512-erLmuAAfFoU13H1ud2b8btqsCLjHaSmQh5h+BoZSjMbIaeHp9v5xCSyEWN/AJHge4dHBR/dY/QhpuVMhYLoF+g==} engines: {node: '>=0.2.0'} dev: true /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, tarball: https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz} + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, tarball: https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz} + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, tarball: https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz} + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, tarball: https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz} + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} dev: true /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 /one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, tarball: https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz} + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: fn.name: 1.1.0 dev: true /onetime@2.0.1: - resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, tarball: https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz} + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} engines: {node: '>=4'} dependencies: mimic-fn: 1.2.0 dev: true /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, tarball: https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz} + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true /onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==, tarball: https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz} + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} dependencies: mimic-function: 5.0.1 dev: true /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==, tarball: https://registry.npmjs.org/open/-/open-10.1.0.tgz} + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} dependencies: default-browser: 5.2.1 @@ -11958,14 +12120,14 @@ packages: dev: true /open@6.4.0: - resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==, tarball: https://registry.npmjs.org/open/-/open-6.4.0.tgz} + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} engines: {node: '>=8'} dependencies: is-wsl: 1.1.0 dev: true /open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, tarball: https://registry.npmjs.org/open/-/open-7.4.2.tgz} + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 @@ -11973,24 +12135,24 @@ packages: dev: true /openapi3-ts@2.0.2: - resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==, tarball: https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.2.tgz} + resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} dependencies: yaml: 1.10.2 dev: true /openurl@1.1.1: - resolution: {integrity: sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==, tarball: https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz} + resolution: {integrity: sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==} dev: true /opn@5.3.0: - resolution: {integrity: sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==, tarball: https://registry.npmjs.org/opn/-/opn-5.3.0.tgz} + resolution: {integrity: sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==} engines: {node: '>=4'} dependencies: is-wsl: 1.1.0 dev: true /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, tarball: https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz} + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 @@ -12002,7 +12164,7 @@ packages: dev: true /ora@3.4.0: - resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==, tarball: https://registry.npmjs.org/ora/-/ora-3.4.0.tgz} + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} dependencies: chalk: 2.4.2 @@ -12014,7 +12176,7 @@ packages: dev: true /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, tarball: https://registry.npmjs.org/ora/-/ora-5.4.1.tgz} + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} dependencies: bl: 4.1.0 @@ -12029,72 +12191,72 @@ packages: dev: true /ordered-binary@1.5.3: - resolution: {integrity: sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==, tarball: https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz} + resolution: {integrity: sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==} dev: true optional: true /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, tarball: https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} dev: true /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==, tarball: https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz} + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} dev: true /p-defer@3.0.0: - resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==, tarball: https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz} + resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} engines: {node: '>=8'} dev: true /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, tarball: https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz} + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} dev: true /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz} + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz} + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, tarball: https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz} + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, tarball: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz} + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, tarball: https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz} + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 dev: true /p-map@7.0.2: - resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==, tarball: https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz} + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} engines: {node: '>=18'} dev: true /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==, tarball: https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz} + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} dependencies: eventemitter3: 4.0.7 @@ -12102,7 +12264,7 @@ packages: dev: true /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==, tarball: https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz} + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} engines: {node: '>=16.17'} dependencies: '@types/retry': 0.12.2 @@ -12111,19 +12273,19 @@ packages: dev: true /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==, tarball: https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz} + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} dependencies: p-finally: 1.0.0 dev: true /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, tarball: https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz} + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: true /pac-proxy-agent@5.0.0: - resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==, tarball: https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz} + resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==} engines: {node: '>= 8'} dependencies: '@tootallnate/once': 1.1.2 @@ -12140,7 +12302,7 @@ packages: dev: true /pac-resolver@5.0.1: - resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==, tarball: https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz} + resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==} engines: {node: '>= 8'} dependencies: degenerator: 3.0.4 @@ -12149,11 +12311,11 @@ packages: dev: true /package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==, tarball: https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz} + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} dev: true /package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==, tarball: https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz} + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} dependencies: got: 9.6.0 @@ -12163,7 +12325,7 @@ packages: dev: true /pacote@20.0.0: - resolution: {integrity: sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==, tarball: https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz} + resolution: {integrity: sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dependencies: @@ -12190,24 +12352,24 @@ packages: dev: true /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, tarball: https://registry.npmjs.org/pako/-/pako-1.0.11.tgz} + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true /param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, tarball: https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz} + resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} dependencies: no-case: 2.3.2 dev: true /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz} + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz} + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.26.2 @@ -12217,12 +12379,12 @@ packages: dev: true /parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, tarball: https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz} + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} dev: true /parse5-html-rewriting-stream@7.0.0: - resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==, tarball: https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz} + resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==} dependencies: entities: 4.5.0 parse5: 7.1.2 @@ -12230,47 +12392,46 @@ packages: dev: true /parse5-sax-parser@7.0.0: - resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==, tarball: https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz} + resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} dependencies: parse5: 7.1.2 dev: true /parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==, tarball: https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz} + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} dev: true /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, tarball: https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz} + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - dev: true /parseqs@0.0.5: - resolution: {integrity: sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw==, tarball: https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz} + resolution: {integrity: sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw==} dependencies: better-assert: 1.0.2 dev: true /parseuri@0.0.5: - resolution: {integrity: sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog==, tarball: https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz} + resolution: {integrity: sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog==} dependencies: better-assert: 1.0.2 dev: true /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, tarball: https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz} + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} dev: true /pascal-case@2.0.1: - resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==, tarball: https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz} + resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} dependencies: camel-case: 3.0.0 upper-case-first: 1.1.2 dev: true /patch-package@6.5.1: - resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==, tarball: https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz} + resolution: {integrity: sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==} engines: {node: '>=10', npm: '>5'} hasBin: true dependencies: @@ -12291,39 +12452,39 @@ packages: dev: true /path-case@2.1.1: - resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==, tarball: https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz} + resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} dependencies: no-case: 2.3.2 dev: true /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz} + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, tarball: https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz} + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} dev: true /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, tarball: https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz} + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} engines: {node: '>=4'} dev: true /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz} + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz} + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} /path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, tarball: https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz} + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: lru-cache: 10.2.2 @@ -12331,83 +12492,83 @@ packages: dev: true /path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==, tarball: https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz} + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} dev: true /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, tarball: https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz} + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==, tarball: https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz} + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} dependencies: isarray: 0.0.1 dev: true /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz} + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true /pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, tarball: https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz} + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} dependencies: through: 2.3.8 dev: true /performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz} + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} dev: true /picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz} + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true /picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz} + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, tarball: https://registry.npmjs.org/pify/-/pify-2.3.0.tgz} + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, tarball: https://registry.npmjs.org/pify/-/pify-4.0.1.tgz} + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} dev: true optional: true /pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==, tarball: https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz} + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 dev: true /pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==, tarball: https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz} + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} dev: true /piscina@4.8.0: - resolution: {integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==, tarball: https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz} + resolution: {integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==} optionalDependencies: '@napi-rs/nice': 1.0.1 dev: true /piscina@4.9.2: - resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==, tarball: https://registry.npmjs.org/piscina/-/piscina-4.9.2.tgz} + resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} optionalDependencies: '@napi-rs/nice': 1.0.1 dev: true /portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==, tarball: https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz} + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} dependencies: async: 2.6.4 @@ -12418,7 +12579,7 @@ packages: dev: true /portscanner@2.1.1: - resolution: {integrity: sha512-CUxI7PHXrWJTIPmQs1YJFyD4uesS3om2jVcgS3T1eYPyd60s1l0m7tf35Fn5KRAtV51SAD7BmImaOGf6vwhiFQ==, tarball: https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz} + resolution: {integrity: sha512-CUxI7PHXrWJTIPmQs1YJFyD4uesS3om2jVcgS3T1eYPyd60s1l0m7tf35Fn5KRAtV51SAD7BmImaOGf6vwhiFQ==} engines: {node: '>=0.4', npm: '>=1.0.0'} dependencies: async: 1.5.2 @@ -12426,7 +12587,7 @@ packages: dev: true /portscanner@2.2.0: - resolution: {integrity: sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==, tarball: https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz} + resolution: {integrity: sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==} engines: {node: '>=0.4', npm: '>=1.0.0'} dependencies: async: 2.6.4 @@ -12434,7 +12595,7 @@ packages: dev: true /postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0): - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==, tarball: https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz} + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -12450,17 +12611,17 @@ packages: jiti: 1.21.6 postcss: 8.5.3 semver: 7.7.1 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) transitivePeerDependencies: - typescript dev: true /postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, tarball: https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true /postcss-modules-extract-imports@3.1.0(postcss@8.5.3): - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, tarball: https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz} + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -12469,7 +12630,7 @@ packages: dev: true /postcss-modules-local-by-default@4.0.5(postcss@8.5.3): - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, tarball: https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz} + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -12481,7 +12642,7 @@ packages: dev: true /postcss-modules-scope@3.2.0(postcss@8.5.3): - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, tarball: https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz} + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -12491,7 +12652,7 @@ packages: dev: true /postcss-modules-values@4.0.0(postcss@8.5.3): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, tarball: https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz} + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -12501,11 +12662,11 @@ packages: dev: true /postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==, tarball: https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz} + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true /postcss-safe-parser@6.0.0(postcss@8.5.3): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, tarball: https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 @@ -12514,7 +12675,7 @@ packages: dev: true /postcss-scss@4.0.9(postcss@8.5.3): - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==, tarball: https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz} + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 @@ -12523,7 +12684,7 @@ packages: dev: true /postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==, tarball: https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz} + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -12531,11 +12692,11 @@ packages: dev: true /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true /postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz} + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.8 @@ -12544,55 +12705,55 @@ packages: dev: true /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz} + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} dev: true /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==, tarball: https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz} + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} dev: true /prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==, tarball: https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz} + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} hasBin: true dev: true /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, tarball: https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz} + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /proc-log@4.2.0: - resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==, tarball: https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz} + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true /proc-log@5.0.0: - resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==, tarball: https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz} + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /process-nextick-args@1.0.7: - resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==, tarball: https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz} + resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} dev: true /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, tarball: https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true /progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, tarball: https://registry.npmjs.org/progress/-/progress-2.0.3.tgz} + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} dev: true /promise-breaker@5.0.0: - resolution: {integrity: sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==, tarball: https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz} + resolution: {integrity: sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==} dev: true /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, tarball: https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz} + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: bluebird: '*' peerDependenciesMeta: @@ -12601,7 +12762,7 @@ packages: dev: true /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, tarball: https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz} + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} dependencies: err-code: 2.0.3 @@ -12609,7 +12770,7 @@ packages: dev: true /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, tarball: https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz} + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} dependencies: kleur: 3.0.3 @@ -12617,26 +12778,26 @@ packages: dev: false /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==, tarball: https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz} + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} dependencies: xtend: 4.0.2 dev: true /proto3-json-serializer@0.1.9: - resolution: {integrity: sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ==, tarball: https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz} + resolution: {integrity: sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ==} dependencies: protobufjs: 6.11.4 dev: true /proto3-json-serializer@2.0.2: - resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==, tarball: https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz} + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} dependencies: protobufjs: 7.4.0 dev: true /protobufjs@6.11.2: - resolution: {integrity: sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz} + resolution: {integrity: sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==} hasBin: true dependencies: '@protobufjs/aspromise': 1.1.2 @@ -12655,7 +12816,7 @@ packages: dev: true /protobufjs@6.11.4: - resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz} + resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} hasBin: true dependencies: '@protobufjs/aspromise': 1.1.2 @@ -12674,7 +12835,7 @@ packages: dev: true /protobufjs@6.8.8: - resolution: {integrity: sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz} + resolution: {integrity: sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==} hasBin: true dependencies: '@protobufjs/aspromise': 1.1.2 @@ -12693,7 +12854,7 @@ packages: dev: true /protobufjs@7.4.0: - resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==, tarball: https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz} + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} engines: {node: '>=12.0.0'} dependencies: '@protobufjs/aspromise': 1.1.2 @@ -12711,7 +12872,7 @@ packages: dev: true /protractor@7.0.0: - resolution: {integrity: sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==, tarball: https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz} + resolution: {integrity: sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==} engines: {node: '>=10.13.x'} deprecated: We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular hasBin: true @@ -12736,7 +12897,7 @@ packages: dev: true /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, tarball: https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz} + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 @@ -12744,7 +12905,7 @@ packages: dev: true /proxy-agent@5.0.0: - resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==, tarball: https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz} + resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==} engines: {node: '>= 8'} dependencies: agent-base: 6.0.2(supports-color@10.0.0) @@ -12760,16 +12921,16 @@ packages: dev: true /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, tarball: https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz} + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true /prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, tarball: https://registry.npmjs.org/prr/-/prr-1.0.1.tgz} + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} dev: true optional: true /ps-tree@1.2.0: - resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, tarball: https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz} + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} engines: {node: '>= 0.10'} hasBin: true dependencies: @@ -12777,25 +12938,25 @@ packages: dev: true /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, tarball: https://registry.npmjs.org/psl/-/psl-1.9.0.tgz} + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true /pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, tarball: https://registry.npmjs.org/pump/-/pump-2.0.1.tgz} + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, tarball: https://registry.npmjs.org/pump/-/pump-3.0.0.tgz} + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true /pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, tarball: https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz} + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} dependencies: duplexify: 3.7.1 inherits: 2.0.4 @@ -12803,23 +12964,23 @@ packages: dev: true /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, tarball: https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz} + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz} + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true /pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==, tarball: https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz} + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} engines: {node: '>=8'} dependencies: escape-goat: 2.1.1 dev: true /q@1.4.1: - resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==, tarball: https://registry.npmjs.org/q/-/q-1.4.1.tgz} + resolution: {integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. @@ -12828,7 +12989,7 @@ packages: dev: true /q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, tarball: https://registry.npmjs.org/q/-/q-1.5.1.tgz} + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. @@ -12837,49 +12998,49 @@ packages: dev: true /qjobs@1.2.0: - resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==, tarball: https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz} + resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} engines: {node: '>=0.9'} dev: true /qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, tarball: https://registry.npmjs.org/qs/-/qs-6.13.0.tgz} + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 dev: true /qs@6.2.3: - resolution: {integrity: sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA==, tarball: https://registry.npmjs.org/qs/-/qs-6.2.3.tgz} + resolution: {integrity: sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA==} engines: {node: '>=0.6'} dev: true /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, tarball: https://registry.npmjs.org/qs/-/qs-6.5.3.tgz} + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} dev: true /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz} + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, tarball: https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz} + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} dev: true /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, tarball: https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz} + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 dev: true /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, tarball: https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz} + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} dev: true /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz} + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 @@ -12889,7 +13050,7 @@ packages: dev: true /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, tarball: https://registry.npmjs.org/rc/-/rc-1.2.8.tgz} + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true dependencies: deep-extend: 0.6.0 @@ -12899,7 +13060,7 @@ packages: dev: true /re2@1.21.3: - resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==, tarball: https://registry.npmjs.org/re2/-/re2-1.21.3.tgz} + resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==} dependencies: install-artifact-from-github: 1.3.5 nan: 2.20.0 @@ -12910,7 +13071,7 @@ packages: optional: true /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} dependencies: find-up: 4.1.0 @@ -12919,7 +13080,7 @@ packages: dev: true /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, tarball: https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz} + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 @@ -12929,7 +13090,7 @@ packages: dev: true /readable-stream@1.1.14: - resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==, tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz} + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -12938,7 +13099,7 @@ packages: dev: true /readable-stream@2.0.6: - resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==, tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz} + resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -12949,7 +13110,7 @@ packages: dev: true /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz} + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -12961,7 +13122,7 @@ packages: dev: true /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz} + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: inherits: 2.0.4 @@ -12970,31 +13131,31 @@ packages: dev: true /readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, tarball: https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz} + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} dependencies: minimatch: 5.1.6 dev: true /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz} + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true /readdirp@4.0.2: - resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==, tarball: https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz} + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, tarball: https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz} + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: resolve: 1.22.10 dev: true /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, tarball: https://registry.npmjs.org/redent/-/redent-3.0.0.tgz} + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} dependencies: indent-string: 4.0.0 @@ -13002,45 +13163,45 @@ packages: dev: true /redeyed@2.1.1: - resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==, tarball: https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz} + resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} dependencies: esprima: 4.0.1 dev: true /reflect-metadata@0.1.14: - resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==, tarball: https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz} + resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} dev: true /reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==, tarball: https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz} + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} /regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==, tarball: https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz} + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 dev: true /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, tarball: https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz} + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz} + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, tarball: https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz} + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.26.10 + '@babel/runtime': 7.27.0 dev: true /regex-parser@2.3.0: - resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==, tarball: https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz} + resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} dev: true /regexpu-core@6.1.1: - resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==, tarball: https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz} + resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 @@ -13052,32 +13213,32 @@ packages: dev: true /registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==, tarball: https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz} + resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 dev: true /registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==, tarball: https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz} + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} dependencies: rc: 1.2.8 dev: true /regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, tarball: https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz} + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} dev: true /regjsparser@0.11.1: - resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==, tarball: https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz} + resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} hasBin: true dependencies: jsesc: 3.0.2 dev: true /rehype-parse@6.0.2: - resolution: {integrity: sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==, tarball: https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz} + resolution: {integrity: sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==} dependencies: hast-util-from-parse5: 5.0.3 parse5: 5.1.1 @@ -13085,14 +13246,14 @@ packages: dev: true /rehype-stringify@6.0.1: - resolution: {integrity: sha512-JfEPRDD4DiG7jet4md7sY07v6ACeb2x+9HWQtRPm2iA6/ic31hCv1SNBUtpolJASxQ/D8gicXiviW4TJKEMPKQ==, tarball: https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-6.0.1.tgz} + resolution: {integrity: sha512-JfEPRDD4DiG7jet4md7sY07v6ACeb2x+9HWQtRPm2iA6/ic31hCv1SNBUtpolJASxQ/D8gicXiviW4TJKEMPKQ==} dependencies: hast-util-to-html: 6.1.0 xtend: 4.0.2 dev: true /rehype@8.0.0: - resolution: {integrity: sha512-fqcYo/q4Xka0ZvS6abiHtZsN7/TauTzTZQfXqtWACo9Qz76Vv/8uzhOizAfDBjVPhbnDl3xPIMRArUdcV/xFaA==, tarball: https://registry.npmjs.org/rehype/-/rehype-8.0.0.tgz} + resolution: {integrity: sha512-fqcYo/q4Xka0ZvS6abiHtZsN7/TauTzTZQfXqtWACo9Qz76Vv/8uzhOizAfDBjVPhbnDl3xPIMRArUdcV/xFaA==} dependencies: rehype-parse: 6.0.2 rehype-stringify: 6.0.1 @@ -13100,12 +13261,12 @@ packages: dev: true /replace-ext@1.0.0: - resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==, tarball: https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz} + resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} engines: {node: '>= 0.10'} dev: true /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, tarball: https://registry.npmjs.org/request/-/request-2.88.2.tgz} + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} engines: {node: '>= 6'} deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 dependencies: @@ -13132,40 +13293,40 @@ packages: dev: true /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz} + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz} + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} dev: true /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, tarball: https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz} + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true /requirejs@2.3.6: - resolution: {integrity: sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==, tarball: https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz} + resolution: {integrity: sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==} engines: {node: '>=0.4.0'} hasBin: true dev: true /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, tarball: https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz} + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz} + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz} + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: true /resolve-url-loader@5.0.0: - resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==, tarball: https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz} + resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} engines: {node: '>=12'} dependencies: adjust-sourcemap-loader: 4.0.0 @@ -13176,11 +13337,11 @@ packages: dev: true /resolve@1.1.7: - resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==, tarball: https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz} + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} dev: true /resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz} + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} hasBin: true dependencies: @@ -13189,7 +13350,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 /resp-modifier@6.0.2: - resolution: {integrity: sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==, tarball: https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz} + resolution: {integrity: sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==} engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -13199,13 +13360,13 @@ packages: dev: true /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==, tarball: https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz} + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} dependencies: lowercase-keys: 1.0.1 dev: true /restore-cursor@2.0.0: - resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==, tarball: https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz} + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} dependencies: onetime: 2.0.1 @@ -13213,7 +13374,7 @@ packages: dev: true /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, tarball: https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz} + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: onetime: 5.1.2 @@ -13221,7 +13382,7 @@ packages: dev: true /restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==, tarball: https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz} + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} dependencies: onetime: 7.0.0 @@ -13229,7 +13390,7 @@ packages: dev: true /retry-request@4.2.2: - resolution: {integrity: sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==, tarball: https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz} + resolution: {integrity: sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==} engines: {node: '>=8.10.0'} dependencies: debug: 4.4.0(supports-color@10.0.0) @@ -13239,7 +13400,7 @@ packages: dev: true /retry-request@7.0.2(supports-color@10.0.0): - resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==, tarball: https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz} + resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} engines: {node: '>=14'} dependencies: '@types/request': 2.48.12 @@ -13251,26 +13412,26 @@ packages: dev: true /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==, tarball: https://registry.npmjs.org/retry/-/retry-0.12.0.tgz} + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} dev: true /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, tarball: https://registry.npmjs.org/retry/-/retry-0.13.1.tgz} + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} dev: true /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz} + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true /rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, tarball: https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz} + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} dev: true /rimraf@2.5.4: - resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz} + resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: @@ -13278,7 +13439,7 @@ packages: dev: true /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz} + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: @@ -13286,7 +13447,7 @@ packages: dev: true /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz} + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: @@ -13294,14 +13455,14 @@ packages: dev: true /rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz} + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true dependencies: glob: 10.4.5 dev: true /rollup-plugin-dts@6.1.1(rollup@2.79.1)(typescript@5.8.2): - resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==, tarball: https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz} + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} peerDependencies: rollup: ^3.29.4 || ^4 @@ -13315,7 +13476,7 @@ packages: dev: true /rollup-plugin-sourcemaps@0.6.3(@types/node@16.18.101)(rollup@2.79.1): - resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==, tarball: https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz} + resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==} engines: {node: '>=10.0.0'} peerDependencies: '@types/node': '>=10.0.0' @@ -13331,7 +13492,7 @@ packages: dev: true /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz} + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -13339,7 +13500,7 @@ packages: dev: true /rollup@4.34.9: - resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz} + resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: @@ -13367,37 +13528,38 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.36.0: - resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz} + /rollup@4.37.0: + resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.36.0 - '@rollup/rollup-android-arm64': 4.36.0 - '@rollup/rollup-darwin-arm64': 4.36.0 - '@rollup/rollup-darwin-x64': 4.36.0 - '@rollup/rollup-freebsd-arm64': 4.36.0 - '@rollup/rollup-freebsd-x64': 4.36.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.36.0 - '@rollup/rollup-linux-arm-musleabihf': 4.36.0 - '@rollup/rollup-linux-arm64-gnu': 4.36.0 - '@rollup/rollup-linux-arm64-musl': 4.36.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.36.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0 - '@rollup/rollup-linux-riscv64-gnu': 4.36.0 - '@rollup/rollup-linux-s390x-gnu': 4.36.0 - '@rollup/rollup-linux-x64-gnu': 4.36.0 - '@rollup/rollup-linux-x64-musl': 4.36.0 - '@rollup/rollup-win32-arm64-msvc': 4.36.0 - '@rollup/rollup-win32-ia32-msvc': 4.36.0 - '@rollup/rollup-win32-x64-msvc': 4.36.0 + '@rollup/rollup-android-arm-eabi': 4.37.0 + '@rollup/rollup-android-arm64': 4.37.0 + '@rollup/rollup-darwin-arm64': 4.37.0 + '@rollup/rollup-darwin-x64': 4.37.0 + '@rollup/rollup-freebsd-arm64': 4.37.0 + '@rollup/rollup-freebsd-x64': 4.37.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 + '@rollup/rollup-linux-arm-musleabihf': 4.37.0 + '@rollup/rollup-linux-arm64-gnu': 4.37.0 + '@rollup/rollup-linux-arm64-musl': 4.37.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-gnu': 4.37.0 + '@rollup/rollup-linux-riscv64-musl': 4.37.0 + '@rollup/rollup-linux-s390x-gnu': 4.37.0 + '@rollup/rollup-linux-x64-gnu': 4.37.0 + '@rollup/rollup-linux-x64-musl': 4.37.0 + '@rollup/rollup-win32-arm64-msvc': 4.37.0 + '@rollup/rollup-win32-ia32-msvc': 4.37.0 + '@rollup/rollup-win32-x64-msvc': 4.37.0 fsevents: 2.3.3 dev: true /router@1.3.8: - resolution: {integrity: sha512-461UFH44NtSfIlS83PUg2N7OZo86BC/kB3dY77gJdsODsBhhw7+2uE0tzTINxrY9CahCUVk1VhpWCA5i1yoIEg==, tarball: https://registry.npmjs.org/router/-/router-1.3.8.tgz} + resolution: {integrity: sha512-461UFH44NtSfIlS83PUg2N7OZo86BC/kB3dY77gJdsODsBhhw7+2uE0tzTINxrY9CahCUVk1VhpWCA5i1yoIEg==} engines: {node: '>= 0.8'} dependencies: array-flatten: 3.0.0 @@ -13412,37 +13574,37 @@ packages: dev: true /rsvp@4.8.5: - resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==, tarball: https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz} + resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} engines: {node: 6.* || >= 7.*} dev: true /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, tarball: https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz} + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} dev: true /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, tarball: https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz} + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} dev: true /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz} + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true /rx@4.1.0: - resolution: {integrity: sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==, tarball: https://registry.npmjs.org/rx/-/rx-4.1.0.tgz} + resolution: {integrity: sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==} dev: true /rxjs-report-usage@1.0.6: - resolution: {integrity: sha512-omv1DIv5z1kV+zDAEjaDjWSkx8w5TbFp5NZoPwUipwzYVcor/4So9ZU3bUyQ1c8lxY5Q0Es/ztWW7PGjY7to0Q==, tarball: https://registry.npmjs.org/rxjs-report-usage/-/rxjs-report-usage-1.0.6.tgz} + resolution: {integrity: sha512-omv1DIv5z1kV+zDAEjaDjWSkx8w5TbFp5NZoPwUipwzYVcor/4So9ZU3bUyQ1c8lxY5Q0Es/ztWW7PGjY7to0Q==} hasBin: true dependencies: - '@babel/parser': 7.26.10 + '@babel/parser': 7.27.0 '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/types': 7.27.0 bent: 7.3.12 chalk: 4.1.2 glob: 7.2.3 @@ -13452,7 +13614,7 @@ packages: dev: false /rxjs-tslint-rules@4.34.8(tslint@6.1.3)(typescript@5.8.2): - resolution: {integrity: sha512-PKNG0IxB+44S1HNERnagF5bqegs9sSUpY08g+jeRb2Gq36Qt5nKdVt6ZnMilfQxKgjFqd50iHvn0yairQ/pLKQ==, tarball: https://registry.npmjs.org/rxjs-tslint-rules/-/rxjs-tslint-rules-4.34.8.tgz} + resolution: {integrity: sha512-PKNG0IxB+44S1HNERnagF5bqegs9sSUpY08g+jeRb2Gq36Qt5nKdVt6ZnMilfQxKgjFqd50iHvn0yairQ/pLKQ==} peerDependencies: tslint: ^5.0.0 || ^6.0.0 typescript: 5.8.2 @@ -13472,43 +13634,43 @@ packages: dev: false /rxjs@5.5.12: - resolution: {integrity: sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==, tarball: https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz} + resolution: {integrity: sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==} engines: {npm: '>=2.0.0'} dependencies: symbol-observable: 1.0.1 dev: true /rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, tarball: https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz} + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 /rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==, tarball: https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz} + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} dependencies: tslib: 2.8.1 dev: true /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz} + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz} + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, tarball: https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz} + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} dev: true /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz} + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true /sass-loader@16.0.5(sass@1.86.0)(webpack@5.98.0): - resolution: {integrity: sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==, tarball: https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz} + resolution: {integrity: sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -13530,11 +13692,11 @@ packages: dependencies: neo-async: 2.6.2 sass: 1.86.0 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /sass@1.85.1: - resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==, tarball: https://registry.npmjs.org/sass/-/sass-1.85.1.tgz} + resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -13546,7 +13708,7 @@ packages: dev: true /sass@1.86.0: - resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==, tarball: https://registry.npmjs.org/sass/-/sass-1.86.0.tgz} + resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -13558,7 +13720,7 @@ packages: dev: true /saucelabs@1.5.0: - resolution: {integrity: sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==, tarball: https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz} + resolution: {integrity: sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==} dependencies: https-proxy-agent: 5.0.0(supports-color@10.0.0) transitivePeerDependencies: @@ -13566,25 +13728,25 @@ packages: dev: true /sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, tarball: https://registry.npmjs.org/sax/-/sax-1.4.1.tgz} + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} dev: true /schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz} + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) + ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.17.1) dev: true /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, tarball: https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz} + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} dev: true /selenium-webdriver@3.6.0: - resolution: {integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==, tarball: https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz} + resolution: {integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==} engines: {node: '>= 6.9.0'} dependencies: jszip: 3.10.1 @@ -13594,7 +13756,7 @@ packages: dev: true /selenium-webdriver@4.22.0: - resolution: {integrity: sha512-GNbrkCHmy249ai885wgXqTfqL2lZnclUH/P8pwTDIqzyFxU3YhDiN7p/c9tMFA4NhgRdEBO2QCG+CWmG7xr/Mw==, tarball: https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.22.0.tgz} + resolution: {integrity: sha512-GNbrkCHmy249ai885wgXqTfqL2lZnclUH/P8pwTDIqzyFxU3YhDiN7p/c9tMFA4NhgRdEBO2QCG+CWmG7xr/Mw==} engines: {node: '>= 14.21.0'} dependencies: jszip: 3.10.1 @@ -13606,7 +13768,7 @@ packages: dev: true /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==, tarball: https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz} + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} dependencies: '@types/node-forge': 1.3.11 @@ -13614,27 +13776,27 @@ packages: dev: true /semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==, tarball: https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz} + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} engines: {node: '>=8'} dependencies: semver: 6.3.1 dev: true /semver@5.6.0: - resolution: {integrity: sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==, tarball: https://registry.npmjs.org/semver/-/semver-5.6.0.tgz} + resolution: {integrity: sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==} hasBin: true dev: true /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, tarball: https://registry.npmjs.org/semver/-/semver-5.7.2.tgz} + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, tarball: https://registry.npmjs.org/semver/-/semver-6.3.1.tgz} + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, tarball: https://registry.npmjs.org/semver/-/semver-7.5.4.tgz} + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -13642,12 +13804,12 @@ packages: dev: true /semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==, tarball: https://registry.npmjs.org/semver/-/semver-7.7.1.tgz} + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true /send@0.16.2: - resolution: {integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==, tarball: https://registry.npmjs.org/send/-/send-0.16.2.tgz} + resolution: {integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==} engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -13668,7 +13830,7 @@ packages: dev: true /send@0.17.2: - resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==, tarball: https://registry.npmjs.org/send/-/send-0.17.2.tgz} + resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -13689,7 +13851,7 @@ packages: dev: true /send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, tarball: https://registry.npmjs.org/send/-/send-0.19.0.tgz} + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -13710,7 +13872,7 @@ packages: dev: true /send@1.1.0: - resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==, tarball: https://registry.npmjs.org/send/-/send-1.1.0.tgz} + resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==} engines: {node: '>= 18'} dependencies: debug: 4.4.0(supports-color@10.0.0) @@ -13730,20 +13892,20 @@ packages: dev: true /sentence-case@2.1.1: - resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==, tarball: https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz} + resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} dependencies: no-case: 2.3.2 upper-case-first: 1.1.2 dev: true /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, tarball: https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz} + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 dev: true /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, tarball: https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz} + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 @@ -13758,7 +13920,7 @@ packages: dev: true /serve-static@1.13.2: - resolution: {integrity: sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==, tarball: https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz} + resolution: {integrity: sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==} engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 @@ -13770,7 +13932,7 @@ packages: dev: true /serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, tarball: https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz} + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} dependencies: encodeurl: 2.0.0 @@ -13782,15 +13944,15 @@ packages: dev: true /server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==, tarball: https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz} + resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} dev: true /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, tarball: https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz} + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, tarball: https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz} + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -13802,54 +13964,54 @@ packages: dev: true /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, tarball: https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz} + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==, tarball: https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz} + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: true /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, tarball: https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz} + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==, tarball: https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz} + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} dependencies: kind-of: 6.0.3 dev: true /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz} + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 dev: true /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz} + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz} + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} dev: true /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz} + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, tarball: https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz} + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, tarball: https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz} + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} hasBin: true dependencies: @@ -13859,7 +14021,7 @@ packages: dev: true /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, tarball: https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz} + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -13869,16 +14031,16 @@ packages: dev: true /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz} + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz} + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true /sigstore@3.0.0: - resolution: {integrity: sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==, tarball: https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz} + resolution: {integrity: sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@sigstore/bundle': 3.0.0 @@ -13892,32 +14054,32 @@ packages: dev: true /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, tarball: https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz} + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 dev: true /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, tarball: https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz} + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: false /slash@2.0.0: - resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==, tarball: https://registry.npmjs.org/slash/-/slash-2.0.0.tgz} + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} dev: true /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, tarball: https://registry.npmjs.org/slash/-/slash-3.0.0.tgz} + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, tarball: https://registry.npmjs.org/slash/-/slash-4.0.0.tgz} + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} dev: true /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, tarball: https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz} + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 @@ -13926,7 +14088,7 @@ packages: dev: true /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, tarball: https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz} + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 @@ -13934,7 +14096,7 @@ packages: dev: true /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, tarball: https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz} + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} dependencies: ansi-styles: 6.2.1 @@ -13942,22 +14104,22 @@ packages: dev: true /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, tarball: https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz} + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: true /snake-case@2.1.0: - resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==, tarball: https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz} + resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} dependencies: no-case: 2.3.2 dev: true /socket.io-adapter@1.1.2: - resolution: {integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==, tarball: https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz} + resolution: {integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==} dev: true /socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==, tarball: https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz} + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} dependencies: debug: 4.3.6 ws: 8.17.1 @@ -13968,7 +14130,7 @@ packages: dev: true /socket.io-client@2.1.1: - resolution: {integrity: sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==, tarball: https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz} + resolution: {integrity: sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==} dependencies: backo2: 1.0.2 base64-arraybuffer: 0.1.5 @@ -13991,7 +14153,7 @@ packages: dev: true /socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==, tarball: https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz} + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.2 @@ -14005,7 +14167,7 @@ packages: dev: true /socket.io-parser@3.2.0: - resolution: {integrity: sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==, tarball: https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz} + resolution: {integrity: sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==} dependencies: component-emitter: 1.2.1 debug: 3.1.0 @@ -14015,7 +14177,7 @@ packages: dev: true /socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==, tarball: https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz} + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} dependencies: '@socket.io/component-emitter': 3.1.2 @@ -14025,7 +14187,7 @@ packages: dev: true /socket.io@2.1.1: - resolution: {integrity: sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==, tarball: https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz} + resolution: {integrity: sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==} dependencies: debug: 3.1.0 engine.io: 3.2.1 @@ -14040,7 +14202,7 @@ packages: dev: true /socket.io@4.7.5: - resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==, tarball: https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz} + resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} engines: {node: '>=10.2.0'} dependencies: accepts: 1.3.8 @@ -14057,7 +14219,7 @@ packages: dev: true /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==, tarball: https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz} + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 @@ -14065,7 +14227,7 @@ packages: dev: true /socks-proxy-agent@5.0.1: - resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==, tarball: https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz} + resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2(supports-color@10.0.0) @@ -14076,7 +14238,7 @@ packages: dev: true /socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==, tarball: https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz} + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 @@ -14087,7 +14249,7 @@ packages: dev: true /socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==, tarball: https://registry.npmjs.org/socks/-/socks-2.8.3.tgz} + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: ip-address: 9.0.5 @@ -14095,23 +14257,23 @@ packages: dev: true /source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz} + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} dev: true /source-map-loader@5.0.0(webpack@5.98.0): - resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==, tarball: https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz} + resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.72.1 dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /source-map-resolve@0.6.0: - resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, tarball: https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz} + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated dependencies: atob: 2.1.2 @@ -14119,27 +14281,27 @@ packages: dev: true /source-map-support@0.4.18: - resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz} + resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} dependencies: source-map: 0.5.7 dev: true /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map-support@0.5.9: - resolution: {integrity: sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz} + resolution: {integrity: sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map@0.2.0: - resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz} + resolution: {integrity: sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==} engines: {node: '>=0.8.0'} dependencies: amdefine: 1.0.1 @@ -14147,58 +14309,58 @@ packages: optional: true /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz} + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} dev: true /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz} + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} dev: true /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz} + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} dev: true /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, tarball: https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead dev: true /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==, tarball: https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz} + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} dev: true /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, tarball: https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz} + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.18 dev: true /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, tarball: https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz} + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, tarball: https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.18 dev: true /spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==, tarball: https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz} + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} dev: true /spdx-license-list@2.1.0: - resolution: {integrity: sha512-5PXVk9n4XDEzXOOxggv0SK6HmIaoGG28InH2qfFpURP/hUf/iwLXUxJMBg0flQLNlnHsgH6H1GPwNH55KOkqzA==, tarball: https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz} + resolution: {integrity: sha512-5PXVk9n4XDEzXOOxggv0SK6HmIaoGG28InH2qfFpURP/hUf/iwLXUxJMBg0flQLNlnHsgH6H1GPwNH55KOkqzA==} engines: {node: '>=0.10.0'} dev: true /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, tarball: https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz} + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: debug: 4.4.0(supports-color@10.0.0) detect-node: 2.1.0 @@ -14211,7 +14373,7 @@ packages: dev: true /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, tarball: https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz} + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: debug: 4.4.0(supports-color@10.0.0) @@ -14224,33 +14386,33 @@ packages: dev: true /split-array-stream@1.0.3: - resolution: {integrity: sha512-yGY35QmZFzZkWZ0eHE06RPBi63umym8m+pdtuC/dlO1ADhdKSfCj0uNn87BYCXBBDFxyTq4oTw0BgLYT0K5z/A==, tarball: https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz} + resolution: {integrity: sha512-yGY35QmZFzZkWZ0eHE06RPBi63umym8m+pdtuC/dlO1ADhdKSfCj0uNn87BYCXBBDFxyTq4oTw0BgLYT0K5z/A==} dependencies: async: 2.6.4 is-stream-ended: 0.1.4 dev: true /split-array-stream@2.0.0: - resolution: {integrity: sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==, tarball: https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz} + resolution: {integrity: sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==} dependencies: is-stream-ended: 0.1.4 dev: true /split@0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==, tarball: https://registry.npmjs.org/split/-/split-0.3.3.tgz} + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} dependencies: through: 2.3.8 dev: true /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, tarball: https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} /sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==, tarball: https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz} + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} dev: true /sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==, tarball: https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz} + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: @@ -14266,61 +14428,61 @@ packages: dev: true /ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==, tarball: https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz} + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: minipass: 7.1.2 dev: true /ssri@12.0.0: - resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==, tarball: https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz} + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: minipass: 7.1.2 dev: true /stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, tarball: https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz} + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} dev: true /statuses@1.3.1: - resolution: {integrity: sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==, tarball: https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz} + resolution: {integrity: sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==} engines: {node: '>= 0.6'} dev: true /statuses@1.4.0: - resolution: {integrity: sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==, tarball: https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz} + resolution: {integrity: sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==} engines: {node: '>= 0.6'} dev: true /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, tarball: https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz} + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} dev: true /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, tarball: https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz} + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} dev: true /stream-combiner@0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==, tarball: https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz} + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} dependencies: duplexer: 0.1.2 dev: true /stream-events@1.0.5: - resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==, tarball: https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz} + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} dependencies: stubs: 3.0.0 dev: true /stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==, tarball: https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz} + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} dev: true /stream-throttle@0.1.3: - resolution: {integrity: sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==, tarball: https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz} + resolution: {integrity: sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==} engines: {node: '>= 0.10.0'} hasBin: true dependencies: @@ -14329,7 +14491,7 @@ packages: dev: true /streamroller@3.1.5: - resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==, tarball: https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz} + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 @@ -14340,19 +14502,19 @@ packages: dev: true /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, tarball: https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz} + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} dev: true /string-length@1.0.1: - resolution: {integrity: sha512-MNCACnufWUf3pQ57O5WTBMkKhzYIaKEcUioO0XHrTMafrbBaNk4IyDOLHBv5xbXO0jLLdsYWeFjpjG2hVHRDtw==, tarball: https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz} + resolution: {integrity: sha512-MNCACnufWUf3pQ57O5WTBMkKhzYIaKEcUioO0XHrTMafrbBaNk4IyDOLHBv5xbXO0jLLdsYWeFjpjG2hVHRDtw==} engines: {node: '>=0.10.0'} dependencies: strip-ansi: 3.0.1 dev: true /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz} + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 @@ -14360,23 +14522,23 @@ packages: strip-ansi: 6.0.1 /string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz} + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} dev: true /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz} + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 dev: true /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz} + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: true /stringify-entities@2.0.0: - resolution: {integrity: sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==, tarball: https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz} + resolution: {integrity: sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==} dependencies: character-entities-html4: 1.1.4 character-entities-legacy: 1.1.4 @@ -14386,59 +14548,59 @@ packages: dev: true /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz} + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 dev: true /strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz} + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} dependencies: ansi-regex: 4.1.1 dev: true /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz} + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz} + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, tarball: https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz} + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz} + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} dev: true /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true /stubs@3.0.0: - resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==, tarball: https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz} + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} dev: true /style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, tarball: https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz} + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true /stylelint@14.16.1: - resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==, tarball: https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz} + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dependencies: @@ -14485,7 +14647,7 @@ packages: dev: true /superstatic@7.1.0: - resolution: {integrity: sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==, tarball: https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz} + resolution: {integrity: sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==} engines: {node: '>= 8.6.0'} hasBin: true dependencies: @@ -14520,42 +14682,42 @@ packages: dev: true /supports-color@10.0.0: - resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz} + resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} engines: {node: '>=18'} /supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz} + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} dev: true /supports-color@3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz} + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} engines: {node: '>=0.8.0'} dependencies: has-flag: 1.0.0 dev: true /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz} + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, tarball: https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz} + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 dev: true /supports-hyperlinks@1.0.1: - resolution: {integrity: sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==, tarball: https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz} + resolution: {integrity: sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==} engines: {node: '>=4'} dependencies: has-flag: 2.0.0 @@ -14563,7 +14725,7 @@ packages: dev: true /supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, tarball: https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 @@ -14571,32 +14733,32 @@ packages: dev: true /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} /svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, tarball: https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz} + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} dev: true /swap-case@1.1.2: - resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==, tarball: https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz} + resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} dependencies: lower-case: 1.1.4 upper-case: 1.1.3 dev: true /symbol-observable@1.0.1: - resolution: {integrity: sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==, tarball: https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz} + resolution: {integrity: sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==} engines: {node: '>=0.10.0'} dev: true /symbol-observable@4.0.0: - resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==, tarball: https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz} + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} dev: true /table@6.8.2: - resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==, tarball: https://registry.npmjs.org/table/-/table-6.8.2.tgz} + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} dependencies: ajv: 8.17.1 @@ -14607,12 +14769,12 @@ packages: dev: true /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} dev: true /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, tarball: https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz} + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} dependencies: bl: 4.1.0 @@ -14623,7 +14785,7 @@ packages: dev: true /tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==, tarball: https://registry.npmjs.org/tar/-/tar-4.4.19.tgz} + resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} engines: {node: '>=4.5'} dependencies: chownr: 1.1.4 @@ -14636,7 +14798,7 @@ packages: dev: true /tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, tarball: https://registry.npmjs.org/tar/-/tar-6.2.1.tgz} + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -14648,7 +14810,7 @@ packages: dev: true /tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==, tarball: https://registry.npmjs.org/tar/-/tar-7.4.3.tgz} + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -14660,7 +14822,7 @@ packages: dev: true /tcp-port-used@1.0.2: - resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==, tarball: https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz} + resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} dependencies: debug: 4.3.1 is2: 2.0.9 @@ -14669,7 +14831,7 @@ packages: dev: true /teeny-request@9.0.0(supports-color@10.0.0): - resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==, tarball: https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz} + resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} dependencies: http-proxy-agent: 5.0.0(supports-color@10.0.0) @@ -14683,19 +14845,19 @@ packages: dev: true /temp-fs@0.9.9: - resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==, tarball: https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz} + resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==} engines: {node: '>=0.8.0'} dependencies: rimraf: 2.5.4 dev: true /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, tarball: https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz} + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} dev: true - /terser-webpack-plugin@5.3.11(esbuild@0.17.19)(webpack@5.98.0): - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz} + /terser-webpack-plugin@5.3.11(esbuild@0.25.1)(webpack@5.98.0): + resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -14711,16 +14873,16 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - esbuild: 0.17.19 + esbuild: 0.25.1 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /terser@5.39.0: - resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==, tarball: https://registry.npmjs.org/terser/-/terser-5.39.0.tgz} + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -14731,7 +14893,7 @@ packages: dev: true /test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, tarball: https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz} + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 @@ -14740,18 +14902,18 @@ packages: dev: true /text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==, tarball: https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz} + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} dev: true /tfunk@4.0.0: - resolution: {integrity: sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==, tarball: https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz} + resolution: {integrity: sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==} dependencies: chalk: 1.1.3 dlv: 1.1.3 dev: true /thingies@1.21.0(tslib@2.8.1): - resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==, tarball: https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz} + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -14760,35 +14922,35 @@ packages: dev: true /through2@2.0.1: - resolution: {integrity: sha512-/vp02SIbpmVHapNMjox4hDBzykPdAOmH5y3INcKaxGfpEPSCMqzdWXyGfqPYyxoBLo1JpxBrlh3Z9esv0vWUYw==, tarball: https://registry.npmjs.org/through2/-/through2-2.0.1.tgz} + resolution: {integrity: sha512-/vp02SIbpmVHapNMjox4hDBzykPdAOmH5y3INcKaxGfpEPSCMqzdWXyGfqPYyxoBLo1JpxBrlh3Z9esv0vWUYw==} dependencies: readable-stream: 2.0.6 xtend: 4.0.2 dev: true /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, tarball: https://registry.npmjs.org/through2/-/through2-2.0.5.tgz} + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 dev: true /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==, tarball: https://registry.npmjs.org/through2/-/through2-4.0.2.tgz} + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 dev: true /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, tarball: https://registry.npmjs.org/through/-/through-2.3.8.tgz} + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==, tarball: https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz} + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true /timers-ext@0.1.8: - resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==, tarball: https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz} + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 @@ -14796,61 +14958,61 @@ packages: dev: true /tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==, tarball: https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz} + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 /title-case@2.1.1: - resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==, tarball: https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz} + resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} dependencies: no-case: 2.3.2 upper-case: 1.1.3 dev: true /tmp@0.0.30: - resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==, tarball: https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz} + resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==} engines: {node: '>=0.4.0'} dependencies: os-tmpdir: 1.0.2 dev: true /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, tarball: https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz} + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: true /tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==, tarball: https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz} + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} dev: true /to-array@0.1.4: - resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==, tarball: https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz} + resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==} dev: true /to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==, tarball: https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz} + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} engines: {node: '>=6'} dev: true /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, tarball: https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz} + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} dev: true /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, tarball: https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz} + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} dependencies: psl: 1.9.0 @@ -14858,21 +15020,21 @@ packages: dev: true /toxic@1.0.1: - resolution: {integrity: sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==, tarball: https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz} + resolution: {integrity: sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==} dependencies: lodash: 4.17.21 dev: true /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, tarball: https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz} + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true /traverse@0.3.9: - resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==, tarball: https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz} + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} dev: true /tree-dump@1.0.1(tslib@2.8.1): - resolution: {integrity: sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==, tarball: https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.1.tgz} + resolution: {integrity: sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -14881,30 +15043,30 @@ packages: dev: true /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, tarball: https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz} + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, tarball: https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz} + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true /triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==, tarball: https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz} + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} dev: true /trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==, tarball: https://registry.npmjs.org/trough/-/trough-1.0.5.tgz} + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} dev: true /true-case-path@2.2.1: - resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==, tarball: https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz} + resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} dev: true /ts-node@10.9.2(@types/node@16.18.101)(typescript@5.8.2): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz} + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -14935,7 +15097,7 @@ packages: dev: true /tsec@0.2.2(@bazel/bazelisk@1.12.1)(@bazel/concatjs@5.8.1)(typescript@5.8.2): - resolution: {integrity: sha512-gKm+nnIKcE9xtrJw2cIJFjfuDGK0AvH3r4RayTEIkUvja/s9z9GPFgcSdEaapm6N10KrmWWcLjsHlKmH2tqzMw==, tarball: https://registry.npmjs.org/tsec/-/tsec-0.2.2.tgz} + resolution: {integrity: sha512-gKm+nnIKcE9xtrJw2cIJFjfuDGK0AvH3r4RayTEIkUvja/s9z9GPFgcSdEaapm6N10KrmWWcLjsHlKmH2tqzMw==} hasBin: true peerDependencies: '@bazel/bazelisk': '>=1.7.5' @@ -14943,14 +15105,14 @@ packages: typescript: 5.8.2 dependencies: '@bazel/bazelisk': 1.12.1 - '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) + '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) glob: 7.2.3 minimatch: 3.1.2 typescript: 5.8.2 dev: true /tsickle@0.39.1(typescript@5.8.2): - resolution: {integrity: sha512-CCc9cZhZbKoNizVM+K3Uqgit/go8GacjpqTv1cpwG/n2P0gB9GMoWZbxrUULDE9Wz26Lh86CGf6QyIPUVV1lnQ==, tarball: https://registry.npmjs.org/tsickle/-/tsickle-0.39.1.tgz} + resolution: {integrity: sha512-CCc9cZhZbKoNizVM+K3Uqgit/go8GacjpqTv1cpwG/n2P0gB9GMoWZbxrUULDE9Wz26Lh86CGf6QyIPUVV1lnQ==} peerDependencies: typescript: 5.8.2 dependencies: @@ -14958,13 +15120,13 @@ packages: dev: true /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, tarball: https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz} + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} /tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz} + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} /tslint@6.1.3(typescript@5.8.2): - resolution: {integrity: sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==, tarball: https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz} + resolution: {integrity: sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==} engines: {node: '>=4.8.0'} deprecated: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information. hasBin: true @@ -14987,7 +15149,7 @@ packages: typescript: 5.8.2 /tsutils-etc@1.4.2(tsutils@3.21.0)(typescript@5.8.2): - resolution: {integrity: sha512-2Dn5SxTDOu6YWDNKcx1xu2YUy6PUeKrWZB/x2cQ8vY2+iz3JRembKn/iZ0JLT1ZudGNwQQvtFX9AwvRHbXuPUg==, tarball: https://registry.npmjs.org/tsutils-etc/-/tsutils-etc-1.4.2.tgz} + resolution: {integrity: sha512-2Dn5SxTDOu6YWDNKcx1xu2YUy6PUeKrWZB/x2cQ8vY2+iz3JRembKn/iZ0JLT1ZudGNwQQvtFX9AwvRHbXuPUg==} hasBin: true peerDependencies: tsutils: ^3.0.0 @@ -15000,7 +15162,7 @@ packages: dev: false /tsutils@2.29.0(typescript@5.8.2): - resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==, tarball: https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz} + resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} peerDependencies: typescript: 5.8.2 dependencies: @@ -15008,7 +15170,7 @@ packages: typescript: 5.8.2 /tsutils@3.21.0(typescript@5.8.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, tarball: https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz} + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: 5.8.2 @@ -15017,7 +15179,7 @@ packages: typescript: 5.8.2 /tuf-js@3.0.1: - resolution: {integrity: sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==, tarball: https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz} + resolution: {integrity: sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: '@tufjs/models': 3.0.1 @@ -15028,21 +15190,21 @@ packages: dev: true /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz} + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 dev: true /tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, tarball: https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz} + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true /tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, tarball: https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz} + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} dev: true /tweetsodium@0.0.5: - resolution: {integrity: sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==, tarball: https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz} + resolution: {integrity: sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==} deprecated: 'tweetsodium is deprecated and unmaintained. Please consider using libsodium.js, maintained by the same author as libsodium: https://github.com/jedisct1/libsodium.js' dependencies: blakejs: 1.2.1 @@ -15050,39 +15212,39 @@ packages: dev: true /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, tarball: https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz} + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 dev: true /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz} + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} dev: true /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz} + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz} + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz} + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} dev: true /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz} + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} dev: true /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, tarball: https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz} + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 @@ -15090,58 +15252,58 @@ packages: dev: true /type@2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==, tarball: https://registry.npmjs.org/type/-/type-2.7.3.tgz} + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: true /typed-assert@1.0.9: - resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==, tarball: https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz} + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} dev: true /typed-graphqlify@3.1.6: - resolution: {integrity: sha512-Snlg1ZrokbkQuemOb4xjWWCJrNcOMeb2Ii0/BwMfwLCcJVNjygyqhrFkrYNvi4gDrwWFrGE0TvxxM+Slym2JMg==, tarball: https://registry.npmjs.org/typed-graphqlify/-/typed-graphqlify-3.1.6.tgz} + resolution: {integrity: sha512-Snlg1ZrokbkQuemOb4xjWWCJrNcOMeb2Ii0/BwMfwLCcJVNjygyqhrFkrYNvi4gDrwWFrGE0TvxxM+Slym2JMg==} dev: true /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, tarball: https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz} + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 dev: true /typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==, tarball: https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz} + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true /ua-parser-js@0.7.38: - resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==, tarball: https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz} + resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==} dev: true /ua-parser-js@1.0.38: - resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==, tarball: https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz} + resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} dev: true /uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==, tarball: https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz} + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} hasBin: true dev: true optional: true /ultron@1.1.1: - resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==, tarball: https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz} + resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} dev: true /undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz} + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} dev: true /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, tarball: https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz} + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} dev: true /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, tarball: https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz} + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 @@ -15149,17 +15311,17 @@ packages: dev: true /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, tarball: https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz} + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} dev: true /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, tarball: https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz} + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} dev: true /unified@7.1.0: - resolution: {integrity: sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==, tarball: https://registry.npmjs.org/unified/-/unified-7.1.0.tgz} + resolution: {integrity: sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==} dependencies: '@types/unist': 2.0.10 '@types/vfile': 3.0.2 @@ -15172,56 +15334,56 @@ packages: dev: true /unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==, tarball: https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz} + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: unique-slug: 4.0.0 dev: true /unique-filename@4.0.0: - resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==, tarball: https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz} + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: unique-slug: 5.0.0 dev: true /unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==, tarball: https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz} + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 dev: true /unique-slug@5.0.0: - resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==, tarball: https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz} + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} engines: {node: ^18.17.0 || >=20.5.0} dependencies: imurmurhash: 0.1.4 dev: true /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, tarball: https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz} + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} dependencies: crypto-random-string: 2.0.0 dev: true /unist-util-is@3.0.0: - resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==, tarball: https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz} + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} dev: true /unist-util-stringify-position@1.1.2: - resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==, tarball: https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz} + resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} dev: true /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, tarball: https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz} + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.2 dev: true /universal-analytics@0.4.23: - resolution: {integrity: sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==, tarball: https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz} + resolution: {integrity: sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==} dependencies: debug: 4.4.0(supports-color@10.0.0) request: 2.88.2 @@ -15231,30 +15393,30 @@ packages: dev: true /universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==, tarball: https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz} + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} dev: true /universal-user-agent@7.0.2: - resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==, tarball: https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz} + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} dev: true /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, tarball: https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz} + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} dev: true /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, tarball: https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz} + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, tarball: https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz} + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} dev: true /unzipper@0.10.14: - resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==, tarball: https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz} + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} dependencies: big-integer: 1.6.52 binary: 0.3.0 @@ -15269,7 +15431,7 @@ packages: dev: true /update-browserslist-db@1.1.2(browserslist@4.24.4): - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==, tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz} + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -15279,7 +15441,7 @@ packages: picocolors: 1.1.1 /update-notifier@4.1.3: - resolution: {integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==, tarball: https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz} + resolution: {integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==} engines: {node: '>=8'} dependencies: boxen: 4.2.0 @@ -15298,7 +15460,7 @@ packages: dev: true /update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==, tarball: https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz} + resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} engines: {node: '>=10'} dependencies: boxen: 5.1.2 @@ -15318,78 +15480,78 @@ packages: dev: true /upper-case-first@1.1.2: - resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==, tarball: https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz} + resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==} dependencies: upper-case: 1.1.3 dev: true /upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, tarball: https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz} + resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} dev: true /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 dev: true /url-join@0.0.1: - resolution: {integrity: sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw==, tarball: https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz} + resolution: {integrity: sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw==} dev: true /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==, tarball: https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz} + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} engines: {node: '>=4'} dependencies: prepend-http: 2.0.0 dev: true /urlencode@1.1.0: - resolution: {integrity: sha512-OOAOh9owHXr/rCN1tteSnYwIvsrGHamSz0hafMhmQa7RcS4+Ets6/2iVClVGjt9jkDW84UqoMw/Gmpc7QolX6A==, tarball: https://registry.npmjs.org/urlencode/-/urlencode-1.1.0.tgz} + resolution: {integrity: sha512-OOAOh9owHXr/rCN1tteSnYwIvsrGHamSz0hafMhmQa7RcS4+Ets6/2iVClVGjt9jkDW84UqoMw/Gmpc7QolX6A==} dependencies: iconv-lite: 0.4.24 dev: true /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz} + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, tarball: https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz} + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true /uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==, tarball: https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz} + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true dev: true /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, tarball: https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz} + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true dev: true /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, tarball: https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz} + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: true /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, tarball: https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz} + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true dev: true /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, tarball: https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true /v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, tarball: https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz} + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true /v8-to-istanbul@7.1.2: - resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==, tarball: https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz} + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} engines: {node: '>=10.10.0'} dependencies: '@types/istanbul-lib-coverage': 2.0.6 @@ -15398,32 +15560,32 @@ packages: dev: true /valid-url@1.0.9: - resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==, tarball: https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz} + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} dev: true /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, tarball: https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true /validate-npm-package-name@6.0.0: - resolution: {integrity: sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==, tarball: https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz} + resolution: {integrity: sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==} engines: {node: ^18.17.0 || >=20.5.0} dev: true /validate.js@0.12.0: - resolution: {integrity: sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==, tarball: https://registry.npmjs.org/validate.js/-/validate.js-0.12.0.tgz} + resolution: {integrity: sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==} dev: true /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: https://registry.npmjs.org/vary/-/vary-1.1.2.tgz} + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} dev: true /verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, tarball: https://registry.npmjs.org/verror/-/verror-1.10.0.tgz} + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} dependencies: assert-plus: 1.0.0 @@ -15432,20 +15594,20 @@ packages: dev: true /vfile-message@1.1.1: - resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==, tarball: https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz} + resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} dependencies: unist-util-stringify-position: 1.1.2 dev: true /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==, tarball: https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz} + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 dev: true /vfile@3.0.1: - resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==, tarball: https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz} + resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==} dependencies: is-buffer: 2.0.5 replace-ext: 1.0.0 @@ -15453,8 +15615,8 @@ packages: vfile-message: 1.1.1 dev: true - /vite@6.2.0(@types/node@20.17.24)(less@4.2.2)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2): - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==, tarball: https://registry.npmjs.org/vite/-/vite-6.2.0.tgz} + /vite@6.2.0(@types/node@20.17.24)(sass@1.85.1)(terser@5.39.0)(yaml@1.10.2): + resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -15495,9 +15657,8 @@ packages: dependencies: '@types/node': 20.17.24 esbuild: 0.25.1 - less: 4.2.2 postcss: 8.5.3 - rollup: 4.36.0 + rollup: 4.37.0 sass: 1.85.1 terser: 5.39.0 yaml: 1.10.2 @@ -15505,8 +15666,8 @@ packages: fsevents: 2.3.3 dev: true - /vite@6.2.2(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2): - resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==, tarball: https://registry.npmjs.org/vite/-/vite-6.2.2.tgz} + /vite@6.2.3(@types/node@16.18.101)(less@4.2.2)(sass@1.86.0)(terser@5.39.0)(yaml@1.10.2): + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -15549,7 +15710,7 @@ packages: esbuild: 0.25.1 less: 4.2.2 postcss: 8.5.3 - rollup: 4.36.0 + rollup: 4.37.0 sass: 1.86.0 terser: 5.39.0 yaml: 1.10.2 @@ -15558,7 +15719,7 @@ packages: dev: true /vm2@3.9.19: - resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==, tarball: https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz} + resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} engines: {node: '>=6.0'} deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. hasBin: true @@ -15568,12 +15729,12 @@ packages: dev: true /void-elements@2.0.1: - resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==, tarball: https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz} + resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} engines: {node: '>=0.10.0'} dev: true /vrsource-tslint-rules@6.0.0(tslint@6.1.3)(typescript@5.8.2): - resolution: {integrity: sha512-pmcnJdIVziZTk1V0Cqehmh3gIabBRkBYXkv9vx+1CZDNEa41kNGUBFwQLzw21erYOd2QnD8jJeZhBGqnlT1HWw==, tarball: https://registry.npmjs.org/vrsource-tslint-rules/-/vrsource-tslint-rules-6.0.0.tgz} + resolution: {integrity: sha512-pmcnJdIVziZTk1V0Cqehmh3gIabBRkBYXkv9vx+1CZDNEa41kNGUBFwQLzw21erYOd2QnD8jJeZhBGqnlT1HWw==} peerDependencies: tslint: '*' typescript: 5.8.2 @@ -15583,7 +15744,7 @@ packages: dev: true /watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==, tarball: https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz} + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -15591,33 +15752,33 @@ packages: dev: true /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, tarball: https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz} + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: minimalistic-assert: 1.0.1 dev: true /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, tarball: https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz} + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: true /weak-lru-cache@1.2.2: - resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==, tarball: https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz} + resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} dev: true optional: true /web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==, tarball: https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz} + resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} dev: true /web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==, tarball: https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz} + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} dev: true /webdriver-js-extender@2.1.0: - resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==, tarball: https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz} + resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} engines: {node: '>=6.9.x'} dependencies: '@types/selenium-webdriver': 3.0.26 @@ -15625,7 +15786,7 @@ packages: dev: true /webdriver-manager@12.1.9: - resolution: {integrity: sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==, tarball: https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz} + resolution: {integrity: sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==} engines: {node: '>=6.9.x'} hasBin: true dependencies: @@ -15643,11 +15804,11 @@ packages: dev: true /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz} + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true /webpack-dev-middleware@7.4.2(webpack@5.98.0): - resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==, tarball: https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz} + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 @@ -15661,11 +15822,11 @@ packages: on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true /webpack-dev-server@5.2.0(webpack@5.98.0): - resolution: {integrity: sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==, tarball: https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz} + resolution: {integrity: sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==} engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -15702,7 +15863,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) webpack-dev-middleware: 7.4.2(webpack@5.98.0) ws: 8.18.0 transitivePeerDependencies: @@ -15713,7 +15874,7 @@ packages: dev: true /webpack-merge@6.0.1: - resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==, tarball: https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz} + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} engines: {node: '>=18.0.0'} dependencies: clone-deep: 4.0.1 @@ -15722,12 +15883,12 @@ packages: dev: true /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, tarball: https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz} + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} dev: true /webpack-subresource-integrity@5.1.0(webpack@5.98.0): - resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==, tarball: https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz} + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} engines: {node: '>= 12'} peerDependencies: html-webpack-plugin: '>= 5.0.0-beta.1 < 6' @@ -15737,11 +15898,11 @@ packages: optional: true dependencies: typed-assert: 1.0.9 - webpack: 5.98.0(esbuild@0.17.19) + webpack: 5.98.0(esbuild@0.25.1) dev: true - /webpack@5.98.0(esbuild@0.17.19): - resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==, tarball: https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz} + /webpack@5.98.0(esbuild@0.25.1): + resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -15770,7 +15931,7 @@ packages: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.17.19)(webpack@5.98.0) + terser-webpack-plugin: 5.3.11(esbuild@0.25.1)(webpack@5.98.0) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15780,7 +15941,7 @@ packages: dev: true /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, tarball: https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz} + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} dependencies: http-parser-js: 0.5.8 @@ -15789,30 +15950,30 @@ packages: dev: true /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, tarball: https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz} + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} dev: true /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz} + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: true /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, tarball: https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz} + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, tarball: https://registry.npmjs.org/which/-/which-1.3.1.tgz} + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 dev: true /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: https://registry.npmjs.org/which/-/which-2.0.2.tgz} + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true dependencies: @@ -15820,7 +15981,7 @@ packages: dev: true /which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==, tarball: https://registry.npmjs.org/which/-/which-3.0.1.tgz} + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: @@ -15828,7 +15989,7 @@ packages: dev: true /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==, tarball: https://registry.npmjs.org/which/-/which-4.0.0.tgz} + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} hasBin: true dependencies: @@ -15836,7 +15997,7 @@ packages: dev: true /which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==, tarball: https://registry.npmjs.org/which/-/which-5.0.0.tgz} + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true dependencies: @@ -15844,18 +16005,18 @@ packages: dev: true /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==, tarball: https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz} + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} dependencies: string-width: 4.2.3 dev: true /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==, tarball: https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz} + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} dev: true /winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==, tarball: https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz} + resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} engines: {node: '>= 12.0.0'} dependencies: logform: 2.6.0 @@ -15864,7 +16025,7 @@ packages: dev: true /winston@2.4.7: - resolution: {integrity: sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==, tarball: https://registry.npmjs.org/winston/-/winston-2.4.7.tgz} + resolution: {integrity: sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==} engines: {node: '>= 0.10.0'} dependencies: async: 2.6.4 @@ -15876,7 +16037,7 @@ packages: dev: true /winston@3.13.0: - resolution: {integrity: sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==, tarball: https://registry.npmjs.org/winston/-/winston-3.13.0.tgz} + resolution: {integrity: sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==} engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 @@ -15893,16 +16054,16 @@ packages: dev: true /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, tarball: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz} + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} dev: true /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, tarball: https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz} + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 @@ -15910,10 +16071,10 @@ packages: strip-ansi: 6.0.1 /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz} + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 @@ -15922,7 +16083,7 @@ packages: dev: true /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz} + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 @@ -15930,7 +16091,7 @@ packages: dev: true /ws@3.3.3: - resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==, tarball: https://registry.npmjs.org/ws/-/ws-3.3.3.tgz} + resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -15946,7 +16107,7 @@ packages: dev: true /ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==, tarball: https://registry.npmjs.org/ws/-/ws-7.5.10.tgz} + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -15959,7 +16120,7 @@ packages: dev: true /ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==, tarball: https://registry.npmjs.org/ws/-/ws-8.17.1.tgz} + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -15972,7 +16133,7 @@ packages: dev: true /ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, tarball: https://registry.npmjs.org/ws/-/ws-8.18.0.tgz} + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -15985,21 +16146,21 @@ packages: dev: true /x-is-string@0.1.0: - resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==, tarball: https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz} + resolution: {integrity: sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==} dev: true /xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==, tarball: https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz} + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'} dev: true /xhr2@0.2.1: - resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==, tarball: https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz} + resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==} engines: {node: '>= 6'} dev: true /xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==, tarball: https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz} + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} engines: {node: '>=4.0.0'} dependencies: sax: 1.4.1 @@ -16007,67 +16168,62 @@ packages: dev: true /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, tarball: https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz} + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} dev: true - /xmlbuilder@12.0.0: - resolution: {integrity: sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==, tarball: https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz} - engines: {node: '>=6.0'} - dev: true - /xmlhttprequest-ssl@1.5.5: - resolution: {integrity: sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q==, tarball: https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz} + resolution: {integrity: sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q==} engines: {node: '>=0.4.0'} dev: true /xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==, tarball: https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz} + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} engines: {node: '>=0.4.0'} dev: true /xregexp@2.0.0: - resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==, tarball: https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz} + resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: true /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, tarball: https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz} + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, tarball: https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz} + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz} + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, tarball: https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz} + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz} + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true /yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==, tarball: https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz} + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} dev: true /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz} + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true /yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==, tarball: https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz} + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true dev: true /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz} + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} dependencies: camelcase: 5.3.1 @@ -16075,16 +16231,16 @@ packages: dev: true /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz} + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} dev: true /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz} + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, tarball: https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz} + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} dependencies: cliui: 6.0.0 @@ -16101,7 +16257,7 @@ packages: dev: true /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, tarball: https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz} + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} dependencies: cliui: 7.0.4 @@ -16114,7 +16270,7 @@ packages: dev: true /yargs@17.1.1: - resolution: {integrity: sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==, tarball: https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz} + resolution: {integrity: sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==} engines: {node: '>=12'} dependencies: cliui: 7.0.4 @@ -16127,7 +16283,7 @@ packages: dev: true /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, tarball: https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz} + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: cliui: 8.0.1 @@ -16139,26 +16295,26 @@ packages: yargs-parser: 21.1.1 /yeast@0.1.2: - resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==, tarball: https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz} + resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} dev: true /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, tarball: https://registry.npmjs.org/yn/-/yn-3.1.1.tgz} + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} dev: true /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, tarball: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz} + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true /yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==, tarball: https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz} + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} dev: true /zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==, tarball: https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz} + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} dependencies: archiver-utils: 3.0.4 @@ -16167,10 +16323,10 @@ packages: dev: true /zone.js@0.15.0: - resolution: {integrity: sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==, tarball: https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz} + resolution: {integrity: sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==} /zx@6.2.5: - resolution: {integrity: sha512-aTEZSL8sp1IhMUhxlXRTPH6MwzcuTBA3G4LLuH68NIj8kENfcaVGV7cn8LQXXHwG1M9LDI6ST6Qcw0EOrhRAVA==, tarball: https://registry.npmjs.org/zx/-/zx-6.2.5.tgz} + resolution: {integrity: sha512-aTEZSL8sp1IhMUhxlXRTPH6MwzcuTBA3G4LLuH68NIj8kENfcaVGV7cn8LQXXHwG1M9LDI6ST6Qcw0EOrhRAVA==} engines: {node: '>= 16.0.0'} hasBin: true dependencies: @@ -16190,7 +16346,7 @@ packages: yaml: 2.7.0 dev: true - github.com/angular/bazel-builds/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4(@angular/compiler-cli@20.0.0-next.3)(@bazel/concatjs@5.8.1)(@bazel/worker@5.8.1)(@rollup/plugin-commonjs@21.1.0)(@rollup/plugin-node-resolve@13.3.0)(@types/node@16.18.101)(rollup-plugin-dts@6.1.1)(rollup-plugin-sourcemaps@0.6.3)(rollup@2.79.1)(terser@5.39.0)(typescript@5.8.2): + github.com/angular/bazel-builds/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4(@angular/compiler-cli@20.0.0-next.4)(@bazel/concatjs@5.8.1)(@bazel/worker@5.8.1)(@rollup/plugin-commonjs@21.1.0)(@rollup/plugin-node-resolve@13.3.0)(@types/node@16.18.101)(rollup-plugin-dts@6.1.1)(rollup-plugin-sourcemaps@0.6.3)(rollup@2.79.1)(terser@5.39.0)(typescript@5.8.2): resolution: {tarball: https://codeload.github.com/angular/bazel-builds/tar.gz/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4} id: github.com/angular/bazel-builds/54a0ac1bc77b58214a1c4d3cdcf167676ea621e4 name: '@angular/bazel' @@ -16212,8 +16368,8 @@ packages: terser: optional: true dependencies: - '@angular/compiler-cli': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(typescript@5.8.2) - '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) + '@angular/compiler-cli': 20.0.0-next.4(patch_hash=bkmikb4osdzaovoldc46tgsqpe)(@angular/compiler@20.0.0-next.4)(typescript@5.8.2) + '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) '@bazel/worker': 5.8.1 '@microsoft/api-extractor': 7.52.1(@types/node@16.18.101) '@rollup/plugin-commonjs': 21.1.0(rollup@2.79.1) @@ -16230,18 +16386,18 @@ packages: - '@types/node' dev: true - github.com/angular/dev-infra-private-build-tooling-builds/ec9df12469082e3cb087a9af55072dc2d833c73f(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(rxjs@6.6.7)(terser@5.39.0)(yaml@1.10.2)(zone.js@0.15.0): + github.com/angular/dev-infra-private-build-tooling-builds/ec9df12469082e3cb087a9af55072dc2d833c73f(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(postcss@8.5.3)(rxjs@6.6.7)(terser@5.39.0)(yaml@1.10.2)(zone.js@0.15.0): resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-build-tooling-builds/tar.gz/ec9df12469082e3cb087a9af55072dc2d833c73f} id: github.com/angular/dev-infra-private-build-tooling-builds/ec9df12469082e3cb087a9af55072dc2d833c73f name: '@angular/build-tooling' version: 0.0.0-335a273d3eb2a73c51efb97930fc1e0cd72e0d32 dependencies: '@angular/benchpress': 0.3.0(rxjs@6.6.7)(zone.js@0.15.0) - '@angular/build': 20.0.0-next.0(@angular/compiler-cli@20.0.0-next.3)(@angular/compiler@20.0.0-next.3)(@angular/localize@20.0.0-next.3)(@angular/platform-server@20.0.0-next.3)(@types/node@20.17.24)(karma@6.4.3)(less@4.2.2)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) + '@angular/build': 20.0.0-next.0(@angular/compiler-cli@20.0.0-next.4)(@angular/compiler@20.0.0-next.4)(@angular/localize@20.0.0-next.4)(@angular/platform-server@20.0.0-next.4)(@types/node@20.17.24)(karma@6.4.3)(postcss@8.5.3)(terser@5.39.0)(typescript@5.8.2)(yaml@1.10.2) '@babel/core': 7.26.10 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.26.10) '@bazel/buildifier': 6.3.3 - '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-junit-reporter@2.0.1)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) + '@bazel/concatjs': 5.8.1(karma-chrome-launcher@3.2.0)(karma-firefox-launcher@2.1.3)(karma-jasmine@4.0.2)(karma-requirejs@1.1.0)(karma-sourcemap-loader@0.3.8)(karma@6.4.3)(typescript@5.8.2) '@bazel/esbuild': 5.8.1 '@bazel/protractor': 5.8.1(protractor@7.0.0) '@bazel/runfiles': 5.8.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d05a7e7dc84a..f1d3f6d94825 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,16 @@ packages: - . + - integration + - src/cdk + - src/cdk-experimental + - src/components-examples + - src/dev-app + - src/e2e-app + - src/google-maps + - src/material + - src/material-date-fns-adapter + - src/material-experimental + - src/material-luxon-adapter + - src/material-moment-adapter + - src/universal-app + - src/youtube-player diff --git a/scripts/approve-size-golden.js b/scripts/approve-size-golden.js deleted file mode 100644 index 6ee72e4931a5..000000000000 --- a/scripts/approve-size-golden.js +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -const shelljs = require('shelljs'); -const path = require('path'); -const yaml = require('yaml'); -const fs = require('fs'); - -const projectDir = path.join(__dirname, '../'); -const goldenPath = path.join(projectDir, './goldens/size-test.yaml'); -const golden = yaml.parse(fs.readFileSync(goldenPath, 'utf8')); -const tests = Object.keys(golden); - -if (tests.length === 0) { - console.error('No tests captured in size test golden.'); - process.exit(1); -} - -shelljs.set('-e'); -shelljs.cd(projectDir); - -for (const testId of tests) { - const testIdParts = testId.split('/'); - const targetLabel = testIdParts.slice(0, -1).join('/'); - const targetName = testIdParts[testIdParts.length - 1]; - shelljs.exec(`bazel run //integration/size-test/${targetLabel}:${targetName}.approve`); -} diff --git a/src/BUILD.bazel b/src/BUILD.bazel index d6fdcdd2993c..7fc1547649d3 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -1,9 +1,11 @@ load("@npm//@bazel/concatjs:index.bzl", "ts_config") load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") +load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("//src/cdk:config.bzl", "CDK_ENTRYPOINTS") load("//src/material:config.bzl", "MATERIAL_ENTRYPOINTS", "MATERIAL_TESTING_ENTRYPOINTS") load("//tools/dgeni:index.bzl", "dgeni_api_docs") -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") +load("@aspect_rules_js//js:defs.bzl", "js_library") package(default_visibility = ["//visibility:public"]) @@ -24,7 +26,21 @@ exports_files([ ts_config( name = "tsconfig-test", src = "bazel-tsconfig-test.json", - deps = ["bazel-tsconfig-build.json"], + deps = [ + "bazel-tsconfig-build.json", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + ], +) + +copy_to_bin( + name = "package_json", + srcs = ["package.json"], +) + +js_library( + name = "esbuild-linked-config", + srcs = ["esbuild-linked.config.mjs"], ) dgeni_api_docs( @@ -46,7 +62,7 @@ dgeni_api_docs( tags = ["docs-package"], ) -ts_library( +ts_project( name = "dev_mode_types", srcs = ["dev-mode-types.d.ts"], ) diff --git a/src/bazel-tsconfig-build.json b/src/bazel-tsconfig-build.json index 84a96225df9c..7b525501ea27 100644 --- a/src/bazel-tsconfig-build.json +++ b/src/bazel-tsconfig-build.json @@ -26,14 +26,26 @@ // Bazel either uses "umd" or "esnext". We replicate this here for IDE support. // https://github.com/bazelbuild/rules_typescript/blob/master/internal/common/tsconfig.bzl#L199 "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "sourceMap": true, "inlineSources": true, "target": "es2022", "lib": ["es2020", "dom"], + "types": [], "skipLibCheck": true, "paths": { - "@angular/cdk/*": ["./cdk/*"] + "@angular/cdk-experimental/*": ["./cdk-experimental/*"], + "@angular/cdk/*": ["./cdk/*"], + "@angular/components-examples": ["./components-examples"], + "@angular/components-examples/*": ["./components-examples/*"], + "@angular/google-maps": ["./google-maps"], + "@angular/google-maps/*": ["./google-maps/*"], + "@angular/material-date-fns-adapter": ["./material-date-fns-adapter"], + "@angular/material-experimental/*": ["./material-experimental/*"], + "@angular/material-luxon-adapter": ["./material-luxon-adapter"], + "@angular/material-moment-adapter": ["./material-moment-adapter"], + "@angular/material/*": ["./material/*"], + "@angular/youtube-player": ["./youtube-player"] } }, "angularCompilerOptions": { diff --git a/src/bazel-tsconfig-test.json b/src/bazel-tsconfig-test.json index 123be220a9b5..c0977fd9d7c9 100644 --- a/src/bazel-tsconfig-test.json +++ b/src/bazel-tsconfig-test.json @@ -5,7 +5,7 @@ "extends": "./bazel-tsconfig-build.json", "compilerOptions": { "importHelpers": true, - "types": ["jasmine"] + "types": ["jasmine", "node"] }, "bazelOptions": { "suppressTsconfigOverrideWarnings": true diff --git a/src/cdk-experimental/BUILD.bazel b/src/cdk-experimental/BUILD.bazel index f9804d89bcb9..fc101aad04e6 100644 --- a/src/cdk-experimental/BUILD.bazel +++ b/src/cdk-experimental/BUILD.bazel @@ -1,20 +1,33 @@ load("//src/cdk-experimental:config.bzl", "CDK_EXPERIMENTAL_TARGETS") -load("//tools:defaults.bzl", "ng_package", "ts_library") +load("//tools:defaults.bzl", "ng_package") +load("//tools:defaults2.bzl", "ts_project") +load("//tools/bazel:legacy_target.bzl", "get_legacy_label") +load("@npm2//:defs.bzl", "npm_link_all_packages") package(default_visibility = ["//visibility:public"]) -ts_library( +npm_link_all_packages() + +ts_project( name = "cdk-experimental", srcs = glob( ["*.ts"], exclude = ["**/*.spec.ts"], ), - deps = ["@npm//@angular/core"], + deps = ["//:node_modules/@angular/core"], ) ng_package( name = "npm_package", + package_name = "@angular/cdk-experimental", srcs = ["package.json"], + package_deps = [":node_modules/@angular/cdk"], tags = ["release-package"], - deps = CDK_EXPERIMENTAL_TARGETS, + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + "//src/material-experimental:__subpackages__", + ], + deps = [get_legacy_label(t) for t in CDK_EXPERIMENTAL_TARGETS], ) diff --git a/src/cdk-experimental/column-resize/BUILD.bazel b/src/cdk-experimental/column-resize/BUILD.bazel index 7938feb95117..6b2929181fa8 100644 --- a/src/cdk-experimental/column-resize/BUILD.bazel +++ b/src/cdk-experimental/column-resize/BUILD.bazel @@ -1,14 +1,17 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "column-resize", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk-experimental/popover-edit", "//src/cdk/bidi", "//src/cdk/coercion", @@ -16,8 +19,5 @@ ng_module( "//src/cdk/overlay", "//src/cdk/portal", "//src/cdk/table", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) diff --git a/src/cdk-experimental/column-resize/resizable.ts b/src/cdk-experimental/column-resize/resizable.ts index fafe5141dd8a..8e2726a6f9f1 100644 --- a/src/cdk-experimental/column-resize/resizable.ts +++ b/src/cdk-experimental/column-resize/resizable.ts @@ -18,6 +18,8 @@ import { Type, ViewContainerRef, ChangeDetectorRef, + afterNextRender, + runInInjectionContext, } from '@angular/core'; import {Directionality} from '@angular/cdk/bidi'; import {ComponentPortal} from '@angular/cdk/portal'; @@ -284,7 +286,13 @@ export abstract class Resizable } private _updateOverlayHandleHeight() { - this.overlayRef!.updateSize({height: this.elementRef.nativeElement!.offsetHeight}); + runInInjectionContext(this.injector, () => { + afterNextRender({ + write: () => { + this.overlayRef!.updateSize({height: this.elementRef.nativeElement!.offsetHeight}); + }, + }); + }); } private _applySize(sizeInPixels: number, previousSize?: number): void { diff --git a/src/cdk-experimental/combobox/BUILD.bazel b/src/cdk-experimental/combobox/BUILD.bazel index 866a7641d09a..58003e8ac469 100644 --- a/src/cdk-experimental/combobox/BUILD.bazel +++ b/src/cdk-experimental/combobox/BUILD.bazel @@ -1,14 +1,17 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "combobox", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -17,17 +20,19 @@ ng_module( ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":combobox", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/keycodes", "//src/cdk/testing/private", - "@npm//@angular/platform-browser", ], ) diff --git a/src/cdk-experimental/listbox/BUILD.bazel b/src/cdk-experimental/listbox/BUILD.bazel index 2eaa728c73ae..26e8be39840d 100644 --- a/src/cdk-experimental/listbox/BUILD.bazel +++ b/src/cdk-experimental/listbox/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "listbox", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns", "//src/cdk/a11y", "//src/cdk/bidi", diff --git a/src/cdk-experimental/listbox/listbox.ts b/src/cdk-experimental/listbox/listbox.ts index c24b05876185..ecddfed9c224 100644 --- a/src/cdk-experimental/listbox/listbox.ts +++ b/src/cdk-experimental/listbox/listbox.ts @@ -42,15 +42,16 @@ import {_IdGenerator} from '@angular/cdk/a11y'; 'role': 'listbox', 'class': 'cdk-listbox', '[attr.tabindex]': 'pattern.tabindex()', + '[attr.aria-readonly]': 'pattern.readonly()', '[attr.aria-disabled]': 'pattern.disabled()', '[attr.aria-orientation]': 'pattern.orientation()', - '[attr.aria-multiselectable]': 'pattern.multiselectable()', + '[attr.aria-multiselectable]': 'pattern.multi()', '[attr.aria-activedescendant]': 'pattern.activedescendant()', '(keydown)': 'pattern.onKeydown($event)', '(pointerdown)': 'pattern.onPointerdown($event)', }, }) -export class CdkListbox { +export class CdkListbox { /** The directionality (LTR / RTL) context for the application (or a subtree of it). */ private readonly _directionality = inject(Directionality); @@ -69,7 +70,7 @@ export class CdkListbox { orientation = input<'vertical' | 'horizontal'>('vertical'); /** Whether multiple items in the list can be selected at once. */ - multiselectable = input(false, {transform: booleanAttribute}); + multi = input(false, {transform: booleanAttribute}); /** Whether focus should wrap when navigating. */ wrap = input(true, {transform: booleanAttribute}); @@ -89,15 +90,17 @@ export class CdkListbox { /** Whether the listbox is disabled. */ disabled = input(false, {transform: booleanAttribute}); - // TODO(wagnermaciel): Figure out how we want to expose control over the current listbox value. - /** The ids of the current selected items. */ - selectedIds = model([]); + /** Whether the listbox is readonly. */ + readonly = input(false, {transform: booleanAttribute}); + + /** The values of the current selected items. */ + value = model([]); /** The current index that has been navigated to. */ activeIndex = model(0); /** The Listbox UIPattern. */ - pattern: ListboxPattern = new ListboxPattern({ + pattern: ListboxPattern = new ListboxPattern({ ...this, items: this.items, textDirection: this.textDirection, @@ -116,7 +119,7 @@ export class CdkListbox { '[attr.aria-disabled]': 'pattern.disabled()', }, }) -export class CdkOption { +export class CdkOption { /** A reference to the option element. */ private readonly _elementRef = inject(ElementRef); @@ -130,6 +133,8 @@ export class CdkOption { /** A unique identifier for the option. */ protected id = computed(() => this._generatedId); + protected value = input.required(); + // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216. /** The text used by the typeahead search. */ @@ -148,9 +153,10 @@ export class CdkOption { label = input(); /** The Option UIPattern. */ - pattern = new OptionPattern({ + pattern = new OptionPattern({ ...this, id: this.id, + value: this.value, listbox: this.listbox, element: this.element, searchTerm: this.searchTerm, diff --git a/src/cdk-experimental/package.json b/src/cdk-experimental/package.json index e7d6dc18b7f4..a004e0ed1a31 100644 --- a/src/cdk-experimental/package.json +++ b/src/cdk-experimental/package.json @@ -15,8 +15,11 @@ "@angular/cdk": "0.0.0-PLACEHOLDER", "@angular/core": "0.0.0-NG" }, + "devDependencies": { + "@angular/cdk": "workspace:*" + }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "ng-update": { "packageGroup": "NG_UPDATE_PACKAGE_GROUP" diff --git a/src/cdk-experimental/popover-edit/BUILD.bazel b/src/cdk-experimental/popover-edit/BUILD.bazel index a298b44cacd3..ce7b1e60c047 100644 --- a/src/cdk-experimental/popover-edit/BUILD.bazel +++ b/src/cdk-experimental/popover-edit/BUILD.bazel @@ -1,44 +1,47 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "popover-edit", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/overlay", "//src/cdk/portal", "//src/cdk/scrolling", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":popover-edit", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/collections", "//src/cdk/keycodes", "//src/cdk/overlay", "//src/cdk/table", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//rxjs", ], ) diff --git a/src/cdk-experimental/popover-edit/table-directives.ts b/src/cdk-experimental/popover-edit/table-directives.ts index e9daa273284d..34130fa89c65 100644 --- a/src/cdk-experimental/popover-edit/table-directives.ts +++ b/src/cdk-experimental/popover-edit/table-directives.ts @@ -9,18 +9,18 @@ import {FocusTrap} from '@angular/cdk/a11y'; import {OverlayRef, OverlaySizeConfig, PositionStrategy} from '@angular/cdk/overlay'; import {TemplatePortal} from '@angular/cdk/portal'; import { - afterRender, + afterNextRender, AfterViewInit, Directive, ElementRef, EmbeddedViewRef, + inject, + ListenerOptions, NgZone, OnDestroy, + Renderer2, TemplateRef, ViewContainerRef, - inject, - Renderer2, - ListenerOptions, } from '@angular/core'; import {merge, Observable, Subject} from 'rxjs'; import { @@ -37,6 +37,7 @@ import { import {CELL_SELECTOR, EDIT_PANE_CLASS, EDIT_PANE_SELECTOR, ROW_SELECTOR} from './constants'; import {EditEventDispatcher, HoverContentState} from './edit-event-dispatcher'; +import {EditRef} from './edit-ref'; import {EditServices} from './edit-services'; import {FocusDispatcher} from './focus-dispatcher'; import { @@ -45,8 +46,6 @@ import { FocusEscapeNotifierFactory, } from './focus-escape-notifier'; import {closest} from './polyfill'; -import {EditRef} from './edit-ref'; -import {_bindEventWithOptions} from '@angular/cdk/platform'; /** * Describes the number of columns before and after the originating cell that the @@ -61,6 +60,23 @@ export interface CdkPopoverEditColspan { /** Used for rate-limiting mousemove events. */ const MOUSE_MOVE_THROTTLE_TIME_MS = 10; +function hasRowElement(nl: NodeList) { + for (let i = 0; i < nl.length; i++) { + const el = nl[i]; + if (!(el instanceof HTMLElement)) { + continue; + } + if (el.matches(ROW_SELECTOR)) { + return true; + } + } + return false; +} + +function isRowMutation(mutation: MutationRecord): boolean { + return hasRowElement(mutation.addedNodes) || hasRowElement(mutation.removedNodes); +} + /** * A directive that must be attached to enable editability on a table. * It is responsible for setting up delegated event handlers and providing the @@ -80,11 +96,25 @@ export class CdkEditable implements AfterViewInit, OnDestroy { protected readonly destroyed = new Subject(); - private _rendered = new Subject(); + private _rowsRendered = new Subject(); + + private _rowMutationObserver = globalThis.MutationObserver + ? new globalThis.MutationObserver(mutations => { + if (mutations.some(isRowMutation)) { + this._rowsRendered.next(); + } + }) + : null; constructor() { - afterRender(() => { - this._rendered.next(); + // TODO: consider a design where instead of polling for row changes we just use + // afterRenderEffect + a signal of the rows. + afterNextRender(() => { + this._rowsRendered.next(); + this._rowMutationObserver?.observe(this.elementRef.nativeElement, { + childList: true, + subtree: true, + }); }); } @@ -95,7 +125,7 @@ export class CdkEditable implements AfterViewInit, OnDestroy { ngOnDestroy(): void { this.destroyed.next(); this.destroyed.complete(); - this._rendered.complete(); + this._rowMutationObserver?.disconnect(); } private _observableFromEvent( @@ -105,9 +135,7 @@ export class CdkEditable implements AfterViewInit, OnDestroy { ) { return new Observable(subscriber => { const handler = (event: T) => subscriber.next(event); - const cleanup = options - ? _bindEventWithOptions(this._renderer, element, name, handler, options) - : this._renderer.listen(element, name, handler, options); + const cleanup = this._renderer.listen(element, name, handler, options); return () => { cleanup(); subscriber.complete(); @@ -153,9 +181,10 @@ export class CdkEditable implements AfterViewInit, OnDestroy { // Keep track of rows within the table. This is used to know which rows with hover content // are first or last in the table. They are kept focusable in case focus enters from above // or below the table. - this._rendered + this._rowsRendered .pipe( // Avoid some timing inconsistencies since Angular v19. + // TODO: see if we can remove this now that we're using MutationObserver. debounceTime(0), // Optimization: ignore dom changes while focus is within the table as we already // ensure that rows above and below the focused/active row are tabbable. diff --git a/src/cdk-experimental/scrolling/BUILD.bazel b/src/cdk-experimental/scrolling/BUILD.bazel index c70179ce893c..6f828aab91ce 100644 --- a/src/cdk-experimental/scrolling/BUILD.bazel +++ b/src/cdk-experimental/scrolling/BUILD.bazel @@ -1,32 +1,35 @@ load("//src/e2e-app:test_suite.bzl", "e2e_test_suite") -load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "scrolling", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/coercion", "//src/cdk/collections", "//src/cdk/scrolling", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":scrolling", + "//:node_modules/@angular/core", "//src/cdk/scrolling", ], ) @@ -36,14 +39,19 @@ ng_web_test_suite( deps = [":unit_test_sources"], ) -ng_e2e_test_library( +ts_project( name = "e2e_test_sources", + testonly = True, srcs = glob(["**/*.e2e.spec.ts"]), + deps = [ + "//:node_modules/@types/selenium-webdriver", + "//:node_modules/protractor", + ], ) e2e_test_suite( name = "e2e_tests", deps = [ - ":e2e_test_sources", + ":e2e_test_sources_legacy", ], ) diff --git a/src/cdk-experimental/selection/BUILD.bazel b/src/cdk-experimental/selection/BUILD.bazel index 850f41f74a4f..662a63ff0e74 100644 --- a/src/cdk-experimental/selection/BUILD.bazel +++ b/src/cdk-experimental/selection/BUILD.bazel @@ -1,35 +1,39 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "selection", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/coercion", "//src/cdk/collections", "//src/cdk/table", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":selection", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src/cdk/table", "//src/cdk/testing/private", - "@npm//@angular/common", ], ) diff --git a/src/cdk-experimental/table-scroll-container/BUILD.bazel b/src/cdk-experimental/table-scroll-container/BUILD.bazel index e624e99e819f..9320dc4caf91 100644 --- a/src/cdk-experimental/table-scroll-container/BUILD.bazel +++ b/src/cdk-experimental/table-scroll-container/BUILD.bazel @@ -1,41 +1,42 @@ load( "//tools:defaults.bzl", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table-scroll-container", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/platform", "//src/cdk/table", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":table-scroll-container", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/collections", "//src/cdk/platform", "//src/cdk/table", - "@npm//rxjs", ], ) diff --git a/src/cdk-experimental/ui-patterns/BUILD.bazel b/src/cdk-experimental/ui-patterns/BUILD.bazel index e9a32359e012..b82f77b3fc79 100644 --- a/src/cdk-experimental/ui-patterns/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/BUILD.bazel @@ -1,16 +1,16 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "ui-patterns", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", "//src/cdk-experimental/ui-patterns/listbox", - "@npm//@angular/core", ], ) diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/event-manager/BUILD.bazel index 563b0ff1ba15..82fb99236733 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "event-manager", srcs = glob( ["**/*.ts"], diff --git a/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts b/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts index 77d3bb8cce6d..38943ffaadb1 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/event-manager/keyboard-event-manager.ts @@ -65,11 +65,15 @@ export class KeyboardEventManager extends EventManager< } private _isMatch(event: T, key: KeyCode, modifiers: ModifierInputs) { + if (!hasModifiers(event, modifiers)) { + return false; + } + if (key instanceof RegExp) { return key.test(event.key); } const keyStr = typeof key === 'string' ? key : key(); - return keyStr.toLowerCase() === event.key.toLowerCase() && hasModifiers(event, modifiers); + return keyStr.toLowerCase() === event.key.toLowerCase(); } } diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-focus/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/list-focus/BUILD.bazel index 37bda0ab9d97..1567f3e78fab 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-focus/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/list-focus/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "list-focus", srcs = glob( ["**/*.ts"], @@ -14,11 +15,13 @@ ts_library( ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":list-focus", + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", ], diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts b/src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts index 96514ce71b09..3600a4c9e2b4 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/list-focus/list-focus.ts @@ -38,7 +38,10 @@ export class ListFocus { if (this.inputs.focusMode() === 'roving') { return undefined; } - return this.navigation.inputs.items()[this.navigation.inputs.activeIndex()].id(); + if (this.navigation.inputs.items().length) { + return this.navigation.inputs.items()[this.navigation.inputs.activeIndex()].id(); + } + return undefined; } /** The tabindex for the list. */ diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-navigation/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/list-navigation/BUILD.bazel index 9bf541fbe517..7111f782b3bd 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-navigation/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/list-navigation/BUILD.bazel @@ -1,24 +1,27 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "list-navigation", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", - "@npm//@angular/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":list-navigation", + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", ], ) diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-selection/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/list-selection/BUILD.bazel index fad8ca69513d..9897dbd264e0 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-selection/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/list-selection/BUILD.bazel @@ -1,25 +1,28 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "list-selection", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", - "@npm//@angular/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":list-selection", + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", ], diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.spec.ts b/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.spec.ts index 86a955992a47..2a97c628e7c0 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.spec.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.spec.ts @@ -12,22 +12,22 @@ import {ListSelectionItem, ListSelection, ListSelectionInputs} from './list-sele import {ListNavigation, ListNavigationInputs} from '../list-navigation/list-navigation'; describe('List Selection', () => { - interface TestItem extends ListSelectionItem { + interface TestItem extends ListSelectionItem { disabled: WritableSignalLike; } - function getItems(length: number): SignalLike { + function getItems(values: V[]): SignalLike[]> { return signal( - Array.from({length}).map((_, i) => ({ + values.map((value, i) => ({ index: signal(i), - id: signal(`${i}`), + value: signal(value), disabled: signal(false), isAnchor: signal(false), })), ); } - function getNavigation( + function getNavigation, V>( items: SignalLike, args: Partial> = {}, ): ListNavigation { @@ -42,16 +42,16 @@ describe('List Selection', () => { }); } - function getSelection( + function getSelection, V>( items: SignalLike, navigation: ListNavigation, - args: Partial> = {}, - ): ListSelection { + args: Partial> = {}, + ): ListSelection { return new ListSelection({ items, navigation, - selectedIds: signal([]), - multiselectable: signal(true), + value: signal([]), + multi: signal(true), selectionMode: signal('explicit'), ...args, }); @@ -59,16 +59,16 @@ describe('List Selection', () => { describe('#select', () => { it('should select an item', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.select(); // [0] - expect(selection.inputs.selectedIds()).toEqual(['0']); + expect(selection.inputs.value()).toEqual([0]); }); it('should select multiple options', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); @@ -76,56 +76,56 @@ describe('List Selection', () => { nav.next(); selection.select(); // [0, 1] - expect(selection.inputs.selectedIds()).toEqual(['0', '1']); + expect(selection.inputs.value()).toEqual([0, 1]); }); it('should not select multiple options', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav, { - multiselectable: signal(false), + multi: signal(false), }); selection.select(); // [0] nav.next(); selection.select(); // [1] - expect(selection.inputs.selectedIds()).toEqual(['1']); + expect(selection.inputs.value()).toEqual([1]); }); it('should not select disabled items', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); items()[0].disabled.set(true); selection.select(); // [] - expect(selection.inputs.selectedIds()).toEqual([]); + expect(selection.inputs.value()).toEqual([]); }); it('should do nothing to already selected items', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.select(); // [0] selection.select(); // [0] - expect(selection.inputs.selectedIds()).toEqual(['0']); + expect(selection.inputs.value()).toEqual([0]); }); }); describe('#deselect', () => { it('should deselect an item', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.deselect(); // [] - expect(selection.inputs.selectedIds().length).toBe(0); + expect(selection.inputs.value().length).toBe(0); }); it('should not deselect disabled items', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); @@ -133,61 +133,61 @@ describe('List Selection', () => { items()[0].disabled.set(true); selection.deselect(); // [0] - expect(selection.inputs.selectedIds()).toEqual(['0']); + expect(selection.inputs.value()).toEqual([0]); }); }); describe('#toggle', () => { it('should select an unselected item', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.toggle(); // [0] - expect(selection.inputs.selectedIds()).toEqual(['0']); + expect(selection.inputs.value()).toEqual([0]); }); it('should deselect a selected item', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.select(); // [0] selection.toggle(); // [] - expect(selection.inputs.selectedIds().length).toBe(0); + expect(selection.inputs.value().length).toBe(0); }); }); describe('#selectAll', () => { it('should select all items', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.selectAll(); - expect(selection.inputs.selectedIds()).toEqual(['0', '1', '2', '3', '4']); + expect(selection.inputs.value()).toEqual([0, 1, 2, 3, 4]); }); it('should do nothing if a list is not multiselectable', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.selectAll(); - expect(selection.inputs.selectedIds()).toEqual(['0', '1', '2', '3', '4']); + expect(selection.inputs.value()).toEqual([0, 1, 2, 3, 4]); }); }); describe('#deselectAll', () => { it('should deselect all items', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); selection.deselectAll(); // [] - expect(selection.inputs.selectedIds().length).toBe(0); + expect(selection.inputs.value().length).toBe(0); }); }); describe('#selectFromAnchor', () => { it('should select all items from an anchor at a lower index', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items); const selection = getSelection(items, nav); @@ -196,11 +196,11 @@ describe('List Selection', () => { nav.next(); selection.selectFromPrevSelectedItem(); // [0, 1, 2] - expect(selection.inputs.selectedIds()).toEqual(['0', '1', '2']); + expect(selection.inputs.value()).toEqual([0, 1, 2]); }); it('should select all items from an anchor at a higher index', () => { - const items = getItems(5); + const items = getItems([0, 1, 2, 3, 4]); const nav = getNavigation(items, { activeIndex: signal(3), }); @@ -211,7 +211,8 @@ describe('List Selection', () => { nav.prev(); selection.selectFromPrevSelectedItem(); // [3, 1, 2] - expect(selection.inputs.selectedIds()).toEqual(['3', '1', '2']); + // TODO(wagnermaciel): Order the values when inserting them. + expect(selection.inputs.value()).toEqual([3, 1, 2]); }); }); }); diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts b/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts index ce8280d0e453..f926fe6fc988 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts +++ b/src/cdk-experimental/ui-patterns/behaviors/list-selection/list-selection.ts @@ -11,38 +11,38 @@ import {SignalLike, WritableSignalLike} from '../signal-like/signal-like'; import {ListNavigation, ListNavigationItem} from '../list-navigation/list-navigation'; /** Represents an item in a collection, such as a listbox option, than can be selected. */ -export interface ListSelectionItem extends ListNavigationItem { - /** A unique identifier for the item. */ - id: SignalLike; +export interface ListSelectionItem extends ListNavigationItem { + /** The value of the item. */ + value: SignalLike; /** Whether an item is disabled. */ disabled: SignalLike; } /** Represents the required inputs for a collection that contains selectable items. */ -export interface ListSelectionInputs { +export interface ListSelectionInputs, V> { /** The items in the list. */ items: SignalLike; /** Whether multiple items in the list can be selected at once. */ - multiselectable: SignalLike; + multi: SignalLike; - /** The ids of the current selected items. */ - selectedIds: WritableSignalLike; + /** The current value of the list selection. */ + value: WritableSignalLike; /** The selection strategy used by the list. */ selectionMode: SignalLike<'follow' | 'explicit'>; } /** Controls selection for a list of items. */ -export class ListSelection { - /** The id of the most recently selected item. */ - previousSelectedId = signal(undefined); +export class ListSelection, V> { + /** The value of the most recently selected item. */ + previousValue = signal(undefined); /** The navigation controller of the parent list. */ navigation: ListNavigation; - constructor(readonly inputs: ListSelectionInputs & {navigation: ListNavigation}) { + constructor(readonly inputs: ListSelectionInputs & {navigation: ListNavigation}) { this.navigation = inputs.navigation; } @@ -50,17 +50,17 @@ export class ListSelection { select(item?: T) { item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()]; - if (item.disabled() || this.inputs.selectedIds().includes(item.id())) { + if (item.disabled() || this.inputs.value().includes(item.value())) { return; } - if (!this.inputs.multiselectable()) { + if (!this.inputs.multi()) { this.deselectAll(); } // TODO: Need to discuss when to drop this. this._anchor(); - this.inputs.selectedIds.update(ids => ids.concat(item.id())); + this.inputs.value.update(values => values.concat(item.value())); } /** Deselects the item at the current active index. */ @@ -68,25 +68,25 @@ export class ListSelection { item = item ?? this.inputs.items()[this.inputs.navigation.inputs.activeIndex()]; if (!item.disabled()) { - this.inputs.selectedIds.update(ids => ids.filter(id => id !== item.id())); + this.inputs.value.update(values => values.filter(value => value !== item.value())); } } /** Toggles the item at the current active index. */ toggle() { const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()]; - this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.select(); + this.inputs.value().includes(item.value()) ? this.deselect() : this.select(); } /** Toggles only the item at the current active index. */ toggleOne() { const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()]; - this.inputs.selectedIds().includes(item.id()) ? this.deselect() : this.selectOne(); + this.inputs.value().includes(item.value()) ? this.deselect() : this.selectOne(); } /** Selects all items in the list. */ selectAll() { - if (!this.inputs.multiselectable()) { + if (!this.inputs.multi()) { return; // Should we log a warning? } @@ -106,8 +106,8 @@ export class ListSelection { /** Selects the items in the list starting at the last selected item. */ selectFromPrevSelectedItem() { - const prevSelectedId = this.inputs.items().findIndex(i => this.previousSelectedId() === i.id()); - this._selectFromIndex(prevSelectedId); + const previousValue = this.inputs.items().findIndex(i => this.previousValue() === i.value()); + this._selectFromIndex(previousValue); } /** Selects the items in the list starting at the last active item. */ @@ -138,6 +138,6 @@ export class ListSelection { /** Sets the anchor to the current active index. */ private _anchor() { const item = this.inputs.items()[this.inputs.navigation.inputs.activeIndex()]; - this.previousSelectedId.set(item.id()); + this.previousValue.set(item.value()); } } diff --git a/src/cdk-experimental/ui-patterns/behaviors/list-typeahead/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/list-typeahead/BUILD.bazel index 9c415122deb3..35ad3e22ce25 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/list-typeahead/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/list-typeahead/BUILD.bazel @@ -1,25 +1,28 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "list-typeahead", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", - "@npm//@angular/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":list-typeahead", + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", ], diff --git a/src/cdk-experimental/ui-patterns/behaviors/signal-like/BUILD.bazel b/src/cdk-experimental/ui-patterns/behaviors/signal-like/BUILD.bazel index 47d463668358..e64b0007568b 100644 --- a/src/cdk-experimental/ui-patterns/behaviors/signal-like/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/behaviors/signal-like/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "signal-like", srcs = ["signal-like.ts"], deps = [], diff --git a/src/cdk-experimental/ui-patterns/listbox/BUILD.bazel b/src/cdk-experimental/ui-patterns/listbox/BUILD.bazel index 9d68e2822333..bd856fecdf4a 100644 --- a/src/cdk-experimental/ui-patterns/listbox/BUILD.bazel +++ b/src/cdk-experimental/ui-patterns/listbox/BUILD.bazel @@ -1,20 +1,38 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "listbox", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/ui-patterns/behaviors/event-manager", "//src/cdk-experimental/ui-patterns/behaviors/list-focus", "//src/cdk-experimental/ui-patterns/behaviors/list-navigation", "//src/cdk-experimental/ui-patterns/behaviors/list-selection", "//src/cdk-experimental/ui-patterns/behaviors/list-typeahead", "//src/cdk-experimental/ui-patterns/behaviors/signal-like", - "@npm//@angular/core", ], ) + +ts_project( + name = "unit_test_sources", + testonly = True, + srcs = glob(["**/*.spec.ts"]), + deps = [ + ":listbox", + "//:node_modules/@angular/core", + "//src/cdk/keycodes", + "//src/cdk/testing/private", + ], +) + +ng_web_test_suite( + name = "unit_tests", + deps = [":unit_test_sources"], +) diff --git a/src/cdk-experimental/ui-patterns/listbox/listbox.spec.ts b/src/cdk-experimental/ui-patterns/listbox/listbox.spec.ts new file mode 100644 index 000000000000..0b70d65500ec --- /dev/null +++ b/src/cdk-experimental/ui-patterns/listbox/listbox.spec.ts @@ -0,0 +1,442 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +import {signal, WritableSignal} from '@angular/core'; +import {ListboxInputs, ListboxPattern} from './listbox'; +import {OptionPattern} from './option'; +import {createKeyboardEvent} from '@angular/cdk/testing/private'; +import {ModifierKeys} from '@angular/cdk/testing'; + +type TestInputs = ListboxInputs; +type TestOption = OptionPattern; +type TestListbox = ListboxPattern; + +const up = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 38, 'ArrowUp', mods); +const down = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 40, 'ArrowDown', mods); +const left = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 37, 'ArrowLeft', mods); +const right = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 39, 'ArrowRight', mods); +const home = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 36, 'Home', mods); +const end = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 35, 'End', mods); +const space = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 32, ' ', mods); +const enter = (mods?: ModifierKeys) => createKeyboardEvent('keydown', 13, 'Enter', mods); + +describe('Listbox Pattern', () => { + function getListbox(inputs: Partial & Pick) { + return new ListboxPattern({ + items: inputs.items, + value: inputs.value ?? signal([]), + activeIndex: inputs.activeIndex ?? signal(0), + typeaheadDelay: inputs.typeaheadDelay ?? signal(0.5), + wrap: inputs.wrap ?? signal(true), + readonly: inputs.readonly ?? signal(false), + disabled: inputs.disabled ?? signal(false), + skipDisabled: inputs.skipDisabled ?? signal(true), + multi: inputs.multi ?? signal(false), + focusMode: inputs.focusMode ?? signal('roving'), + textDirection: inputs.textDirection ?? signal('ltr'), + orientation: inputs.orientation ?? signal('vertical'), + selectionMode: inputs.selectionMode ?? signal('explicit'), + }); + } + + function getOptions(listbox: TestListbox, values: string[]): TestOption[] { + return values.map((value, index) => { + return new OptionPattern({ + value: signal(value), + id: signal(`option-${index}`), + disabled: signal(false), + searchTerm: signal(value), + listbox: signal(listbox), + element: signal({focus: () => {}} as HTMLElement), + }); + }); + } + + function getPatterns(values: string[], inputs: Partial = {}) { + const options = signal([]); + const listbox = getListbox({...inputs, items: options}); + options.set(getOptions(listbox, values)); + return {listbox, options}; + } + + function getDefaultPatterns(inputs: Partial = {}) { + return getPatterns( + [ + 'Apple', + 'Apricot', + 'Banana', + 'Blackberry', + 'Blueberry', + 'Cantaloupe', + 'Cherry', + 'Clementine', + 'Cranberry', + ], + inputs, + ); + } + + describe('Keyboard Navigation', () => { + it('should navigate next on ArrowDown', () => { + const {listbox} = getDefaultPatterns(); + expect(listbox.inputs.activeIndex()).toBe(0); + listbox.onKeydown(down()); + expect(listbox.inputs.activeIndex()).toBe(1); + }); + + it('should navigate prev on ArrowUp', () => { + const {listbox} = getDefaultPatterns({activeIndex: signal(1)}); + expect(listbox.inputs.activeIndex()).toBe(1); + listbox.onKeydown(up()); + expect(listbox.inputs.activeIndex()).toBe(0); + }); + + it('should navigate next on ArrowRight (horizontal)', () => { + const {listbox} = getDefaultPatterns({orientation: signal('horizontal')}); + expect(listbox.inputs.activeIndex()).toBe(0); + listbox.onKeydown(right()); + expect(listbox.inputs.activeIndex()).toBe(1); + }); + + it('should navigate prev on ArrowLeft (horizontal)', () => { + const {listbox} = getDefaultPatterns({ + activeIndex: signal(1), + orientation: signal('horizontal'), + }); + expect(listbox.inputs.activeIndex()).toBe(1); + listbox.onKeydown(left()); + expect(listbox.inputs.activeIndex()).toBe(0); + }); + + it('should navigate next on ArrowLeft (horizontal & rtl)', () => { + const {listbox} = getDefaultPatterns({ + textDirection: signal('rtl'), + orientation: signal('horizontal'), + }); + expect(listbox.inputs.activeIndex()).toBe(0); + listbox.onKeydown(left()); + expect(listbox.inputs.activeIndex()).toBe(1); + }); + + it('should navigate prev on ArrowRight (horizontal & rtl)', () => { + const {listbox} = getDefaultPatterns({ + activeIndex: signal(1), + textDirection: signal('rtl'), + orientation: signal('horizontal'), + }); + expect(listbox.inputs.activeIndex()).toBe(1); + listbox.onKeydown(right()); + expect(listbox.inputs.activeIndex()).toBe(0); + }); + + it('should navigate to the first option on Home', () => { + const {listbox} = getDefaultPatterns({ + activeIndex: signal(8), + }); + expect(listbox.inputs.activeIndex()).toBe(8); + listbox.onKeydown(home()); + expect(listbox.inputs.activeIndex()).toBe(0); + }); + + it('should navigate to the last option on End', () => { + const {listbox} = getDefaultPatterns(); + expect(listbox.inputs.activeIndex()).toBe(0); + listbox.onKeydown(end()); + expect(listbox.inputs.activeIndex()).toBe(8); + }); + + it('should be able to navigate in readonly mode', () => { + const {listbox} = getDefaultPatterns(); + listbox.onKeydown(down()); + expect(listbox.inputs.activeIndex()).toBe(1); + listbox.onKeydown(up()); + expect(listbox.inputs.activeIndex()).toBe(0); + listbox.onKeydown(end()); + expect(listbox.inputs.activeIndex()).toBe(8); + listbox.onKeydown(home()); + expect(listbox.inputs.activeIndex()).toBe(0); + }); + }); + + describe('Keyboard Selection', () => { + describe('follows focus & single select', () => { + it('should select an option on navigation', () => { + const {listbox} = getDefaultPatterns({ + value: signal(['Apple']), + multi: signal(false), + selectionMode: signal('follow'), + }); + + expect(listbox.inputs.activeIndex()).toBe(0); + expect(listbox.inputs.value()).toEqual(['Apple']); + + listbox.onKeydown(down()); + expect(listbox.inputs.activeIndex()).toBe(1); + expect(listbox.inputs.value()).toEqual(['Apricot']); + + listbox.onKeydown(up()); + expect(listbox.inputs.activeIndex()).toBe(0); + expect(listbox.inputs.value()).toEqual(['Apple']); + + listbox.onKeydown(end()); + expect(listbox.inputs.activeIndex()).toBe(8); + expect(listbox.inputs.value()).toEqual(['Cranberry']); + + listbox.onKeydown(home()); + expect(listbox.inputs.activeIndex()).toBe(0); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should not be able to change selection when in readonly mode', () => { + const {listbox} = getDefaultPatterns({ + value: signal(['Apple']), + readonly: signal(true), + multi: signal(false), + selectionMode: signal('follow'), + }); + + expect(listbox.inputs.activeIndex()).toBe(0); + expect(listbox.inputs.value()).toEqual(['Apple']); + + listbox.onKeydown(down()); + expect(listbox.inputs.activeIndex()).toBe(1); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + }); + + describe('explicit focus & single select', () => { + let listbox: TestListbox; + + beforeEach(() => { + listbox = getDefaultPatterns({ + value: signal([]), + selectionMode: signal('explicit'), + multi: signal(false), + }).listbox; + }); + + it('should select an option on Space', () => { + listbox.onKeydown(space()); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should select an option on Enter', () => { + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should only allow one selected option', () => { + listbox.onKeydown(enter()); + listbox.onKeydown(down()); + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual(['Apricot']); + }); + + it('should not be able to change selection when in readonly mode', () => { + const readonly = listbox.inputs.readonly as WritableSignal; + readonly.set(true); + listbox.onKeydown(space()); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(down()); + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual([]); + }); + }); + + describe('explicit focus & multi select', () => { + let listbox: TestListbox; + + beforeEach(() => { + listbox = getDefaultPatterns({ + value: signal([]), + selectionMode: signal('explicit'), + multi: signal(true), + }).listbox; + }); + + it('should select an option on Space', () => { + listbox.onKeydown(space()); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should select an option on Enter', () => { + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should allow multiple selected options', () => { + listbox.onKeydown(enter()); + listbox.onKeydown(down()); + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual(['Apple', 'Apricot']); + }); + + it('should toggle the selected state of the next option on Shift + ArrowDown', () => { + listbox.onKeydown(down({shift: true})); + listbox.onKeydown(down({shift: true})); + expect(listbox.inputs.value()).toEqual(['Apricot', 'Banana']); + }); + + it('should toggle the selected state of the next option on Shift + ArrowUp', () => { + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(up({shift: true})); + listbox.onKeydown(up({shift: true})); + expect(listbox.inputs.value()).toEqual(['Apricot', 'Apple']); + }); + + it('should select contiguous items from the most recently selected item to the focused item on Shift + Space (or Enter)', () => { + listbox.onKeydown(down()); + listbox.onKeydown(space()); // Apricot + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(space({shift: true})); + expect(listbox.inputs.value()).toEqual(['Apricot', 'Banana', 'Blackberry']); + }); + + it('should select the focused option and all options up to the first option on Ctrl + Shift + Home', () => { + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(home({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual(['Apple', 'Apricot', 'Banana', 'Blackberry']); + }); + + it('should select the focused option and all options down to the last option on Ctrl + Shift + End', () => { + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(end({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual(['Cantaloupe', 'Cherry', 'Clementine', 'Cranberry']); + }); + + it('should not be able to change selection when in readonly mode', () => { + const readonly = listbox.inputs.readonly as WritableSignal; + readonly.set(true); + listbox.onKeydown(space()); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(down()); + listbox.onKeydown(enter()); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(up({shift: true})); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(down({shift: true})); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(end({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual([]); + + listbox.onKeydown(home({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual([]); + }); + }); + + describe('follows focus & multi select', () => { + let listbox: TestListbox; + + beforeEach(() => { + listbox = getDefaultPatterns({ + value: signal(['Apple']), + multi: signal(true), + selectionMode: signal('follow'), + }).listbox; + }); + + it('should select an option on navigation', () => { + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(down()); + expect(listbox.inputs.value()).toEqual(['Apricot']); + listbox.onKeydown(up()); + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(end()); + expect(listbox.inputs.value()).toEqual(['Cranberry']); + listbox.onKeydown(home()); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + + it('should navigate without selecting an option if the Ctrl key is pressed', () => { + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(down({control: true})); + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(up({control: true})); + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(end({control: true})); + expect(listbox.inputs.value()).toEqual(['Apple']); + listbox.onKeydown(home({control: true})); + }); + + it('should toggle an options selection state on Ctrl + Space', () => { + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(space({control: true})); + expect(listbox.inputs.value()).toEqual(['Apple', 'Banana']); + }); + + it('should toggle the selected state of the next option on Shift + ArrowDown', () => { + listbox.onKeydown(down({shift: true})); + listbox.onKeydown(down({shift: true})); + expect(listbox.inputs.value()).toEqual(['Apple', 'Apricot', 'Banana']); + }); + + it('should toggle the selected state of the next option on Shift + ArrowUp', () => { + listbox.onKeydown(down()); + listbox.onKeydown(down()); + listbox.onKeydown(up({shift: true})); + listbox.onKeydown(up({shift: true})); + expect(listbox.inputs.value()).toEqual(['Banana', 'Apricot', 'Apple']); + }); + + it('should select contiguous items from the most recently selected item to the focused item on Shift + Space (or Enter)', () => { + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down()); // Blackberry + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(space({shift: true})); + expect(listbox.inputs.value()).toEqual(['Blackberry', 'Blueberry', 'Cantaloupe']); + }); + + it('should select the focused option and all options up to the first option on Ctrl + Shift + Home', () => { + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down()); + listbox.onKeydown(home({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual(['Blackberry', 'Apple', 'Apricot', 'Banana']); + }); + + it('should select the focused option and all options down to the last option on Ctrl + Shift + End', () => { + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down({control: true})); + listbox.onKeydown(down()); + listbox.onKeydown(end({control: true, shift: true})); + expect(listbox.inputs.value()).toEqual(['Cantaloupe', 'Cherry', 'Clementine', 'Cranberry']); + }); + + it('should not be able to change selection when in readonly mode', () => { + const readonly = listbox.inputs.readonly as WritableSignal; + readonly.set(true); + listbox.onKeydown(down()); + expect(listbox.inputs.value()).toEqual(['Apple']); + + listbox.onKeydown(up()); + expect(listbox.inputs.value()).toEqual(['Apple']); + + listbox.onKeydown(space({control: true})); + expect(listbox.inputs.value()).toEqual(['Apple']); + }); + }); + }); +}); diff --git a/src/cdk-experimental/ui-patterns/listbox/listbox.ts b/src/cdk-experimental/ui-patterns/listbox/listbox.ts index 09aeda3cf589..bba0f2444ba6 100644 --- a/src/cdk-experimental/ui-patterns/listbox/listbox.ts +++ b/src/cdk-experimental/ui-patterns/listbox/listbox.ts @@ -29,26 +29,27 @@ interface SelectOptions { } /** Represents the required inputs for a listbox. */ -export type ListboxInputs = ListNavigationInputs & - ListSelectionInputs & +export type ListboxInputs = ListNavigationInputs> & + ListSelectionInputs, V> & ListTypeaheadInputs & - ListFocusInputs & { + ListFocusInputs> & { disabled: SignalLike; + readonly: SignalLike; }; /** Controls the state of a listbox. */ -export class ListboxPattern { +export class ListboxPattern { /** Controls navigation for the listbox. */ - navigation: ListNavigation; + navigation: ListNavigation>; /** Controls selection for the listbox. */ - selection: ListSelection; + selection: ListSelection, V>; /** Controls typeahead for the listbox. */ - typeahead: ListTypeahead; + typeahead: ListTypeahead>; /** Controls focus for the listbox. */ - focusManager: ListFocus; + focusManager: ListFocus>; /** Whether the list is vertically or horizontally oriented. */ orientation: SignalLike<'vertical' | 'horizontal'>; @@ -56,6 +57,9 @@ export class ListboxPattern { /** Whether the listbox is disabled. */ disabled: SignalLike; + /** Whether the listbox is readonly. */ + readonly: SignalLike; + /** The tabindex of the listbox. */ tabindex = computed(() => this.focusManager.getListTabindex()); @@ -63,7 +67,7 @@ export class ListboxPattern { activedescendant = computed(() => this.focusManager.getActiveDescendant()); /** Whether multiple items in the list can be selected at once. */ - multiselectable: SignalLike; + multi: SignalLike; /** The number of items in the listbox. */ setsize = computed(() => this.navigation.inputs.items().length); @@ -94,6 +98,15 @@ export class ListboxPattern { keydown = computed(() => { const manager = new KeyboardEventManager(); + if (this.readonly()) { + return manager + .on(this.prevKey, () => this.prev()) + .on(this.nextKey, () => this.next()) + .on('Home', () => this.first()) + .on('End', () => this.last()) + .on(this.typeaheadRegexp, e => this.search(e.key)); + } + if (!this.followFocus()) { manager .on(this.prevKey, () => this.prev()) @@ -112,7 +125,7 @@ export class ListboxPattern { .on(this.typeaheadRegexp, e => this.search(e.key, {selectOne: true})); } - if (this.inputs.multiselectable()) { + if (this.inputs.multi()) { manager .on(Modifier.Shift, ' ', () => this._updateSelection({selectFromAnchor: true})) .on(Modifier.Shift, 'Enter', () => this._updateSelection({selectFromAnchor: true})) @@ -123,20 +136,22 @@ export class ListboxPattern { .on(Modifier.Ctrl, 'A', () => this._updateSelection({selectAll: true})); } - if (!this.followFocus() && this.inputs.multiselectable()) { + if (!this.followFocus() && this.inputs.multi()) { manager.on(' ', () => this._updateSelection({toggle: true})); manager.on('Enter', () => this._updateSelection({toggle: true})); } - if (!this.followFocus() && !this.inputs.multiselectable()) { + if (!this.followFocus() && !this.inputs.multi()) { manager.on(' ', () => this._updateSelection({toggleOne: true})); manager.on('Enter', () => this._updateSelection({toggleOne: true})); } - if (this.inputs.multiselectable() && this.followFocus()) { + if (this.inputs.multi() && this.followFocus()) { manager .on(Modifier.Ctrl, this.prevKey, () => this.prev()) .on(Modifier.Ctrl, this.nextKey, () => this.next()) + .on(Modifier.Ctrl, ' ', () => this._updateSelection({toggle: true})) + .on(Modifier.Ctrl, 'Enter', () => this._updateSelection({toggle: true})) .on(Modifier.Ctrl, 'Home', () => this.first()) // TODO: Not in spec but prob should be. .on(Modifier.Ctrl, 'End', () => this.last()); // TODO: Not in spec but prob should be. } @@ -148,21 +163,24 @@ export class ListboxPattern { pointerdown = computed(() => { const manager = new PointerEventManager(); - if (this.inputs.multiselectable()) { - manager + if (this.readonly()) { + return manager.on(e => this.goto(e)); + } + + if (this.inputs.multi()) { + return manager .on(e => this.goto(e, {toggle: true})) .on(Modifier.Shift, e => this.goto(e, {selectFromActive: true})); - } else { - manager.on(e => this.goto(e, {toggleOne: true})); } - return manager; + return manager.on(e => this.goto(e, {toggleOne: true})); }); - constructor(readonly inputs: ListboxInputs) { + constructor(readonly inputs: ListboxInputs) { this.disabled = inputs.disabled; + this.readonly = inputs.readonly; this.orientation = inputs.orientation; - this.multiselectable = inputs.multiselectable; + this.multi = inputs.multi; this.navigation = new ListNavigation(inputs); this.selection = new ListSelection({...inputs, navigation: this.navigation}); diff --git a/src/cdk-experimental/ui-patterns/listbox/option.ts b/src/cdk-experimental/ui-patterns/listbox/option.ts index 913596d29e0d..2bf7552e8ed9 100644 --- a/src/cdk-experimental/ui-patterns/listbox/option.ts +++ b/src/cdk-experimental/ui-patterns/listbox/option.ts @@ -17,26 +17,29 @@ import {SignalLike} from '../behaviors/signal-like/signal-like'; * Represents the properties exposed by a listbox that need to be accessed by an option. * This exists to avoid circular dependency errors between the listbox and option. */ -interface ListboxPattern { - focusManager: ListFocus; - selection: ListSelection; - navigation: ListNavigation; +interface ListboxPattern { + focusManager: ListFocus>; + selection: ListSelection, V>; + navigation: ListNavigation>; } /** Represents the required inputs for an option in a listbox. */ -export interface OptionInputs +export interface OptionInputs extends ListNavigationItem, - ListSelectionItem, + ListSelectionItem, ListTypeaheadItem, ListFocusItem { - listbox: SignalLike; + listbox: SignalLike | undefined>; } /** Represents an option in a listbox. */ -export class OptionPattern { +export class OptionPattern { /** A unique identifier for the option. */ id: SignalLike; + /** The value of the option. */ + value: SignalLike; + /** The position of the option in the list. */ index = computed( () => @@ -46,7 +49,7 @@ export class OptionPattern { ); /** Whether the option is selected. */ - selected = computed(() => this.listbox()?.selection.inputs.selectedIds().includes(this.id())); + selected = computed(() => this.listbox()?.selection.inputs.value().includes(this.value())); /** Whether the option is disabled. */ disabled: SignalLike; @@ -55,7 +58,7 @@ export class OptionPattern { searchTerm: SignalLike; /** A reference to the parent listbox. */ - listbox: SignalLike; + listbox: SignalLike | undefined>; /** The tabindex of the option. */ tabindex = computed(() => this.listbox()?.focusManager.getItemTabindex(this)); @@ -63,8 +66,9 @@ export class OptionPattern { /** The html element that should receive focus. */ element: SignalLike; - constructor(args: OptionInputs) { + constructor(args: OptionInputs) { this.id = args.id; + this.value = args.value; this.listbox = args.listbox; this.element = args.element; this.disabled = args.disabled; diff --git a/src/cdk/BUILD.bazel b/src/cdk/BUILD.bazel index 41f22fa3e977..0774b0a5f4f0 100644 --- a/src/cdk/BUILD.bazel +++ b/src/cdk/BUILD.bazel @@ -1,15 +1,20 @@ load("//src/cdk:config.bzl", "CDK_ENTRYPOINTS", "CDK_ENTRYPOINTS_WITH_STYLES", "CDK_SCSS_LIBS", "CDK_TARGETS") -load("//tools:defaults.bzl", "ng_package", "sass_library", "ts_library") +load("//tools:defaults.bzl", "ng_package", "sass_library") +load("//tools:defaults2.bzl", "ts_project") +load("//tools/bazel:legacy_target.bzl", "get_legacy_label") +load("@npm2//:defs.bzl", "npm_link_all_packages") package(default_visibility = ["//visibility:public"]) -ts_library( +npm_link_all_packages() + +ts_project( name = "cdk", srcs = glob( ["*.ts"], exclude = ["**/*.spec.ts"], ), - deps = ["@npm//@angular/core"], + deps = ["//:node_modules/@angular/core"], ) # List of style files that need to be copied to the root of the CDK package. We do this @@ -49,6 +54,7 @@ sass_library( # Creates the @angular/cdk package published to npm. ng_package( name = "npm_package", + package_name = "@angular/cdk", srcs = [ "package.json", ":sass_lib", @@ -57,7 +63,12 @@ ng_package( "//src/cdk/schematics:npm_package", ], tags = ["release-package"], - deps = CDK_TARGETS, + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [get_legacy_label(t) for t in CDK_TARGETS], ) filegroup( diff --git a/src/cdk/a11y/BUILD.bazel b/src/cdk/a11y/BUILD.bazel index 1075a8b9d957..a745c895bf76 100644 --- a/src/cdk/a11y/BUILD.bazel +++ b/src/cdk/a11y/BUILD.bazel @@ -1,22 +1,24 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "a11y", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/coercion", "//src/cdk/coercion/private", @@ -25,8 +27,6 @@ ng_module( "//src/cdk/observers", "//src/cdk/platform", "//src/cdk/private", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -41,23 +41,25 @@ sass_binary( deps = [":a11y_scss_lib"], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":a11y", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/keycodes", "//src/cdk/observers", "//src/cdk/overlay", "//src/cdk/platform", "//src/cdk/portal", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) diff --git a/src/cdk/a11y/input-modality/input-modality-detector.ts b/src/cdk/a11y/input-modality/input-modality-detector.ts index 58252f742be5..9054b5e8632f 100644 --- a/src/cdk/a11y/input-modality/input-modality-detector.ts +++ b/src/cdk/a11y/input-modality/input-modality-detector.ts @@ -15,7 +15,7 @@ import { inject, RendererFactory2, } from '@angular/core'; -import {Platform, _bindEventWithOptions, _getEventTarget} from '../../platform'; +import {Platform, _getEventTarget} from '../../platform'; import {DOCUMENT} from '@angular/common'; import {BehaviorSubject, Observable} from 'rxjs'; import {distinctUntilChanged, skip} from 'rxjs/operators'; @@ -205,27 +205,9 @@ export class InputModalityDetector implements OnDestroy { this._listenerCleanups = ngZone.runOutsideAngular(() => { return [ - _bindEventWithOptions( - renderer, - document, - 'keydown', - this._onKeydown, - modalityEventListenerOptions, - ), - _bindEventWithOptions( - renderer, - document, - 'mousedown', - this._onMousedown, - modalityEventListenerOptions, - ), - _bindEventWithOptions( - renderer, - document, - 'touchstart', - this._onTouchstart, - modalityEventListenerOptions, - ), + renderer.listen(document, 'keydown', this._onKeydown, modalityEventListenerOptions), + renderer.listen(document, 'mousedown', this._onMousedown, modalityEventListenerOptions), + renderer.listen(document, 'touchstart', this._onTouchstart, modalityEventListenerOptions), ]; }); } diff --git a/src/cdk/accordion/BUILD.bazel b/src/cdk/accordion/BUILD.bazel index 7b1065d33951..6a86d9916471 100644 --- a/src/cdk/accordion/BUILD.bazel +++ b/src/cdk/accordion/BUILD.bazel @@ -1,36 +1,37 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "accordion", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/collections", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":accordion", - "@npm//@angular/platform-browser", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", ], ) diff --git a/src/cdk/bidi/BUILD.bazel b/src/cdk/bidi/BUILD.bazel index 777eea6b1934..b0fc936d51f9 100644 --- a/src/cdk/bidi/BUILD.bazel +++ b/src/cdk/bidi/BUILD.bazel @@ -1,34 +1,35 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "bidi", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ - "@npm//@angular/common", - "@npm//@angular/core", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":bidi", - "@npm//@angular/platform-browser", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", ], ) diff --git a/src/cdk/bidi/dir.ts b/src/cdk/bidi/dir.ts index f602a6ac8119..20c1874718f3 100644 --- a/src/cdk/bidi/dir.ts +++ b/src/cdk/bidi/dir.ts @@ -6,7 +6,15 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Directive, Output, Input, EventEmitter, AfterContentInit, OnDestroy} from '@angular/core'; +import { + AfterContentInit, + Directive, + EventEmitter, + Input, + OnDestroy, + Output, + signal, +} from '@angular/core'; import {Direction, Directionality, _resolveDirectionality} from './directionality'; @@ -23,9 +31,6 @@ import {Direction, Directionality, _resolveDirectionality} from './directionalit exportAs: 'dir', }) export class Dir implements Directionality, AfterContentInit, OnDestroy { - /** Normalized direction that accounts for invalid/unsupported values. */ - private _dir: Direction = 'ltr'; - /** Whether the `value` has been set to its initial value. */ private _isInitialized: boolean = false; @@ -38,19 +43,19 @@ export class Dir implements Directionality, AfterContentInit, OnDestroy { /** @docs-private */ @Input() get dir(): Direction { - return this._dir; + return this.valueSignal(); } set dir(value: Direction | 'auto') { - const previousValue = this._dir; + const previousValue = this.valueSignal(); // Note: `_resolveDirectionality` resolves the language based on the browser's language, // whereas the browser does it based on the content of the element. Since doing so based // on the content can be expensive, for now we're doing the simpler matching. - this._dir = _resolveDirectionality(value); + this.valueSignal.set(_resolveDirectionality(value)); this._rawDir = value; - if (previousValue !== this._dir && this._isInitialized) { - this.change.emit(this._dir); + if (previousValue !== this.valueSignal() && this._isInitialized) { + this.change.emit(this.valueSignal()); } } @@ -59,6 +64,8 @@ export class Dir implements Directionality, AfterContentInit, OnDestroy { return this.dir; } + readonly valueSignal = signal('ltr'); + /** Initialize once default value has been set. */ ngAfterContentInit() { this._isInitialized = true; diff --git a/src/cdk/bidi/directionality.ts b/src/cdk/bidi/directionality.ts index c5795d31f0bd..4c74b0734320 100644 --- a/src/cdk/bidi/directionality.ts +++ b/src/cdk/bidi/directionality.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {EventEmitter, Injectable, OnDestroy, inject} from '@angular/core'; +import {EventEmitter, Injectable, OnDestroy, inject, signal} from '@angular/core'; import {DIR_DOCUMENT} from './dir-document-token'; export type Direction = 'ltr' | 'rtl'; @@ -33,7 +33,14 @@ export function _resolveDirectionality(rawValue: string): Direction { @Injectable({providedIn: 'root'}) export class Directionality implements OnDestroy { /** The current 'ltr' or 'rtl' value. */ - readonly value: Direction = 'ltr'; + get value() { + return this.valueSignal(); + } + + /** + * The current 'ltr' or 'rtl' value. + */ + readonly valueSignal = signal('ltr'); /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */ readonly change = new EventEmitter(); @@ -46,7 +53,7 @@ export class Directionality implements OnDestroy { if (_document) { const bodyDir = _document.body ? _document.body.dir : null; const htmlDir = _document.documentElement ? _document.documentElement.dir : null; - this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr'); + this.valueSignal.set(_resolveDirectionality(bodyDir || htmlDir || 'ltr')); } } diff --git a/src/cdk/clipboard/BUILD.bazel b/src/cdk/clipboard/BUILD.bazel index a4cacf82e4c4..41f41672fde0 100644 --- a/src/cdk/clipboard/BUILD.bazel +++ b/src/cdk/clipboard/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "markdown_to_html", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "markdown_to_html", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "clipboard", srcs = glob( ["**/*.ts"], @@ -10,23 +11,25 @@ ng_module( ), assets = glob(["**/*.html"]), deps = [ - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":clipboard", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) diff --git a/src/cdk/coercion/BUILD.bazel b/src/cdk/coercion/BUILD.bazel index c6887bee13c6..466495f4ea93 100644 --- a/src/cdk/coercion/BUILD.bazel +++ b/src/cdk/coercion/BUILD.bazel @@ -1,19 +1,20 @@ -load("//tools:defaults.bzl", "karma_web_test_suite", "markdown_to_html", "ts_library") +load("//tools:defaults.bzl", "karma_web_test_suite", "markdown_to_html") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "coercion", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ - "@npm//@angular/core", + "//:node_modules/@angular/core", ], ) -ts_library( +ts_project( name = "unit_test_sources", testonly = True, srcs = glob( @@ -22,8 +23,7 @@ ts_library( ), deps = [ ":coercion", - "@npm//@angular/core", - "@npm//@types/jasmine", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/coercion/private/BUILD.bazel b/src/cdk/coercion/private/BUILD.bazel index a488f49f66a3..81679755f563 100644 --- a/src/cdk/coercion/private/BUILD.bazel +++ b/src/cdk/coercion/private/BUILD.bazel @@ -1,34 +1,35 @@ load( "//tools:defaults.bzl", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "private", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "private_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":private", - "@npm//rxjs", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", ], ) diff --git a/src/cdk/collections/BUILD.bazel b/src/cdk/collections/BUILD.bazel index 23a0384de3a9..e5ee987664a7 100644 --- a/src/cdk/collections/BUILD.bazel +++ b/src/cdk/collections/BUILD.bazel @@ -1,34 +1,36 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ts_project") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "collections", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":collections", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/dialog/BUILD.bazel b/src/cdk/dialog/BUILD.bazel index ac98a7537e58..6dbabf3a1955 100644 --- a/src/cdk/dialog/BUILD.bazel +++ b/src/cdk/dialog/BUILD.bazel @@ -1,15 +1,14 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "dialog", srcs = glob( ["**/*.ts"], @@ -17,6 +16,10 @@ ng_module( ), assets = [":dialog-container.css"] + glob(["**/*.html"]), deps = [ + "//:node_modules/@angular/animations", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -24,28 +27,27 @@ ng_module( "//src/cdk/overlay", "//src/cdk/platform", "//src/cdk/portal", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":dialog", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/overlay", "//src/cdk/platform", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) diff --git a/src/cdk/drag-drop/BUILD.bazel b/src/cdk/drag-drop/BUILD.bazel index c7220d4a3844..bbc9c43756ec 100644 --- a/src/cdk/drag-drop/BUILD.bazel +++ b/src/cdk/drag-drop/BUILD.bazel @@ -1,15 +1,14 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "drag-drop", srcs = glob( ["**/*.ts"], @@ -19,6 +18,9 @@ ng_module( ":resets_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -26,26 +28,25 @@ ng_module( "//src/cdk/platform", "//src/cdk/private", "//src/cdk/scrolling", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":drag-drop", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/platform", "//src/cdk/scrolling", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//rxjs", ], ) diff --git a/src/cdk/drag-drop/directives/drop-list.ts b/src/cdk/drag-drop/directives/drop-list.ts index 40fa7955189d..ce1008009475 100644 --- a/src/cdk/drag-drop/directives/drop-list.ts +++ b/src/cdk/drag-drop/directives/drop-list.ts @@ -59,6 +59,9 @@ export class CdkDropList implements OnDestroy { skipSelf: true, }); + /** Refs that have been synced with the drop ref most recently. */ + private _latestSortedRefs: DragRef[] | undefined; + /** Emits when the list has been destroyed. */ private readonly _destroyed = new Subject(); @@ -222,7 +225,7 @@ export class CdkDropList implements OnDestroy { // Only sync the items while dragging since this method is // called when items are being initialized one-by-one. if (this._dropListRef.isDragging()) { - this._syncItemsWithRef(); + this._syncItemsWithRef(this.getSortedItems().map(item => item._dragRef)); } } @@ -231,7 +234,16 @@ export class CdkDropList implements OnDestroy { this._unsortedItems.delete(item); // This method might be called on destroy so we always want to sync with the ref. - this._syncItemsWithRef(); + // Note that we reuse the last set of synced items, rather than re-sorting the whole + // list, because it can slow down re-renders of large lists (see #30737). + if (this._latestSortedRefs) { + const index = this._latestSortedRefs.indexOf(item._dragRef); + + if (index > -1) { + this._latestSortedRefs.splice(index, 1); + this._syncItemsWithRef(this._latestSortedRefs); + } + } } /** Gets the registered items in the list, sorted by their position in the DOM. */ @@ -259,6 +271,7 @@ export class CdkDropList implements OnDestroy { this._group._items.delete(this); } + this._latestSortedRefs = undefined; this._unsortedItems.clear(); this._dropListRef.dispose(); this._destroyed.next(); @@ -335,7 +348,7 @@ export class CdkDropList implements OnDestroy { /** Handles events from the underlying DropListRef. */ private _handleEvents(ref: DropListRef) { ref.beforeStarted.subscribe(() => { - this._syncItemsWithRef(); + this._syncItemsWithRef(this.getSortedItems().map(item => item._dragRef)); this._changeDetectorRef.markForCheck(); }); @@ -403,7 +416,8 @@ export class CdkDropList implements OnDestroy { } /** Syncs up the registered drag items with underlying drop list ref. */ - private _syncItemsWithRef() { - this._dropListRef.withItems(this.getSortedItems().map(item => item._dragRef)); + private _syncItemsWithRef(items: DragRef[]) { + this._latestSortedRefs = items; + this._dropListRef.withItems(items); } } diff --git a/src/cdk/drag-drop/drag-drop-registry.ts b/src/cdk/drag-drop/drag-drop-registry.ts index 9fdc66b75e5d..ef81bab708d3 100644 --- a/src/cdk/drag-drop/drag-drop-registry.ts +++ b/src/cdk/drag-drop/drag-drop-registry.ts @@ -10,6 +10,7 @@ import { ChangeDetectionStrategy, Component, Injectable, + ListenerOptions, NgZone, OnDestroy, RendererFactory2, @@ -19,7 +20,6 @@ import { signal, } from '@angular/core'; import {DOCUMENT} from '@angular/common'; -import {_bindEventWithOptions, _ListenerOptions} from '../platform'; import {_CdkPrivateStyleLoader} from '../private'; import {Observable, Observer, Subject, merge} from 'rxjs'; import type {DropListRef} from './drop-list-ref'; @@ -123,8 +123,7 @@ export class DragDropRegistry implements OnDestroy { // The event handler has to be explicitly active, // because newer browsers make it passive by default. this._cleanupDocumentTouchmove?.(); - this._cleanupDocumentTouchmove = _bindEventWithOptions( - this._renderer, + this._cleanupDocumentTouchmove = this._renderer.listen( this._document, 'touchmove', this._persistentTouchmoveListener, @@ -170,7 +169,7 @@ export class DragDropRegistry implements OnDestroy { const isTouchEvent = event.type.startsWith('touch'); const endEventHandler = (e: Event) => this.pointerUp.next(e as TouchEvent | MouseEvent); - const toBind: [name: string, handler: (event: Event) => void, options: _ListenerOptions][] = [ + const toBind: [name: string, handler: (event: Event) => void, options: ListenerOptions][] = [ // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't // the document. See https://github.com/angular/components/issues/17144. ['scroll', (e: Event) => this._scroll.next(e), capturingEventOptions], @@ -203,7 +202,7 @@ export class DragDropRegistry implements OnDestroy { this._ngZone.runOutsideAngular(() => { this._globalListeners = toBind.map(([name, handler, options]) => - _bindEventWithOptions(this._renderer, this._document, name, handler, options), + this._renderer.listen(this._document, name, handler, options), ); }); } @@ -247,8 +246,7 @@ export class DragDropRegistry implements OnDestroy { streams.push( new Observable((observer: Observer) => { return this._ngZone.runOutsideAngular(() => { - const cleanup = _bindEventWithOptions( - this._renderer, + const cleanup = this._renderer.listen( shadowRoot as ShadowRoot, 'scroll', (event: Event) => { diff --git a/src/cdk/drag-drop/drag-ref.ts b/src/cdk/drag-drop/drag-ref.ts index 7296c3f59440..45dea4eac3dd 100644 --- a/src/cdk/drag-drop/drag-ref.ts +++ b/src/cdk/drag-drop/drag-ref.ts @@ -9,7 +9,7 @@ import {isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader} from '../a11y'; import {Direction} from '../bidi'; import {coerceElement} from '../coercion'; -import {_getEventTarget, _getShadowRoot, _bindEventWithOptions} from '../platform'; +import {_getEventTarget, _getShadowRoot} from '../platform'; import {ViewportRuler} from '../scrolling'; import { ElementRef, @@ -457,28 +457,11 @@ export class DragRef { if (element !== this._rootElement) { this._removeRootElementListeners(); + const renderer = this._renderer; this._rootElementCleanups = this._ngZone.runOutsideAngular(() => [ - _bindEventWithOptions( - this._renderer, - element, - 'mousedown', - this._pointerDown, - activeEventListenerOptions, - ), - _bindEventWithOptions( - this._renderer, - element, - 'touchstart', - this._pointerDown, - passiveEventListenerOptions, - ), - _bindEventWithOptions( - this._renderer, - element, - 'dragstart', - this._nativeDragStart, - activeEventListenerOptions, - ), + renderer.listen(element, 'mousedown', this._pointerDown, activeEventListenerOptions), + renderer.listen(element, 'touchstart', this._pointerDown, passiveEventListenerOptions), + renderer.listen(element, 'dragstart', this._nativeDragStart, activeEventListenerOptions), ]); this._initialTransform = undefined; this._rootElement = element; @@ -832,8 +815,7 @@ export class DragRef { // In some browsers the global `selectstart` that we maintain in the `DragDropRegistry` // doesn't cross the shadow boundary so we have to prevent it at the shadow root (see #28792). this._ngZone.runOutsideAngular(() => { - this._cleanupShadowRootSelectStart = _bindEventWithOptions( - this._renderer, + this._cleanupShadowRootSelectStart = this._renderer.listen( shadowRoot, 'selectstart', shadowDomSelectStart, diff --git a/src/cdk/keycodes/BUILD.bazel b/src/cdk/keycodes/BUILD.bazel index 5fb355a70006..17458595420c 100644 --- a/src/cdk/keycodes/BUILD.bazel +++ b/src/cdk/keycodes/BUILD.bazel @@ -1,20 +1,22 @@ -load("//tools:defaults.bzl", "karma_web_test_suite", "markdown_to_html", "ng_module", "ts_library") +load("//tools:defaults.bzl", "karma_web_test_suite", "markdown_to_html") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -# We need to use "ng_module" here since we want metadata to be generated for keycode +# We need to use "ng_project" here since we want metadata to be generated for keycode # constants. This is necessary because some of these constants are statically used in # component/directive metadata (e.g. chips) and NGC needs to be able to evaluate these # at compile time. -ng_module( +ng_project( name = "keycodes", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), + deps = [], ) -ts_library( +ts_project( name = "unit_test_sources", testonly = True, srcs = glob( @@ -23,8 +25,9 @@ ts_library( ), deps = [ ":keycodes", + "//:node_modules/@angular/core", + "//:node_modules/@types/jasmine", "//src/cdk/testing/private", - "@npm//@types/jasmine", ], ) diff --git a/src/cdk/layout/BUILD.bazel b/src/cdk/layout/BUILD.bazel index 458c3141b8cd..05dc04f5917a 100644 --- a/src/cdk/layout/BUILD.bazel +++ b/src/cdk/layout/BUILD.bazel @@ -1,37 +1,38 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "layout", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/coercion", "//src/cdk/platform", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":layout", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/platform", - "@npm//rxjs", ], ) diff --git a/src/cdk/listbox/BUILD.bazel b/src/cdk/listbox/BUILD.bazel index 2dce7906ce96..68965a0bda88 100644 --- a/src/cdk/listbox/BUILD.bazel +++ b/src/cdk/listbox/BUILD.bazel @@ -1,35 +1,40 @@ -load("//tools:defaults.bzl", "markdown_to_html", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "markdown_to_html", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "listbox", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/collections", "//src/cdk/keycodes", - "@npm//@angular/forms", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":listbox", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/keycodes", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/cdk/menu/BUILD.bazel b/src/cdk/menu/BUILD.bazel index 34f7208c7ea9..b2fcc7539e8c 100644 --- a/src/cdk/menu/BUILD.bazel +++ b/src/cdk/menu/BUILD.bazel @@ -1,20 +1,21 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menu", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -22,24 +23,24 @@ ng_module( "//src/cdk/collections", "//src/cdk/keycodes", "//src/cdk/overlay", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":menu", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/collections", "//src/cdk/keycodes", "//src/cdk/testing/private", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) diff --git a/src/cdk/observers/BUILD.bazel b/src/cdk/observers/BUILD.bazel index 9f680245cd26..03ceab1ef5dd 100644 --- a/src/cdk/observers/BUILD.bazel +++ b/src/cdk/observers/BUILD.bazel @@ -1,33 +1,36 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "observers", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/coercion", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), - deps = [":observers"], + deps = [ + ":observers", + "//:node_modules/@angular/core", + ], ) ng_web_test_suite( diff --git a/src/cdk/observers/private/BUILD.bazel b/src/cdk/observers/private/BUILD.bazel index 8074d72ae0e8..5e2206655d4b 100644 --- a/src/cdk/observers/private/BUILD.bazel +++ b/src/cdk/observers/private/BUILD.bazel @@ -1,33 +1,34 @@ load( "//tools:defaults.bzl", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "private", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "private_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":private", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/overlay/BUILD.bazel b/src/cdk/overlay/BUILD.bazel index d3a7e69da539..19bd316e8e6a 100644 --- a/src/cdk/overlay/BUILD.bazel +++ b/src/cdk/overlay/BUILD.bazel @@ -2,17 +2,15 @@ load("//src/e2e-app:test_suite.bzl", "e2e_test_suite") load( "//tools:defaults.bzl", "markdown_to_html", - "ng_e2e_test_library", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "overlay", srcs = glob( ["**/*.ts"], @@ -22,6 +20,9 @@ ng_module( ":overlay-structure.css", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -31,9 +32,6 @@ ng_module( "//src/cdk/portal", "//src/cdk/private", "//src/cdk/scrolling", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -58,23 +56,25 @@ sass_binary( ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":overlay", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/platform", "//src/cdk/portal", "//src/cdk/scrolling", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -84,15 +84,17 @@ ng_web_test_suite( deps = [":unit_test_sources"], ) -ng_e2e_test_library( +ts_project( name = "e2e_test_sources", + testonly = True, srcs = glob(["**/*.e2e.spec.ts"]), + deps = ["//:node_modules/protractor"], ) e2e_test_suite( name = "e2e_tests", deps = [ - ":e2e_test_sources", + ":e2e_test_sources_legacy", ], ) diff --git a/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.spec.ts b/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.spec.ts index 87658b891cbf..5b2af9d39c35 100644 --- a/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.spec.ts +++ b/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.spec.ts @@ -1,10 +1,10 @@ +import {ApplicationRef, Component} from '@angular/core'; import {TestBed, inject} from '@angular/core/testing'; -import {ApplicationRef, Component, afterRender} from '@angular/core'; +import {filter, take} from 'rxjs/operators'; +import {ComponentPortal} from '../../portal'; import {dispatchFakeEvent, dispatchMouseEvent} from '../../testing/private'; -import {OverlayModule, Overlay} from '../index'; +import {Overlay, OverlayModule} from '../index'; import {OverlayOutsideClickDispatcher} from './overlay-outside-click-dispatcher'; -import {ComponentPortal} from '../../portal'; -import {filter, take} from 'rxjs/operators'; describe('OverlayOutsideClickDispatcher', () => { let appRef: ApplicationRef; @@ -388,11 +388,13 @@ describe('OverlayOutsideClickDispatcher', () => { it('should run change detection if the click was made outside the overlay and there are `outsidePointerEvents` observers', async () => { let renders = 0; - TestBed.runInInjectionContext(() => { - afterRender(() => { + @Component({template: '{{increment()}}'}) + class Counter { + increment() { renders++; - }); - }); + } + } + TestBed.createComponent(Counter); function stablePromise() { return TestBed.inject(ApplicationRef) .isStable.pipe( @@ -402,7 +404,8 @@ describe('OverlayOutsideClickDispatcher', () => { .toPromise(); } await stablePromise(); - expect(renders).toEqual(1); + renders = 0; + expect(renders).toEqual(0); const portal = new ComponentPortal(TestComponent); const overlayRef = overlay.create(); overlayRef.attach(portal); @@ -412,16 +415,16 @@ describe('OverlayOutsideClickDispatcher', () => { document.body.appendChild(context); await stablePromise(); - expect(renders).toEqual(2); + expect(renders).toEqual(1); dispatchMouseEvent(context, 'click'); await stablePromise(); - expect(renders).toEqual(2); + expect(renders).toEqual(1); overlayRef.outsidePointerEvents().subscribe(); dispatchMouseEvent(context, 'click'); await stablePromise(); - expect(renders).toEqual(2); + expect(renders).toEqual(1); }); }); }); diff --git a/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts b/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts index 3aa681fb0532..b66e0259d1ae 100644 --- a/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts +++ b/src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts @@ -7,7 +7,7 @@ */ import {Injectable, NgZone, RendererFactory2, inject} from '@angular/core'; -import {Platform, _bindEventWithOptions, _getEventTarget} from '../../platform'; +import {Platform, _getEventTarget} from '../../platform'; import {BaseOverlayDispatcher} from './base-overlay-dispatcher'; import type {OverlayRef} from '../overlay-ref'; @@ -40,24 +40,13 @@ export class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher { if (!this._isAttached) { const body = this._document.body; const eventOptions = {capture: true}; + const renderer = this._renderer; this._cleanups = this._ngZone.runOutsideAngular(() => [ - _bindEventWithOptions( - this._renderer, - body, - 'pointerdown', - this._pointerDownListener, - eventOptions, - ), - _bindEventWithOptions(this._renderer, body, 'click', this._clickListener, eventOptions), - _bindEventWithOptions(this._renderer, body, 'auxclick', this._clickListener, eventOptions), - _bindEventWithOptions( - this._renderer, - body, - 'contextmenu', - this._clickListener, - eventOptions, - ), + renderer.listen(body, 'pointerdown', this._pointerDownListener, eventOptions), + renderer.listen(body, 'click', this._clickListener, eventOptions), + renderer.listen(body, 'auxclick', this._clickListener, eventOptions), + renderer.listen(body, 'contextmenu', this._clickListener, eventOptions), ]); // click event is not fired on iOS. To make element "clickable" we are diff --git a/src/cdk/overlay/overlay-ref.ts b/src/cdk/overlay/overlay-ref.ts index b127c3ddc81b..4a0ef74ca1a6 100644 --- a/src/cdk/overlay/overlay-ref.ts +++ b/src/cdk/overlay/overlay-ref.ts @@ -6,8 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Direction, Directionality} from '../bidi'; -import {ComponentPortal, Portal, PortalOutlet, TemplatePortal} from '../portal'; +import {Location} from '@angular/common'; import { AfterRenderRef, ComponentRef, @@ -16,19 +15,17 @@ import { NgZone, Renderer2, afterNextRender, - afterRender, - untracked, } from '@angular/core'; -import {Location} from '@angular/common'; -import {Observable, Subject, merge, SubscriptionLike, Subscription} from 'rxjs'; -import {takeUntil} from 'rxjs/operators'; +import {Observable, Subject, Subscription, SubscriptionLike} from 'rxjs'; +import {Direction, Directionality} from '../bidi'; +import {coerceArray, coerceCssPixelValue} from '../coercion'; +import {ComponentPortal, Portal, PortalOutlet, TemplatePortal} from '../portal'; +import {BackdropRef} from './backdrop-ref'; import {OverlayKeyboardDispatcher} from './dispatchers/overlay-keyboard-dispatcher'; import {OverlayOutsideClickDispatcher} from './dispatchers/overlay-outside-click-dispatcher'; import {OverlayConfig} from './overlay-config'; -import {coerceCssPixelValue, coerceArray} from '../coercion'; import {PositionStrategy} from './position/position-strategy'; import {ScrollStrategy} from './scroll'; -import {BackdropRef} from './backdrop-ref'; /** An object where all of its properties cannot be written. */ export type ImmutableObject = { @@ -47,6 +44,8 @@ export class OverlayRef implements PortalOutlet { private _scrollStrategy: ScrollStrategy | undefined; private _locationChanges: SubscriptionLike = Subscription.EMPTY; private _backdropRef: BackdropRef | null = null; + private _detachContentMutationObserver: MutationObserver | undefined; + private _detachContentAfterRenderRef: AfterRenderRef | undefined; /** * Reference to the parent of the `_host` at the time it was detached. Used to restore @@ -60,10 +59,6 @@ export class OverlayRef implements PortalOutlet { /** Stream of mouse outside events dispatched to this overlay. */ readonly _outsidePointerEvents = new Subject(); - private _renders = new Subject(); - - private _afterRenderRef: AfterRenderRef; - /** Reference to the currently-running `afterNextRender` call. */ private _afterNextRenderRef: AfterRenderRef | undefined; @@ -87,18 +82,6 @@ export class OverlayRef implements PortalOutlet { } this._positionStrategy = _config.positionStrategy; - - // Users could open the overlay from an `effect`, in which case we need to - // run the `afterRender` as `untracked`. We don't recommend that users do - // this, but we also don't want to break users who are doing it. - this._afterRenderRef = untracked(() => - afterRender( - () => { - this._renders.next(); - }, - {injector: this._injector}, - ), - ); } /** The overlay's HTML element */ @@ -182,6 +165,7 @@ export class OverlayRef implements PortalOutlet { // Only emit the `attachments` event once all other setup is done. this._attachments.next(); + this._completeDetachContent(); // Track this overlay by the keyboard dispatcher this._keyboardDispatcher.add(this); @@ -242,6 +226,7 @@ export class OverlayRef implements PortalOutlet { // Only emit after everything is detached. this._detachments.next(); + this._completeDetachContent(); // Remove this overlay from keyboard dispatcher tracking. this._keyboardDispatcher.remove(this); @@ -281,8 +266,7 @@ export class OverlayRef implements PortalOutlet { } this._detachments.complete(); - this._afterRenderRef.destroy(); - this._renders.complete(); + this._completeDetachContent(); } /** Whether the overlay has attached content. */ @@ -488,34 +472,60 @@ export class OverlayRef implements PortalOutlet { } } - /** Detaches the overlay content next time the zone stabilizes. */ + /** Detaches the overlay once the content finishes animating and is removed from the DOM. */ private _detachContentWhenEmpty() { - // Normally we wouldn't have to explicitly run this outside the `NgZone`, however - // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will - // be patched to run inside the zone, which will throw us into an infinite loop. - this._ngZone.runOutsideAngular(() => { - // We can't remove the host here immediately, because the overlay pane's content - // might still be animating. This stream helps us avoid interrupting the animation - // by waiting for the pane to become empty. - const subscription = this._renders - .pipe(takeUntil(merge(this._attachments, this._detachments))) - .subscribe(() => { - // Needs a couple of checks for the pane and host, because - // they may have been removed by the time the zone stabilizes. - if (!this._pane || !this._host || this._pane.children.length === 0) { - if (this._pane && this._config.panelClass) { - this._toggleClasses(this._pane, this._config.panelClass, false); - } - - if (this._host && this._host.parentElement) { - this._previousHostParent = this._host.parentElement; - this._host.remove(); - } - - subscription.unsubscribe(); - } - }); - }); + let rethrow = false; + // Attempt to detach on the next render. + try { + this._detachContentAfterRenderRef = afterNextRender( + () => { + // Rethrow if we encounter an actual error detaching. + rethrow = true; + this._detachContent(); + }, + { + injector: this._injector, + }, + ); + } catch (e) { + if (rethrow) { + throw e; + } + // afterNextRender throws if the EnvironmentInjector is has already been destroyed. + // This may happen in tests that don't properly flush all async work. + // In order to avoid breaking those tests, we just detach immediately in this case. + this._detachContent(); + } + // Otherwise wait until the content finishes animating out and detach. + if (globalThis.MutationObserver && this._pane) { + this._detachContentMutationObserver ||= new globalThis.MutationObserver(() => { + this._detachContent(); + }); + this._detachContentMutationObserver.observe(this._pane, {childList: true}); + } + } + + private _detachContent() { + // Needs a couple of checks for the pane and host, because + // they may have been removed by the time the zone stabilizes. + if (!this._pane || !this._host || this._pane.children.length === 0) { + if (this._pane && this._config.panelClass) { + this._toggleClasses(this._pane, this._config.panelClass, false); + } + + if (this._host && this._host.parentElement) { + this._previousHostParent = this._host.parentElement; + this._host.remove(); + } + + this._completeDetachContent(); + } + } + + private _completeDetachContent() { + this._detachContentAfterRenderRef?.destroy(); + this._detachContentAfterRenderRef = undefined; + this._detachContentMutationObserver?.disconnect(); } /** Disposes of a scroll strategy. */ diff --git a/src/cdk/overlay/overlay.spec.ts b/src/cdk/overlay/overlay.spec.ts index 566987a72068..6de5ca46f759 100644 --- a/src/cdk/overlay/overlay.spec.ts +++ b/src/cdk/overlay/overlay.spec.ts @@ -1,5 +1,3 @@ -import {Direction, Directionality} from '../bidi'; -import {CdkPortal, ComponentPortal, TemplatePortal} from '../portal'; import {Location} from '@angular/common'; import {SpyLocation} from '@angular/common/testing'; import { @@ -21,6 +19,8 @@ import { waitForAsync, } from '@angular/core/testing'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; +import {Direction, Directionality} from '../bidi'; +import {CdkPortal, ComponentPortal, TemplatePortal} from '../portal'; import {dispatchFakeEvent} from '../testing/private'; import { Overlay, @@ -380,8 +380,9 @@ describe('Overlay', () => { expect(overlayRef.getDirection()).toBe('ltr'); }); - it('should add and remove the overlay host as the ref is being attached and detached', () => { + it('should add and remove the overlay host as the ref is being attached and detached', async () => { const overlayRef = overlay.create(); + const pane = overlayContainerElement.querySelector('.cdk-overlay-pane') as HTMLElement; overlayRef.attach(componentPortal); viewContainerFixture.detectChanges(); @@ -390,6 +391,8 @@ describe('Overlay', () => { .withContext('Expected host element to be in the DOM.') .toBeTruthy(); + // Simulate animating element that hasn't been removed yet. + pane.appendChild(document.createElement('div')); overlayRef.detach(); expect(overlayRef.hostElement.parentElement) @@ -397,6 +400,8 @@ describe('Overlay', () => { .toBeTruthy(); viewContainerFixture.detectChanges(); + pane.children[0].remove(); + await new Promise(r => setTimeout(r)); expect(overlayRef.hostElement.parentElement) .withContext('Expected host element to have been removed once the zone stabilizes.') @@ -922,7 +927,7 @@ describe('Overlay', () => { expect(pane.classList).toContain('custom-class-two'); }); - it('should remove the custom panel class when the overlay is detached', () => { + it('should remove the custom panel class when the overlay is detached', async () => { const config = new OverlayConfig({panelClass: 'custom-panel-class'}); const overlayRef = overlay.create(config); @@ -957,12 +962,16 @@ describe('Overlay', () => { .withContext('Expected class to be added') .toContain('custom-panel-class'); + // Simulate animating element that hasn't been removed yet. + pane.appendChild(document.createElement('div')); overlayRef.detach(); expect(pane.classList) .withContext('Expected class not to be removed immediately') .toContain('custom-panel-class'); await viewContainerFixture.whenStable(); + pane.children[0].remove(); + await new Promise(r => setTimeout(r)); expect(pane.classList) .not.withContext('Expected class to be removed on stable') .toContain('custom-panel-class'); diff --git a/src/cdk/package.json b/src/cdk/package.json index 677bc670f3cb..0cb0dc83ae09 100644 --- a/src/cdk/package.json +++ b/src/cdk/package.json @@ -47,13 +47,11 @@ "peerDependencies": { "@angular/core": "0.0.0-NG", "@angular/common": "0.0.0-NG", - "rxjs": "0.0.0-RXJS" + "rxjs": "^6.5.3 || ^7.4.0" }, "dependencies": { - "tslib": "0.0.0-TSLIB" - }, - "optionalDependencies": { - "parse5": "^7.1.2" + "parse5": "^7.1.2", + "tslib": "^2.3.0" }, "schematics": "./schematics/collection.json", "ng-update": { diff --git a/src/cdk/platform/BUILD.bazel b/src/cdk/platform/BUILD.bazel index c6dfc3ea5206..f04ad6f44a29 100644 --- a/src/cdk/platform/BUILD.bazel +++ b/src/cdk/platform/BUILD.bazel @@ -1,16 +1,17 @@ -load("//tools:defaults.bzl", "markdown_to_html", "ng_module") +load("//tools:defaults.bzl", "markdown_to_html") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "platform", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ - "@npm//@angular/common", - "@npm//@angular/core", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/platform/features/backwards-compatibility.ts b/src/cdk/platform/features/backwards-compatibility.ts deleted file mode 100644 index 8be208a78268..000000000000 --- a/src/cdk/platform/features/backwards-compatibility.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import {Renderer2, VERSION} from '@angular/core'; - -// TODO(crisbeto): replace interface with the one from core when making breaking changes for v20. -/** Options when binding events manually. */ -export interface _ListenerOptions { - capture?: boolean; - once?: boolean; - passive?: boolean; -} - -// TODO(crisbeto): remove this function when making breaking changes for v20. -/** - * Binds an event listener with specific options in a backwards-compatible way. - * This function is necessary, because `Renderer2.listen` only supports listener options - * after 19.1 and during the v19 period we support any 19.x version. - * @docs-private - */ -export function _bindEventWithOptions( - renderer: Renderer2, - target: EventTarget, - eventName: string, - callback: (event: any) => boolean | void, - options: _ListenerOptions, -): () => void { - const major = parseInt(VERSION.major); - const minor = parseInt(VERSION.minor); - - // Event options in `listen` are only supported in 19.1 and beyond. - // We also allow 0.0.x, because that indicates a build at HEAD. - if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) { - return renderer.listen(target, eventName, callback, options); - } - - target.addEventListener(eventName, callback, options); - - return () => { - target.removeEventListener(eventName, callback, options); - }; -} diff --git a/src/cdk/platform/public-api.ts b/src/cdk/platform/public-api.ts index 9613cc5b04bc..ae1990dee0fe 100644 --- a/src/cdk/platform/public-api.ts +++ b/src/cdk/platform/public-api.ts @@ -13,4 +13,3 @@ export * from './features/passive-listeners'; export * from './features/scrolling'; export * from './features/shadow-dom'; export * from './features/test-environment'; -export * from './features/backwards-compatibility'; diff --git a/src/cdk/portal/BUILD.bazel b/src/cdk/portal/BUILD.bazel index f3747461c3b5..64d4c5e4231e 100644 --- a/src/cdk/portal/BUILD.bazel +++ b/src/cdk/portal/BUILD.bazel @@ -1,35 +1,37 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ts_project") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "portal", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src:dev_mode_types", - "@npm//@angular/common", - "@npm//@angular/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":portal", - "@npm//@angular/common", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/private/BUILD.bazel b/src/cdk/private/BUILD.bazel index eb6b535b4e9c..a13ae468bd5f 100644 --- a/src/cdk/private/BUILD.bazel +++ b/src/cdk/private/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "markdown_to_html", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "markdown_to_html", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "private", srcs = glob( ["**/*.ts"], @@ -10,7 +11,7 @@ ng_module( ), assets = [":visually-hidden-styles"], deps = [ - "@npm//@angular/core", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/schematics/BUILD.bazel b/src/cdk/schematics/BUILD.bazel index b555514cf4da..d1202199f41a 100644 --- a/src/cdk/schematics/BUILD.bazel +++ b/src/cdk/schematics/BUILD.bazel @@ -1,67 +1,74 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "jasmine_node_test", "pkg_npm", "ts_library") +load("//tools:defaults2.bzl", "jasmine_test", "npm_package", "ts_project") +load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") -package(default_visibility = ["//visibility:public"]) +package(default_visibility = [":__subpackages__"]) copy_to_bin( name = "schematics_assets", - srcs = glob([ - "**/files/**/*", - "**/*.json", - ]), + srcs = glob( + [ + "**/files/**/*", + "**/*.json", + ], + exclude = [ + "tsconfig.json", + "tsconfig-test.json", + "package.json", + ], + ), ) -ts_library( +copy_to_bin( + name = "package_json", + srcs = ["package.json"], +) + +rules_js_tsconfig( + name = "tsconfig", + src = "tsconfig.json", +) + +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], exclude = [ - "**/files/**/*.ts", + "**/files/**/*", "**/*.spec.ts", "testing/**/*.ts", ], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", - tsconfig = ":tsconfig.json", + tsconfig = "tsconfig.json", deps = [ + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/glob", + "//:node_modules/@types/node", + "//:node_modules/glob", + "//:node_modules/parse5", + "//:node_modules/typescript", "//src/cdk/schematics/update-tool", - "@npm//@schematics/angular", - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - # TODO(devversion): Only include jasmine for test sources (See: tsconfig types). - "@npm//@types/jasmine", - "@npm//@types/glob", - "@npm//@types/node", - "@npm//glob", - "@npm//parse5", - "@npm//typescript", ], ) # This package is intended to be combined into the main @angular/cdk package as a dep. -pkg_npm( +npm_package( name = "npm_package", - srcs = ["package.json"], - deps = [ + srcs = [ + "package.json", ":schematics", ":schematics_assets", ], -) - -### Testing rules - -jasmine_node_test( - name = "unit_tests", - srcs = [":unit_test_sources"], - data = [ - ":schematics_assets", + package = "@angular/cdk/schematics", + visibility = [ + "//src/cdk:__pkg__", + "//src/material/schematics:__pkg__", ], ) -ts_library( +ts_project( name = "unit_test_sources", testonly = True, srcs = glob( @@ -71,21 +78,26 @@ ts_library( "**/files/**/*.spec.ts", ], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", - tsconfig = ":tsconfig.json", + extends = "tsconfig.json", + tsconfig = "tsconfig-test.json", deps = [ ":schematics", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@bazel/runfiles", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + "//:node_modules/typescript", "//src/cdk/schematics/testing", "//src/cdk/schematics/update-tool", "//src/cdk/testing/private", - "@npm//@angular-devkit/schematics", - "@npm//@bazel/runfiles", - "@npm//@schematics/angular", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//typescript", + ], +) + +jasmine_test( + name = "unit_tests", + data = [ + ":schematics_assets", + ":unit_test_sources", ], ) diff --git a/src/cdk/schematics/testing/BUILD.bazel b/src/cdk/schematics/testing/BUILD.bazel index d2daadf07a94..cd573fd516ad 100644 --- a/src/cdk/schematics/testing/BUILD.bazel +++ b/src/cdk/schematics/testing/BUILD.bazel @@ -1,27 +1,29 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testing", testonly = True, srcs = glob(["**/*.ts"]), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + # Needed to ensure these files are picked up as CommonJS, as otherwise + # the higher-level `package.json` from `src/package.json` is `type: module`. + data = ["//src/cdk/schematics:package_json"], + extends = "//src/cdk/schematics:tsconfig", tsconfig = "tsconfig.json", deps = [ - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@bazel/runfiles", - "@npm//@schematics/angular", - "@npm//@types/fs-extra", - "@npm//@types/glob", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//fs-extra", - "@npm//jsonc-parser", - "@npm//rxjs", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@angular/core", + "//:node_modules/@bazel/runfiles", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/fs-extra", + "//:node_modules/@types/glob", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + "//:node_modules/fs-extra", + "//:node_modules/glob", + "//:node_modules/jsonc-parser", + "//:node_modules/rxjs", ], ) diff --git a/src/cdk/schematics/testing/tsconfig.json b/src/cdk/schematics/testing/tsconfig.json index 072ed7aa1158..7509bccd7f5b 100644 --- a/src/cdk/schematics/testing/tsconfig.json +++ b/src/cdk/schematics/testing/tsconfig.json @@ -1,7 +1,9 @@ { + "extends": "../tsconfig.json", "compilerOptions": { "strict": true, "lib": ["es2015"], "types": ["node", "jasmine", "glob"] - } + }, + "exclude": [] } diff --git a/src/cdk/schematics/tsconfig-test.json b/src/cdk/schematics/tsconfig-test.json new file mode 100644 index 000000000000..6b63c9589e00 --- /dev/null +++ b/src/cdk/schematics/tsconfig-test.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": ["jasmine", "node"] + }, + "exclude": [] +} diff --git a/src/cdk/schematics/tsconfig.json b/src/cdk/schematics/tsconfig.json index 0733e83f5692..f1bdd2b85206 100644 --- a/src/cdk/schematics/tsconfig.json +++ b/src/cdk/schematics/tsconfig.json @@ -4,10 +4,10 @@ "lib": ["es2017"], "module": "commonjs", "moduleResolution": "node", - "outDir": "../../../dist/packages/cdk/schematics", - "noEmitOnError": false, + "rootDir": ".", "strictNullChecks": true, "noPropertyAccessFromIndexSignature": true, + "strict": true, "useUnknownInCatchVariables": true, "noImplicitOverride": true, "noImplicitReturns": true, @@ -22,8 +22,5 @@ "target": "es2015", "types": ["jasmine", "node"] }, - "exclude": ["**/files/**/*", "**/*.spec.ts", "ng-update/test-cases/**/*", "testing/**/*.ts"], - "bazelOptions": { - "suppressTsconfigOverrideWarnings": true - } + "exclude": ["**/files/**/*", "**/*.spec.ts", "ng-update/test-cases/**/*", "testing/**/*.ts"] } diff --git a/src/cdk/schematics/update-tool/BUILD.bazel b/src/cdk/schematics/update-tool/BUILD.bazel index 997c4e84676f..1ce5a0914d01 100644 --- a/src/cdk/schematics/update-tool/BUILD.bazel +++ b/src/cdk/schematics/update-tool/BUILD.bazel @@ -1,17 +1,14 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "update-tool", srcs = glob(["**/*.ts"]), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + extends = "//src/cdk/schematics:tsconfig", tsconfig = ":tsconfig.json", deps = [ - "@npm//@types/node", - "@npm//typescript", + "//:node_modules/@types/node", + "//:node_modules/typescript", ], ) diff --git a/src/cdk/schematics/update-tool/tsconfig.json b/src/cdk/schematics/update-tool/tsconfig.json index c553c223f3dd..9e023b9fac02 100644 --- a/src/cdk/schematics/update-tool/tsconfig.json +++ b/src/cdk/schematics/update-tool/tsconfig.json @@ -1,7 +1,9 @@ { + "extends": "../tsconfig.json", "compilerOptions": { "strict": true, "lib": ["es2015"], "types": ["node", "glob"] - } + }, + "exclude": [] } diff --git a/src/cdk/scrolling/BUILD.bazel b/src/cdk/scrolling/BUILD.bazel index 98764fe9f9d9..afe056d6e717 100644 --- a/src/cdk/scrolling/BUILD.bazel +++ b/src/cdk/scrolling/BUILD.bazel @@ -1,15 +1,14 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "scrolling", srcs = glob( ["**/*.ts"], @@ -17,14 +16,14 @@ ng_module( ), assets = [":virtual-scroll-viewport.css"] + glob(["**/*.html"]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/bidi", "//src/cdk/coercion", "//src/cdk/collections", "//src/cdk/platform", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -33,19 +32,21 @@ sass_binary( src = "virtual-scroll-viewport.scss", ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":scrolling", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/collections", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//rxjs", ], ) diff --git a/src/cdk/stepper/BUILD.bazel b/src/cdk/stepper/BUILD.bazel index c6ad545fdc85..921ac099cb19 100644 --- a/src/cdk/stepper/BUILD.bazel +++ b/src/cdk/stepper/BUILD.bazel @@ -1,22 +1,23 @@ -load("//tools:defaults.bzl", "markdown_to_html", "ng_module") +load("//tools:defaults.bzl", "markdown_to_html") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "stepper", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/platform", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", ], ) diff --git a/src/cdk/table/BUILD.bazel b/src/cdk/table/BUILD.bazel index 919bc59e7fad..3fe75c792370 100644 --- a/src/cdk/table/BUILD.bazel +++ b/src/cdk/table/BUILD.bazel @@ -1,15 +1,14 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table", srcs = glob( ["**/*.ts"], @@ -17,14 +16,15 @@ ng_module( ), assets = [":table.css"], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/bidi", "//src/cdk/coercion", "//src/cdk/collections", "//src/cdk/platform", "//src/cdk/scrolling", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -33,17 +33,19 @@ sass_binary( src = "table.scss", ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":table", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/collections", - "@npm//rxjs", ], ) diff --git a/src/cdk/testing/BUILD.bazel b/src/cdk/testing/BUILD.bazel index 63312ed538aa..5ebc1ea21f24 100644 --- a/src/cdk/testing/BUILD.bazel +++ b/src/cdk/testing/BUILD.bazel @@ -38,7 +38,7 @@ ng_web_test_suite( e2e_test_suite( name = "protractor_e2e_tests", deps = [ - "//src/cdk/testing/tests:e2e_test_sources", + "//src/cdk/testing/tests:e2e_test_sources_legacy", ], ) diff --git a/src/cdk/testing/private/BUILD.bazel b/src/cdk/testing/private/BUILD.bazel index fb1b5b5212eb..4b8106275296 100644 --- a/src/cdk/testing/private/BUILD.bazel +++ b/src/cdk/testing/private/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "private", testonly = True, srcs = glob( @@ -10,8 +10,8 @@ ts_library( exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@types/jasmine", "//src/cdk/testing/testbed", - "@npm//@angular/core", - "@npm//@types/jasmine", ], ) diff --git a/src/cdk/testing/protractor/BUILD.bazel b/src/cdk/testing/protractor/BUILD.bazel index 53d5a5ebfb03..ed928bbb068f 100644 --- a/src/cdk/testing/protractor/BUILD.bazel +++ b/src/cdk/testing/protractor/BUILD.bazel @@ -1,16 +1,18 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "protractor", + testonly = True, srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/protractor", "//src/cdk/testing", - "@npm//protractor", ], ) diff --git a/src/cdk/testing/selenium-webdriver/BUILD.bazel b/src/cdk/testing/selenium-webdriver/BUILD.bazel index 2835524b0b01..1d9fa385e902 100644 --- a/src/cdk/testing/selenium-webdriver/BUILD.bazel +++ b/src/cdk/testing/selenium-webdriver/BUILD.bazel @@ -1,17 +1,17 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "selenium-webdriver", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@types/selenium-webdriver", + "//:node_modules/selenium-webdriver", "//src/cdk/testing", - "@npm//@types/selenium-webdriver", - "@npm//selenium-webdriver", ], ) diff --git a/src/cdk/testing/testbed/BUILD.bazel b/src/cdk/testing/testbed/BUILD.bazel index b5379ee56797..6d85e744230d 100644 --- a/src/cdk/testing/testbed/BUILD.bazel +++ b/src/cdk/testing/testbed/BUILD.bazel @@ -1,18 +1,19 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults2.bzl", "ts_project") +load("//tools:defaults.bzl", "ng_web_test_suite") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testbed", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/keycodes", "//src/cdk/testing", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -21,11 +22,13 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testbed", + "//:node_modules/@angular/core", ], ) diff --git a/src/cdk/testing/tests/BUILD.bazel b/src/cdk/testing/tests/BUILD.bazel index 39f630381694..d5f29ce9a59f 100644 --- a/src/cdk/testing/tests/BUILD.bazel +++ b/src/cdk/testing/tests/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ts_library") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "test_components", testonly = True, srcs = glob( @@ -14,13 +14,14 @@ ng_module( ), assets = glob(["**/*.html"]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/keycodes", "//src/cdk/platform", - "@npm//@angular/forms", ], ) -ts_library( +ts_project( name = "test_harnesses", srcs = glob(["harnesses/**/*.ts"]), deps = [ @@ -28,17 +29,20 @@ ts_library( ], ) -ng_test_library( +ts_project( name = "cross_environment_specs", + testonly = True, srcs = ["cross-environment.spec.ts"], deps = [ ":test_harnesses", + "//:node_modules/@angular/core", "//src/cdk/testing", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( [ "**/*.spec.ts", @@ -52,17 +56,19 @@ ng_test_library( ":cross_environment_specs", ":test_components", ":test_harnesses", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/kagekiri", "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", - "@npm//@angular/platform-browser", - "@npm//kagekiri", ], ) -ng_e2e_test_library( +ts_project( name = "e2e_test_sources", + testonly = True, srcs = glob( [ "**/*.e2e.spec.ts", @@ -72,26 +78,25 @@ ng_e2e_test_library( deps = [ ":cross_environment_specs", ":test_harnesses", + "//:node_modules/protractor", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/protractor", ], ) -ts_library( +ts_project( name = "webdriver_test_sources", testonly = True, srcs = ["webdriver.e2e.spec.ts"], - # TODO(ESM): remove this once the Bazel NodeJS rules can handle ESM with `nodejs_binary`. - devmode_module = "commonjs", deps = [ ":cross_environment_specs", ":test_harnesses", + "//:node_modules/@bazel/runfiles", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + "//:node_modules/@types/selenium-webdriver", "//src/cdk/testing", "//src/cdk/testing/selenium-webdriver", - "@npm//@bazel/runfiles", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//@types/selenium-webdriver", ], ) diff --git a/src/cdk/testing/tests/webdriver-test.bzl b/src/cdk/testing/tests/webdriver-test.bzl index 7eb91c1944b7..22ef96c78b9e 100644 --- a/src/cdk/testing/tests/webdriver-test.bzl +++ b/src/cdk/testing/tests/webdriver-test.bzl @@ -1,33 +1,31 @@ -load("//tools:defaults.bzl", "jasmine_node_test", "spec_bundle") -load("@io_bazel_rules_webtesting//web:web.bzl", "web_test") +load("//tools:defaults2.bzl", "jasmine_test", "spec_bundle") load("//tools/server-test:index.bzl", "server_test") def webdriver_test(name, deps, tags = [], **kwargs): spec_bundle( name = "%s_bundle" % name, deps = deps, - platform = "node", - external = ["selenium-webdriver"], ) - jasmine_node_test( + jasmine_test( name = "%s_jasmine_test" % name, tags = tags + ["manual"], - deps = ["%s_bundle" % name, "@npm//selenium-webdriver"], + data = [ + ":%s_bundle" % name, + "@npm//@angular/build-tooling/bazel/browsers/chromium", + ], + env = { + "CHROMIUM_BIN": "$(CHROMIUM)", + "CHROMEDRIVER": "$(CHROMEDRIVER)", + }, + toolchains = ["@npm//@angular/build-tooling/bazel/browsers/chromium:toolchain_alias"], **kwargs ) - web_test( - name = "%s_chromium_web_test" % name, - browser = "@npm//@angular/build-tooling/bazel/browsers/chromium:chromium", - tags = tags + ["manual"], - test = ":%s_jasmine_test" % name, - ) - server_test( name = "%s_chromium" % name, server = "//src/e2e-app:server", - test = ":%s_chromium_web_test" % name, + test = ":%s_jasmine_test" % name, tags = tags + ["e2e"], ) diff --git a/src/cdk/testing/tests/webdriver.e2e.spec.ts b/src/cdk/testing/tests/webdriver.e2e.spec.ts index f3b0b5cb281b..9db630d6f068 100644 --- a/src/cdk/testing/tests/webdriver.e2e.spec.ts +++ b/src/cdk/testing/tests/webdriver.e2e.spec.ts @@ -3,34 +3,30 @@ import { SeleniumWebDriverHarnessEnvironment, waitForAngularReady, } from '../../testing/selenium-webdriver'; -import {runfiles} from '@bazel/runfiles'; import * as webdriver from 'selenium-webdriver'; import {crossEnvironmentSpecs} from './cross-environment.spec'; import {MainComponentHarness} from './harnesses/main-component-harness'; +import {Options, setDefaultService, ServiceBuilder} from 'selenium-webdriver/chrome'; +import path from 'path'; // Tests are flaky on CI unless we increase the timeout. jasmine.DEFAULT_TIMEOUT_INTERVAL = 10_000; // 10 seconds -/** - * Metadata file generated by `rules_webtesting` for browser tests. - * The metadata provides configuration for launching the browser and - * necessary capabilities. See source for details: - * https://github.com/bazelbuild/rules_webtesting/blob/06023bb3/web/internal/metadata.bzl#L69-L82 - */ -interface WebTestMetadata { - capabilities: webdriver.Capabilities; -} - -if (process.env['WEB_TEST_METADATA'] === undefined) { +if (process.env['TEST_SERVER_PORT'] === undefined) { console.error(`Test running outside of a "web_test" target. No browser found.`); process.exit(1); } -const webTestMetadata: WebTestMetadata = require( - runfiles.resolve(process.env['WEB_TEST_METADATA']), -); +const projectRoot = path.resolve(__dirname, '../../../'); const port = process.env['TEST_SERVER_PORT']; +const chromeDriver = path.join(projectRoot, process.env['CHROMEDRIVER']!); +const chromiumBin = path.join(projectRoot, process.env['CHROMIUM_BIN']!); + +setDefaultService( + new ServiceBuilder(chromeDriver).enableVerboseLogging().loggingTo('/tmp/test.txt').build(), +); + // Kagekiri is available globally in the browser. We declare it here so we can use it in the // browser-side script passed to `By.js`. declare const kagekiri: { @@ -52,8 +48,10 @@ describe('WebDriverHarnessEnvironment', () => { beforeAll(async () => { wd = await new webdriver.Builder() - .usingServer(process.env['WEB_TEST_WEBDRIVER_SERVER']!) - .withCapabilities(webTestMetadata.capabilities) + .forBrowser('chrome') + .setChromeOptions( + new Options().setChromeBinaryPath(chromiumBin).addArguments('--no-sandbox').headless(), + ) .build(); // Ideally we would refresh the page and wait for Angular to stabilize on each test. diff --git a/src/cdk/text-field/BUILD.bazel b/src/cdk/text-field/BUILD.bazel index edbeab8b7623..5febc5e11910 100644 --- a/src/cdk/text-field/BUILD.bazel +++ b/src/cdk/text-field/BUILD.bazel @@ -1,16 +1,15 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "text-field", srcs = glob( ["**/*.ts"], @@ -20,11 +19,12 @@ ng_module( ":text-field-prebuilt.css", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/coercion", "//src/cdk/platform", "//src/cdk/private", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -39,19 +39,21 @@ sass_binary( deps = [":text_field_scss_lib"], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":text-field", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/platform", "//src/cdk/testing/private", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) diff --git a/src/cdk/text-field/autofill.ts b/src/cdk/text-field/autofill.ts index 26928753351a..5c2506e67fae 100644 --- a/src/cdk/text-field/autofill.ts +++ b/src/cdk/text-field/autofill.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Platform, _bindEventWithOptions} from '../platform'; +import {Platform} from '../platform'; import { Directive, ElementRef, @@ -111,13 +111,7 @@ export class AutofillMonitor implements OnDestroy { const unlisten = this._ngZone.runOutsideAngular(() => { element.classList.add('cdk-text-field-autofill-monitored'); - return _bindEventWithOptions( - this._renderer, - element, - 'animationstart', - listener, - listenerOptions, - ); + return this._renderer.listen(element, 'animationstart', listener, listenerOptions); }); this._monitoredElements.set(element, {subject, unlisten}); diff --git a/src/cdk/tree/BUILD.bazel b/src/cdk/tree/BUILD.bazel index 4434c52a254b..bcb26df524ea 100644 --- a/src/cdk/tree/BUILD.bazel +++ b/src/cdk/tree/BUILD.bazel @@ -1,45 +1,47 @@ load( "//tools:defaults.bzl", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", ) +load("//tools:defaults2.bzl", "ts_project") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tree", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/coercion/private", "//src/cdk/collections", "//src/cdk/keycodes", - "@npm//@angular/core", - "@npm//rxjs", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":tree", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/collections", "//src/cdk/keycodes", "//src/cdk/testing/testbed", - "@npm//rxjs", ], ) diff --git a/src/circular-deps-test.conf.js b/src/circular-deps-test.conf.cjs similarity index 100% rename from src/circular-deps-test.conf.js rename to src/circular-deps-test.conf.cjs diff --git a/src/components-examples/BUILD.bazel b/src/components-examples/BUILD.bazel index 3f6cadd55a64..2c4865fff6f6 100644 --- a/src/components-examples/BUILD.bazel +++ b/src/components-examples/BUILD.bazel @@ -1,14 +1,24 @@ -load("//tools:defaults.bzl", "ng_module", "ng_package") +load("//tools:defaults.bzl", "ng_package") load("//tools/highlight-files:index.bzl", "highlight_files") load("//tools/package-docs-content:index.bzl", "package_docs_content") load(":config.bzl", "ALL_EXAMPLES") +load("//tools:defaults2.bzl", "ng_project") +load("//tools/bazel:legacy_target.bzl", "get_legacy_label") +load("@npm2//:defs.bzl", "npm_link_all_packages") package(default_visibility = ["//visibility:public"]) -ng_module( +npm_link_all_packages() + +ng_project( name = "components-examples", - srcs = glob(["*.ts"]) + [":example-module.ts"], - deps = ALL_EXAMPLES, + srcs = glob( + ["*.ts"], + exclude = ["example-module.d.ts"], + ) + [":example-module.ts"], + deps = [ + "//:node_modules/@angular/core", + ] + ALL_EXAMPLES, ) filegroup( @@ -52,12 +62,14 @@ package_docs_content( ng_package( name = "npm_package", + package_name = "@angular/components-examples", srcs = ["package.json"], # this is a workaround to store a tree artifact in the ng_package. # ng_package does not properly handle tree artifacts currently so we escalate to nested_packages nested_packages = [":docs-content"], tags = ["docs-package"], - deps = [":components-examples"] + ALL_EXAMPLES, + visibility = ["//visibility:private"], + deps = [":components-examples_legacy"] + [get_legacy_label(t) for t in ALL_EXAMPLES], ) genrule( @@ -72,6 +84,8 @@ genrule( echo "$(execpaths //src/components-examples:example-source-files)" \ > $(execpath _example_module.MF) + export JS_BINARY__NO_CD_BINDIR="1" + # Run the bazel entry-point for generating the example module. ./$(execpath //tools/example-module:bazel-bin) \ "$(execpath _example_module.MF)" \ diff --git a/src/components-examples/cdk-experimental/listbox/BUILD.bazel b/src/components-examples/cdk-experimental/listbox/BUILD.bazel index 5540c6570171..809529b6c4b0 100644 --- a/src/components-examples/cdk-experimental/listbox/BUILD.bazel +++ b/src/components-examples/cdk-experimental/listbox/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "listbox", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk-experimental/listbox", "//src/material/checkbox", "//src/material/form-field", diff --git a/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.html b/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.html index 4bc60d28b3ec..d36fca977622 100644 --- a/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.html +++ b/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.html @@ -2,6 +2,7 @@ Wrap Multi Disabled + Readonly Skip Disabled @@ -33,8 +34,9 @@
    List of Fruits @for (fruit of fruits; track fruit) { - @let checked = option.pattern.selected() ? 'checked' : 'unchecked'; - -
  • - +
  • + {{ fruit }}
  • } diff --git a/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.ts b/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.ts index 7653a628abbc..458568c232e5 100644 --- a/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.ts +++ b/src/components-examples/cdk-experimental/listbox/cdk-listbox/cdk-listbox-example.ts @@ -30,6 +30,7 @@ export class CdkListboxExample { wrap = new FormControl(true, {nonNullable: true}); multi = new FormControl(false, {nonNullable: true}); disabled = new FormControl(false, {nonNullable: true}); + readonly = new FormControl(false, {nonNullable: true}); skipDisabled = new FormControl(true, {nonNullable: true}); fruits = [ diff --git a/src/components-examples/cdk-experimental/popover-edit/BUILD.bazel b/src/components-examples/cdk-experimental/popover-edit/BUILD.bazel index caa398bdbd7d..cc665c3ea131 100644 --- a/src/components-examples/cdk-experimental/popover-edit/BUILD.bazel +++ b/src/components-examples/cdk-experimental/popover-edit/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "popover-edit", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,10 +10,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk-experimental/popover-edit", "//src/cdk/collections", "//src/cdk/table", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/cdk-experimental/selection/BUILD.bazel b/src/components-examples/cdk-experimental/selection/BUILD.bazel index a86100c4f1a6..08e8580b0c53 100644 --- a/src/components-examples/cdk-experimental/selection/BUILD.bazel +++ b/src/components-examples/cdk-experimental/selection/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "selection", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,11 +10,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk-experimental/selection", "//src/cdk/collections", "//src/cdk/table", "//src/material/checkbox", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/cdk/a11y/BUILD.bazel b/src/components-examples/cdk/a11y/BUILD.bazel index d17b04aa6f49..e70ccdede978 100644 --- a/src/components-examples/cdk/a11y/BUILD.bazel +++ b/src/components-examples/cdk/a11y/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "a11y", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/material/select", ], diff --git a/src/components-examples/cdk/accordion/BUILD.bazel b/src/components-examples/cdk/accordion/BUILD.bazel index 2cfba2478596..4b207f807877 100644 --- a/src/components-examples/cdk/accordion/BUILD.bazel +++ b/src/components-examples/cdk/accordion/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "accordion", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/accordion", ], ) diff --git a/src/components-examples/cdk/clipboard/BUILD.bazel b/src/components-examples/cdk/clipboard/BUILD.bazel index 59acbc122d1d..669d990ee5af 100644 --- a/src/components-examples/cdk/clipboard/BUILD.bazel +++ b/src/components-examples/cdk/clipboard/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "clipboard", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,8 +10,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/clipboard", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/cdk/dialog/BUILD.bazel b/src/components-examples/cdk/dialog/BUILD.bazel index 3e99797dfdb9..64f3a850f1da 100644 --- a/src/components-examples/cdk/dialog/BUILD.bazel +++ b/src/components-examples/cdk/dialog/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "dialog", srcs = glob( ["**/*.ts"], @@ -13,9 +13,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/dialog", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/cdk/drag-drop/BUILD.bazel b/src/components-examples/cdk/drag-drop/BUILD.bazel index 5c6e86edb223..8f2515484e66 100644 --- a/src/components-examples/cdk/drag-drop/BUILD.bazel +++ b/src/components-examples/cdk/drag-drop/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "drag-drop", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/drag-drop", "//src/cdk/overlay", "//src/cdk/portal", diff --git a/src/components-examples/cdk/layout/BUILD.bazel b/src/components-examples/cdk/layout/BUILD.bazel index f560181f229b..d5d623364ffe 100644 --- a/src/components-examples/cdk/layout/BUILD.bazel +++ b/src/components-examples/cdk/layout/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "layout", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/layout", ], ) diff --git a/src/components-examples/cdk/listbox/BUILD.bazel b/src/components-examples/cdk/listbox/BUILD.bazel index 5233babd28af..2b83a957e5b2 100644 --- a/src/components-examples/cdk/listbox/BUILD.bazel +++ b/src/components-examples/cdk/listbox/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "listbox", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,9 +10,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/listbox", - "@npm//@angular/common", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/cdk/menu/BUILD.bazel b/src/components-examples/cdk/menu/BUILD.bazel index 59cd16525d3b..24f361340bac 100644 --- a/src/components-examples/cdk/menu/BUILD.bazel +++ b/src/components-examples/cdk/menu/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menu", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,8 +10,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/menu", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/cdk/overlay/BUILD.bazel b/src/components-examples/cdk/overlay/BUILD.bazel index 549868616cc5..505cefb485b9 100644 --- a/src/components-examples/cdk/overlay/BUILD.bazel +++ b/src/components-examples/cdk/overlay/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "overlay", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/overlay", ], ) diff --git a/src/components-examples/cdk/platform/BUILD.bazel b/src/components-examples/cdk/platform/BUILD.bazel index b7188644d0f6..2c57e90a8612 100644 --- a/src/components-examples/cdk/platform/BUILD.bazel +++ b/src/components-examples/cdk/platform/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "platform", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/platform", ], ) diff --git a/src/components-examples/cdk/portal/BUILD.bazel b/src/components-examples/cdk/portal/BUILD.bazel index c7d5a8d2d7f1..d4185a79fba1 100644 --- a/src/components-examples/cdk/portal/BUILD.bazel +++ b/src/components-examples/cdk/portal/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "portal", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/portal", ], ) diff --git a/src/components-examples/cdk/scrolling/BUILD.bazel b/src/components-examples/cdk/scrolling/BUILD.bazel index 86c43b324fe7..58c10a3a02cb 100644 --- a/src/components-examples/cdk/scrolling/BUILD.bazel +++ b/src/components-examples/cdk/scrolling/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "scrolling", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/scrolling", ], ) diff --git a/src/components-examples/cdk/stepper/BUILD.bazel b/src/components-examples/cdk/stepper/BUILD.bazel index 5564771f4dee..791c2d417829 100644 --- a/src/components-examples/cdk/stepper/BUILD.bazel +++ b/src/components-examples/cdk/stepper/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "stepper", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/stepper", ], ) diff --git a/src/components-examples/cdk/table/BUILD.bazel b/src/components-examples/cdk/table/BUILD.bazel index ef47aa3eccb0..0c7444fc3cc2 100644 --- a/src/components-examples/cdk/table/BUILD.bazel +++ b/src/components-examples/cdk/table/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/table", ], ) diff --git a/src/components-examples/cdk/text-field/BUILD.bazel b/src/components-examples/cdk/text-field/BUILD.bazel index 1b7e031e92f5..eec7c8fe0049 100644 --- a/src/components-examples/cdk/text-field/BUILD.bazel +++ b/src/components-examples/cdk/text-field/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "text-field", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,8 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/text-field", "//src/material/button", "//src/material/input", diff --git a/src/components-examples/cdk/tree/BUILD.bazel b/src/components-examples/cdk/tree/BUILD.bazel index 46b61041e57a..b722372ef9e1 100644 --- a/src/components-examples/cdk/tree/BUILD.bazel +++ b/src/components-examples/cdk/tree/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tree", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/tree", "//src/material/button", "//src/material/icon", diff --git a/src/components-examples/config.bzl b/src/components-examples/config.bzl index 36a1e59c850c..c9b41c2e21a2 100644 --- a/src/components-examples/config.bzl +++ b/src/components-examples/config.bzl @@ -1,7 +1,7 @@ ALL_EXAMPLES = [ # TODO(devversion): try to have for each entry-point a bazel package so that # we can automate this using the "package.bzl" variables. Currently generated - # with "bazel query 'kind("ng_module", //src/components-examples/...:*)' --output="label" + # with "bazel query 'kind("ng_project", //src/components-examples/...:*)' --output="label" "//src/components-examples/material/tree", "//src/components-examples/material/tooltip", "//src/components-examples/material/toolbar", diff --git a/src/components-examples/material-experimental/column-resize/BUILD.bazel b/src/components-examples/material-experimental/column-resize/BUILD.bazel index d66a9a68742a..2a64a4f586a2 100644 --- a/src/components-examples/material-experimental/column-resize/BUILD.bazel +++ b/src/components-examples/material-experimental/column-resize/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "column-resize", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,7 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", "//src/material-experimental/column-resize", "//src/material/table", ], diff --git a/src/components-examples/material-experimental/popover-edit/BUILD.bazel b/src/components-examples/material-experimental/popover-edit/BUILD.bazel index 04e7d07e7362..bd9062ec41a6 100644 --- a/src/components-examples/material-experimental/popover-edit/BUILD.bazel +++ b/src/components-examples/material-experimental/popover-edit/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "popover-edit", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,6 +10,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/material-experimental/popover-edit", "//src/material/button", "//src/material/checkbox", @@ -18,8 +22,6 @@ ng_module( "//src/material/list", "//src/material/snack-bar", "//src/material/table", - "@npm//@angular/common", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material-experimental/selection/BUILD.bazel b/src/components-examples/material-experimental/selection/BUILD.bazel index ccfcd9af4b81..0333469fac1f 100644 --- a/src/components-examples/material-experimental/selection/BUILD.bazel +++ b/src/components-examples/material-experimental/selection/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "selection", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,11 +10,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/collections", "//src/cdk/table", "//src/material-experimental/selection", "//src/material/checkbox", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material/autocomplete/BUILD.bazel b/src/components-examples/material/autocomplete/BUILD.bazel index 929d9c09c4e7..a01b615f15ae 100644 --- a/src/components-examples/material/autocomplete/BUILD.bazel +++ b/src/components-examples/material/autocomplete/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "autocomplete", srcs = glob( ["**/*.ts"], @@ -13,6 +14,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -21,9 +28,6 @@ ng_module( "//src/material/form-field", "//src/material/input", "//src/material/slide-toggle", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -36,16 +40,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":autocomplete", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/autocomplete", "//src/material/autocomplete/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/badge/BUILD.bazel b/src/components-examples/material/badge/BUILD.bazel index 676c7baa8b5a..32a52c775b87 100644 --- a/src/components-examples/material/badge/BUILD.bazel +++ b/src/components-examples/material/badge/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "badge", srcs = glob( ["**/*.ts"], @@ -13,14 +14,15 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/badge", "//src/material/badge/testing", "//src/material/button", "//src/material/icon", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -33,11 +35,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":badge", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/badge", diff --git a/src/components-examples/material/bottom-sheet/BUILD.bazel b/src/components-examples/material/bottom-sheet/BUILD.bazel index 1d8ae7609bbc..aefca6c244a8 100644 --- a/src/components-examples/material/bottom-sheet/BUILD.bazel +++ b/src/components-examples/material/bottom-sheet/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "bottom-sheet", srcs = glob( ["**/*.ts"], @@ -13,6 +14,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -20,8 +24,6 @@ ng_module( "//src/material/bottom-sheet/testing", "//src/material/button", "//src/material/list", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -34,16 +36,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":bottom-sheet", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/bottom-sheet", "//src/material/bottom-sheet/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/button-toggle/BUILD.bazel b/src/components-examples/material/button-toggle/BUILD.bazel index f90609b1be27..7965a51850fc 100644 --- a/src/components-examples/material/button-toggle/BUILD.bazel +++ b/src/components-examples/material/button-toggle/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "button-toggle", srcs = glob( ["**/*.ts"], @@ -13,14 +14,16 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button-toggle", "//src/material/button-toggle/testing", "//src/material/checkbox", "//src/material/icon", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -33,11 +36,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":button-toggle", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button-toggle", diff --git a/src/components-examples/material/button/BUILD.bazel b/src/components-examples/material/button/BUILD.bazel index 3fe1af2e8cc7..950d74ddc379 100644 --- a/src/components-examples/material/button/BUILD.bazel +++ b/src/components-examples/material/button/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "button", srcs = glob( ["**/*.ts"], @@ -13,6 +14,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -20,8 +24,6 @@ ng_module( "//src/material/divider", "//src/material/icon", "//src/material/tooltip", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -34,11 +36,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":button", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", diff --git a/src/components-examples/material/card/BUILD.bazel b/src/components-examples/material/card/BUILD.bazel index a946d615e6aa..eada092bd3b7 100644 --- a/src/components-examples/material/card/BUILD.bazel +++ b/src/components-examples/material/card/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "card", srcs = glob( ["**/*.ts"], @@ -13,6 +14,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -22,8 +26,6 @@ ng_module( "//src/material/chips", "//src/material/divider", "//src/material/progress-bar", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -36,11 +38,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":card", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button/testing", diff --git a/src/components-examples/material/checkbox/BUILD.bazel b/src/components-examples/material/checkbox/BUILD.bazel index a32439674394..8109e64cdcb0 100644 --- a/src/components-examples/material/checkbox/BUILD.bazel +++ b/src/components-examples/material/checkbox/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "checkbox", srcs = glob( ["**/*.ts"], @@ -13,15 +14,17 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/card", "//src/material/checkbox", "//src/material/checkbox/testing", "//src/material/radio", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -34,16 +37,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":checkbox", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/checkbox", "//src/material/checkbox/testing", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material/chips/BUILD.bazel b/src/components-examples/material/chips/BUILD.bazel index a8165fbd2f5d..54ac55d38b8b 100644 --- a/src/components-examples/material/chips/BUILD.bazel +++ b/src/components-examples/material/chips/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "chips", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/drag-drop", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -22,9 +27,6 @@ ng_module( "//src/material/chips/testing", "//src/material/form-field", "//src/material/icon", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -37,16 +39,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":chips", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/chips", "//src/material/chips/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/chips/chips-form-control/chips-form-control-example.html b/src/components-examples/material/chips/chips-form-control/chips-form-control-example.html index f39e3a3dd152..4cae76b49fca 100644 --- a/src/components-examples/material/chips/chips-form-control/chips-form-control-example.html +++ b/src/components-examples/material/chips/chips-form-control/chips-form-control-example.html @@ -11,7 +11,7 @@ @for (keyword of keywords(); track keyword) { {{keyword}} - diff --git a/src/components-examples/material/chips/chips-harness/chips-harness-example.ts b/src/components-examples/material/chips/chips-harness/chips-harness-example.ts index 6808d4850d16..e4fa273dde13 100644 --- a/src/components-examples/material/chips/chips-harness/chips-harness-example.ts +++ b/src/components-examples/material/chips/chips-harness/chips-harness-example.ts @@ -1,3 +1,5 @@ +/// + import {ChangeDetectionStrategy, Component, signal} from '@angular/core'; import {MatChipsModule} from '@angular/material/chips'; import {MatIconModule} from '@angular/material/icon'; diff --git a/src/components-examples/material/chips/chips-reactive-form/chips-reactive-form-example.html b/src/components-examples/material/chips/chips-reactive-form/chips-reactive-form-example.html index 6e809960bfc5..57d9876d271d 100644 --- a/src/components-examples/material/chips/chips-reactive-form/chips-reactive-form-example.html +++ b/src/components-examples/material/chips/chips-reactive-form/chips-reactive-form-example.html @@ -6,7 +6,7 @@

    Chips inside of a Reactive form

    @for (keyword of reactiveKeywords(); track keyword) { {{keyword}} - @@ -18,4 +18,4 @@

    Chips inside of a Reactive form

    (matChipInputTokenEnd)="addReactiveKeyword($event)" /> - \ No newline at end of file + diff --git a/src/components-examples/material/chips/chips-template-form/chips-template-form-example.html b/src/components-examples/material/chips/chips-template-form/chips-template-form-example.html index e9a99a6667a3..46dd40bdeb30 100644 --- a/src/components-examples/material/chips/chips-template-form/chips-template-form-example.html +++ b/src/components-examples/material/chips/chips-template-form/chips-template-form-example.html @@ -6,7 +6,7 @@

    Chips inside of a Template-driven form

    @for (keyword of templateKeywords(); track keyword) { {{keyword}} - diff --git a/src/components-examples/material/core/BUILD.bazel b/src/components-examples/material/core/BUILD.bazel index 8fb0f7d6f1a0..dbd0faa281ce 100644 --- a/src/components-examples/material/core/BUILD.bazel +++ b/src/components-examples/material/core/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "core", srcs = glob(["**/*.ts"]), assets = glob([ @@ -10,11 +10,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/checkbox", "//src/material/core", "//src/material/input", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material/datepicker/BUILD.bazel b/src/components-examples/material/datepicker/BUILD.bazel index 433d3241a235..b735d2431a85 100644 --- a/src/components-examples/material/datepicker/BUILD.bazel +++ b/src/components-examples/material/datepicker/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "datepicker", srcs = glob( ["**/*.ts"], @@ -13,6 +14,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/moment", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material-moment-adapter", @@ -24,10 +32,6 @@ ng_module( "//src/material/dialog", "//src/material/icon", "//src/material/input", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", - "@npm//moment", ], ) @@ -40,18 +44,20 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":datepicker", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/core", "//src/material/datepicker", "//src/material/datepicker/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/dialog/BUILD.bazel b/src/components-examples/material/dialog/BUILD.bazel index 80be9dbfebd3..5cd82af5e05e 100644 --- a/src/components-examples/material/dialog/BUILD.bazel +++ b/src/components-examples/material/dialog/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "dialog", srcs = glob( ["**/*.ts"], @@ -13,6 +14,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -20,9 +26,6 @@ ng_module( "//src/material/dialog/testing", "//src/material/input", "//src/material/menu", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,16 +38,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":dialog", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/dialog", "//src/material/dialog/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/divider/BUILD.bazel b/src/components-examples/material/divider/BUILD.bazel index 3b5026c21c98..f2ab783ba2a5 100644 --- a/src/components-examples/material/divider/BUILD.bazel +++ b/src/components-examples/material/divider/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "divider", srcs = glob( ["**/*.ts"], @@ -13,13 +14,14 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/divider", "//src/material/divider/testing", "//src/material/list", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -32,11 +34,15 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":divider", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/divider", diff --git a/src/components-examples/material/expansion/BUILD.bazel b/src/components-examples/material/expansion/BUILD.bazel index 0ae679f9aacd..66a51d9a8c65 100644 --- a/src/components-examples/material/expansion/BUILD.bazel +++ b/src/components-examples/material/expansion/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "expansion", srcs = glob( ["**/*.ts"], @@ -13,6 +14,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -21,8 +25,6 @@ ng_module( "//src/material/expansion/testing", "//src/material/icon", "//src/material/input", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,16 +37,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":expansion", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/expansion", "//src/material/expansion/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/form-field/BUILD.bazel b/src/components-examples/material/form-field/BUILD.bazel index 315aa5398812..e2aad0b99071 100644 --- a/src/components-examples/material/form-field/BUILD.bazel +++ b/src/components-examples/material/form-field/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "form-field", srcs = glob( ["**/*.ts"], @@ -13,6 +14,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -24,9 +31,6 @@ ng_module( "//src/material/input/testing", "//src/material/radio", "//src/material/select", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -39,19 +43,21 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":form-field", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/form-field", "//src/material/form-field/testing", "//src/material/input", "//src/material/input/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/grid-list/BUILD.bazel b/src/components-examples/material/grid-list/BUILD.bazel index 322e05aad82d..2194f083b654 100644 --- a/src/components-examples/material/grid-list/BUILD.bazel +++ b/src/components-examples/material/grid-list/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "grid-list", srcs = glob( ["**/*.ts"], @@ -13,12 +14,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/grid-list", "//src/material/grid-list/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -31,11 +33,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":grid-list", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/grid-list", diff --git a/src/components-examples/material/icon/BUILD.bazel b/src/components-examples/material/icon/BUILD.bazel index 33f11bccaaff..c50fb16c0ca1 100644 --- a/src/components-examples/material/icon/BUILD.bazel +++ b/src/components-examples/material/icon/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "icon", srcs = glob( ["**/*.ts"], @@ -13,12 +14,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", "//src/material/icon/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -31,16 +33,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":icon", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", "//src/material/icon/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/input/BUILD.bazel b/src/components-examples/material/input/BUILD.bazel index 5471757156a0..dba4677c9f2c 100644 --- a/src/components-examples/material/input/BUILD.bazel +++ b/src/components-examples/material/input/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "input", srcs = glob( ["**/*.ts"], @@ -13,15 +14,16 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", "//src/material/icon", "//src/material/input", "//src/material/input/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -34,17 +36,19 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":input", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/input", "//src/material/input/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/list/BUILD.bazel b/src/components-examples/material/list/BUILD.bazel index 46bf9b9eb366..0e166a2f5420 100644 --- a/src/components-examples/material/list/BUILD.bazel +++ b/src/components-examples/material/list/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "list", srcs = glob( ["**/*.ts"], @@ -13,13 +14,16 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", "//src/material/list", "//src/material/list/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -32,11 +36,15 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":list", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/list", diff --git a/src/components-examples/material/menu/BUILD.bazel b/src/components-examples/material/menu/BUILD.bazel index 47469491e46b..4e4e90559298 100644 --- a/src/components-examples/material/menu/BUILD.bazel +++ b/src/components-examples/material/menu/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menu", srcs = glob( ["**/*.ts"], @@ -13,6 +14,9 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -20,8 +24,6 @@ ng_module( "//src/material/icon", "//src/material/menu", "//src/material/menu/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -34,16 +36,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":menu", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/menu", "//src/material/menu/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/paginator/BUILD.bazel b/src/components-examples/material/paginator/BUILD.bazel index 50790d9b5126..5a69f9926436 100644 --- a/src/components-examples/material/paginator/BUILD.bazel +++ b/src/components-examples/material/paginator/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "paginator", srcs = glob( ["**/*.ts"], @@ -13,18 +14,21 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/localize", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", - "//src/components-examples/private:localize_types", "//src/material/card", "//src/material/form-field", "//src/material/input", "//src/material/paginator", "//src/material/paginator/testing", "//src/material/slide-toggle", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -37,16 +41,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":paginator", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/paginator", "//src/material/paginator/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/paginator/paginator-intl/paginator-intl-example.ts b/src/components-examples/material/paginator/paginator-intl/paginator-intl-example.ts index f4b5cb8b699a..77b23d93b5bc 100644 --- a/src/components-examples/material/paginator/paginator-intl/paginator-intl-example.ts +++ b/src/components-examples/material/paginator/paginator-intl/paginator-intl-example.ts @@ -2,6 +2,8 @@ import {Component, Injectable} from '@angular/core'; import {MatPaginatorIntl, MatPaginatorModule} from '@angular/material/paginator'; import {Subject} from 'rxjs'; +import '@angular/localize/init'; + @Injectable() export class MyCustomPaginatorIntl implements MatPaginatorIntl { changes = new Subject(); diff --git a/src/components-examples/material/progress-bar/BUILD.bazel b/src/components-examples/material/progress-bar/BUILD.bazel index 0d41b51e8c40..b18198ca5ad6 100644 --- a/src/components-examples/material/progress-bar/BUILD.bazel +++ b/src/components-examples/material/progress-bar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "progress-bar", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/card", @@ -20,9 +25,6 @@ ng_module( "//src/material/progress-bar/testing", "//src/material/radio", "//src/material/slider", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,11 +37,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":progress-bar", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/progress-bar", diff --git a/src/components-examples/material/progress-spinner/BUILD.bazel b/src/components-examples/material/progress-spinner/BUILD.bazel index 44bf6db98d0b..742a1974d065 100644 --- a/src/components-examples/material/progress-spinner/BUILD.bazel +++ b/src/components-examples/material/progress-spinner/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "progress-spinner", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/card", @@ -20,9 +25,6 @@ ng_module( "//src/material/progress-spinner/testing", "//src/material/radio", "//src/material/slider", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,11 +37,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":progress-spinner", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/progress-spinner", diff --git a/src/components-examples/material/radio/BUILD.bazel b/src/components-examples/material/radio/BUILD.bazel index a07fb27df62d..470c73cb7a69 100644 --- a/src/components-examples/material/radio/BUILD.bazel +++ b/src/components-examples/material/radio/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "radio", srcs = glob( ["**/*.ts"], @@ -13,13 +14,14 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/radio", "//src/material/radio/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -32,16 +34,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":radio", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/radio", "//src/material/radio/testing", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material/select/BUILD.bazel b/src/components-examples/material/select/BUILD.bazel index f5066d2369d2..e26a874442ea 100644 --- a/src/components-examples/material/select/BUILD.bazel +++ b/src/components-examples/material/select/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "select", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/checkbox", @@ -20,9 +25,6 @@ ng_module( "//src/material/input", "//src/material/select", "//src/material/select/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,16 +37,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":select", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/select", "//src/material/select/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/sidenav/BUILD.bazel b/src/components-examples/material/sidenav/BUILD.bazel index f2846cc92196..d482e99642b6 100644 --- a/src/components-examples/material/sidenav/BUILD.bazel +++ b/src/components-examples/material/sidenav/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "sidenav", srcs = glob( ["**/*.ts"], @@ -13,6 +14,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@angular/router", + "//:node_modules/@types/jasmine", "//src/cdk/layout", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -25,10 +31,6 @@ ng_module( "//src/material/select", "//src/material/sidenav", "//src/material/toolbar", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@angular/router", - "@npm//@types/jasmine", ], ) @@ -41,16 +43,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":sidenav", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/sidenav", "//src/material/sidenav/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/slide-toggle/BUILD.bazel b/src/components-examples/material/slide-toggle/BUILD.bazel index aebd0c7fcb52..70e1d6bf36df 100644 --- a/src/components-examples/material/slide-toggle/BUILD.bazel +++ b/src/components-examples/material/slide-toggle/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "slide-toggle", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -21,9 +26,6 @@ ng_module( "//src/material/radio", "//src/material/slide-toggle", "//src/material/slide-toggle/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -36,16 +38,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":slide-toggle", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/slide-toggle", "//src/material/slide-toggle/testing", - "@npm//@angular/forms", ], ) diff --git a/src/components-examples/material/slider/BUILD.bazel b/src/components-examples/material/slider/BUILD.bazel index 3c4e0e0affd5..9fbb6527c102 100644 --- a/src/components-examples/material/slider/BUILD.bazel +++ b/src/components-examples/material/slider/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "slider", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/card", @@ -20,9 +25,6 @@ ng_module( "//src/material/input", "//src/material/slider", "//src/material/slider/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,11 +37,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":slider", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/slider", diff --git a/src/components-examples/material/snack-bar/BUILD.bazel b/src/components-examples/material/snack-bar/BUILD.bazel index defa1e3d837e..6f83775e3c1f 100644 --- a/src/components-examples/material/snack-bar/BUILD.bazel +++ b/src/components-examples/material/snack-bar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "snack-bar", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -20,9 +25,6 @@ ng_module( "//src/material/select", "//src/material/snack-bar", "//src/material/snack-bar/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -35,16 +37,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":snack-bar", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/snack-bar", "//src/material/snack-bar/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/sort/BUILD.bazel b/src/components-examples/material/sort/BUILD.bazel index 828a75c32cfa..8cd6e6a77b9f 100644 --- a/src/components-examples/material/sort/BUILD.bazel +++ b/src/components-examples/material/sort/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "sort", srcs = glob( ["**/*.ts"], @@ -13,12 +14,13 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/sort", "//src/material/sort/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -31,16 +33,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":sort", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/sort", "//src/material/sort/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/stepper/BUILD.bazel b/src/components-examples/material/stepper/BUILD.bazel index 59cd225b039a..a33304af37f5 100644 --- a/src/components-examples/material/stepper/BUILD.bazel +++ b/src/components-examples/material/stepper/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "stepper", srcs = glob( ["**/*.ts"], @@ -13,6 +14,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/layout", "//src/cdk/stepper", "//src/cdk/testing", @@ -23,10 +30,6 @@ ng_module( "//src/material/radio", "//src/material/stepper", "//src/material/stepper/testing", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -39,17 +42,19 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":stepper", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/stepper", "//src/material/stepper/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/table/BUILD.bazel b/src/components-examples/material/table/BUILD.bazel index 7ffa4e0bb932..634be32cf528 100644 --- a/src/components-examples/material/table/BUILD.bazel +++ b/src/components-examples/material/table/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table", srcs = glob( ["**/*.ts"], @@ -13,6 +14,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/drag-drop", "//src/cdk/table", "//src/cdk/testing", @@ -28,8 +34,6 @@ ng_module( "//src/material/sort", "//src/material/table", "//src/material/table/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -42,11 +46,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":table", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/table", diff --git a/src/components-examples/material/tabs/BUILD.bazel b/src/components-examples/material/tabs/BUILD.bazel index 076ab91e5466..61e2ce34363b 100644 --- a/src/components-examples/material/tabs/BUILD.bazel +++ b/src/components-examples/material/tabs/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tabs", srcs = glob( ["**/*.ts"], @@ -13,6 +14,12 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -22,9 +29,6 @@ ng_module( "//src/material/input", "//src/material/tabs", "//src/material/tabs/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -37,16 +41,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":tabs", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/tabs", "//src/material/tabs/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/timepicker/BUILD.bazel b/src/components-examples/material/timepicker/BUILD.bazel index 09a215458152..a3775e7f45ef 100644 --- a/src/components-examples/material/timepicker/BUILD.bazel +++ b/src/components-examples/material/timepicker/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "timepicker", srcs = glob( ["**/*.ts"], @@ -13,6 +14,11 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -22,10 +28,6 @@ ng_module( "//src/material/input", "//src/material/timepicker", "//src/material/timepicker/testing", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -38,17 +40,19 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":timepicker", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/core", "//src/material/timepicker", "//src/material/timepicker/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/toolbar/BUILD.bazel b/src/components-examples/material/toolbar/BUILD.bazel index a9bee7f33148..9c3ace9534a0 100644 --- a/src/components-examples/material/toolbar/BUILD.bazel +++ b/src/components-examples/material/toolbar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "toolbar", srcs = glob( ["**/*.ts"], @@ -13,14 +14,15 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", "//src/material/icon", "//src/material/toolbar", "//src/material/toolbar/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -33,11 +35,13 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":toolbar", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", diff --git a/src/components-examples/material/tooltip/BUILD.bazel b/src/components-examples/material/tooltip/BUILD.bazel index 7b2b510076c0..8a0b3555f0fa 100644 --- a/src/components-examples/material/tooltip/BUILD.bazel +++ b/src/components-examples/material/tooltip/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tooltip", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", "//src/cdk/scrolling", "//src/cdk/testing", "//src/cdk/testing/testbed", @@ -22,9 +27,6 @@ ng_module( "//src/material/select", "//src/material/tooltip", "//src/material/tooltip/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -37,16 +39,18 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":tooltip", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/tooltip", "//src/material/tooltip/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/components-examples/material/tree/BUILD.bazel b/src/components-examples/material/tree/BUILD.bazel index 361507e2e26d..0aed77982e89 100644 --- a/src/components-examples/material/tree/BUILD.bazel +++ b/src/components-examples/material/tree/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tree", srcs = glob( ["**/*.ts"], @@ -13,6 +14,10 @@ ng_module( "**/*.css", ]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@types/jasmine", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", @@ -22,8 +27,6 @@ ng_module( "//src/material/progress-bar", "//src/material/tree", "//src/material/tree/testing", - "@npm//@angular/platform-browser", - "@npm//@types/jasmine", ], ) @@ -36,11 +39,14 @@ filegroup( ]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":tree", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", diff --git a/src/components-examples/package.json b/src/components-examples/package.json index 6fbf2398d523..34c8abe9591e 100644 --- a/src/components-examples/package.json +++ b/src/components-examples/package.json @@ -35,6 +35,6 @@ "@angular/material-date-fns-adapter": "0.0.0-PLACEHOLDER" }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" } } diff --git a/src/components-examples/private/BUILD.bazel b/src/components-examples/private/BUILD.bazel index 6b0a0abf7b30..91cd2c01e235 100644 --- a/src/components-examples/private/BUILD.bazel +++ b/src/components-examples/private/BUILD.bazel @@ -1,17 +1,12 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "private", srcs = glob(["*.ts"]), deps = [ + "//:node_modules/@angular/core", "//src/components-examples", - "@npm//@angular/core", ], ) - -ts_library( - name = "localize_types", - srcs = ["localize-types.d.ts"], -) diff --git a/src/components-examples/private/localize-types.d.ts b/src/components-examples/private/localize-types.d.ts deleted file mode 100644 index e4b0d345cafd..000000000000 --- a/src/components-examples/private/localize-types.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {LocalizeFn} from '@angular/localize/src/localize'; - -declare global { - const $localize: LocalizeFn; -} diff --git a/src/dev-app/BUILD.bazel b/src/dev-app/BUILD.bazel index 87e88e18b767..56fcf5533cdb 100644 --- a/src/dev-app/BUILD.bazel +++ b/src/dev-app/BUILD.bazel @@ -1,18 +1,29 @@ load("@build_bazel_rules_nodejs//:index.bzl", "pkg_web") -load("//tools:defaults.bzl", "devmode_esbuild", "esbuild_config", "http_server", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "http_server", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") +load("@npm2//:defs.bzl", "npm_link_all_packages") +load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild") load("//src/components-examples:config.bzl", "ALL_EXAMPLES") -load("//tools/angular:index.bzl", "LINKER_PROCESSED_FW_PACKAGES") package(default_visibility = ["//visibility:public"]) -ng_module( +npm_link_all_packages() + +ng_project( name = "dev-app", srcs = [ "dev-app.ts", "main.ts", + "polyfills.ts", "routes.ts", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/compiler", + "//:node_modules/@angular/core", + "//:node_modules/@angular/localize", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@angular/router", "//src/cdk/bidi", "//src/cdk/overlay", "//src/dev-app/autocomplete", @@ -81,29 +92,27 @@ ng_module( "//src/dev-app/virtual-scroll", "//src/dev-app/youtube-player", "//src/material/core", - "@npm//@angular/compiler", - "@npm//@angular/localize", - "@npm//@angular/router", ], ) -esbuild_config( - name = "esbuild_config", - config_file = "esbuild.config.mjs", -) - -devmode_esbuild( +esbuild( name = "bundles", - config = ":esbuild_config", - entry_points = [":main.ts"] + ["%s:index.ts" % e for e in ALL_EXAMPLES], + srcs = [ + "//src:build-tsconfig", + ], + bundle = True, + config = "//src:esbuild-linked-config", + entry_points = [ + ":main.js", + ":polyfills.js", + ] + ["%s:index.js" % e for e in ALL_EXAMPLES], + minify = True, platform = "browser", splitting = True, # We cannot use `ES2017` or higher as that would result in `async/await` not being downleveled. # ZoneJS needs to be able to intercept these as otherwise change detection would not work properly. target = "es2016", - # Note: We add all linker-processed FW packages as dependencies here so that ESBuild will - # map all framework packages to their linker-processed bundles from `tools/angular`. - deps = LINKER_PROCESSED_FW_PACKAGES + [ + deps = ALL_EXAMPLES + [ ":dev-app", ], ) diff --git a/src/dev-app/autocomplete/BUILD.bazel b/src/dev-app/autocomplete/BUILD.bazel index 27f1e500850e..02f7bc2ccecf 100644 --- a/src/dev-app/autocomplete/BUILD.bazel +++ b/src/dev-app/autocomplete/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "autocomplete", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":autocomplete_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/autocomplete", "//src/material/button", "//src/material/card", @@ -17,7 +21,6 @@ ng_module( "//src/material/dialog", "//src/material/form-field", "//src/material/input", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/badge/BUILD.bazel b/src/dev-app/badge/BUILD.bazel index 5b8ad1ea694a..e786f7656714 100644 --- a/src/dev-app/badge/BUILD.bazel +++ b/src/dev-app/badge/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "badge", srcs = glob(["**/*.ts"]), assets = [ @@ -10,10 +11,11 @@ ng_module( ":badge_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/badge", "//src/material/button", "//src/material/icon", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/baseline/BUILD.bazel b/src/dev-app/baseline/BUILD.bazel index 8750842f2c3a..e50d1e3734a8 100644 --- a/src/dev-app/baseline/BUILD.bazel +++ b/src/dev-app/baseline/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "baseline", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":baseline_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/material/card", "//src/material/checkbox", "//src/material/form-field", diff --git a/src/dev-app/bottom-sheet/BUILD.bazel b/src/dev-app/bottom-sheet/BUILD.bazel index bf106b2b5882..760a07527962 100644 --- a/src/dev-app/bottom-sheet/BUILD.bazel +++ b/src/dev-app/bottom-sheet/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "bottom-sheet", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":bottom_sheet_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/bottom-sheet", "//src/material/button", "//src/material/card", @@ -19,7 +22,6 @@ ng_module( "//src/material/input", "//src/material/list", "//src/material/select", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/button-toggle/BUILD.bazel b/src/dev-app/button-toggle/BUILD.bazel index e02799ed6ecb..4f12ef8415e7 100644 --- a/src/dev-app/button-toggle/BUILD.bazel +++ b/src/dev-app/button-toggle/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "button-toggle", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":button_toggle_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button-toggle", "//src/material/checkbox", "//src/material/icon", diff --git a/src/dev-app/button/BUILD.bazel b/src/dev-app/button/BUILD.bazel index 9db19dfd6c77..e0272d587854 100644 --- a/src/dev-app/button/BUILD.bazel +++ b/src/dev-app/button/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "button", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":button_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/checkbox", "//src/material/icon", diff --git a/src/dev-app/card/BUILD.bazel b/src/dev-app/card/BUILD.bazel index 28a377317c5d..8c8b14bf433c 100644 --- a/src/dev-app/card/BUILD.bazel +++ b/src/dev-app/card/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "card", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":card_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/card", "//src/material/checkbox", diff --git a/src/dev-app/cdk-dialog/BUILD.bazel b/src/dev-app/cdk-dialog/BUILD.bazel index 40a87e0a1cff..d637334ec443 100644 --- a/src/dev-app/cdk-dialog/BUILD.bazel +++ b/src/dev-app/cdk-dialog/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "cdk-dialog", srcs = glob(["**/*.ts"]), assets = [ @@ -10,8 +11,10 @@ ng_module( ":dialog_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/dialog", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/cdk-experimental-combobox/BUILD.bazel b/src/dev-app/cdk-experimental-combobox/BUILD.bazel index f5b6816245f5..c06f00e10eab 100644 --- a/src/dev-app/cdk-experimental-combobox/BUILD.bazel +++ b/src/dev-app/cdk-experimental-combobox/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "cdk-experimental-combobox", srcs = glob(["**/*.ts"]), assets = [ "cdk-combobox-demo.html", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk-experimental/combobox", ], ) diff --git a/src/dev-app/cdk-experimental-listbox/BUILD.bazel b/src/dev-app/cdk-experimental-listbox/BUILD.bazel index 0cdb1654aa7d..90c97d9a2433 100644 --- a/src/dev-app/cdk-experimental-listbox/BUILD.bazel +++ b/src/dev-app/cdk-experimental-listbox/BUILD.bazel @@ -1,10 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "cdk-experimental-listbox", srcs = glob(["**/*.ts"]), assets = ["cdk-listbox-demo.html"], - deps = ["//src/components-examples/cdk-experimental/listbox"], + deps = [ + "//:node_modules/@angular/core", + "//src/components-examples/cdk-experimental/listbox", + ], ) diff --git a/src/dev-app/cdk-listbox/BUILD.bazel b/src/dev-app/cdk-listbox/BUILD.bazel index d4dac3a73da2..76ea8ab813ed 100644 --- a/src/dev-app/cdk-listbox/BUILD.bazel +++ b/src/dev-app/cdk-listbox/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "cdk-listbox", srcs = glob(["**/*.ts"]), assets = [ "cdk-listbox-demo.html", ], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/cdk/listbox", ], ) diff --git a/src/dev-app/cdk-menu/BUILD.bazel b/src/dev-app/cdk-menu/BUILD.bazel index 436a2a6ae5ec..ce551a5caa10 100644 --- a/src/dev-app/cdk-menu/BUILD.bazel +++ b/src/dev-app/cdk-menu/BUILD.bazel @@ -1,8 +1,8 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "cdk-menu", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +10,7 @@ ng_module( "cdk-menu-demo.css", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/menu", "//src/components-examples/cdk/menu", ], diff --git a/src/dev-app/checkbox/BUILD.bazel b/src/dev-app/checkbox/BUILD.bazel index 8535517d8cab..9c02cd846897 100644 --- a/src/dev-app/checkbox/BUILD.bazel +++ b/src/dev-app/checkbox/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "checkbox", srcs = glob(["**/*.ts"]), assets = [ @@ -11,13 +12,14 @@ ng_module( ":checkbox_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/checkbox", "//src/material/core", "//src/material/form-field", "//src/material/input", "//src/material/select", "//src/material/tooltip", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/chips/BUILD.bazel b/src/dev-app/chips/BUILD.bazel index 7fd5d0b6acd5..0d36286a33f3 100644 --- a/src/dev-app/chips/BUILD.bazel +++ b/src/dev-app/chips/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "chips", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":chips_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/card", "//src/material/checkbox", diff --git a/src/dev-app/clipboard/BUILD.bazel b/src/dev-app/clipboard/BUILD.bazel index be2a6621edcb..b0cb1f85bf12 100644 --- a/src/dev-app/clipboard/BUILD.bazel +++ b/src/dev-app/clipboard/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "clipboard", srcs = glob(["**/*.ts"]), assets = [ @@ -10,8 +11,9 @@ ng_module( "clipboard-demo.html", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/clipboard", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/column-resize/BUILD.bazel b/src/dev-app/column-resize/BUILD.bazel index 3f76a9536350..43f911b00d28 100644 --- a/src/dev-app/column-resize/BUILD.bazel +++ b/src/dev-app/column-resize/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "column-resize", srcs = glob(["**/*.ts"]), assets = ["column-resize-home.html"], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/material-experimental/column-resize", "//src/dev-app/example", "//src/material/expansion", diff --git a/src/dev-app/connected-overlay/BUILD.bazel b/src/dev-app/connected-overlay/BUILD.bazel index b7c41c6a811a..1bad51b1fe34 100644 --- a/src/dev-app/connected-overlay/BUILD.bazel +++ b/src/dev-app/connected-overlay/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "connected-overlay", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":connected-overlay_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/bidi", "//src/cdk/overlay", "//src/cdk/portal", @@ -17,7 +20,6 @@ ng_module( "//src/material/button", "//src/material/checkbox", "//src/material/radio", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/datepicker/BUILD.bazel b/src/dev-app/datepicker/BUILD.bazel index 57ebff807d3a..0a8abc72f7f5 100644 --- a/src/dev-app/datepicker/BUILD.bazel +++ b/src/dev-app/datepicker/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "datepicker", srcs = glob(["**/*.ts"]), assets = [ @@ -12,6 +13,10 @@ ng_module( ":custom_header_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/material/button", "//src/material/checkbox", "//src/material/core", diff --git a/src/dev-app/dev-app/BUILD.bazel b/src/dev-app/dev-app/BUILD.bazel index 5841fdb83fc9..b556a79b7dce 100644 --- a/src/dev-app/dev-app/BUILD.bazel +++ b/src/dev-app/dev-app/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "dev-app", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":dev_app_layout_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/router", "//src/cdk/bidi", "//src/cdk/overlay", "//src/material/button", @@ -19,7 +23,6 @@ ng_module( "//src/material/sidenav", "//src/material/toolbar", "//src/material/tooltip", - "@npm//@angular/router", ], ) diff --git a/src/dev-app/dev-app/dev-app-directionality.ts b/src/dev-app/dev-app/dev-app-directionality.ts index 5e9323c45b69..64b833d93455 100644 --- a/src/dev-app/dev-app/dev-app-directionality.ts +++ b/src/dev-app/dev-app/dev-app-directionality.ts @@ -7,20 +7,21 @@ */ import {Direction, Directionality} from '@angular/cdk/bidi'; -import {EventEmitter, Injectable, OnDestroy} from '@angular/core'; +import {EventEmitter, Injectable, OnDestroy, signal} from '@angular/core'; @Injectable() export class DevAppDirectionality implements Directionality, OnDestroy { readonly change = new EventEmitter(); get value(): Direction { - return this._value; + return this.valueSignal(); } set value(value: Direction) { - this._value = value; + this.valueSignal.set(value); this.change.next(value); } - private _value: Direction = 'ltr'; + + valueSignal = signal('ltr'); ngOnDestroy() { this.change.complete(); diff --git a/src/dev-app/dialog/BUILD.bazel b/src/dev-app/dialog/BUILD.bazel index 76562e584e7b..d0308d99bdf1 100644 --- a/src/dev-app/dialog/BUILD.bazel +++ b/src/dev-app/dialog/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "dialog", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":dialog_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/drag-drop", "//src/material/button", "//src/material/card", diff --git a/src/dev-app/drag-drop/BUILD.bazel b/src/dev-app/drag-drop/BUILD.bazel index d41ec8215880..0caf424a24d9 100644 --- a/src/dev-app/drag-drop/BUILD.bazel +++ b/src/dev-app/drag-drop/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "drag-drop", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":drag-drop_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/drag-drop", "//src/material/checkbox", "//src/material/form-field", diff --git a/src/dev-app/drawer/BUILD.bazel b/src/dev-app/drawer/BUILD.bazel index 84a126e8831a..e6ef1d0de946 100644 --- a/src/dev-app/drawer/BUILD.bazel +++ b/src/dev-app/drawer/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "drawer", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":drawer_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/material/button", "//src/material/list", "//src/material/sidenav", diff --git a/src/dev-app/example/BUILD.bazel b/src/dev-app/example/BUILD.bazel index 71a5193a9345..a6b4102651ec 100644 --- a/src/dev-app/example/BUILD.bazel +++ b/src/dev-app/example/BUILD.bazel @@ -1,11 +1,12 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "example", srcs = glob(["**/*.ts"]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/coercion", "//src/components-examples", "//src/components-examples/private", diff --git a/src/dev-app/examples-page/BUILD.bazel b/src/dev-app/examples-page/BUILD.bazel index 797460b14014..ccdc97725b70 100644 --- a/src/dev-app/examples-page/BUILD.bazel +++ b/src/dev-app/examples-page/BUILD.bazel @@ -1,11 +1,12 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "examples-page", srcs = glob(["**/*.ts"]), deps = [ + "//:node_modules/@angular/core", "//src/components-examples", "//src/dev-app/example", ], diff --git a/src/dev-app/expansion/BUILD.bazel b/src/dev-app/expansion/BUILD.bazel index 567e58a34d1e..33da223a2d4d 100644 --- a/src/dev-app/expansion/BUILD.bazel +++ b/src/dev-app/expansion/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "expansion", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":expansion_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/accordion", "//src/material/button", "//src/material/checkbox", @@ -18,7 +21,6 @@ ng_module( "//src/material/input", "//src/material/radio", "//src/material/slide-toggle", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/focus-origin/BUILD.bazel b/src/dev-app/focus-origin/BUILD.bazel index e0bc79d3c6f5..ba957573bdeb 100644 --- a/src/dev-app/focus-origin/BUILD.bazel +++ b/src/dev-app/focus-origin/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "focus-origin", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":focus_origin_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/a11y", ], ) diff --git a/src/dev-app/focus-trap/BUILD.bazel b/src/dev-app/focus-trap/BUILD.bazel index 9abf6b8a02e2..a1f22c8cce21 100644 --- a/src/dev-app/focus-trap/BUILD.bazel +++ b/src/dev-app/focus-trap/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "focus-trap", srcs = glob(["**/*.ts"]), assets = [ @@ -12,6 +13,7 @@ ng_module( ":focus_trap_dialog_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/a11y", "//src/cdk/platform", "//src/material/button", diff --git a/src/dev-app/google-map/BUILD.bazel b/src/dev-app/google-map/BUILD.bazel index ff0e7df76ab9..18b31d30aa52 100644 --- a/src/dev-app/google-map/BUILD.bazel +++ b/src/dev-app/google-map/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "google-map", srcs = glob(["**/*.ts"]), assets = [ @@ -10,8 +11,11 @@ ng_module( ":google_map_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@types/google.maps", + "//:node_modules/rxjs", "//src/google-maps", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/google-map/google-map-demo.ts b/src/dev-app/google-map/google-map-demo.ts index 031cd9a859c5..7716f952d0da 100644 --- a/src/dev-app/google-map/google-map-demo.ts +++ b/src/dev-app/google-map/google-map-demo.ts @@ -6,6 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ +/// + import { ChangeDetectionStrategy, ChangeDetectorRef, diff --git a/src/dev-app/grid-list/BUILD.bazel b/src/dev-app/grid-list/BUILD.bazel index cc9359b5250d..22ae1d2e8323 100644 --- a/src/dev-app/grid-list/BUILD.bazel +++ b/src/dev-app/grid-list/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "grid-list", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":grid_list_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/card", "//src/material/grid-list", diff --git a/src/dev-app/icon/BUILD.bazel b/src/dev-app/icon/BUILD.bazel index 28e582bc2b9d..069f9050de0d 100644 --- a/src/dev-app/icon/BUILD.bazel +++ b/src/dev-app/icon/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "icon", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":icon_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/material/icon", ], ) diff --git a/src/dev-app/input-modality/BUILD.bazel b/src/dev-app/input-modality/BUILD.bazel index f0a2b745b2ae..4393180d9654 100644 --- a/src/dev-app/input-modality/BUILD.bazel +++ b/src/dev-app/input-modality/BUILD.bazel @@ -1,12 +1,14 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "input-modality", srcs = glob(["**/*.ts"]), assets = ["input-modality-detector-demo.html"], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/material/button", "//src/material/form-field", diff --git a/src/dev-app/input/BUILD.bazel b/src/dev-app/input/BUILD.bazel index 387aae9b04c7..2a8a01cd68f8 100644 --- a/src/dev-app/input/BUILD.bazel +++ b/src/dev-app/input/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "input", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,10 @@ ng_module( "input-demo.html", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/components-examples/material/form-field", "//src/material/autocomplete", "//src/material/button", @@ -22,7 +27,6 @@ ng_module( "//src/material/tabs", "//src/material/toolbar", "//src/material/tooltip", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/layout/BUILD.bazel b/src/dev-app/layout/BUILD.bazel index 026a162816aa..2af0f4fe34ce 100644 --- a/src/dev-app/layout/BUILD.bazel +++ b/src/dev-app/layout/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "layout", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":layout_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/layout", "//src/components-examples/cdk/layout", ], diff --git a/src/dev-app/list/BUILD.bazel b/src/dev-app/list/BUILD.bazel index f9e9b34860c3..da6b561e8a91 100644 --- a/src/dev-app/list/BUILD.bazel +++ b/src/dev-app/list/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "list", srcs = glob(["**/*.ts"]), assets = [ @@ -10,10 +11,13 @@ ng_module( ":list_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/router", "//src/material/button", "//src/material/icon", "//src/material/list", - "@npm//@angular/router", ], ) diff --git a/src/dev-app/live-announcer/BUILD.bazel b/src/dev-app/live-announcer/BUILD.bazel index 50ddd7322ad3..7f877ad7d12e 100644 --- a/src/dev-app/live-announcer/BUILD.bazel +++ b/src/dev-app/live-announcer/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "live-announcer", srcs = glob(["**/*.ts"]), assets = ["live-announcer-demo.html"], deps = [ + "//:node_modules/@angular/core", "//src/cdk/a11y", "//src/material/button", "//src/material/dialog", diff --git a/src/dev-app/main.ts b/src/dev-app/main.ts index 549be6b52489..f90ec3b057d5 100644 --- a/src/dev-app/main.ts +++ b/src/dev-app/main.ts @@ -11,18 +11,21 @@ import '@angular/localize/init'; import {provideHttpClient} from '@angular/common/http'; import { - importProvidersFrom, provideExperimentalZonelessChangeDetection, // tslint:disable-next-line:no-zone-dependencies -- Allow manual testing of dev-app with zones provideZoneChangeDetection, } from '@angular/core'; import {bootstrapApplication} from '@angular/platform-browser'; -import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {RouterModule} from '@angular/router'; +import {provideRouter} from '@angular/router'; import {Directionality} from '@angular/cdk/bidi'; import {FullscreenOverlayContainer, OverlayContainer} from '@angular/cdk/overlay'; -import {MAT_RIPPLE_GLOBAL_OPTIONS, provideNativeDateAdapter} from '@angular/material/core'; +import { + MAT_RIPPLE_GLOBAL_OPTIONS, + MATERIAL_ANIMATIONS, + provideNativeDateAdapter, + AnimationsConfig, +} from '@angular/material/core'; import {DevApp} from './dev-app'; import {DevAppDirectionality} from './dev-app/dev-app-directionality'; @@ -46,14 +49,15 @@ document.head.appendChild(theme); function bootstrap(): void { bootstrapApplication(DevApp, { providers: [ - importProvidersFrom( - BrowserAnimationsModule.withConfig({ - disableAnimations: !cachedAppState.animations, - }), - RouterModule.forRoot(DEV_APP_ROUTES), - ), + provideRouter(DEV_APP_ROUTES), provideNativeDateAdapter(), provideHttpClient(), + { + provide: MATERIAL_ANIMATIONS, + useValue: { + animationsDisabled: !cachedAppState.animations, + } as AnimationsConfig, + }, {provide: OverlayContainer, useClass: FullscreenOverlayContainer}, {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useExisting: DevAppRippleOptions}, {provide: Directionality, useClass: DevAppDirectionality}, diff --git a/src/dev-app/menu/BUILD.bazel b/src/dev-app/menu/BUILD.bazel index 7d58d45beb47..d49f90285623 100644 --- a/src/dev-app/menu/BUILD.bazel +++ b/src/dev-app/menu/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menu", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":menu_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/material/button", "//src/material/divider", "//src/material/icon", diff --git a/src/dev-app/menubar/BUILD.bazel b/src/dev-app/menubar/BUILD.bazel index 1bd3ff5bdb38..a8354a566d8d 100644 --- a/src/dev-app/menubar/BUILD.bazel +++ b/src/dev-app/menubar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menubar", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":mat_menubar_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/menu", "//src/material-experimental/menubar", ], diff --git a/src/dev-app/package.json b/src/dev-app/package.json new file mode 100644 index 000000000000..5a7b3449c114 --- /dev/null +++ b/src/dev-app/package.json @@ -0,0 +1,11 @@ +{ + "devDependencies": { + "@angular/cdk": "workspace:*", + "@angular/cdk-experimental": "workspace:*", + "@angular/material": "workspace:*", + "@angular/material-experimental": "workspace:*", + "@angular/components-examples": "workspace:*", + "@angular/youtube-player": "workspace:*", + "@angular/google-maps": "workspace:*" + } +} diff --git a/src/dev-app/paginator/BUILD.bazel b/src/dev-app/paginator/BUILD.bazel index ce561bf433fa..76b4b7b87774 100644 --- a/src/dev-app/paginator/BUILD.bazel +++ b/src/dev-app/paginator/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "paginator", srcs = glob(["**/*.ts"]), assets = [ @@ -10,13 +11,14 @@ ng_module( ":paginator_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/components-examples/material/paginator", "//src/material/card", "//src/material/form-field", "//src/material/input", "//src/material/paginator", "//src/material/slide-toggle", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/performance/BUILD.bazel b/src/dev-app/performance/BUILD.bazel index ffba0b8921aa..2f07fb0c9409 100644 --- a/src/dev-app/performance/BUILD.bazel +++ b/src/dev-app/performance/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "performance", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":performance_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/divider", "//src/material/form-field", @@ -18,7 +21,6 @@ ng_module( "//src/material/paginator", "//src/material/select", "//src/material/table", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/platform/BUILD.bazel b/src/dev-app/platform/BUILD.bazel index 03c79c48b77a..1504a7d42b71 100644 --- a/src/dev-app/platform/BUILD.bazel +++ b/src/dev-app/platform/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "platform", srcs = glob(["**/*.ts"]), assets = ["platform-demo.html"], deps = [ + "//:node_modules/@angular/core", "//src/cdk/platform", ], ) diff --git a/src/dev-app/esbuild.config.mjs b/src/dev-app/polyfills.ts similarity index 72% rename from src/dev-app/esbuild.config.mjs rename to src/dev-app/polyfills.ts index 200fac9e03d5..4cfb72d21850 100644 --- a/src/dev-app/esbuild.config.mjs +++ b/src/dev-app/polyfills.ts @@ -6,7 +6,5 @@ * found in the LICENSE file at https://angular.dev/license */ -export default { - resolveExtensions: ['.js'], - format: 'esm', -}; +// Load `$localize` for examples using it. +import '@angular/localize/init'; diff --git a/src/dev-app/popover-edit/BUILD.bazel b/src/dev-app/popover-edit/BUILD.bazel index 5f171063e383..04cd5541893e 100644 --- a/src/dev-app/popover-edit/BUILD.bazel +++ b/src/dev-app/popover-edit/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "popover-edit", srcs = glob(["**/*.ts"]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/components-examples/cdk-experimental/popover-edit", "//src/components-examples/material-experimental/popover-edit", "//src/dev-app/example", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/portal/BUILD.bazel b/src/dev-app/portal/BUILD.bazel index 350838da39e0..ff754b0701c9 100644 --- a/src/dev-app/portal/BUILD.bazel +++ b/src/dev-app/portal/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "portal", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":portal_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/cdk/portal", ], ) diff --git a/src/dev-app/progress-bar/BUILD.bazel b/src/dev-app/progress-bar/BUILD.bazel index 963c44c947a8..e2c88dfd08ff 100644 --- a/src/dev-app/progress-bar/BUILD.bazel +++ b/src/dev-app/progress-bar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "progress-bar", srcs = glob(["**/*.ts"]), assets = [ @@ -10,10 +11,11 @@ ng_module( ":progress_bar_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/button-toggle", "//src/material/progress-bar", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/progress-spinner/BUILD.bazel b/src/dev-app/progress-spinner/BUILD.bazel index 5d84aa093181..82e0a4b4a873 100644 --- a/src/dev-app/progress-spinner/BUILD.bazel +++ b/src/dev-app/progress-spinner/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "progress-spinner", srcs = glob(["**/*.ts"]), assets = [ @@ -10,11 +11,12 @@ ng_module( ":progress_spinner_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/button-toggle", "//src/material/checkbox", "//src/material/progress-spinner", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/radio/BUILD.bazel b/src/dev-app/radio/BUILD.bazel index e820d20228fb..16bd5b6a96ac 100644 --- a/src/dev-app/radio/BUILD.bazel +++ b/src/dev-app/radio/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "radio", srcs = glob(["**/*.ts"]), assets = [ @@ -10,11 +11,12 @@ ng_module( ":radio_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/checkbox", "//src/material/radio", "//src/material/tooltip", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/ripple/BUILD.bazel b/src/dev-app/ripple/BUILD.bazel index 19a1c0a024af..0ea17d5ba16e 100644 --- a/src/dev-app/ripple/BUILD.bazel +++ b/src/dev-app/ripple/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "ripple", srcs = glob(["**/*.ts"]), assets = [ @@ -10,13 +11,14 @@ ng_module( ":ripple_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/components-examples/material/core", "//src/dev-app/example", "//src/material/button", "//src/material/checkbox", "//src/material/icon", "//src/material/input", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/screen-type/BUILD.bazel b/src/dev-app/screen-type/BUILD.bazel index e555616c23ad..4e389198dc14 100644 --- a/src/dev-app/screen-type/BUILD.bazel +++ b/src/dev-app/screen-type/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "screen-type", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":screen_type_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/layout", "//src/material/grid-list", "//src/material/icon", diff --git a/src/dev-app/select/BUILD.bazel b/src/dev-app/select/BUILD.bazel index ba99ea4e37ce..c357fc8ef107 100644 --- a/src/dev-app/select/BUILD.bazel +++ b/src/dev-app/select/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "select", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,9 @@ ng_module( ":select_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/card", "//src/material/checkbox", @@ -17,7 +21,6 @@ ng_module( "//src/material/icon", "//src/material/input", "//src/material/select", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/selection/BUILD.bazel b/src/dev-app/selection/BUILD.bazel index 784ca04dbf1d..d348c4d78603 100644 --- a/src/dev-app/selection/BUILD.bazel +++ b/src/dev-app/selection/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "selection", srcs = glob(["**/*.ts"]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/components-examples/cdk-experimental/selection", "//src/components-examples/material-experimental/selection", "//src/dev-app/example", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/sidenav/BUILD.bazel b/src/dev-app/sidenav/BUILD.bazel index f71f08be5e5b..1b31f92c6d7b 100644 --- a/src/dev-app/sidenav/BUILD.bazel +++ b/src/dev-app/sidenav/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "sidenav", srcs = glob(["**/*.ts"]), assets = [ @@ -10,11 +11,12 @@ ng_module( ":sidenav_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/checkbox", "//src/material/sidenav", "//src/material/toolbar", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/slide-toggle/BUILD.bazel b/src/dev-app/slide-toggle/BUILD.bazel index f94359a79da1..d775d9f30e9c 100644 --- a/src/dev-app/slide-toggle/BUILD.bazel +++ b/src/dev-app/slide-toggle/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "slide-toggle", srcs = glob(["**/*.ts"]), assets = [ @@ -10,9 +11,10 @@ ng_module( ":slide_toggle_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/slide-toggle", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/slider/BUILD.bazel b/src/dev-app/slider/BUILD.bazel index c85f7bbf7387..0d69d1ec7865 100644 --- a/src/dev-app/slider/BUILD.bazel +++ b/src/dev-app/slider/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "slider", srcs = glob(["**/*.ts"]), assets = [ @@ -10,13 +11,14 @@ ng_module( ":slider_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/button-toggle", "//src/material/checkbox", "//src/material/dialog", "//src/material/slider", "//src/material/tabs", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/snack-bar/BUILD.bazel b/src/dev-app/snack-bar/BUILD.bazel index a7244cf7e545..339da5f375f2 100644 --- a/src/dev-app/snack-bar/BUILD.bazel +++ b/src/dev-app/snack-bar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "snack-bar", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,8 @@ ng_module( ":snack_bar_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/bidi", "//src/material/button", "//src/material/checkbox", @@ -17,7 +20,6 @@ ng_module( "//src/material/input", "//src/material/select", "//src/material/snack-bar", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/stepper/BUILD.bazel b/src/dev-app/stepper/BUILD.bazel index 9a76909bd5e2..412bc3d7c24c 100644 --- a/src/dev-app/stepper/BUILD.bazel +++ b/src/dev-app/stepper/BUILD.bazel @@ -1,12 +1,14 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "stepper", srcs = glob(["**/*.ts"]), assets = ["stepper-demo.html"], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/button", "//src/material/checkbox", "//src/material/core", @@ -14,6 +16,5 @@ ng_module( "//src/material/input", "//src/material/select", "//src/material/stepper", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/table-scroll-container/BUILD.bazel b/src/dev-app/table-scroll-container/BUILD.bazel index 51e32a8b4d7b..7ba16774f85b 100644 --- a/src/dev-app/table-scroll-container/BUILD.bazel +++ b/src/dev-app/table-scroll-container/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table-scroll-container", srcs = glob(["**/*.ts"]), assets = [ @@ -10,12 +11,12 @@ ng_module( ":table_scroll_container_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src/cdk-experimental/table-scroll-container", "//src/material/button", "//src/material/button-toggle", "//src/material/table", - "@npm//@angular/common", - "@npm//@angular/core", ], ) diff --git a/src/dev-app/table/BUILD.bazel b/src/dev-app/table/BUILD.bazel index b4c2202587a1..9331821cc831 100644 --- a/src/dev-app/table/BUILD.bazel +++ b/src/dev-app/table/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "table", srcs = glob(["**/*.ts"]), assets = ["table-demo.html"], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/cdk/table", "//src/components-examples/material/table", "//src/dev-app/example", diff --git a/src/dev-app/tabs/BUILD.bazel b/src/dev-app/tabs/BUILD.bazel index d36d4aac78da..a0fd2474552e 100644 --- a/src/dev-app/tabs/BUILD.bazel +++ b/src/dev-app/tabs/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tabs", srcs = glob(["**/*.ts"]), assets = ["tabs-demo.html"], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/material/tabs", "//src/dev-app/example", "//src/material/tabs", diff --git a/src/dev-app/theme/BUILD.bazel b/src/dev-app/theme/BUILD.bazel index 77966b6cc8c9..22d83499e0e9 100644 --- a/src/dev-app/theme/BUILD.bazel +++ b/src/dev-app/theme/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "theme", srcs = glob(["**/*.ts"]), assets = [ @@ -10,11 +11,12 @@ ng_module( ":theme_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/dev-app/dev-app", "//src/material/card", "//src/material/expansion", "//src/material/icon", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/timepicker/BUILD.bazel b/src/dev-app/timepicker/BUILD.bazel index 7b8dabbbe47a..04162ea264c6 100644 --- a/src/dev-app/timepicker/BUILD.bazel +++ b/src/dev-app/timepicker/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "timepicker", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,10 @@ ng_module( ":timepicker_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/material/button", "//src/material/card", "//src/material/core", diff --git a/src/dev-app/toolbar/BUILD.bazel b/src/dev-app/toolbar/BUILD.bazel index 8811260ddf13..0618b2e07a1c 100644 --- a/src/dev-app/toolbar/BUILD.bazel +++ b/src/dev-app/toolbar/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "toolbar", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,7 @@ ng_module( ":toolbar_demo_scss", ], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/material/toolbar", "//src/material/button", "//src/material/icon", diff --git a/src/dev-app/tooltip/BUILD.bazel b/src/dev-app/tooltip/BUILD.bazel index d1b1cc88465a..2d6f603bb9ec 100644 --- a/src/dev-app/tooltip/BUILD.bazel +++ b/src/dev-app/tooltip/BUILD.bazel @@ -1,12 +1,13 @@ -load("//tools:defaults.bzl", "ng_module") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tooltip", srcs = glob(["**/*.ts"]), assets = ["tooltip-demo.html"], deps = [ + "//:node_modules/@angular/core", "//src/components-examples/material/tooltip", "//src/dev-app/example", ], diff --git a/src/dev-app/tree/BUILD.bazel b/src/dev-app/tree/BUILD.bazel index ededda0a52b3..42e83fa28a95 100644 --- a/src/dev-app/tree/BUILD.bazel +++ b/src/dev-app/tree/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "tree", srcs = glob(["**/*.ts"]), assets = glob([ @@ -11,6 +12,8 @@ ng_module( ":tree_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/tree", "//src/components-examples/cdk/tree", "//src/components-examples/material/tree", diff --git a/src/dev-app/typography/BUILD.bazel b/src/dev-app/typography/BUILD.bazel index 1bce587e9e38..b1a5f5b8fdbc 100644 --- a/src/dev-app/typography/BUILD.bazel +++ b/src/dev-app/typography/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "typography", srcs = glob(["**/*.ts"]), assets = [ @@ -10,8 +11,9 @@ ng_module( ":typography_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/material/checkbox", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/virtual-scroll/BUILD.bazel b/src/dev-app/virtual-scroll/BUILD.bazel index a421be855ea9..6be4c82703c6 100644 --- a/src/dev-app/virtual-scroll/BUILD.bazel +++ b/src/dev-app/virtual-scroll/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "virtual-scroll", srcs = glob(["**/*.ts"]), assets = [ @@ -10,6 +11,10 @@ ng_module( ":virtual_scroll_demo_scss", ], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk-experimental/scrolling", "//src/cdk/scrolling", "//src/components-examples/cdk/scrolling", @@ -17,7 +22,6 @@ ng_module( "//src/material/form-field", "//src/material/input", "//src/material/select", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/youtube-player/BUILD.bazel b/src/dev-app/youtube-player/BUILD.bazel index 956ed6cd4248..bc4120ca5616 100644 --- a/src/dev-app/youtube-player/BUILD.bazel +++ b/src/dev-app/youtube-player/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "youtube-player", srcs = glob(["**/*.ts"]), assets = [ @@ -10,11 +11,13 @@ ng_module( ":youtube_player_demo_scss", ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@types/youtube", "//src/material/button", "//src/material/checkbox", "//src/material/radio", "//src/youtube-player", - "@npm//@angular/forms", ], ) diff --git a/src/dev-app/youtube-player/youtube-player-demo.ts b/src/dev-app/youtube-player/youtube-player-demo.ts index 605fd0712def..502f260832c6 100644 --- a/src/dev-app/youtube-player/youtube-player-demo.ts +++ b/src/dev-app/youtube-player/youtube-player-demo.ts @@ -6,6 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ +/// + import { AfterViewInit, ChangeDetectionStrategy, diff --git a/src/e2e-app/BUILD.bazel b/src/e2e-app/BUILD.bazel index 0139fd7dcbb5..d18dc771e6a6 100644 --- a/src/e2e-app/BUILD.bazel +++ b/src/e2e-app/BUILD.bazel @@ -1,13 +1,16 @@ -load("//tools:defaults.bzl", "devmode_esbuild", "esbuild_config", "http_server", "ng_module", "sass_binary") -load("//src/components-examples:config.bzl", "ALL_EXAMPLES") -load("//tools/angular:index.bzl", "LINKER_PROCESSED_FW_PACKAGES") +load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild") +load("@npm2//:defs.bzl", "npm_link_all_packages") +load("//tools:defaults.bzl", "http_server", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) +npm_link_all_packages() + # List of dependencies that are referenced in the `index.html` file. devserverIndexHtmlDependencies = [ - "@npm//zone.js", - "@npm//kagekiri", + "//:node_modules/zone.js", + "//:node_modules/kagekiri", "//src/material/prebuilt-themes:azure-blue", ":index.html", ":theme", @@ -19,7 +22,7 @@ exports_files([ "devserver-configure.js", ]) -ng_module( +ng_project( name = "e2e-app", testonly = True, srcs = glob( @@ -33,6 +36,11 @@ ng_module( exclude = ["index.html"], ), deps = [ + "//:node_modules/@angular/animations", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/@angular/router", "//src/cdk-experimental/scrolling", "//src/cdk/overlay", "//src/cdk/scrolling", @@ -40,11 +48,6 @@ ng_module( "//src/components-examples/private", "//src/material/core", "//src/material/slider", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//@angular/router", ], ) @@ -54,31 +57,29 @@ sass_binary( deps = [ "//src/material:sass_lib", "//src/material-experimental:sass_lib", - "//src/material/core:theming_scss_lib", ], ) -esbuild_config( - name = "esbuild_config", - testonly = True, - config_file = "esbuild.config.mjs", -) - -devmode_esbuild( +esbuild( name = "bundles", testonly = True, - config = ":esbuild_config", - entry_points = [":main.ts"] + ["%s:index.ts" % e for e in ALL_EXAMPLES], + srcs = [ + ":e2e-app", + "//:node_modules/tslib", + "//src:build-tsconfig", + ], + bundle = True, + config = "//src:esbuild-linked-config", + entry_point = ":main.js", + format = "esm", + metafile = True, + output_dir = True, platform = "browser", + sourcemap = "external", splitting = True, - # We cannot use `ES2017` or higher as that would result in `async/await` not being downleveled. + # We cannot use `ES2017` or high as that would result in `async/await` not being downleveled. # ZoneJS needs to be able to intercept these as otherwise change detection would not work properly. target = "es2016", - # Note: We add all linker-processed FW packages as dependencies here so that ESBuild will - # map all framework packages to their linker-processed bundles from `tools/angular`. - deps = LINKER_PROCESSED_FW_PACKAGES + [ - ":e2e-app", - ], ) http_server( @@ -86,7 +87,7 @@ http_server( testonly = True, srcs = devserverIndexHtmlDependencies, additional_root_paths = [ - "npm/node_modules", + "angular_material/", ], tags = ["manual"], deps = [ diff --git a/src/e2e-app/index.html b/src/e2e-app/index.html index 32b525b4f1c0..3228061b1234 100644 --- a/src/e2e-app/index.html +++ b/src/e2e-app/index.html @@ -1,22 +1,25 @@ - - - - Angular Material - + + + + Angular Material + - - - - - - - Loading... - I am a sibling! + + + + + + + Loading... + I am a sibling! - - - - + + + + diff --git a/src/e2e-app/package.json b/src/e2e-app/package.json new file mode 100644 index 000000000000..264ebb260585 --- /dev/null +++ b/src/e2e-app/package.json @@ -0,0 +1,8 @@ +{ + "devDependencies": { + "@angular/cdk": "workspace:*", + "@angular/cdk-experimental": "workspace:*", + "@angular/material": "workspace:*", + "@angular/components-examples": "workspace:*" + } +} diff --git a/src/esbuild-linked.config.mjs b/src/esbuild-linked.config.mjs new file mode 100644 index 000000000000..2c4996537bf6 --- /dev/null +++ b/src/esbuild-linked.config.mjs @@ -0,0 +1,13 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +export default { + conditions: ['ng-linked', 'module'], + tsconfig: import.meta.dirname + '/bazel-tsconfig-build.json', + resolveExtensions: ['.js'], +}; diff --git a/src/google-maps/BUILD.bazel b/src/google-maps/BUILD.bazel index a9eee1143f64..6d8066f0cfb9 100644 --- a/src/google-maps/BUILD.bazel +++ b/src/google-maps/BUILD.bazel @@ -1,8 +1,21 @@ -load("//tools:defaults.bzl", "ng_module", "ng_package", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_package", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") +load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") package(default_visibility = ["//visibility:public"]) -ng_module( +rules_js_tsconfig( + name = "tsconfig-test", + src = "tsconfig-test.json", + deps = [ + "//:node_modules/@types/google.maps", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + "//src:test-tsconfig", + ], +) + +ng_project( name = "google-maps", srcs = glob( ["**/*.ts"], @@ -11,21 +24,27 @@ ng_module( ], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@types/google.maps", + "//:node_modules/rxjs", "//src:dev_mode_types", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@types/google.maps", - "@npm//rxjs", ], ) # Creates the @angular/google-maps package published to npm ng_package( name = "npm_package", + package_name = "@angular/google-maps", srcs = ["package.json"], nested_packages = ["//src/google-maps/schematics:npm_package"], tags = ["release-package"], - deps = [":google-maps"], + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [":google-maps_legacy"], ) filegroup( @@ -33,16 +52,19 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), + tsconfig = ":tsconfig-test", deps = [ ":google-maps", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/google-maps/testing", - "@npm//@angular/platform-browser", ], ) diff --git a/src/google-maps/map-directions-renderer/map-directions-service.spec.ts b/src/google-maps/map-directions-renderer/map-directions-service.spec.ts index ac9765d03506..aab2e7b48ce6 100644 --- a/src/google-maps/map-directions-renderer/map-directions-service.spec.ts +++ b/src/google-maps/map-directions-renderer/map-directions-service.spec.ts @@ -57,7 +57,7 @@ describe('MapDirectionsService', () => { destination: 'work', travelMode: 'BICYCLING' as google.maps.TravelMode, }) - .subscribe(response => { + .subscribe((response: MapDirectionsResponse) => { expect(response).toEqual({result, status} as MapDirectionsResponse); }); }); diff --git a/src/google-maps/map-geocoder/map-geocoder.spec.ts b/src/google-maps/map-geocoder/map-geocoder.spec.ts index 3bc234d2dc09..c93d1cd56e16 100644 --- a/src/google-maps/map-geocoder/map-geocoder.spec.ts +++ b/src/google-maps/map-geocoder/map-geocoder.spec.ts @@ -34,7 +34,7 @@ describe('MapGeocoder', () => { return Promise.resolve({results}); }); - geocoder.geocode({region: 'Europe'}).subscribe(response => { + geocoder.geocode({region: 'Europe'}).subscribe((response: MapGeocoderResponse) => { expect(response).toEqual({results, status} as MapGeocoderResponse); }); }); diff --git a/src/google-maps/package.json b/src/google-maps/package.json index 5f38bff98174..bef9fabe52d9 100644 --- a/src/google-maps/package.json +++ b/src/google-maps/package.json @@ -18,12 +18,12 @@ "homepage": "https://github.com/angular/components/tree/main/src/google-maps#readme", "dependencies": { "@types/google.maps": "^3.54.10", - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "0.0.0-NG", "@angular/common": "0.0.0-NG", - "rxjs": "0.0.0-RXJS" + "rxjs": "^6.5.3 || ^7.4.0" }, "sideEffects": false, "schematics": "./schematics/collection.json", diff --git a/src/google-maps/schematics/BUILD.bazel b/src/google-maps/schematics/BUILD.bazel index 72c95a675a7d..c162b755b1e5 100644 --- a/src/google-maps/schematics/BUILD.bazel +++ b/src/google-maps/schematics/BUILD.bazel @@ -1,26 +1,33 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "pkg_npm", "ts_library") +load("//tools:defaults.bzl", "pkg_npm") +load("//tools:defaults2.bzl", "ts_project") +load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") package(default_visibility = ["//visibility:public"]) copy_to_bin( name = "schematics_assets", - srcs = glob(["**/*.json"]), + srcs = glob( + ["**/*.json"], + exclude = ["tsconfig.json"], + ), +) + +rules_js_tsconfig( + name = "tsconfig", + src = "tsconfig.json", ) -ts_library( +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + tsconfig = ":tsconfig", deps = [ - "@npm//@angular-devkit/schematics", - "@npm//@types/node", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@types/node", ], ) @@ -30,6 +37,6 @@ pkg_npm( deps = [ ":schematics", ":schematics_assets", - "//src/google-maps/schematics/ng-update:ng_update_index", + "//src/google-maps/schematics/ng-update", ], ) diff --git a/src/google-maps/schematics/migration.json b/src/google-maps/schematics/migration.json index 45c93051dfc9..6702dc7cbee2 100644 --- a/src/google-maps/schematics/migration.json +++ b/src/google-maps/schematics/migration.json @@ -3,7 +3,7 @@ "migration-v20": { "version": "20.0.0-0", "description": "Updates the Angular Google Maps package to v20", - "factory": "./ng-update/index_bundled#updateToV20" + "factory": "./ng-update/index#updateToV20" } } } diff --git a/src/google-maps/schematics/ng-update/BUILD.bazel b/src/google-maps/schematics/ng-update/BUILD.bazel index fa96cad96ab5..2ba08b29cd45 100644 --- a/src/google-maps/schematics/ng-update/BUILD.bazel +++ b/src/google-maps/schematics/ng-update/BUILD.bazel @@ -1,40 +1,18 @@ -load("//tools:defaults.bzl", "esbuild", "ts_library") +load("//tools:defaults2.bzl", "ts_project") -## THIS ONE IS ESM -# By default everything is ESM -# ESBUild needs ESM for bundling. Cannot reliably use CJS as input. -ts_library( - name = "ng_update_lib", +ts_project( + name = "ng-update", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", + tsconfig = "//src/google-maps/schematics:tsconfig", + visibility = ["//src/google-maps/schematics:__pkg__"], deps = [ - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@schematics/angular", - "@npm//@types/node", - "@npm//typescript", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/node", + "//:node_modules/typescript", ], ) - -esbuild( - name = "ng_update_index", - entry_point = ":index.ts", - external = [ - "@schematics/angular", - "@angular-devkit/schematics", - "@angular-devkit/core", - "typescript", - ], - # TODO: Switch to ESM when Angular CLI supports it. - format = "cjs", - output = "index_bundled.js", - platform = "node", - target = "es2015", - visibility = ["//src/google-maps/schematics:__pkg__"], - deps = [":ng_update_lib"], -) diff --git a/src/google-maps/schematics/ng-update/tsconfig.json b/src/google-maps/schematics/ng-update/tsconfig.json deleted file mode 100644 index 78f1753e68b0..000000000000 --- a/src/google-maps/schematics/ng-update/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "module": "esnext", - "target": "es2015" - } -} diff --git a/src/google-maps/schematics/tsconfig.json b/src/google-maps/schematics/tsconfig.json new file mode 100644 index 000000000000..41932c86a248 --- /dev/null +++ b/src/google-maps/schematics/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "node10", + "strict": true, + "sourceMap": true, + "declaration": true + } +} diff --git a/src/google-maps/testing/BUILD.bazel b/src/google-maps/testing/BUILD.bazel index 415807b6a3b6..42ddb4e8ce18 100644 --- a/src/google-maps/testing/BUILD.bazel +++ b/src/google-maps/testing/BUILD.bazel @@ -1,14 +1,15 @@ -load("//tools:defaults.bzl", "ts_library") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testing", testonly = True, srcs = glob(["**/*.ts"]), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@types/google.maps", + "//:node_modules/@types/jasmine", "//src/google-maps", - "@npm//@types/google.maps", - "@npm//@types/jasmine", ], ) diff --git a/src/google-maps/tsconfig-test.json b/src/google-maps/tsconfig-test.json new file mode 100644 index 000000000000..e787674db16b --- /dev/null +++ b/src/google-maps/tsconfig-test.json @@ -0,0 +1,6 @@ +{ + "extends": "../bazel-tsconfig-test.json", + "compilerOptions": { + "types": ["google.maps", "jasmine", "node"] + } +} diff --git a/src/material-date-fns-adapter/BUILD.bazel b/src/material-date-fns-adapter/BUILD.bazel index 308681f7b51d..8cbeb8a1e95e 100644 --- a/src/material-date-fns-adapter/BUILD.bazel +++ b/src/material-date-fns-adapter/BUILD.bazel @@ -1,31 +1,34 @@ -load("//tools:defaults.bzl", "ng_module", "ng_package", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_package", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "material-date-fns-adapter", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/date-fns", "//src:dev_mode_types", "//src/material/core", - "@npm//@angular/core", - "@npm//date-fns", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":material-date-fns-adapter", + "//:node_modules/@angular/core", + "//:node_modules/date-fns", "//src/material/core", - "@npm//date-fns", ], ) @@ -38,8 +41,14 @@ ng_web_test_suite( ng_package( name = "npm_package", + package_name = "@angular/material-date-fns-adapter", srcs = ["package.json"], nested_packages = ["//src/material-date-fns-adapter/schematics:npm_package"], tags = ["release-package"], - deps = [":material-date-fns-adapter"], + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [":material-date-fns-adapter_legacy"], ) diff --git a/src/material-date-fns-adapter/package.json b/src/material-date-fns-adapter/package.json index 56a35b9b0652..34e74c8c847e 100644 --- a/src/material-date-fns-adapter/package.json +++ b/src/material-date-fns-adapter/package.json @@ -16,8 +16,11 @@ "@angular/core": "0.0.0-NG", "date-fns": ">2.20.0 <5.0" }, + "devDependencies": { + "@angular/material": "workspace:*" + }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "ng-update": { "packageGroup": "NG_UPDATE_PACKAGE_GROUP" diff --git a/src/material-date-fns-adapter/schematics/BUILD.bazel b/src/material-date-fns-adapter/schematics/BUILD.bazel index a412cee88827..33a61c5449e0 100644 --- a/src/material-date-fns-adapter/schematics/BUILD.bazel +++ b/src/material-date-fns-adapter/schematics/BUILD.bazel @@ -1,26 +1,28 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "pkg_npm", "ts_library") +load("//tools:defaults.bzl", "pkg_npm") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) copy_to_bin( name = "schematics_assets", - srcs = glob(["**/*.json"]), + srcs = glob( + ["**/*.json"], + exclude = ["tsconfig.json"], + ), ) -ts_library( +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + tsconfig = "tsconfig.json", deps = [ - "@npm//@angular-devkit/schematics", - "@npm//@types/node", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@angular/core", + "//:node_modules/@types/node", ], ) diff --git a/src/material-date-fns-adapter/schematics/tsconfig.json b/src/material-date-fns-adapter/schematics/tsconfig.json new file mode 100644 index 000000000000..41932c86a248 --- /dev/null +++ b/src/material-date-fns-adapter/schematics/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "node10", + "strict": true, + "sourceMap": true, + "declaration": true + } +} diff --git a/src/material-experimental/BUILD.bazel b/src/material-experimental/BUILD.bazel index 70a726729d7f..e18cdc1dbcd7 100644 --- a/src/material-experimental/BUILD.bazel +++ b/src/material-experimental/BUILD.bazel @@ -6,9 +6,13 @@ load( ) load("//tools:defaults.bzl", "ng_package", "sass_library") load("//tools:defaults2.bzl", "ts_project") +load("//tools/bazel:legacy_target.bzl", "get_legacy_label") +load("@npm2//:defs.bzl", "npm_link_all_packages") package(default_visibility = ["//visibility:public"]) +npm_link_all_packages() + ts_project( name = "material-experimental", srcs = glob( @@ -33,10 +37,21 @@ sass_library( ng_package( name = "npm_package", + package_name = "@angular/material-experimental", srcs = [ "package.json", ":sass_lib", ], + package_deps = [ + ":node_modules/@angular/material", + ":node_modules/@angular/cdk", + ":node_modules/@angular/cdk-experimental", + ], tags = ["release-package"], - deps = MATERIAL_EXPERIMENTAL_TARGETS + MATERIAL_EXPERIMENTAL_TESTING_TARGETS, + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [get_legacy_label(t) for t in MATERIAL_EXPERIMENTAL_TARGETS + MATERIAL_EXPERIMENTAL_TESTING_TARGETS], ) diff --git a/src/material-experimental/column-resize/BUILD.bazel b/src/material-experimental/column-resize/BUILD.bazel index 9ba3b4bed00d..0c7affa8e1e9 100644 --- a/src/material-experimental/column-resize/BUILD.bazel +++ b/src/material-experimental/column-resize/BUILD.bazel @@ -1,19 +1,21 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite", "sass_library") +load("//tools:defaults.bzl", "ng_web_test_suite", "sass_library") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "column-resize", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src/cdk-experimental/column-resize", "//src/cdk/overlay", "//src/cdk/table", "//src/material/table", - "@npm//@angular/core", ], ) @@ -25,11 +27,14 @@ sass_library( ], ) -ng_test_library( +ts_project( name = "column_resize_test_sources", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":column-resize", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk-experimental/column-resize", "//src/cdk/bidi", "//src/cdk/collections", @@ -37,7 +42,6 @@ ng_test_library( "//src/cdk/overlay", "//src/cdk/testing/private", "//src/material/table", - "@npm//rxjs", ], ) diff --git a/src/material-experimental/menubar/BUILD.bazel b/src/material-experimental/menubar/BUILD.bazel index a4824bb574e0..f839f7caf25c 100644 --- a/src/material-experimental/menubar/BUILD.bazel +++ b/src/material-experimental/menubar/BUILD.bazel @@ -1,15 +1,14 @@ load( "//tools:defaults.bzl", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "menubar", srcs = glob( ["**/*.ts"], @@ -20,8 +19,8 @@ ng_module( ":menubar-item.css", ] + glob(["**/*.html"]), deps = [ + "//:node_modules/@angular/core", "//src/cdk/menu", - "@npm//@angular/core", ], ) @@ -40,18 +39,20 @@ sass_binary( src = "menubar-item.scss", ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":menubar", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/keycodes", "//src/cdk/menu", "//src/cdk/testing/private", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material-experimental/package.json b/src/material-experimental/package.json index c45703c55ce7..af3e3355853c 100644 --- a/src/material-experimental/package.json +++ b/src/material-experimental/package.json @@ -22,10 +22,16 @@ "@angular/common": "0.0.0-NG", "@angular/forms": "0.0.0-NG", "@angular/platform-browser": "0.0.0-NG", - "@angular/material": "0.0.0-PLACEHOLDER" + "@angular/material": "0.0.0-PLACEHOLDER", + "@angular/cdk-experimental": "0.0.0-PLACEHOLDER" + }, + "devDependencies": { + "@angular/material": "workspace:*", + "@angular/cdk": "workspace:*", + "@angular/cdk-experimental": "workspace:*" }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "ng-update": { "packageGroup": "NG_UPDATE_PACKAGE_GROUP" diff --git a/src/material-experimental/popover-edit/BUILD.bazel b/src/material-experimental/popover-edit/BUILD.bazel index c9e1a637f656..59de3c89cc5e 100644 --- a/src/material-experimental/popover-edit/BUILD.bazel +++ b/src/material-experimental/popover-edit/BUILD.bazel @@ -1,24 +1,23 @@ load( "//tools:defaults.bzl", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "popover-edit", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk-experimental/popover-edit", "//src/material/core", - "@npm//@angular/core", - "@npm//@angular/forms", ], ) @@ -31,23 +30,24 @@ sass_library( ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":popover-edit", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk-experimental/popover-edit", "//src/cdk/collections", "//src/cdk/keycodes", "//src/cdk/overlay", "//src/cdk/testing/private", "//src/material/table", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//rxjs", ], ) diff --git a/src/material-experimental/selection/BUILD.bazel b/src/material-experimental/selection/BUILD.bazel index e66b20c0fe6b..7d632b0a47d3 100644 --- a/src/material-experimental/selection/BUILD.bazel +++ b/src/material-experimental/selection/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_module", "sass_binary", "sass_library") +load("//tools:defaults.bzl", "sass_binary", "sass_library") +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "selection", srcs = glob( ["**/*.ts"], @@ -10,10 +11,11 @@ ng_module( ), assets = [":selection_column_scss"], deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", "//src/cdk-experimental/selection", "//src/material/checkbox", "//src/material/table", - "@npm//@angular/core", ], ) diff --git a/src/material-luxon-adapter/BUILD.bazel b/src/material-luxon-adapter/BUILD.bazel index 65e855aa2c1e..1678a3e52f7e 100644 --- a/src/material-luxon-adapter/BUILD.bazel +++ b/src/material-luxon-adapter/BUILD.bazel @@ -1,33 +1,36 @@ -load("//tools:defaults.bzl", "ng_module", "ng_package", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_package", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "material-luxon-adapter", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@types/luxon", + "//:node_modules/luxon", "//src:dev_mode_types", "//src/material/core", - "@npm//@angular/core", - "@npm//@types/luxon", - "@npm//luxon", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":material-luxon-adapter", + "//:node_modules/@angular/core", + "//:node_modules/@types/luxon", + "//:node_modules/luxon", "//src/material/core", - "@npm//@types/luxon", - "@npm//luxon", ], ) @@ -40,8 +43,14 @@ ng_web_test_suite( ng_package( name = "npm_package", + package_name = "@angular/material-luxon-adapter", srcs = ["package.json"], nested_packages = ["//src/material-luxon-adapter/schematics:npm_package"], tags = ["release-package"], - deps = [":material-luxon-adapter"], + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [":material-luxon-adapter_legacy"], ) diff --git a/src/material-luxon-adapter/package.json b/src/material-luxon-adapter/package.json index 633b572ed8ea..d75bd833c4a2 100644 --- a/src/material-luxon-adapter/package.json +++ b/src/material-luxon-adapter/package.json @@ -16,8 +16,11 @@ "@angular/core": "0.0.0-NG", "luxon": "^3.0.0" }, + "devDependencies": { + "@angular/material": "workspace:*" + }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "ng-update": { "packageGroup": "NG_UPDATE_PACKAGE_GROUP" diff --git a/src/material-luxon-adapter/schematics/BUILD.bazel b/src/material-luxon-adapter/schematics/BUILD.bazel index aaa2c12aa7dc..eb54fb0cd8e8 100644 --- a/src/material-luxon-adapter/schematics/BUILD.bazel +++ b/src/material-luxon-adapter/schematics/BUILD.bazel @@ -1,26 +1,27 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "pkg_npm", "ts_library") +load("//tools:defaults.bzl", "pkg_npm") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) copy_to_bin( name = "schematics_assets", - srcs = glob(["**/*.json"]), + srcs = glob( + ["**/*.json"], + exclude = ["tsconfig.json"], + ), ) -ts_library( +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + tsconfig = "tsconfig.json", deps = [ - "@npm//@angular-devkit/schematics", - "@npm//@types/node", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@types/node", ], ) diff --git a/src/material-luxon-adapter/schematics/tsconfig.json b/src/material-luxon-adapter/schematics/tsconfig.json new file mode 100644 index 000000000000..41932c86a248 --- /dev/null +++ b/src/material-luxon-adapter/schematics/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "node10", + "strict": true, + "sourceMap": true, + "declaration": true + } +} diff --git a/src/material-moment-adapter/BUILD.bazel b/src/material-moment-adapter/BUILD.bazel index b70191d45752..a6d0bbb3a12d 100644 --- a/src/material-moment-adapter/BUILD.bazel +++ b/src/material-moment-adapter/BUILD.bazel @@ -1,32 +1,35 @@ -load("//tools:defaults.bzl", "ng_module", "ng_package", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_package", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "material-moment-adapter", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", + "//:node_modules/moment", "//src:dev_mode_types", "//src/material/core", - "@npm//@angular/core", - "@npm//moment", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":material-moment-adapter", + "//:node_modules/@angular/core", + "//:node_modules/moment", "//src/material/core", "//src/material/testing", - "@npm//moment", ], ) @@ -39,8 +42,14 @@ ng_web_test_suite( ng_package( name = "npm_package", + package_name = "@angular/material-moment-adapter", srcs = ["package.json"], nested_packages = ["//src/material-moment-adapter/schematics:npm_package"], tags = ["release-package"], - deps = [":material-moment-adapter"], + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [":material-moment-adapter_legacy"], ) diff --git a/src/material-moment-adapter/package.json b/src/material-moment-adapter/package.json index db50144ef84c..1b95147e205b 100644 --- a/src/material-moment-adapter/package.json +++ b/src/material-moment-adapter/package.json @@ -16,8 +16,11 @@ "@angular/core": "0.0.0-NG", "moment": "^2.18.1" }, + "devDependencies": { + "@angular/material": "workspace:*" + }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" }, "ng-update": { "packageGroup": "NG_UPDATE_PACKAGE_GROUP" diff --git a/src/material-moment-adapter/schematics/BUILD.bazel b/src/material-moment-adapter/schematics/BUILD.bazel index 0724674f6cf8..b6b0336a21a4 100644 --- a/src/material-moment-adapter/schematics/BUILD.bazel +++ b/src/material-moment-adapter/schematics/BUILD.bazel @@ -1,26 +1,27 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "pkg_npm", "ts_library") +load("//tools:defaults.bzl", "pkg_npm") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) copy_to_bin( name = "schematics_assets", - srcs = glob(["**/*.json"]), + srcs = glob( + ["**/*.json"], + exclude = ["tsconfig.json"], + ), ) -ts_library( +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", + tsconfig = "tsconfig.json", deps = [ - "@npm//@angular-devkit/schematics", - "@npm//@types/node", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@types/node", ], ) diff --git a/src/material-moment-adapter/schematics/tsconfig.json b/src/material-moment-adapter/schematics/tsconfig.json new file mode 100644 index 000000000000..41932c86a248 --- /dev/null +++ b/src/material-moment-adapter/schematics/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "node10", + "strict": true, + "sourceMap": true, + "declaration": true + } +} diff --git a/src/material/BUILD.bazel b/src/material/BUILD.bazel index eb248fe7e30c..d10b5a615b2e 100644 --- a/src/material/BUILD.bazel +++ b/src/material/BUILD.bazel @@ -1,15 +1,19 @@ +load("@npm2//:defs.bzl", "npm_link_all_packages") load( "//src/material:config.bzl", "MATERIAL_ENTRYPOINTS", - "MATERIAL_SCSS_LIBS", "MATERIAL_TARGETS", "MATERIAL_TESTING_TARGETS", ) -load("//tools:defaults.bzl", "ng_package", "sass_library", "ts_library") +load("//tools:defaults.bzl", "ng_package", "sass_library") +load("//tools:defaults2.bzl", "ts_project") +load("//tools/bazel:legacy_target.bzl", "get_legacy_label") package(default_visibility = ["//visibility:public"]) -ts_library( +npm_link_all_packages() + +ts_project( name = "material", srcs = ["index.ts"], ) @@ -30,18 +34,130 @@ sass_library( "_index.scss", ], deps = [ - "//src/material/core:core_scss_lib", - "//src/material/core:theming_scss_lib", + "//src/material/autocomplete:theme", + "//src/material/badge:theme", + "//src/material/bottom-sheet:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/button-toggle:theme", + "//src/material/card:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core:core_sass", + "//src/material/core:ripple_sass", + "//src/material/core:ripple_sass_theme", + "//src/material/core:theme_sass", + "//src/material/core/color", + "//src/material/core/density/private:all_density", + "//src/material/core/focus-indicators", + "//src/material/core/m2:m2_sass", + "//src/material/core/option:theme", + "//src/material/core/selection/pseudo-checkbox:_pseudo_checkbox_common", + "//src/material/core/selection/pseudo-checkbox:sass_theme", + "//src/material/core/style:_validation", + "//src/material/core/style:elevation", + "//src/material/core/style:private", + "//src/material/core/style:sass_utils", + "//src/material/core/style:variables", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/theming", + "//src/material/core/theming:_color_api_backwards_compatibility", + "//src/material/core/theming:_definition", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_palettes", + "//src/material/core/theming:core_all_theme", + "//src/material/core/tokens:m3_system", + "//src/material/core/typography", + "//src/material/core/typography:all_typography", + "//src/material/core/typography:utils", + "//src/material/datepicker:theme", + "//src/material/dialog:dialog_legacy_padding", + "//src/material/dialog:theme", + "//src/material/divider:theme", + "//src/material/expansion:theme", + "//src/material/form-field:theme", + "//src/material/grid-list:theme", + "//src/material/icon:theme", + "//src/material/input:theme", + "//src/material/list:theme", + "//src/material/menu:theme", + "//src/material/paginator:theme", + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/sidenav:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/snack-bar:theme", + "//src/material/sort:theme", + "//src/material/stepper:theme", + "//src/material/table:theme", + "//src/material/tabs:theme", + "//src/material/timepicker:theme", + "//src/material/toolbar:theme", + "//src/material/tooltip:theme", + "//src/material/tree:theme", ], ) # Creates the @angular/material package published to npm. ng_package( name = "npm_package", + package_name = "@angular/material", srcs = [ "package.json", ":sass_lib", - "//src/material/core:theming_scss_lib", + "//src/material/autocomplete:theme", + "//src/material/badge:theme", + "//src/material/bottom-sheet:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/button-toggle:theme", + "//src/material/card:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core:core_sass", + "//src/material/core:ripple_sass", + "//src/material/core:ripple_sass_theme", + "//src/material/core:theme_sass", + "//src/material/core/color", + "//src/material/core/density/private:all_density", + "//src/material/core/focus-indicators", + "//src/material/core/m2:m2_sass", + "//src/material/core/option:theme", + "//src/material/core/selection/pseudo-checkbox:_pseudo_checkbox_common", + "//src/material/core/selection/pseudo-checkbox:sass_theme", + "//src/material/core/style:_validation", + "//src/material/core/style:elevation", + "//src/material/core/style:private", + "//src/material/core/style:sass_utils", + "//src/material/core/style:variables", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/theming", + "//src/material/core/theming:_color_api_backwards_compatibility", + "//src/material/core/theming:_definition", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_palettes", + "//src/material/core/theming:core_all_theme", + "//src/material/core/tokens:m3_system", + "//src/material/core/typography", + "//src/material/core/typography:all_typography", + "//src/material/core/typography:utils", + "//src/material/datepicker:theme", + "//src/material/dialog:dialog_legacy_padding", + "//src/material/dialog:theme", + "//src/material/divider:theme", + "//src/material/expansion:theme", + "//src/material/form-field:theme", + "//src/material/grid-list:theme", + "//src/material/icon:theme", + "//src/material/input:theme", + "//src/material/list:theme", + "//src/material/menu:theme", + "//src/material/paginator:theme", "//src/material/prebuilt-themes:azure-blue", "//src/material/prebuilt-themes:cyan-orange", "//src/material/prebuilt-themes:deeppurple-amber", @@ -50,8 +166,32 @@ ng_package( "//src/material/prebuilt-themes:pink-bluegrey", "//src/material/prebuilt-themes:purple-green", "//src/material/prebuilt-themes:rose-red", - ] + MATERIAL_SCSS_LIBS, + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/sidenav:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/snack-bar:theme", + "//src/material/sort:theme", + "//src/material/stepper:theme", + "//src/material/table:theme", + "//src/material/tabs:theme", + "//src/material/timepicker:theme", + "//src/material/toolbar:theme", + "//src/material/tooltip:theme", + "//src/material/tree:theme", + ], nested_packages = ["//src/material/schematics:npm_package"], + package_deps = [ + ":node_modules/@angular/cdk", + ], tags = ["release-package"], - deps = MATERIAL_TARGETS + MATERIAL_TESTING_TARGETS, + visibility = [ + "//:__pkg__", + "//goldens:__pkg__", + "//integration:__subpackages__", + ], + deps = [get_legacy_label(t) for t in MATERIAL_TARGETS + MATERIAL_TESTING_TARGETS], ) diff --git a/src/material/_index.scss b/src/material/_index.scss index 91e90ff18ba9..994fa88cf21d 100644 --- a/src/material/_index.scss +++ b/src/material/_index.scss @@ -17,7 +17,7 @@ @forward './core/theming/theming' as private-* show private-clamp-density; @forward './core/typography/typography' show typography-hierarchy; @forward './core/typography/typography-utils' show font-shorthand; -@forward './core/tokens/m2' show m2-tokens-from-theme; +@forward 'core/tokens/m2-tokens' show m2-tokens-from-theme; @forward './core/tokens/m3-system' show system-level-colors, system-level-typography, system-level-elevation, system-level-shape, system-level-motion, system-level-state, theme, theme-overrides; diff --git a/src/material/autocomplete/BUILD.bazel b/src/material/autocomplete/BUILD.bazel index 441886c84958..60af1b9e64c2 100644 --- a/src/material/autocomplete/BUILD.bazel +++ b/src/material/autocomplete/BUILD.bazel @@ -2,56 +2,95 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "autocomplete", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [ - ":autocomplete_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-autocomplete.scss", + ], deps = [ - "//src/cdk/a11y", - "//src/cdk/coercion", - "//src/cdk/overlay", - "//src/cdk/scrolling", - "//src/material/core", - "//src/material/form-field", - "@npm//@angular/common", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "autocomplete_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-autocomplete.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_autocomplete-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "autocomplete_scss", + name = "css", src = "autocomplete.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "autocomplete", + srcs = [ + "autocomplete.ts", + "autocomplete-origin.ts", + "autocomplete-trigger.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "autocomplete.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/coercion", + "//src/cdk/overlay", + "//src/cdk/scrolling", + "//src/material/core", + "//src/material/form-field", ], ) -ng_test_library( +ts_project( name = "autocomplete_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = [ @@ -60,6 +99,10 @@ ng_test_library( ), deps = [ ":autocomplete", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/overlay", @@ -69,9 +112,6 @@ ng_test_library( "//src/material/core", "//src/material/form-field", "//src/material/input", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -89,7 +129,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":autocomplete_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/autocomplete/_autocomplete-theme.scss b/src/material/autocomplete/_autocomplete-theme.scss index 7f0e0aa071af..9e4fb8da3acb 100644 --- a/src/material/autocomplete/_autocomplete-theme.scss +++ b/src/material/autocomplete/_autocomplete-theme.scss @@ -5,7 +5,7 @@ @use '../core/typography/typography'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/autocomplete' as tokens-mat-autocomplete; +@use 'm2-autocomplete'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -13,8 +13,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-autocomplete.$prefix, - tokens-mat-autocomplete.get-unthemable-tokens() + m2-autocomplete.$prefix, + m2-autocomplete.get-unthemable-tokens() ); } } @@ -26,8 +26,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-autocomplete.$prefix, - tokens-mat-autocomplete.get-color-tokens($theme) + m2-autocomplete.$prefix, + m2-autocomplete.get-color-tokens($theme) ); } } @@ -39,8 +39,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-autocomplete.$prefix, - tokens-mat-autocomplete.get-typography-tokens($theme) + m2-autocomplete.$prefix, + m2-autocomplete.get-typography-tokens($theme) ); } } @@ -52,8 +52,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-autocomplete.$prefix, - tokens-mat-autocomplete.get-density-tokens($theme) + m2-autocomplete.$prefix, + m2-autocomplete.get-density-tokens($theme) ); } } @@ -63,8 +63,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-autocomplete.$prefix, - tokens: tokens-mat-autocomplete.get-token-slots(), + namespace: m2-autocomplete.$prefix, + tokens: m2-autocomplete.get-token-slots(), ), ); } @@ -98,8 +98,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-autocomplete.$prefix, - map.get($tokens, tokens-mat-autocomplete.$prefix) + m2-autocomplete.$prefix, + map.get($tokens, m2-autocomplete.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_autocomplete.scss b/src/material/autocomplete/_m2-autocomplete.scss similarity index 76% rename from src/material/core/tokens/m2/mat/_autocomplete.scss rename to src/material/autocomplete/_m2-autocomplete.scss index 45fdec6e8b42..6936ef19371b 100644 --- a/src/material/core/tokens/m2/mat/_autocomplete.scss +++ b/src/material/autocomplete/_m2-autocomplete.scss @@ -1,7 +1,7 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, autocomplete); @@ -37,8 +37,8 @@ $prefix: (mat, autocomplete); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_autocomplete.scss b/src/material/autocomplete/_m3-autocomplete.scss similarity index 75% rename from src/material/core/tokens/m3/mat/_autocomplete.scss rename to src/material/autocomplete/_m3-autocomplete.scss index fef11c316fa1..14adce4e997d 100644 --- a/src/material/core/tokens/m3/mat/_autocomplete.scss +++ b/src/material/autocomplete/_m3-autocomplete.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, autocomplete); @@ -15,7 +15,7 @@ $prefix: (mat, autocomplete); background-color: map.get($systems, md-sys-color, surface-container), container-shape: map.get($systems, md-sys-shape, corner-extra-small), container-elevation-shadow: - token-definition.hardcode(elevation.get-box-shadow(2), $exclude-hardcoded), + m3-utils.hardcode(elevation.get-box-shadow(2), $exclude-hardcoded), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/autocomplete/autocomplete-trigger.ts b/src/material/autocomplete/autocomplete-trigger.ts index c7e4fd457934..c723970f3b4f 100644 --- a/src/material/autocomplete/autocomplete-trigger.ts +++ b/src/material/autocomplete/autocomplete-trigger.ts @@ -625,12 +625,13 @@ export class MatAutocompleteTrigger {injector: this._environmentInjector}, ); }); - const optionChanges = this.autocomplete.options.changes.pipe( - tap(() => this._positionStrategy.reapplyLastPosition()), - // Defer emitting to the stream until the next tick, because changing - // bindings in here will cause "changed after checked" errors. - delay(0), - ); + const optionChanges = + this.autocomplete.options?.changes.pipe( + tap(() => this._positionStrategy.reapplyLastPosition()), + // Defer emitting to the stream until the next tick, because changing + // bindings in here will cause "changed after checked" errors. + delay(0), + ) ?? observableOf(); // When the options are initially rendered, and when the option list changes... return ( diff --git a/src/material/autocomplete/autocomplete.scss b/src/material/autocomplete/autocomplete.scss index 064b07fc8412..5bbcbe84ab80 100644 --- a/src/material/autocomplete/autocomplete.scss +++ b/src/material/autocomplete/autocomplete.scss @@ -1,6 +1,9 @@ @use '@angular/cdk'; +@use './m2-autocomplete'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/autocomplete' as tokens-mat-autocomplete; + +$token-prefix: m2-autocomplete.$prefix; +$token-slots: m2-autocomplete.get-token-slots(); // Even though we don't use the MDC styles, we need to keep the classes in the // DOM for the Gmat versions to work. We need to bump up the specificity here @@ -17,11 +20,10 @@ div.mat-mdc-autocomplete-panel { // Workaround in case other MDC menu surface styles bleed in. position: static; - @include token-utils.use-tokens( - tokens-mat-autocomplete.$prefix, tokens-mat-autocomplete.get-token-slots()) { - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow); - @include token-utils.create-token-slot(background-color, background-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-radius: token-utils.slot(container-shape); + box-shadow: token-utils.slot(container-elevation-shadow); + background-color: token-utils.slot(background-color); } @include cdk.high-contrast { diff --git a/src/material/autocomplete/autocomplete.spec.ts b/src/material/autocomplete/autocomplete.spec.ts index 9a27005487f9..9bea4d09486c 100644 --- a/src/material/autocomplete/autocomplete.spec.ts +++ b/src/material/autocomplete/autocomplete.spec.ts @@ -35,13 +35,13 @@ import { waitForAsync, } from '@angular/core/testing'; import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms'; -import {MatOption, MatOptionSelectionChange} from '../core'; -import {MatFormField, MatFormFieldModule} from '../form-field'; -import {MatInputModule} from '../input'; import {By} from '@angular/platform-browser'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; import {EMPTY, Observable, Subject, Subscription} from 'rxjs'; import {map, startWith} from 'rxjs/operators'; +import {MatOption, MatOptionSelectionChange} from '../core'; +import {MatFormField, MatFormFieldModule} from '../form-field'; +import {MatInputModule} from '../input'; import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, @@ -3252,6 +3252,18 @@ describe('MatAutocomplete', () => { }); }); + it('should not throw errors when closing without options', fakeAsync(() => { + const fixture = createComponent(AutocompleteWithoutOptions); + fixture.detectChanges(); + const trigger = fixture.componentInstance.trigger; + + trigger.openPanel(); + fixture.detectChanges(); + fixture.destroy(); + + expect(() => trigger.closePanel()).not.toThrow(); + })); + describe('automatically selecting the active option', () => { let fixture: ComponentFixture; @@ -4496,3 +4508,19 @@ class AutocompleteInsideAModal { @ViewChildren(MatOption) options: QueryList; @ViewChild('modal') modal: ElementRef; } + +@Component({ + selector: 'autocomplete-without-options', + template: ` + + + + + + + `, + standalone: false, +}) +class AutocompleteWithoutOptions { + @ViewChild(MatAutocompleteTrigger, {static: true}) trigger: MatAutocompleteTrigger; +} diff --git a/src/material/autocomplete/autocomplete.ts b/src/material/autocomplete/autocomplete.ts index 475023b30661..54078571d1f0 100644 --- a/src/material/autocomplete/autocomplete.ts +++ b/src/material/autocomplete/autocomplete.ts @@ -307,7 +307,7 @@ export class MatAutocomplete implements AfterContentInit, OnDestroy { /** Panel should hide itself when the option list is empty. */ _setVisibility() { - this.showPanel = !!this.options.length; + this.showPanel = !!this.options?.length; this._changeDetectorRef.markForCheck(); } diff --git a/src/material/autocomplete/testing/BUILD.bazel b/src/material/autocomplete/testing/BUILD.bazel index de2a2bc59400..be334138e378 100644 --- a/src/material/autocomplete/testing/BUILD.bazel +++ b/src/material/autocomplete/testing/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testing", srcs = glob( ["**/*.ts"], @@ -20,16 +21,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/autocomplete", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/badge/BUILD.bazel b/src/material/badge/BUILD.bazel index f5b8da274bf3..d572870325eb 100644 --- a/src/material/badge/BUILD.bazel +++ b/src/material/badge/BUILD.bazel @@ -2,64 +2,97 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "badge", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":badge_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-badge.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/private", - "//src/material/core", - "@npm//@angular/animations", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/platform-browser", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-badge.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_badge-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "badge_scss", + name = "badge_css", src = "badge.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/tokens:token_utils", ], ) -sass_library( - name = "badge_scss_lib", - srcs = glob(["**/_*.scss"]), +ng_project( + name = "badge", + srcs = [ + "badge.ts", + "badge-module.ts", + "index.ts", + "public-api.ts", + ], + assets = [":badge_css"], deps = [ - "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//:node_modules/@angular/animations", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/private", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":badge", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/material/core", - "@npm//@angular/platform-browser", ], ) @@ -75,7 +108,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":badge_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/badge/_badge-theme.scss b/src/material/badge/_badge-theme.scss index 0ddc4bca886e..94ebf7753fcd 100644 --- a/src/material/badge/_badge-theme.scss +++ b/src/material/badge/_badge-theme.scss @@ -3,7 +3,7 @@ @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mat/badge' as tokens-mat-badge; +@use './m2-badge'; @use '../core/tokens/token-utils'; @use '../core/style/sass-utils'; @@ -16,8 +16,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-badge.$prefix, - tokens-mat-badge.get-unthemable-tokens() + m2-badge.$prefix, + m2-badge.get-unthemable-tokens() ); } } @@ -34,22 +34,22 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-badge.$prefix, - tokens-mat-badge.get-color-tokens($theme) + m2-badge.$prefix, + m2-badge.get-color-tokens($theme) ); } .mat-badge-accent { @include token-utils.create-token-values-mixed( - tokens-mat-badge.$prefix, - tokens-mat-badge.private-get-color-palette-color-tokens($theme, accent) + m2-badge.$prefix, + m2-badge.private-get-color-palette-color-tokens($theme, accent) ); } .mat-badge-warn { @include token-utils.create-token-values-mixed( - tokens-mat-badge.$prefix, - tokens-mat-badge.private-get-color-palette-color-tokens($theme, warn) + m2-badge.$prefix, + m2-badge.private-get-color-palette-color-tokens($theme, warn) ); } } @@ -63,8 +63,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-badge.$prefix, - tokens-mat-badge.get-typography-tokens($theme) + m2-badge.$prefix, + m2-badge.get-typography-tokens($theme) ); } } @@ -83,8 +83,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-badge.$prefix, - tokens: tokens-mat-badge.get-token-slots(), + namespace: m2-badge.$prefix, + tokens: m2-badge.get-token-slots(), ), ); } @@ -123,6 +123,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mat-badge-tokens: token-utils.get-tokens-for($tokens, tokens-mat-badge.$prefix, $options...); - @include token-utils.create-token-values(tokens-mat-badge.$prefix, $mat-badge-tokens); + $mat-badge-tokens: token-utils.get-tokens-for($tokens, m2-badge.$prefix, $options...); + @include token-utils.create-token-values(m2-badge.$prefix, $mat-badge-tokens); } diff --git a/src/material/core/tokens/m2/mat/_badge.scss b/src/material/badge/_m2-badge.scss similarity index 92% rename from src/material/core/tokens/m2/mat/_badge.scss rename to src/material/badge/_m2-badge.scss index 8ad24b1701d7..cdb2ee5e6344 100644 --- a/src/material/core/tokens/m2/mat/_badge.scss +++ b/src/material/badge/_m2-badge.scss @@ -2,9 +2,9 @@ @use 'sass:map'; @use 'sass:math'; @use 'sass:color'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; $_default-size: 22px; $_small-size: $_default-size - 6px; @@ -103,8 +103,8 @@ $prefix: (mat, badge); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_badge.scss b/src/material/badge/_m3-badge.scss similarity index 60% rename from src/material/core/tokens/m3/mat/_badge.scss rename to src/material/badge/_m3-badge.scss index 65be1ae562a4..108795797d3d 100644 --- a/src/material/core/tokens/m3/mat/_badge.scss +++ b/src/material/badge/_m3-badge.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, badge); @@ -11,41 +11,42 @@ $prefix: (mat, badge); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-badge @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( + $tokens: ( background-color: map.get($systems, md-sys-color, error), text-color: map.get($systems, md-sys-color, on-error), disabled-state-background-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, error), - $alpha: 0.38, - ), + $alpha: 0.38), disabled-state-text-color: map.get($systems, md-sys-color, on-error), text-font: map.get($systems, md-sys-typescale, label-small-font), text-size: map.get($systems, md-sys-typescale, label-small-size), text-weight: map.get($systems, md-sys-typescale, label-small-weight), - small-size-text-size: token-definition.hardcode(0, $exclude-hardcoded), + small-size-text-size: m3-utils.hardcode(0, $exclude-hardcoded), container-shape: map.get($systems, md-sys-shape, corner-full), - container-size: token-definition.hardcode(16px, $exclude-hardcoded), - line-height: token-definition.hardcode(16px, $exclude-hardcoded), - legacy-container-size: token-definition.hardcode(unset, $exclude-hardcoded), - legacy-small-size-container-size: token-definition.hardcode(unset, $exclude-hardcoded), - small-size-container-size: token-definition.hardcode(6px, $exclude-hardcoded), - small-size-line-height: token-definition.hardcode(6px, $exclude-hardcoded), - container-padding: token-definition.hardcode(0 4px, $exclude-hardcoded), - small-size-container-padding: token-definition.hardcode(0, $exclude-hardcoded), - container-offset: token-definition.hardcode(-12px 0, $exclude-hardcoded), - small-size-container-offset: token-definition.hardcode(-6px 0, $exclude-hardcoded), - container-overlap-offset: token-definition.hardcode(-12px, $exclude-hardcoded), - small-size-container-overlap-offset: token-definition.hardcode(-6px, $exclude-hardcoded), + container-size: m3-utils.hardcode(16px, $exclude-hardcoded), + line-height: m3-utils.hardcode(16px, $exclude-hardcoded), + legacy-container-size: m3-utils.hardcode(unset, $exclude-hardcoded), + legacy-small-size-container-size: m3-utils.hardcode(unset, $exclude-hardcoded), + small-size-container-size: m3-utils.hardcode(6px, $exclude-hardcoded), + small-size-line-height: m3-utils.hardcode(6px, $exclude-hardcoded), + container-padding: m3-utils.hardcode(0 4px, $exclude-hardcoded), + small-size-container-padding: m3-utils.hardcode(0, $exclude-hardcoded), + container-offset: m3-utils.hardcode(-12px 0, $exclude-hardcoded), + small-size-container-offset: m3-utils.hardcode(-6px 0, $exclude-hardcoded), + container-overlap-offset: m3-utils.hardcode(-12px, $exclude-hardcoded), + small-size-container-overlap-offset: m3-utils.hardcode(-6px, $exclude-hardcoded), // This size isn't in the M3 spec so we emit the same values as for `medium`. - large-size-container-size: token-definition.hardcode(16px, $exclude-hardcoded), - large-size-line-height: token-definition.hardcode(16px, $exclude-hardcoded), - large-size-container-offset: token-definition.hardcode(-12px 0, $exclude-hardcoded), - large-size-container-overlap-offset: token-definition.hardcode(-12px, $exclude-hardcoded), + large-size-container-size: m3-utils.hardcode(16px, $exclude-hardcoded), + large-size-line-height: m3-utils.hardcode(16px, $exclude-hardcoded), + large-size-container-offset: m3-utils.hardcode(-12px 0, $exclude-hardcoded), + large-size-container-overlap-offset: m3-utils.hardcode(-12px, $exclude-hardcoded), large-size-text-size: map.get($systems, md-sys-typescale, label-small-size), - large-size-container-padding: token-definition.hardcode(0 4px, $exclude-hardcoded), - legacy-large-size-container-size: token-definition.hardcode(unset, $exclude-hardcoded), - ), ( + large-size-container-padding: m3-utils.hardcode(0 4px, $exclude-hardcoded), + legacy-large-size-container-size: m3-utils.hardcode(unset, $exclude-hardcoded), + ); + + $variant-tokens: ( primary: ( background-color: map.get($systems, md-sys-color, primary), text-color: map.get($systems, md-sys-color, on-primary), @@ -74,7 +75,7 @@ $prefix: (mat, badge); disabled-state-text-color: map.get($systems, md-sys-color, on-tertiary), ), error: () // Default, no overrides needed - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/badge/badge.scss b/src/material/badge/badge.scss index a7bc40b04a12..a05d5245bcb9 100644 --- a/src/material/badge/badge.scss +++ b/src/material/badge/badge.scss @@ -1,14 +1,17 @@ @use 'sass:color'; @use '@angular/cdk'; -@use '../core/tokens/m2/mat/badge' as tokens-mat-badge; +@use './m2-badge'; @use '../core/tokens/token-utils'; $default-size: 22px !default; $small-size: $default-size - 6; $large-size: $default-size + 6; +$token-prefix: m2-badge.$prefix; +$token-slots: m2-badge.get-token-slots(); + @mixin _badge-size($size) { - @include token-utils.use-tokens(tokens-mat-badge.$prefix, tokens-mat-badge.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $prefix: if($size == 'medium', '', $size + '-size-'); $legacy-size-var-name: 'legacy-#{$prefix}container-size'; $size-var-name: '#{$prefix}container-size'; @@ -22,18 +25,18 @@ $large-size: $default-size + 6; // * `container-size` token - In M2 the token is emitted as `unset` to preserve the legacy // behavior while in M3 it targets `min-width` and `min-height` which allows the badge to // grow with the content. - @include token-utils.create-token-slot(width, $legacy-size-var-name); - @include token-utils.create-token-slot(height, $legacy-size-var-name); - @include token-utils.create-token-slot(min-width, $size-var-name); - @include token-utils.create-token-slot(min-height, $size-var-name); - @include token-utils.create-token-slot(line-height, '#{$prefix}line-height'); - @include token-utils.create-token-slot(padding, '#{$prefix}container-padding'); - @include token-utils.create-token-slot(font-size, '#{$prefix}text-size'); - @include token-utils.create-token-slot(margin, '#{$prefix}container-offset'); + width: token-utils.slot($legacy-size-var-name); + height: token-utils.slot($legacy-size-var-name); + min-width: token-utils.slot($size-var-name); + min-height: token-utils.slot($size-var-name); + line-height: token-utils.slot('#{$prefix}line-height'); + padding: token-utils.slot('#{$prefix}container-padding'); + font-size: token-utils.slot('#{$prefix}text-size'); + margin: token-utils.slot('#{$prefix}container-offset'); } &.mat-badge-overlap .mat-badge-content { - @include token-utils.create-token-slot(margin, '#{$prefix}container-overlap-offset'); + margin: token-utils.slot('#{$prefix}container-overlap-offset'); } } } @@ -62,12 +65,12 @@ $large-size: $default-size + 6; box-sizing: border-box; pointer-events: none; - @include token-utils.use-tokens(tokens-mat-badge.$prefix, tokens-mat-badge.get-token-slots()) { - @include token-utils.create-token-slot(background-color, background-color); - @include token-utils.create-token-slot(color, text-color); - @include token-utils.create-token-slot(font-family, text-font); - @include token-utils.create-token-slot(font-weight, text-weight); - @include token-utils.create-token-slot(border-radius, container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(background-color); + color: token-utils.slot(text-color); + font-family: token-utils.slot(text-font); + font-weight: token-utils.slot(text-weight); + border-radius: token-utils.slot(container-shape); .mat-badge-above & { bottom: 100%; @@ -103,9 +106,9 @@ $large-size: $default-size + 6; } .mat-badge-disabled .mat-badge-content { - @include token-utils.use-tokens(tokens-mat-badge.$prefix, tokens-mat-badge.get-token-slots()) { - @include token-utils.create-token-slot(background-color, disabled-state-background-color); - @include token-utils.create-token-slot(color, disabled-state-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(disabled-state-background-color); + color: token-utils.slot(disabled-state-text-color); } } diff --git a/src/material/badge/testing/BUILD.bazel b/src/material/badge/testing/BUILD.bazel index c04825a62a99..7b749e898b92 100644 --- a/src/material/badge/testing/BUILD.bazel +++ b/src/material/badge/testing/BUILD.bazel @@ -1,8 +1,9 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "testing", srcs = glob( ["**/*.ts"], @@ -19,15 +20,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/badge", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/bottom-sheet/BUILD.bazel b/src/material/bottom-sheet/BUILD.bazel index 24252352e85f..a7df249eb617 100644 --- a/src/material/bottom-sheet/BUILD.bazel +++ b/src/material/bottom-sheet/BUILD.bazel @@ -2,25 +2,84 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +sass_library( + name = "m3", + srcs = [ + "_m3-bottom-sheet.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-bottom-sheet.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_bottom-sheet-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +sass_binary( + name = "css", + src = "bottom-sheet-container.scss", + deps = [ + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:elevation", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( name = "bottom-sheet", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), + srcs = [ + "bottom-sheet.ts", + "bottom-sheet-animations.ts", + "bottom-sheet-config.ts", + "bottom-sheet-container.ts", + "bottom-sheet-module.ts", + "bottom-sheet-ref.ts", + "index.ts", + "public-api.ts", + ], assets = [ - ":bottom-sheet-container.css", - ] + glob(["**/*.html"]), + "bottom-sheet-container.html", + ":css", + ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src:dev_mode_types", "//src/cdk/a11y", "//src/cdk/bidi", @@ -32,42 +91,27 @@ ng_module( "//src/cdk/platform", "//src/cdk/portal", "//src/material/core", - "@npm//@angular/core", - "@npm//rxjs", - ], -) - -sass_library( - name = "bottom_sheet_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], -) - -sass_binary( - name = "bottom_sheet_container_scss", - src = "bottom-sheet-container.scss", - deps = [ - "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":bottom-sheet", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/overlay", "//src/cdk/platform", "//src/cdk/scrolling", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) @@ -83,7 +127,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":bottom_sheet_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/bottom-sheet/_bottom-sheet-theme.scss b/src/material/bottom-sheet/_bottom-sheet-theme.scss index 2709138335d0..0923513f62d8 100644 --- a/src/material/bottom-sheet/_bottom-sheet-theme.scss +++ b/src/material/bottom-sheet/_bottom-sheet-theme.scss @@ -5,7 +5,7 @@ @use '../core/theming/validation'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/bottom-sheet' as tokens-mat-bottom-sheet; +@use './m2-bottom-sheet'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -13,8 +13,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-bottom-sheet.$prefix, - tokens-mat-bottom-sheet.get-unthemable-tokens() + m2-bottom-sheet.$prefix, + m2-bottom-sheet.get-unthemable-tokens() ); } } @@ -26,8 +26,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-bottom-sheet.$prefix, - tokens-mat-bottom-sheet.get-color-tokens($theme) + m2-bottom-sheet.$prefix, + m2-bottom-sheet.get-color-tokens($theme) ); } } @@ -39,8 +39,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-bottom-sheet.$prefix, - tokens-mat-bottom-sheet.get-typography-tokens($theme) + m2-bottom-sheet.$prefix, + m2-bottom-sheet.get-typography-tokens($theme) ); } } @@ -57,8 +57,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-bottom-sheet.$prefix, - tokens: tokens-mat-bottom-sheet.get-token-slots(), + namespace: m2-bottom-sheet.$prefix, + tokens: m2-bottom-sheet.get-token-slots(), ), ); } @@ -92,8 +92,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-bottom-sheet.$prefix, - map.get($tokens, tokens-mat-bottom-sheet.$prefix) + m2-bottom-sheet.$prefix, + map.get($tokens, m2-bottom-sheet.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_bottom-sheet.scss b/src/material/bottom-sheet/_m2-bottom-sheet.scss similarity index 83% rename from src/material/core/tokens/m2/mat/_bottom-sheet.scss rename to src/material/bottom-sheet/_m2-bottom-sheet.scss index 077e0bcde753..292b1e773aa8 100644 --- a/src/material/core/tokens/m2/mat/_bottom-sheet.scss +++ b/src/material/bottom-sheet/_m2-bottom-sheet.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, bottom-sheet); @@ -43,8 +43,8 @@ $prefix: (mat, bottom-sheet); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_bottom-sheet.scss b/src/material/bottom-sheet/_m3-bottom-sheet.scss similarity index 70% rename from src/material/core/tokens/m3/mat/_bottom-sheet.scss rename to src/material/bottom-sheet/_m3-bottom-sheet.scss index f3d6a5cf1ca4..d628b04e19d9 100644 --- a/src/material/core/tokens/m3/mat/_bottom-sheet.scss +++ b/src/material/bottom-sheet/_m3-bottom-sheet.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, bottom-sheet); @@ -12,13 +12,13 @@ $prefix: (mat, bottom-sheet); /// @return {Map} A set of custom tokens for the mat-bottom-sheet @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, container-text, body-large), + m3-utils.generate-typography-tokens($systems, container-text, body-large), ( - container-shape: token-definition.hardcode(28px, $exclude-hardcoded), + container-shape: m3-utils.hardcode(28px, $exclude-hardcoded), container-text-color: map.get($systems, md-sys-color, on-surface), container-background-color: map.get($systems, md-sys-color, surface-container-low), ), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/bottom-sheet/bottom-sheet-container.scss b/src/material/bottom-sheet/bottom-sheet-container.scss index dd6628cd834d..4f47d87a5dce 100644 --- a/src/material/bottom-sheet/bottom-sheet-container.scss +++ b/src/material/bottom-sheet/bottom-sheet-container.scss @@ -1,6 +1,6 @@ @use '@angular/cdk'; @use '../core/style/elevation'; -@use '../core/tokens/m2/mat/bottom-sheet' as tokens-mat-bottom-sheet; +@use './m2-bottom-sheet'; @use '../core/tokens/token-utils'; // The bottom sheet minimum width on larger screen sizes is based @@ -10,6 +10,9 @@ $_width-increment: 64px; $container-vertical-padding: 8px !default; $container-horizontal-padding: 16px !default; +$token-prefix: m2-bottom-sheet.$prefix; +$token-slots: m2-bottom-sheet.get-token-slots(); + @keyframes _mat-bottom-sheet-enter { from { transform: translateY(100%); @@ -45,15 +48,14 @@ $container-horizontal-padding: 16px !default; // elements (e.g. close buttons) inside the bottom sheet. position: relative; - @include token-utils.use-tokens( - tokens-mat-bottom-sheet.$prefix, tokens-mat-bottom-sheet.get-token-slots()) { - @include token-utils.create-token-slot(background, container-background-color); - @include token-utils.create-token-slot(color, container-text-color); - @include token-utils.create-token-slot(font-family, container-text-font); - @include token-utils.create-token-slot(font-size, container-text-size); - @include token-utils.create-token-slot(line-height, container-text-line-height); - @include token-utils.create-token-slot(font-weight, container-text-weight); - @include token-utils.create-token-slot(letter-spacing, container-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background: token-utils.slot(container-background-color); + color: token-utils.slot(container-text-color); + font-family: token-utils.slot(container-text-font); + font-size: token-utils.slot(container-text-size); + line-height: token-utils.slot(container-text-line-height); + font-weight: token-utils.slot(container-text-weight); + letter-spacing: token-utils.slot(container-text-tracking); } @include cdk.high-contrast { @@ -75,10 +77,9 @@ $container-horizontal-padding: 16px !default; // Applies a border radius to the bottom sheet. Should only be applied when it's not full-screen. %_mat-bottom-sheet-container-border-radius { - @include token-utils.use-tokens( - tokens-mat-bottom-sheet.$prefix, tokens-mat-bottom-sheet.get-token-slots()) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-top-right-radius, container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-top-right-radius: token-utils.slot(container-shape); } } diff --git a/src/material/bottom-sheet/testing/BUILD.bazel b/src/material/bottom-sheet/testing/BUILD.bazel index 01f422e44ac6..b805c132fdf4 100644 --- a/src/material/bottom-sheet/testing/BUILD.bazel +++ b/src/material/bottom-sheet/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", "//src/material/bottom-sheet", ], @@ -20,16 +20,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/bottom-sheet", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/button-toggle/BUILD.bazel b/src/material/button-toggle/BUILD.bazel index 6747c969f3de..108e3572f700 100644 --- a/src/material/button-toggle/BUILD.bazel +++ b/src/material/button-toggle/BUILD.bazel @@ -2,62 +2,104 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "button-toggle", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":button-toggle.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-standard-button-toggle.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/collections", - "//src/material/core", - "@npm//@angular/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "button_toggle_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-legacy-button-toggle.scss", + "_m2-standard-button-toggle.scss", + ], deps = [ - "//src/cdk/a11y:a11y_scss_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_button-toggle-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "button_toggle_scss", + name = "css", src = "button-toggle.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:layout_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "button-toggle", + srcs = [ + "button-toggle.ts", + "button-toggle-module.ts", + "index.ts", + "public-api.ts", + ], + assets = [ + "button-toggle.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/collections", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":button-toggle", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) @@ -73,7 +115,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":button_toggle_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/button-toggle/_button-toggle-theme.scss b/src/material/button-toggle/_button-toggle-theme.scss index b2adc49dc527..3fbb8694090f 100644 --- a/src/material/button-toggle/_button-toggle-theme.scss +++ b/src/material/button-toggle/_button-toggle-theme.scss @@ -1,11 +1,11 @@ -@use '../core/theming/theming'; +@use '../core/style/sass-utils'; @use '../core/theming/inspection'; +@use '../core/theming/theming'; @use '../core/theming/validation'; -@use '../core/typography/typography'; -@use '../core/tokens/m2/mat/legacy-button-toggle' as tokens-mat-legacy-button-toggle; -@use '../core/tokens/m2/mat/standard-button-toggle' as tokens-mat-standard-button-toggle; @use '../core/tokens/token-utils'; -@use '../core/style/sass-utils'; +@use '../core/typography/typography'; +@use './m2-legacy-button-toggle'; +@use './m2-standard-button-toggle'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-button-toggle. @@ -16,12 +16,12 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-legacy-button-toggle.$prefix, - tokens-mat-legacy-button-toggle.get-unthemable-tokens() + m2-legacy-button-toggle.$prefix, + m2-legacy-button-toggle.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-standard-button-toggle.$prefix, - tokens-mat-standard-button-toggle.get-unthemable-tokens() + m2-standard-button-toggle.$prefix, + m2-standard-button-toggle.get-unthemable-tokens() ); } } @@ -38,12 +38,12 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-legacy-button-toggle.$prefix, - tokens-mat-legacy-button-toggle.get-color-tokens($theme) + m2-legacy-button-toggle.$prefix, + m2-legacy-button-toggle.get-color-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-standard-button-toggle.$prefix, - tokens-mat-standard-button-toggle.get-color-tokens($theme) + m2-standard-button-toggle.$prefix, + m2-standard-button-toggle.get-color-tokens($theme) ); } } @@ -57,12 +57,12 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-legacy-button-toggle.$prefix, - tokens-mat-legacy-button-toggle.get-typography-tokens($theme) + m2-legacy-button-toggle.$prefix, + m2-legacy-button-toggle.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-standard-button-toggle.$prefix, - tokens-mat-standard-button-toggle.get-typography-tokens($theme) + m2-standard-button-toggle.$prefix, + m2-standard-button-toggle.get-typography-tokens($theme) ); } } @@ -76,12 +76,12 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-legacy-button-toggle.$prefix, - tokens-mat-legacy-button-toggle.get-density-tokens($theme) + m2-legacy-button-toggle.$prefix, + m2-legacy-button-toggle.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-standard-button-toggle.$prefix, - tokens-mat-standard-button-toggle.get-density-tokens($theme) + m2-standard-button-toggle.$prefix, + m2-standard-button-toggle.get-density-tokens($theme) ); } } @@ -89,17 +89,17 @@ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction. @function _define-overrides() { - $legacy-tokens: tokens-mat-legacy-button-toggle.get-token-slots(); - $standard-tokens: tokens-mat-standard-button-toggle.get-token-slots(); + $legacy-tokens: m2-legacy-button-toggle.get-token-slots(); + $standard-tokens: m2-standard-button-toggle.get-token-slots(); @return ( ( - namespace: tokens-mat-legacy-button-toggle.$prefix, + namespace: m2-legacy-button-toggle.$prefix, tokens: $legacy-tokens, prefix: 'legacy-', ), ( - namespace: tokens-mat-standard-button-toggle.$prefix, + namespace: m2-standard-button-toggle.$prefix, tokens: $standard-tokens, ), ); @@ -141,11 +141,11 @@ ); $mat-standard-button-toggle-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-standard-button-toggle.$prefix, + m2-standard-button-toggle.$prefix, $options... ); @include token-utils.create-token-values( - tokens-mat-standard-button-toggle.$prefix, + m2-standard-button-toggle.$prefix, $mat-standard-button-toggle-tokens ); } diff --git a/src/material/core/tokens/m2/mat/_legacy-button-toggle.scss b/src/material/button-toggle/_m2-legacy-button-toggle.scss similarity index 85% rename from src/material/core/tokens/m2/mat/_legacy-button-toggle.scss rename to src/material/button-toggle/_m2-legacy-button-toggle.scss index 32341ceb0582..1828b16c719c 100644 --- a/src/material/core/tokens/m2/mat/_legacy-button-toggle.scss +++ b/src/material/button-toggle/_m2-legacy-button-toggle.scss @@ -1,9 +1,9 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, legacy-button-toggle); +$prefix: (mat, button-toggle-legacy); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -52,8 +52,8 @@ $prefix: (mat, legacy-button-toggle); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_standard-button-toggle.scss b/src/material/button-toggle/_m2-standard-button-toggle.scss similarity index 89% rename from src/material/core/tokens/m2/mat/_standard-button-toggle.scss rename to src/material/button-toggle/_m2-standard-button-toggle.scss index 21b4bad8999a..29edbdf58fe3 100644 --- a/src/material/core/tokens/m2/mat/_standard-button-toggle.scss +++ b/src/material/button-toggle/_m2-standard-button-toggle.scss @@ -1,12 +1,12 @@ @use 'sass:map'; @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, standard-button-toggle); +$prefix: (mat, button-toggle); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -81,8 +81,8 @@ $prefix: (mat, standard-button-toggle); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_standard-button-toggle.scss b/src/material/button-toggle/_m3-standard-button-toggle.scss similarity index 84% rename from src/material/core/tokens/m3/mat/_standard-button-toggle.scss rename to src/material/button-toggle/_m3-standard-button-toggle.scss index a8beb3703415..cdffa5214e78 100644 --- a/src/material/core/tokens/m3/mat/_standard-button-toggle.scss +++ b/src/material/button-toggle/_m3-standard-button-toggle.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, standard-button-toggle); +$prefix: (mat, button-toggle); /// Generates custom tokens for the mat-button-toggle. /// @param {Map} $systems The MDC system tokens @@ -12,13 +12,13 @@ $prefix: (mat, standard-button-toggle); /// @return {Map} A set of custom tokens for the mat-button-toggle @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, label-text, label-large), + m3-utils.generate-typography-tokens($systems, label-text, label-large), ( shape: map.get($systems, md-sys-shape, corner-full), hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), text-color: map.get($systems, md-sys-color, on-surface), - background-color: token-definition.hardcode(transparent, $exclude-hardcoded), + background-color: m3-utils.hardcode(transparent, $exclude-hardcoded), state-layer-color: map.get($systems, md-sys-color, on-surface), selected-state-background-color: map.get($systems, md-sys-color, secondary-container), selected-state-text-color: map.get($systems, md-sys-color, on-secondary-container), @@ -27,7 +27,7 @@ $prefix: (mat, standard-button-toggle); $alpha: 0.38, ), disabled-state-background-color: - token-definition.hardcode(transparent, $exclude-hardcoded), + m3-utils.hardcode(transparent, $exclude-hardcoded), disabled-selected-state-text-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38, @@ -37,7 +37,9 @@ $prefix: (mat, standard-button-toggle); $alpha: 0.12, ), divider-color: map.get($systems, md-sys-color, outline), - ), ( + )); + + $color-variants: ( // Color variants: primary: ( selected-state-background-color: map.get($systems, md-sys-color, primary-container), @@ -52,7 +54,7 @@ $prefix: (mat, standard-button-toggle); selected-state-background-color: map.get($systems, md-sys-color, error-container), selected-state-text-color: map.get($systems, md-sys-color, on-error-container), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $color-variants), $token-slots); } diff --git a/src/material/button-toggle/button-toggle.scss b/src/material/button-toggle/button-toggle.scss index 1e02fbd24b25..a402c6d9a9f2 100644 --- a/src/material/button-toggle/button-toggle.scss +++ b/src/material/button-toggle/button-toggle.scss @@ -4,8 +4,8 @@ @use '../core/style/layout-common'; @use '../core/style/elevation'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/legacy-button-toggle' as tokens-mat-legacy-button-toggle; -@use '../core/tokens/m2/mat/standard-button-toggle' as tokens-mat-standard-button-toggle; +@use './m2-legacy-button-toggle'; +@use './m2-standard-button-toggle'; $standard-padding: 12px !default; $legacy-padding: 16px !default; @@ -19,13 +19,13 @@ $standard-border-radius: 4px !default; $legacy-border-radius: 2px !default; $_legacy-tokens: ( - tokens-mat-legacy-button-toggle.$prefix, - tokens-mat-legacy-button-toggle.get-token-slots() + m2-legacy-button-toggle.$prefix, + m2-legacy-button-toggle.get-token-slots() ); $_standard-tokens: ( - tokens-mat-standard-button-toggle.$prefix, - tokens-mat-standard-button-toggle.get-token-slots() + m2-standard-button-toggle.$prefix, + m2-standard-button-toggle.get-token-slots() ); .mat-button-toggle-standalone, @@ -41,7 +41,7 @@ $_standard-tokens: ( transform: translateZ(0); @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(border-radius, shape); + border-radius: token-utils.slot(shape); } @include elevation.overridable-elevation(2); @@ -54,12 +54,12 @@ $_standard-tokens: ( .mat-button-toggle-standalone.mat-button-toggle-appearance-standard, .mat-button-toggle-group-appearance-standard { @include token-utils.use-tokens($_standard-tokens...) { - @include token-utils.create-token-slot(border-radius, shape); - border: solid 1px token-utils.get-token-variable(divider-color); + border-radius: token-utils.slot(shape); + border: solid 1px token-utils.slot(divider-color); .mat-pseudo-checkbox { - --mat-minimal-pseudo-checkbox-selected-checkmark-color: #{ - token-utils.get-token-variable(selected-state-text-color)}; + --mat-pseudo-checkbox-minimal-selected-checkmark-color: #{ + token-utils.slot(selected-state-text-color)}; } } @@ -87,18 +87,18 @@ $_standard-tokens: ( position: relative; @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(color, text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); + color: token-utils.slot(text-color); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + line-height: token-utils.slot(label-text-line-height); + font-weight: token-utils.slot(label-text-weight); + letter-spacing: token-utils.slot(label-text-tracking); - --mat-minimal-pseudo-checkbox-selected-checkmark-color: #{ - token-utils.get-token-variable(selected-state-text-color)}; + --mat-pseudo-checkbox-minimal-selected-checkmark-color: #{ + token-utils.slot(selected-state-text-color)}; &.cdk-keyboard-focused .mat-button-toggle-focus-overlay { - @include token-utils.create-token-slot(opacity, focus-state-layer-opacity); + opacity: token-utils.slot(focus-state-layer-opacity); } } @@ -156,8 +156,8 @@ $_standard-tokens: ( .mat-button-toggle-checked { @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(color, selected-state-text-color); - @include token-utils.create-token-slot(background-color, selected-state-background-color); + color: token-utils.slot(selected-state-text-color); + background-color: token-utils.slot(selected-state-background-color); } } @@ -165,14 +165,13 @@ $_standard-tokens: ( pointer-events: none; @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(color, disabled-state-text-color); - @include token-utils.create-token-slot(background-color, disabled-state-background-color); - --mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #{ - token-utils.get-token-variable(disabled-state-text-color)}; + color: token-utils.slot(disabled-state-text-color); + background-color: token-utils.slot(disabled-state-background-color); + --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: #{ + token-utils.slot(disabled-state-text-color)}; &.mat-button-toggle-checked { - @include token-utils.create-token-slot(background-color, - disabled-selected-state-background-color); + background-color: token-utils.slot(disabled-selected-state-background-color); } } } @@ -183,14 +182,14 @@ $_standard-tokens: ( .mat-button-toggle-appearance-standard { @include token-utils.use-tokens($_standard-tokens...) { - $divider-color: token-utils.get-token-variable(divider-color); - @include token-utils.create-token-slot(color, text-color); - @include token-utils.create-token-slot(background-color, background-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); + $divider-color: token-utils.slot(divider-color); + color: token-utils.slot(text-color); + background-color: token-utils.slot(background-color); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + line-height: token-utils.slot(label-text-line-height); + font-weight: token-utils.slot(label-text-weight); + letter-spacing: token-utils.slot(label-text-tracking); .mat-button-toggle-group-appearance-standard & + & { border-left: solid 1px $divider-color; @@ -208,32 +207,31 @@ $_standard-tokens: ( } &.mat-button-toggle-checked { - @include token-utils.create-token-slot(color, selected-state-text-color); - @include token-utils.create-token-slot(background-color, selected-state-background-color); + color: token-utils.slot(selected-state-text-color); + background-color: token-utils.slot(selected-state-background-color); } &.mat-button-toggle-disabled { - @include token-utils.create-token-slot(color, disabled-state-text-color); - @include token-utils.create-token-slot(background-color, disabled-state-background-color); + color: token-utils.slot(disabled-state-text-color); + background-color: token-utils.slot(disabled-state-background-color); .mat-pseudo-checkbox { - --mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #{ - token-utils.get-token-variable(disabled-selected-state-text-color)}; + --mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: #{ + token-utils.slot(disabled-selected-state-text-color)}; } &.mat-button-toggle-checked { - @include token-utils.create-token-slot(color, disabled-selected-state-text-color); - @include token-utils.create-token-slot(background-color, - disabled-selected-state-background-color); + color: token-utils.slot(disabled-selected-state-text-color); + background-color: token-utils.slot(disabled-selected-state-background-color); } } .mat-button-toggle-focus-overlay { - @include token-utils.create-token-slot(background-color, state-layer-color); + background-color: token-utils.slot(state-layer-color); } &:hover .mat-button-toggle-focus-overlay { - @include token-utils.create-token-slot(opacity, hover-state-layer-opacity); + opacity: token-utils.slot(hover-state-layer-opacity); } // Similar to components like the checkbox, slide-toggle and radio, we cannot show the focus @@ -241,7 +239,7 @@ $_standard-tokens: ( // always treated as programmatic focus. // TODO(paul): support `program` as well. See https://github.com/angular/components/issues/9889 &.cdk-keyboard-focused .mat-button-toggle-focus-overlay { - @include token-utils.create-token-slot(opacity, focus-state-layer-opacity); + opacity: token-utils.slot(focus-state-layer-opacity); } } @@ -262,7 +260,7 @@ $_standard-tokens: ( padding: 0 $legacy-padding; @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(line-height, height); + line-height: token-utils.slot(height); } // Prevents IE from shifting the content on click. @@ -272,7 +270,7 @@ $_standard-tokens: ( padding: 0 $standard-padding; @include token-utils.use-tokens($_standard-tokens...) { - @include token-utils.create-token-slot(line-height, height); + line-height: token-utils.slot(height); } } } @@ -291,7 +289,7 @@ $_standard-tokens: ( opacity: 0; @include token-utils.use-tokens($_legacy-tokens...) { - @include token-utils.create-token-slot(background-color, state-layer-color); + background-color: token-utils.slot(state-layer-color); } } @@ -383,30 +381,30 @@ $_standard-tokens: ( // radius of the button-toggle-group or standalone button-toggle. @include token-utils.use-tokens($_standard-tokens...) { .mat-button-toggle-standalone.mat-button-toggle-appearance-standard { - @include token-utils.create-token-slot(--mat-focus-indicator-border-radius, shape); + --mat-focus-indicator-border-radius: #{token-utils.slot(shape)}; } .mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle { &:last-of-type .mat-button-toggle-button::before { - @include token-utils.create-token-slot(border-top-right-radius, shape); - @include token-utils.create-token-slot(border-bottom-right-radius, shape); + border-top-right-radius: token-utils.slot(shape); + border-bottom-right-radius: token-utils.slot(shape); } &:first-of-type .mat-button-toggle-button::before { - @include token-utils.create-token-slot(border-top-left-radius, shape); - @include token-utils.create-token-slot(border-bottom-left-radius, shape); + border-top-left-radius: token-utils.slot(shape); + border-bottom-left-radius: token-utils.slot(shape); } } .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle { &:last-of-type .mat-button-toggle-button::before { - @include token-utils.create-token-slot(border-bottom-right-radius, shape); - @include token-utils.create-token-slot(border-bottom-left-radius, shape); + border-bottom-right-radius: token-utils.slot(shape); + border-bottom-left-radius: token-utils.slot(shape); } &:first-of-type .mat-button-toggle-button::before { - @include token-utils.create-token-slot(border-top-right-radius, shape); - @include token-utils.create-token-slot(border-top-left-radius, shape); + border-top-right-radius: token-utils.slot(shape); + border-top-left-radius: token-utils.slot(shape); } } } diff --git a/src/material/button-toggle/testing/BUILD.bazel b/src/material/button-toggle/testing/BUILD.bazel index 1473c3997105..4a1a400b94f2 100644 --- a/src/material/button-toggle/testing/BUILD.bazel +++ b/src/material/button-toggle/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", "//src/material/button-toggle", @@ -21,11 +21,13 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button-toggle", diff --git a/src/material/button/BUILD.bazel b/src/material/button/BUILD.bazel index 2f71c888a923..5f7f31fb7d9e 100644 --- a/src/material/button/BUILD.bazel +++ b/src/material/button/BUILD.bazel @@ -2,96 +2,192 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "button", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [ - ":button_high_contrast_scss", - ":button_scss", - ":fab_scss", - ":icon-button_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-extended-fab.scss", + "_m3-fab.scss", + "_m3-fab-small.scss", + "_m3-filled-button.scss", + "_m3-icon-button.scss", + "_m3-outlined-button.scss", + "_m3-protected-button.scss", + "_m3-text-button.scss", + "_m3-tonal-button.scss", + ], deps = [ - "//src/material/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-extended-fab.scss", + "_m2-fab.scss", + "_m2-fab-small.scss", + "_m2-filled-button.scss", + "_m2-icon-button.scss", + "_m2-outlined-button.scss", + "_m2-protected-button.scss", + "_m2-text-button.scss", + "_m2-tonal-button.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "button_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "theme", + srcs = [ + "_button-theme.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_library( - name = "button_base_scss_lib", - srcs = ["_button-base.scss"], + name = "fab_theme", + srcs = ["_fab-theme.scss"], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +sass_library( + name = "icon_button_theme", + srcs = ["_icon-button-theme.scss"], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], ) sass_binary( - name = "button_scss", - src = "button.scss", + name = "icon_button_css", + src = "icon-button.scss", deps = [ - ":button_base_scss_lib", - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + ":base_lib", + ":m2", + "//src/material/core/style:private", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "button_high_contrast_scss", + name = "fab_css", + src = "fab.scss", + deps = [ + ":base_lib", + ":m2", + "//src/material/core/focus-indicators", + "//src/material/core/style:private", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +sass_binary( + name = "button_high_contrast", src = "button-high-contrast.scss", deps = [ "//src/cdk:sass_lib", ], ) -sass_binary( - name = "fab_scss", - src = "fab.scss", +sass_library( + name = "base_lib", + srcs = [ + "_button-base.scss", + ], deps = [ - ":button_base_scss_lib", - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:layout_common", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "icon-button_scss", - src = "icon-button.scss", + name = "css", + src = "button.scss", deps = [ - ":button_base_scss_lib", - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + ":base_lib", + ":m2", + "//src/material/core/focus-indicators", + "//src/material/core/style:private", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "button", + srcs = [ + "button.ts", + "button-base.ts", + "fab.ts", + "icon-button.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "button.html", + ":css", + ":fab_css", + ":icon_button_css", + "icon-button.html", + ":button_high_contrast", + ], + deps = [ + "//:node_modules/@angular/core", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "button_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":button", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", "//src/cdk/testing/private", "//src/material/core", - "@npm//@angular/platform-browser", ], ) @@ -109,7 +205,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":button_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/button/_button-base.scss b/src/material/button/_button-base.scss index 42f0af85f757..b20bc7f9d121 100644 --- a/src/material/button/_button-base.scss +++ b/src/material/button/_button-base.scss @@ -60,31 +60,31 @@ @mixin mat-private-button-ripple($prefix, $slots) { @include token-utils.use-tokens($prefix, $slots) { .mat-ripple-element { - @include token-utils.create-token-slot(background-color, ripple-color); + background-color: token-utils.slot(ripple-color); } .mat-mdc-button-persistent-ripple::before { - @include token-utils.create-token-slot(background-color, state-layer-color); + background-color: token-utils.slot(state-layer-color); } &.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before { - @include token-utils.create-token-slot(background-color, disabled-state-layer-color); + background-color: token-utils.slot(disabled-state-layer-color); } &:hover > .mat-mdc-button-persistent-ripple::before { - @include token-utils.create-token-slot(opacity, hover-state-layer-opacity); + opacity: token-utils.slot(hover-state-layer-opacity); } &.cdk-program-focused, &.cdk-keyboard-focused, &.mat-mdc-button-disabled-interactive:focus { > .mat-mdc-button-persistent-ripple::before { - @include token-utils.create-token-slot(opacity, focus-state-layer-opacity); + opacity: token-utils.slot(focus-state-layer-opacity); } } &:active > .mat-mdc-button-persistent-ripple::before { - @include token-utils.create-token-slot(opacity, pressed-state-layer-opacity); + opacity: token-utils.slot(pressed-state-layer-opacity); } } } @@ -112,7 +112,7 @@ // Adds an elevation shadow to a button. @mixin mat-private-button-elevation($token-name) { // MDC outputs a variable that is the same as the token name, but suffixed with `-shadow`. - box-shadow: token-utils.get-token-variable($token-name + '-shadow'); + box-shadow: token-utils.slot($token-name + '-shadow'); } @mixin mat-private-button-touch-target($is-square, $prefix, $slots) { @@ -132,19 +132,19 @@ } @include token-utils.use-tokens($prefix, $slots) { - @include token-utils.create-token-slot(display, touch-target-display); + display: token-utils.slot(touch-target-display); } } } @mixin mat-private-button-horizontal-layout($prefix, $slots, $has-with-icon-padding) { @include token-utils.use-tokens($prefix, $slots) { - $icon-spacing: token-utils.get-token-variable(icon-spacing, true); - $icon-offset: token-utils.get-token-variable(icon-offset, true); + $icon-spacing: token-utils.slot(icon-spacing, true); + $icon-offset: token-utils.slot(icon-offset, true); @if ($has-with-icon-padding) { $with-icon-horizontal-padding: - token-utils.get-token-variable(with-icon-horizontal-padding, true); + token-utils.slot(with-icon-horizontal-padding, true); // stylelint-disable-next-line selector-class-pattern &:has(.material-icons, mat-icon, [matButtonIcon]) { diff --git a/src/material/button/_button-theme.scss b/src/material/button/_button-theme.scss index 4f17bb5583ed..a6b36fea9e4a 100644 --- a/src/material/button/_button-theme.scss +++ b/src/material/button/_button-theme.scss @@ -3,90 +3,58 @@ @use '../core/theming/validation'; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mdc/filled-button' as tokens-mdc-filled-button; -@use '../core/tokens/m2/mat/filled-button' as tokens-mat-filled-button; -@use '../core/tokens/m2/mdc/outlined-button' as tokens-mdc-outlined-button; -@use '../core/tokens/m2/mat/outlined-button' as tokens-mat-outlined-button; -@use '../core/tokens/m2/mdc/protected-button' as tokens-mdc-protected-button; -@use '../core/tokens/m2/mat/protected-button' as tokens-mat-protected-button; -@use '../core/tokens/m2/mdc/text-button' as tokens-mdc-text-button; -@use '../core/tokens/m2/mat/text-button' as tokens-mat-text-button; -@use '../core/tokens/m2/mat/tonal-button' as tokens-mat-tonal-button; +@use './m2-filled-button'; +@use './m2-outlined-button'; +@use './m2-protected-button'; +@use './m2-text-button'; +@use './m2-tonal-button'; @use '../core/style/sass-utils'; @mixin _text-button-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-text-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-text-button.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-text-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-text-button.get-color-tokens($theme) + m2-text-button.private-get-color-palette-color-tokens($theme, $palette), + m2-text-button.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-text-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-text-button.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-text-button.$prefix, $mat-tokens); } @mixin _filled-button-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-filled-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-filled-button.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-filled-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-filled-button.get-color-tokens($theme) + m2-filled-button.private-get-color-palette-color-tokens($theme, $palette), + m2-filled-button.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-filled-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-filled-button.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-filled-button.$prefix, $mat-tokens); } @mixin _protected-button-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-protected-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-protected-button.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-protected-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-protected-button.get-color-tokens($theme) + m2-protected-button.private-get-color-palette-color-tokens($theme, $palette), + m2-protected-button.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-protected-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-protected-button.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-protected-button.$prefix, $mat-tokens); } @mixin _outlined-button-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-outlined-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-outlined-button.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-outlined-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-outlined-button.get-color-tokens($theme) + m2-outlined-button.private-get-color-palette-color-tokens($theme, $palette), + m2-outlined-button.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-outlined-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-outlined-button.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-outlined-button.$prefix, $mat-tokens); } @mixin _tonal-button-variant($theme, $palette) { - @include token-utils.create-token-values-mixed(tokens-mat-tonal-button.$prefix, if( + @include token-utils.create-token-values-mixed(m2-tonal-button.$prefix, if( $palette, - tokens-mat-tonal-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-tonal-button.get-color-tokens($theme) + m2-tonal-button.private-get-color-palette-color-tokens($theme, $palette), + m2-tonal-button.get-color-tokens($theme) )); } @@ -95,80 +63,47 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-text-button-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mdc-text-button.$prefix, - $options... - ); - $mdc-protected-button-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mdc-protected-button.$prefix, - $options... - ); - $mdc-filled-button-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mdc-filled-button.$prefix, - $options... - ); - $mdc-outlined-button-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mdc-outlined-button.$prefix, - $options... - ); $mat-text-button-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-text-button.$prefix, + m2-text-button.$prefix, $options... ); $mat-protected-button-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-protected-button.$prefix, + m2-protected-button.$prefix, $options... ); $mat-filled-button-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-filled-button.$prefix, + m2-filled-button.$prefix, $options... ); $mat-outlined-button-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-outlined-button.$prefix, + m2-outlined-button.$prefix, $options... ); $mat-tonal-button-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-tonal-button.$prefix, + m2-tonal-button.$prefix, $options... ); - @include token-utils.create-token-values(tokens-mdc-text-button.$prefix, $mdc-text-button-tokens); - @include token-utils.create-token-values( - tokens-mdc-protected-button.$prefix, - $mdc-protected-button-tokens - ); + @include token-utils.create-token-values(m2-text-button.$prefix, $mat-text-button-tokens); @include token-utils.create-token-values( - tokens-mdc-filled-button.$prefix, - $mdc-filled-button-tokens - ); - @include token-utils.create-token-values( - tokens-mdc-outlined-button.$prefix, - $mdc-outlined-button-tokens - ); - @include token-utils.create-token-values(tokens-mat-text-button.$prefix, $mat-text-button-tokens); - @include token-utils.create-token-values( - tokens-mat-protected-button.$prefix, + m2-protected-button.$prefix, $mat-protected-button-tokens ); @include token-utils.create-token-values( - tokens-mat-filled-button.$prefix, + m2-filled-button.$prefix, $mat-filled-button-tokens ); @include token-utils.create-token-values( - tokens-mat-outlined-button.$prefix, + m2-outlined-button.$prefix, $mat-outlined-button-tokens ); @include token-utils.create-token-values( - tokens-mat-tonal-button.$prefix, + m2-tonal-button.$prefix, $mat-tonal-button-tokens ); } @@ -182,41 +117,24 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-text-button.$prefix, - tokens-mdc-text-button.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mdc-filled-button.$prefix, - tokens-mdc-filled-button.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mdc-protected-button.$prefix, - tokens-mdc-protected-button.get-unthemable-tokens() + m2-text-button.$prefix, + m2-text-button.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-button.$prefix, - tokens-mdc-outlined-button.get-unthemable-tokens() + m2-filled-button.$prefix, + m2-filled-button.get-unthemable-tokens() ); - @include token-utils.create-token-values-mixed( - tokens-mat-text-button.$prefix, - tokens-mat-text-button.get-unthemable-tokens() + m2-protected-button.$prefix, + m2-protected-button.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-filled-button.$prefix, - tokens-mat-filled-button.get-unthemable-tokens() + m2-outlined-button.$prefix, + m2-outlined-button.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-protected-button.$prefix, - tokens-mat-protected-button.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-outlined-button.$prefix, - tokens-mat-outlined-button.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-tonal-button.$prefix, - tokens-mat-tonal-button.get-unthemable-tokens() + m2-tonal-button.$prefix, + m2-tonal-button.get-unthemable-tokens() ); } } @@ -319,41 +237,24 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-text-button.$prefix, - tokens-mdc-text-button.get-typography-tokens($theme) + m2-text-button.$prefix, + m2-text-button.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-filled-button.$prefix, - tokens-mdc-filled-button.get-typography-tokens($theme) + m2-filled-button.$prefix, + m2-filled-button.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-protected-button.$prefix, - tokens-mdc-protected-button.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-button.$prefix, - tokens-mdc-outlined-button.get-typography-tokens($theme) - ); - - @include token-utils.create-token-values-mixed( - tokens-mat-text-button.$prefix, - tokens-mat-text-button.get-typography-tokens($theme) + m2-protected-button.$prefix, + m2-protected-button.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-filled-button.$prefix, - tokens-mat-filled-button.get-typography-tokens($theme) + m2-outlined-button.$prefix, + m2-outlined-button.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-protected-button.$prefix, - tokens-mat-protected-button.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-outlined-button.$prefix, - tokens-mat-outlined-button.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-tonal-button.$prefix, - tokens-mat-tonal-button.get-typography-tokens($theme) + m2-tonal-button.$prefix, + m2-tonal-button.get-typography-tokens($theme) ); } } @@ -367,41 +268,24 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-text-button.$prefix, - tokens-mdc-text-button.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mdc-filled-button.$prefix, - tokens-mdc-filled-button.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mdc-protected-button.$prefix, - tokens-mdc-protected-button.get-density-tokens($theme) + m2-text-button.$prefix, + m2-text-button.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-button.$prefix, - tokens-mdc-outlined-button.get-density-tokens($theme) - ); - - @include token-utils.create-token-values-mixed( - tokens-mat-text-button.$prefix, - tokens-mat-text-button.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-filled-button.$prefix, - tokens-mat-filled-button.get-density-tokens($theme) + m2-filled-button.$prefix, + m2-filled-button.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-protected-button.$prefix, - tokens-mat-protected-button.get-density-tokens($theme) + m2-protected-button.$prefix, + m2-protected-button.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-outlined-button.$prefix, - tokens-mat-outlined-button.get-density-tokens($theme) + m2-outlined-button.$prefix, + m2-outlined-button.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-tonal-button.$prefix, - tokens-mat-tonal-button.get-density-tokens($theme) + m2-tonal-button.$prefix, + m2-tonal-button.get-density-tokens($theme) ); } } @@ -409,59 +293,35 @@ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction. @function _define-overrides() { - $mdc-filled-button-tokens: tokens-mdc-filled-button.get-token-slots(); - $mat-filled-button-tokens: tokens-mat-filled-button.get-token-slots(); - $mdc-outlined-button-tokens: tokens-mdc-outlined-button.get-token-slots(); - $mat-outlined-button-tokens: tokens-mat-outlined-button.get-token-slots(); - $mdc-protected-button-tokens: tokens-mdc-protected-button.get-token-slots(); - $mat-protected-button-tokens: tokens-mat-protected-button.get-token-slots(); - $mdc-text-button-tokens: tokens-mdc-text-button.get-token-slots(); - $mat-text-button-tokens: tokens-mat-text-button.get-token-slots(); - $mat-tonal-button-tokens: tokens-mat-tonal-button.get-token-slots(); + $mat-filled-button-tokens: m2-filled-button.get-token-slots(); + $mat-outlined-button-tokens: m2-outlined-button.get-token-slots(); + $mat-protected-button-tokens: m2-protected-button.get-token-slots(); + $mat-text-button-tokens: m2-text-button.get-token-slots(); + $mat-tonal-button-tokens: m2-tonal-button.get-token-slots(); @return ( ( - namespace: tokens-mdc-filled-button.$prefix, - tokens: $mdc-filled-button-tokens, - prefix: 'filled-', - ), - ( - namespace: tokens-mat-filled-button.$prefix, + namespace: m2-filled-button.$prefix, tokens: $mat-filled-button-tokens, prefix: 'filled-', ), ( - namespace: tokens-mdc-outlined-button.$prefix, - tokens: $mdc-outlined-button-tokens, - prefix: 'outlined-', - ), - ( - namespace: tokens-mat-outlined-button.$prefix, + namespace: m2-outlined-button.$prefix, tokens: $mat-outlined-button-tokens, prefix: 'outlined-', ), ( - namespace: tokens-mdc-protected-button.$prefix, - tokens: $mdc-protected-button-tokens, - prefix: 'protected-', - ), - ( - namespace: tokens-mat-protected-button.$prefix, + namespace: m2-protected-button.$prefix, tokens: $mat-protected-button-tokens, prefix: 'protected-', ), ( - namespace: tokens-mdc-text-button.$prefix, - tokens: $mdc-text-button-tokens, - prefix: 'text-', - ), - ( - namespace: tokens-mat-text-button.$prefix, + namespace: m2-text-button.$prefix, tokens: $mat-text-button-tokens, prefix: 'text-', ), ( - namespace: tokens-mat-tonal-button.$prefix, + namespace: m2-tonal-button.$prefix, tokens: $mat-tonal-button-tokens, prefix: 'tonal-', ), diff --git a/src/material/button/_fab-theme.scss b/src/material/button/_fab-theme.scss index 6794595502cf..b9d95667e743 100644 --- a/src/material/button/_fab-theme.scss +++ b/src/material/button/_fab-theme.scss @@ -2,11 +2,9 @@ @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; -@use '../core/tokens/m2/mdc/fab' as tokens-mdc-fab; -@use '../core/tokens/m2/mdc/fab-small' as tokens-mdc-fab-small; -@use '../core/tokens/m2/mdc/extended-fab' as tokens-mdc-extended-fab; -@use '../core/tokens/m2/mat/fab' as tokens-mat-fab; -@use '../core/tokens/m2/mat/fab-small' as tokens-mat-fab-small; +@use './m2-extended-fab'; +@use './m2-fab'; +@use './m2-fab-small'; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; @@ -19,53 +17,39 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-fab.$prefix, - tokens-mdc-fab.get-unthemable-tokens() + m2-fab.$prefix, + m2-fab.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-fab-small.$prefix, - tokens-mdc-fab-small.get-unthemable-tokens() + m2-fab-small.$prefix, + m2-fab-small.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-extended-fab.$prefix, - tokens-mdc-extended-fab.get-unthemable-tokens() + m2-extended-fab.$prefix, + m2-extended-fab.get-unthemable-tokens() ); } } } @mixin _fab-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-fab.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-fab.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-fab.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-fab.get-color-tokens($theme) + m2-fab.private-get-color-palette-color-tokens($theme, $palette), + m2-fab.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-fab.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-fab.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-fab.$prefix, $mat-tokens); } @mixin _fab-small-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-fab-small.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-fab-small.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-fab-small.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-fab-small.get-color-tokens($theme) + m2-fab-small.private-get-color-palette-color-tokens($theme, $palette), + m2-fab-small.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-fab-small.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-fab-small.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-fab-small.$prefix, $mat-tokens); } /// Outputs color theme styles for the mat-fab. @@ -81,8 +65,8 @@ @include _fab-variant($theme, null); @include _fab-small-variant($theme, null); @include token-utils.create-token-values-mixed( - tokens-mdc-extended-fab.$prefix, - tokens-mdc-extended-fab.get-color-tokens($theme) + m2-extended-fab.$prefix, + m2-extended-fab.get-color-tokens($theme) ); .mat-mdc-fab { @@ -124,16 +108,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-extended-fab.$prefix, - tokens-mdc-extended-fab.get-typography-tokens($theme) + m2-extended-fab.$prefix, + m2-extended-fab.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-fab.$prefix, - tokens-mat-fab.get-typography-tokens($theme) + m2-fab.$prefix, + m2-fab.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-fab-small.$prefix, - tokens-mat-fab-small.get-typography-tokens($theme) + m2-fab-small.$prefix, + m2-fab-small.get-typography-tokens($theme) ); } } @@ -147,12 +131,12 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-fab.$prefix, - tokens-mat-fab.get-density-tokens($theme) + m2-fab.$prefix, + m2-fab.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-fab-small.$prefix, - tokens-mat-fab-small.get-density-tokens($theme) + m2-fab-small.$prefix, + m2-fab-small.get-density-tokens($theme) ); } } @@ -162,26 +146,17 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-fab.$prefix, - tokens: tokens-mdc-fab.get-token-slots(), - ), - ( - namespace: tokens-mdc-fab-small.$prefix, - tokens: tokens-mdc-fab-small.get-token-slots(), - prefix: 'small-', - ), - ( - namespace: tokens-mdc-extended-fab.$prefix, - tokens: tokens-mdc-extended-fab.get-token-slots(), + namespace: m2-extended-fab.$prefix, + tokens: m2-extended-fab.get-token-slots(), prefix: 'extended-', ), ( - namespace: tokens-mat-fab.$prefix, - tokens: tokens-mat-fab.get-token-slots(), + namespace: m2-fab.$prefix, + tokens: m2-fab.get-token-slots(), ), ( - namespace: tokens-mat-fab-small.$prefix, - tokens: tokens-mat-fab-small.get-token-slots(), + namespace: m2-fab-small.$prefix, + tokens: m2-fab-small.get-token-slots(), prefix: 'small-', ), ); @@ -223,27 +198,19 @@ ); $mdc-extended-fab-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-extended-fab.$prefix, - $options... - ); - $mdc-fab-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-fab.$prefix, $options...); - $mdc-fab-small-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mdc-fab-small.$prefix, + m2-extended-fab.$prefix, $options... ); - $mat-fab-tokens: token-utils.get-tokens-for($tokens, tokens-mat-fab.$prefix, $options...); + $mat-fab-tokens: token-utils.get-tokens-for($tokens, m2-fab.$prefix, $options...); $mat-fab-small-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-fab-small.$prefix, + m2-fab-small.$prefix, $options... ); @include token-utils.create-token-values( - tokens-mdc-extended-fab.$prefix, + m2-extended-fab.$prefix, $mdc-extended-fab-tokens ); - @include token-utils.create-token-values(tokens-mdc-fab.$prefix, $mdc-fab-tokens); - @include token-utils.create-token-values(tokens-mdc-fab-small.$prefix, $mdc-fab-small-tokens); - @include token-utils.create-token-values(tokens-mat-fab.$prefix, $mat-fab-tokens); - @include token-utils.create-token-values(tokens-mat-fab-small.$prefix, $mat-fab-small-tokens); + @include token-utils.create-token-values(m2-fab.$prefix, $mat-fab-tokens); + @include token-utils.create-token-values(m2-fab-small.$prefix, $mat-fab-small-tokens); } diff --git a/src/material/button/_icon-button-theme.scss b/src/material/button/_icon-button-theme.scss index 8e2bae6f9375..74e3470ac591 100644 --- a/src/material/button/_icon-button-theme.scss +++ b/src/material/button/_icon-button-theme.scss @@ -1,7 +1,6 @@ @use 'sass:map'; @use 'sass:math'; -@use '../core/tokens/m2/mdc/icon-button' as tokens-mdc-icon-button; -@use '../core/tokens/m2/mat/icon-button' as tokens-mat-icon-button; +@use './m2-icon-button'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; @use '../core/theming/theming'; @@ -15,28 +14,21 @@ // Add default values for tokens not related to color, typography, or density. @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-icon-button.$prefix, - tokens-mdc-icon-button.get-unthemable-tokens() + m2-icon-button.$prefix, + m2-icon-button.get-unthemable-tokens() ); } } } @mixin _icon-button-variant($theme, $palette) { - $mdc-tokens: if( - $palette, - tokens-mdc-icon-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mdc-icon-button.get-color-tokens($theme) - ); - $mat-tokens: if( $palette, - tokens-mat-icon-button.private-get-color-palette-color-tokens($theme, $palette), - tokens-mat-icon-button.get-color-tokens($theme) + m2-icon-button.private-get-color-palette-color-tokens($theme, $palette), + m2-icon-button.get-color-tokens($theme) ); - @include token-utils.create-token-values-mixed(tokens-mdc-icon-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values-mixed(tokens-mat-icon-button.$prefix, $mat-tokens); + @include token-utils.create-token-values-mixed(m2-icon-button.$prefix, $mat-tokens); } /// Outputs color theme styles for the mat-icon-button. @@ -73,8 +65,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-icon-button.$prefix, - tokens-mat-icon-button.get-typography-tokens($theme) + m2-icon-button.$prefix, + m2-icon-button.get-typography-tokens($theme) ); } } @@ -98,8 +90,9 @@ @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-icon-button.$prefix, - tokens-mat-icon-button.get-density-tokens($theme) + m2-icon-button.$prefix, + m2-icon-button.get-density-tokens( + $theme, $exclude: (state-layer-size)) ); } @@ -108,14 +101,15 @@ // Match the styles that used to be present. This is necessary for backwards // compat to match the previous implementations selector count (two classes). --mdc-icon-button-state-layer-size: #{$calculated-size}; + --mat-icon-button-state-layer-size: #{$calculated-size}; - // TODO: Switch calculated-size to "var(--mdc-icon-button-state-layer-size)" + // TODO: Switch calculated-size to "var(--mat-icon-button-state-layer-size)" // Currently fails validation because the variable is "undefined" // in the sass stack. - // TODO: Switch icon-size to "var(--mdc-icon-button-icon-size)". Currently + // TODO: Switch icon-size to "var(--mat-icon-button-icon-size)". Currently // fails validation because the variable is "undefined" in the sass stack. - width: var(--mdc-icon-button-state-layer-size); - height: var(--mdc-icon-button-state-layer-size); + width: var(--mat-icon-button-state-layer-size); + height: var(--mat-icon-button-state-layer-size); padding: math.div($calculated-size - $icon-size, 2); } } @@ -125,12 +119,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-icon-button.$prefix, - tokens: tokens-mdc-icon-button.get-token-slots(), - ), - ( - namespace: tokens-mat-icon-button.$prefix, - tokens: tokens-mat-icon-button.get-token-slots(), + namespace: m2-icon-button.$prefix, + tokens: m2-icon-button.get-token-slots(), ), ); } @@ -167,10 +157,8 @@ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); @if ($tokens != ()) { - $mdc-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-icon-button.$prefix, $options...); - $mat-tokens: token-utils.get-tokens-for($tokens, tokens-mat-icon-button.$prefix, $options...); + $mat-tokens: token-utils.get-tokens-for($tokens, m2-icon-button.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-icon-button.$prefix, $mdc-tokens); - @include token-utils.create-token-values(tokens-mat-icon-button.$prefix, $mat-tokens); + @include token-utils.create-token-values(m2-icon-button.$prefix, $mat-tokens); } } diff --git a/src/material/button/_m2-extended-fab.scss b/src/material/button/_m2-extended-fab.scss new file mode 100644 index 000000000000..56d20a0468b1 --- /dev/null +++ b/src/material/button/_m2-extended-fab.scss @@ -0,0 +1,53 @@ +@use 'sass:map'; +@use '../core/tokens/m2-utils'; +@use '../core/style/elevation'; +@use '../core/theming/inspection'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, fab-extended); + +@function get-unthemable-tokens() { + @return ( + container-height: 48px, + container-shape: 24px, + container-elevation-shadow: elevation.get-box-shadow(6), + focus-container-elevation-shadow: elevation.get-box-shadow(8), + hover-container-elevation-shadow: elevation.get-box-shadow(8), + pressed-container-elevation-shadow: elevation.get-box-shadow(12), + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme) { + @return (); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return ( + label-text-font: inspection.get-theme-typography($theme, button, font-family), + label-text-size: inspection.get-theme-typography($theme, button, font-size), + label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, button, font-weight) + ); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + @return (); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return map.merge( + get-unthemable-tokens(), + map.merge( + get-color-tokens(m2-utils.$placeholder-color-config), + map.merge( + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ) + ) + ); +} diff --git a/src/material/core/tokens/m2/mat/_fab-small.scss b/src/material/button/_m2-fab-small.scss similarity index 67% rename from src/material/core/tokens/m2/mat/_fab-small.scss rename to src/material/button/_m2-fab-small.scss index 35afb399d459..c377ab22bc83 100644 --- a/src/material/core/tokens/m2/mat/_fab-small.scss +++ b/src/material/button/_m2-fab-small.scss @@ -1,8 +1,9 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, fab-small); @@ -10,7 +11,13 @@ $prefix: (mat, fab-small); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { - @return (); + @return ( + container-shape: 50%, + container-elevation-shadow: elevation.get-box-shadow(6), + focus-container-elevation-shadow: elevation.get-box-shadow(8), + hover-container-elevation-shadow: elevation.get-box-shadow(8), + pressed-container-elevation-shadow: elevation.get-box-shadow(12), + ); } // Tokens that can be configured through Angular Material's color theming API. @@ -18,35 +25,18 @@ $prefix: (mat, fab-small); $is-dark: inspection.get-theme-type($theme) == dark; @return ( - // Color of icons and text projected into a FAB. - foreground-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. + container-color: inspection.get-theme-color($theme, background, card), + disabled-state-container-color: + inspection.get-theme-color($theme, background, disabled-button, 0.12), + disabled-state-foreground-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. + foreground-color: inspection.get-theme-color($theme, foreground, base), + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // MDC doesn't have tokens for disabled FABs so we need to implemented them ourselves. - // Background color of the container when the FAB is disabled. - disabled-state-container-color: inspection.get-theme-color($theme, background, disabled-button, - 0.12), - - // Color of the icons and projected text when the FAB is disabled. - disabled-state-foreground-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } @@ -59,11 +49,11 @@ $prefix: (mat, fab-small); $ripple-color: null; $contrast-color: inspection.get-theme-color($theme, $palette-name, default-contrast); - @if (token-definition.$private-is-internal-build or + @if (m2-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') { $is-dark: inspection.get-theme-type($theme) == dark; $container-color: inspection.get-theme-color($theme, $palette-name); - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); + $contrast-tone: m2-utils.contrast-tone($container-color, $is-dark); $color: if($contrast-tone == 'dark', #000, #fff); $foreground-color: $color; $state-layer-color: $color; @@ -76,6 +66,7 @@ $prefix: (mat, fab-small); } @return ( + container-color: inspection.get-theme-color($theme, $palette-name, default), foreground-color: $foreground-color, state-layer-color: $state-layer-color, ripple-color: $ripple-color, @@ -101,8 +92,8 @@ $prefix: (mat, fab-small); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_fab.scss b/src/material/button/_m2-fab.scss similarity index 67% rename from src/material/core/tokens/m2/mat/_fab.scss rename to src/material/button/_m2-fab.scss index b0e561a80293..e62816e2b51d 100644 --- a/src/material/core/tokens/m2/mat/_fab.scss +++ b/src/material/button/_m2-fab.scss @@ -1,8 +1,9 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, fab); @@ -10,7 +11,13 @@ $prefix: (mat, fab); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { - @return (); + @return ( + container-shape: 50%, + container-elevation-shadow: elevation.get-box-shadow(6), + focus-container-elevation-shadow: elevation.get-box-shadow(8), + hover-container-elevation-shadow: elevation.get-box-shadow(8), + pressed-container-elevation-shadow: elevation.get-box-shadow(12), + ); } // Tokens that can be configured through Angular Material's color theming API. @@ -18,35 +25,18 @@ $prefix: (mat, fab); $is-dark: inspection.get-theme-type($theme) == dark; @return ( - // Color of icons and text projected into a FAB. - foreground-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. + container-color: inspection.get-theme-color($theme, background, card), + disabled-state-container-color: + inspection.get-theme-color($theme, background, disabled-button, 0.12), + disabled-state-foreground-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. + foreground-color: inspection.get-theme-color($theme, foreground, base), + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // MDC doesn't have tokens for disabled FABs so we need to implemented them ourselves. - // Background color of the container when the FAB is disabled. - disabled-state-container-color: inspection.get-theme-color($theme, background, disabled-button, - 0.12), - - // Color of the icons and projected text when the FAB is disabled. - disabled-state-foreground-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } @@ -59,11 +49,11 @@ $prefix: (mat, fab); $ripple-color: null; $contrast-color: inspection.get-theme-color($theme, $palette-name, default-contrast); - @if (token-definition.$private-is-internal-build or + @if (m2-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') { $is-dark: inspection.get-theme-type($theme) == dark; $container-color: inspection.get-theme-color($theme, $palette-name); - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); + $contrast-tone: m2-utils.contrast-tone($container-color, $is-dark); $color: if($contrast-tone == 'dark', #000, #fff); $foreground-color: $color; $state-layer-color: $color; @@ -76,6 +66,7 @@ $prefix: (mat, fab); } @return ( + container-color: inspection.get-theme-color($theme, $palette-name, default), foreground-color: $foreground-color, state-layer-color: $state-layer-color, ripple-color: $ripple-color, @@ -101,8 +92,8 @@ $prefix: (mat, fab); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_filled-button.scss b/src/material/button/_m2-filled-button.scss similarity index 60% rename from src/material/core/tokens/m2/mat/_filled-button.scss rename to src/material/button/_m2-filled-button.scss index 77a2571d604b..8b344bcf244f 100644 --- a/src/material/core/tokens/m2/mat/_filled-button.scss +++ b/src/material/button/_m2-filled-button.scss @@ -1,24 +1,20 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use 'sass:map'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, filled-button); +$prefix: (mat, button-filled); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { @return ( - // Start/end padding of the button. + container-shape: 4px, horizontal-padding: 16px, - - // Space between the icon and the button's main content. icon-spacing: 8px, - - // Amount by which to offset the icon so that its presence - // doesn't increase throw off the horizontal padding. icon-offset: -4px, ); } @@ -28,23 +24,17 @@ $prefix: (mat, filled-button); $is-dark: inspection.get-theme-type($theme) == dark; @return ( - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. + container-color: inspection.get-theme-color($theme, background, card), + disabled-container-color: inspection.get-theme-color($theme, foreground, disabled-button, 0.12), + disabled-label-text-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), + label-text-color: inspection.get-theme-color($theme, foreground, text, 1), pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } @@ -53,32 +43,44 @@ $prefix: (mat, filled-button); $state-layer-color: null; $ripple-color: null; $contrast-color: inspection.get-theme-color($theme, $palette-name, default-contrast); + $container-color: inspection.get-theme-color($theme, $palette-name, default); + $label-text-color: null; // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - @if (token-definition.$private-is-internal-build or + @if (m2-utils.$private-is-internal-build or meta.type-of($contrast-color) != 'color') { $is-dark: inspection.get-theme-type($theme) == dark; $container-color: inspection.get-theme-color($theme, $palette-name); - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); + $contrast-tone: m2-utils.contrast-tone($container-color, $is-dark); $color: if($contrast-tone == 'dark', #000, #fff); $state-layer-color: $color; $ripple-color: rgba($color, 0.1); + $label-text-color: if($contrast-tone == 'dark', #000, #fff); } @else { + $label-text-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); $state-layer-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); $ripple-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 0.1); } @return ( - state-layer-color: $state-layer-color, + container-color: $container-color, + label-text-color: $label-text-color, ripple-color: $ripple-color, + state-layer-color: $state-layer-color, ); } // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { - @return (); + @return ( + label-text-font: inspection.get-theme-typography($theme, button, font-family), + label-text-size: inspection.get-theme-typography($theme, button, font-size), + label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, button, font-weight), + label-text-transform: none, + ); } // Tokens that can be configured through Angular Material's density theming API. @@ -87,6 +89,16 @@ $prefix: (mat, filled-button); @return ( touch-target-display: if($density-scale < -1, none, block), + container-height: + map.get( + ( + 0: 36px, + -1: 32px, + -2: 28px, + -3: 24px, + ), + $density-scale + ) ); } @@ -95,8 +107,8 @@ $prefix: (mat, filled-button); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_icon-button.scss b/src/material/button/_m2-icon-button.scss similarity index 65% rename from src/material/core/tokens/m2/mat/_icon-button.scss rename to src/material/button/_m2-icon-button.scss index f955e48a5439..cd4714912983 100644 --- a/src/material/core/tokens/m2/mat/_icon-button.scss +++ b/src/material/button/_m2-icon-button.scss @@ -1,8 +1,9 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use 'sass:map'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, icon-button); @@ -10,7 +11,9 @@ $prefix: (mat, icon-button); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { - @return (); + @return ( + icon-size: 24px, + ); } // Tokens that can be configured through Angular Material's color theming API. @@ -18,23 +21,14 @@ $prefix: (mat, icon-button); $is-dark: inspection.get-theme-type($theme) == dark; @return ( - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. + disabled-icon-color: if($is-dark, rgba(#fff, 0.5), rgba(#000, 0.38)), disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), + icon-color: inherit, pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } @@ -44,6 +38,7 @@ $prefix: (mat, icon-button); $ripple-opacity: 0.1; @return ( + icon-color: inspection.get-theme-color($theme, $palette-name), state-layer-color: $color, ripple-color: if( meta.type-of($color) == color, @@ -58,12 +53,26 @@ $prefix: (mat, icon-button); } // Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); +@function get-density-tokens($theme, $exclude: ()) { + $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - @return ( - touch-target-display: if($density-scale < -1, none, block), + $tokens: ( + touch-target-display: if($scale < -1, none, block), + state-layer-size: map.get(( + 0: 48px, + -1: 44px, + -2: 40px, + -3: 36px, + -4: 32px, + -5: 28px, + ), $scale) ); + + @each $token in $exclude { + $tokens: map.remove($tokens, $token); + } + + @return $tokens; } // Combines the tokens generated by the above functions into a single map with placeholder values. @@ -71,8 +80,8 @@ $prefix: (mat, icon-button); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mdc/_outlined-button.scss b/src/material/button/_m2-outlined-button.scss similarity index 59% rename from src/material/core/tokens/m2/mdc/_outlined-button.scss rename to src/material/button/_m2-outlined-button.scss index 8240384bf5a8..81ecdb1723d7 100644 --- a/src/material/core/tokens/m2/mdc/_outlined-button.scss +++ b/src/material/button/_m2-outlined-button.scss @@ -1,53 +1,23 @@ +@use 'sass:meta'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; @use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-button); +$prefix: (mat, button-outlined); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( keep-touch-target: false, - outline-width: 1px, container-shape: 4px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - hover-state-layer-opacity: null, - focus-state-layer-opacity: null, - pressed-state-layer-opacity: null, - - focus-state-layer-color: null, - hover-state-layer-color: null, - pressed-state-layer-color: null, - - hover-label-text-color: null, - focus-label-text-color: null, - pressed-label-text-color: null, - - hover-outline-color: null, - focus-outline-color: null, - pressed-outline-color: null, - - focus-ring-color: null, - focus-ring-offset: null, - - with-icon-icon-size: null, - with-icon-icon-color: null, - with-icon-hover-icon-color: null, - with-icon-focus-icon-color: null, - with-icon-pressed-icon-color: null, - with-icon-disabled-icon-color: null, + horizontal-padding: 15px, // Normally it's 16px, but -1px for the outline. + icon-spacing: 8px, + icon-offset: -4px, ); } @@ -57,29 +27,42 @@ $prefix: (mdc, outlined-button); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - $outline: if(token-definition.$private-is-internal-build, + $outline: if(m2-utils.$private-is-internal-build, rgba(if($is-dark, #fff, #000), 0.12), inspection.get-theme-color($theme, foreground, divider) ); @return ( + disabled-label-text-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), disabled-outline-color: $outline, - disabled-label-text-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), + disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), + focus-state-layer-opacity: if($is-dark, 0.24, 0.12), + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), label-text-color: inspection.get-theme-color($theme, foreground, text, 1), outline-color: $outline, + pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } // Generates the mapping for the properties that change based on the button palette color. @function private-get-color-palette-color-tokens($theme, $palette-name) { + $color: inspection.get-theme-color($theme, $palette-name); + $ripple-opacity: 0.1; + @return ( label-text-color: inspection.get-theme-color($theme, $palette-name, default), - // TODO: we shouldn't have to set this since it's the same as the non-palette version, however // there are a bunch of tests internally that depend on it. We should remove this and clean // up the screenshots separately. outline-color: map.get(get-color-tokens($theme), outline-color), + state-layer-color: $color, + ripple-color: if( + meta.type-of($color) == color, + rgba($color, $ripple-opacity), + inspection.get-theme-color($theme, foreground, base, $ripple-opacity)), ); } @@ -100,7 +83,7 @@ $prefix: (mdc, outlined-button); @return ( container-height: - map.get( + map.get( ( 0: 36px, -1: 32px, @@ -108,7 +91,8 @@ $prefix: (mdc, outlined-button); -3: 24px, ), $scale - ) + ), + touch-target-display: if($scale < -1, none, block), ); } @@ -116,9 +100,9 @@ $prefix: (mdc, outlined-button); // This is used to create token slots. @function get-token-slots() { @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mdc/_protected-button.scss b/src/material/button/_m2-protected-button.scss similarity index 58% rename from src/material/core/tokens/m2/mdc/_protected-button.scss rename to src/material/button/_m2-protected-button.scss index d50b6c8823de..ae1dcbd12c57 100644 --- a/src/material/core/tokens/m2/mdc/_protected-button.scss +++ b/src/material/button/_m2-protected-button.scss @@ -1,19 +1,16 @@ +@use 'sass:meta'; @use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../style/elevation'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, protected-button); +$prefix: (mat, button-protected); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( container-shape: 4px, @@ -22,34 +19,9 @@ $prefix: (mdc, protected-button); focus-container-elevation-shadow: elevation.get-box-shadow(4), hover-container-elevation-shadow: elevation.get-box-shadow(4), pressed-container-elevation-shadow: elevation.get-box-shadow(8), - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - focus-ring-color: null, - focus-ring-offset: null, - focus-state-layer-opacity: null, - hover-state-layer-opacity: null, - pressed-state-layer-opacity: null, - with-icon-icon-size: null, - focus-label-text-color: null, - hover-label-text-color: null, - pressed-label-text-color: null, - with-icon-disabled-icon-color: null, - with-icon-focus-icon-color: null, - with-icon-hover-icon-color: null, - with-icon-icon-color: null, - with-icon-pressed-icon-color: null, - focus-state-layer-color: null, - hover-state-layer-color: null, - pressed-state-layer-color: null, - keep-touch-target: null, - container-elevation: null, - disabled-container-elevation: null, - focus-container-elevation: null, - hover-container-elevation: null, - pressed-container-elevation: null, - container-shadow-color: null, + horizontal-padding: 16px, + icon-spacing: 8px, + icon-offset: -4px, ); } @@ -59,33 +31,50 @@ $prefix: (mdc, protected-button); @return ( container-color: inspection.get-theme-color($theme, background, card), + disabled-container-color: inspection.get-theme-color($theme, foreground, disabled-button, 0.12), + disabled-label-text-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), + disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), + focus-state-layer-opacity: if($is-dark, 0.24, 0.12), + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), label-text-color: inspection.get-theme-color($theme, foreground, text, 1), - disabled-container-color: inspection.get-theme-color($theme, foreground, disabled-button, - 0.12), - disabled-label-text-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), + pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } // Generates the mapping for the properties that change based on the button palette color. @function private-get-color-palette-color-tokens($theme, $palette-name) { + $state-layer-color: null; + $ripple-color: null; + $contrast-color: inspection.get-theme-color($theme, $palette-name, default-contrast); $container-color: inspection.get-theme-color($theme, $palette-name, default); $label-text-color: null; // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - @if (token-definition.$private-is-internal-build) { + @if (m2-utils.$private-is-internal-build or + meta.type-of($contrast-color) != 'color') { $is-dark: inspection.get-theme-type($theme) == dark; - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); + $container-color: inspection.get-theme-color($theme, $palette-name); + $contrast-tone: m2-utils.contrast-tone($container-color, $is-dark); + $color: if($contrast-tone == 'dark', #000, #fff); + $state-layer-color: $color; + $ripple-color: rgba($color, 0.1); $label-text-color: if($contrast-tone == 'dark', #000, #fff); } @else { $label-text-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); + $state-layer-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); + $ripple-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 0.1); } @return ( container-color: $container-color, label-text-color: $label-text-color, + ripple-color: $ripple-color, + state-layer-color: $state-layer-color, ); } @@ -103,9 +92,10 @@ $prefix: (mdc, protected-button); // Tokens that can be configured through Angular Material's density theming API. @function get-density-tokens($theme) { $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); + @return ( container-height: - map.get( + map.get( ( 0: 36px, -1: 32px, @@ -113,7 +103,8 @@ $prefix: (mdc, protected-button); -3: 24px, ), $scale - ) + ), + touch-target-display: if($scale < -1, none, block), ); } @@ -121,9 +112,9 @@ $prefix: (mdc, protected-button); // This is used to create token slots. @function get-token-slots() { @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_text-button.scss b/src/material/button/_m2-text-button.scss similarity index 60% rename from src/material/core/tokens/m2/mat/_text-button.scss rename to src/material/button/_m2-text-button.scss index 962e3f335848..72daf199cbcf 100644 --- a/src/material/core/tokens/m2/mat/_text-button.scss +++ b/src/material/button/_m2-text-button.scss @@ -1,28 +1,22 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use 'sass:map'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, text-button); +$prefix: (mat, button-text); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { @return ( - // Start/end padding of the button. + container-shape: 4px, horizontal-padding: 8px, - - // Start/end padding of the button when it has an icon. - with-icon-horizontal-padding: 8px, - - // Space between the icon and the button's main content. - icon-spacing: 8px, - - // Amount by which to offset the icon so that its presence - // doesn't increase throw off the horizontal padding. icon-offset: 0, + icon-spacing: 8px, + with-icon-horizontal-padding: 8px, ); } @@ -31,23 +25,15 @@ $prefix: (mat, text-button); $is-dark: inspection.get-theme-type($theme) == dark; @return ( - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. + disabled-label-text-color: + inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. + hover-state-layer-opacity: if($is-dark, 0.08, 0.04), + label-text-color: inspection.get-theme-color($theme, foreground, text, 1), pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), + ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), + state-layer-color: inspection.get-theme-color($theme, foreground, base), ); } @@ -57,6 +43,7 @@ $prefix: (mat, text-button); $ripple-opacity: 0.1; @return ( + label-text-color: inspection.get-theme-color($theme, $palette-name), state-layer-color: $color, ripple-color: if( meta.type-of($color) == color, @@ -67,15 +54,27 @@ $prefix: (mat, text-button); // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { - @return (); + @return ( + label-text-font: inspection.get-theme-typography($theme, button, font-family), + label-text-size: inspection.get-theme-typography($theme, button, font-size), + label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, button, font-weight), + label-text-transform: none, + ); } // Tokens that can be configured through Angular Material's density theming API. @function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); + $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); @return ( - touch-target-display: if($density-scale < -1, none, block), + container-height: map.get(( + 0: 36px, + -1: 32px, + -2: 28px, + -3: 24px, + ), $scale), + touch-target-display: if($scale < -1, none, block), ); } @@ -84,8 +83,8 @@ $prefix: (mat, text-button); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_tonal-button.scss b/src/material/button/_m2-tonal-button.scss similarity index 75% rename from src/material/core/tokens/m2/mat/_tonal-button.scss rename to src/material/button/_m2-tonal-button.scss index d7df7064bbfd..6df062e6dd96 100644 --- a/src/material/core/tokens/m2/mat/_tonal-button.scss +++ b/src/material/button/_m2-tonal-button.scss @@ -1,27 +1,19 @@ @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, tonal-button); +$prefix: (mat, button-tonal); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { @return ( - // Shape of the container element. container-shape: 4px, - - // Start/end padding of the button. horizontal-padding: 16px, - - // Space between the icon and the button's main content. icon-spacing: 8px, - - // Amount by which to offset the icon so that its presence - // doesn't increase throw off the horizontal padding. icon-offset: -4px, ); } @@ -37,23 +29,11 @@ $prefix: (mat, tonal-button); 0.12), disabled-label-text-color: inspection.get-theme-color($theme, foreground, disabled-button, if($is-dark, 0.5, 0.38)), - - // Color of the element that shows the hover, focus and pressed states. state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), ); } @@ -103,8 +83,8 @@ $prefix: (mat, tonal-button); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/button/_m3-extended-fab.scss b/src/material/button/_m3-extended-fab.scss new file mode 100644 index 000000000000..6a7b4e545acd --- /dev/null +++ b/src/material/button/_m3-extended-fab.scss @@ -0,0 +1,64 @@ +@use 'sass:map'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, fab-extended); + +/// Generates the tokens for MDC extended-fab +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of tokens for the MDC extended-fab +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-height: if($exclude-hardcoded, null, 56px), + container-shape: map.get($systems, md-sys-shape, corner-large), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + ); + + $elevation-tokens: ( + container-elevation-shadow, + focus-container-elevation-shadow, + hover-container-elevation-shadow, + pressed-container-elevation-shadow, + ); + + @each $token in $elevation-tokens { + $elevation: map.get($tokens, $token); + + @if ($elevation != null) { + $tokens: map.set($tokens, $token, elevation.get-box-shadow($elevation)); + } + } + + $variant-tokens: ( + // Color variants + primary: (), // Default, no overrides needed. + secondary: ( + container-height: if($exclude-hardcoded, null, 56px), + container-shape: map.get($systems, md-sys-shape, corner-large), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + ), + tertiary: ( + container-height: if($exclude-hardcoded, null, 56px), + container-shape: map.get($systems, md-sys-shape, corner-large), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/button/_m3-fab-small.scss b/src/material/button/_m3-fab-small.scss new file mode 100644 index 000000000000..093f5d6a8796 --- /dev/null +++ b/src/material/button/_m3-fab-small.scss @@ -0,0 +1,91 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; +@use '../core/style/elevation'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, fab-small); + +/// Generates custom tokens for the mat-mini-fab. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-mini-fab +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + foreground-color: map.get($systems, md-sys-color, on-primary-container), + state-layer-color: map.get($systems, md-sys-color, on-primary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-primary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + disabled-state-container-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + disabled-state-foreground-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + container-color: map.get($systems, md-sys-color, primary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-medium), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ); + + $elevation-tokens: ( + container-elevation-shadow, + focus-container-elevation-shadow, + hover-container-elevation-shadow, + pressed-container-elevation-shadow, + ); + + @each $token in $elevation-tokens { + $elevation: map.get($tokens, $token); + + @if ($elevation != null) { + $tokens: map.set($tokens, $token, elevation.get-box-shadow($elevation)); + } + } + + $variant-tokens: ( + // Color variants + primary: (), // Default, no overrides needed. + secondary: ( + foreground-color: map.get($systems, md-sys-color, on-secondary-container), + state-layer-color: map.get($systems, md-sys-color, on-secondary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-secondary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, secondary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-medium), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ), + tertiary: ( + foreground-color: map.get($systems, md-sys-color, on-tertiary-container), + state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-tertiary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, tertiary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-medium), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/button/_m3-fab.scss b/src/material/button/_m3-fab.scss new file mode 100644 index 000000000000..d1a819a041bf --- /dev/null +++ b/src/material/button/_m3-fab.scss @@ -0,0 +1,90 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; +@use '../core/style/elevation'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, fab); + +/// Generates custom tokens for the mat-fab. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-fab +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + foreground-color: map.get($systems, md-sys-color, on-primary-container), + state-layer-color: map.get($systems, md-sys-color, on-primary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-primary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + disabled-state-container-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + disabled-state-foreground-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + container-color: map.get($systems, md-sys-color, primary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-large), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ); + + $variant-tokens: ( + // Color variants + primary: (), // Default, no overrides needed. + secondary: ( + foreground-color: map.get($systems, md-sys-color, on-secondary-container), + state-layer-color: map.get($systems, md-sys-color, on-secondary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-secondary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, secondary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-large), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + ), + tertiary: ( + foreground-color: map.get($systems, md-sys-color, on-tertiary-container), + state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-tertiary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, tertiary-container), + container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + container-shape: map.get($systems, md-sys-shape, corner-large), + focus-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-container-elevation-shadow: map.get($systems, md-sys-elevation, level4), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + pressed-container-elevation-shadow: map.get($systems, md-sys-elevation, level3), + ) + ); + + $elevation-tokens: ( + container-elevation-shadow, + focus-container-elevation-shadow, + hover-container-elevation-shadow, + pressed-container-elevation-shadow, + ); + + @each $token in $elevation-tokens { + $elevation: map.get($tokens, $token); + + @if ($elevation != null) { + $tokens: map.set($tokens, $token, elevation.get-box-shadow($elevation)); + } + } + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/button/_m3-filled-button.scss b/src/material/button/_m3-filled-button.scss new file mode 100644 index 000000000000..6daac8c921f9 --- /dev/null +++ b/src/material/button/_m3-filled-button.scss @@ -0,0 +1,73 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; +@use '../core/style/sass-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, button-filled); + +/// Generates custom tokens for the mat-flat-button. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-flat-button +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + horizontal-padding: m3-utils.hardcode(24px, $exclude-hardcoded), + icon-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + icon-offset: m3-utils.hardcode(-8px, $exclude-hardcoded), + state-layer-color: map.get($systems, md-sys-color, on-primary), + disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-primary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, primary), + container-height: if($exclude-hardcoded, null, 40px), + container-shape: map.get($systems, md-sys-shape, corner-full), + disabled-container-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + label-text-color: map.get($systems, md-sys-color, on-primary), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed. + secondary: ( + state-layer-color: map.get($systems, md-sys-color, on-secondary), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-secondary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, secondary), + label-text-color: map.get($systems, md-sys-color, on-secondary), + ), + tertiary: ( + state-layer-color: map.get($systems, md-sys-color, on-tertiary), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-tertiary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, tertiary), + label-text-color: map.get($systems, md-sys-color, on-tertiary), + ), + error: ( + state-layer-color: map.get($systems, md-sys-color, on-error), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-error), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + container-color: map.get($systems, md-sys-color, error), + label-text-color: map.get($systems, md-sys-color, on-error), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/core/tokens/m3/mat/_icon-button.scss b/src/material/button/_m3-icon-button.scss similarity index 73% rename from src/material/core/tokens/m3/mat/_icon-button.scss rename to src/material/button/_m3-icon-button.scss index ef0477dbd4cc..18f6c89f4c09 100644 --- a/src/material/core/tokens/m3/mat/_icon-button.scss +++ b/src/material/button/_m3-icon-button.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, icon-button); @@ -11,23 +11,31 @@ $prefix: (mat, icon-button); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-icon-button @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( + $tokens: ( state-layer-color: map.get($systems, md-sys-color, on-surface-variant), disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface-variant), + map.get($systems, md-sys-color, on-surface-variant), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - ), ( + disabled-icon-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + icon-size: if($exclude-hardcoded, null, 24px), + state-layer-size: if($exclude-hardcoded, null, 40px), + icon-color: map.get($systems, md-sys-color, on-surface-variant), + ); + + $variant-tokens: ( primary: ( state-layer-color: map.get($systems, md-sys-color, primary), ripple-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, primary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + icon-color: map.get($systems, md-sys-color, primary) ), secondary: ( state-layer-color: map.get($systems, md-sys-color, secondary), @@ -35,6 +43,7 @@ $prefix: (mat, icon-button); map.get($systems, md-sys-color, secondary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + icon-color: map.get($systems, md-sys-color, secondary) ), tertiary: ( state-layer-color: map.get($systems, md-sys-color, tertiary), @@ -42,6 +51,7 @@ $prefix: (mat, icon-button); map.get($systems, md-sys-color, tertiary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + icon-color: map.get($systems, md-sys-color, tertiary) ), error: ( state-layer-color: map.get($systems, md-sys-color, error), @@ -49,8 +59,9 @@ $prefix: (mat, icon-button); map.get($systems, md-sys-color, error), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + icon-color: map.get($systems, md-sys-color, error) ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/core/tokens/m3/mat/_outlined-button.scss b/src/material/button/_m3-outlined-button.scss similarity index 50% rename from src/material/core/tokens/m3/mat/_outlined-button.scss rename to src/material/button/_m3-outlined-button.scss index ae297488682d..f55c612d9cea 100644 --- a/src/material/core/tokens/m3/mat/_outlined-button.scss +++ b/src/material/button/_m3-outlined-button.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, outlined-button); +$prefix: (mat, button-outlined); /// Generates custom tokens for the mat-outlined-button. /// @param {Map} $systems The MDC system tokens @@ -11,44 +11,61 @@ $prefix: (mat, outlined-button); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-outlined-button @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - horizontal-padding: token-definition.hardcode(24px, $exclude-hardcoded), - icon-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - icon-offset: token-definition.hardcode(-8px, $exclude-hardcoded), + $tokens: ( + horizontal-padding: m3-utils.hardcode(24px, $exclude-hardcoded), + icon-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + icon-offset: m3-utils.hardcode(-8px, $exclude-hardcoded), state-layer-color: map.get($systems, md-sys-color, primary), disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, primary), + map.get($systems, md-sys-color, primary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + container-height: if($exclude-hardcoded, null, 40px), + container-shape: map.get($systems, md-sys-shape, corner-full), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-outline-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.12), focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + label-text-color: map.get($systems, md-sys-color, primary), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + outline-color: map.get($systems, md-sys-color, outline), + outline-width: if($exclude-hardcoded, null, 1px), pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - ), ( - // Color variants: + ); + + $variant-tokens: ( primary: (), // Default, no overrides needed. secondary: ( state-layer-color: map.get($systems, md-sys-color, secondary), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, secondary), + map.get($systems, md-sys-color, secondary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + label-text-color: map.get($systems, md-sys-color, secondary), ), tertiary: ( state-layer-color: map.get($systems, md-sys-color, tertiary), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, tertiary), + map.get($systems, md-sys-color, tertiary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + label-text-color: map.get($systems, md-sys-color, tertiary), ), error: ( state-layer-color: map.get($systems, md-sys-color, error), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, error), + map.get($systems, md-sys-color, error), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), + label-text-color: map.get($systems, md-sys-color, error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/button/_m3-protected-button.scss b/src/material/button/_m3-protected-button.scss new file mode 100644 index 000000000000..bb699c9544a8 --- /dev/null +++ b/src/material/button/_m3-protected-button.scss @@ -0,0 +1,93 @@ +@use 'sass:map'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; +@use '../core/style/sass-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +// Note: in M3 the "protected" button is called "elevated". +$prefix: (mat, button-protected); + +/// Generates custom tokens for the mat-raised-button. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-raised-button +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + // Note: in M3 the "protected" button is called "elevated". + $tokens: ( + container-color: map.get($systems, md-sys-color, surface), + container-elevation: map.get($systems, md-sys-elevation, level1), + container-height: if($exclude-hardcoded, null, 40px), + container-shape: map.get($systems, md-sys-shape, corner-full), + disabled-container-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + disabled-container-elevation: map.get($systems, md-sys-elevation, level0), + disabled-label-text-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + focus-container-elevation: map.get($systems, md-sys-elevation, level1), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + horizontal-padding: m3-utils.hardcode(24px, $exclude-hardcoded), + hover-container-elevation: map.get($systems, md-sys-elevation, level2), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + icon-offset: m3-utils.hardcode(-8px, $exclude-hardcoded), + icon-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + label-text-color: map.get($systems, md-sys-color, primary), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + pressed-container-elevation: map.get($systems, md-sys-elevation, level1), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, primary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)), + state-layer-color: map.get($systems, md-sys-color, primary), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed. + secondary: ( + state-layer-color: map.get($systems, md-sys-color, secondary), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, secondary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + label-text-color: map.get($systems, md-sys-color, secondary), + ), + tertiary: ( + state-layer-color: map.get($systems, md-sys-color, tertiary), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, tertiary), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + label-text-color: map.get($systems, md-sys-color, tertiary), + ), + error: ( + state-layer-color: map.get($systems, md-sys-color, error), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, error), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + label-text-color: map.get($systems, md-sys-color, error), + ) + ); + + $elevation-tokens: ( + container-elevation, + disabled-container-elevation, + focus-container-elevation, + hover-container-elevation, + pressed-container-elevation, + ); + + @each $token in $elevation-tokens { + $elevation: map.get($tokens, $token); + + @if ($elevation != null) { + $tokens: map.set($tokens, $token + -shadow, elevation.get-box-shadow($elevation)); + } + } + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/core/tokens/m3/mat/_text-button.scss b/src/material/button/_m3-text-button.scss similarity index 51% rename from src/material/core/tokens/m3/mat/_text-button.scss rename to src/material/button/_m3-text-button.scss index 80fc1ae801e2..b8164d0b5308 100644 --- a/src/material/core/tokens/m3/mat/_text-button.scss +++ b/src/material/button/_m3-text-button.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, text-button); +$prefix: (mat, button-text); /// Generates custom tokens for the mat-button. /// @param {Map} $systems The MDC system tokens @@ -11,45 +11,58 @@ $prefix: (mat, text-button); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-button @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - horizontal-padding: token-definition.hardcode(12px, $exclude-hardcoded), - with-icon-horizontal-padding: token-definition.hardcode(16px, $exclude-hardcoded), - icon-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - icon-offset: token-definition.hardcode(-4px, $exclude-hardcoded), + $tokens: ( + horizontal-padding: m3-utils.hardcode(12px, $exclude-hardcoded), + with-icon-horizontal-padding: m3-utils.hardcode(16px, $exclude-hardcoded), + icon-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + icon-offset: m3-utils.hardcode(-4px, $exclude-hardcoded), state-layer-color: map.get($systems, md-sys-color, primary), disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, primary), + map.get($systems, md-sys-color, primary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + container-height: if($exclude-hardcoded, null, 40px), + container-shape: map.get($systems, md-sys-shape, corner-full), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + label-text-color: map.get($systems, md-sys-color, primary), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - ), ( - // Color variants: + ); + + $variant-tokens: ( primary: (), // Default, no overrides needed. secondary: ( state-layer-color: map.get($systems, md-sys-color, secondary), ripple-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, secondary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ) + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + label-text-color: map.get($systems, md-sys-color, secondary), ), tertiary: ( state-layer-color: map.get($systems, md-sys-color, tertiary), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, tertiary), + map.get($systems, md-sys-color, tertiary), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ) + ), + label-text-color: map.get($systems, md-sys-color, tertiary), ), error: ( state-layer-color: map.get($systems, md-sys-color, error), ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, error), + map.get($systems, md-sys-color, error), $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ) + ), + label-text-color: map.get($systems, md-sys-color, error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/button/_m3-tonal-button.scss b/src/material/button/_m3-tonal-button.scss new file mode 100644 index 000000000000..e37acf5d3ea7 --- /dev/null +++ b/src/material/button/_m3-tonal-button.scss @@ -0,0 +1,65 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, button-tonal); + +/// Generates custom tokens for the mat-flat-button. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-flat-button +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + container-color: map.get($systems, md-sys-color, secondary-container), + container-height: if($exclude-hardcoded, null, 40px), + container-shape: map.get($systems, md-sys-shape, corner-full), + disabled-container-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + disabled-label-text-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + horizontal-padding: m3-utils.hardcode(24px, $exclude-hardcoded), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + icon-offset: m3-utils.hardcode(-8px, $exclude-hardcoded), + icon-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + label-text-color: map.get($systems, md-sys-color, on-secondary-container), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-size: map.get($systems, md-sys-typescale, label-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, label-large-weight), + pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-secondary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity)), + state-layer-color: map.get($systems, md-sys-color, on-secondary-container), + ); + + $variant-tokens: ( + // Color variants: + primary: (), + secondary: (), + tertiary: ( + container-color: map.get($systems, md-sys-color, tertiary-container), + label-text-color: map.get($systems, md-sys-color, on-tertiary-container), + state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-tertiary-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + ), + error: ( + container-color: map.get($systems, md-sys-color, error-container), + label-text-color: map.get($systems, md-sys-color, on-error-container), + state-layer-color: map.get($systems, md-sys-color, on-error-container), + ripple-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-error-container), + $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) + ), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/button/button.scss b/src/material/button/button.scss index c52a44a78d09..577624095dba 100644 --- a/src/material/button/button.scss +++ b/src/material/button/button.scss @@ -3,15 +3,22 @@ @use '../core/style/vendor-prefixes'; @use '../core/tokens/token-utils'; @use '../core/focus-indicators/private' as focus-indicators-private; -@use '../core/tokens/m2/mdc/filled-button' as tokens-mdc-filled-button; -@use '../core/tokens/m2/mat/filled-button' as tokens-mat-filled-button; -@use '../core/tokens/m2/mdc/outlined-button' as tokens-mdc-outlined-button; -@use '../core/tokens/m2/mat/outlined-button' as tokens-mat-outlined-button; -@use '../core/tokens/m2/mdc/protected-button' as tokens-mdc-protected-button; -@use '../core/tokens/m2/mat/protected-button' as tokens-mat-protected-button; -@use '../core/tokens/m2/mdc/text-button' as tokens-mdc-text-button; -@use '../core/tokens/m2/mat/text-button' as tokens-mat-text-button; -@use '../core/tokens/m2/mat/tonal-button' as tokens-mat-tonal-button; +@use './m2-filled-button'; +@use './m2-outlined-button'; +@use './m2-protected-button'; +@use './m2-text-button'; +@use './m2-tonal-button'; + +$filled-token-prefix: m2-filled-button.$prefix; +$filled-token-slots: m2-filled-button.get-token-slots(); +$outlined-token-prefix: m2-outlined-button.$prefix; +$outlined-token-slots: m2-outlined-button.get-token-slots(); +$protected-token-prefix: m2-protected-button.$prefix; +$protected-token-slots: m2-protected-button.get-token-slots(); +$text-token-prefix: m2-text-button.$prefix; +$text-token-slots: m2-text-button.get-token-slots(); +$tonal-token-prefix: m2-tonal-button.$prefix; +$tonal-token-slots: m2-tonal-button.get-token-slots(); .mat-mdc-button-base { text-decoration: none; @@ -62,137 +69,115 @@ } .mat-mdc-button { - $mat-text-button-slots: tokens-mat-text-button.get-token-slots(); - - @include token-utils.use-tokens(tokens-mat-text-button.$prefix, $mat-text-button-slots) { - padding: 0 #{token-utils.get-token-variable(horizontal-padding, true)}; + @include token-utils.use-tokens($text-token-prefix, $text-token-slots) { + padding: 0 #{token-utils.slot(horizontal-padding, true)}; } - @include token-utils.use-tokens( - tokens-mdc-text-button.$prefix, - tokens-mdc-text-button.get-token-slots() - ) { - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(text-transform, label-text-transform); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens($text-token-prefix, $text-token-slots) { + height: token-utils.slot(container-height); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + text-transform: token-utils.slot(label-text-transform); + font-weight: token-utils.slot(label-text-weight); &, .mdc-button__ripple { - @include token-utils.create-token-slot(border-radius, container-shape); + border-radius: token-utils.slot(container-shape); } &:not(:disabled) { - @include token-utils.create-token-slot(color, label-text-color); + color: token-utils.slot(label-text-color); } // We need to re-apply the disabled tokens since MDC uses // `:disabled` which doesn't apply to anchors. @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-label-text-color); + color: token-utils.slot(disabled-label-text-color); } } - @include button-base.mat-private-button-horizontal-layout(tokens-mat-text-button.$prefix, - $mat-text-button-slots, true); - @include button-base.mat-private-button-ripple(tokens-mat-text-button.$prefix, - $mat-text-button-slots); - @include button-base.mat-private-button-touch-target(false, tokens-mat-text-button.$prefix, - $mat-text-button-slots); + @include button-base.mat-private-button-horizontal-layout( + $text-token-prefix, $text-token-slots, true); + @include button-base.mat-private-button-ripple( + $text-token-prefix, $text-token-slots); + @include button-base.mat-private-button-touch-target( + false, $text-token-prefix, $text-token-slots); } .mat-mdc-unelevated-button { - $mat-filled-button-slots: tokens-mat-filled-button.get-token-slots(); transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); - @include token-utils.use-tokens( - tokens-mdc-filled-button.$prefix, - tokens-mdc-filled-button.get-token-slots() - ) { - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(text-transform, label-text-transform); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { + height: token-utils.slot(container-height); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + text-transform: token-utils.slot(label-text-transform); + font-weight: token-utils.slot(label-text-weight); } - @include token-utils.use-tokens(tokens-mat-filled-button.$prefix, $mat-filled-button-slots) { - padding: 0 #{token-utils.get-token-variable(horizontal-padding, true)}; + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { + padding: 0 #{token-utils.slot(horizontal-padding, true)}; } - @include button-base.mat-private-button-horizontal-layout(tokens-mat-filled-button.$prefix, - $mat-filled-button-slots, false); - @include button-base.mat-private-button-ripple(tokens-mat-filled-button.$prefix, - $mat-filled-button-slots); - @include button-base.mat-private-button-touch-target(false, tokens-mat-filled-button.$prefix, - $mat-filled-button-slots); - - @include token-utils.use-tokens( - tokens-mdc-filled-button.$prefix, - tokens-mdc-filled-button.get-token-slots() - ) { + @include button-base.mat-private-button-horizontal-layout( + $filled-token-prefix, $filled-token-slots, false); + @include button-base.mat-private-button-ripple( + $filled-token-prefix, $filled-token-slots); + @include button-base.mat-private-button-touch-target( + false, $filled-token-prefix, $filled-token-slots); + + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { &:not(:disabled) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(background-color, container-color); + color: token-utils.slot(label-text-color); + background-color: token-utils.slot(container-color); } &, .mdc-button__ripple { - @include token-utils.create-token-slot(border-radius, container-shape); + border-radius: token-utils.slot(container-shape); } // We need to re-apply the disabled tokens since MDC uses // `:disabled` which doesn't apply to anchors. @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-label-text-color); - @include token-utils.create-token-slot(background-color, disabled-container-color); + color: token-utils.slot(disabled-label-text-color); + background-color: token-utils.slot(disabled-container-color); } } } .mat-mdc-raised-button { - $mat-protected-button-slots: tokens-mat-protected-button.get-token-slots(); transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); - @include token-utils.use-tokens( - tokens-mdc-protected-button.$prefix, - tokens-mdc-protected-button.get-token-slots() - ) { + @include token-utils.use-tokens($protected-token-prefix, $protected-token-slots) { @include button-base.mat-private-button-elevation(container-elevation); - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(text-transform, label-text-transform); - @include token-utils.create-token-slot(font-weight, label-text-weight); + height: token-utils.slot(container-height); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + text-transform: token-utils.slot(label-text-transform); + font-weight: token-utils.slot(label-text-weight); } - @include token-utils.use-tokens( - tokens-mat-protected-button.$prefix, - $mat-protected-button-slots - ) { - padding: 0 #{token-utils.get-token-variable(horizontal-padding, true)}; + @include token-utils.use-tokens($protected-token-prefix, $protected-token-slots) { + padding: 0 #{token-utils.slot(horizontal-padding, true)}; } - @include button-base.mat-private-button-horizontal-layout(tokens-mat-protected-button.$prefix, - $mat-protected-button-slots, false); - @include button-base.mat-private-button-ripple(tokens-mat-protected-button.$prefix, - $mat-protected-button-slots); - @include button-base.mat-private-button-touch-target(false, tokens-mat-protected-button.$prefix, - $mat-protected-button-slots); - - @include token-utils.use-tokens( - tokens-mdc-protected-button.$prefix, - tokens-mdc-protected-button.get-token-slots() - ) { + @include button-base.mat-private-button-horizontal-layout( + $protected-token-prefix, $protected-token-slots, false); + @include button-base.mat-private-button-ripple( + $protected-token-prefix, $protected-token-slots); + @include button-base.mat-private-button-touch-target( + false, $protected-token-prefix, $protected-token-slots); + + @include token-utils.use-tokens($protected-token-prefix, $protected-token-slots) { &:not(:disabled) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(background-color, container-color); + color: token-utils.slot(label-text-color); + background-color: token-utils.slot(container-color); } &, .mdc-button__ripple { - @include token-utils.create-token-slot(border-radius, container-shape); + border-radius: token-utils.slot(container-shape); } &:hover { @@ -210,8 +195,8 @@ // We need to re-apply the disabled tokens since MDC uses // `:disabled` which doesn't apply to anchors. @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-label-text-color); - @include token-utils.create-token-slot(background-color, disabled-container-color); + color: token-utils.slot(disabled-label-text-color); + background-color: token-utils.slot(disabled-container-color); &.mat-mdc-button-disabled { @include button-base.mat-private-button-elevation(disabled-container-elevation); @@ -221,88 +206,81 @@ } .mat-mdc-outlined-button { - $mat-outlined-button-slots: tokens-mat-outlined-button.get-token-slots(); border-style: solid; transition: border 280ms cubic-bezier(0.4, 0, 0.2, 1); - @include token-utils.use-tokens( - tokens-mdc-outlined-button.$prefix, - tokens-mdc-outlined-button.get-token-slots() - ) { - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(text-transform, label-text-transform); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(border-width, outline-width); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + height: token-utils.slot(container-height); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + text-transform: token-utils.slot(label-text-transform); + font-weight: token-utils.slot(label-text-weight); + border-radius: token-utils.slot(container-shape); + border-width: token-utils.slot(outline-width); } - @include token-utils.use-tokens(tokens-mat-outlined-button.$prefix, $mat-outlined-button-slots) { - padding: 0 #{token-utils.get-token-variable(horizontal-padding, true)}; + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + padding: 0 #{token-utils.slot(horizontal-padding, true)}; } - @include button-base.mat-private-button-horizontal-layout(tokens-mat-outlined-button.$prefix, - $mat-outlined-button-slots, false); - @include button-base.mat-private-button-ripple(tokens-mat-outlined-button.$prefix, - $mat-outlined-button-slots); - @include button-base.mat-private-button-touch-target(false, tokens-mat-outlined-button.$prefix, - $mat-outlined-button-slots); - - @include token-utils.use-tokens( - tokens-mdc-outlined-button.$prefix, - tokens-mdc-outlined-button.get-token-slots() - ) { + @include button-base.mat-private-button-horizontal-layout( + $outlined-token-prefix, $outlined-token-slots, false); + @include button-base.mat-private-button-ripple( + $outlined-token-prefix, $outlined-token-slots); + @include button-base.mat-private-button-touch-target( + false, $outlined-token-prefix, $outlined-token-slots); + + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { &:not(:disabled) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(border-color, outline-color); + color: token-utils.slot(label-text-color); + border-color: token-utils.slot(outline-color); } // We need to re-apply the disabled tokens since MDC uses // `:disabled` which doesn't apply to anchors. @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-label-text-color); - @include token-utils.create-token-slot(border-color, disabled-outline-color); + color: token-utils.slot(disabled-label-text-color); + border-color: token-utils.slot(disabled-outline-color); } } } .mat-tonal-button { - $slots: tokens-mat-tonal-button.get-token-slots(); transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); - @include token-utils.use-tokens(tokens-mat-tonal-button.$prefix, $slots) { - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(text-transform, label-text-transform); - @include token-utils.create-token-slot(font-weight, label-text-weight); - padding: 0 #{token-utils.get-token-variable(horizontal-padding, true)}; + @include token-utils.use-tokens($tonal-token-prefix, $tonal-token-slots) { + height: token-utils.slot(container-height); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + text-transform: token-utils.slot(label-text-transform); + font-weight: token-utils.slot(label-text-weight); + padding: 0 #{token-utils.slot(horizontal-padding, true)}; &:not(:disabled) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(background-color, container-color); + color: token-utils.slot(label-text-color); + background-color: token-utils.slot(container-color); } &, .mdc-button__ripple { - @include token-utils.create-token-slot(border-radius, container-shape); + border-radius: token-utils.slot(container-shape); } // We need to re-apply the disabled tokens since MDC uses // `:disabled` which doesn't apply to anchors. @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-label-text-color); - @include token-utils.create-token-slot(background-color, disabled-container-color); + color: token-utils.slot(disabled-label-text-color); + background-color: token-utils.slot(disabled-container-color); } } - @include button-base.mat-private-button-horizontal-layout(tokens-mat-tonal-button.$prefix, - $slots, false); - @include button-base.mat-private-button-ripple(tokens-mat-tonal-button.$prefix, $slots); - @include button-base.mat-private-button-touch-target(false, tokens-mat-tonal-button.$prefix, - $slots); + @include button-base.mat-private-button-horizontal-layout( + $tonal-token-prefix, $tonal-token-slots, false); + @include button-base.mat-private-button-ripple( + $tonal-token-prefix, $tonal-token-slots); + @include button-base.mat-private-button-touch-target( + false, $tonal-token-prefix, $tonal-token-slots); } .mat-mdc-button, diff --git a/src/material/button/fab.scss b/src/material/button/fab.scss index 44efdd4e5c9a..64cce92d3e6c 100644 --- a/src/material/button/fab.scss +++ b/src/material/button/fab.scss @@ -3,11 +3,16 @@ @use '../core/style/private' as style-private; @use '../core/style/vendor-prefixes'; @use '../core/focus-indicators/private' as focus-indicators-private; -@use '../core/tokens/m2/mdc/extended-fab' as tokens-mdc-extended-fab; -@use '../core/tokens/m2/mdc/fab' as tokens-mdc-fab; -@use '../core/tokens/m2/mat/fab' as tokens-mat-fab; -@use '../core/tokens/m2/mdc/fab-small' as tokens-mdc-fab-small; -@use '../core/tokens/m2/mat/fab-small' as tokens-mat-fab-small; +@use './m2-extended-fab'; +@use './m2-fab'; +@use './m2-fab-small'; + +$extended-fab-token-prefix: m2-extended-fab.$prefix; +$extended-fab-token-slots: m2-extended-fab.get-token-slots(); +$fab-token-prefix: m2-fab.$prefix; +$fab-token-slots: m2-fab.get-token-slots(); +$fab-small-token-prefix: m2-fab-small.$prefix; +$fab-small-token-slots: m2-fab-small.get-token-slots(); .mat-mdc-fab-base { @include vendor-prefixes.user-select(none); @@ -96,40 +101,40 @@ } } -@mixin _fab-elevation($mdc-tokens) { - @include token-utils.use-tokens($mdc-tokens...) { - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow); +@mixin _fab-elevation($mat-tokens) { + @include token-utils.use-tokens($mat-tokens...) { + box-shadow: token-utils.slot(container-elevation-shadow); &:hover { - @include token-utils.create-token-slot(box-shadow, hover-container-elevation-shadow); + box-shadow: token-utils.slot(hover-container-elevation-shadow); } &:focus { - @include token-utils.create-token-slot(box-shadow, focus-container-elevation-shadow); + box-shadow: token-utils.slot(focus-container-elevation-shadow); } &:active, &:focus:active { - @include token-utils.create-token-slot(box-shadow, pressed-container-elevation-shadow); + box-shadow: token-utils.slot(pressed-container-elevation-shadow); } } } -@mixin _fab-structure($mdc-tokens, $mat-tokens) { - @include token-utils.use-tokens($mdc-tokens...) { - @include token-utils.create-token-slot(background-color, container-color); - @include token-utils.create-token-slot(border-radius, container-shape); +@mixin _fab-structure($mat-tokens) { + @include token-utils.use-tokens($mat-tokens...) { + background-color: token-utils.slot(container-color); + border-radius: token-utils.slot(container-shape); } @include token-utils.use-tokens($mat-tokens...) { - @include token-utils.create-token-slot(color, foreground-color, inherit); + color: token-utils.slot(foreground-color, inherit); } - @include _fab-elevation($mdc-tokens); + @include _fab-elevation($mat-tokens); @include button-base.mat-private-button-disabled { @include token-utils.use-tokens($mat-tokens...) { - @include token-utils.create-token-slot(color, disabled-state-foreground-color); - @include token-utils.create-token-slot(background-color, disabled-state-container-color); + color: token-utils.slot(disabled-state-foreground-color); + background-color: token-utils.slot(disabled-state-container-color); } } @@ -138,24 +143,18 @@ } .mat-mdc-fab { - @include _fab-structure( - (tokens-mdc-fab.$prefix, tokens-mdc-fab.get-token-slots()), - (tokens-mat-fab.$prefix, tokens-mat-fab.get-token-slots()), - ); + @include _fab-structure(($fab-token-prefix, $fab-token-slots)); } .mat-mdc-mini-fab { width: 40px; height: 40px; - @include _fab-structure( - (tokens-mdc-fab-small.$prefix, tokens-mdc-fab-small.get-token-slots()), - (tokens-mat-fab-small.$prefix, tokens-mat-fab-small.get-token-slots()), - ); + @include _fab-structure(($fab-small-token-prefix, $fab-small-token-slots)); } .mat-mdc-extended-fab { - $mdc-tokens: (tokens-mdc-extended-fab.$prefix, tokens-mdc-extended-fab.get-token-slots()); + $mat-tokens: ($extended-fab-token-prefix, $extended-fab-token-slots); // Before tokens MDC included the font smoothing automatically, but with // tokens it doesn't. We add it since it can cause tiny differences in @@ -168,16 +167,16 @@ max-width: 100%; line-height: normal; - @include token-utils.use-tokens($mdc-tokens...) { - @include token-utils.create-token-slot(height, container-height); - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); + @include token-utils.use-tokens($mat-tokens...) { + height: token-utils.slot(container-height); + border-radius: token-utils.slot(container-shape); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + font-weight: token-utils.slot(label-text-weight); + letter-spacing: token-utils.slot(label-text-tracking); } - @include _fab-elevation($mdc-tokens); + @include _fab-elevation($mat-tokens); @include button-base.mat-private-button-disabled { // Necessary for interactive disabled buttons. diff --git a/src/material/button/icon-button.scss b/src/material/button/icon-button.scss index 03f56e21520e..62aa6400c711 100644 --- a/src/material/button/icon-button.scss +++ b/src/material/button/icon-button.scss @@ -1,11 +1,11 @@ -@use '../core/tokens/m2/mdc/icon-button' as tokens-mdc-icon-button; -@use '../core/tokens/m2/mat/icon-button' as tokens-mat-icon-button; - -@use './button-base'; @use '../core/style/private'; @use '../core/style/vendor-prefixes'; @use '../core/tokens/token-utils'; +@use './button-base'; +@use './m2-icon-button'; +$token-prefix: m2-icon-button.$prefix; +$token-slots: m2-icon-button.get-token-slots(); .mat-mdc-icon-button { @include vendor-prefixes.user-select(none); @@ -31,10 +31,9 @@ // Ensure the icons are centered. text-align: center; - @include token-utils.use-tokens( - tokens-mdc-icon-button.$prefix, tokens-mdc-icon-button.get-token-slots()) { - $button-size: token-utils.get-token-variable(state-layer-size, $fallback: 48px); - $icon-size: token-utils.get-token-variable(icon-size, $fallback: 24px); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $button-size: token-utils.slot(state-layer-size, $fallback: 48px); + $icon-size: token-utils.slot(icon-size, $fallback: 24px); // We emit these tokens ourselves here so we can provide a default value. // This avoids a lot internal breakages in apps that didn't include the icon button theme. @@ -47,27 +46,25 @@ // Icon size used to be placed on the host element. Now, in `theme-styles` it is placed on // the unused `.mdc-button__icon` class. Explicitly set the font-size here. - @include token-utils.create-token-slot(font-size, icon-size); - @include token-utils.create-token-slot(color, icon-color); + font-size: token-utils.slot(icon-size); + color: token-utils.slot(icon-color); } @include button-base.mat-private-button-interactive(); - @include button-base.mat-private-button-ripple(tokens-mat-icon-button.$prefix, - tokens-mat-icon-button.get-token-slots()); - @include button-base.mat-private-button-touch-target(true, tokens-mat-icon-button.$prefix, - tokens-mat-icon-button.get-token-slots()); + @include button-base.mat-private-button-ripple($token-prefix, $token-slots); + @include button-base.mat-private-button-touch-target( + true, $token-prefix, $token-slots); @include private.private-animation-noop(); - @include token-utils.use-tokens( - tokens-mdc-icon-button.$prefix, tokens-mdc-icon-button.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { @include button-base.mat-private-button-disabled { - @include token-utils.create-token-slot(color, disabled-icon-color); + color: token-utils.slot(disabled-icon-color); }; img, svg { - @include token-utils.create-token-slot(width, icon-size); - @include token-utils.create-token-slot(height, icon-size); + width: token-utils.slot(icon-size); + height: token-utils.slot(icon-size); vertical-align: baseline; } } diff --git a/src/material/button/testing/BUILD.bazel b/src/material/button/testing/BUILD.bazel index 6fc3605f8f4e..f97e846bd7c5 100644 --- a/src/material/button/testing/BUILD.bazel +++ b/src/material/button/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -11,7 +11,7 @@ ts_project( ), deps = [ "//:node_modules/@angular/core", - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", ], ) @@ -20,19 +20,21 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/button", "//src/material/icon", "//src/material/icon/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/card/BUILD.bazel b/src/material/card/BUILD.bazel index 0c8ad558d287..fd7d3646dc55 100644 --- a/src/material/card/BUILD.bazel +++ b/src/material/card/BUILD.bazel @@ -2,50 +2,96 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "card", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":card_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-card.scss", + "_m3-elevated-card.scss", + "_m3-outlined-card.scss", + ], deps = [ - "//src/material/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "card_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-card.scss", + "_m2-elevated-card.scss", + "_m2-outlined-card.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_card-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "card_scss", + name = "css", src = "card.scss", deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "card", + srcs = [ + "card.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "card-header.html", + "card-title-group.html", + "card.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":card", + "//:node_modules/@angular/core", ], ) @@ -61,7 +107,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":card_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/card/_card-theme.scss b/src/material/card/_card-theme.scss index 012f2c9185e5..2f1650bc856a 100644 --- a/src/material/card/_card-theme.scss +++ b/src/material/card/_card-theme.scss @@ -5,9 +5,9 @@ @use '../core/theming/validation'; @use '../core/typography/typography'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/card' as tokens-mat-card; -@use '../core/tokens/m2/mdc/elevated-card' as tokens-mdc-elevated-card; -@use '../core/tokens/m2/mdc/outlined-card' as tokens-mdc-outlined-card; +@use './m2-card'; +@use './m2-elevated-card'; +@use './m2-outlined-card'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -15,16 +15,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-unthemable-tokens() + m2-elevated-card.$prefix, + m2-elevated-card.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-card.$prefix, - tokens-mdc-outlined-card.get-unthemable-tokens() + m2-outlined-card.$prefix, + m2-outlined-card.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-card.$prefix, - tokens-mat-card.get-unthemable-tokens() + m2-card.$prefix, + m2-card.get-unthemable-tokens() ); } } @@ -36,16 +36,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-color-tokens($theme) + m2-elevated-card.$prefix, + m2-elevated-card.get-color-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-card.$prefix, - tokens-mdc-outlined-card.get-color-tokens($theme) + m2-outlined-card.$prefix, + m2-outlined-card.get-color-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-card.$prefix, - tokens-mat-card.get-color-tokens($theme) + m2-card.$prefix, + m2-card.get-color-tokens($theme) ); } } @@ -57,16 +57,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-typography-tokens($theme) + m2-elevated-card.$prefix, + m2-elevated-card.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-card.$prefix, - tokens-mdc-outlined-card.get-typography-tokens($theme) + m2-outlined-card.$prefix, + m2-outlined-card.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-card.$prefix, - tokens-mat-card.get-typography-tokens($theme) + m2-card.$prefix, + m2-card.get-typography-tokens($theme) ); } } @@ -78,16 +78,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-density-tokens($theme) + m2-elevated-card.$prefix, + m2-elevated-card.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-card.$prefix, - tokens-mdc-outlined-card.get-density-tokens($theme) + m2-outlined-card.$prefix, + m2-outlined-card.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-card.$prefix, - tokens-mat-card.get-density-tokens($theme) + m2-card.$prefix, + m2-card.get-density-tokens($theme) ); } } @@ -97,17 +97,17 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-card.$prefix, - tokens: tokens-mat-card.get-token-slots(), + namespace: m2-card.$prefix, + tokens: m2-card.get-token-slots(), ), ( - namespace: tokens-mdc-elevated-card.$prefix, - tokens: tokens-mdc-elevated-card.get-token-slots(), + namespace: m2-elevated-card.$prefix, + tokens: m2-elevated-card.get-token-slots(), prefix: 'elevated-', ), ( - namespace: tokens-mdc-outlined-card.$prefix, - tokens: tokens-mdc-outlined-card.get-token-slots(), + namespace: m2-outlined-card.$prefix, + tokens: m2-outlined-card.get-token-slots(), prefix: 'outlined-', ), ); @@ -142,16 +142,16 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mdc-elevated-card.$prefix, - map.get($tokens, tokens-mdc-elevated-card.$prefix) + m2-elevated-card.$prefix, + map.get($tokens, m2-elevated-card.$prefix) ); @include token-utils.create-token-values( - tokens-mdc-outlined-card.$prefix, - map.get($tokens, tokens-mdc-outlined-card.$prefix) + m2-outlined-card.$prefix, + map.get($tokens, m2-outlined-card.$prefix) ); @include token-utils.create-token-values( - tokens-mat-card.$prefix, - map.get($tokens, tokens-mat-card.$prefix) + m2-card.$prefix, + map.get($tokens, m2-card.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_card.scss b/src/material/card/_m2-card.scss similarity index 71% rename from src/material/core/tokens/m2/mat/_card.scss rename to src/material/card/_m2-card.scss index 20ea73bdc779..9af2b87d729c 100644 --- a/src/material/core/tokens/m2/mat/_card.scss +++ b/src/material/card/_m2-card.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, card); @@ -14,7 +14,6 @@ $prefix: (mat, card); // Tokens that can be configured through Angular Material's color theming API. @function get-color-tokens($theme) { @return ( - // Text color of the card's subtitle. subtitle-text-color: inspection.get-theme-color($theme, foreground, secondary-text), ); } @@ -22,25 +21,15 @@ $prefix: (mat, card); // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { @return ( - // Font family of the card's title. title-text-font: inspection.get-theme-typography($theme, headline-6, font-family), - // Line height of the card's title. title-text-line-height: inspection.get-theme-typography($theme, headline-6, line-height), - // Font size of the card's title. title-text-size: inspection.get-theme-typography($theme, headline-6, font-size), - // Letter spacing of the card's title. title-text-tracking: inspection.get-theme-typography($theme, headline-6, letter-spacing), - // Font weight of the card's title. title-text-weight: inspection.get-theme-typography($theme, headline-6, font-weight), - // Font family of the card's subtitle. subtitle-text-font: inspection.get-theme-typography($theme, subtitle-2, font-family), - // Line height of the card's subtitle. subtitle-text-line-height: inspection.get-theme-typography($theme, subtitle-2, line-height), - // Font size of the card's subtitle. subtitle-text-size: inspection.get-theme-typography($theme, subtitle-2, font-size), - // Letter spacing of the card's subtitle. subtitle-text-tracking: inspection.get-theme-typography($theme, subtitle-2, letter-spacing), - // Font weight of the card's subtitle. subtitle-text-weight: inspection.get-theme-typography($theme, subtitle-2, font-weight), ); } @@ -55,8 +44,8 @@ $prefix: (mat, card); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/card/_m2-elevated-card.scss b/src/material/card/_m2-elevated-card.scss new file mode 100644 index 000000000000..ae4c8f04d15f --- /dev/null +++ b/src/material/card/_m2-elevated-card.scss @@ -0,0 +1,51 @@ +@use '../core/theming/inspection'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, card-elevated); + +// Tokens that can't be configured through Angular Material's current theming API, +// but may be in a future version of the theming API. +// +// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. +// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in +// our CSS. +@function get-unthemable-tokens() { + @return ( + container-shape: 4px, + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme) { + $elevation: inspection.get-theme-color($theme, foreground, elevation); + + @return ( + // The background color of the card. + container-color: inspection.get-theme-color($theme, background, card), + container-elevation: elevation.get-box-shadow(1), + ); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return (); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + @return (); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return sass-utils.deep-merge-all( + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ); +} diff --git a/src/material/card/_m2-outlined-card.scss b/src/material/card/_m2-outlined-card.scss new file mode 100644 index 000000000000..367bc86c873e --- /dev/null +++ b/src/material/card/_m2-outlined-card.scss @@ -0,0 +1,52 @@ +@use '../core/style/elevation'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, card-outlined); + +// Tokens that can't be configured through Angular Material's current theming API, +// but may be in a future version of the theming API. +// +// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. +// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in +// our CSS. +@function get-unthemable-tokens() { + @return ( + container-shape: 4px, + outline-width: 1px, + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme) { + $elevation: inspection.get-theme-color($theme, foreground, elevation); + + @return ( + container-color: inspection.get-theme-color($theme, background, card), + outline-color: rgba(inspection.get-theme-color($theme, foreground, base), 0.12), + container-elevation: elevation.get-box-shadow(0), + ); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return (); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + @return (); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return sass-utils.deep-merge-all( + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ); +} diff --git a/src/material/core/tokens/m3/mat/_card.scss b/src/material/card/_m3-card.scss similarity index 65% rename from src/material/core/tokens/m3/mat/_card.scss rename to src/material/card/_m3-card.scss index 1d4051c7ffdb..6c70320253cc 100644 --- a/src/material/core/tokens/m3/mat/_card.scss +++ b/src/material/card/_m3-card.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, card); @@ -12,13 +12,13 @@ $prefix: (mat, card); /// @return {Map} A set of custom tokens for the mat-card @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, title-text, title-large), - token-definition.generate-typography-tokens($systems, subtitle-text, title-medium), + m3-utils.generate-typography-tokens($systems, title-text, title-large), + m3-utils.generate-typography-tokens($systems, subtitle-text, title-medium), ( subtitle-text-color: map.get($systems, md-sys-color, on-surface) ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/tokens/m3/mdc/_elevated-card.scss b/src/material/card/_m3-elevated-card.scss similarity index 61% rename from src/material/core/tokens/m3/mdc/_elevated-card.scss rename to src/material/card/_m3-elevated-card.scss index 703509c3376f..d5dc861d67f5 100644 --- a/src/material/core/tokens/m3/mdc/_elevated-card.scss +++ b/src/material/card/_m3-elevated-card.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, elevated-card); +$prefix: (mat, card-elevated); /// Generates the tokens for MDC elevated-card /// @param {Map} $systems The MDC system tokens @@ -11,12 +11,17 @@ $prefix: (mdc, elevated-card); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of tokens for the MDC elevated-card @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('elevated-card', $systems, $exclude-hardcoded); + $tokens: ( + container-color: map.get($systems, md-sys-color, surface-container-low), + container-elevation: map.get($systems, md-sys-elevation, level1), + container-shape: map.get($systems, md-sys-shape, corner-medium), + ); + $elevation: map.get($tokens, container-elevation); @if ($elevation != null) { $tokens: map.set($tokens, container-elevation, elevation.get-box-shadow($elevation)); } - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/tokens/m3/mdc/_outlined-card.scss b/src/material/card/_m3-outlined-card.scss similarity index 55% rename from src/material/core/tokens/m3/mdc/_outlined-card.scss rename to src/material/card/_m3-outlined-card.scss index dfb6e9858ec1..2db393ab4aae 100644 --- a/src/material/core/tokens/m3/mdc/_outlined-card.scss +++ b/src/material/card/_m3-outlined-card.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-card); +$prefix: (mat, card-outlined); /// Generates the tokens for MDC outlined-card /// @param {Map} $systems The MDC system tokens @@ -11,12 +11,18 @@ $prefix: (mdc, outlined-card); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of tokens for the MDC outlined-card @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('outlined-card', $systems, $exclude-hardcoded); + $tokens: ( + container-color: map.get($systems, md-sys-color, surface), + container-elevation: map.get($systems, md-sys-elevation, level0), + container-shape: map.get($systems, md-sys-shape, corner-medium), + outline-color: map.get($systems, md-sys-color, outline-variant), + outline-width: if($exclude-hardcoded, null, 1px), + ); $elevation: map.get($tokens, container-elevation); @if ($elevation != null) { $tokens: map.set($tokens, container-elevation, elevation.get-box-shadow($elevation)); } - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/card/card.scss b/src/material/card/card.scss index 21ae1ee38b42..477b9cc95683 100644 --- a/src/material/card/card.scss +++ b/src/material/card/card.scss @@ -1,7 +1,7 @@ @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/card' as tokens-mat-card; -@use '../core/tokens/m2/mdc/elevated-card' as tokens-mdc-elevated-card; -@use '../core/tokens/m2/mdc/outlined-card' as tokens-mdc-outlined-card; +@use './m2-card'; +@use './m2-elevated-card'; +@use './m2-outlined-card'; // Size of the `mat-card-header` region custom to Angular Material. $mat-card-header-size: 40px !default; @@ -18,13 +18,11 @@ $mat-card-default-padding: 16px !default; border-width: 0; @include token-utils.use-tokens( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-token-slots() - ) { - @include token-utils.create-token-slot(background-color, container-color); - @include token-utils.create-token-slot(border-color, container-color); - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(box-shadow, container-elevation); + m2-elevated-card.$prefix, m2-elevated-card.get-token-slots()) { + background-color: token-utils.slot(container-color); + border-color: token-utils.slot(container-color); + border-radius: token-utils.slot(container-shape); + box-shadow: token-utils.slot(container-elevation); } // Transparent card border for high-contrast mode. @@ -41,24 +39,20 @@ $mat-card-default-padding: 16px !default; box-sizing: border-box; @include token-utils.use-tokens( - tokens-mdc-elevated-card.$prefix, - tokens-mdc-elevated-card.get-token-slots() - ) { - @include token-utils.create-token-slot(border-radius, container-shape); + m2-elevated-card.$prefix, m2-elevated-card.get-token-slots()) { + border-radius: token-utils.slot(container-shape); } } } .mat-mdc-card-outlined { @include token-utils.use-tokens( - tokens-mdc-outlined-card.$prefix, - tokens-mdc-outlined-card.get-token-slots() - ) { - @include token-utils.create-token-slot(background-color, container-color); - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(border-width, outline-width); - @include token-utils.create-token-slot(border-color, outline-color); - @include token-utils.create-token-slot(box-shadow, container-elevation); + m2-outlined-card.$prefix, m2-outlined-card.get-token-slots()) { + background-color: token-utils.slot(container-color); + border-radius: token-utils.slot(container-shape); + border-width: token-utils.slot(outline-width); + border-color: token-utils.slot(outline-color); + box-shadow: token-utils.slot(container-elevation); } // Outlined card already displays border in high-contrast mode. @@ -101,22 +95,22 @@ $mat-card-default-padding: 16px !default; } // Add slots for custom Angular Material card tokens. -@include token-utils.use-tokens(tokens-mat-card.$prefix, tokens-mat-card.get-token-slots()) { +@include token-utils.use-tokens(m2-card.$prefix, m2-card.get-token-slots()) { .mat-mdc-card-title { - @include token-utils.create-token-slot(font-family, title-text-font); - @include token-utils.create-token-slot(line-height, title-text-line-height); - @include token-utils.create-token-slot(font-size, title-text-size); - @include token-utils.create-token-slot(letter-spacing, title-text-tracking); - @include token-utils.create-token-slot(font-weight, title-text-weight); + font-family: token-utils.slot(title-text-font); + line-height: token-utils.slot(title-text-line-height); + font-size: token-utils.slot(title-text-size); + letter-spacing: token-utils.slot(title-text-tracking); + font-weight: token-utils.slot(title-text-weight); } .mat-mdc-card-subtitle { - @include token-utils.create-token-slot(color, subtitle-text-color); - @include token-utils.create-token-slot(font-family, subtitle-text-font); - @include token-utils.create-token-slot(line-height, subtitle-text-line-height); - @include token-utils.create-token-slot(font-size, subtitle-text-size); - @include token-utils.create-token-slot(letter-spacing, subtitle-text-tracking); - @include token-utils.create-token-slot(font-weight, subtitle-text-weight); + color: token-utils.slot(subtitle-text-color); + font-family: token-utils.slot(subtitle-text-font); + line-height: token-utils.slot(subtitle-text-line-height); + font-size: token-utils.slot(subtitle-text-size); + letter-spacing: token-utils.slot(subtitle-text-tracking); + font-weight: token-utils.slot(subtitle-text-weight); } } diff --git a/src/material/card/testing/BUILD.bazel b/src/material/card/testing/BUILD.bazel index a08afd1538cc..c29b59c83fe3 100644 --- a/src/material/card/testing/BUILD.bazel +++ b/src/material/card/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -10,7 +10,7 @@ ts_project( exclude = ["**/*.spec.ts"], ), deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", ], ) @@ -19,15 +19,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/card", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/checkbox/BUILD.bazel b/src/material/checkbox/BUILD.bazel index 98e3e228cdb0..161acdbbd782 100644 --- a/src/material/checkbox/BUILD.bazel +++ b/src/material/checkbox/BUILD.bazel @@ -2,62 +2,111 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "checkbox", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [":checkbox_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-checkbox.scss", + ], deps = [ - "//src/material/core", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-checkbox.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_checkbox-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_library( - name = "checkbox_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "checkbox_common", + srcs = ["_checkbox-common.scss"], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "checkbox_scss", + name = "css", src = "checkbox.scss", deps = [ - ":checkbox_scss_lib", - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + ":checkbox_common", + ":m2", + "//src/material/core/style:layout_common", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "checkbox", + srcs = [ + "checkbox.ts", + "checkbox-config.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "checkbox.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/animations", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "checkbox_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":checkbox", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/core", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) @@ -75,7 +124,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":checkbox_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/checkbox/_checkbox-common.scss b/src/material/checkbox/_checkbox-common.scss index bf97e1c6fa09..c28689a07e3c 100644 --- a/src/material/checkbox/_checkbox-common.scss +++ b/src/material/checkbox/_checkbox-common.scss @@ -1,6 +1,6 @@ @use 'sass:math'; @use '@angular/cdk'; -@use '../core/tokens/m2/mdc/checkbox' as tokens-mdc-checkbox; +@use './m2-checkbox'; @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; @@ -16,8 +16,8 @@ $_fallback-size: 40px; // Structural styles for a checkbox. Shared with the selection list. @mixin checkbox-structure($include-state-layer-styles) { - $prefix: tokens-mdc-checkbox.$prefix; - $slots: tokens-mdc-checkbox.get-token-slots(); + $prefix: m2-checkbox.$prefix; + $slots: m2-checkbox.get-token-slots(); .mdc-checkbox { display: inline-block; @@ -32,7 +32,7 @@ $_fallback-size: 40px; vertical-align: bottom; @include token-utils.use-tokens($prefix, $slots) { - $layer-size: token-utils.get-token-variable(state-layer-size, $fallback: $_fallback-size); + $layer-size: token-utils.slot(state-layer-size, $fallback: $_fallback-size); padding: calc((#{$layer-size} - #{$_icon-size}) / 2); margin: calc((#{$layer-size} - #{$layer-size}) / 2); @@ -52,7 +52,7 @@ $_fallback-size: 40px; z-index: 1; @include token-utils.use-tokens($prefix, $slots) { - $layer-size: token-utils.get-token-variable(state-layer-size, $fallback: $_fallback-size); + $layer-size: token-utils.slot(state-layer-size, $fallback: $_fallback-size); $offset: calc((#{$layer-size} - #{$layer-size}) / 2); width: $layer-size; height: $layer-size; @@ -92,10 +92,10 @@ $_fallback-size: 40px; @include vendor-prefixes.color-adjust(exact); @include token-utils.use-tokens($prefix, $slots) { - $layer-size: token-utils.get-token-variable(state-layer-size, $fallback: $_fallback-size); + $layer-size: token-utils.slot(state-layer-size, $fallback: $_fallback-size); $offset: calc((#{$layer-size} - #{$_icon-size}) / 2); - @include token-utils.create-token-slot(border-color, unselected-icon-color); + border-color: token-utils.slot(unselected-icon-color); top: $offset; left: $offset; } @@ -106,17 +106,17 @@ $_fallback-size: 40px; @include token-utils.use-tokens($prefix, $slots) { .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, selected-icon-color); - @include token-utils.create-token-slot(background-color, selected-icon-color); + border-color: token-utils.slot(selected-icon-color); + background-color: token-utils.slot(selected-icon-color); } .mdc-checkbox--disabled .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color); + border-color: token-utils.slot(disabled-unselected-icon-color); } .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(background-color, disabled-selected-icon-color); + background-color: token-utils.slot(disabled-selected-icon-color); border-color: transparent; } @@ -124,28 +124,28 @@ $_fallback-size: 40px; .mdc-checkbox:hover > .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background, .mdc-checkbox:hover > .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, unselected-hover-icon-color); + border-color: token-utils.slot(unselected-hover-icon-color); background-color: transparent; } // stylelint-enable selector-combinator-space-before .mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background, .mdc-checkbox:hover > .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, selected-hover-icon-color); - @include token-utils.create-token-slot(background-color, selected-hover-icon-color); + border-color: token-utils.slot(selected-hover-icon-color); + background-color: token-utils.slot(selected-hover-icon-color); } // Note: this must be more specific than the hover styles above. // Double :focus is added for increased specificity. .mdc-checkbox__native-control:focus:focus:not(:checked) ~ .mdc-checkbox__background, .mdc-checkbox__native-control:focus:focus:not(:indeterminate) ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, unselected-focus-icon-color); + border-color: token-utils.slot(unselected-focus-icon-color); } .mdc-checkbox__native-control:focus:focus:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:focus:focus:indeterminate ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, selected-focus-icon-color); - @include token-utils.create-token-slot(background-color, selected-focus-icon-color); + border-color: token-utils.slot(selected-focus-icon-color); + background-color: token-utils.slot(selected-focus-icon-color); } // Needs extra specificity to override the focus, hover, active states. @@ -153,12 +153,12 @@ $_fallback-size: 40px; .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background, .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background, .mdc-checkbox__background { - @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color); + border-color: token-utils.slot(disabled-unselected-icon-color); } .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background { - @include token-utils.create-token-slot(background-color, disabled-selected-icon-color); + background-color: token-utils.slot(disabled-selected-icon-color); border-color: transparent; } } @@ -177,7 +177,7 @@ $_fallback-size: 40px; @include token-utils.use-tokens($prefix, $slots) { // Always apply the color since the element becomes `opacity: 0` // when unchecked. This makes the animation look better. - @include token-utils.create-token-slot(color, selected-checkmark-color); + color: token-utils.slot(selected-checkmark-color); } @include cdk.high-contrast { @@ -189,7 +189,7 @@ $_fallback-size: 40px; .mdc-checkbox--disabled { &, &.mat-mdc-checkbox-disabled-interactive { .mdc-checkbox__checkmark { - @include token-utils.create-token-slot(color, disabled-selected-checkmark-color); + color: token-utils.slot(disabled-selected-checkmark-color); @include cdk.high-contrast { color: CanvasText; @@ -220,7 +220,7 @@ $_fallback-size: 40px; @include token-utils.use-tokens($prefix, $slots) { // Always apply the color since the element becomes `opacity: 0` // when unchecked. This makes the animation look better. - @include token-utils.create-token-slot(border-color, selected-checkmark-color); + border-color: token-utils.slot(selected-checkmark-color); } @include cdk.high-contrast { @@ -232,7 +232,7 @@ $_fallback-size: 40px; .mdc-checkbox--disabled { &, &.mat-mdc-checkbox-disabled-interactive { .mdc-checkbox__mixedmark { - @include token-utils.create-token-slot(border-color, disabled-selected-checkmark-color); + border-color: token-utils.slot(disabled-selected-checkmark-color); } } } @@ -472,103 +472,67 @@ $_fallback-size: 40px; // `.mdc-checkbox__ripple` instead, so we emit the state layer slots ourselves. &:hover { > .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, unselected-hover-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - unselected-hover-state-layer-color - ); + opacity: token-utils.slot(unselected-hover-state-layer-opacity); + background-color: token-utils.slot(unselected-hover-state-layer-color); } > .mat-mdc-checkbox-ripple > .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - unselected-hover-state-layer-color - ); + background-color: token-utils.slot(unselected-hover-state-layer-color); } } .mdc-checkbox__native-control:focus { & + .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, unselected-focus-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - unselected-focus-state-layer-color - ); + opacity: token-utils.slot(unselected-focus-state-layer-opacity); + background-color: token-utils.slot(unselected-focus-state-layer-color); } & ~ .mat-mdc-checkbox-ripple .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - unselected-focus-state-layer-color - ); + background-color: token-utils.slot(unselected-focus-state-layer-color); } } &:active > .mdc-checkbox__native-control { & + .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, unselected-pressed-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - unselected-pressed-state-layer-color - ); + opacity: token-utils.slot(unselected-pressed-state-layer-opacity); + background-color: token-utils.slot(unselected-pressed-state-layer-color); } & ~ .mat-mdc-checkbox-ripple .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - unselected-pressed-state-layer-color - ); + background-color: token-utils.slot(unselected-pressed-state-layer-color); } } &:hover .mdc-checkbox__native-control:checked { & + .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, selected-hover-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - selected-hover-state-layer-color - ); + opacity: token-utils.slot(selected-hover-state-layer-opacity); + background-color: token-utils.slot(selected-hover-state-layer-color); } & ~ .mat-mdc-checkbox-ripple .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - selected-hover-state-layer-color - ); + background-color: token-utils.slot(selected-hover-state-layer-color); } } .mdc-checkbox__native-control:focus:checked { & + .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, selected-focus-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - selected-focus-state-layer-color - ); + opacity: token-utils.slot(selected-focus-state-layer-opacity); + background-color: token-utils.slot(selected-focus-state-layer-color); } & ~ .mat-mdc-checkbox-ripple .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - selected-focus-state-layer-color - ); + background-color: token-utils.slot(selected-focus-state-layer-color); } } &:active > .mdc-checkbox__native-control:checked { & + .mdc-checkbox__ripple { - @include token-utils.create-token-slot(opacity, selected-pressed-state-layer-opacity); - @include token-utils.create-token-slot( - background-color, - selected-pressed-state-layer-color - ); + opacity: token-utils.slot(selected-pressed-state-layer-opacity); + background-color: token-utils.slot(selected-pressed-state-layer-color); } & ~ .mat-mdc-checkbox-ripple .mat-ripple-element { - @include token-utils.create-token-slot( - background-color, - selected-pressed-state-layer-color - ); + background-color: token-utils.slot(selected-pressed-state-layer-color); } } @@ -576,10 +540,7 @@ $_fallback-size: 40px; .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive & { .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element, .mdc-checkbox__native-control + .mdc-checkbox__ripple { - @include token-utils.create-token-slot( - background-color, - unselected-hover-state-layer-color - ); + background-color: token-utils.slot(unselected-hover-state-layer-color); } } } diff --git a/src/material/checkbox/_checkbox-theme.scss b/src/material/checkbox/_checkbox-theme.scss index da1b555ae4df..46af1b611953 100644 --- a/src/material/checkbox/_checkbox-theme.scss +++ b/src/material/checkbox/_checkbox-theme.scss @@ -4,8 +4,7 @@ @use '../core/theming/validation'; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mdc/checkbox' as tokens-mdc-checkbox; -@use '../core/tokens/m2/mat/checkbox' as tokens-mat-checkbox; +@use './m2-checkbox'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-checkbox. @@ -16,13 +15,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-unthemable-tokens() - ); + m2-checkbox.$prefix, m2-checkbox.get-unthemable-tokens()); } } } @@ -38,27 +31,23 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-color-tokens($theme) - ); + m2-checkbox.$prefix, m2-checkbox.get-color-tokens($theme)); } .mat-mdc-checkbox { &.mat-primary { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme, primary) + m2-checkbox.$prefix, + m2-checkbox.get-color-tokens($theme, primary, + $exclude: (disabled-label-color, label-text-color)) ); } &.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme, warn) + m2-checkbox.$prefix, + m2-checkbox.get-color-tokens($theme, warn, + $exclude: (disabled-label-color, label-text-color)) ); } } @@ -73,12 +62,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-typography-tokens($theme) + m2-checkbox.$prefix, + m2-checkbox.get-typography-tokens($theme) ); } } @@ -94,12 +79,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-density-tokens($theme) + m2-checkbox.$prefix, + m2-checkbox.get-density-tokens($theme) ); } } @@ -109,12 +90,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-checkbox.$prefix, - tokens: tokens-mat-checkbox.get-token-slots(), - ), - ( - namespace: tokens-mdc-checkbox.$prefix, - tokens: tokens-mdc-checkbox.get-token-slots(), + namespace: m2-checkbox.$prefix, + tokens: m2-checkbox.get-token-slots(), ), ); } @@ -153,14 +130,10 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-checkbox-tokens: token-utils.get-tokens-for( + $mat-checkbox-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-checkbox.$prefix, + m2-checkbox.$prefix, $options... ); - // Don't pass $options here, since the mdc-checkbox doesn't support color options, - // only the mdc-checkbox does. - $mat-checkbox-tokens: token-utils.get-tokens-for($tokens, tokens-mat-checkbox.$prefix); - @include token-utils.create-token-values(tokens-mdc-checkbox.$prefix, $mdc-checkbox-tokens); - @include token-utils.create-token-values(tokens-mat-checkbox.$prefix, $mat-checkbox-tokens); + @include token-utils.create-token-values(m2-checkbox.$prefix, $mat-checkbox-tokens); } diff --git a/src/material/core/tokens/m2/mdc/_checkbox.scss b/src/material/checkbox/_m2-checkbox.scss similarity index 50% rename from src/material/core/tokens/m2/mdc/_checkbox.scss rename to src/material/checkbox/_m2-checkbox.scss index 96e6a83b9a49..ed56c2648020 100644 --- a/src/material/core/tokens/m2/mdc/_checkbox.scss +++ b/src/material/checkbox/_m2-checkbox.scss @@ -1,50 +1,30 @@ @use 'sass:map'; -@use '../../../m2/palette' as m2-palette; -@use '../../../m2/theming' as m2-theming; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/m2/theming' as m2-theming; +@use '../core/m2/palette' as m2-palette; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, checkbox); +$prefix: (mat, checkbox); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( - // The color of the checkmark when the checkbox is selected and disabled. disabled-selected-checkmark-color: #fff, - // The opacity of the ripple when the checkbox is selected and focused. selected-focus-state-layer-opacity: 0.16, - // The opacity of the ripple when the checkbox is selected and hovered. selected-hover-state-layer-opacity: 0.04, - // The opacity of the ripple when the checkbox is selected and pressed. selected-pressed-state-layer-opacity: 0.16, - // The opacity of the ripple when the checkbox is unselected and focused. unselected-focus-state-layer-opacity: 0.16, - // The opacity of the ripple when the checkbox is unselected and hovered. unselected-hover-state-layer-opacity: 0.04, - // The opacity of the ripple when the checkbox is unselected and pressed. unselected-pressed-state-layer-opacity: 0.16, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - selected-pressed-icon-color: null, - unselected-pressed-icon-color: null, - - // MDC currently doesn't output a slot for these tokens. - disabled-selected-icon-opacity: null, - disabled-unselected-icon-opacity: null, ); } // Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme, $palette-name: accent) { +@function get-color-tokens($theme, $palette-name: accent, $exclude: ()) { $is-dark: inspection.get-theme-type($theme) == dark; $foreground-base: inspection.get-theme-color($theme, foreground, base); $palette-default: inspection.get-theme-color($theme, $palette-name, default); @@ -59,8 +39,8 @@ $prefix: (mdc, checkbox); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - @if (token-definition.$private-is-internal-build) { - $contrast-tone: token-definition.contrast-tone($palette-selected, $is-dark); + @if (m2-utils.$private-is-internal-build) { + $contrast-tone: m2-utils.contrast-tone($palette-selected, $is-dark); $selected-checkmark-color: if($contrast-tone == 'dark', #000, #fff); } @else { @@ -68,45 +48,43 @@ $prefix: (mdc, checkbox); inspection.get-theme-color($theme, $palette-name, default-contrast, 1); } - @return ( - // The color of the checkbox fill when the checkbox is selected and disabled. + $tokens: ( + disabled-label-color: inspection.get-theme-color($theme, foreground, disabled-text), + label-text-color: inspection.get-theme-color($theme, foreground, text), disabled-selected-icon-color: $disabled-color, - // The color of the checkbox border when the checkbox is unselected and disabled. disabled-unselected-icon-color: $disabled-color, - // The color of the checkmark when the checkbox is selected. selected-checkmark-color: $selected-checkmark-color, - // The color of the checkbox fill when the checkbox is selected and focused. selected-focus-icon-color: $palette-selected, - // The color of the checkbox fill when the checkbox is selected and hovered. selected-hover-icon-color: $palette-selected, - // The color of the checkbox fill when the checkbox is selected. selected-icon-color: $palette-selected, - // The color of the checkbox fill when the checkbox is selected and pressed. selected-pressed-icon-color: $palette-selected, - // The color of the checkbox border when the checkbox is unselected and focused. unselected-focus-icon-color: $active-border-color, - // The color of the checkbox border when the checkbox is unselected and hovered. unselected-hover-icon-color: $active-border-color, - // The color of the checkbox border when the checkbox is unselected. unselected-icon-color: $border-color, - // The color of the ripple when the checkbox is selected and focused. selected-focus-state-layer-color: $palette-default, - // The color of the ripple when the checkbox is selected and hovered. selected-hover-state-layer-color: $palette-default, - // The color of the ripple when the checkbox is selected and pressed. selected-pressed-state-layer-color: $palette-default, - // The color of the ripple when the checkbox is unselected and focused. unselected-focus-state-layer-color: $foreground-base, - // The color of the ripple when the checkbox is unselected and hovered. unselected-hover-state-layer-color: $foreground-base, - // The color of the ripple when the checkbox is unselected and pressed. unselected-pressed-state-layer-color: $foreground-base, ); + + @each $token in $exclude { + $tokens: map.remove($tokens, $token); + } + + @return $tokens; } // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { - @return (); + @return ( + label-text-font: inspection.get-theme-typography($theme, body-2, font-family), + label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), + label-text-size: inspection.get-theme-typography($theme, body-2, font-size), + label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) + ); } // Tokens that can be configured through Angular Material's density theming API. @@ -114,7 +92,7 @@ $prefix: (mdc, checkbox); $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); @return ( - // The diameter of the checkbox's ripple. + touch-target-display: if($scale < -1, none, block), state-layer-size: map.get(( 0: 40px, -1: 36px, @@ -128,9 +106,9 @@ $prefix: (mdc, checkbox); // This is used to create token slots. @function get-token-slots() { @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/checkbox/_m3-checkbox.scss b/src/material/checkbox/_m3-checkbox.scss new file mode 100644 index 000000000000..ec22a932d94b --- /dev/null +++ b/src/material/checkbox/_m3-checkbox.scss @@ -0,0 +1,90 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, checkbox); + +/// Generates custom tokens for mat-checkbox. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for mat-checkbox +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + disabled-label-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-selected-checkmark-color: map.get($systems, md-sys-color, surface), + disabled-selected-icon-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-unselected-icon-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + label-text-color: map.get($systems, md-sys-color, on-surface), + label-text-font: map.get($systems, md-sys-typescale, body-medium-font), + label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), + label-text-size: map.get($systems, md-sys-typescale, body-medium-size), + label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), + label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + selected-checkmark-color: map.get($systems, md-sys-color, on-primary), + selected-focus-icon-color: map.get($systems, md-sys-color, primary), + selected-focus-state-layer-color: map.get($systems, md-sys-color, primary), + selected-focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + selected-hover-icon-color: map.get($systems, md-sys-color, primary), + selected-hover-state-layer-color: map.get($systems, md-sys-color, primary), + selected-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + selected-icon-color: map.get($systems, md-sys-color, primary), + selected-pressed-icon-color: map.get($systems, md-sys-color, primary), + selected-pressed-state-layer-color: map.get($systems, md-sys-color, on-surface), + selected-pressed-state-layer-opacity: + map.get($systems, md-sys-state, pressed-state-layer-opacity), + state-layer-size: if($exclude-hardcoded, null, 40px), + unselected-focus-icon-color: map.get($systems, md-sys-color, on-surface), + unselected-focus-state-layer-color: map.get($systems, md-sys-color, on-surface), + unselected-focus-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + unselected-hover-icon-color: map.get($systems, md-sys-color, on-surface), + unselected-hover-state-layer-color: map.get($systems, md-sys-color, on-surface), + unselected-hover-state-layer-opacity: + map.get($systems, md-sys-state, hover-state-layer-opacity), + unselected-icon-color: map.get($systems, md-sys-color, on-surface-variant), + unselected-pressed-state-layer-color: map.get($systems, md-sys-color, primary), + unselected-pressed-state-layer-opacity: + map.get($systems, md-sys-state, pressed-state-layer-opacity), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + selected-focus-icon-color: map.get($systems, md-sys-color, secondary), + selected-focus-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-hover-icon-color: map.get($systems, md-sys-color, secondary), + selected-hover-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-icon-color: map.get($systems, md-sys-color, secondary), + selected-pressed-icon-color: map.get($systems, md-sys-color, secondary), + unselected-pressed-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-checkmark-color: map.get($systems, md-sys-color, on-secondary), + ), + tertiary: ( + selected-focus-icon-color: map.get($systems, md-sys-color, tertiary), + selected-focus-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-hover-icon-color: map.get($systems, md-sys-color, tertiary), + selected-hover-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-icon-color: map.get($systems, md-sys-color, tertiary), + selected-pressed-icon-color: map.get($systems, md-sys-color, tertiary), + unselected-pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-checkmark-color: map.get($systems, md-sys-color, on-tertiary), + ), + error: ( + selected-focus-icon-color: map.get($systems, md-sys-color, error), + selected-focus-state-layer-color: map.get($systems, md-sys-color, error), + selected-hover-icon-color: map.get($systems, md-sys-color, error), + selected-hover-state-layer-color: map.get($systems, md-sys-color, error), + selected-icon-color: map.get($systems, md-sys-color, error), + selected-pressed-icon-color: map.get($systems, md-sys-color, error), + unselected-pressed-state-layer-color: map.get($systems, md-sys-color, error), + selected-checkmark-color: map.get($systems, md-sys-color, on-error), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/checkbox/checkbox.scss b/src/material/checkbox/checkbox.scss index 0ab15a3d7d7a..10674897aa71 100644 --- a/src/material/checkbox/checkbox.scss +++ b/src/material/checkbox/checkbox.scss @@ -1,10 +1,13 @@ @use '../core/style/layout-common'; -@use '../core/tokens/m2/mat/checkbox' as tokens-mat-checkbox; +@use './m2-checkbox'; @use '../core/tokens/token-utils'; @use './checkbox-common'; @include checkbox-common.checkbox-structure(true); +$token-prefix: m2-checkbox.$prefix; +$token-slots: m2-checkbox.get-token-slots(); + .mat-mdc-checkbox { // The host node defaults to `display: inline`, we have to change it in order for margins to work. display: inline-block; @@ -22,16 +25,13 @@ } .mat-internal-form-field { - @include token-utils.use-tokens( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-token-slots() - ) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(label-text-color); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + font-weight: token-utils.slot(label-text-weight); } } @@ -47,11 +47,8 @@ label { cursor: default; - @include token-utils.use-tokens( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-token-slots() - ) { - @include token-utils.create-token-slot(color, disabled-label-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(disabled-label-color); } } } @@ -98,11 +95,8 @@ width: 48px; transform: translate(-50%, -50%); - @include token-utils.use-tokens( - tokens-mat-checkbox.$prefix, - tokens-mat-checkbox.get-token-slots() - ) { - @include token-utils.create-token-slot(display, touch-target-display); + @include token-utils.use-tokens($token-prefix, $token-slots) { + display: token-utils.slot(touch-target-display); } } diff --git a/src/material/checkbox/testing/BUILD.bazel b/src/material/checkbox/testing/BUILD.bazel index a9ce7fdc0811..1865cbde4684 100644 --- a/src/material/checkbox/testing/BUILD.bazel +++ b/src/material/checkbox/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", ], @@ -20,16 +20,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/checkbox", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/chips/BUILD.bazel b/src/material/chips/BUILD.bazel index 4bc02f1ce534..ef8496d1bda8 100644 --- a/src/material/chips/BUILD.bazel +++ b/src/material/chips/BUILD.bazel @@ -2,70 +2,125 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "chips", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [ - ":chip_scss", - ":chip_set_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-chip.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/material/core", - "//src/material/form-field", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "chips_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-chip.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_chips-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "chip_scss", + name = "chip_css", src = "chip.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/focus-indicators", + "//src/material/core/style:layout_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "chip_set_scss", + name = "chip_set_css", src = "chip-set.scss", + deps = ["//src/material/core/style:vendor_prefixes"], +) + +ng_project( + name = "chips", + srcs = [ + "chip.ts", + "chip-action.ts", + "chip-edit-input.ts", + "chip-grid.ts", + "chip-icons.ts", + "chip-input.ts", + "chip-listbox.ts", + "chip-option.ts", + "chip-row.ts", + "chip-set.ts", + "chip-text-control.ts", + "index.ts", + "module.ts", + "public-api.ts", + "tokens.ts", + ], + assets = [ + "chip-option.html", + "chip-row.html", + "chip.html", + ":chip_css", + ":chip_set_css", + ], deps = [ - "//src/material/core:core_scss_lib", + "//:node_modules/@angular/animations", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/material/core", + "//src/material/form-field", ], ) -ng_test_library( +ts_project( name = "chips_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":chips", + "//:node_modules/@angular/animations", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", @@ -75,11 +130,6 @@ ng_test_library( "//src/material/core", "//src/material/form-field", "//src/material/input", - "@npm//@angular/animations", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -97,7 +147,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":chips_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/chips/_chips-theme.scss b/src/material/chips/_chips-theme.scss index 2ba7e4e15750..91ef757a0558 100644 --- a/src/material/chips/_chips-theme.scss +++ b/src/material/chips/_chips-theme.scss @@ -1,6 +1,5 @@ @use 'sass:color'; -@use '../core/tokens/m2/mdc/chip' as tokens-mdc-chip; -@use '../core/tokens/m2/mat/chip' as tokens-mat-chip; +@use './m2-chip'; @use '../core/tokens/token-utils'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @@ -16,13 +15,7 @@ } @else { .mat-mdc-standard-chip { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-unthemable-tokens() - ); + m2-chip.$prefix, m2-chip.get-unthemable-tokens()); } } } @@ -38,47 +31,23 @@ } @else { .mat-mdc-standard-chip { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-color-tokens($theme) - ); + m2-chip.$prefix, m2-chip.get-color-tokens($theme)); &.mat-mdc-chip-selected, &.mat-mdc-chip-highlighted { &.mat-primary { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-color-tokens($theme, primary) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-color-tokens($theme, primary) - ); + m2-chip.$prefix, m2-chip.get-color-tokens($theme, primary)); } &.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-color-tokens($theme, accent) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-color-tokens($theme, accent) - ); + m2-chip.$prefix, m2-chip.get-color-tokens($theme, accent)); } &.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-color-tokens($theme, warn) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-color-tokens($theme, warn) - ); + m2-chip.$prefix, m2-chip.get-color-tokens($theme, warn)); } } } @@ -93,12 +62,7 @@ } @else { .mat-mdc-standard-chip { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-typography-tokens($theme) + m2-chip.$prefix, m2-chip.get-typography-tokens($theme) ); } } @@ -112,12 +76,7 @@ } @else { .mat-mdc-chip.mat-mdc-standard-chip { @include token-utils.create-token-values-mixed( - tokens-mdc-chip.$prefix, - tokens-mdc-chip.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-chip.$prefix, - tokens-mat-chip.get-density-tokens($theme) + m2-chip.$prefix, m2-chip.get-density-tokens($theme) ); } } @@ -127,12 +86,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-chip.$prefix, - tokens: tokens-mdc-chip.get-token-slots(), - ), - ( - namespace: tokens-mat-chip.$prefix, - tokens: tokens-mat-chip.get-token-slots(), + namespace: m2-chip.$prefix, + tokens: m2-chip.get-token-slots(), ), ); } @@ -171,8 +126,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-chip-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-chip.$prefix, $options...); - $mat-chip-tokens: token-utils.get-tokens-for($tokens, tokens-mat-chip.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-chip.$prefix, $mdc-chip-tokens); - @include token-utils.create-token-values(tokens-mat-chip.$prefix, $mat-chip-tokens); + $mat-chip-tokens: token-utils.get-tokens-for($tokens, m2-chip.$prefix, $options...); + @include token-utils.create-token-values(m2-chip.$prefix, $mat-chip-tokens); } diff --git a/src/material/chips/_m2-chip.scss b/src/material/chips/_m2-chip.scss new file mode 100644 index 000000000000..59382d058107 --- /dev/null +++ b/src/material/chips/_m2-chip.scss @@ -0,0 +1,127 @@ +@use 'sass:map'; +@use 'sass:meta'; +@use 'sass:color'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/m2/palette' as m2-palette; +@use '../core/theming/theming'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, chip); + +// Tokens that can't be configured through Angular Material's current theming API, +// but may be in a future version of the theming API. +@function get-unthemable-tokens() { + @return ( + container-shape-radius: 16px, + disabled-container-opacity: 0.4, + disabled-outline-color: transparent, + flat-selected-outline-width: 0, + focus-outline-color: transparent, + hover-state-layer-opacity: 0.04, + outline-color: transparent, + outline-width: 0, + selected-hover-state-layer-opacity: 0.04, + selected-trailing-action-state-layer-color: transparent, + trailing-action-focus-opacity: 1, + trailing-action-focus-state-layer-opacity: 0, + trailing-action-hover-state-layer-opacity: 0, + trailing-action-opacity: 0.54, + trailing-action-state-layer-color: transparent, + with-avatar-avatar-shape-radius: 14px, + with-avatar-avatar-size: 28px, + with-avatar-disabled-avatar-opacity: 1, + with-icon-disabled-icon-opacity: 1, + with-icon-icon-size: 18px, + with-trailing-icon-disabled-trailing-icon-opacity: 1, + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme, $palette-name: null) { + $foreground: null; + $background: null; + $state-layer-color: inspection.get-theme-color($theme, foreground, base); + $state-layer-opacity: 0.12; // 0.12 is a common value in Material Design for opacity. + $surface: inspection.get-theme-color($theme, background, card); + + @if $palette-name == null { + $is-dark: inspection.get-theme-type($theme) == dark; + $grey-50: map.get(m2-palette.$grey-palette, 50); + $grey-900: map.get(m2-palette.$grey-palette, 900); + $foreground: if($is-dark, $grey-50, $grey-900); + + $surface: inspection.get-theme-color($theme, background, card); + $background: if( + meta.type-of($state-layer-color) == color and meta.type-of($surface) == color, + color.mix($state-layer-color, $surface, 12%), + $state-layer-color + ); + } + @else { + $background: inspection.get-theme-color($theme, $palette-name); + $foreground: inspection.get-theme-color($theme, $palette-name, default-contrast); + } + @return ( + disabled-label-text-color: $foreground, + elevated-container-color: $background, + elevated-disabled-container-color: $background, + elevated-selected-container-color: $background, + flat-disabled-selected-container-color: $background, + focus-state-layer-color: $state-layer-color, + focus-state-layer-opacity: $state-layer-opacity, + hover-state-layer-color: $state-layer-color, + label-text-color: $foreground, + selected-disabled-trailing-icon-color: $foreground, + selected-focus-state-layer-color: $state-layer-color, + selected-focus-state-layer-opacity: $state-layer-opacity, + selected-hover-state-layer-color: $state-layer-color, + selected-label-text-color: $foreground, + selected-trailing-icon-color: $foreground, + with-icon-disabled-icon-color: $foreground, + with-icon-icon-color: $foreground, + with-icon-selected-icon-color: $foreground, + with-trailing-icon-disabled-trailing-icon-color: $foreground, + with-trailing-icon-trailing-icon-color: $foreground, + ); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return ( + label-text-font: inspection.get-theme-typography($theme, body-2, font-family), + label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), + label-text-size: inspection.get-theme-typography($theme, body-2, font-size), + label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) + ); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + $scale: theming.clamp-density(inspection.get-theme-density($theme), -2); + @return ( + // The height of the chip. + container-height: + map.get( + ( + 0: 32px, + -1: 28px, + -2: 24px, + ), + $scale + ) + ); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return sass-utils.deep-merge-all( + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ); +} diff --git a/src/material/chips/_m3-chip.scss b/src/material/chips/_m3-chip.scss new file mode 100644 index 000000000000..8a460788c478 --- /dev/null +++ b/src/material/chips/_m3-chip.scss @@ -0,0 +1,116 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, chip); + +/// Generates custom tokens for the mat-chip. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-chip +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + // MDC has a chip component, but they seem to have made up the tokens rather than using ones + // generated from the token database, therefore we need a custom token function for it. + $tokens: sass-utils.merge-all( + m3-utils.generate-typography-tokens($systems, label-text, label-large), + ( + disabled-container-opacity: m3-utils.hardcode(1, $exclude-hardcoded), + selected-trailing-icon-color: map.get($systems, md-sys-color, on-secondary-container), + selected-disabled-trailing-icon-color: map.get($systems, md-sys-color, on-surface), + trailing-action-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + selected-trailing-action-state-layer-color: + map.get($systems, md-sys-color, on-secondary-container), + trailing-action-hover-state-layer-opacity: + map.get($systems, md-sys-state, hover-state-layer-opacity), + trailing-action-focus-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + trailing-action-opacity: m3-utils.hardcode(1, $exclude-hardcoded), + trailing-action-focus-opacity: m3-utils.hardcode(1, $exclude-hardcoded), + container-shape-radius: m3-utils.hardcode(8px, $exclude-hardcoded), + with-avatar-avatar-size: m3-utils.hardcode(24px, $exclude-hardcoded), + with-avatar-avatar-shape-radius: m3-utils.hardcode(24px, $exclude-hardcoded), + label-text-color: map.get($systems, md-sys-color, on-surface-variant), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), + $alpha: 0.38, + ), + with-icon-icon-size: m3-utils.hardcode(18px, $exclude-hardcoded), + with-icon-icon-color: map.get($systems, md-sys-color, on-surface-variant), + with-icon-disabled-icon-color: map.get($systems, md-sys-color, on-surface), + with-icon-selected-icon-color: map.get($systems, md-sys-color, on-secondary-container), + with-trailing-icon-trailing-icon-color: map.get($systems, md-sys-color, on-surface-variant), + with-trailing-icon-disabled-trailing-icon-color: + map.get($systems, md-sys-color, on-surface), + focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + focus-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + outline-width: m3-utils.hardcode(1px, $exclude-hardcoded), + outline-color: map.get($systems, md-sys-color, outline), + disabled-outline-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), + $alpha: 0.12, + ), + focus-outline-color: map.get($systems, md-sys-color, on-surface-variant), + hover-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), + hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + with-avatar-disabled-avatar-opacity: m3-utils.hardcode(0.38, $exclude-hardcoded), + elevated-selected-container-color: map.get($systems, md-sys-color, secondary-container), + // In the M3 tokens this is a `surface` color, but in the MDC implementation its + // never being emitted. We emit `transparent` so consumers override the color. + elevated-container-color: m3-utils.hardcode(transparent, $exclude-hardcoded), + flat-selected-outline-width: m3-utils.hardcode(0, $exclude-hardcoded), + selected-label-text-color: map.get($systems, md-sys-color, on-secondary-container), + flat-disabled-selected-container-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), + $alpha: 0.12, + ), + selected-hover-state-layer-color: map.get($systems, md-sys-color, on-secondary-container), + selected-hover-state-layer-opacity: + map.get($systems, md-sys-state, hover-state-layer-opacity), + selected-focus-state-layer-color: map.get($systems, md-sys-color, on-secondary-container), + selected-focus-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + with-icon-disabled-icon-opacity: m3-utils.hardcode(0.38, $exclude-hardcoded), + with-trailing-icon-disabled-trailing-icon-opacity: + m3-utils.hardcode(0.38, $exclude-hardcoded), + ), + ); + + $variant-tokens: ( + // Color variants: + primary: ( + selected-trailing-icon-color: map.get($systems, md-sys-color, on-primary-container), + selected-trailing-action-state-layer-color: + map.get($systems, md-sys-color, on-primary-container), + with-icon-selected-icon-color: map.get($systems, md-sys-color, on-primary-container), + elevated-selected-container-color: map.get($systems, md-sys-color, primary-container), + selected-label-text-color: map.get($systems, md-sys-color, on-primary-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, on-primary-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, on-primary-container), + ), + secondary: (), // Default, no overrides needed. + tertiary: ( + selected-trailing-icon-color: map.get($systems, md-sys-color, on-tertiary-container), + selected-trailing-action-state-layer-color: + map.get($systems, md-sys-color, on-tertiary-container), + with-icon-selected-icon-color: map.get($systems, md-sys-color, on-tertiary-container), + elevated-selected-container-color: map.get($systems, md-sys-color, tertiary-container), + selected-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), + ), + error: ( + selected-trailing-icon-color: map.get($systems, md-sys-color, on-error-container), + selected-trailing-action-state-layer-color: + map.get($systems, md-sys-color, on-error-container), + with-icon-selected-icon-color: map.get($systems, md-sys-color, on-error-container), + elevated-selected-container-color: map.get($systems, md-sys-color, error-container), + selected-label-text-color: map.get($systems, md-sys-color, on-error-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, on-error-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, on-error-container), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/chips/chip-grid.spec.ts b/src/material/chips/chip-grid.spec.ts index d536692baebb..e0ea3b3ac56a 100644 --- a/src/material/chips/chip-grid.spec.ts +++ b/src/material/chips/chip-grid.spec.ts @@ -983,7 +983,9 @@ describe('MatChipGrid', () => { errorTestComponent.formControl.markAsTouched(); fixture.detectChanges(); - expect(containerEl.querySelector('mat-error')!.getAttribute('aria-live')).toBe('polite'); + expect( + containerEl.querySelector('[aria-live]:has(mat-error)')!.getAttribute('aria-live'), + ).toBe('polite'); }); it('sets the aria-describedby on the input to reference errors when in error state', fakeAsync(() => { @@ -1013,6 +1015,44 @@ describe('MatChipGrid', () => { })); }); + describe('chip with form control', () => { + let fixture: ComponentFixture; + let component: ChipsFormControlUpdate; + let nativeInput: HTMLInputElement; + let nativeButton: HTMLButtonElement; + + beforeEach(() => { + fixture = createComponent(ChipsFormControlUpdate); + component = fixture.componentInstance; + nativeInput = fixture.nativeElement.querySelector('input'); + nativeButton = fixture.nativeElement.querySelector('button[id="save"]'); + }); + + it('should update the form control value when pressed enter', fakeAsync(() => { + nativeInput.value = 'hello'; + nativeInput.focus(); + fixture.detectChanges(); + + dispatchKeyboardEvent(document.activeElement!, 'keydown', ENTER); + fixture.detectChanges(); + flush(); + + expect(component.keywordChipControl.value).not.toBeNull(); + expect(component.keywordChipControl.value.length).toBe(1); + expect(nativeButton.disabled).toBeFalsy(); + + nativeInput.value = 'how are you ?'; + nativeInput.focus(); + fixture.detectChanges(); + + dispatchKeyboardEvent(document.activeElement!, 'keydown', ENTER); + fixture.detectChanges(); + flush(); + + expect(component.keywordChipControl.value.length).toBe(2); + })); + }); + function createComponent( component: Type, direction: Direction = 'ltr', @@ -1218,3 +1258,37 @@ class ChipGridWithRemove { this.chips.splice(event.chip.value, 1); } } + +@Component({ + template: ` + + Keywords + + @for (keyword of keywords; track keyword) { + {{keyword}} + } + + + + + `, + standalone: false, +}) +class ChipsFormControlUpdate { + keywords = new Array(); + keywordChipControl = new FormControl(); + + constructor() { + this.keywordChipControl.setValidators(Validators.required); + } + + add(event: MatChipInputEvent): void { + const value = (event.value || '').trim(); + + if (value) { + this.keywords.push(value); + } + + event.chipInput.clear(); + } +} diff --git a/src/material/chips/chip-grid.ts b/src/material/chips/chip-grid.ts index 9741ca8453e9..a2a047d9fc1e 100644 --- a/src/material/chips/chip-grid.ts +++ b/src/material/chips/chip-grid.ts @@ -415,6 +415,14 @@ export class MatChipGrid } } + /** When called, propagates the changes. */ + _change() { + // Timeout is needed to wait for the focus() event trigger on chip input. + setTimeout(() => { + this._propagateChanges(); + }); + } + /** * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the * user to tab out of it. This prevents the grid from capturing focus and redirecting diff --git a/src/material/chips/chip-input.ts b/src/material/chips/chip-input.ts index e02a5ea5b98e..98cda6265f3b 100644 --- a/src/material/chips/chip-input.ts +++ b/src/material/chips/chip-input.ts @@ -198,7 +198,8 @@ export class MatChipInput implements MatChipTextControl, OnChanges, OnDestroy { value: this.inputElement.value, chipInput: this, }); - + this._chipGrid._change(); + this._chipGrid.stateChanges.next(); event?.preventDefault(); } } diff --git a/src/material/chips/chip.scss b/src/material/chips/chip.scss index ffbd69cda821..206f979b73d6 100644 --- a/src/material/chips/chip.scss +++ b/src/material/chips/chip.scss @@ -1,10 +1,9 @@ @use '@angular/cdk'; -@use '../core/style/layout-common'; @use '../core/focus-indicators/private' as focus-indicators-private; -@use '../core/tokens/m2/mdc/chip' as tokens-mdc-chip; -@use '../core/tokens/m2/mat/chip' as tokens-mat-chip; +@use '../core/style/layout-common'; @use '../core/style/vendor-prefixes'; @use '../core/tokens/token-utils'; +@use './m2-chip'; $_checkmark-size: 20px; $_trailing-icon-size: 18px; @@ -14,6 +13,9 @@ $_trailing-action-padding: 8px; $_avatar-leading-padding: 4px; $_avatar-trailing-padding: 8px; +$token-prefix: m2-chip.$prefix; +$token-slots: m2-chip.get-token-slots(); + .mdc-evolution-chip, .mdc-evolution-chip__cell, .mdc-evolution-chip__action { @@ -75,10 +77,10 @@ $_avatar-trailing-padding: 8px; white-space: inherit; overflow-x: hidden; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip &::before { - @include token-utils.create-token-slot(border-width, outline-width); - @include token-utils.create-token-slot(border-radius, container-shape-radius); + border-width: token-utils.slot(outline-width); + border-radius: token-utils.slot(container-shape-radius); box-sizing: border-box; content: ''; height: 100%; @@ -107,19 +109,19 @@ $_avatar-trailing-padding: 8px; } .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) &::before { - @include token-utils.create-token-slot(border-color, outline-color); + border-color: token-utils.slot(outline-color); } &:not(.mdc-evolution-chip__action--presentational):not(.mdc-ripple-upgraded):focus::before { - @include token-utils.create-token-slot(border-color, focus-outline-color); + border-color: token-utils.slot(focus-outline-color); } .mat-mdc-standard-chip.mdc-evolution-chip--disabled &::before { - @include token-utils.create-token-slot(border-color, disabled-outline-color); + border-color: token-utils.slot(disabled-outline-color); } .mat-mdc-standard-chip.mdc-evolution-chip--selected &::before { - @include token-utils.create-token-slot(border-width, flat-selected-outline-width); + border-width: token-utils.slot(flat-selected-outline-width); } } @@ -178,14 +180,13 @@ $_avatar-trailing-padding: 8px; position: relative; overflow: visible; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) & { - @include token-utils.create-token-slot(color, with-trailing-icon-trailing-icon-color); + color: token-utils.slot(with-trailing-icon-trailing-icon-color); } .mat-mdc-standard-chip.mdc-evolution-chip--disabled & { - @include token-utils.create-token-slot(color, - with-trailing-icon-disabled-trailing-icon-color); + color: token-utils.slot(with-trailing-icon-disabled-trailing-icon-color); } } @@ -222,26 +223,26 @@ $_avatar-trailing-padding: 8px; text-overflow: ellipsis; overflow: hidden; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip & { - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + font-weight: token-utils.slot(label-text-weight); + letter-spacing: token-utils.slot(label-text-tracking); } .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) & { - @include token-utils.create-token-slot(color, label-text-color); + color: token-utils.slot(label-text-color); } .mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled) & { - @include token-utils.create-token-slot(color, selected-label-text-color); + color: token-utils.slot(selected-label-text-color); } .mat-mdc-standard-chip.mdc-evolution-chip--disabled &, .mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled & { - @include token-utils.create-token-slot(color, disabled-label-text-color); + color: token-utils.slot(disabled-label-text-color); } } } @@ -255,11 +256,11 @@ $_avatar-trailing-padding: 8px; position: relative; flex: 1 0 auto; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip & { - @include token-utils.create-token-slot(width, with-avatar-avatar-size); - @include token-utils.create-token-slot(height, with-avatar-avatar-size); - @include token-utils.create-token-slot(font-size, with-avatar-avatar-size); + width: token-utils.slot(with-avatar-avatar-size); + height: token-utils.slot(with-avatar-avatar-size); + font-size: token-utils.slot(with-avatar-avatar-size); } } @@ -315,13 +316,13 @@ $_avatar-trailing-padding: 8px; height: $_checkmark-size; width: $_checkmark-size; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) & { - @include token-utils.create-token-slot(color, with-icon-selected-icon-color); + color: token-utils.slot(with-icon-selected-icon-color); } .mat-mdc-standard-chip.mdc-evolution-chip--disabled & { - @include token-utils.create-token-slot(color, with-icon-disabled-icon-color); + color: token-utils.slot(with-icon-disabled-icon-color); } } @@ -371,20 +372,20 @@ $_avatar-trailing-padding: 8px; } $disabled-icon-opacity: null; - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $disabled-icon-opacity: - token-utils.get-token-variable(with-trailing-icon-disabled-trailing-icon-opacity); + token-utils.slot(with-trailing-icon-disabled-trailing-icon-opacity); } // If the trailing icon is a chip-remove button, we have to factor in the trailing action // opacity as well as the disabled opacity. .mdc-evolution-chip--disabled &.mat-mdc-chip-remove { - @include token-utils.use-tokens(tokens-mat-chip.$prefix, tokens-mat-chip.get-token-slots()) { - $action-opacity: token-utils.get-token-variable(trailing-action-opacity); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $action-opacity: token-utils.slot(trailing-action-opacity); opacity: calc(#{$action-opacity} * #{$disabled-icon-opacity}); &:focus { - $action-focus-opacity: token-utils.get-token-variable(trailing-action-focus-opacity); + $action-focus-opacity: token-utils.slot(trailing-action-focus-opacity); opacity: calc(#{$action-focus-opacity} * #{$disabled-icon-opacity}); } } @@ -392,25 +393,24 @@ $_avatar-trailing-padding: 8px; } .mat-mdc-standard-chip { - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { - @include token-utils.create-token-slot(border-radius, container-shape-radius); - @include token-utils.create-token-slot(height, container-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-radius: token-utils.slot(container-shape-radius); + height: token-utils.slot(container-height); &:not(.mdc-evolution-chip--disabled) { - @include token-utils.create-token-slot(background-color, elevated-container-color); + background-color: token-utils.slot(elevated-container-color); } &.mdc-evolution-chip--disabled { - @include token-utils.create-token-slot(background-color, elevated-disabled-container-color); + background-color: token-utils.slot(elevated-disabled-container-color); } &.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled) { - @include token-utils.create-token-slot(background-color, elevated-selected-container-color); + background-color: token-utils.slot(elevated-selected-container-color); } &.mdc-evolution-chip--selected.mdc-evolution-chip--disabled { - @include token-utils.create-token-slot(background-color, - flat-disabled-selected-container-color); + background-color: token-utils.slot(flat-disabled-selected-container-color); } } @@ -420,12 +420,12 @@ $_avatar-trailing-padding: 8px; } .mdc-evolution-chip__icon--primary { - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-standard-chip & { - @include token-utils.create-token-slot(border-radius, with-avatar-avatar-shape-radius); - @include token-utils.create-token-slot(width, with-icon-icon-size); - @include token-utils.create-token-slot(height, with-icon-icon-size); - @include token-utils.create-token-slot(font-size, with-icon-icon-size); + border-radius: token-utils.slot(with-avatar-avatar-shape-radius); + width: token-utils.slot(with-icon-icon-size); + height: token-utils.slot(with-icon-icon-size); + font-size: token-utils.slot(with-icon-icon-size); } .mdc-evolution-chip--selected & { @@ -433,11 +433,11 @@ $_avatar-trailing-padding: 8px; } .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) & { - @include token-utils.create-token-slot(color, with-icon-icon-color); + color: token-utils.slot(with-icon-icon-color); } .mat-mdc-standard-chip.mdc-evolution-chip--disabled & { - @include token-utils.create-token-slot(color, with-icon-disabled-icon-color); + color: token-utils.slot(with-icon-disabled-icon-color); } } } @@ -448,7 +448,7 @@ $_avatar-trailing-padding: 8px; // that we don't re-implement ourselves below. // TODO(crisbeto): with some future refactors we may be able to clean this up. .mat-mdc-chip-highlighted { - @include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $highlighted-remapped-tokens: ( with-icon-icon-color: with-icon-selected-icon-color, elevated-container-color: elevated-selected-container-color, @@ -457,102 +457,100 @@ $_avatar-trailing-padding: 8px; ); @each $selected, $base in $highlighted-remapped-tokens { - #{token-utils.get-token-variable-name($selected)}: token-utils.get-token-variable($base); + #{token-utils.get-token-variable-name($selected)}: token-utils.slot($base); } } } // Add additional slots for the MDC chip tokens, needed in Angular Material. -@include token-utils.use-tokens(tokens-mdc-chip.$prefix, tokens-mdc-chip.get-token-slots()) { +@include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-chip-focus-overlay { - @include token-utils.create-token-slot(background, focus-state-layer-color); + background: token-utils.slot(focus-state-layer-color); .mat-mdc-chip-selected &, .mat-mdc-chip-highlighted & { - @include token-utils.create-token-slot(background, selected-focus-state-layer-color); + background: token-utils.slot(selected-focus-state-layer-color); } .mat-mdc-chip:hover & { - @include token-utils.create-token-slot(background, hover-state-layer-color); - @include token-utils.create-token-slot(opacity, hover-state-layer-opacity); + background: token-utils.slot(hover-state-layer-color); + opacity: token-utils.slot(hover-state-layer-opacity); } .mat-mdc-chip-selected:hover, .mat-mdc-chip-highlighted:hover & { - @include token-utils.create-token-slot(background, selected-hover-state-layer-color); - @include token-utils.create-token-slot(opacity, selected-hover-state-layer-opacity); + background: token-utils.slot(selected-hover-state-layer-color); + opacity: token-utils.slot(selected-hover-state-layer-opacity); } .mat-mdc-chip.cdk-focused & { - @include token-utils.create-token-slot(background, focus-state-layer-color); - @include token-utils.create-token-slot(opacity, focus-state-layer-opacity); + background: token-utils.slot(focus-state-layer-color); + opacity: token-utils.slot(focus-state-layer-opacity); } .mat-mdc-chip-selected.cdk-focused &, .mat-mdc-chip-highlighted.cdk-focused & { - @include token-utils.create-token-slot(background, selected-focus-state-layer-color); - @include token-utils.create-token-slot(opacity, selected-focus-state-layer-opacity); + background: token-utils.slot(selected-focus-state-layer-color); + opacity: token-utils.slot(selected-focus-state-layer-opacity); } } .mdc-evolution-chip--disabled:not(.mdc-evolution-chip--selected) .mat-mdc-chip-avatar { - @include token-utils.create-token-slot(opacity, with-avatar-disabled-avatar-opacity); + opacity: token-utils.slot(with-avatar-disabled-avatar-opacity); } .mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing { - @include token-utils.create-token-slot( - opacity, with-trailing-icon-disabled-trailing-icon-opacity); + opacity: token-utils.slot(with-trailing-icon-disabled-trailing-icon-opacity); } .mdc-evolution-chip--disabled.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark { - @include token-utils.create-token-slot(opacity, with-icon-disabled-icon-opacity); + opacity: token-utils.slot(with-icon-disabled-icon-opacity); } } -@include token-utils.use-tokens(tokens-mat-chip.$prefix, tokens-mat-chip.get-token-slots()) { +@include token-utils.use-tokens($token-prefix, $token-slots) { // Historically, MDC did not support disabled chips, so we needed our own disabled styles. // Now that MDC supports disabled styles, we should switch to using theirs. .mat-mdc-standard-chip { &.mdc-evolution-chip--disabled { - @include token-utils.create-token-slot(opacity, disabled-container-opacity); + opacity: token-utils.slot(disabled-container-opacity); } &.mdc-evolution-chip--selected, &.mat-mdc-chip-highlighted { .mdc-evolution-chip__icon--trailing { - @include token-utils.create-token-slot(color, selected-trailing-icon-color); + color: token-utils.slot(selected-trailing-icon-color); } &.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing { - @include token-utils.create-token-slot(color, selected-disabled-trailing-icon-color); + color: token-utils.slot(selected-disabled-trailing-icon-color); } } } .mat-mdc-chip-remove { - @include token-utils.create-token-slot(opacity, trailing-action-opacity); + opacity: token-utils.slot(trailing-action-opacity); &:focus { - @include token-utils.create-token-slot(opacity, trailing-action-focus-opacity); + opacity: token-utils.slot(trailing-action-focus-opacity); } &::after { - @include token-utils.create-token-slot(background-color, trailing-action-state-layer-color); + background-color: token-utils.slot(trailing-action-state-layer-color); } &:hover::after { - @include token-utils.create-token-slot(opacity, trailing-action-hover-state-layer-opacity); + opacity: token-utils.slot(trailing-action-hover-state-layer-opacity); } &:focus::after { - @include token-utils.create-token-slot(opacity, trailing-action-focus-state-layer-opacity); + opacity: token-utils.slot(trailing-action-focus-state-layer-opacity); } } .mat-mdc-chip-selected .mat-mdc-chip-remove::after, .mat-mdc-chip-highlighted .mat-mdc-chip-remove::after { - @include token-utils.create-token-slot(background-color, - selected-trailing-action-state-layer-color); + background-color: token-utils.slot(selected-trailing-action-state-layer-color); } } @@ -629,7 +627,7 @@ $_avatar-trailing-padding: 8px; // Technically the avatar is only supposed to have an image, but we also allow for icons. // Set the color so the icons inherit the correct color. - color: var(--mdc-chip-with-icon-icon-color, currentColor); + color: var(--mat-chip-with-icon-icon-color, currentColor); } // Required for the strong focus indicator to fill the chip. diff --git a/src/material/chips/testing/BUILD.bazel b/src/material/chips/testing/BUILD.bazel index 1e2f0628a3d5..9346e16f3a19 100644 --- a/src/material/chips/testing/BUILD.bazel +++ b/src/material/chips/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,26 +9,26 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ - "//src/cdk/coercion", - ], deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/coercion", + "//src/cdk/testing", ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", "//src/cdk/keycodes", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/chips", "//src/material/icon", "//src/material/icon/testing", - "@npm//@angular/forms", ], ) diff --git a/src/material/config.bzl b/src/material/config.bzl index ea40e8b7ab82..7b63b4a3253b 100644 --- a/src/material/config.bzl +++ b/src/material/config.bzl @@ -94,10 +94,3 @@ MATERIAL_TARGETS = ["//src/material"] + \ # List of all testing entry-point targets of the Angular Material package. MATERIAL_TESTING_TARGETS = ["//src/material/%s" % ep for ep in MATERIAL_TESTING_ENTRYPOINTS] - -# List that references the sass libraries for each Material non-testing entry-point. This -# can be used to specify dependencies for the "all-theme.scss" file in core. -MATERIAL_SCSS_LIBS = [ - "//src/material/%s:%s_scss_lib" % (ep, ep.replace("-", "_")) - for ep in MATERIAL_ENTRYPOINTS -] diff --git a/src/material/core/BUILD.bazel b/src/material/core/BUILD.bazel index 8c6c5af1347f..81fa7ffa1ae2 100644 --- a/src/material/core/BUILD.bazel +++ b/src/material/core/BUILD.bazel @@ -1,194 +1,121 @@ -load("//src/material:config.bzl", "MATERIAL_SCSS_LIBS") load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -exports_files(["theming/_theming.scss"]) - -ng_module( - name = "core", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":selection/pseudo-checkbox/pseudo-checkbox.css", - ":option/option.css", - ":option/optgroup.css", - ":internal-form-field/internal-form-field.css", - ":ripple/ripple-structure.css", - ":focus-indicators/structural-styles.css", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-app.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/coercion", - "//src/cdk/keycodes", - "//src/cdk/platform", - "//src/cdk/private", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) -ALL_THEMING_FILES = [ - # The `_core.scss` file needs to be added here too because it depends - # on the `_all-typography` file. - "_core.scss", - "color/_all-color.scss", - "density/private/_all-density.scss", - "theming/_all-theme.scss", - "typography/_all-typography.scss", -] - sass_library( - name = "core_scss_lib", - srcs = glob( - ["**/_*.scss"], - exclude = ALL_THEMING_FILES + ["./tokens/m3/definitions/unused/**/*_.scss"], - ), + name = "m2", + srcs = [ + "_m2-app.scss", + ], deps = [ - "//src/cdk:sass_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) -sass_library( - name = "theming_scss_lib", - srcs = ALL_THEMING_FILES, - deps = MATERIAL_SCSS_LIBS + [ - "//src/cdk:sass_lib", +ng_project( + name = "core", + srcs = [ + "index.ts", + "line/line.ts", + "public-api.ts", ], -) - -sass_binary( - name = "structural_styles_scss", - src = "focus-indicators/structural-styles.scss", - deps = [":core_scss_lib"], -) - -sass_binary( - name = "pseudo_checkbox_scss", - src = "selection/pseudo-checkbox/pseudo-checkbox.scss", - deps = [":core_scss_lib"], -) - -sass_binary( - name = "option_scss", - src = "option/option.scss", - deps = [":core_scss_lib"], -) - -sass_binary( - name = "optgroup_scss", - src = "option/optgroup.scss", - deps = [":core_scss_lib"], -) - -sass_binary( - name = "internal_form_field_scss", - src = "internal-form-field/internal-form-field.scss", - deps = [":core_scss_lib"], -) - -sass_binary( - name = "ripple_structure_scss", - src = "ripple/ripple-structure.scss", - deps = [":core_scss_lib"], -) - -# M3 themes -sass_binary( - name = "azure_blue_prebuilt", - src = "theming/prebuilt/azure-blue.scss", deps = [ - ":theming_scss_lib", - "//src/material-experimental:sass_lib", + ":version", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/material/core:ripple", + "//src/material/core/animation", + "//src/material/core/common-behaviors", + "//src/material/core/datetime", + "//src/material/core/error", + "//src/material/core/focus-indicators:internal", + "//src/material/core/internal-form-field", + "//src/material/core/option", + "//src/material/core/private", + "//src/material/core/selection", ], ) -sass_binary( - name = "rose_red_prebuilt", - src = "theming/prebuilt/rose-red.scss", +ng_project( + name = "version", + srcs = [ + "version.ts", + ], deps = [ - ":theming_scss_lib", - "//src/material-experimental:sass_lib", + "//:node_modules/@angular/core", ], ) -sass_binary( - name = "cyan_orange_prebuilt", - src = "theming/prebuilt/cyan-orange.scss", +sass_library( + name = "core_sass", + srcs = [ + "_core.scss", + ], deps = [ - ":theming_scss_lib", - "//src/material-experimental:sass_lib", + "//src/material/core/style:elevation", + "//src/material/core/tokens:token_utils", ], ) -sass_binary( - name = "magenta_violet_prebuilt", - src = "theming/prebuilt/magenta-violet.scss", +sass_library( + name = "theme_sass", + srcs = [ + "_core-theme.scss", + ], deps = [ - ":theming_scss_lib", - "//src/material-experimental:sass_lib", + "//src/material/core:ripple_sass_theme", + "//src/material/core/option:theme", + "//src/material/core/selection/pseudo-checkbox:sass_theme", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) -# Legacy M2 themes -sass_binary( - name = "indigo_pink_prebuilt", - src = "theming/prebuilt/indigo-pink.scss", - deps = [":theming_scss_lib"], -) - -sass_binary( - name = "deeppurple-amber_prebuilt", - src = "theming/prebuilt/deeppurple-amber.scss", - deps = [":theming_scss_lib"], -) - -sass_binary( - name = "pink-bluegrey_prebuilt", - src = "theming/prebuilt/pink-bluegrey.scss", - deps = [":theming_scss_lib"], -) - -sass_binary( - name = "purple-green_prebuilt", - src = "theming/prebuilt/purple-green.scss", - deps = [":theming_scss_lib"], -) - ################# # Test targets ################# -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":core", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/keycodes", "//src/cdk/platform", "//src/cdk/testing/private", "//src/material/testing", - "@npm//@angular/platform-browser", ], ) @@ -207,10 +134,94 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":core_scss_lib"], + srcs = [":theme_sass"], ) filegroup( name = "source-files", srcs = glob(["**/*.ts"]), ) + +### Ripple +### Cannot be in its own ripple/BUILD.bazel due to breaking docs generation. + +sass_library( + name = "ripple_m3", + srcs = [ + "ripple/_m3-ripple.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "ripple_m2", + srcs = [ + "ripple/_m2-ripple.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "ripple_sass_theme", + srcs = [ + "ripple/_ripple-theme.scss", + ], + deps = [ + ":ripple_m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "ripple_sass", + srcs = [ + "ripple/_ripple.scss", + ], + deps = [ + ":ripple_m2", + "//src/cdk:sass_lib", + "//src/material/core/tokens:token_utils", + ], +) + +sass_binary( + name = "ripple_structure", + src = "ripple/ripple-structure.scss", + deps = [ + ":ripple_sass", + ], +) + +ng_project( + name = "ripple", + srcs = [ + "ripple/index.ts", + "ripple/ripple.ts", + "ripple/ripple-event-manager.ts", + "ripple/ripple-ref.ts", + "ripple/ripple-renderer.ts", + ], + assets = [ + ":ripple_structure", + ], + deps = [ + "//src/cdk/a11y", + "//src/cdk/coercion", + "//src/cdk/platform", + "//src/cdk/private", + "//src/material/core/animation", + "//src/material/core/common-behaviors", + ], +) diff --git a/src/material/core/_core-theme.scss b/src/material/core/_core-theme.scss index 79b113ba49cc..ac74341a79ac 100644 --- a/src/material/core/_core-theme.scss +++ b/src/material/core/_core-theme.scss @@ -8,12 +8,12 @@ @use './style/sass-utils'; @use './typography/typography'; @use './tokens/token-utils'; -@use './tokens/m2/mat/app' as tokens-mat-app; -@use './tokens/m2/mat/ripple' as tokens-mat-ripple; -@use './tokens/m2/mat/option' as tokens-mat-option; -@use './tokens/m2/mat/optgroup' as tokens-mat-optgroup; -@use './tokens/m2/mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox; -@use './tokens/m2/mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox; +@use './m2-app'; +@use 'ripple/m2-ripple'; +@use 'option/m2-option'; +@use 'option/m2-optgroup'; +@use 'selection/pseudo-checkbox/m2-full-pseudo-checkbox'; +@use 'selection/pseudo-checkbox/m2-minimal-pseudo-checkbox'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -25,9 +25,7 @@ @include pseudo-checkbox-theme.base($theme); @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-app.$prefix, - tokens-mat-app.get-unthemable-tokens() - ); + m2-app.$prefix, m2-app.get-unthemable-tokens()); } } } @@ -42,9 +40,7 @@ @include pseudo-checkbox-theme.color($theme); @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-app.$prefix, - tokens-mat-app.get-color-tokens($theme) - ); + m2-app.$prefix, m2-app.get-color-tokens($theme)); } } } @@ -72,25 +68,25 @@ } @function _define-overrides() { - $app-tokens: tokens-mat-app.get-token-slots(); - $ripple-tokens: tokens-mat-ripple.get-token-slots(); - $option-tokens: tokens-mat-option.get-token-slots(); - $optgroup-tokens: tokens-mat-optgroup.get-token-slots(); - $full-pseudo-checkbox-tokens: tokens-mat-full-pseudo-checkbox.get-token-slots(); - $minimal-pseudo-checkbox-tokens: tokens-mat-minimal-pseudo-checkbox.get-token-slots(); + $app-tokens: m2-app.get-token-slots(); + $ripple-tokens: m2-ripple.get-token-slots(); + $option-tokens: m2-option.get-token-slots(); + $optgroup-tokens: m2-optgroup.get-token-slots(); + $full-pseudo-checkbox-tokens: m2-full-pseudo-checkbox.get-token-slots(); + $minimal-pseudo-checkbox-tokens: m2-minimal-pseudo-checkbox.get-token-slots(); @return ( - (namespace: tokens-mat-app.$prefix, tokens: $app-tokens, prefix: 'app-'), - (namespace: tokens-mat-ripple.$prefix, tokens: $ripple-tokens, prefix: 'ripple-'), - (namespace: tokens-mat-option.$prefix, tokens: $option-tokens, prefix: 'option-'), - (namespace: tokens-mat-optgroup.$prefix, tokens: $optgroup-tokens, prefix: 'optgroup-'), + (namespace: m2-app.$prefix, tokens: $app-tokens, prefix: 'app-'), + (namespace: m2-ripple.$prefix, tokens: $ripple-tokens, prefix: 'ripple-'), + (namespace: m2-option.$prefix, tokens: $option-tokens, prefix: 'option-'), + (namespace: m2-optgroup.$prefix, tokens: $optgroup-tokens, prefix: 'optgroup-'), ( - namespace: tokens-mat-full-pseudo-checkbox.$prefix, + namespace: m2-full-pseudo-checkbox.$prefix, tokens: $full-pseudo-checkbox-tokens, prefix: 'pseudo-checkbox-full-' ), ( - namespace: tokens-mat-minimal-pseudo-checkbox.$prefix, + namespace: m2-minimal-pseudo-checkbox.$prefix, tokens: $minimal-pseudo-checkbox-tokens, prefix: 'pseudo-checkbox-minimal-' ) @@ -128,35 +124,35 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mat-app-tokens: token-utils.get-tokens-for($tokens, tokens-mat-app.$prefix, $options...); - $mat-ripple-tokens: token-utils.get-tokens-for($tokens, tokens-mat-ripple.$prefix, $options...); - $mat-option-tokens: token-utils.get-tokens-for($tokens, tokens-mat-option.$prefix, $options...); + $mat-app-tokens: token-utils.get-tokens-for($tokens, m2-app.$prefix, $options...); + $mat-ripple-tokens: token-utils.get-tokens-for($tokens, m2-ripple.$prefix, $options...); + $mat-option-tokens: token-utils.get-tokens-for($tokens, m2-option.$prefix, $options...); $mat-optgroup-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-optgroup.$prefix, + m2-optgroup.$prefix, $options... ); $mat-full-pseudo-checkbox-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-full-pseudo-checkbox.$prefix, + m2-full-pseudo-checkbox.$prefix, $options... ); $mat-minimal-pseudo-checkbox-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-minimal-pseudo-checkbox.$prefix, + m2-minimal-pseudo-checkbox.$prefix, $options... ); - @include token-utils.create-token-values(tokens-mat-app.$prefix, $mat-app-tokens); - @include token-utils.create-token-values(tokens-mat-ripple.$prefix, $mat-ripple-tokens); - @include token-utils.create-token-values(tokens-mat-option.$prefix, $mat-option-tokens); - @include token-utils.create-token-values(tokens-mat-optgroup.$prefix, $mat-optgroup-tokens); + @include token-utils.create-token-values(m2-app.$prefix, $mat-app-tokens); + @include token-utils.create-token-values(m2-ripple.$prefix, $mat-ripple-tokens); + @include token-utils.create-token-values(m2-option.$prefix, $mat-option-tokens); + @include token-utils.create-token-values(m2-optgroup.$prefix, $mat-optgroup-tokens); @include token-utils.create-token-values( - tokens-mat-full-pseudo-checkbox.$prefix, + m2-full-pseudo-checkbox.$prefix, $mat-full-pseudo-checkbox-tokens ); @include token-utils.create-token-values( - tokens-mat-minimal-pseudo-checkbox.$prefix, + m2-minimal-pseudo-checkbox.$prefix, $mat-minimal-pseudo-checkbox-tokens ); } diff --git a/src/material/core/_core.scss b/src/material/core/_core.scss index cc6d6320ec5d..c864699c7308 100644 --- a/src/material/core/_core.scss +++ b/src/material/core/_core.scss @@ -1,4 +1,4 @@ -@use './tokens/m2/mat/app' as tokens-mat-app; +@use './m2-app'; @use './tokens/token-utils'; @use './style/elevation'; @@ -20,10 +20,10 @@ // user's content isn't inside of a `mat-sidenav-container`. @at-root { // Note: we need to emit fallback values here to avoid errors in internal builds. - @include token-utils.use-tokens(tokens-mat-app.$prefix, tokens-mat-app.get-token-slots()) { + @include token-utils.use-tokens(m2-app.$prefix, m2-app.get-token-slots()) { .mat-app-background { - @include token-utils.create-token-slot(background-color, background-color, transparent); - @include token-utils.create-token-slot(color, text-color, inherit); + background-color: token-utils.slot(background-color, transparent); + color: token-utils.slot(text-color, inherit); } } } @@ -35,7 +35,7 @@ // Material Design specification. @mixin elevation-classes() { @at-root { - @include token-utils.use-tokens(tokens-mat-app.$prefix, tokens-mat-app.get-token-slots()) { + @include token-utils.use-tokens(m2-app.$prefix, m2-app.get-token-slots()) { // Provides external CSS classes for each elevation value. Each CSS class is formatted as // `mat-elevation-z$z-value` where `$z-value` corresponds to the z-space to which the element // is elevated. @@ -44,7 +44,7 @@ // We need the `mat-mdc-elevation-specific`, because some MDC mixins // come with elevation baked in and we don't have a way of removing it. .#{$selector}, .mat-mdc-elevation-specific.#{$selector} { - @include token-utils.create-token-slot(box-shadow, 'elevation-shadow-level-#{$z-value}', + box-shadow: token-utils.slot('elevation-shadow-level-#{$z-value}', none); } } diff --git a/src/material/core/tokens/m2/mat/_app.scss b/src/material/core/_m2-app.scss similarity index 80% rename from src/material/core/tokens/m2/mat/_app.scss rename to src/material/core/_m2-app.scss index 6f09dd60b10f..d942b2cfcd3b 100644 --- a/src/material/core/tokens/m2/mat/_app.scss +++ b/src/material/core/_m2-app.scss @@ -1,8 +1,9 @@ @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../../style/elevation'; +@use './tokens/m2-utils'; +@use './theming/inspection'; +@use './style/sass-utils'; +@use './style/elevation'; + // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, app); @@ -45,8 +46,8 @@ $prefix: (mat, app); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_app.scss b/src/material/core/_m3-app.scss similarity index 88% rename from src/material/core/tokens/m3/mat/_app.scss rename to src/material/core/_m3-app.scss index 07e945a46c92..b070ad582ec4 100644 --- a/src/material/core/tokens/m3/mat/_app.scss +++ b/src/material/core/_m3-app.scss @@ -1,7 +1,7 @@ @use 'sass:map'; @use 'sass:meta'; -@use '../../../style/elevation'; -@use '../../token-definition'; +@use './style/elevation'; +@use './tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, app); @@ -12,7 +12,6 @@ $prefix: (mat, app); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the app @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $shadow-color: map.get($systems, md-sys-color, shadow); $tokens: ( background-color: map.get($systems, md-sys-color, background), text-color: map.get($systems, md-sys-color, on-background), @@ -20,6 +19,7 @@ $prefix: (mat, app); // If the shadow-color is an actual color, convert it to a box-shadow value. Otherwise // use the token value as itself (e,g. as a CSS var name). + $shadow-color: map.get($systems, md-sys-color, shadow); @if (meta.type-of($shadow-color) == color) { @for $zValue from 0 through 24 { $shadow: elevation.get-box-shadow($zValue, $shadow-color); @@ -27,5 +27,5 @@ $prefix: (mat, app); } } - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/animation/BUILD.bazel b/src/material/core/animation/BUILD.bazel new file mode 100644 index 000000000000..dbb79b2e7030 --- /dev/null +++ b/src/material/core/animation/BUILD.bazel @@ -0,0 +1,12 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "animation", + srcs = ["animation.ts"], + deps = [ + "//:node_modules/@angular/core", + "//src/cdk/layout", + ], +) diff --git a/src/material/core/animation/animation.ts b/src/material/core/animation/animation.ts index 02c15a20e06c..c228579047ab 100644 --- a/src/material/core/animation/animation.ts +++ b/src/material/core/animation/animation.ts @@ -6,7 +6,17 @@ * found in the LICENSE file at https://angular.dev/license */ -import {ANIMATION_MODULE_TYPE, inject} from '@angular/core'; +import {MediaMatcher} from '@angular/cdk/layout'; +import {ANIMATION_MODULE_TYPE, inject, InjectionToken} from '@angular/core'; + +/** Object used to configure the animation in Angular Material. */ +export interface AnimationsConfig { + /** Whether all animations should be disabled. */ + animationsDisabled?: boolean; +} + +/** Injection token used to configure the animations in Angular Material. */ +export const MATERIAL_ANIMATIONS = new InjectionToken('MATERIAL_ANIMATIONS'); /** * @deprecated No longer used, will be removed. @@ -36,5 +46,13 @@ export class AnimationDurations { * @docs-private */ export function _animationsDisabled(): boolean { - return inject(ANIMATION_MODULE_TYPE, {optional: true}) === 'NoopAnimations'; + if ( + inject(MATERIAL_ANIMATIONS, {optional: true})?.animationsDisabled || + inject(ANIMATION_MODULE_TYPE, {optional: true}) === 'NoopAnimations' + ) { + return true; + } + + const mediaMatcher = inject(MediaMatcher); + return mediaMatcher.matchMedia('(prefers-reduced-motion)').matches; } diff --git a/src/material/core/color/BUILD.bazel b/src/material/core/color/BUILD.bazel new file mode 100644 index 000000000000..fc51348164da --- /dev/null +++ b/src/material/core/color/BUILD.bazel @@ -0,0 +1,14 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "color", + srcs = [ + "_all-color.scss", + ], + deps = [ + "//src/material/core/theming:_inspection", + "//src/material/core/theming:core_all_theme", + ], +) diff --git a/src/material/core/common-behaviors/BUILD.bazel b/src/material/core/common-behaviors/BUILD.bazel new file mode 100644 index 000000000000..0ad4cdcdbf1d --- /dev/null +++ b/src/material/core/common-behaviors/BUILD.bazel @@ -0,0 +1,21 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "common-behaviors", + srcs = [ + "common-module.ts", + "error-state.ts", + "index.ts", + "palette.ts", + ], + deps = [ + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/platform", + "//src/material/core/error", + ], +) diff --git a/src/material/core/datetime/BUILD.bazel b/src/material/core/datetime/BUILD.bazel new file mode 100644 index 000000000000..571f52f441e4 --- /dev/null +++ b/src/material/core/datetime/BUILD.bazel @@ -0,0 +1,26 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "internal", + srcs = [ + "date-adapter.ts", + "date-formats.ts", + "native-date-adapter.ts", + "native-date-formats.ts", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + ], +) + +ng_project( + name = "datetime", + srcs = ["index.ts"], + deps = [ + ":internal", + "//:node_modules/@angular/core", + ], +) diff --git a/src/material/core/density/private/BUILD.bazel b/src/material/core/density/private/BUILD.bazel new file mode 100644 index 000000000000..ebe5f6ec30ba --- /dev/null +++ b/src/material/core/density/private/BUILD.bazel @@ -0,0 +1,42 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "all_density", + srcs = [ + "_all-density.scss", + ], + deps = [ + "//src/material/autocomplete:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/button-toggle:theme", + "//src/material/card:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core:theme_sass", + "//src/material/core/theming:_inspection", + "//src/material/dialog:theme", + "//src/material/expansion:theme", + "//src/material/form-field:theme", + "//src/material/input:theme", + "//src/material/list:theme", + "//src/material/menu:theme", + "//src/material/paginator:theme", + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/snack-bar:theme", + "//src/material/stepper:theme", + "//src/material/table:theme", + "//src/material/tabs:theme", + "//src/material/toolbar:theme", + "//src/material/tooltip:theme", + "//src/material/tree:theme", + ], +) diff --git a/src/material/core/error/BUILD.bazel b/src/material/core/error/BUILD.bazel new file mode 100644 index 000000000000..0ae787f1ed67 --- /dev/null +++ b/src/material/core/error/BUILD.bazel @@ -0,0 +1,14 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "error", + srcs = [ + "error-options.ts", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + ], +) diff --git a/src/material/core/focus-indicators/BUILD.bazel b/src/material/core/focus-indicators/BUILD.bazel new file mode 100644 index 000000000000..1958970228c3 --- /dev/null +++ b/src/material/core/focus-indicators/BUILD.bazel @@ -0,0 +1,30 @@ +load("//tools:defaults.bzl", "sass_binary", "sass_library") +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "focus-indicators", + srcs = [ + "_private.scss", + ], + deps = [ + "//src/cdk:sass_lib", + "//src/material/core/style:layout_common", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + ], +) + +ng_project( + name = "internal", + srcs = ["structural-styles.ts"], + assets = [":structural_styles_css"], + deps = ["//:node_modules/@angular/core"], +) + +sass_binary( + name = "structural_styles_css", + src = "structural-styles.scss", + deps = [":focus-indicators"], +) diff --git a/src/material/core/internal-form-field/BUILD.bazel b/src/material/core/internal-form-field/BUILD.bazel new file mode 100644 index 000000000000..80e9369e71e9 --- /dev/null +++ b/src/material/core/internal-form-field/BUILD.bazel @@ -0,0 +1,21 @@ +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "internal-form-field", + srcs = [ + "internal-form-field.ts", + ], + assets = [":internal_form_field_css"], + deps = [ + "//:node_modules/@angular/core", + ], +) + +sass_binary( + name = "internal_form_field_css", + src = "internal-form-field.scss", + deps = ["//src/material/core/style:vendor_prefixes"], +) diff --git a/src/material/core/m2/BUILD.bazel b/src/material/core/m2/BUILD.bazel new file mode 100644 index 000000000000..063941b0165d --- /dev/null +++ b/src/material/core/m2/BUILD.bazel @@ -0,0 +1,15 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "m2_sass", + srcs = [ + "_index.scss", + "_palette.scss", + "_theming.scss", + "_typography.scss", + "_typography-utils.scss", + ], + deps = ["//src/material/core/theming"], +) diff --git a/src/material/core/option/BUILD.bazel b/src/material/core/option/BUILD.bazel new file mode 100644 index 000000000000..b268e24bfe9c --- /dev/null +++ b/src/material/core/option/BUILD.bazel @@ -0,0 +1,92 @@ +load("//tools:defaults.bzl", "sass_binary", "sass_library") +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "m3", + srcs = [ + "_m3-optgroup.scss", + "_m3-option.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-optgroup.scss", + "_m2-option.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_optgroup-theme.scss", + "_option-theme.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +ng_project( + name = "option", + srcs = [ + "index.ts", + "optgroup.ts", + "option.ts", + "option-parent.ts", + ], + assets = [ + "optgroup.html", + "option.html", + ":optgroup_css", + ":option_css", + ], + deps = [ + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/keycodes", + "//src/cdk/private", + "//src/material/core:ripple", + "//src/material/core/common-behaviors", + "//src/material/core/focus-indicators:internal", + "//src/material/core/selection", + "//src/material/core/selection/pseudo-checkbox", + ], +) + +sass_binary( + name = "option_css", + src = "option.scss", + deps = [ + "//src/cdk:sass_lib", + "//src/material/core/style:layout_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +sass_binary( + name = "optgroup_css", + src = "optgroup.scss", + deps = [ + "//src/material/core/tokens:token_utils", + ], +) diff --git a/src/material/core/tokens/m2/mat/_optgroup.scss b/src/material/core/option/_m2-optgroup.scss similarity index 82% rename from src/material/core/tokens/m2/mat/_optgroup.scss rename to src/material/core/option/_m2-optgroup.scss index e5fe9d7b4a89..94693ca52576 100644 --- a/src/material/core/tokens/m2/mat/_optgroup.scss +++ b/src/material/core/option/_m2-optgroup.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../style/sass-utils'; +@use '../theming/inspection'; +@use '../tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, optgroup); @@ -39,8 +39,8 @@ $prefix: (mat, optgroup); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_option.scss b/src/material/core/option/_m2-option.scss similarity index 85% rename from src/material/core/tokens/m2/mat/_option.scss rename to src/material/core/option/_m2-option.scss index 66a9c04fc942..1ce5f3e88f07 100644 --- a/src/material/core/tokens/m2/mat/_option.scss +++ b/src/material/core/option/_m2-option.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../tokens/m2-utils'; +@use '../theming/inspection'; +@use '../style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, option); @@ -47,8 +47,8 @@ $prefix: (mat, option); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_optgroup.scss b/src/material/core/option/_m3-optgroup.scss similarity index 73% rename from src/material/core/tokens/m3/mat/_optgroup.scss rename to src/material/core/option/_m3-optgroup.scss index 9707a0b4741c..60c7466d3fe0 100644 --- a/src/material/core/tokens/m3/mat/_optgroup.scss +++ b/src/material/core/option/_m3-optgroup.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../style/sass-utils'; +@use '../tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, optgroup); @@ -12,11 +12,11 @@ $prefix: (mat, optgroup); /// @return {Map} A set of custom tokens for the mat-optgroup @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, label-text, title-small), + m3-utils.generate-typography-tokens($systems, label-text, title-small), ( label-text-color: map.get($systems, md-sys-color, on-surface-variant), ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/option/_m3-option.scss b/src/material/core/option/_m3-option.scss new file mode 100644 index 000000000000..11a9c385235b --- /dev/null +++ b/src/material/core/option/_m3-option.scss @@ -0,0 +1,57 @@ +@use 'sass:map'; +@use '../style/sass-utils'; +@use '../tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, option); + +/// Generates custom tokens for the mat-option. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-option +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + selected-state-label-text-color: map.get($systems, md-sys-color, on-secondary-container), + label-text-color: map.get($systems, md-sys-color, on-surface), + hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), + $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity) + ), + focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), + $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity) + ), + selected-state-layer-color: map.get($systems, md-sys-color, secondary-container), + + // According to the spec the options have to be `label-large` in all typography + // dimensions, however this is inconsistent with the designs and with MDC's + // own implementation. This appears to be a bug in the spec, because MDC overrides + // the font size and weight to be `body-large` (see b/261838263). We make the same + // override here so the label looks correct. + label-text-size: map.get($systems, md-sys-typescale, body-large-size), + label-text-weight: map.get($systems, md-sys-typescale, body-large-weight), + label-text-font: map.get($systems, md-sys-typescale, label-large-font), + label-text-line-height: map.get($systems, md-sys-typescale, label-large-line-height), + label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), + ); + + $variant-tokens: ( + // Color variants: + primary: ( + selected-state-label-text-color: map.get($systems, md-sys-color, on-primary-container), + selected-state-layer-color: map.get($systems, md-sys-color, primary-container), + ), + secondary: (), // Default, no overrides needed + tertiary: ( + selected-state-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), + selected-state-layer-color: map.get($systems, md-sys-color, tertiary-container), + ), + error: ( + selected-state-label-text-color: map.get($systems, md-sys-color, on-error-container), + selected-state-layer-color: map.get($systems, md-sys-color, error-container), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/core/option/_optgroup-theme.scss b/src/material/core/option/_optgroup-theme.scss index 6ee2d3b13e2b..a0e52362f694 100644 --- a/src/material/core/option/_optgroup-theme.scss +++ b/src/material/core/option/_optgroup-theme.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../tokens/m2/mat/optgroup' as tokens-mat-optgroup; +@use './m2-optgroup'; @use '../tokens/token-utils'; @use '../style/sass-utils'; @use '../theming/theming'; @@ -20,9 +20,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-optgroup.$prefix, - tokens-mat-optgroup.get-color-tokens($theme) - ); + m2-optgroup.$prefix, m2-optgroup.get-color-tokens($theme)); } } } @@ -33,9 +31,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-optgroup.$prefix, - tokens-mat-optgroup.get-typography-tokens($theme) - ); + m2-optgroup.$prefix, m2-optgroup.get-typography-tokens($theme)); } } } @@ -51,8 +47,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-optgroup.$prefix, - tokens: tokens-mat-optgroup.get-token-slots(), + namespace: m2-optgroup.$prefix, + tokens: m2-optgroup.get-token-slots(), ), ); } @@ -86,8 +82,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-optgroup.$prefix, - map.get($tokens, tokens-mat-optgroup.$prefix) + m2-optgroup.$prefix, + map.get($tokens, m2-optgroup.$prefix) ); } } diff --git a/src/material/core/option/_option-theme.scss b/src/material/core/option/_option-theme.scss index 40951a96c406..564f53a681c2 100644 --- a/src/material/core/option/_option-theme.scss +++ b/src/material/core/option/_option-theme.scss @@ -1,4 +1,4 @@ -@use '../tokens/m2/mat/option' as tokens-mat-option; +@use './m2-option'; @use '../tokens/token-utils'; @use '../style/sass-utils'; @use '../theming/theming'; @@ -27,23 +27,17 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-option.$prefix, - tokens-mat-option.get-color-tokens($theme) - ); + m2-option.$prefix, m2-option.get-color-tokens($theme)); } .mat-accent { @include token-utils.create-token-values-mixed( - tokens-mat-option.$prefix, - tokens-mat-option.get-color-tokens($theme, accent) - ); + m2-option.$prefix, m2-option.get-color-tokens($theme, accent)); } .mat-warn { @include token-utils.create-token-values-mixed( - tokens-mat-option.$prefix, - tokens-mat-option.get-color-tokens($theme, warn) - ); + m2-option.$prefix, m2-option.get-color-tokens($theme, warn)); } } } @@ -56,9 +50,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-option.$prefix, - tokens-mat-option.get-typography-tokens($theme) - ); + m2-option.$prefix, m2-option.get-typography-tokens($theme)); } } } @@ -76,8 +68,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-option.$prefix, - tokens: tokens-mat-option.get-token-slots(), + namespace: m2-option.$prefix, + tokens: m2-option.get-token-slots(), ), ); } @@ -116,6 +108,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mat-option-tokens: token-utils.get-tokens-for($tokens, tokens-mat-option.$prefix, $options...); - @include token-utils.create-token-values(tokens-mat-option.$prefix, $mat-option-tokens); + $mat-option-tokens: token-utils.get-tokens-for($tokens, m2-option.$prefix, $options...); + @include token-utils.create-token-values(m2-option.$prefix, $mat-option-tokens); } diff --git a/src/material/core/option/optgroup.scss b/src/material/core/option/optgroup.scss index f46bf360f39d..548ac49bd347 100644 --- a/src/material/core/option/optgroup.scss +++ b/src/material/core/option/optgroup.scss @@ -1,16 +1,15 @@ -@use '../tokens/m2/mat/optgroup' as tokens-mat-optgroup; +@use './m2-optgroup'; @use '../tokens/token-utils'; .mat-mdc-optgroup { // These tokens are set on the root option group to make them easier to override. - @include token-utils.use-tokens( - tokens-mat-optgroup.$prefix, tokens-mat-optgroup.get-token-slots()) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens(m2-optgroup.$prefix, m2-optgroup.get-token-slots()) { + color: token-utils.slot(label-text-color); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + font-weight: token-utils.slot(label-text-weight); } } diff --git a/src/material/core/option/option.scss b/src/material/core/option/option.scss index 18ef14e69fe6..67a39fa6be8d 100644 --- a/src/material/core/option/option.scss +++ b/src/material/core/option/option.scss @@ -1,7 +1,7 @@ @use '@angular/cdk'; -@use '../tokens/m2/mat/option' as tokens-mat-option; -@use '../tokens/m2/mdc/list' as tokens-mdc-list; +@use './m2-option'; +@use '../../list/m2-list'; @use '../tokens/token-utils'; @use '../style/vendor-prefixes'; @use '../style/layout-common'; @@ -21,23 +21,22 @@ $_side-padding: 16px; cursor: pointer; -webkit-tap-highlight-color: transparent; - @include token-utils.use-tokens( - tokens-mat-option.$prefix, tokens-mat-option.get-token-slots()) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens(m2-option.$prefix, m2-option.get-token-slots()) { + color: token-utils.slot(label-text-color); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + font-weight: token-utils.slot(label-text-weight); // Increase specificity to override styles from list theme. &:hover:not(.mdc-list-item--disabled) { - @include token-utils.create-token-slot(background-color, hover-state-layer-color); + background-color: token-utils.slot(hover-state-layer-color); } &:focus.mdc-list-item, &.mat-mdc-option-active.mdc-list-item { - @include token-utils.create-token-slot(background-color, focus-state-layer-color); + background-color: token-utils.slot(focus-state-layer-color); outline: 0; } @@ -45,16 +44,16 @@ $_side-padding: 16px; // We don't change the background & text color in multiple mode since // it has the checkbox to show the selected state. &:not(.mat-mdc-option-multiple) { - @include token-utils.create-token-slot(background-color, selected-state-layer-color); + background-color: token-utils.slot(selected-state-layer-color); .mdc-list-item__primary-text { - @include token-utils.create-token-slot(color, selected-state-label-text-color); + color: token-utils.slot(selected-state-label-text-color); } } } .mat-pseudo-checkbox { - --mat-minimal-pseudo-checkbox-selected-checkmark-color: #{ - token-utils.get-token-variable(selected-state-label-text-color)}; + --mat-pseudo-checkbox-minimal-selected-checkmark-color: #{ + token-utils.slot(selected-state-label-text-color)}; } } @@ -186,9 +185,9 @@ $_side-padding: 16px; // because the checkbox already indicates that they're selected. This happened to work in M2, // due to `list-item-selected-container-color` being the same as `list-item-container-color`, // but that's no longer the case in M3. This overrides ensures that the appearance is consistent. - @include token-utils.use-tokens(tokens-mdc-list.$prefix, tokens-mdc-list.get-token-slots()) { + @include token-utils.use-tokens(m2-list.$prefix, m2-list.get-token-slots()) { $selected-token: token-utils.get-token-variable-name(list-item-selected-container-color); - $base-token: token-utils.get-token-variable(list-item-container-color, $fallback: transparent); + $base-token: token-utils.slot(list-item-container-color, $fallback: transparent); #{$selected-token}: $base-token; } } diff --git a/src/material/core/private/BUILD.bazel b/src/material/core/private/BUILD.bazel new file mode 100644 index 000000000000..ccce2eb7b86a --- /dev/null +++ b/src/material/core/private/BUILD.bazel @@ -0,0 +1,18 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "private", + srcs = [ + "index.ts", + "ripple-loader.ts", + ], + deps = [ + "//:node_modules/@angular/common", + "//src/cdk/platform", + "//src/cdk/private", + "//src/material/core:ripple", + "//src/material/core/animation", + ], +) diff --git a/src/material/core/private/ripple-loader.ts b/src/material/core/private/ripple-loader.ts index c098a7e523a6..79e399472170 100644 --- a/src/material/core/private/ripple-loader.ts +++ b/src/material/core/private/ripple-loader.ts @@ -14,7 +14,7 @@ import { RippleTarget, defaultRippleAnimationConfig, } from '../ripple'; -import {Platform, _bindEventWithOptions, _getEventTarget} from '@angular/cdk/platform'; +import {Platform, _getEventTarget} from '@angular/cdk/platform'; import {_CdkPrivateStyleLoader} from '@angular/cdk/private'; import {_animationsDisabled} from '../animation/animation'; @@ -65,17 +65,11 @@ export class MatRippleLoader implements OnDestroy { constructor() { const renderer = inject(RendererFactory2).createRenderer(null, null); - this._eventCleanups = this._ngZone.runOutsideAngular(() => { - return rippleInteractionEvents.map(name => - _bindEventWithOptions( - renderer, - this._document, - name, - this._onInteraction, - eventListenerOptions, - ), - ); - }); + this._eventCleanups = this._ngZone.runOutsideAngular(() => + rippleInteractionEvents.map(name => + renderer.listen(this._document, name, this._onInteraction, eventListenerOptions), + ), + ); } ngOnDestroy(): void { diff --git a/src/material/core/tokens/m2/mat/_ripple.scss b/src/material/core/ripple/_m2-ripple.scss similarity index 81% rename from src/material/core/tokens/m2/mat/_ripple.scss rename to src/material/core/ripple/_m2-ripple.scss index 5b62623b787a..bf783d148b73 100644 --- a/src/material/core/tokens/m2/mat/_ripple.scss +++ b/src/material/core/ripple/_m2-ripple.scss @@ -1,7 +1,7 @@ @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../tokens/m2-utils'; +@use '../theming/inspection'; +@use '../style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, ripple); @@ -42,8 +42,8 @@ $prefix: (mat, ripple); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_ripple.scss b/src/material/core/ripple/_m3-ripple.scss similarity index 80% rename from src/material/core/tokens/m3/mat/_ripple.scss rename to src/material/core/ripple/_m3-ripple.scss index 71db1208f99d..67e95dc691ee 100644 --- a/src/material/core/tokens/m3/mat/_ripple.scss +++ b/src/material/core/ripple/_m3-ripple.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../style/sass-utils'; +@use '../tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, ripple); @@ -15,5 +15,5 @@ $prefix: (mat, ripple); color: sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.1), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/ripple/_ripple-theme.scss b/src/material/core/ripple/_ripple-theme.scss index 8059c0936978..2525dda3c74a 100644 --- a/src/material/core/ripple/_ripple-theme.scss +++ b/src/material/core/ripple/_ripple-theme.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../tokens/m2/mat/ripple' as tokens-mat-ripple; +@use './m2-ripple'; @use '../tokens/token-utils'; @use '../style/sass-utils'; @use '../theming/theming'; @@ -19,8 +19,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-ripple.$prefix, - tokens-mat-ripple.get-color-tokens($theme) + m2-ripple.$prefix, + m2-ripple.get-color-tokens($theme) ); } } @@ -32,8 +32,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-ripple.$prefix, - tokens-mat-ripple.get-typography-tokens($theme) + m2-ripple.$prefix, + m2-ripple.get-typography-tokens($theme) ); } } @@ -45,8 +45,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-ripple.$prefix, - tokens-mat-ripple.get-density-tokens($theme) + m2-ripple.$prefix, + m2-ripple.get-density-tokens($theme) ); } } @@ -56,8 +56,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-ripple.$prefix, - tokens: tokens-mat-ripple.get-token-slots(), + namespace: m2-ripple.$prefix, + tokens: m2-ripple.get-token-slots(), ), ); } @@ -91,8 +91,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-ripple.$prefix, - map.get($tokens, tokens-mat-ripple.$prefix) + m2-ripple.$prefix, + map.get($tokens, m2-ripple.$prefix) ); } } diff --git a/src/material/core/ripple/_ripple.scss b/src/material/core/ripple/_ripple.scss index 6e5289422eee..54e12ec439f4 100644 --- a/src/material/core/ripple/_ripple.scss +++ b/src/material/core/ripple/_ripple.scss @@ -1,5 +1,5 @@ @use '@angular/cdk'; -@use '../tokens/m2/mat/ripple' as tokens-mat-ripple; +@use './m2-ripple'; @use '../tokens/token-utils'; @mixin ripple() { @@ -37,10 +37,9 @@ // the ripples aren't clipped when inside the shadow DOM (see #24028). transform: scale3d(0, 0, 0); - @include token-utils.use-tokens( - tokens-mat-ripple.$prefix, tokens-mat-ripple.get-token-slots()) { + @include token-utils.use-tokens(m2-ripple.$prefix, m2-ripple.get-token-slots()) { // We have to emit a fallback value here, because some internal builds depend on it. - background-color: token-utils.get-token-variable(color, $fallback: rgba(#000, 0.1)); + background-color: token-utils.slot(color, $fallback: rgba(#000, 0.1)); } // In high contrast mode the ripple is opaque, causing it to obstruct the content. diff --git a/src/material/core/selection/BUILD.bazel b/src/material/core/selection/BUILD.bazel new file mode 100644 index 000000000000..206305ac0bd1 --- /dev/null +++ b/src/material/core/selection/BUILD.bazel @@ -0,0 +1,11 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "selection", + srcs = [ + "index.ts", + ], + deps = ["//src/material/core/selection/pseudo-checkbox"], +) diff --git a/src/material/core/selection/pseudo-checkbox/BUILD.bazel b/src/material/core/selection/pseudo-checkbox/BUILD.bazel new file mode 100644 index 000000000000..f08070333ae0 --- /dev/null +++ b/src/material/core/selection/pseudo-checkbox/BUILD.bazel @@ -0,0 +1,78 @@ +load("//tools:defaults.bzl", "sass_binary", "sass_library") +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "m3", + srcs = [ + "_m3-full-pseudo-checkbox.scss", + "_m3-minimal-pseudo-checkbox.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-full-pseudo-checkbox.scss", + "_m2-minimal-pseudo-checkbox.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +ng_project( + name = "pseudo-checkbox", + srcs = [ + "pseudo-checkbox.ts", + "pseudo-checkbox-module.ts", + ], + assets = [ + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//src/material/core/animation", + "//src/material/core/common-behaviors", + ], +) + +sass_library( + name = "sass_theme", + srcs = [ + "_pseudo-checkbox-theme.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "_pseudo_checkbox_common", + srcs = ["_pseudo-checkbox-common.scss"], + deps = ["//src/material/core/style:checkbox_common"], +) + +sass_binary( + name = "css", + src = "pseudo-checkbox.scss", + deps = [ + ":_pseudo_checkbox_common", + "//src/material/core/style:checkbox_common", + "//src/material/core/style:private", + "//src/material/core/style:variables", + "//src/material/core/tokens:token_utils", + ], +) diff --git a/src/material/core/tokens/m2/mat/_full-pseudo-checkbox.scss b/src/material/core/selection/pseudo-checkbox/_m2-full-pseudo-checkbox.scss similarity index 81% rename from src/material/core/tokens/m2/mat/_full-pseudo-checkbox.scss rename to src/material/core/selection/pseudo-checkbox/_m2-full-pseudo-checkbox.scss index aec9c6b950b8..a18f0c973595 100644 --- a/src/material/core/tokens/m2/mat/_full-pseudo-checkbox.scss +++ b/src/material/core/selection/pseudo-checkbox/_m2-full-pseudo-checkbox.scss @@ -1,9 +1,9 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../../tokens/m2-utils'; +@use '../../theming/inspection'; +@use '../../style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, full-pseudo-checkbox); +$prefix: (mat, pseudo-checkbox-full); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -42,8 +42,8 @@ $prefix: (mat, full-pseudo-checkbox); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_minimal-pseudo-checkbox.scss b/src/material/core/selection/pseudo-checkbox/_m2-minimal-pseudo-checkbox.scss similarity index 76% rename from src/material/core/tokens/m2/mat/_minimal-pseudo-checkbox.scss rename to src/material/core/selection/pseudo-checkbox/_m2-minimal-pseudo-checkbox.scss index e8c466a87211..dad7bb18b0b1 100644 --- a/src/material/core/tokens/m2/mat/_minimal-pseudo-checkbox.scss +++ b/src/material/core/selection/pseudo-checkbox/_m2-minimal-pseudo-checkbox.scss @@ -1,9 +1,9 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../../tokens/m2-utils'; +@use '../../theming/inspection'; +@use '../../style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, minimal-pseudo-checkbox); +$prefix: (mat, pseudo-checkbox-minimal); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -36,8 +36,8 @@ $prefix: (mat, minimal-pseudo-checkbox); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_full-pseudo-checkbox.scss b/src/material/core/selection/pseudo-checkbox/_m3-full-pseudo-checkbox.scss similarity index 73% rename from src/material/core/tokens/m3/mat/_full-pseudo-checkbox.scss rename to src/material/core/selection/pseudo-checkbox/_m3-full-pseudo-checkbox.scss index 9982f6cd4b82..69469eb052cb 100644 --- a/src/material/core/tokens/m3/mat/_full-pseudo-checkbox.scss +++ b/src/material/core/selection/pseudo-checkbox/_m3-full-pseudo-checkbox.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../../style/sass-utils'; +@use '../../tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, full-pseudo-checkbox); +$prefix: (mat, pseudo-checkbox-full); /// Generates custom tokens for the full variant of mat-pseudo-checkbox. /// @param {Map} $systems The MDC system tokens @@ -11,17 +11,18 @@ $prefix: (mat, full-pseudo-checkbox); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the full variant of mat-pseudo-checkbox @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $disabled-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), $alpha: 0.38); - - $tokens: (( + $tokens: ( selected-icon-color: map.get($systems, md-sys-color, primary), selected-checkmark-color: map.get($systems, md-sys-color, on-primary), unselected-icon-color: map.get($systems, md-sys-color, on-surface-variant), disabled-selected-checkmark-color: map.get($systems, md-sys-color, surface), - disabled-unselected-icon-color: $disabled-color, - disabled-selected-icon-color: $disabled-color, - ), ( + disabled-unselected-icon-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-selected-icon-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + ); + + $variant-tokens: ( // Color variants: primary: (), // Default, no overrides needed. secondary: ( @@ -36,7 +37,7 @@ $prefix: (mat, full-pseudo-checkbox); selected-icon-color: map.get($systems, md-sys-color, error), selected-checkmark-color: map.get($systems, md-sys-color, on-error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/core/tokens/m3/mat/_minimal-pseudo-checkbox.scss b/src/material/core/selection/pseudo-checkbox/_m3-minimal-pseudo-checkbox.scss similarity index 82% rename from src/material/core/tokens/m3/mat/_minimal-pseudo-checkbox.scss rename to src/material/core/selection/pseudo-checkbox/_m3-minimal-pseudo-checkbox.scss index 611a3bcf9d10..d694a383b95e 100644 --- a/src/material/core/tokens/m3/mat/_minimal-pseudo-checkbox.scss +++ b/src/material/core/selection/pseudo-checkbox/_m3-minimal-pseudo-checkbox.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../../style/sass-utils'; +@use '../../tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, minimal-pseudo-checkbox); +$prefix: (mat, pseudo-checkbox-minimal); /// Generates custom tokens for the minimal variant of mat-pseudo-checkbox. /// @param {Map} $systems The MDC system tokens @@ -11,11 +11,13 @@ $prefix: (mat, minimal-pseudo-checkbox); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the minimal variant of mat-pseudo-checkbox @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( + $tokens: ( selected-checkmark-color: map.get($systems, md-sys-color, primary), disabled-selected-checkmark-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - ), ( + ); + + $variant-tokens: ( // Color variants: primary: (), // Default, no overrides needed. secondary: ( @@ -27,7 +29,7 @@ $prefix: (mat, minimal-pseudo-checkbox); error: ( selected-checkmark-color: map.get($systems, md-sys-color, error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss b/src/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss index a776891f10ad..764a3ee4978b 100644 --- a/src/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +++ b/src/material/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss @@ -3,18 +3,18 @@ @use '../../theming/validation'; @use '../../style/sass-utils'; @use '../../tokens/token-utils'; -@use '../../tokens/m2/mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox; -@use '../../tokens/m2/mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox; +@use './m2-full-pseudo-checkbox'; +@use './m2-minimal-pseudo-checkbox'; @mixin _palette-styles($theme, $palette-name) { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-full-pseudo-checkbox.$prefix, - tokens-mat-full-pseudo-checkbox.get-color-tokens($theme, $palette-name) + m2-full-pseudo-checkbox.$prefix, + m2-full-pseudo-checkbox.get-color-tokens($theme, $palette-name) ); @include token-utils.create-token-values-mixed( - tokens-mat-minimal-pseudo-checkbox.$prefix, - tokens-mat-minimal-pseudo-checkbox.get-color-tokens($theme, $palette-name) + m2-minimal-pseudo-checkbox.$prefix, + m2-minimal-pseudo-checkbox.get-color-tokens($theme, $palette-name) ); } } @@ -24,23 +24,13 @@ 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); $mat-full-pseudo-checkbox-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mat-full-pseudo-checkbox.$prefix, - $options... - ); + $tokens, m2-full-pseudo-checkbox.$prefix, $options...); $mat-minimal-pseudo-checkbox-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mat-minimal-pseudo-checkbox.$prefix, - $options... - ); + $tokens, m2-minimal-pseudo-checkbox.$prefix, $options...); @include token-utils.create-token-values-mixed( - tokens-mat-full-pseudo-checkbox.$prefix, - $mat-full-pseudo-checkbox-tokens - ); + m2-full-pseudo-checkbox.$prefix, $mat-full-pseudo-checkbox-tokens); @include token-utils.create-token-values-mixed( - tokens-mat-minimal-pseudo-checkbox.$prefix, - $mat-minimal-pseudo-checkbox-tokens - ); + m2-minimal-pseudo-checkbox.$prefix, $mat-minimal-pseudo-checkbox-tokens); } /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) @@ -51,17 +41,17 @@ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction. @function _define-overrides() { - $full-pseudo-checkbox-tokens: tokens-mat-full-pseudo-checkbox.get-token-slots(); - $minimal-pseudo-checkbox-tokens: tokens-mat-minimal-pseudo-checkbox.get-token-slots(); + $full-pseudo-checkbox-tokens: m2-full-pseudo-checkbox.get-token-slots(); + $minimal-pseudo-checkbox-tokens: m2-minimal-pseudo-checkbox.get-token-slots(); @return ( ( - namespace: tokens-mat-full-pseudo-checkbox.$prefix, + namespace: m2-full-pseudo-checkbox.$prefix, tokens: $full-pseudo-checkbox-tokens, prefix: 'full-', ), ( - namespace: tokens-mat-minimal-pseudo-checkbox.$prefix, + namespace: m2-minimal-pseudo-checkbox.$prefix, tokens: $minimal-pseudo-checkbox-tokens, prefix: 'minimal-', ), diff --git a/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.scss b/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.scss index 6fc7c63eb5e0..387620e2ad9c 100644 --- a/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.scss +++ b/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.scss @@ -3,8 +3,8 @@ @use '../../style/private'; @use '../../style/variables'; @use '../../tokens/token-utils'; -@use '../../tokens/m2/mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox; -@use '../../tokens/m2/mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox; +@use './m2-full-pseudo-checkbox'; +@use './m2-minimal-pseudo-checkbox'; @use './pseudo-checkbox-common'; .mat-pseudo-checkbox { @@ -55,44 +55,44 @@ } .mat-pseudo-checkbox-minimal { - @include token-utils.use-tokens(tokens-mat-minimal-pseudo-checkbox.$prefix, - tokens-mat-minimal-pseudo-checkbox.get-token-slots()) { + @include token-utils.use-tokens( + m2-minimal-pseudo-checkbox.$prefix, m2-minimal-pseudo-checkbox.get-token-slots()) { &.mat-pseudo-checkbox-checked, &.mat-pseudo-checkbox-indeterminate { &::after { - @include token-utils.create-token-slot(color, selected-checkmark-color); + color: token-utils.slot(selected-checkmark-color); } &.mat-pseudo-checkbox-disabled::after { - @include token-utils.create-token-slot(color, disabled-selected-checkmark-color); + color: token-utils.slot(disabled-selected-checkmark-color); } } } } .mat-pseudo-checkbox-full { - @include token-utils.use-tokens(tokens-mat-full-pseudo-checkbox.$prefix, - tokens-mat-full-pseudo-checkbox.get-token-slots()) { - @include token-utils.create-token-slot(border-color, unselected-icon-color); + @include token-utils.use-tokens( + m2-full-pseudo-checkbox.$prefix, m2-full-pseudo-checkbox.get-token-slots()) { + border-color: token-utils.slot(unselected-icon-color); border-width: checkbox-common.$border-width; border-style: solid; &.mat-pseudo-checkbox-disabled { - @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color); + border-color: token-utils.slot(disabled-unselected-icon-color); } &.mat-pseudo-checkbox-checked, &.mat-pseudo-checkbox-indeterminate { - @include token-utils.create-token-slot(background-color, selected-icon-color); + background-color: token-utils.slot(selected-icon-color); border-color: transparent; &::after { - @include token-utils.create-token-slot(color, selected-checkmark-color); + color: token-utils.slot(selected-checkmark-color); } &.mat-pseudo-checkbox-disabled { - @include token-utils.create-token-slot(background-color, disabled-selected-icon-color); + background-color: token-utils.slot(disabled-selected-icon-color); &::after { - @include token-utils.create-token-slot(color, disabled-selected-checkmark-color); + color: token-utils.slot(disabled-selected-checkmark-color); } } } diff --git a/src/material/core/style/BUILD.bazel b/src/material/core/style/BUILD.bazel new file mode 100644 index 000000000000..663f7ffff165 --- /dev/null +++ b/src/material/core/style/BUILD.bazel @@ -0,0 +1,81 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "button_common", + srcs = ["_button-common.scss"], + deps = [":vendor_prefixes"], +) + +sass_library( + name = "checkbox_common", + srcs = ["_checkbox-common.scss"], +) + +sass_library( + name = "elevation", + srcs = ["_elevation.scss"], + deps = [ + ":sass_utils", + ":variables", + ], +) + +sass_library( + name = "form_common", + srcs = ["_form-common.scss"], + deps = [ + ":sass_utils", + "//src/material/core/theming:_inspection", + ], +) + +sass_library( + name = "layout_common", + srcs = ["_layout-common.scss"], +) + +sass_library( + name = "list_common", + srcs = ["_list-common.scss"], +) + +sass_library( + name = "menu_common", + srcs = ["_menu-common.scss"], + deps = [ + ":layout_common", + ":list_common", + "//src/cdk:sass_lib", + ], +) + +sass_library( + name = "private", + srcs = ["_private.scss"], + deps = [ + ":elevation", + "//src/material/core/theming:_inspection", + ], +) + +sass_library( + name = "variables", + srcs = ["_variables.scss"], +) + +sass_library( + name = "vendor_prefixes", + srcs = ["_vendor-prefixes.scss"], +) + +sass_library( + name = "sass_utils", + srcs = ["_sass-utils.scss"], +) + +sass_library( + name = "_validation", + srcs = ["_validation.scss"], +) diff --git a/src/material/core/testing/BUILD.bazel b/src/material/core/testing/BUILD.bazel index 620b7401ab4d..4d74cd5b44f1 100644 --- a/src/material/core/testing/BUILD.bazel +++ b/src/material/core/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -10,7 +10,7 @@ ts_project( exclude = ["**/*.spec.ts"], ), deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", ], ) @@ -19,11 +19,13 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/core", diff --git a/src/material/core/theming/BUILD.bazel b/src/material/core/theming/BUILD.bazel new file mode 100644 index 000000000000..21da8428367e --- /dev/null +++ b/src/material/core/theming/BUILD.bazel @@ -0,0 +1,141 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +exports_files(["_theming.scss"]) + +sass_library( + name = "core_all_theme", + srcs = [ + "_all-theme.scss", + ], + deps = [ + ":theming", + "//src/material/autocomplete:theme", + "//src/material/badge:theme", + "//src/material/bottom-sheet:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/button-toggle:theme", + "//src/material/card:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core:theme_sass", + "//src/material/datepicker:theme", + "//src/material/dialog:theme", + "//src/material/divider:theme", + "//src/material/expansion:theme", + "//src/material/form-field:theme", + "//src/material/grid-list:theme", + "//src/material/icon:theme", + "//src/material/input:theme", + "//src/material/list:theme", + "//src/material/menu:theme", + "//src/material/paginator:theme", + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/sidenav:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/snack-bar:theme", + "//src/material/sort:theme", + "//src/material/stepper:theme", + "//src/material/table:theme", + "//src/material/tabs:theme", + "//src/material/timepicker:theme", + "//src/material/toolbar:theme", + "//src/material/tooltip:theme", + "//src/material/tree:theme", + ], +) + +sass_library( + name = "theming", + srcs = [ + "_theming.scss", + ], +) + +sass_library( + name = "_inspection", + srcs = ["_inspection.scss"], + deps = [ + ":_m2_inspection", + "//src/material/core/style:_validation", + ], +) + +sass_library( + name = "_m2_inspection", + srcs = ["_m2-inspection.scss"], + deps = [ + ":theming", + "//src/material/core/m2:m2_sass", + "//src/material/core/typography:_versioning", + ], +) + +sass_library( + name = "_validation", + srcs = ["_validation.scss"], +) + +sass_library( + name = "_theming_deprecated", + srcs = ["_theming-deprecated.scss"], + deps = ["//src/material/core/m2:m2_sass"], +) + +sass_library( + name = "_palettes", + srcs = ["_palettes.scss"], +) + +sass_library( + name = "_config_validation", + srcs = ["_config-validation.scss"], + deps = [ + ":_palettes", + "//src/material/core/style:_validation", + ], +) + +sass_library( + name = "_color_api_backwards_compatibility", + srcs = ["_color-api-backwards-compatibility.scss"], + deps = [ + "//src/material/badge:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core/option:theme", + "//src/material/core/selection/pseudo-checkbox:sass_theme", + "//src/material/datepicker:theme", + "//src/material/form-field:theme", + "//src/material/icon:theme", + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/stepper:theme", + "//src/material/tabs:theme", + ], +) + +sass_library( + name = "_definition", + srcs = ["_definition.scss"], + deps = [ + ":_config_validation", + ":_palettes", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_tokens", + ], +) diff --git a/src/material/core/theming/_definition.scss b/src/material/core/theming/_definition.scss index 701bc4b8de12..511786869338 100644 --- a/src/material/core/theming/_definition.scss +++ b/src/material/core/theming/_definition.scss @@ -7,12 +7,12 @@ @use './config-validation'; // Prefix used for component token fallback variables, e.g. -// `color: var(--mdc-text-button-label-text-color, var(--mat-sys-primary));` +// `color: var(--mat-text-button-label-text-color, var(--mat-sys-primary));` $system-fallback-prefix: mat-sys; // Default system level prefix to use when directly calling the `system-level-*` mixins. // Prefix used for component token fallback variables, e.g. -// `color: var(--mdc-text-button-label-text-color, var(--mat-sys-primary));` +// `color: var(--mat-text-button-label-text-color, var(--mat-sys-primary));` // TODO: Remove this variable after internal clients are migrated from "sys" $system-level-prefix: mat-sys; diff --git a/src/material/core/theming/_inspection.scss b/src/material/core/theming/_inspection.scss index 0f0e11fcb4b4..e0d5f57639e5 100644 --- a/src/material/core/theming/_inspection.scss +++ b/src/material/core/theming/_inspection.scss @@ -119,7 +119,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac @if not theme-has($theme, color) { @error 'Color information is not available on this theme.'; } - $color-roles: map.get($theme, $_internals, color-tokens, (mdc, theme)); + $color-roles: map.get($theme, $_internals, color-tokens, (mat, theme)); $result: map.get($color-roles, $color-role-name); @if not $result { @error #{'Valid color roles are: #{map.keys($color-roles)}. Got:'} $color-role-name; @@ -185,7 +185,7 @@ $_typography-properties: (font, font-family, line-height, font-size, letter-spac font-weight: '-weight' ), $property); $token-name: '#{$typescale}#{$property-key}'; - @return map.get($theme, $_internals, typography-tokens, (mdc, typography), $token-name); + @return map.get($theme, $_internals, typography-tokens, (mat, typography), $token-name); } @else { @error #{'Unrecognized theme version:'} $version; diff --git a/src/material/core/theming/prebuilt/BUILD.bazel b/src/material/core/theming/prebuilt/BUILD.bazel new file mode 100644 index 000000000000..1530fead1c9b --- /dev/null +++ b/src/material/core/theming/prebuilt/BUILD.bazel @@ -0,0 +1,83 @@ +load("//tools:defaults.bzl", "sass_binary") + +package(default_visibility = ["//visibility:public"]) + +sass_binary( + name = "indigo-pink-theme", + src = "indigo-pink.scss", + deps = [ + "//src/material/core:core_sass", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography", + ], +) + +sass_binary( + name = "deeppurple-amber-theme", + src = "deeppurple-amber.scss", + deps = [ + "//src/material/core:core_sass", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography", + ], +) + +sass_binary( + name = "pink-bluegrey-theme", + src = "pink-bluegrey.scss", + deps = [ + "//src/material/core:core_sass", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography", + ], +) + +sass_binary( + name = "purple-green-theme", + src = "purple-green.scss", + deps = [ + "//src/material/core:core_sass", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography", + ], +) + +sass_binary( + name = "rose_red", + src = "rose-red.scss", + deps = [ + "//src/material/core/theming:_palettes", + "//src/material/core/tokens:m3_system", + ], +) + +sass_binary( + name = "azure_blue", + src = "azure-blue.scss", + deps = [ + "//src/material/core/theming:_palettes", + "//src/material/core/tokens:m3_system", + ], +) + +sass_binary( + name = "cyan_orange", + src = "cyan-orange.scss", + deps = [ + "//src/material/core/theming:_palettes", + "//src/material/core/tokens:m3_system", + ], +) + +sass_binary( + name = "magenta_violet", + src = "magenta-violet.scss", + deps = [ + "//src/material/core/theming:_palettes", + "//src/material/core/tokens:m3_system", + ], +) diff --git a/src/material/core/theming/tests/BUILD.bazel b/src/material/core/theming/tests/BUILD.bazel index 3d5f466d8f1d..3466ef95ea48 100644 --- a/src/material/core/theming/tests/BUILD.bazel +++ b/src/material/core/theming/tests/BUILD.bazel @@ -1,5 +1,6 @@ -load("//tools:defaults.bzl", "jasmine_node_test", "sass_binary", "ts_library") load("@bazel_skylib//rules:build_test.bzl", "build_test") +load("//tools:defaults.bzl", "sass_binary") +load("//tools:defaults2.bzl", "jasmine_test", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -10,7 +11,12 @@ sass_binary( testonly = True, src = "test-css-variables-theme.scss", deps = [ - "//src/material/core:theming_scss_lib", + "//src/material/core/color", + "//src/material/core/density/private:all_density", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography:all_typography", ], ) @@ -22,7 +28,12 @@ sass_binary( testonly = True, src = "test-theming-api.scss", deps = [ - "//src/material/core:theming_scss_lib", + "//src/material/core/color", + "//src/material/core/density/private:all_density", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming", + "//src/material/core/theming:core_all_theme", + "//src/material/core/typography:all_typography", ], ) @@ -52,29 +63,29 @@ build_test( ], ) -ts_library( +ts_project( name = "unit_test_lib", testonly = True, srcs = glob([ "*.spec.ts", ]), - # TODO(ESM): remove this once the Bazel NodeJS rules can handle ESM with `nodejs_binary`. - devmode_module = "commonjs", deps = [ + "//:node_modules/@bazel/runfiles", + "//:node_modules/postcss", + "//:node_modules/sass", "//tools/postcss", "//tools/sass:sass_lib", - "@npm//@bazel/runfiles", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//postcss", - "@npm//sass", ], ) -jasmine_node_test( +jasmine_test( name = "unit_tests", - srcs = [":unit_test_lib"], data = [ + ":unit_test_lib", + "//src/material:sass_lib", + "//src/material-experimental:sass_lib", + ], + no_copy_to_bin = [ "//src/material:sass_lib", "//src/material-experimental:sass_lib", ], diff --git a/src/material/core/theming/tests/m3-theme.spec.ts b/src/material/core/theming/tests/m3-theme.spec.ts index fac03197a185..baf110fa11a6 100644 --- a/src/material/core/theming/tests/m3-theme.spec.ts +++ b/src/material/core/theming/tests/m3-theme.spec.ts @@ -3,7 +3,7 @@ import * as path from 'path'; import {parse} from 'postcss'; import {compileString} from 'sass'; -import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; +import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer.js'; // Note: For Windows compatibility, we need to resolve the directory paths through runfiles // which are guaranteed to reside in the source tree. @@ -151,7 +151,7 @@ describe('M3 theme', () => { } `); - expect(css).toContain('--mdc-checkbox-selected-checkmark-color: magenta'); + expect(css).toContain('--mat-checkbox-selected-checkmark-color: magenta'); expectNoWarning(/`selected-checkmark-color` is deprecated/); }); @@ -162,8 +162,8 @@ describe('M3 theme', () => { } `); - expect(css).toContain('--mdc-filled-text-field-caret-color: magenta'); - expect(css).not.toContain('--mdc-outline-text-field-caret-color: magenta'); + expect(css).toContain('--mat-form-field-filled-caret-color: magenta'); + expect(css).not.toContain('--mat-form-field-outlined-caret-color: magenta'); expectNoWarning(/`filled-caret-color` is deprecated/); }); @@ -174,8 +174,8 @@ describe('M3 theme', () => { } `); - expect(css).toContain('--mdc-filled-text-field-caret-color: magenta'); - expect(css).toContain('--mdc-outlined-text-field-caret-color: magenta'); + expect(css).toContain('--mat-form-field-filled-caret-color: magenta'); + expect(css).toContain('--mat-form-field-outlined-caret-color: magenta'); expectWarning( /Token `caret-color` is deprecated. Please use one of the following alternatives: filled-caret-color, outlined-caret-color/, ); diff --git a/src/material/core/theming/tests/test-theming-api.scss b/src/material/core/theming/tests/test-theming-api.scss index 3aa05ef1e964..566992f8ceac 100644 --- a/src/material/core/theming/tests/test-theming-api.scss +++ b/src/material/core/theming/tests/test-theming-api.scss @@ -1,13 +1,13 @@ -@use 'sass:map'; -@use '../../density/private/all-density'; @use '../../color/all-color'; +@use '../../density/private/all-density'; +@use '../../m2/palette' as m2-palette; +@use '../../m2/theming' as m2-theming; +@use '../../m2/typography' as m2-typography; @use '../../typography/all-typography'; -@use '../all-theme'; @use '../../typography/typography'; +@use '../all-theme'; @use '../theming'; -@use '../../m2/typography' as m2-typography; -@use '../../m2/palette' as m2-palette; -@use '../../m2/theming' as m2-theming; +@use 'sass:map'; // Disable theme style duplication warnings. This test intentionally generates // the same themes multiple times. diff --git a/src/material/core/theming/tests/theming-definition-api.spec.ts b/src/material/core/theming/tests/theming-definition-api.spec.ts index 626bf632d5e1..12d95f842ddd 100644 --- a/src/material/core/theming/tests/theming-definition-api.spec.ts +++ b/src/material/core/theming/tests/theming-definition-api.spec.ts @@ -3,7 +3,7 @@ import {compileString} from 'sass'; import {runfiles} from '@bazel/runfiles'; import * as path from 'path'; -import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; +import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer.js'; // Note: For Windows compatibility, we need to resolve the directory paths through runfiles // which are guaranteed to reside in the source tree. @@ -111,10 +111,10 @@ describe('theming definition api', () => { )); $data: map.get($theme, $internals); :root { - --token-surface: #{map.get($data, color-tokens, (mdc, theme), surface)}; - --token-primary: #{map.get($data, color-tokens, (mdc, theme), primary)}; - --token-secondary: #{map.get($data, color-tokens, (mdc, theme), secondary)}; - --token-tertiary: #{map.get($data, color-tokens, (mdc, theme), tertiary)}; + --token-surface: #{map.get($data, color-tokens, (mat, theme), surface)}; + --token-primary: #{map.get($data, color-tokens, (mat, theme), primary)}; + --token-secondary: #{map.get($data, color-tokens, (mat, theme), secondary)}; + --token-tertiary: #{map.get($data, color-tokens, (mat, theme), tertiary)}; --palette-primary: #{map.get($data, palettes, primary, 50)}; --palette-secondary: #{map.get($data, palettes, secondary, 50)}; --palette-tertiary: #{map.get($data, palettes, tertiary, 50)}; @@ -146,13 +146,13 @@ describe('theming definition api', () => { $data: map.get($theme, $internals); :root { --display-font: - #{map.get($data, typography-tokens, (mdc, typography), display-large-font)}; + #{map.get($data, typography-tokens, (mat, typography), display-large-font)}; --display-weight: - #{map.get($data, typography-tokens, (mdc, typography), display-large-weight)}; + #{map.get($data, typography-tokens, (mat, typography), display-large-weight)}; --title-font: - #{map.get($data, typography-tokens, (mdc, typography), title-small-font)}; + #{map.get($data, typography-tokens, (mat, typography), title-small-font)}; --title-weight: - #{map.get($data, typography-tokens, (mdc, typography), title-small-weight)}; + #{map.get($data, typography-tokens, (mat, typography), title-small-weight)}; } `); const vars = getRootVars(css); @@ -171,7 +171,7 @@ describe('theming definition api', () => { )); $data: map.get($theme, $internals); :root { - --size: #{map.get($data, density-tokens, (mdc, checkbox), state-layer-size)}; + --size: #{map.get($data, density-tokens, (mat, checkbox), state-layer-size)}; } `); const vars = getRootVars(css); diff --git a/src/material/core/theming/tests/theming-inspection-api.spec.ts b/src/material/core/theming/tests/theming-inspection-api.spec.ts index 19c2372e3a9c..0da3e6853a0c 100644 --- a/src/material/core/theming/tests/theming-inspection-api.spec.ts +++ b/src/material/core/theming/tests/theming-inspection-api.spec.ts @@ -2,7 +2,7 @@ import {compileString} from 'sass'; import {runfiles} from '@bazel/runfiles'; import * as path from 'path'; -import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; +import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer.js'; // Note: For Windows compatibility, we need to resolve the directory paths through runfiles // which are guaranteed to reside in the source tree. diff --git a/src/material/core/theming/tests/theming-mixin-api.spec.ts b/src/material/core/theming/tests/theming-mixin-api.spec.ts index e10957624a7c..2ddcef420450 100644 --- a/src/material/core/theming/tests/theming-mixin-api.spec.ts +++ b/src/material/core/theming/tests/theming-mixin-api.spec.ts @@ -3,8 +3,8 @@ import {compileString} from 'sass'; import {runfiles} from '@bazel/runfiles'; import * as path from 'path'; -import {compareNodes} from '../../../../../tools/postcss/compare-nodes'; -import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; +import {compareNodes} from '../../../../../tools/postcss/compare-nodes.js'; +import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer.js'; // Note: For Windows compatibility, we need to resolve the directory paths through runfiles // which are guaranteed to reside in the source tree. diff --git a/src/material/core/theming/tests/theming-typography-hierarchy.spec.ts b/src/material/core/theming/tests/theming-typography-hierarchy.spec.ts index 3d2edd2b4907..abb408dda078 100644 --- a/src/material/core/theming/tests/theming-typography-hierarchy.spec.ts +++ b/src/material/core/theming/tests/theming-typography-hierarchy.spec.ts @@ -2,7 +2,7 @@ import {compileString} from 'sass'; import {runfiles} from '@bazel/runfiles'; import * as path from 'path'; -import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; +import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer.js'; // Note: For Windows compatibility, we need to resolve the directory paths through runfiles // which are guaranteed to reside in the source tree. diff --git a/src/material/core/tokens/BUILD.bazel b/src/material/core/tokens/BUILD.bazel new file mode 100644 index 000000000000..d1c472a31aff --- /dev/null +++ b/src/material/core/tokens/BUILD.bazel @@ -0,0 +1,152 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "format_tokens", + srcs = ["_format-tokens.scss"], +) + +sass_library( + name = "m3_utils", + srcs = ["_m3-utils.scss"], +) + +sass_library( + name = "token_utils", + srcs = [ + "_token-utils.scss", + ], + deps = [ + ":m3_system", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + ], +) + +sass_library( + name = "m3_system", + srcs = ["_m3-system.scss"], + deps = [ + ":m3_tokens", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_config_validation", + "//src/material/core/theming:_definition", + "//src/material/core/tokens/m3", + ], +) + +sass_library( + name = "m2_utils", + srcs = ["_m2-utils.scss"], + deps = ["//src/material/core/m2:m2_sass"], +) + +sass_library( + name = "density", + srcs = ["_density.scss"], + deps = ["//src/material/core/theming"], +) + +sass_library( + name = "m3_tokens", + srcs = ["_m3-tokens.scss"], + deps = [ + ":density", + ":format_tokens", + ":m2_tokens", + "//src/material/autocomplete:m3", + "//src/material/badge:m3", + "//src/material/bottom-sheet:m3", + "//src/material/button:m3", + "//src/material/button-toggle:m3", + "//src/material/card:m3", + "//src/material/checkbox:m3", + "//src/material/chips:m3", + "//src/material/core:m3", + "//src/material/core:ripple_m3", + "//src/material/core/m2:m2_sass", + "//src/material/core/option:m3", + "//src/material/core/selection/pseudo-checkbox:m3", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/tokens/m3", + "//src/material/datepicker:m3", + "//src/material/dialog:m3", + "//src/material/divider:m3", + "//src/material/expansion:m3", + "//src/material/form-field:m3", + "//src/material/grid-list:m3", + "//src/material/icon:m3", + "//src/material/list:m3", + "//src/material/menu:m3", + "//src/material/paginator:m3", + "//src/material/progress-bar:m3", + "//src/material/progress-spinner:m3", + "//src/material/radio:m3", + "//src/material/select:m3", + "//src/material/sidenav:m3", + "//src/material/slide-toggle:m3", + "//src/material/slider:m3", + "//src/material/snack-bar:m3", + "//src/material/sort:m3", + "//src/material/stepper:m3", + "//src/material/table:m3", + "//src/material/tabs:m3", + "//src/material/timepicker:m3", + "//src/material/toolbar:m3", + "//src/material/tooltip:m3", + "//src/material/tree:m3", + ], +) + +sass_library( + name = "m2_tokens", + srcs = ["_m2-tokens.scss"], + deps = [ + ":density", + ":format_tokens", + "//src/material/autocomplete:m2", + "//src/material/badge:m2", + "//src/material/bottom-sheet:m2", + "//src/material/button:m2", + "//src/material/button-toggle:m2", + "//src/material/card:m2", + "//src/material/checkbox:m2", + "//src/material/chips:m2", + "//src/material/core:m2", + "//src/material/core:ripple_m2", + "//src/material/core/m2:m2_sass", + "//src/material/core/option:m2", + "//src/material/core/selection/pseudo-checkbox:m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/datepicker:m2", + "//src/material/dialog:m2", + "//src/material/divider:m2", + "//src/material/expansion:m2", + "//src/material/form-field:m2", + "//src/material/grid-list:m2", + "//src/material/icon:m2", + "//src/material/list:m2", + "//src/material/menu:m2", + "//src/material/paginator:m2", + "//src/material/progress-bar:m2", + "//src/material/progress-spinner:m2", + "//src/material/radio:m2", + "//src/material/select:m2", + "//src/material/sidenav:m2", + "//src/material/slide-toggle:m2", + "//src/material/slider:m2", + "//src/material/snack-bar:m2", + "//src/material/sort:m2", + "//src/material/stepper:m2", + "//src/material/table:m2", + "//src/material/tabs:m2", + "//src/material/timepicker:m2", + "//src/material/toolbar:m2", + "//src/material/tooltip:m2", + "//src/material/tree:m2", + ], +) diff --git a/src/material/core/tokens/_density.scss b/src/material/core/tokens/_density.scss index c7c998664328..70852784b724 100644 --- a/src/material/core/tokens/_density.scss +++ b/src/material/core/tokens/_density.scss @@ -7,7 +7,7 @@ /// systemized density. /// Format: /// ( -/// (mdc, comp): ( +/// (mat, comp): ( /// token: (, , , ...), /// ... /// ), @@ -15,153 +15,123 @@ /// ) // TODO(mmalerba): Add density tokens for remaining components. $_density-tokens: ( - // MDC tokens - (mdc, checkbox): ( - state-layer-size: (40px, 36px, 32px, 28px), - ), - (mdc, chip): ( - container-height: (32px, 28px, 24px), - ), - (mdc, circular-progress): (), - (mdc, dialog): (), - (mdc, elevated-card): (), - (mdc, extended-fab): (), - (mdc, fab): (), - (mdc, fab-small): (), - (mdc, filled-text-field): (), - (mdc, text-button): ( - container-height: (40px, 36px, 32px, 28px), - ), - (mdc, protected-button): ( - container-height: (40px, 36px, 32px, 28px), - ), - (mdc, filled-button): ( - container-height: (40px, 36px, 32px, 28px), - ), - (mat, tonal-button): ( - container-height: (40px, 36px, 32px, 28px), - touch-target-display: (block, block, none, none), - ), - (mdc, outlined-button): ( - container-height: (40px, 36px, 32px, 28px), - ), - (mdc, icon-button): ( - // The size caps out at 24px, because anything lower will be smaller than the icon. - state-layer-size: (40px, 36px, 32px, 28px, 24px, 24px), - ), - (mdc, linear-progress): (), - (mdc, list): ( - list-item-one-line-container-height: (48px, 44px, 40px, 36px, 32px, 24px), - list-item-two-line-container-height: (64px, 60px, 56px, 52px, 48px, 48px), - list-item-three-line-container-height: (88px, 84px, 80px, 76px, 72px, 56px), - ), - (mdc, outlined-card): (), - (mdc, outlined-text-field): (), - (mdc, plain-tooltip): (), - (mdc, radio): ( - state-layer-size: (40px, 36px, 32px, 28px), - ), - (mdc, slider): (), - (mdc, snackbar): (), - (mdc, switch): (), - (mdc, secondary-navigation-tab): ( - container-height: (48px, 44px, 40px, 36px, 32px) - ), - (mdc, tab-indicator): (), - - // Custom Angular Material tokens - (mat, autocomplete): (), - (mat, badge): (), - (mat, bottom-sheet): (), - (mat, card): (), - (mat, checkbox): ( - touch-target-display: (block, block, none, none), - ), - (mat, dialog): (), - (mat, datepicker): (), - (mat, divider): (), - (mat, expansion): ( - header-collapsed-state-height: (48px, 44px, 40px, 36px), - header-expanded-state-height: (64px, 60px, 56px, 48px), - ), - (mat, fab): ( - touch-target-display: (block, block, none, none), - ), - (mat, form-field): ( - container-height: (56px, 52px, 48px, 44px, 40px, 36px), - filled-label-display: (block, block, none, none, none, none), - container-vertical-padding: (16px, 14px, 12px, 10px, 8px, 6px), - filled-with-label-container-padding-top: (24px, 22px, 12px, 10px, 8px, 6px), - filled-with-label-container-padding-bottom: (8px, 6px, 12px, 10px, 8px, 6px), - ), - (mat, grid-list): (), - (mat, icon): (), - (mat, icon-button): ( - touch-target-display: (block, block, none, none), - ), - (mat, list): ( - list-item-leading-icon-start-space: (16px, 12px, 8px, 4px), - list-item-leading-icon-end-space: (16px, 12px, 8px, 4px), - ), - (mat, text-button): ( - touch-target-display: (block, block, none, none), - ), - (mat, protected-button): ( - touch-target-display: (block, block, none, none), - ), - (mat, filled-button): ( - touch-target-display: (block, block, none, none), - ), - (mat, outlined-button): ( - touch-target-display: (block, block, none, none), - ), - (mat, menu): (), - (mat, optgroup): (), - (mat, option): (), - (mat, full-pseudo-checkbox): (), - (mat, minimal-pseudo-checkbox): (), - (mat, paginator): ( - container-size: (56px, 52px, 48px, 40px), - form-field-container-height: (40px, 40px, 40px, 40px, 40px, 36px), - form-field-container-vertical-padding: (8px, 8px, 8px, 8px, 8px, 6px), - touch-target-display: (block, block, none, none), - ), - (mat, radio): ( - touch-target-display: (block, block, none, none), - ), - (mat, ripple): (), - (mat, select): ( - arrow-transform: ( - translateY(-8px), - translateY(-8px), - none, - ), - ), - (mat, sidenav): (), - (mat, slide-toggle): (), - (mat, slider): (), - (mat, snack-bar): (), - (mat, sort): (), - (mat, timepicker): (), - (mat, standard-button-toggle): ( - height: (40px, 40px, 40px, 36px, 24px), - ), - (mat, stepper): ( - header-height: (72px, 68px, 64px, 60px, 42px), - ), - (mat, tab-header): (), - (mat, table): ( - header-container-height: (56px, 52px, 48px, 44px, 40px), - footer-container-height: (52px, 48px, 44px, 40px, 36px), - row-item-container-height: (52px, 48px, 44px, 40px, 36px), - ), - (mat, toolbar): ( - standard-height: (64px, 60px, 56px, 52px), - mobile-height: (56px, 52px, 48px, 44px), - ), - (mat, tree): ( - node-min-height: (48px, 44px, 40px, 36px, 28px), - ), + (mat, autocomplete): (), + (mat, badge): (), + (mat, bottom-sheet): (), + (mat, card): (), + (mat, checkbox): ( + state-layer-size: (40px, 36px, 32px, 28px), + touch-target-display: (block, block, none, none), + ), + (mat, chip): ( + container-height: (32px, 28px, 24px), + ), + (mat, progress-spinner): (), + (mat, datepicker): (), + (mat, dialog): (), + (mat, divider): (), + (mat, card-elevated): (), + (mat, expansion): ( + header-collapsed-state-height: (48px, 44px, 40px, 36px), + header-expanded-state-height: (64px, 60px, 56px, 48px), + ), + (mat, fab-extended): (), + (mat, fab): ( + touch-target-display: (block, block, none, none), + ), + (mat, fab-small): (), + (mat, button-filled): ( + touch-target-display: (block, block, none, none), + container-height: (40px, 36px, 32px, 28px), + ), + (mat, form-field-filled): (), + (mat, form-field): ( + container-height: (56px, 52px, 48px, 44px, 40px, 36px), + filled-label-display: (block, block, none, none, none, none), + container-vertical-padding: (16px, 14px, 12px, 10px, 8px, 6px), + filled-with-label-container-padding-top: (24px, 22px, 12px, 10px, 8px, 6px), + filled-with-label-container-padding-bottom: (8px, 6px, 12px, 10px, 8px, 6px), + ), + (mat, pseudo-checkbox-full): (), + (mat, grid-list): (), + (mat, icon): (), + (mat, icon-button): ( + touch-target-display: (block, block, none, none), + // The size caps out at 24px, because anything lower will be smaller than the icon. + state-layer-size: (40px, 36px, 32px, 28px, 24px, 24px), + ), + (mat, progress-bar): (), + (mat, list): ( + list-item-leading-icon-start-space: (16px, 12px, 8px, 4px), + list-item-leading-icon-end-space: (16px, 12px, 8px, 4px), + list-item-one-line-container-height: (48px, 44px, 40px, 36px, 32px, 24px), + list-item-two-line-container-height: (64px, 60px, 56px, 52px, 48px, 48px), + list-item-three-line-container-height: (88px, 84px, 80px, 76px, 72px, 56px), + ), + (mat, menu): (), + (mat, pseudo-checkbox-minimal): (), + (mat, optgroup): (), + (mat, option): (), + (mat, button-outlined): ( + container-height: (40px, 36px, 32px, 28px), + touch-target-display: (block, block, none, none), + ), + (mat, card-outlined): (), + (mat, form-field-outlined): (), + (mat, paginator): ( + container-size: (56px, 52px, 48px, 40px), + form-field-container-height: (40px, 40px, 40px, 40px, 40px, 36px), + form-field-container-vertical-padding: (8px, 8px, 8px, 8px, 8px, 6px), + touch-target-display: (block, block, none, none), + ), + (mat, tooltip): (), + (mat, button-protected): ( + touch-target-display: (block, block, none, none), + container-height: (40px, 36px, 32px, 28px), + ), + (mat, radio): ( + touch-target-display: (block, block, none, none), + state-layer-size: (40px, 36px, 32px, 28px), + ), + (mat, ripple): (), + (mat, tab): ( + container-height: (48px, 44px, 40px, 36px, 32px), + ), + (mat, select): ( + arrow-transform: (translateY(-8px), translateY(-8px), none), + ), + (mat, sidenav): (), + (mat, slider): (), + (mat, snack-bar): (), + (mat, sort): (), + (mat, button-toggle): ( + height: (40px, 40px, 40px, 36px, 24px), + ), + (mat, stepper): ( + header-height: (72px, 68px, 64px, 60px, 42px), + ), + (mat, slide-toggle): (), + (mat, table): ( + header-container-height: (56px, 52px, 48px, 44px, 40px), + footer-container-height: (52px, 48px, 44px, 40px, 36px), + row-item-container-height: (52px, 48px, 44px, 40px, 36px), + ), + (mat, button-text): ( + touch-target-display: (block, block, none, none), + container-height: (40px, 36px, 32px, 28px), + ), + (mat, timepicker): (), + (mat, button-tonal): ( + container-height: (40px, 36px, 32px, 28px), + touch-target-display: (block, block, none, none), + ), + (mat, toolbar): ( + standard-height: (64px, 60px, 56px, 52px), + mobile-height: (56px, 52px, 48px, 44px), + ), + (mat, tree): ( + node-min-height: (48px, 44px, 40px, 36px, 28px), + ), ); /// Gets the value for the given density scale from the given set of density values. diff --git a/src/material/core/tokens/_m2-tokens.scss b/src/material/core/tokens/_m2-tokens.scss new file mode 100644 index 000000000000..2237cc37a2b7 --- /dev/null +++ b/src/material/core/tokens/_m2-tokens.scss @@ -0,0 +1,159 @@ +@use 'sass:map'; +@use 'sass:meta'; +@use '../../autocomplete/m2-autocomplete'; +@use '../../badge/m2-badge'; +@use '../../bottom-sheet/m2-bottom-sheet'; +@use '../../button-toggle/m2-standard-button-toggle'; +@use '../../button/m2-extended-fab'; +@use '../../button/m2-fab'; +@use '../../button/m2-fab-small'; +@use '../../button/m2-filled-button'; +@use '../../button/m2-icon-button'; +@use '../../button/m2-outlined-button'; +@use '../../button/m2-protected-button'; +@use '../../button/m2-text-button'; +@use '../../button/m2-tonal-button'; +@use '../../card/m2-card'; +@use '../../card/m2-elevated-card'; +@use '../../card/m2-outlined-card'; +@use '../../checkbox/m2-checkbox'; +@use '../../chips/m2-chip'; +@use '../../datepicker/m2-datepicker'; +@use '../../dialog/m2-dialog'; +@use '../../divider/m2-divider'; +@use '../../expansion/m2-expansion'; +@use '../../form-field/m2-filled-text-field'; +@use '../../form-field/m2-form-field'; +@use '../../form-field/m2-outlined-text-field'; +@use '../../grid-list/m2-grid-list'; +@use '../../icon/m2-icon'; +@use '../../list/m2-list'; +@use '../../menu/m2-menu'; +@use '../../paginator/m2-paginator'; +@use '../../progress-bar/m2-progress-bar'; +@use '../../progress-spinner/m2-progress-spinner'; +@use '../../radio/m2-radio'; +@use '../../select/m2-select'; +@use '../../sidenav/m2-sidenav'; +@use '../../slide-toggle/m2-slide-toggle'; +@use '../../slider/m2-slider'; +@use '../../snack-bar/m2-snack-bar'; +@use '../../sort/m2-sort'; +@use '../../stepper/m2-stepper'; +@use '../../table/m2-table'; +@use '../../tabs/m2-secondary-navigation-tab'; +@use '../../tabs/m2-tab-header'; +@use '../../tabs/m2-tab-header-with-background'; +@use '../../tabs/m2-tab-indicator'; +@use '../../timepicker/m2-timepicker'; +@use '../../toolbar/m2-toolbar'; +@use '../../tooltip/m2-tooltip'; +@use '../../tree/m2-tree'; +@use '../m2-app'; +@use '../option/m2-optgroup'; +@use '../option/m2-option'; +@use '../ripple/m2-ripple'; +@use '../selection/pseudo-checkbox/m2-full-pseudo-checkbox'; +@use '../selection/pseudo-checkbox/m2-minimal-pseudo-checkbox'; +@use '../style/sass-utils'; +@use '../theming/inspection'; + +/// Gets the tokens for the given theme, m2 tokens module, and theming system. +/// @param {Map} $theme The Angular Material theme object to generate token values from. +/// @param {String} $module The Sass module containing the token getter functions. +/// @param {String} $system The theming system to get tokens for. Valid values are: unthemable, +/// color, typography, density. +/// @return {Map} The token map by calling the token getter for the given system in the given module +/// with the given Angular Material theme. Token names are not fully-qualified. +@function _get-tokens-for-module-and-system($theme, $module, $system) { + @if $system == unthemable { + @return meta.call(meta.get-function(get-#{$system}-tokens, $module: $module)); + } + @if not inspection.theme-has($theme, $system) { + @return (); + } + @return meta.call(meta.get-function(get-#{$system}-tokens, $module: $module), $theme); +} + +/// Gets the fully qualified tokens map for the given theme and m2 tokens module. +/// @param {Map} $theme The Angular Material theme object to generate token values from. +/// @param {String} $module The Sass module containing the token getter functions. +/// @return {Map} The token map by calling the token getters in the given module with the given +/// Angular Material theme. Token names are fully-qualified. +@function _get-tokens-for-module($theme, $module) { + $tokens: sass-utils.deep-merge-all( + _get-tokens-for-module-and-system($theme, $module, unthemable), + _get-tokens-for-module-and-system($theme, $module, color), + _get-tokens-for-module-and-system($theme, $module, typography), + _get-tokens-for-module-and-system($theme, $module, density) + ); + @return map.set((), map.get(meta.module-variables($module), prefix), $tokens); +} + +/// Gets the full set of M2 tokens for the given theme object. +/// @param {Map} $theme The Angular Material theme object to generate token values from. +/// @return {Map} The token map for the given Angular Material theme. Returned format: +/// ( +/// (fully, qualified, namespace): ( +/// token: value +/// ) +/// ) +@function m2-tokens-from-theme($theme) { + @return sass-utils.deep-merge-all( + _get-tokens-for-module($theme, m2-app), + _get-tokens-for-module($theme, m2-autocomplete), + _get-tokens-for-module($theme, m2-badge), + _get-tokens-for-module($theme, m2-bottom-sheet), + _get-tokens-for-module($theme, m2-card), + _get-tokens-for-module($theme, m2-checkbox), + _get-tokens-for-module($theme, m2-chip), + _get-tokens-for-module($theme, m2-datepicker), + _get-tokens-for-module($theme, m2-dialog), + _get-tokens-for-module($theme, m2-divider), + _get-tokens-for-module($theme, m2-elevated-card), + _get-tokens-for-module($theme, m2-expansion), + _get-tokens-for-module($theme, m2-extended-fab), + _get-tokens-for-module($theme, m2-fab), + _get-tokens-for-module($theme, m2-fab-small), + _get-tokens-for-module($theme, m2-filled-button), + _get-tokens-for-module($theme, m2-filled-text-field), + _get-tokens-for-module($theme, m2-form-field), + _get-tokens-for-module($theme, m2-full-pseudo-checkbox), + _get-tokens-for-module($theme, m2-grid-list), + _get-tokens-for-module($theme, m2-icon), + _get-tokens-for-module($theme, m2-icon-button), + _get-tokens-for-module($theme, m2-list), + _get-tokens-for-module($theme, m2-menu), + _get-tokens-for-module($theme, m2-minimal-pseudo-checkbox), + _get-tokens-for-module($theme, m2-optgroup), + _get-tokens-for-module($theme, m2-option), + _get-tokens-for-module($theme, m2-outlined-button), + _get-tokens-for-module($theme, m2-outlined-card), + _get-tokens-for-module($theme, m2-outlined-text-field), + _get-tokens-for-module($theme, m2-paginator), + _get-tokens-for-module($theme, m2-progress-bar), + _get-tokens-for-module($theme, m2-progress-spinner), + _get-tokens-for-module($theme, m2-protected-button), + _get-tokens-for-module($theme, m2-radio), + _get-tokens-for-module($theme, m2-ripple), + _get-tokens-for-module($theme, m2-secondary-navigation-tab), + _get-tokens-for-module($theme, m2-select), + _get-tokens-for-module($theme, m2-sidenav), + _get-tokens-for-module($theme, m2-slide-toggle), + _get-tokens-for-module($theme, m2-slider), + _get-tokens-for-module($theme, m2-snack-bar), + _get-tokens-for-module($theme, m2-sort), + _get-tokens-for-module($theme, m2-standard-button-toggle), + _get-tokens-for-module($theme, m2-stepper), + _get-tokens-for-module($theme, m2-tab-header), + _get-tokens-for-module($theme, m2-tab-header-with-background), + _get-tokens-for-module($theme, m2-tab-indicator), + _get-tokens-for-module($theme, m2-table), + _get-tokens-for-module($theme, m2-text-button), + _get-tokens-for-module($theme, m2-timepicker), + _get-tokens-for-module($theme, m2-tonal-button), + _get-tokens-for-module($theme, m2-toolbar), + _get-tokens-for-module($theme, m2-tooltip), + _get-tokens-for-module($theme, m2-tree), + ); +} diff --git a/src/material/core/tokens/_m2-utils.scss b/src/material/core/tokens/_m2-utils.scss new file mode 100644 index 000000000000..5ef6d41d0ddd --- /dev/null +++ b/src/material/core/tokens/_m2-utils.scss @@ -0,0 +1,109 @@ +@use '../m2/palette'; +@use '../m2/theming'; +@use '../m2/typography'; +@use 'sass:color'; +@use 'sass:math'; +@use 'sass:meta'; + +$_placeholder-color-palette: theming.define-palette(palette.$red-palette); + +// Indicates whether we're building internally. Used for backwards compatibility. +$private-is-internal-build: false; + +// Placeholder color config that can be passed to token getter functions when generating token +// slots. +$placeholder-color-config: ( + primary: $_placeholder-color-palette, + accent: $_placeholder-color-palette, + warn: $_placeholder-color-palette, + is-dark: false, + foreground: palette.$light-theme-foreground-palette, + background: palette.$light-theme-background-palette, +); + +$_placeholder-typography-level-config: typography.typography-config-level-from-mdc(body1); + +// Placeholder typography config that can be passed to token getter functions when generating token +// slots. +$placeholder-typography-config: ( + font-family: 'Roboto, sans-serif', + headline-1: $_placeholder-typography-level-config, + headline-2: $_placeholder-typography-level-config, + headline-3: $_placeholder-typography-level-config, + headline-4: $_placeholder-typography-level-config, + headline-5: $_placeholder-typography-level-config, + headline-6: $_placeholder-typography-level-config, + subtitle-1: $_placeholder-typography-level-config, + subtitle-2: $_placeholder-typography-level-config, + body-1: $_placeholder-typography-level-config, + body-2: $_placeholder-typography-level-config, + caption: $_placeholder-typography-level-config, + button: $_placeholder-typography-level-config, + overline: $_placeholder-typography-level-config, + subheading-1: $_placeholder-typography-level-config, + title: $_placeholder-typography-level-config, +); + +// Placeholder density config that can be passed to token getter functions when generating token +// slots. +$placeholder-density-config: 0; + +/// Inherited function from MDC that computes which contrast tone to use on top of a color. +/// This is used only in a narrow set of use cases when generating M2 button tokens to maintain +/// backwards compatibility. +/// @param {Color} $value Color for which we're calculating the contrast tone. +/// @param {Boolean} $is-dark Whether the current theme is dark. +/// @return {Map} Either `dark` or `light`. +@function contrast-tone($value, $is-dark) { + @if ($value == 'dark') { + @return 'light'; + } + + @if ($value == 'light') { + @return 'dark'; + } + + // Fallback if the app is using a non-color palette (e.g. CSS variable based). + @if (meta.type-of($value) != 'color') { + @return if($is-dark, 'light', 'dark'); + } + + $minimum-contrast: 3.1; + $light-contrast: _contrast($value, #fff); + $dark-contrast: _contrast($value, rgba(0, 0, 0, 0.87)); + + @if ($light-contrast < $minimum-contrast) and ($dark-contrast > $light-contrast) { + @return 'dark'; + } + + @return 'light'; +} + +@function _linear-channel-value($channel-value) { + $normalized-channel-value: math.div($channel-value, 255); + + @if ($normalized-channel-value < 0.03928) { + @return math.div($normalized-channel-value, 12.92); + } + + @return math.pow(math.div($normalized-channel-value + 0.055, 1.055), 2.4); +} + +// Calculate the luminance for a color. +// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests +@function _luminance($color) { + $red: _linear-channel-value(color.red($color)); + $green: _linear-channel-value(color.green($color)); + $blue: _linear-channel-value(color.blue($color)); + + @return 0.2126 * $red + 0.7152 * $green + 0.0722 * $blue; +} + +// Calculate the contrast ratio between two colors. +// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests +@function _contrast($back, $front) { + $back-lum: _luminance($back) + 0.05; + $fore-lum: _luminance($front) + 0.05; + + @return math.div(math.max($back-lum, $fore-lum), math.min($back-lum, $fore-lum)); +} diff --git a/src/material/core/tokens/_m3-system.scss b/src/material/core/tokens/_m3-system.scss index 2a836cf8e531..b06f76611bc9 100644 --- a/src/material/core/tokens/_m3-system.scss +++ b/src/material/core/tokens/_m3-system.scss @@ -2,7 +2,7 @@ @use '../style/sass-utils'; @use '../theming/config-validation'; @use '../theming/definition'; -@use './m3/definitions'; +@use './m3'; @use 'sass:map'; @use 'sass:meta'; @use 'sass:list'; @@ -90,11 +90,11 @@ /// change the primary color to red, use `mat.theme-overrides((primary: red));` @mixin theme-overrides($overrides, $prefix: definition.$system-fallback-prefix) { $sys-names: map-merge-all( - definitions.md-sys-color-values-light(), - definitions.md-sys-typescale-values(), - definitions.md-sys-elevation-values(), - definitions.md-sys-shape-values(), - definitions.md-sys-state-values()); + m3.md-sys-color-values-light(), + m3.md-sys-typescale-values(), + m3.md-sys-elevation-values(), + m3.md-sys-shape-values(), + m3.md-sys-state-values()); & { @each $name, $value in $overrides { @@ -145,12 +145,12 @@ } @function _generate-sys-colors($ref, $type) { - $light-sys-colors: definitions.md-sys-color-values-light($ref); + $light-sys-colors: m3.md-sys-color-values-light($ref); @if ($type == light) { @return $light-sys-colors; } - $dark-sys-colors: definitions.md-sys-color-values-dark($ref); + $dark-sys-colors: m3.md-sys-color-values-dark($ref); @if ($type == dark) { @return $dark-sys-colors; } @@ -185,7 +185,7 @@ } & { - @each $name, $value in definitions.md-sys-typescale-values($ref) { + @each $name, $value in m3.md-sys-typescale-values($ref) { --#{$prefix}-#{$name}: #{map.get($overrides, $name) or $value}; } } @@ -193,9 +193,9 @@ @mixin system-level-elevation($theme, $overrides: (), $prefix: definition.$system-level-prefix) { $shadow-color: map.get( - $theme, _mat-theming-internals-do-not-access, color-tokens, (mdc, theme), shadow); + $theme, _mat-theming-internals-do-not-access, color-tokens, (mat, theme), shadow); - @each $name, $value in definitions.md-sys-elevation-values() { + @each $name, $value in m3.md-sys-elevation-values() { $level: map.get($overrides, $name) or $value; $value: elevation.get-box-shadow($level, $shadow-color); & { @@ -206,7 +206,7 @@ @mixin system-level-shape($theme: (), $overrides: (), $prefix: definition.$system-level-prefix) { & { - @each $name, $value in definitions.md-sys-shape-values() { + @each $name, $value in m3.md-sys-shape-values() { --#{$prefix}-#{$name}: #{map.get($overrides, $name) or $value}; } } @@ -214,7 +214,7 @@ @mixin system-level-state($theme: (), $overrides: (), $prefix: definition.$system-level-prefix) { & { - @each $name, $value in definitions.md-sys-state-values() { + @each $name, $value in m3.md-sys-state-values() { --#{$prefix}-#{$name}: #{map.get($overrides, $name) or $value}; } } @@ -237,15 +237,15 @@ @function create-system-fallbacks() { $app-vars: ( 'md-sys-color': - _create-system-app-vars-map(definitions.md-sys-color-values-light()), + _create-system-app-vars-map(m3.md-sys-color-values-light()), 'md-sys-typescale': - _create-system-app-vars-map(definitions.md-sys-typescale-values()), + _create-system-app-vars-map(m3.md-sys-typescale-values()), 'md-sys-elevation': - _create-system-app-vars-map(definitions.md-sys-elevation-values()), + _create-system-app-vars-map(m3.md-sys-elevation-values()), 'md-sys-state': - _create-system-app-vars-map(definitions.md-sys-state-values()), + _create-system-app-vars-map(m3.md-sys-state-values()), 'md-sys-shape': - _create-system-app-vars-map(definitions.md-sys-shape-values()), + _create-system-app-vars-map(m3.md-sys-shape-values()), // Add a subset of palette-specific colors used by components instead of system values 'md-ref-palette': _create-system-app-vars-map( diff --git a/src/material/core/tokens/_m3-tokens.scss b/src/material/core/tokens/_m3-tokens.scss index 0cde0b8f5763..1ba270e9141d 100644 --- a/src/material/core/tokens/_m3-tokens.scss +++ b/src/material/core/tokens/_m3-tokens.scss @@ -1,11 +1,64 @@ -@use 'sass:map'; -@use '../style/sass-utils'; +@use '../../autocomplete/m3-autocomplete'; +@use '../../badge/m3-badge'; +@use '../../bottom-sheet/m3-bottom-sheet'; +@use '../../button-toggle/m3-standard-button-toggle'; +@use '../../button/m3-extended-fab'; +@use '../../button/m3-fab'; +@use '../../button/m3-fab-small'; +@use '../../button/m3-filled-button'; +@use '../../button/m3-icon-button'; +@use '../../button/m3-outlined-button'; +@use '../../button/m3-protected-button'; +@use '../../button/m3-text-button'; +@use '../../button/m3-tonal-button'; +@use '../../card/m3-card'; +@use '../../card/m3-elevated-card'; +@use '../../card/m3-outlined-card'; +@use '../../checkbox/m3-checkbox'; +@use '../../chips/m3-chip'; +@use '../../datepicker/m3-datepicker'; +@use '../../dialog/m3-dialog'; +@use '../../divider/m3-divider'; +@use '../../expansion/m3-expansion'; +@use '../../form-field/m3-filled-text-field'; +@use '../../form-field/m3-form-field'; +@use '../../form-field/m3-outlined-text-field'; +@use '../../grid-list/m3-grid-list'; +@use '../../icon/m3-icon'; +@use '../../list/m3-list'; +@use '../../menu/m3-menu'; +@use '../../paginator/m3-paginator'; +@use '../../progress-bar/m3-progress-bar'; +@use '../../progress-spinner/m3-progress-spinner'; +@use '../../radio/m3-radio'; +@use '../../select/m3-select'; +@use '../../sidenav/m3-sidenav'; +@use '../../slide-toggle/m3-slide-toggle'; +@use '../../slider/m3-slider'; +@use '../../snack-bar/m3-snack-bar'; +@use '../../sort/m3-sort'; +@use '../../stepper/m3-stepper'; +@use '../../table/m3-table'; +@use '../../tabs/m3-secondary-navigation-tab'; +@use '../../tabs/m3-tab-header'; +@use '../../tabs/m3-tab-indicator'; +@use '../../timepicker/m3-timepicker'; +@use '../../toolbar/m3-toolbar'; +@use '../../tooltip/m3-tooltip'; +@use '../../tree/m3-tree'; @use '../m2' as m2-theming; -@use './m3'; -@use './m3/definitions' as m3-token-definitions; -@use '../tokens/m2' as m2-tokens; +@use '../m3-app'; +@use '../option/m3-optgroup'; +@use '../option/m3-option'; +@use '../ripple/m3-ripple'; +@use '../selection/pseudo-checkbox/m3-full-pseudo-checkbox'; +@use '../selection/pseudo-checkbox/m3-minimal-pseudo-checkbox'; +@use '../style/sass-utils'; @use './density'; @use './format-tokens'; +@use './m2-tokens'; +@use './m3'; +@use 'sass:map'; /// Generates tokens for the given palette with the given prefix. /// @param {Map} $palette The palette to generate tokens for @@ -108,10 +161,10 @@ $_cached-token-slots: null; $result: sass-utils.deep-merge-all( // Add the system color & typography tokens (so we can give users access via an API). ( - (mdc, theme): map.get($systems, md-sys-color), - (mdc, typography): map.get($systems, md-sys-typescale), + (mat, theme): map.get($systems, md-sys-color), + (mat, typography): map.get($systems, md-sys-typescale), ), - m3.get-m3-tokens($systems, $exclude-hardcoded, $token-slots), + get-m3-tokens($systems, $exclude-hardcoded, $token-slots), ); // Strip out tokens that are systemized by our made up density system. @@ -137,8 +190,8 @@ $_cached-token-slots: null; @function _get-sys-color($type, $ref, $prefix) { $mdc-sys-color: if($type == dark, - m3-token-definitions.md-sys-color-values-dark($ref), - m3-token-definitions.md-sys-color-values-light($ref)); + m3.md-sys-color-values-dark($ref), + m3.md-sys-color-values-light($ref)); @if (sass-utils.$use-system-color-variables) { $keys: ( @@ -298,7 +351,7 @@ $_cached-token-slots: null; @return create-map($keys, $prefix); } - @return m3-token-definitions.md-sys-typescale-values($ref); + @return m3.md-sys-typescale-values($ref); } /// Generates a set of namespaced color tokens for all components. @@ -319,12 +372,12 @@ $_cached-token-slots: null; md-sys-color: $sys-color, // Because the elevation values are always combined with color values to create the box shadow, // elevation needs to be part of the color dimension. - md-sys-elevation: m3-token-definitions.md-sys-elevation-values(), + md-sys-elevation: m3.md-sys-elevation-values(), // Because the state values are sometimes combined with color values to create rgba colors, // state needs to be part of color dimension. // TODO(mmalerba): If at some point we remove the need for these combined values, we can move // state to the base dimension. - md-sys-state: m3-token-definitions.md-sys-state-values(), + md-sys-state: m3.md-sys-state-values(), ))); } @@ -360,7 +413,78 @@ $system-variables-prefix) { @function generate-base-tokens() { // TODO(mmalerba): Exclude density tokens once implemented. @return generate-tokens(( - md-sys-motion: m3-token-definitions.md-sys-motion-values(), - md-sys-shape: m3-token-definitions.md-sys-shape-values(), + md-sys-motion: m3.md-sys-motion-values(), + md-sys-shape: m3.md-sys-shape-values(), ), $include-non-systemized: true); } + +/// Gets the full set of M3 tokens for the given theme object. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} Full set of M3 tokens +@function get-m3-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens-list: ( + m3-app.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-autocomplete.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-badge.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-bottom-sheet.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-card.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-checkbox.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-chip.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-datepicker.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-dialog.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-divider.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-elevated-card.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-expansion.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-extended-fab.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-fab-small.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-fab.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-filled-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-filled-text-field.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-form-field.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-full-pseudo-checkbox.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-grid-list.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-icon-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-icon.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-list.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-menu.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-minimal-pseudo-checkbox.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-optgroup.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-option.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-outlined-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-outlined-card.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-outlined-text-field.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-paginator.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-progress-bar.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-progress-spinner.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-protected-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-radio.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-ripple.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-secondary-navigation-tab.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-select.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-sidenav.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-slide-toggle.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-slider.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-snack-bar.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-sort.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-standard-button-toggle.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-stepper.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-tab-header.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-tab-indicator.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-table.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-text-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-timepicker.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-tonal-button.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-toolbar.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-tooltip.get-tokens($systems, $exclude-hardcoded, $token-slots), + m3-tree.get-tokens($systems, $exclude-hardcoded, $token-slots), + ); + + $merged-tokens: (); + @each $tokens in $tokens-list { + $merged-tokens: map.deep-merge($merged-tokens, $tokens); + } + + @return $merged-tokens; +} diff --git a/src/material/core/tokens/_m3-utils.scss b/src/material/core/tokens/_m3-utils.scss new file mode 100644 index 000000000000..9efd6c5cab76 --- /dev/null +++ b/src/material/core/tokens/_m3-utils.scss @@ -0,0 +1,85 @@ +@use 'sass:map'; +@use 'sass:list'; +@use 'sass:meta'; + +/// Gets the MDC tokens for the given prefix, M3 token values, and supported token slots. +/// @param {List} $prefix The token prefix for the given tokens. +/// @param {Map|(Map, Map)} $values A map of M3 token values for the given prefix. +/// This param may also be a tuple of maps, the first one representing the default M3 token values, +// and the second containing overrides for different color variants. +// Single map example: +// (token1: green, token2: 2px) +// Tuple example: +// ( +// (token1: green, token2: 2px), +// ( +// secondary: (token1: blue), +// error: (token1: red), +// ) +// ) +/// @param {Map} $slots A map of token slots, with null value indicating the token is not supported. +/// @param {String|null} $variant The name of the variant the token values are for. +/// @return {Map} A map of fully qualified token names to values, for only the supported tokens. +@function namespace($prefix, $values, $slots, $variant: null) { + $result: (); + @if $variant == null and meta.type-of($values) == 'list' and list.length($values == 2) { + $variants: list.nth($values, 2); + $values: list.nth($values, 1); + @each $variant, $overrides in $variants { + + $result: map.merge($result, namespace($prefix, $overrides, $slots, $variant)); + } + } + $used-token-names: map.keys(_filter-nulls(map.get($slots, $prefix))); + $used-m3-tokens: _pick(_filter-nulls($values), $used-token-names); + $prefix: if($variant == null, $prefix, list.append($prefix, $variant)); + @return map.merge($result, ($prefix: $used-m3-tokens)); +} + +/// Hardcode the given value, or null if hardcoded values are excluded. +@function hardcode($value, $exclude-hardcoded) { + @return if($exclude-hardcoded, null, $value); +} + +/// Picks a submap containing only the given keys out the given map. +/// @param {Map} $map The map to pick from. +/// @param {List} $keys The map keys to pick. +/// @return {Map} A submap containing only the given keys. +@function _pick($map, $keys) { + $result: (); + @each $key in $keys { + @if map.has-key($map, $key) { + $result: map.set($result, $key, map.get($map, $key)); + } + } + @return $result; +} + + +/// Filters keys with a null value out of the map. +/// @param {Map} $map The map to filter. +/// @return {Map} The given map with all of the null keys filtered out. +@function _filter-nulls($map) { + $result: (); + @each $key, $val in $map { + @if $val != null { + $result: map.set($result, $key, $val); + } + } + @return $result; +} + +/// Sets all of the standard typography tokens for the given token base name to the given typography +/// level. +/// @param {Map} $systems The MDC system tokens +/// @param {String} $base-name The token base name to get the typography tokens for +/// @param {String} $typography-level The typography level to base the token values on +/// @return {Map} A map containing the typography tokens for the given base token name +@function generate-typography-tokens($systems, $base-name, $typography-level) { + $result: (); + @each $prop in (font, line-height, size, tracking, weight) { + $result: map.set($result, #{$base-name}-#{$prop}, + map.get($systems, md-sys-typescale, #{$typography-level}-#{$prop})); + } + @return $result; +} diff --git a/src/material/core/tokens/_token-definition.scss b/src/material/core/tokens/_token-definition.scss deleted file mode 100644 index 102d7aba5684..000000000000 --- a/src/material/core/tokens/_token-definition.scss +++ /dev/null @@ -1,272 +0,0 @@ -@use 'sass:color'; -@use 'sass:list'; -@use 'sass:map'; -@use 'sass:meta'; -@use 'sass:math'; -@use '../m2/palette' as m2-palette; -@use '../m2/theming' as m2-theming; -@use '../m2/typography' as m2-typography; -@use '../style/sass-utils'; -@use './m3/definitions' as m3-token-definitions; - -// Indicates whether we're building internally. Used for backwards compatibility. -$private-is-internal-build: false; - -$_placeholder-color-palette: m2-theming.define-palette(m2-palette.$red-palette); - -// Placeholder color config that can be passed to token getter functions when generating token -// slots. -$placeholder-color-config: ( - primary: $_placeholder-color-palette, - accent: $_placeholder-color-palette, - warn: $_placeholder-color-palette, - is-dark: false, - foreground: m2-palette.$light-theme-foreground-palette, - background: m2-palette.$light-theme-background-palette, -); - -$_placeholder-typography-level-config: m2-typography.typography-config-level-from-mdc(body1); - -// Placeholder typography config that can be passed to token getter functions when generating token -// slots. -$placeholder-typography-config: ( - font-family: 'Roboto, sans-serif', - headline-1: $_placeholder-typography-level-config, - headline-2: $_placeholder-typography-level-config, - headline-3: $_placeholder-typography-level-config, - headline-4: $_placeholder-typography-level-config, - headline-5: $_placeholder-typography-level-config, - headline-6: $_placeholder-typography-level-config, - subtitle-1: $_placeholder-typography-level-config, - subtitle-2: $_placeholder-typography-level-config, - body-1: $_placeholder-typography-level-config, - body-2: $_placeholder-typography-level-config, - caption: $_placeholder-typography-level-config, - button: $_placeholder-typography-level-config, - overline: $_placeholder-typography-level-config, - subheading-1: $_placeholder-typography-level-config, - title: $_placeholder-typography-level-config, -); - -// Placeholder density config that can be passed to token getter functions when generating token -// slots. -$placeholder-density-config: 0; - -$_tokens: null; -$_component-prefix: null; -$_system-fallbacks: null; - -/// Gets all the MDC token values for a specific component. This function serves as single -/// point at which we directly reference a specific version of the MDC tokens. -/// @param {String} $component Name of the component for which to get the tokens -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @return {List} Map of token names to values -@function get-mdc-tokens($component, $systems, $exclude-hardcoded) { - $full-name: 'md-comp-' + $component + '-values'; - $fn: meta.get-function($name: $full-name, $module: 'm3-token-definitions'); - @return meta.call($fn, $systems, $exclude-hardcoded); -} - -/// Gets the MDC tokens for the given prefix, M3 token values, and supported token slots. -/// @param {List} $prefix The token prefix for the given tokens. -/// @param {Map|(Map, Map)} $values A map of M3 token values for the given prefix. -/// This param may also be a tuple of maps, the first one representing the default M3 token values, -// and the second containing overrides for different color variants. -// Single map example: -// (token1: green, token2: 2px) -// Tuple example: -// ( -// (token1: green, token2: 2px), -// ( -// secondary: (token1: blue), -// error: (token1: red), -// ) -// ) -/// @param {Map} $slots A map of token slots, with null value indicating the token is not supported. -/// @param {String|null} $variant The name of the variant the token values are for. -/// @return {Map} A map of fully qualified token names to values, for only the supported tokens. -@function namespace-tokens($prefix, $values, $slots, $variant: null) { - $result: (); - @if $variant == null and meta.type-of($values) == 'list' and list.length($values == 2) { - $variants: list.nth($values, 2); - $values: list.nth($values, 1); - @each $variant, $overrides in $variants { - $result: map.merge($result, namespace-tokens($prefix, $overrides, $slots, $variant)); - } - } - $used-token-names: map.keys(_filter-nulls(map.get($slots, $prefix))); - $used-m3-tokens: _pick(_filter-nulls($values), $used-token-names); - $prefix: if($variant == null, $prefix, list.append($prefix, $variant)); - @return map.merge($result, ($prefix: $used-m3-tokens)); -} - -/// Hardcode the given value, or null if hardcoded values are excluded. -@function hardcode($value, $exclude-hardcoded) { - @return if($exclude-hardcoded, null, $value); -} - -/// Sets all of the standard typography tokens for the given token base name to the given typography -/// level. -/// @param {Map} $systems The MDC system tokens -/// @param {String} $base-name The token base name to get the typography tokens for -/// @param {String} $typography-level The typography level to base the token values on -/// @return {Map} A map containing the typography tokens for the given base token name -@function generate-typography-tokens($systems, $base-name, $typography-level) { - $result: (); - @each $prop in (font, line-height, size, tracking, weight) { - $result: map.set($result, #{$base-name}-#{$prop}, - map.get($systems, md-sys-typescale, #{$typography-level}-#{$prop})); - } - @return $result; -} - -/// Maps the values in a map to new values using the given mapping function -/// @param {Map} $map The maps whose values will be mapped to new values. -/// @param {Function} $fn The value mapping function. -/// @param {ArgList} $args Additional arguments to pass to the mapping function. -/// @return {Map} A new map with its values updated using the mapping function. -@function map-values($map, $fn, $args...) { - $result: (); - @each $key, $value in $map { - $result: map.set($result, $key, meta.call($fn, $value, $args...)); - } - @return $result; -} - -/// Renames the keys in a map -/// @param {Map} $map The map whose keys should be renamed -/// @param {Map} $rename-keys A map of original key to renamed key to apply to $map -/// @return {Map} The result of applying the given key renames to the given map. -@function rename-map-keys($map, $rename-keys) { - $result: $map; - @each $old-key-name, $new-key-name in $rename-keys { - @if map.has-key($map, $old-key-name) { - $result: map.set($result, $new-key-name, map.get($map, $old-key-name)); - } - } - @return $result; -} - -/// At the time of writing, some color tokens (e.g. disabled state) are defined as a solid color -/// token and a separate opacity token. This function applies the opacity to the color and drops the -/// opacity key from the map. Can be removed once b/213331407 is resolved. -/// @param {Map} $tokens The map of tokens currently being generated -/// @param {Map} $all-tokens A map of all tokens, including hardcoded values -/// @param {List} $pairs Pairs of color token names and their opacities. Should be in the shape of -/// `((color: 'color-key', opacity: 'opacity-key'))`. -/// @return {Map} The initial tokens with the combined color values. -@function combine-color-tokens($tokens, $opacity-lookup, $pairs) { - $result: $tokens; - - @each $pair in $pairs { - $color-key: map.get($pair, color); - $opacity-key: map.get($pair, opacity); - $color: map.get($tokens, $color-key); - - @if (sass-utils.is-css-var-name($color)) { - $color: var(#{$color}); - } - - $opacity: map.get($opacity-lookup, $opacity-key); - - @if(meta.type-of($color) == 'color') { - $result: map.remove($result, $opacity-key); - $result: map.set($result, $color-key, rgba($color, $opacity)); - } @else if($color != null) { - $result: map.remove($result, $opacity-key); - $combined-color: #{color-mix(in srgb, #{$color} #{($opacity * 100) + '%'}, transparent)}; - $result: map.set($result, $color-key, $combined-color); - } - } - - @return $result; -} - -/// Inherited function from MDC that computes which contrast tone to use on top of a color. -/// This is used only in a narrow set of use cases when generating M2 button tokens to maintain -/// backwards compatibility. -/// @param {Color} $value Color for which we're calculating the contrast tone. -/// @param {Boolean} $is-dark Whether the current theme is dark. -/// @return {Map} Either `dark` or `light`. -@function contrast-tone($value, $is-dark) { - @if ($value == 'dark') { - @return 'light'; - } - - @if ($value == 'light') { - @return 'dark'; - } - - // Fallback if the app is using a non-color palette (e.g. CSS variable based). - @if (meta.type-of($value) != 'color') { - @return if($is-dark, 'light', 'dark'); - } - - $minimum-contrast: 3.1; - $light-contrast: _contrast($value, #fff); - $dark-contrast: _contrast($value, rgba(0, 0, 0, 0.87)); - - @if ($light-contrast < $minimum-contrast) and ($dark-contrast > $light-contrast) { - @return 'dark'; - } - - @return 'light'; -} - -@function _linear-channel-value($channel-value) { - $normalized-channel-value: math.div($channel-value, 255); - - @if ($normalized-channel-value < 0.03928) { - @return math.div($normalized-channel-value, 12.92); - } - - @return math.pow(math.div($normalized-channel-value + 0.055, 1.055), 2.4); -} - -// Calculate the luminance for a color. -// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests -@function _luminance($color) { - $red: _linear-channel-value(color.red($color)); - $green: _linear-channel-value(color.green($color)); - $blue: _linear-channel-value(color.blue($color)); - - @return 0.2126 * $red + 0.7152 * $green + 0.0722 * $blue; -} - -// Calculate the contrast ratio between two colors. -// See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests -@function _contrast($back, $front) { - $back-lum: _luminance($back) + 0.05; - $fore-lum: _luminance($front) + 0.05; - - @return math.div(math.max($back-lum, $fore-lum), math.min($back-lum, $fore-lum)); -} - -/// Picks a submap containing only the given keys out the given map. -/// @param {Map} $map The map to pick from. -/// @param {List} $keys The map keys to pick. -/// @return {Map} A submap containing only the given keys. -@function _pick($map, $keys) { - $result: (); - @each $key in $keys { - @if map.has-key($map, $key) { - $result: map.set($result, $key, map.get($map, $key)); - } - } - @return $result; -} - - -/// Filters keys with a null value out of the map. -/// @param {Map} $map The map to filter. -/// @return {Map} The given map with all of the null keys filtered out. -@function _filter-nulls($map) { - $result: (); - @each $key, $val in $map { - @if $val != null { - $result: map.set($result, $key, $val); - } - } - @return $result; -} diff --git a/src/material/core/tokens/_token-utils.scss b/src/material/core/tokens/_token-utils.scss index c747c0ea7087..18bc54461f34 100644 --- a/src/material/core/tokens/_token-utils.scss +++ b/src/material/core/tokens/_token-utils.scss @@ -2,6 +2,7 @@ @use '../style/sass-utils'; @use './m3-system'; @use 'sass:list'; +@use 'sass:meta'; @use 'sass:map'; @use 'sass:string'; @@ -65,16 +66,13 @@ $_system-fallbacks: m3-system.create-system-fallbacks(); @return true; } -// Emits a slot for the given token, provided that it has a non-null value in the token map passed -// to `use-tokens`. +// Returns the token slot value. // Accepts an optional fallback parameter to include in the CSS variable. // If $fallback is `true`, then use the tokens map to get the fallback. // TODO: Remove the use case where we accept "true" and handle any failing client screenshots -@mixin create-token-slot($property, $token, $fallback: null) { +@function slot($token, $fallback: null) { $_assert: _assert-use-tokens($token); - @if map.get($_tokens, $token) != null { - #{$property}: #{_get-token-value($token, $fallback)}; - } + @return _get-token-value($token, $fallback); } // Returns the name of a token including the current prefix. Intended to be used in calculations @@ -84,16 +82,6 @@ $_system-fallbacks: m3-system.create-system-fallbacks(); @return _create-var-name($_component-prefix, $token); } -// Returns a `var()` reference to a specific token. Intended for declarations -// where the token has to be referenced as a part of a larger expression. -// Accepts an optional fallback parameter to include in the CSS variable. -// If $fallback is `true`, then use the tokens map to get the fallback. -// TODO: Remove the use case where we accept "true" and handle any failing client screenshots -@function get-token-variable($token, $fallback: null) { - $_assert: _assert-use-tokens($token); - @return _get-token-value($token, $fallback); -} - // Gets the token's fallback value. Prefers adding a system-level fallback if one exists, otherwise // use the provided fallback. @function _get-token-fallback($token, $fallback: null) { @@ -133,20 +121,25 @@ $_system-fallbacks: m3-system.create-system-fallbacks(); & { @each $key, $value in $tokens { @if $value != null { - #{_create-var-name($prefix, $key)}: #{$value}; + @include define-css_var($prefix, $key, $value); } } } } @else { @each $key, $value in $tokens { @if $value != null { - #{_create-var-name($prefix, $key)}: #{$value}; + @include define-css-var($prefix, $key, $value); } } } } } +@mixin define-css-var($prefix, $key, $value) { + $name: _create-var-name($prefix, $key); + #{$name}: #{$value}; +} + // MDC doesn't currently handle elevation tokens properly. As a temporary workaround we can combine // the elevation and shadow-color tokens into a full box-shadow and use it as the value for the // elevation token. @@ -318,3 +311,37 @@ $_system-fallbacks: m3-system.create-system-fallbacks(); } @return $result; } + +/// Gets the MDC tokens for the given prefix, M3 token values, and supported token slots. +/// @param {List} $prefix The token prefix for the given tokens. +/// @param {Map|(Map, Map)} $values A map of M3 token values for the given prefix. +/// This param may also be a tuple of maps, the first one representing the default M3 token values, +// and the second containing overrides for different color variants. +// Single map example: +// (token1: green, token2: 2px) +// Tuple example: +// ( +// (token1: green, token2: 2px), +// ( +// secondary: (token1: blue), +// error: (token1: red), +// ) +// ) +/// @param {Map} $slots A map of token slots, with null value indicating the token is not supported. +/// @param {String|null} $variant The name of the variant the token values are for. +/// @return {Map} A map of fully qualified token names to values, for only the supported tokens. +@function namespace-tokens($prefix, $values, $slots, $variant: null) { + $result: (); + @if $variant == null and meta.type-of($values) == 'list' and list.length($values == 2) { + $variants: list.nth($values, 2); + $values: list.nth($values, 1); + @each $variant, $overrides in $variants { + + $result: map.merge($result, namespace-tokens($prefix, $overrides, $slots, $variant)); + } + } + $used-token-names: map.keys(_filter-nulls(map.get($slots, $prefix))); + $used-m3-tokens: _pick(_filter-nulls($values), $used-token-names); + $prefix: if($variant == null, $prefix, list.append($prefix, $variant)); + @return map.merge($result, ($prefix: $used-m3-tokens)); +} diff --git a/src/material/core/tokens/m2/_index.scss b/src/material/core/tokens/m2/_index.scss deleted file mode 100644 index ada2482ff850..000000000000 --- a/src/material/core/tokens/m2/_index.scss +++ /dev/null @@ -1,189 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../style/sass-utils'; -@use './mat/app' as tokens-mat-app; -@use './mat/autocomplete' as tokens-mat-autocomplete; -@use './mat/badge' as tokens-mat-badge; -@use './mat/text-button' as tokens-mat-text-button; -@use './mat/protected-button' as tokens-mat-protected-button; -@use './mat/filled-button' as tokens-mat-filled-button; -@use './mat/outlined-button' as tokens-mat-outlined-button; -@use './mat/dialog' as tokens-mat-dialog; -@use './mat/bottom-sheet' as tokens-mat-bottom-sheet; -@use './mat/card' as tokens-mat-card; -@use './mat/chip' as tokens-mat-chip; -@use './mat/datepicker' as tokens-mat-datepicker; -@use './mat/divider' as tokens-mat-divider; -@use './mat/expansion' as tokens-mat-expansion; -@use './mat/fab' as tokens-mat-fab; -@use './mat/fab-small' as tokens-mat-fab-small; -@use './mat/form-field' as tokens-mat-form-field; -@use './mat/grid-list' as tokens-mat-grid-list; -@use './mat/icon' as tokens-mat-icon; -@use './mat/icon-button' as tokens-mat-icon-button; -@use './mat/list' as tokens-mat-list; -@use './mat/menu' as tokens-mat-menu; -@use './mat/option' as tokens-mat-option; -@use './mat/optgroup' as tokens-mat-optgroup; -@use './mat/paginator' as tokens-mat-paginator; -@use './mat/checkbox' as tokens-mat-checkbox; -@use './mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox; -@use './mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox; -@use './mat/radio' as tokens-mat-radio; -@use './mat/ripple' as tokens-mat-ripple; -@use './mat/select' as tokens-mat-select; -@use './mat/sidenav' as tokens-mat-sidenav; -@use './mat/slider' as tokens-mat-slider; -@use './mat/switch' as tokens-mat-switch; -@use './mat/snack-bar' as tokens-mat-snack-bar; -@use './mat/sort' as tokens-mat-sort; -@use './mat/standard-button-toggle' as tokens-mat-button-toggle; -@use './mat/stepper' as tokens-mat-stepper; -@use './mat/tab-header' as tokens-mat-tab-header; -@use './mat/tab-header-with-background' as tokens-mat-tab-header-with-background; -@use './mat/table' as tokens-mat-table; -@use './mat/toolbar' as tokens-mat-toolbar; -@use './mat/tree' as tokens-mat-tree; -@use './mat/timepicker' as tokens-mat-timepicker; -@use './mat/tonal-button' as tokens-mat-tonal-button; -@use './mdc/checkbox' as tokens-mdc-checkbox; -@use './mdc/text-button' as tokens-mdc-text-button; -@use './mdc/protected-button' as tokens-mdc-protected-button; -@use './mdc/filled-button' as tokens-mdc-filled-button; -@use './mdc/outlined-button' as tokens-mdc-outlined-button; -@use './mdc/chip' as tokens-mdc-chip; -@use './mdc/circular-progress' as tokens-mdc-circular-progress; -@use './mdc/dialog' as tokens-mdc-dialog; -@use './mdc/elevated-card' as tokens-mdc-elevated-card; -@use './mdc/extended-fab' as tokens-mdc-extended-fab; -@use './mdc/fab' as tokens-mdc-fab; -@use './mdc/fab-small' as tokens-mdc-fab-small; -@use './mdc/filled-text-field' as tokens-mdc-filled-text-field; -@use './mdc/icon-button' as tokens-mdc-icon-button; -@use './mdc/linear-progress' as tokens-mdc-linear-progress; -@use './mdc/list' as tokens-mdc-list; -@use './mdc/outlined-card' as tokens-mdc-outlined-card; -@use './mdc/outlined-text-field' as tokens-mdc-outlined-text-field; -@use './mdc/plain-tooltip' as tokens-mdc-plain-tooltip; -@use './mdc/radio' as tokens-mdc-radio; -@use './mdc/slider' as tokens-mdc-slider; -@use './mdc/snack-bar' as tokens-mdc-snack-bar; -@use './mdc/switch' as tokens-mdc-switch; -@use './mdc/secondary-navigation-tab' as tokens-mdc-secondary-navigation-tab; -@use './mdc/tab-indicator' as tokens-mdc-tab-indicator; -@use '../../theming/inspection'; - -/// Gets the tokens for the given theme, m2 tokens module, and theming system. -/// @param {Map} $theme The Angular Material theme object to generate token values from. -/// @param {String} $module The Sass module containing the token getter functions. -/// @param {String} $system The theming system to get tokens for. Valid values are: unthemable, -/// color, typography, density. -/// @return {Map} The token map by calling the token getter for the given system in the given module -/// with the given Angular Material theme. Token names are not fully-qualified. -@function _get-tokens-for-module-and-system($theme, $module, $system) { - @if $system == unthemable { - @return meta.call(meta.get-function(get-#{$system}-tokens, $module: $module)); - } - @if not inspection.theme-has($theme, $system) { - @return (); - } - @return meta.call(meta.get-function(get-#{$system}-tokens, $module: $module), $theme); -} - -/// Gets the fully qualified tokens map for the given theme and m2 tokens module. -/// @param {Map} $theme The Angular Material theme object to generate token values from. -/// @param {String} $module The Sass module containing the token getter functions. -/// @return {Map} The token map by calling the token getters in the given module with the given -/// Angular Material theme. Token names are fully-qualified. -@function _get-tokens-for-module($theme, $module) { - $tokens: sass-utils.deep-merge-all( - _get-tokens-for-module-and-system($theme, $module, unthemable), - _get-tokens-for-module-and-system($theme, $module, color), - _get-tokens-for-module-and-system($theme, $module, typography), - _get-tokens-for-module-and-system($theme, $module, density) - ); - @return map.set((), map.get(meta.module-variables($module), prefix), $tokens); -} - -/// Gets the full set of M2 tokens for the given theme object. -/// @param {Map} $theme The Angular Material theme object to generate token values from. -/// @return {Map} The token map for the given Angular Material theme. Returned format: -/// ( -/// (fully, qualified, namespace): ( -/// token: value -/// ) -/// ) -@function m2-tokens-from-theme($theme) { - @return sass-utils.deep-merge-all( - _get-tokens-for-module($theme, tokens-mat-app), - _get-tokens-for-module($theme, tokens-mat-autocomplete), - _get-tokens-for-module($theme, tokens-mat-badge), - _get-tokens-for-module($theme, tokens-mat-bottom-sheet), - _get-tokens-for-module($theme, tokens-mat-button-toggle), - _get-tokens-for-module($theme, tokens-mat-card), - _get-tokens-for-module($theme, tokens-mat-chip), - _get-tokens-for-module($theme, tokens-mat-datepicker), - _get-tokens-for-module($theme, tokens-mat-dialog), - _get-tokens-for-module($theme, tokens-mat-divider), - _get-tokens-for-module($theme, tokens-mat-expansion), - _get-tokens-for-module($theme, tokens-mat-fab), - _get-tokens-for-module($theme, tokens-mat-fab-small), - _get-tokens-for-module($theme, tokens-mat-filled-button), - _get-tokens-for-module($theme, tokens-mat-form-field), - _get-tokens-for-module($theme, tokens-mat-grid-list), - _get-tokens-for-module($theme, tokens-mat-icon-button), - _get-tokens-for-module($theme, tokens-mat-icon), - _get-tokens-for-module($theme, tokens-mat-menu), - _get-tokens-for-module($theme, tokens-mat-optgroup), - _get-tokens-for-module($theme, tokens-mat-option), - _get-tokens-for-module($theme, tokens-mat-outlined-button), - _get-tokens-for-module($theme, tokens-mat-paginator), - _get-tokens-for-module($theme, tokens-mat-checkbox), - _get-tokens-for-module($theme, tokens-mat-full-pseudo-checkbox), - _get-tokens-for-module($theme, tokens-mat-list), - _get-tokens-for-module($theme, tokens-mat-minimal-pseudo-checkbox), - _get-tokens-for-module($theme, tokens-mat-protected-button), - _get-tokens-for-module($theme, tokens-mat-radio), - _get-tokens-for-module($theme, tokens-mat-ripple), - _get-tokens-for-module($theme, tokens-mat-select), - _get-tokens-for-module($theme, tokens-mat-sidenav), - _get-tokens-for-module($theme, tokens-mat-slider), - _get-tokens-for-module($theme, tokens-mat-switch), - _get-tokens-for-module($theme, tokens-mat-snack-bar), - _get-tokens-for-module($theme, tokens-mat-sort), - _get-tokens-for-module($theme, tokens-mat-stepper), - _get-tokens-for-module($theme, tokens-mat-tab-header-with-background), - _get-tokens-for-module($theme, tokens-mat-tab-header), - _get-tokens-for-module($theme, tokens-mat-table), - _get-tokens-for-module($theme, tokens-mat-text-button), - _get-tokens-for-module($theme, tokens-mat-toolbar), - _get-tokens-for-module($theme, tokens-mat-tree), - _get-tokens-for-module($theme, tokens-mat-timepicker), - _get-tokens-for-module($theme, tokens-mat-tonal-button), - _get-tokens-for-module($theme, tokens-mdc-checkbox), - _get-tokens-for-module($theme, tokens-mdc-chip), - _get-tokens-for-module($theme, tokens-mdc-circular-progress), - _get-tokens-for-module($theme, tokens-mdc-dialog), - _get-tokens-for-module($theme, tokens-mdc-elevated-card), - _get-tokens-for-module($theme, tokens-mdc-extended-fab), - _get-tokens-for-module($theme, tokens-mdc-fab), - _get-tokens-for-module($theme, tokens-mdc-fab-small), - _get-tokens-for-module($theme, tokens-mdc-filled-button), - _get-tokens-for-module($theme, tokens-mdc-filled-text-field), - _get-tokens-for-module($theme, tokens-mdc-icon-button), - _get-tokens-for-module($theme, tokens-mdc-linear-progress), - _get-tokens-for-module($theme, tokens-mdc-list), - _get-tokens-for-module($theme, tokens-mdc-outlined-button), - _get-tokens-for-module($theme, tokens-mdc-outlined-card), - _get-tokens-for-module($theme, tokens-mdc-outlined-text-field), - _get-tokens-for-module($theme, tokens-mdc-plain-tooltip), - _get-tokens-for-module($theme, tokens-mdc-protected-button), - _get-tokens-for-module($theme, tokens-mdc-radio), - _get-tokens-for-module($theme, tokens-mdc-slider), - _get-tokens-for-module($theme, tokens-mdc-snack-bar), - _get-tokens-for-module($theme, tokens-mdc-switch), - _get-tokens-for-module($theme, tokens-mdc-tab-indicator), - _get-tokens-for-module($theme, tokens-mdc-secondary-navigation-tab), - _get-tokens-for-module($theme, tokens-mdc-text-button) - ); -} diff --git a/src/material/core/tokens/m2/mat/_checkbox.scss b/src/material/core/tokens/m2/mat/_checkbox.scss deleted file mode 100644 index 2b345d559dae..000000000000 --- a/src/material/core/tokens/m2/mat/_checkbox.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, checkbox); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return (); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return ( - disabled-label-color: inspection.get-theme-color($theme, foreground, disabled-text), - label-text-color: inspection.get-theme-color($theme, foreground, text) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, body-2, font-family), - label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), - label-text-size: inspection.get-theme-typography($theme, body-2, font-size), - label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return (touch-target-display: if($density-scale < -1, none, block)); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_chip.scss b/src/material/core/tokens/m2/mat/_chip.scss deleted file mode 100644 index 2cf95dfa2cbe..000000000000 --- a/src/material/core/tokens/m2/mat/_chip.scss +++ /dev/null @@ -1,63 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../../m2/palette' as m2-palette; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, chip); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - disabled-container-opacity: 0.4, - trailing-action-opacity: 0.54, - trailing-action-focus-opacity: 1, - trailing-action-state-layer-color: transparent, - selected-trailing-action-state-layer-color: transparent, - trailing-action-hover-state-layer-opacity: 0, - trailing-action-focus-state-layer-opacity: 0, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme, $palette-name: null) { - $foreground: null; - @if $palette-name == null { - $is-dark: inspection.get-theme-type($theme) == dark; - $grey-50: map.get(m2-palette.$grey-palette, 50); - $grey-900: map.get(m2-palette.$grey-palette, 900); - $foreground: if($is-dark, $grey-50, $grey-900); - } - @else { - $foreground: inspection.get-theme-color($theme, $palette-name, default-contrast); - } - @return ( - // The color of the icon at the end of a disabled chip. - selected-disabled-trailing-icon-color: $foreground, - // The color of the icon at the end of the chip. - selected-trailing-icon-color: $foreground - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_dialog.scss b/src/material/core/tokens/m2/mat/_dialog.scss deleted file mode 100644 index fdf289876d7c..000000000000 --- a/src/material/core/tokens/m2/mat/_dialog.scss +++ /dev/null @@ -1,51 +0,0 @@ -@use '../../token-definition'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, dialog); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - container-elevation-shadow: elevation.get-box-shadow(24), - container-max-width: 80vw, - container-small-max-width: 80vw, - container-min-width: 0, - actions-alignment: start, - actions-padding: 8px, - content-padding: 20px 24px, - with-actions-content-padding: 20px 24px, - - // Note: the CSS class is `title` while the M2 tokens call it `subhead`. - // M3 calls it `headline` which is what we're aligning with. - headline-padding: 0 24px 9px, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_outlined-button.scss b/src/material/core/tokens/m2/mat/_outlined-button.scss deleted file mode 100644 index 6928e0ef65f7..000000000000 --- a/src/material/core/tokens/m2/mat/_outlined-button.scss +++ /dev/null @@ -1,88 +0,0 @@ -@use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, outlined-button); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - // Start/end padding of the button. - horizontal-padding: 15px, // Normally it's 16px, but -1px for the outline. - - // Space between the icon and the button's main content. - icon-spacing: 8px, - - // Amount by which to offset the icon so that its presence - // doesn't increase throw off the horizontal padding. - icon-offset: -4px, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - - @return ( - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. - disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. - focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. - pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), - ); -} - -// Generates the mapping for the properties that change based on the button palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $color: inspection.get-theme-color($theme, $palette-name); - $ripple-opacity: 0.1; - - @return ( - state-layer-color: $color, - ripple-color: if( - meta.type-of($color) == color, - rgba($color, $ripple-opacity), - inspection.get-theme-color($theme, foreground, base, $ripple-opacity)), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return ( - touch-target-display: if($density-scale < -1, none, block), - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_protected-button.scss b/src/material/core/tokens/m2/mat/_protected-button.scss deleted file mode 100644 index a67a91754672..000000000000 --- a/src/material/core/tokens/m2/mat/_protected-button.scss +++ /dev/null @@ -1,102 +0,0 @@ -@use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, protected-button); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - // Start/end padding of the button. - horizontal-padding: 16px, - - // Space between the icon and the button's main content. - icon-spacing: 8px, - - // Amount by which to offset the icon so that its presence - // doesn't increase throw off the horizontal padding. - icon-offset: -4px, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - - @return ( - // Color of the element that shows the hover, focus and pressed states. - state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the element that shows the hover, focus and pressed states while disabled. - disabled-state-layer-color: inspection.get-theme-color($theme, foreground, base), - - // Color of the ripple element. - ripple-color: inspection.get-theme-color($theme, foreground, base, 0.1), - - // Opacity of the ripple when the button is hovered. - hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - - // Opacity of the ripple when the button is focused. - focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - - // Opacity of the ripple when the button is pressed. - pressed-state-layer-opacity: if($is-dark, 0.24, 0.12), - ); -} - -// Generates the mapping for the properties that change based on the button palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $state-layer-color: null; - $ripple-color: null; - $contrast-color: inspection.get-theme-color($theme, $palette-name, default-contrast); - - // Ideally we would derive all values directly from the theme, but it causes a lot of regressions - // internally. For now we fall back to the old hardcoded behavior only for internal apps. - @if (token-definition.$private-is-internal-build or - meta.type-of($contrast-color) != 'color') { - $is-dark: inspection.get-theme-type($theme) == dark; - $container-color: inspection.get-theme-color($theme, $palette-name); - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); - $color: if($contrast-tone == 'dark', #000, #fff); - $state-layer-color: $color; - $ripple-color: rgba($color, 0.1); - } - @else { - $state-layer-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); - $ripple-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 0.1); - } - - @return ( - state-layer-color: $state-layer-color, - ripple-color: $ripple-color, - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return ( - touch-target-display: if($density-scale < -1, none, block), - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_radio.scss b/src/material/core/tokens/m2/mat/_radio.scss deleted file mode 100644 index 67d12d63f134..000000000000 --- a/src/material/core/tokens/m2/mat/_radio.scss +++ /dev/null @@ -1,52 +0,0 @@ -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, radio); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return (); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme, $palette-name: accent) { - @return ( - ripple-color: inspection.get-theme-color($theme, foreground, base), - checked-ripple-color: inspection.get-theme-color($theme, $palette-name, default), - disabled-label-color: inspection.get-theme-color($theme, foreground, disabled-text), - label-text-color: inspection.get-theme-color($theme, foreground, text) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, body-2, font-family), - label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), - label-text-size: inspection.get-theme-typography($theme, body-2, font-size), - label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return (touch-target-display: if($density-scale < -1, none, block)); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_slider.scss b/src/material/core/tokens/m2/mat/_slider.scss deleted file mode 100644 index 9f22a90c3c22..000000000000 --- a/src/material/core/tokens/m2/mat/_slider.scss +++ /dev/null @@ -1,69 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, slider); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - value-indicator-width: auto, - value-indicator-height: 32px, - value-indicator-caret-display: block, - value-indicator-border-radius: 4px, - value-indicator-padding: 0 12px, - value-indicator-text-transform: none, - value-indicator-container-transform: translateX(-50%) - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary); - $is-dark: inspection.get-theme-type($theme) == dark; - - @return map.merge( - $theme-color-tokens, - ( - // Opacity of value indicator text container - value-indicator-opacity: if($is-dark, 0.9, 0.6) - ), - ); -} - -// Generates tokens for the slider properties that change based on the theme. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $ripple-color: inspection.get-theme-color($theme, $palette-name); - $hover-ripple-color: if($ripple-color == null, null, #{rgba($ripple-color, 0.05)}); - $focus-ripple-color: if($ripple-color == null, null, #{rgba($ripple-color, 0.2)}); - - @return ( - ripple-color: $ripple-color, - hover-state-layer-color: $hover-ripple-color, - focus-state-layer-color: $focus-ripple-color - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mat/_switch.scss b/src/material/core/tokens/m2/mat/_switch.scss deleted file mode 100644 index bfbf6bad22a7..000000000000 --- a/src/material/core/tokens/m2/mat/_switch.scss +++ /dev/null @@ -1,76 +0,0 @@ -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, switch); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -@function get-unthemable-tokens() { - @return ( - disabled-selected-handle-opacity: 0.38, - disabled-unselected-handle-opacity: 0.38, - - unselected-handle-size: 20px, - selected-handle-size: 20px, - pressed-handle-size: 20px, - with-icon-handle-size: 20px, - - selected-handle-horizontal-margin: 0, - selected-with-icon-handle-horizontal-margin: 0, - selected-pressed-handle-horizontal-margin: 0, - unselected-handle-horizontal-margin: 0, - unselected-with-icon-handle-horizontal-margin: 0, - unselected-pressed-handle-horizontal-margin: 0, - - // The hidden and visible track represent whichever track is visible or - // hidden in the ui. This could be the .mdc-switch__track :before or - // :after depending on whether the switch is selected or unselected. - // - // The m2 slide-toggle uses transforms to hide & show the tracks while - // the m3 slide-toggle uses opacity. - visible-track-opacity: 1, - hidden-track-opacity: 1, - visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1), - hidden-track-transition: transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1), - track-outline-width: 1px, - track-outline-color: transparent, - selected-track-outline-width: 1px, - selected-track-outline-color: transparent, - disabled-unselected-track-outline-width: 1px, - disabled-unselected-track-outline-color: transparent - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return (label-text-color: inspection.get-theme-color($theme, foreground, text)); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, body-2, font-family), - label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), - label-text-size: inspection.get-theme-typography($theme, body-2, font-size), - label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_chip.scss b/src/material/core/tokens/m2/mdc/_chip.scss deleted file mode 100644 index 104350200b8d..000000000000 --- a/src/material/core/tokens/m2/mdc/_chip.scss +++ /dev/null @@ -1,313 +0,0 @@ -@use 'sass:color'; -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../m2/palette' as m2-palette; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, chip); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // The shape & radius of the chip. - container-shape-radius: 16px, - // The shape & radius of the avatar. - with-avatar-avatar-shape-radius: 14px, - // The width & height of the chip avatar. - with-avatar-avatar-size: 28px, - // The width & height of the chip icon. - with-icon-icon-size: 18px, - // The chip's border width. - outline-width: 0, - // The chip's border color. - outline-color: transparent, - // The chip's border color when disabled. - disabled-outline-color: transparent, - // The chip's border color when focused. - focus-outline-color: transparent, - // The opacity of the chip's state overlay when hovered. - hover-state-layer-opacity: 0.04, - // The opacity of the chip's avatar when disabled. - with-avatar-disabled-avatar-opacity: 1, - // The chip's border width when selected. - flat-selected-outline-width: 0, - // The opacity of the chip's state overlay when selected and hovered. - selected-hover-state-layer-opacity: 0.04, - // The opacity of the chip's trailing icon when it is disabled. - with-trailing-icon-disabled-trailing-icon-opacity: 1, - // The opacity of the chip's leading icon when it is disabled. - with-icon-disabled-icon-opacity: 1, - // Not used by MDC. - disabled-label-text-opacity: null, - // Not used by MDC. - disabled-outline-opacity: null, - // Not used by MDC. - elevated-disabled-container-opacity: null, - // Not used by MDC. - flat-disabled-outline-opacity: null, - // Not used by MDC. - flat-disabled-unselected-outline-opacity: null, - // Our chips do not have a border. - flat-outline-width: null, - // Our chips do not have a border. - flat-unselected-outline-width: null, - // Not used by MDC. - with-leading-icon-disabled-leading-icon-opacity: null, - // Not used by MDC. - with-leading-icon-leading-icon-size: null, - // Not used by MDC. - with-trailing-icon-trailing-icon-size: null, - // Elevated chips not implemented. - container-elevation: null, - // Elevated chips not implemented. - container-shadow-color: null, - // Elevated chips not implemented. - elevated-container-elevation: null, - // Elevated chips not implemented. - elevated-container-shadow-color: null, - // Elevated chips not implemented. - container-surface-tint-layer-color: null, - // Elevated chips not implemented. - elevated-disabled-container-elevation: null, - // Elevated chips not implemented. - elevated-focus-container-elevation: null, - // Elevated chips not implemented. - elevated-hover-container-elevation: null, - // Elevated chips not implemented. - elevated-pressed-container-elevation: null, - // Elevated chips not implemented. - elevated-selected-container-elevation: null, - // Elevated chips not implemented. - elevated-unselected-container-color: null, - // Elevated chips not implemented. - flat-container-elevation: null, - // Our chips do not have a border. - flat-disabled-outline-color: null, - // Not used by MDC. - flat-disabled-selected-container-opacity: null, - // Unused. - flat-disabled-selected-outline-color: null, - // Unused. - flat-disabled-selected-outline-opacity: null, - // Unused. - flat-disabled-unselected-outline-color: null, - // Unused. - flat-focus-outline-color: null, - // Unused. - flat-outline-color: null, - // Unused. - flat-selected-container-color: null, - // Unused. - flat-selected-focus-container-elevation: null, - // Unused. - flat-selected-hover-container-elevation: null, - // Unused. - flat-selected-outline-color: null, - // Unused. - flat-selected-pressed-container-elevation: null, - // Unused. - flat-unselected-focus-container-elevation: null, - // Unused. - flat-unselected-focus-outline-color: null, - // Unused. - flat-unselected-hover-container-elevation: null, - // Unused. - flat-unselected-outline-color: null, - // Unused. - flat-unselected-pressed-container-elevation: null, - // Unused. - focus-label-text-color: null, - // Unused. - hover-label-text-color: null, - // Unused. - pressed-label-text-color: null, - // Unused. - pressed-state-layer-color: null, - // Unused. - pressed-state-layer-opacity: null, - // Unused. - selected-focus-label-text-color: null, - // Unused. - selected-hover-label-text-color: null, - // Unused. - selected-pressed-label-text-color: null, - // Unused. - selected-pressed-state-layer-color: null, - // Unused. - selected-pressed-state-layer-opacity: null, - // Unused. - unselected-focus-label-text-color: null, - // Unused. - unselected-focus-state-layer-color: null, - // Unused. - unselected-focus-state-layer-opacity: null, - // Unused. - unselected-hover-label-text-color: null, - // Unused. - unselected-hover-state-layer-color: null, - // Unused. - unselected-hover-state-layer-opacity: null, - // Unused. - unselected-label-text-color: null, - // Unused. - unselected-pressed-label-text-color: null, - // Unused. - unselected-pressed-state-layer-color: null, - // Unused. - unselected-pressed-state-layer-opacity: null, - // Unused. - with-icon-focus-icon-color: null, - // Unused. - with-icon-hover-icon-color: null, - // Unused. - with-icon-pressed-icon-color: null, - // Unused. - with-icon-selected-focus-icon-color: null, - // Unused. - with-icon-selected-hover-icon-color: null, - // Unused. - with-icon-selected-pressed-icon-color: null, - // Unused. - with-icon-unselected-focus-icon-color: null, - // Unused. - with-icon-unselected-hover-icon-color: null, - // Unused. - with-icon-unselected-icon-color: null, - // Unused. - with-icon-unselected-pressed-icon-color: null, - // Unused. - with-leading-icon-disabled-leading-icon-color: null, - // Unused. - with-leading-icon-focus-leading-icon-color: null, - // Unused. - with-leading-icon-hover-leading-icon-color: null, - // Unused. - with-leading-icon-leading-icon-color: null, - // Unused. - with-leading-icon-pressed-leading-icon-color: null, - // Unused. - with-trailing-icon-focus-trailing-icon-color: null, - // Unused. - with-trailing-icon-hover-trailing-icon-color: null, - // Unused. - with-trailing-icon-pressed-trailing-icon-color: null - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme, $palette-name: null) { - $foreground: null; - $background: null; - $state-layer-color: inspection.get-theme-color($theme, foreground, base); - $state-layer-opacity: 0.12; // 0.12 is a common value in Material Design for opacity. - - @if $palette-name == null { - $is-dark: inspection.get-theme-type($theme) == dark; - $grey-50: map.get(m2-palette.$grey-palette, 50); - $grey-900: map.get(m2-palette.$grey-palette, 900); - $foreground: if($is-dark, $grey-50, $grey-900); - - $surface: inspection.get-theme-color($theme, background, card); - $background: if( - meta.type-of($state-layer-color) == color and meta.type-of($surface) == color, - color.mix($state-layer-color, $surface, 12%), - $state-layer-color - ); - } - @else { - $background: inspection.get-theme-color($theme, $palette-name); - $foreground: inspection.get-theme-color($theme, $palette-name, default-contrast); - } - - @return ( - // The text color of a disabled chip. - disabled-label-text-color: $foreground, - // The background-color of the chip. - elevated-container-color: $background, - // The background-color of the chip when selected. - elevated-selected-container-color: $background, - // The background-color of a disabled chip. - elevated-disabled-container-color: $background, - // The background color of the chip when disabled and selected. - flat-disabled-selected-container-color: $background, - // The color of the focus state layer. - focus-state-layer-color: $state-layer-color, - // The color of the hover state layer. - hover-state-layer-color: $state-layer-color, - // The color of the chip's state overlay when selected and hovered. - selected-hover-state-layer-color: $state-layer-color, - // The opacity of the focus state layer. - focus-state-layer-opacity: $state-layer-opacity, - // The color of the chip's state overlay when selected and focused. - selected-focus-state-layer-color: $state-layer-color, - // The opacity of the chip's state overlay when selected and focused. - selected-focus-state-layer-opacity: $state-layer-opacity, - // The chip text color. - label-text-color: $foreground, - // The chip text color when selected. - selected-label-text-color: $foreground, - // The icon color of a chip. - with-icon-icon-color: $foreground, - // The color of the icon of a disabled chip. - with-icon-disabled-icon-color: $foreground, - // The color of the icon of a selected chip. - with-icon-selected-icon-color: $foreground, - // The color of the icon at the end of a disabled chip. - with-trailing-icon-disabled-trailing-icon-color: $foreground, - // The color of the icon at the end of the chip. - with-trailing-icon-trailing-icon-color: $foreground - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - // The font family of the chip text. - label-text-font: inspection.get-theme-typography($theme, body-2, font-family), - // The line height of the chip text. - label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), - // The font size of the chip text. - label-text-size: inspection.get-theme-typography($theme, body-2, font-size), - // The letter spacing of the chip label. - label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), - // The font weight of the chip text. - label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: theming.clamp-density(inspection.get-theme-density($theme), -2); - @return ( - // The height of the chip. - container-height: - map.get( - ( - 0: 32px, - -1: 28px, - -2: 24px, - ), - $scale - ) - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_circular-progress.scss b/src/material/core/tokens/m2/mdc/_circular-progress.scss deleted file mode 100644 index 0201a8f41f3c..000000000000 --- a/src/material/core/tokens/m2/mdc/_circular-progress.scss +++ /dev/null @@ -1,61 +0,0 @@ -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, circular-progress); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // The thickness of the progress spinner's active indicator. - active-indicator-width: 4px, - // The diameter of the spinner - size: 48px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // Angular Material does not support four color spinners - four-color-active-indicator-one-color: null, - // Angular Material does not support four color spinners - four-color-active-indicator-two-color: null, - // Angular Material does not support four color spinners - four-color-active-indicator-three-color: null, - // Angular Material does not support four color spinners - four-color-active-indicator-four-color: null - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme, $palette-name: primary) { - @return ( - // The color of the progress spinner's active indicator. - active-indicator-color: inspection.get-theme-color($theme, $palette-name) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_elevated-card.scss b/src/material/core/tokens/m2/mdc/_elevated-card.scss deleted file mode 100644 index 1147bf8d9e3d..000000000000 --- a/src/material/core/tokens/m2/mdc/_elevated-card.scss +++ /dev/null @@ -1,77 +0,0 @@ -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, elevated-card); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // The border-radius of the card. - container-shape: 4px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // Angular Material's card is not an interactive element, and therefore does not support states. - disabled-container-color: null, - disabled-container-elevation: null, - disabled-container-opacity: null, - dragged-container-elevation: null, - dragged-state-layer-color: null, - dragged-state-layer-opacity: null, - focus-container-elevation: null, - focus-state-layer-color:null, - focus-state-layer-opacity: null, - hover-container-elevation: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - pressed-container-elevation: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - container-shadow-color: null, - // Angular Material does not currently support surface tint. - container-surface-tint-layer-color: null, - // MDC does not seem to use these tokens. - icon-color: null, - icon-size: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $elevation: inspection.get-theme-color($theme, foreground, elevation); - - @return ( - // The background color of the card. - container-color: inspection.get-theme-color($theme, background, card), - container-elevation: elevation.get-box-shadow(1), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_extended-fab.scss b/src/material/core/tokens/m2/mdc/_extended-fab.scss deleted file mode 100644 index 7fc8bda07248..000000000000 --- a/src/material/core/tokens/m2/mdc/_extended-fab.scss +++ /dev/null @@ -1,87 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/elevation'; -@use '../../../theming/inspection'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, extended-fab); - -@function get-unthemable-tokens() { - @return ( - container-height: 48px, - container-shape: 24px, - container-elevation-shadow: elevation.get-box-shadow(6), - focus-container-elevation-shadow: elevation.get-box-shadow(8), - hover-container-elevation-shadow: elevation.get-box-shadow(8), - pressed-container-elevation-shadow: elevation.get-box-shadow(12), - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - container-color: null, - container-surface-tint-layer-color: null, - focus-icon-color: null, - focus-label-text-color: null, - focus-outline-color: null, - focus-outline-width: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - hover-icon-color: null, - hover-label-text-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - icon-color: null, - icon-size: null, - label-text-color: null, - lowered-container-elevation: null, - lowered-focus-container-elevation: null, - lowered-hover-container-elevation: null, - lowered-pressed-container-elevation: null, - pressed-icon-color: null, - pressed-label-text-color: null, - pressed-ripple-color: null, - pressed-ripple-opacity: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - container-elevation: null, - focus-container-elevation: null, - hover-container-elevation: null, - pressed-container-elevation: null, - container-shadow-color: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, button, font-family), - label-text-size: inspection.get-theme-typography($theme, button, font-size), - label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, button, font-weight) - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return map.merge( - get-unthemable-tokens(), - map.merge( - get-color-tokens(token-definition.$placeholder-color-config), - map.merge( - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ) - ) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_fab-small.scss b/src/material/core/tokens/m2/mdc/_fab-small.scss deleted file mode 100644 index 74c79640d827..000000000000 --- a/src/material/core/tokens/m2/mdc/_fab-small.scss +++ /dev/null @@ -1,92 +0,0 @@ -@use 'sass:map'; -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, fab-small); - -@function get-unthemable-tokens() { - @return ( - container-shape: 50%, - container-elevation-shadow: elevation.get-box-shadow(6), - focus-container-elevation-shadow: elevation.get-box-shadow(8), - hover-container-elevation-shadow: elevation.get-box-shadow(8), - pressed-container-elevation-shadow: elevation.get-box-shadow(12), - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - container-height: null, - container-width: null, - icon-size: null, - icon-color: null, - - focus-icon-color: null, - focus-outline-color: null, - focus-outline-width: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - - hover-icon-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - - lowered-container-elevation: null, - lowered-focus-container-elevation: null, - lowered-hover-container-elevation: null, - lowered-pressed-container-elevation: null, - - pressed-icon-color: null, - pressed-ripple-color: null, - pressed-ripple-opacity: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - - container-elevation: null, - focus-container-elevation: null, - hover-container-elevation: null, - pressed-container-elevation: null, - container-shadow-color: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return ( - // Background color of the FAB. - container-color: inspection.get-theme-color($theme, background, card), - ); -} - -// Generates the mapping for the properties that change based on the FAB palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - @return ( - container-color: inspection.get-theme-color($theme, $palette-name, default), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return map.merge( - get-unthemable-tokens(), - map.merge( - get-color-tokens(token-definition.$placeholder-color-config), - map.merge( - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ) - ) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_fab.scss b/src/material/core/tokens/m2/mdc/_fab.scss deleted file mode 100644 index c01ff7fbed50..000000000000 --- a/src/material/core/tokens/m2/mdc/_fab.scss +++ /dev/null @@ -1,93 +0,0 @@ -@use 'sass:map'; -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, fab); - -@function get-unthemable-tokens() { - @return ( - container-shape: 50%, - container-elevation-shadow: elevation.get-box-shadow(6), - focus-container-elevation-shadow: elevation.get-box-shadow(8), - hover-container-elevation-shadow: elevation.get-box-shadow(8), - pressed-container-elevation-shadow: elevation.get-box-shadow(12), - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - container-height: null, - container-surface-tint-layer-color: null, - container-width: null, - icon-size: null, - icon-color: null, - - focus-icon-color: null, - focus-outline-color: null, - focus-outline-width: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - - hover-icon-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - - lowered-container-elevation: null, - lowered-focus-container-elevation: null, - lowered-hover-container-elevation: null, - lowered-pressed-container-elevation: null, - - pressed-icon-color: null, - pressed-ripple-color: null, - pressed-ripple-opacity: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - - container-elevation: null, - focus-container-elevation: null, - hover-container-elevation: null, - pressed-container-elevation: null, - container-shadow-color: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return ( - // Background color of the FAB. - container-color: inspection.get-theme-color($theme, background, card), - ); -} - -// Generates the mapping for the properties that change based on the FAB palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - @return ( - container-color: inspection.get-theme-color($theme, $palette-name, default), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return map.merge( - get-unthemable-tokens(), - map.merge( - get-color-tokens(token-definition.$placeholder-color-config), - map.merge( - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ) - ) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_filled-button.scss b/src/material/core/tokens/m2/mdc/_filled-button.scss deleted file mode 100644 index 561bcd5ce9a9..000000000000 --- a/src/material/core/tokens/m2/mdc/_filled-button.scss +++ /dev/null @@ -1,124 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, filled-button); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - container-shape: 4px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - focus-ring-color: null, - focus-ring-offset: null, - focus-state-layer-opacity: null, - hover-state-layer-opacity: null, - pressed-state-layer-opacity: null, - container-shadow-color: null, - container-elevation: null, - disabled-container-elevation: null, - focus-container-elevation: null, - hover-container-elevation: null, - keep-touch-target: false, - pressed-container-elevation: null, - focus-label-text-color: null, - hover-label-text-color: null, - pressed-label-text-color: null, - with-icon-disabled-icon-color: null, - with-icon-focus-icon-color: null, - with-icon-hover-icon-color: null, - with-icon-icon-color: null, - with-icon-icon-size: null, - with-icon-pressed-icon-color: null, - focus-state-layer-color: null, - hover-state-layer-color: null, - pressed-state-layer-color: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - - @return ( - container-color: inspection.get-theme-color($theme, background, card), - label-text-color: inspection.get-theme-color($theme, foreground, text, 1), - disabled-container-color: inspection.get-theme-color($theme, foreground, disabled-button, - 0.12), - disabled-label-text-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), - ); -} - -// Generates the mapping for the properties that change based on the button palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $container-color: inspection.get-theme-color($theme, $palette-name, default); - $label-text-color: null; - - // Ideally we would derive all values directly from the theme, but it causes a lot of regressions - // internally. For now we fall back to the old hardcoded behavior only for internal apps. - @if (token-definition.$private-is-internal-build) { - $is-dark: inspection.get-theme-type($theme) == dark; - $contrast-tone: token-definition.contrast-tone($container-color, $is-dark); - $label-text-color: if($contrast-tone == 'dark', #000, #fff); - } - @else { - $label-text-color: inspection.get-theme-color($theme, $palette-name, default-contrast, 1); - } - - @return ( - container-color: $container-color, - label-text-color: $label-text-color, - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, button, font-family), - label-text-size: inspection.get-theme-typography($theme, button, font-size), - label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, button, font-weight), - label-text-transform: none, - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return ( - container-height: - map.get( - ( - 0: 36px, - -1: 32px, - -2: 28px, - -3: 24px, - ), - $scale - ) - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_icon-button.scss b/src/material/core/tokens/m2/mdc/_icon-button.scss deleted file mode 100644 index 4c26783ed04c..000000000000 --- a/src/material/core/tokens/m2/mdc/_icon-button.scss +++ /dev/null @@ -1,91 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, icon-button); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // MDC's icon size applied to svg and img elements inside the component - icon-size: 24px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // State layer is unused - focus-icon-color: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - hover-icon-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - pressed-icon-color: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - focus-ring-color: null, - focus-ring-offset: null, - - // We use a color with an opacity to show the disabled state, - // instead of applying it to the entire button. - disabled-icon-opacity: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - - @return ( - icon-color: inherit, - disabled-icon-color: if($is-dark, rgba(#fff, 0.5), rgba(#000, 0.38)), - ); -} - -// Generates the mapping for the properties that change based on the button palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - @return ( - icon-color: inspection.get-theme-color($theme, $palette-name) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: theming.clamp-density(inspection.get-theme-density($theme), -5); - - @return ( - // The diameter of the checkbox's ripple. - state-layer-size: map.get(( - 0: 48px, - -1: 44px, - -2: 40px, - -3: 36px, - -4: 32px, - -5: 28px, - ), $scale) - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_list.scss b/src/material/core/tokens/m2/mdc/_list.scss deleted file mode 100644 index 1a6916ae428a..000000000000 --- a/src/material/core/tokens/m2/mdc/_list.scss +++ /dev/null @@ -1,219 +0,0 @@ -@use 'sass:map'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, list); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // Border radius of list items. - list-item-container-shape: 0, - // Border radius of the list item's leading avatar. - list-item-leading-avatar-shape: 50%, - // Background color of list items. - list-item-container-color: transparent, - // Background color of list items when selected. - list-item-selected-container-color: transparent, - // Background color of the list item's leading avatar. - list-item-leading-avatar-color: transparent, - // Height & width of the list item's leading icon. - list-item-leading-icon-size: 24px, - // Height & width of the list item's leading avatar. - list-item-leading-avatar-size: 40px, - // Height & width of the list item's trailing icon. - list-item-trailing-icon-size: 24px, - // Color of the list item's overlay when the item is disabled. - list-item-disabled-state-layer-color: transparent, - // Opacity of the list item's overlay when the item is disabled. - list-item-disabled-state-layer-opacity: 0, - // Opacity of the list item's primary & supporting text when the item is disabled. - list-item-disabled-label-text-opacity: 0.38, - // Opacity of the list item's leading icon when the item is disabled. - list-item-disabled-leading-icon-opacity: 0.38, - // Opacity of the list item's trailing icon when the item is disabled. - list-item-disabled-trailing-icon-opacity: 0.38, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // Overline not implemented in Angular Material. - // TODO(mmalerba): Consider implementing in the future. - list-item-overline-color: null, - list-item-overline-font: null, - list-item-overline-line-height: null, - list-item-overline-size: null, - list-item-overline-tracking: null, - list-item-overline-weight: null, - // Leading video not implemented in Angular Material. - // TODO(mmalerba): Consider implementing in the future. - list-item-leading-video-shape: null, - list-item-leading-video-width: null, - list-item-leading-video-height: null, - // Leading image not implemented in Angular Material. - // TODO(mmalerba): Consider implementing in the future. - list-item-leading-image-width: null, - list-item-leading-image-height: null, - list-item-leading-image-shape: null, - // List divider is not implemented in Angular Material. - // TODO(mmalerba): Maybe mat-divider should be based on these tokens? - divider-color: null, - divider-height: null, - // Redundant since it is always overridden by one- two- or three- line tokens, omitted to save - // bytes. - list-item-container-height: null, - // MDC does not seem to emit any CSS variables for these tokens, may be use in the future. - // TODO(mmalerba): Discuss with MDC if these should be added. - list-item-container-elevation: null, - list-item-leading-avatar-label-color: null, - list-item-leading-avatar-label-font: null, - list-item-leading-avatar-label-line-height: null, - list-item-leading-avatar-label-size: null, - list-item-leading-avatar-label-tracking: null, - list-item-leading-avatar-label-weight: null, - list-item-unselected-trailing-icon-color: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - $foreground-base: inspection.get-theme-color($theme, foreground, base); - $foreground-text: inspection.get-theme-color($theme, foreground, text); - $foreground-secondary-text: inspection.get-theme-color($theme, foreground, secondary-text); - $foreground-hint-text: inspection.get-theme-color($theme, foreground, hint-text); - $text-icon-on-background: sass-utils.safe-color-change( - $foreground-base, $alpha: if($is-dark, 0.5, 0.38)); - - @return ( - // Text color of the list item primary text. - list-item-label-text-color: $foreground-text, - // Text color of the list item supporting text. - list-item-supporting-text-color: $foreground-secondary-text, - // Color of the list item's leading icon. - list-item-leading-icon-color: $text-icon-on-background, - // Text color of the list item's trailing text. - list-item-trailing-supporting-text-color: $foreground-hint-text, - // Color of the list item's trailing icon. - list-item-trailing-icon-color: $text-icon-on-background, - // Color of the list item's trailing icon when the item is selected. - list-item-selected-trailing-icon-color: $text-icon-on-background, - // Text color of the list item's primary text when the item is disabled. - list-item-disabled-label-text-color: $foreground-base, - // Color of the list item's leading icon when the item is disabled. - list-item-disabled-leading-icon-color: $foreground-base, - // Color of the list item's trailing icon when the item is disabled. - list-item-disabled-trailing-icon-color: $foreground-base, - // Color of the list item's primary text when the item is being hovered. - list-item-hover-label-text-color: $foreground-text, - // Color of the list item's leading icon when the item is being hovered. - list-item-hover-leading-icon-color: $text-icon-on-background, - // Color of the list item's trailing icon when the item is being hovered. - list-item-hover-trailing-icon-color: $text-icon-on-background, - // Color of the list item's primary text when the item is focused. - list-item-focus-label-text-color: $foreground-text, - // Color of the list item's overlay when the item is hovered. - list-item-hover-state-layer-color: $foreground-base, - // Opacity of the list item's overlay when the item is hovered. - list-item-hover-state-layer-opacity: if($is-dark, 0.08, 0.04), - // Color of the list item's overlay when the item is focused. - list-item-focus-state-layer-color: $foreground-base, - // Opacity of the list item's overlay when the item is focused. - list-item-focus-state-layer-opacity: if($is-dark, 0.24, 0.12), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - // Font family of the list item primary text. - list-item-label-text-font: inspection.get-theme-typography($theme, body-1, font-family), - // Line height of the list item primary text. - list-item-label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height), - // Font size of the list item primary text. - list-item-label-text-size: inspection.get-theme-typography($theme, body-1, font-size), - // Letter spacing of the list item primary text. - list-item-label-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing), - // Font weight of the list item primary text. - list-item-label-text-weight: inspection.get-theme-typography($theme, body-1, font-weight), - // Font family of the list item supporting text. - list-item-supporting-text-font: inspection.get-theme-typography($theme, body-2, font-family), - // Line height of the list item supporting text. - list-item-supporting-text-line-height:inspection.get-theme-typography( - $theme, body-2, line-height), - // Font size of the list item supporting text. - list-item-supporting-text-size: inspection.get-theme-typography($theme, body-2, font-size), - // Letter spacing of the list item supporting text. - list-item-supporting-text-tracking: inspection.get-theme-typography( - $theme, body-2, letter-spacing), - // Font weight of the list item supporting text. - list-item-supporting-text-weight: inspection.get-theme-typography($theme, body-2, font-weight), - // Font family of the list item's trailing text. - list-item-trailing-supporting-text-font: inspection.get-theme-typography( - $theme, caption, font-family), - // Line height of the list item's trailing text. - list-item-trailing-supporting-text-line-height: inspection.get-theme-typography( - $theme, caption, line-height), - // Font size of the list item's trailing text. - list-item-trailing-supporting-text-size: inspection.get-theme-typography( - $theme, caption, font-size), - // Letter spacing color of the list item's trailing text. - list-item-trailing-supporting-text-tracking: inspection.get-theme-typography( - $theme, caption, letter-spacing), - // Font weight of the list item's trailing text. - list-item-trailing-supporting-text-weight: inspection.get-theme-typography( - $theme, caption, font-weight), - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: inspection.get-theme-density($theme); - - @return ( - // Height of one line list items. - list-item-one-line-container-height: map.get(( - 0: 48px, - -1: 44px, - -2: 40px, - -3: 36px, - -4: 32px, - -5: 24px, - ), $scale), - // Height of two line list items. - list-item-two-line-container-height: map.get(( - 0: 64px, - -1: 60px, - -2: 56px, - -3: 52px, - -4: 48px, - -5: 48px, - ), $scale), - // Height of three line list items. - list-item-three-line-container-height: map.get(( - 0: 88px, - -1: 84px, - -2: 80px, - -3: 76px, - -4: 72px, - -5: 56px, - ), $scale), - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_outlined-card.scss b/src/material/core/tokens/m2/mdc/_outlined-card.scss deleted file mode 100644 index 5e18cf543711..000000000000 --- a/src/material/core/tokens/m2/mdc/_outlined-card.scss +++ /dev/null @@ -1,85 +0,0 @@ -@use '../../../style/elevation'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-card); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // The border-radius of the card. - container-shape: 4px, - // The thickness of the card's border. - outline-width: 1px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // Angular Material's card is not an interactive element, and therefore does not support states. - disabled-container-elevation: null, - disabled-outline-color: null, - disabled-outline-opacity: null, - dragged-container-elevation: null, - dragged-outline-color: null, - dragged-state-layer-color: null, - dragged-state-layer-opacity: null, - focus-container-elevation: null, - focus-outline-color: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - hover-container-elevation: null, - hover-outline-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - pressed-container-elevation: null, - pressed-outline-color: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - container-shadow-color: null, - // Angular Material does not currently support surface tint. - container-surface-tint-layer-color: null, - // MDC does not seem to use these tokens. - icon-color: null, - icon-size: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $elevation: inspection.get-theme-color($theme, foreground, elevation); - - @return ( - // The background color of the card. - container-color: inspection.get-theme-color($theme, background, card), - // The border color of the card. - outline-color: rgba(inspection.get-theme-color($theme, foreground, base), 0.12), - container-elevation: elevation.get-box-shadow(0), - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_snack-bar.scss b/src/material/core/tokens/m2/mdc/_snack-bar.scss deleted file mode 100644 index 3577b96dde30..000000000000 --- a/src/material/core/tokens/m2/mdc/_snack-bar.scss +++ /dev/null @@ -1,93 +0,0 @@ -@use 'sass:meta'; -@use 'sass:color'; -@use '../../../theming/inspection'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, snackbar); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - // Sets the snack bar border radius. - container-shape: 4px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - // Removed to match the previous appearance. - supporting-text-tracking: null, - // Excluded because they target the wrong DOM node. See the - // comments on the elevation of `.mat-mdc-snack-bar-container`. - container-elevation: null, - container-shadow-color: null, - action-focus-label-text-color: null, - action-focus-state-layer-color: null, - action-focus-state-layer-opacity: null, - action-hover-label-text-color: null, - action-hover-state-layer-color: null, - action-hover-state-layer-opacity: null, - action-label-text-color: null, - action-label-text-font: null, - action-label-text-size: null, - action-label-text-tracking: null, - action-label-text-weight: null, - action-pressed-label-text-color: null, - action-pressed-state-layer-color: null, - action-pressed-state-layer-opacity: null, - icon-color: null, - icon-focus-icon-color: null, - icon-focus-state-layer-color: null, - icon-focus-state-layer-opacity: null, - icon-hover-icon-color: null, - icon-hover-state-layer-color: null, - icon-hover-state-layer-opacity: null, - icon-pressed-icon-color: null, - icon-pressed-state-layer-color: null, - icon-pressed-state-layer-opacity: null, - icon-size: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - $surface: inspection.get-theme-color($theme, background, card); - - @return ( - container-color: if(meta.type-of($surface) == color, - color.mix(if($is-dark, #fff, #000), $surface, 80%), $surface), - supporting-text-color: if(meta.type-of($surface) == color, rgba($surface, 0.87), $surface) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - supporting-text-font: inspection.get-theme-typography($theme, body-2, font-family), - supporting-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), - supporting-text-size: inspection.get-theme-typography($theme, body-2, font-size), - supporting-text-weight: inspection.get-theme-typography($theme, body-2, font-weight), - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - @return (); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_switch.scss b/src/material/core/tokens/m2/mdc/_switch.scss deleted file mode 100644 index eb14b769c08a..000000000000 --- a/src/material/core/tokens/m2/mdc/_switch.scss +++ /dev/null @@ -1,192 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, switch); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. - -@function get-unthemable-tokens() { - @return ( - // Opacity of handle when disabled. - disabled-handle-opacity: null, - // Opacity of icon when disabled and selected. - disabled-selected-icon-opacity: 0.38, - // Opacity of track when disabled. - disabled-track-opacity: 0.12, - // Opacity of icon when disabled and unselected. - disabled-unselected-icon-opacity: 0.38, - // Height of handle. - handle-height: 20px, - // Border radius of handle. - handle-shape: 10px, - // Width of handle. - handle-width: 20px, - // Width and height of icon when selected. - selected-icon-size: 18px, - // Height of track. - track-height: 14px, - // Border radius of track. - track-shape: 7px, - // Width of track. - track-width: 36px, - // Width and height of icon when unselected. - unselected-icon-size: 18px, - // Opacity of ripple when selected and focused. - selected-focus-state-layer-opacity: 0.12, - // Opacity of ripple when selected and on hover. - selected-hover-state-layer-opacity: 0.04, - // Opacity of ripple when selected and pressed. - selected-pressed-state-layer-opacity: 0.1, - // Opacity of ripple when unselected and focused. - unselected-focus-state-layer-opacity: 0.12, - // Opacity of ripple when unselected and on hover. - unselected-hover-state-layer-opacity: 0.04, - // Opacity of ripple when unselected and pressed. - unselected-pressed-state-layer-opacity: 0.1, - - // Unused tokens - handle-elevation: null, - handle-shadow-color: null, - disabled-handle-elevation: null, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - $on-surface: if($is-dark, #f5f5f5, #424242); - $hairline: if($is-dark, #616161, #e0e0e0); - $on-surface-variant: if($is-dark, #9e9e9e, #616161); - $on-surface-state-content: if($is-dark, #fafafa, #212121); - $disabled-handle-color: if($is-dark, #000, #424242); - $icon-color: if($is-dark, #212121, #fff); - - // The default for tokens that rely on the theme will use the primary palette - $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary); - - @return map.merge( - $theme-color-tokens, - ( - // Color of handle when selected while disabled. - disabled-selected-handle-color: $disabled-handle-color, - // Color of handle when selected while disabled. - disabled-selected-icon-color: $icon-color, - // Color of track when selected while disabled. - disabled-selected-track-color: $on-surface, - // Color of handle when unselected while disabled. - disabled-unselected-handle-color: $disabled-handle-color, - // Color of icon when unselected while disabled. - disabled-unselected-icon-color: $icon-color, - // Color of track when disabled. - disabled-unselected-track-color: $on-surface, - // TODO(crisbeto): `handle-surface-color` was hardcoded to `var(--mdc-surface-color, #fff)` - // which made it basically hardcoded to #fff. Should it be based on the theme? - // Color of slide-toggle handle's surface. - handle-surface-color: #fff, - // Color of icon (ex. checkmark) when selected - selected-icon-color: $icon-color, - // Color of handle when unselected and focused. - unselected-focus-handle-color: $on-surface-state-content, - // Color of ripple when unselected and focused. - unselected-focus-state-layer-color: $on-surface, - // Color of track when unselected and focused. - unselected-focus-track-color: $hairline, - // Color of handle when unselected. - unselected-handle-color: $on-surface-variant, - // Color of handle when unselected and on hover. - unselected-hover-handle-color: $on-surface-state-content, - // Color of ripple when unselected and on hover. - unselected-hover-state-layer-color: $on-surface, - // Color of track when unselected and on hover. - unselected-hover-track-color: $hairline, - // Color of icon color when unselected. - unselected-icon-color: $icon-color, - // Color of handle when unselected and pressed. - unselected-pressed-handle-color: $on-surface-state-content, - // Color of ripple when unselected and pressed. - unselected-pressed-state-layer-color: $on-surface, - // Color of track when unselected and pressed. - unselected-pressed-track-color: $hairline, - // Color of track when selected. - unselected-track-color: $hairline, - // Elevation level for handle. - handle-elevation-shadow: elevation.get-box-shadow(1), - // Elevation level for handle when disabled. - disabled-handle-elevation-shadow: elevation.get-box-shadow(0), - ) - ); -} - -// Generates the mapping for the properties that change based on the slide toggle color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $is-dark: inspection.get-theme-type($theme) == dark; - $palette-color: inspection.get-theme-color($theme, $palette-name, if($is-dark, 300, 600)); - $state-content: inspection.get-theme-color($theme, $palette-name, if($is-dark, 200, 900)); - $inverse: inspection.get-theme-color($theme, $palette-name, if($is-dark, 600, 300)); - - @return ( - // Color of ripple when selected and focused. - selected-focus-state-layer-color: $palette-color, - // Color of handle when selected - selected-handle-color: $palette-color, - // Color of ripple when selected and on hover. - selected-hover-state-layer-color: $palette-color, - // Color of ripple when selected and pressed. - selected-pressed-state-layer-color: $palette-color, - // Color of handle when selected and focused. - selected-focus-handle-color: $state-content, - // Color of handle when selected and on hover. - selected-hover-handle-color: $state-content, - // Color of handle when selected and pressed. - selected-pressed-handle-color: $state-content, - // Color of track when selected and focused. - selected-focus-track-color: $inverse, - // Color of track when selected and on hover. - selected-hover-track-color: $inverse, - /// Color of track when selected and pressed. - selected-pressed-track-color: $inverse, - // Color of track when selected. - selected-track-color: $inverse, - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return (); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return ( - // The diameter of the handle ripple. - state-layer-size: map.get(( - 0: 40px, - -1: 36px, - -2: 32px, - -3: 28px, - ), $scale) - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m2/mdc/_text-button.scss b/src/material/core/tokens/m2/mdc/_text-button.scss deleted file mode 100644 index 265ed9d246e3..000000000000 --- a/src/material/core/tokens/m2/mdc/_text-button.scss +++ /dev/null @@ -1,98 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, text-button); - -// Tokens that can't be configured through Angular Material's current theming API, -// but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. -@function get-unthemable-tokens() { - @return ( - container-shape: 4px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - hover-label-text-color: null, - focus-label-text-color: null, - pressed-label-text-color: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - with-icon-disabled-icon-color: null, - with-icon-focus-icon-color: null, - with-icon-hover-icon-color: null, - with-icon-icon-color: null, - with-icon-icon-size: null, - with-icon-pressed-icon-color: null, - focus-ring-color: null, - focus-ring-offset: null, - keep-touch-target: false, - ); -} - -// Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - $is-dark: inspection.get-theme-type($theme) == dark; - - @return ( - label-text-color: inspection.get-theme-color($theme, foreground, text, 1), - disabled-label-text-color: inspection.get-theme-color($theme, foreground, disabled-button, - if($is-dark, 0.5, 0.38)), - ); -} - -// Generates the mapping for the properties that change based on the button palette color. -@function private-get-color-palette-color-tokens($theme, $palette-name) { - $palette: map.get($theme, $palette-name); - - @return ( - label-text-color: inspection.get-theme-color($theme, $palette-name) - ); -} - -// Tokens that can be configured through Angular Material's typography theming API. -@function get-typography-tokens($theme) { - @return ( - label-text-font: inspection.get-theme-typography($theme, button, font-family), - label-text-size: inspection.get-theme-typography($theme, button, font-size), - label-text-tracking: inspection.get-theme-typography($theme, button, letter-spacing), - label-text-weight: inspection.get-theme-typography($theme, button, font-weight), - label-text-transform: none, - ); -} - -// Tokens that can be configured through Angular Material's density theming API. -@function get-density-tokens($theme) { - $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); - - @return ( - container-height: map.get(( - 0: 36px, - -1: 32px, - -2: 28px, - -3: 24px, - ), $scale), - ); -} - -// Combines the tokens generated by the above functions into a single map with placeholder values. -// This is used to create token slots. -@function get-token-slots() { - @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) - ); -} diff --git a/src/material/core/tokens/m3/BUILD.bazel b/src/material/core/tokens/m3/BUILD.bazel new file mode 100644 index 000000000000..d9013d84d46c --- /dev/null +++ b/src/material/core/tokens/m3/BUILD.bazel @@ -0,0 +1,18 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "m3", + srcs = [ + "_index.scss", + "_md-ref-palette.scss", + "_md-ref-typeface.scss", + "_md-sys-color.scss", + "_md-sys-elevation.scss", + "_md-sys-motion.scss", + "_md-sys-shape.scss", + "_md-sys-state.scss", + "_md-sys-typescale.scss", + ], +) diff --git a/src/material/core/tokens/m3/definitions/README.md b/src/material/core/tokens/m3/README.md similarity index 100% rename from src/material/core/tokens/m3/definitions/README.md rename to src/material/core/tokens/m3/README.md diff --git a/src/material/core/tokens/m3/_index.scss b/src/material/core/tokens/m3/_index.scss index d7c8835c1586..1a4ff56056f6 100644 --- a/src/material/core/tokens/m3/_index.scss +++ b/src/material/core/tokens/m3/_index.scss @@ -1,165 +1,8 @@ -@use 'sass:meta'; -@use 'sass:map'; -@use './mat/app' as tokens-mat-app; -@use './mat/autocomplete' as tokens-mat-autocomplete; -@use './mat/badge' as tokens-mat-badge; -@use './mat/text-button' as tokens-mat-text-button; -@use './mat/protected-button' as tokens-mat-protected-button; -@use './mat/filled-button' as tokens-mat-filled-button; -@use './mat/outlined-button' as tokens-mat-outlined-button; -@use './mat/dialog' as tokens-mat-dialog; -@use './mat/bottom-sheet' as tokens-mat-bottom-sheet; -@use './mat/card' as tokens-mat-card; -@use './mat/chip' as tokens-mat-chip; -@use './mat/datepicker' as tokens-mat-datepicker; -@use './mat/divider' as tokens-mat-divider; -@use './mat/expansion' as tokens-mat-expansion; -@use './mat/fab' as tokens-mat-fab; -@use './mat/fab-small' as tokens-mat-fab-small; -@use './mat/form-field' as tokens-mat-form-field; -@use './mat/grid-list' as tokens-mat-grid-list; -@use './mat/icon' as tokens-mat-icon; -@use './mat/icon-button' as tokens-mat-icon-button; -@use './mat/list' as tokens-mat-list; -@use './mat/menu' as tokens-mat-menu; -@use './mat/option' as tokens-mat-option; -@use './mat/optgroup' as tokens-mat-optgroup; -@use './mat/paginator' as tokens-mat-paginator; -@use './mat/checkbox' as tokens-mat-checkbox; -@use './mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox; -@use './mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox; -@use './mat/radio' as tokens-mat-radio; -@use './mat/ripple' as tokens-mat-ripple; -@use './mat/select' as tokens-mat-select; -@use './mat/sidenav' as tokens-mat-sidenav; -@use './mat/slider' as tokens-mat-slider; -@use './mat/switch' as tokens-mat-switch; -@use './mat/snack-bar' as tokens-mat-snack-bar; -@use './mat/sort' as tokens-mat-sort; -@use './mat/standard-button-toggle' as tokens-mat-button-toggle; -@use './mat/stepper' as tokens-mat-stepper; -@use './mat/tab-header' as tokens-mat-tab-header; -@use './mat/table' as tokens-mat-table; -@use './mat/toolbar' as tokens-mat-toolbar; -@use './mat/tree' as tokens-mat-tree; -@use './mat/timepicker' as tokens-mat-timepicker; -@use './mat/tonal-button' as tokens-mat-tonal-button; -@use './mdc/checkbox' as tokens-mdc-checkbox; -@use './mdc/text-button' as tokens-mdc-text-button; -@use './mdc/protected-button' as tokens-mdc-protected-button; -@use './mdc/filled-button' as tokens-mdc-filled-button; -@use './mdc/outlined-button' as tokens-mdc-outlined-button; -@use './mdc/chip' as tokens-mdc-chip; -@use './mdc/circular-progress' as tokens-mdc-circular-progress; -@use './mdc/dialog' as tokens-mdc-dialog; -@use './mdc/elevated-card' as tokens-mdc-elevated-card; -@use './mdc/extended-fab' as tokens-mdc-extended-fab; -@use './mdc/fab' as tokens-mdc-fab; -@use './mdc/fab-small' as tokens-mdc-fab-small; -@use './mdc/filled-text-field' as tokens-mdc-filled-text-field; -@use './mdc/icon-button' as tokens-mdc-icon-button; -@use './mdc/linear-progress' as tokens-mdc-linear-progress; -@use './mdc/list' as tokens-mdc-list; -@use './mdc/outlined-card' as tokens-mdc-outlined-card; -@use './mdc/outlined-text-field' as tokens-mdc-outlined-text-field; -@use './mdc/plain-tooltip' as tokens-mdc-plain-tooltip; -@use './mdc/radio' as tokens-mdc-radio; -@use './mdc/slider' as tokens-mdc-slider; -@use './mdc/snack-bar' as tokens-mdc-snack-bar; -@use './mdc/switch' as tokens-mdc-switch; -@use './mdc/secondary-navigation-tab' as tokens-mdc-secondary-navigation-tab; -@use './mdc/tab-indicator' as tokens-mdc-tab-indicator; - -$_module-names: ( - // Custom tokens - tokens-mat-app, - tokens-mat-autocomplete, - tokens-mat-badge, - tokens-mat-bottom-sheet, - tokens-mat-button-toggle, - tokens-mat-card, - tokens-mat-chip, - tokens-mat-datepicker, - tokens-mat-dialog, - tokens-mat-divider, - tokens-mat-expansion, - tokens-mat-fab, - tokens-mat-fab-small, - tokens-mat-filled-button, - tokens-mat-tonal-button, - tokens-mat-form-field, - tokens-mat-grid-list, - tokens-mat-icon-button, - tokens-mat-icon, - tokens-mat-menu, - tokens-mat-optgroup, - tokens-mat-option, - tokens-mat-outlined-button, - tokens-mat-paginator, - tokens-mat-checkbox, - tokens-mat-full-pseudo-checkbox, - tokens-mat-list, - tokens-mat-minimal-pseudo-checkbox, - tokens-mat-protected-button, - tokens-mat-radio, - tokens-mat-ripple, - tokens-mat-select, - tokens-mat-sidenav, - tokens-mat-slider, - tokens-mat-switch, - tokens-mat-snack-bar, - tokens-mat-sort, - tokens-mat-stepper, - tokens-mat-tab-header, - tokens-mat-table, - tokens-mat-text-button, - tokens-mat-toolbar, - tokens-mat-tree, - tokens-mat-timepicker, - // MDC tokens - tokens-mdc-checkbox, - tokens-mdc-chip, - tokens-mdc-text-button, - tokens-mdc-protected-button, - tokens-mdc-filled-button, - tokens-mdc-outlined-button, - tokens-mdc-chip, - tokens-mdc-circular-progress, - tokens-mdc-dialog, - tokens-mdc-elevated-card, - tokens-mdc-extended-fab, - tokens-mdc-fab, - tokens-mdc-fab-small, - tokens-mdc-filled-text-field, - tokens-mdc-icon-button, - tokens-mdc-linear-progress, - tokens-mdc-list, - tokens-mdc-outlined-card, - tokens-mdc-outlined-text-field, - tokens-mdc-plain-tooltip, - tokens-mdc-radio, - tokens-mdc-slider, - tokens-mdc-snack-bar, - tokens-mdc-switch, - tokens-mdc-secondary-navigation-tab, - tokens-mdc-tab-indicator -); - -/// Gets the full set of M3 tokens for the given theme object. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} Full set of M3 tokens -@function get-m3-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (); - - @each $module-name in $_module-names { - $fn: meta.get-function( - $name: 'get-tokens', - $module: $module-name, - ); - $tokens: map.merge($tokens, meta.call($fn, $systems, $exclude-hardcoded, $token-slots)); - } - - @return $tokens; -} +@forward './md-ref-palette' as md-ref-palette-*; +@forward './md-ref-typeface' as md-ref-typeface-*; +@forward './md-sys-color' as md-sys-color-*; +@forward './md-sys-elevation' as md-sys-elevation-*; +@forward './md-sys-motion' as md-sys-motion-*; +@forward './md-sys-shape' as md-sys-shape-*; +@forward './md-sys-state' as md-sys-state-*; +@forward './md-sys-typescale' as md-sys-typescale-*; diff --git a/src/material/core/tokens/m3/definitions/_md-ref-palette.scss b/src/material/core/tokens/m3/_md-ref-palette.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-ref-palette.scss rename to src/material/core/tokens/m3/_md-ref-palette.scss diff --git a/src/material/core/tokens/m3/definitions/_md-ref-typeface.scss b/src/material/core/tokens/m3/_md-ref-typeface.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-ref-typeface.scss rename to src/material/core/tokens/m3/_md-ref-typeface.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-color.scss b/src/material/core/tokens/m3/_md-sys-color.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-color.scss rename to src/material/core/tokens/m3/_md-sys-color.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-elevation.scss b/src/material/core/tokens/m3/_md-sys-elevation.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-elevation.scss rename to src/material/core/tokens/m3/_md-sys-elevation.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-motion.scss b/src/material/core/tokens/m3/_md-sys-motion.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-motion.scss rename to src/material/core/tokens/m3/_md-sys-motion.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-shape.scss b/src/material/core/tokens/m3/_md-sys-shape.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-shape.scss rename to src/material/core/tokens/m3/_md-sys-shape.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-state.scss b/src/material/core/tokens/m3/_md-sys-state.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-state.scss rename to src/material/core/tokens/m3/_md-sys-state.scss diff --git a/src/material/core/tokens/m3/definitions/_md-sys-typescale.scss b/src/material/core/tokens/m3/_md-sys-typescale.scss similarity index 100% rename from src/material/core/tokens/m3/definitions/_md-sys-typescale.scss rename to src/material/core/tokens/m3/_md-sys-typescale.scss diff --git a/src/material/core/tokens/m3/definitions/_index.scss b/src/material/core/tokens/m3/definitions/_index.scss deleted file mode 100644 index 60eb8adf886f..000000000000 --- a/src/material/core/tokens/m3/definitions/_index.scss +++ /dev/null @@ -1,94 +0,0 @@ -@forward './md-comp-checkbox' as md-comp-checkbox-*; -@forward './md-comp-circular-progress-indicator' as md-comp-circular-progress-indicator-*; -@forward './md-comp-data-table' as md-comp-data-table-*; -@forward './md-comp-dialog' as md-comp-dialog-*; -@forward './md-comp-elevated-button' as md-comp-elevated-button-*; -@forward './md-comp-elevated-card' as md-comp-elevated-card-*; -@forward './md-comp-extended-fab-primary' as md-comp-extended-fab-primary-*; -@forward './md-comp-extended-fab-secondary' as md-comp-extended-fab-secondary-*; -@forward './md-comp-extended-fab-tertiary' as md-comp-extended-fab-tertiary-*; -@forward './md-comp-fab-primary-small' as md-comp-fab-primary-small-*; -@forward './md-comp-fab-primary' as md-comp-fab-primary-*; -@forward './md-comp-fab-secondary-small' as md-comp-fab-secondary-small-*; -@forward './md-comp-fab-secondary' as md-comp-fab-secondary-*; -@forward './md-comp-fab-tertiary-small' as md-comp-fab-tertiary-small-*; -@forward './md-comp-fab-tertiary' as md-comp-fab-tertiary-*; -@forward './md-comp-filled-button' as md-comp-filled-button-*; -@forward './md-comp-filled-tonal-button' as md-comp-filled-tonal-button-*; -@forward './md-comp-filled-card' as md-comp-filled-card-*; -@forward './md-comp-filled-icon-button' as md-comp-filled-icon-button-*; -@forward './md-comp-filled-text-field' as md-comp-filled-text-field-*; -@forward './md-comp-icon-button' as md-comp-icon-button-*; -@forward './md-comp-linear-progress-indicator' as md-comp-linear-progress-indicator-*; -@forward './md-comp-list' as md-comp-list-*; -@forward './md-comp-outlined-button' as md-comp-outlined-button-*; -@forward './md-comp-outlined-card' as md-comp-outlined-card-*; -@forward './md-comp-outlined-icon-button' as md-comp-outlined-icon-button-*; -@forward './md-comp-outlined-text-field' as md-comp-outlined-text-field-*; -@forward './md-comp-plain-tooltip' as md-comp-plain-tooltip-*; -@forward './md-comp-radio-button' as md-comp-radio-button-*; -@forward './md-comp-secondary-navigation-tab' as md-comp-secondary-navigation-tab-*; -@forward './md-comp-slider' as md-comp-slider-*; -@forward './md-comp-snackbar' as md-comp-snackbar-*; -@forward './md-comp-switch' as md-comp-switch-*; -@forward './md-comp-text-button' as md-comp-text-button-*; -@forward './md-ref-palette' as md-ref-palette-*; -@forward './md-ref-typeface' as md-ref-typeface-*; -@forward './md-sys-color' as md-sys-color-*; -@forward './md-sys-elevation' as md-sys-elevation-*; -@forward './md-sys-motion' as md-sys-motion-*; -@forward './md-sys-shape' as md-sys-shape-*; -@forward './md-sys-state' as md-sys-state-*; -@forward './md-sys-typescale' as md-sys-typescale-*; - -// Tokens that are in the spec, but are currently unused. -// @forward './unused/md-comp-assist-chip' as md-comp-assist-chip-*; -// @forward './unused/md-comp-badge' as md-comp-badge-*; -// @forward './unused/md-comp-banner' as md-comp-banner-*; -// @forward './unused/md-comp-bottom-app-bar' as md-comp-bottom-app-bar-*; -// @forward './unused/md-comp-carousel-item' as md-comp-carousel-item-*; -// @forward './unused/md-comp-date-input-modal' as md-comp-date-input-modal-*; -// @forward './unused/md-comp-date-picker-docked' as md-comp-date-picker-docked-*; -// @forward './unused/md-comp-date-picker-modal' as md-comp-date-picker-modal-*; -// @forward './unused/md-comp-divider' as md-comp-divider-*; -// @forward './unused/md-comp-extended-fab-branded' as md-comp-extended-fab-branded-*; -// @forward './unused/md-comp-extended-fab-surface' as md-comp-extended-fab-surface-*; -// @forward './unused/md-comp-fab-branded-large' as md-comp-fab-branded-large-*; -// @forward './unused/md-comp-fab-branded' as md-comp-fab-branded-*; -// @forward './unused/md-comp-fab-primary-large' as md-comp-fab-primary-large-*; -// @forward './unused/md-comp-fab-secondary-large' as md-comp-fab-secondary-large-*; -// @forward './unused/md-comp-fab-surface-large' as md-comp-fab-surface-large-*; -// @forward './unused/md-comp-fab-surface-small' as md-comp-fab-surface-small-*; -// @forward './unused/md-comp-fab-surface' as md-comp-fab-surface-*; -// @forward './unused/md-comp-fab-tertiary-large' as md-comp-fab-tertiary-large-*; -// @forward './unused/md-comp-filled-autocomplete' as md-comp-filled-autocomplete-*; -// @forward './unused/md-comp-filled-menu-button' as md-comp-filled-menu-button-*; -// @forward './unused/md-comp-filled-select' as md-comp-filled-select-*; -// @forward './unused/md-comp-filled-tonal-icon-button' as md-comp-filled-tonal-icon-button-*; -// @forward './unused/md-comp-filter-chip' as md-comp-filter-chip-*; -// @forward './unused/md-comp-full-screen-dialog' as md-comp-full-screen-dialog-*; -// @forward './unused/md-comp-input-chip' as md-comp-input-chip-*; -// @forward './unused/md-comp-menu' as md-comp-menu-*; -// @forward './unused/md-comp-navigation-bar' as md-comp-navigation-bar-*; -// @forward './unused/md-comp-navigation-drawer' as md-comp-navigation-drawer-*; -// @forward './unused/md-comp-navigation-rail' as md-comp-navigation-rail-*; -// @forward './unused/md-comp-outlined-autocomplete' as md-comp-outlined-autocomplete-*; -// @forward './unused/md-comp-outlined-menu-button' as md-comp-outlined-menu-button-*; -// @forward './unused/md-comp-outlined-segmented-button' as md-comp-outlined-segmented-button-*; -// @forward './unused/md-comp-outlined-select' as md-comp-outlined-select-*; -// @forward './unused/md-comp-primary-navigation-tab' as md-comp-primary-navigation-tab-*; -// @forward './unused/md-comp-rich-tooltip' as md-comp-rich-tooltip-*; -// @forward './unused/md-comp-scrim' as md-comp-scrim-*; -// @forward './unused/md-comp-search-bar' as md-comp-search-bar-*; -// @forward './unused/md-comp-search-view' as md-comp-search-view-*; -// @forward './unused/md-comp-sheet-bottom' as md-comp-sheet-bottom-*; -// @forward './unused/md-comp-sheet-floating' as md-comp-sheet-floating-*; -// @forward './unused/md-comp-sheet-side' as md-comp-sheet-side-*; -// @forward './unused/md-comp-standard-menu-button' as md-comp-standard-menu-button-*; -// @forward './unused/md-comp-suggestion-chip' as md-comp-suggestion-chip-*; -// @forward './unused/md-comp-time-input' as md-comp-time-input-*; -// @forward './unused/md-comp-time-picker' as md-comp-time-picker-*; -// @forward './unused/md-comp-top-app-bar-large' as md-comp-top-app-bar-large-*; -// @forward './unused/md-comp-top-app-bar-medium' as md-comp-top-app-bar-medium-*; -// @forward './unused/md-comp-top-app-bar-small-centered' as md-comp-top-app-bar-small-centered-*; -// @forward './unused/md-comp-top-app-bar-small' as md-comp-top-app-bar-small-*; diff --git a/src/material/core/tokens/m3/definitions/_md-comp-checkbox.scss b/src/material/core/tokens/m3/definitions/_md-comp-checkbox.scss deleted file mode 100644 index 96d079136c6e..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-checkbox.scss +++ /dev/null @@ -1,120 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-shape': if($exclude-hardcoded-values, null, 2px), - 'container-size': if($exclude-hardcoded-values, null, 18px), - 'error-focus-state-layer-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'error-hover-state-layer-color': map.get($deps, 'md-sys-color', 'error'), - 'error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'error-pressed-state-layer-color': map.get($deps, 'md-sys-color', 'error'), - 'error-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 18px), - 'selected-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'selected-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'selected-disabled-container-outline-width': - if($exclude-hardcoded-values, null, 0), - 'selected-disabled-icon-color': map.get($deps, 'md-sys-color', 'surface'), - 'selected-error-container-color': map.get($deps, 'md-sys-color', 'error'), - 'selected-error-focus-container-color': - map.get($deps, 'md-sys-color', 'error'), - 'selected-error-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-error'), - 'selected-error-hover-container-color': - map.get($deps, 'md-sys-color', 'error'), - 'selected-error-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-error'), - 'selected-error-icon-color': map.get($deps, 'md-sys-color', 'on-error'), - 'selected-error-pressed-container-color': - map.get($deps, 'md-sys-color', 'error'), - 'selected-error-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-error'), - 'selected-focus-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'selected-focus-outline-width': if($exclude-hardcoded-values, null, 0), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-hover-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'selected-hover-outline-width': if($exclude-hardcoded-values, null, 0), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'selected-outline-width': if($exclude-hardcoded-values, null, 0), - 'selected-pressed-container-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'selected-pressed-outline-width': if($exclude-hardcoded-values, null, 0), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'state-layer-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'state-layer-size': if($exclude-hardcoded-values, null, 40px), - 'unselected-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'unselected-disabled-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-disabled-outline-width': - if($exclude-hardcoded-values, null, 2px), - 'unselected-error-focus-outline-color': - map.get($deps, 'md-sys-color', 'error'), - 'unselected-error-hover-outline-color': - map.get($deps, 'md-sys-color', 'error'), - 'unselected-error-outline-color': map.get($deps, 'md-sys-color', 'error'), - 'unselected-error-pressed-outline-color': - map.get($deps, 'md-sys-color', 'error'), - 'unselected-focus-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-outline-width': if($exclude-hardcoded-values, null, 2px), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-outline-width': if($exclude-hardcoded-values, null, 2px), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-outline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-outline-width': if($exclude-hardcoded-values, null, 2px), - 'unselected-pressed-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-outline-width': if($exclude-hardcoded-values, null, 2px), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-circular-progress-indicator.scss b/src/material/core/tokens/m3/definitions/_md-comp-circular-progress-indicator.scss deleted file mode 100644 index 825cc0eed579..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-circular-progress-indicator.scss +++ /dev/null @@ -1,27 +0,0 @@ -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-indicator-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'active-indicator-width': if($exclude-hardcoded-values, null, 4px), - 'four-color-active-indicator-four-color': - map.get($deps, 'md-sys-color', 'tertiary-container'), - 'four-color-active-indicator-one-color': - map.get($deps, 'md-sys-color', 'primary'), - 'four-color-active-indicator-three-color': - map.get($deps, 'md-sys-color', 'tertiary'), - 'four-color-active-indicator-two-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'size': if($exclude-hardcoded-values, null, 48px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-data-table.scss b/src/material/core/tokens/m3/definitions/_md-comp-data-table.scss deleted file mode 100644 index 9c94d2c11791..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-data-table.scss +++ /dev/null @@ -1,90 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'footer-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'footer-container-height': if($exclude-hardcoded-values, null, 52px), - 'footer-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'footer-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'footer-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'footer-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'footer-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - 'footer-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'header-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'header-container-height': if($exclude-hardcoded-values, null, 56px), - 'header-headline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-headline-font': - map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'header-headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'header-headline-size': - map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'header-headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - 'header-headline-weight': - map.get($deps, 'md-sys-typescale', 'title-small-weight'), - 'header-hover-headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'header-hover-sorting-icon-button-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'row-item-container-height': if($exclude-hardcoded-values, null, 52px), - 'row-item-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'row-item-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'row-item-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'row-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'row-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'row-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'row-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - 'row-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'row-item-outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'row-item-outline-width': if($exclude-hardcoded-values, null, 1px), - 'row-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'row-item-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'row-item-selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'row-item-unselected-container-color': - map.get($deps, 'md-sys-color', 'surface'), - 'row-item-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'row-item-unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-dialog.scss b/src/material/core/tokens/m3/definitions/_md-comp-dialog.scss deleted file mode 100644 index a4dfe2511891..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-dialog.scss +++ /dev/null @@ -1,123 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'action-focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'action-hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'action-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'action-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'action-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'action-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.dialog.action.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'action-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'action-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'action-pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'action-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'headline-small-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'headline-small-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'headline-small-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'headline-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.dialog.headline.tracking cannot be represented in the "font" property - // shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'headline-small-weight') - map.get($deps, 'md-sys-typescale', 'headline-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'headline-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'headline-small-font') - ), - 'headline-weight': - map.get($deps, 'md-sys-typescale', 'headline-small-weight'), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.dialog.supporting-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - map.get($deps, 'md-sys-typescale', 'body-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-medium-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'secondary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-elevated-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-elevated-button.scss deleted file mode 100644 index 01bde1b9fc67..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-elevated-button.scss +++ /dev/null @@ -1,87 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.elevated-button.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-elevated-card.scss b/src/material/core/tokens/m3/definitions/_md-comp-elevated-card.scss deleted file mode 100644 index d5102433966c..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-elevated-card.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - $values: ( - 'container-color': map.get($deps, 'md-sys-color', 'surface-container-low'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.38), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'dragged-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); - - @return $values; -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-primary.scss b/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-primary.scss deleted file mode 100644 index 13283d811876..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-primary.scss +++ /dev/null @@ -1,90 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.extended-fab.primary.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-secondary.scss b/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-secondary.scss deleted file mode 100644 index 49423e715298..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-secondary.scss +++ /dev/null @@ -1,91 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.extended-fab.secondary.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-tertiary.scss b/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-tertiary.scss deleted file mode 100644 index ed4ca80d6ec3..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-extended-fab-tertiary.scss +++ /dev/null @@ -1,91 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'tertiary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.extended-fab.tertiary.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-primary-small.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-primary-small.scss deleted file mode 100644 index 878ac93431ca..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-primary-small.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-width': if($exclude-hardcoded-values, null, 40px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-primary.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-primary.scss deleted file mode 100644 index 77f4374530f4..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-primary.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-width': if($exclude-hardcoded-values, null, 56px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary-small.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary-small.scss deleted file mode 100644 index 06e2c466bf80..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary-small.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-width': if($exclude-hardcoded-values, null, 40px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary.scss deleted file mode 100644 index 9f2408254178..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-secondary.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-width': if($exclude-hardcoded-values, null, 56px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary-small.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary-small.scss deleted file mode 100644 index b1aef65be20b..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary-small.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'tertiary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-width': if($exclude-hardcoded-values, null, 40px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary.scss b/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary.scss deleted file mode 100644 index 0864030d5602..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-fab-tertiary.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'tertiary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-width': if($exclude-hardcoded-values, null, 56px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-filled-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-filled-button.scss deleted file mode 100644 index 33e6277ede92..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-filled-button.scss +++ /dev/null @@ -1,85 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-button.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-filled-card.scss b/src/material/core/tokens/m3/definitions/_md-comp-filled-card.scss deleted file mode 100644 index f0efd483581c..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-filled-card.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'disabled-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.38), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'dragged-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-filled-icon-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-filled-icon-button.scss deleted file mode 100644 index 1b036fecf747..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-filled-icon-button.scss +++ /dev/null @@ -1,73 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'container-size': if($exclude-hardcoded-values, null, 40px), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'selected-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'toggle-selected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'toggle-unselected-focus-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-hover-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'toggle-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'unselected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-filled-text-field.scss b/src/material/core/tokens/m3/definitions/_md-comp-filled-text-field.scss deleted file mode 100644 index 831804e3edc1..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-filled-text-field.scss +++ /dev/null @@ -1,189 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 1px), - 'caret-color': map.get($deps, 'md-sys-color', 'primary'), - 'container-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small-top'), - 'disabled-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-active-indicator-height': if($exclude-hardcoded-values, null, 1px), - 'disabled-active-indicator-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.04), - 'disabled-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-input-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-leading-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'disabled-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'error-active-indicator-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-active-indicator-color': - map.get($deps, 'md-sys-color', 'error'), - 'error-focus-caret-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-focus-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-focus-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-trailing-icon-color': map.get($deps, 'md-sys-color', 'error'), - 'error-hover-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-hover-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'error-hover-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-trailing-icon-color': map.get($deps, 'md-sys-color', 'error'), - 'focus-active-indicator-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-active-indicator-height': if($exclude-hardcoded-values, null, 2px), - 'focus-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-active-indicator-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-active-indicator-height': if($exclude-hardcoded-values, null, 1px), - 'hover-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'input-text-font': map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'input-text-placeholder-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-prefix-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-size': map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'input-text-suffix-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-text-field.input-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'input-text-weight': map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-text-field.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'label-text-weight': map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-text-field.supporting-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-filled-tonal-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-filled-tonal-button.scss deleted file mode 100644 index 0d457ed9428b..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-filled-tonal-button.scss +++ /dev/null @@ -1,95 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-tonal-button.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-icon-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-icon-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-icon-button.scss deleted file mode 100644 index e012646125e3..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-icon-button.scss +++ /dev/null @@ -1,64 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'disabled-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'selected-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'state-layer-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'state-layer-size': if($exclude-hardcoded-values, null, 40px), - 'unselected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-linear-progress-indicator.scss b/src/material/core/tokens/m3/definitions/_md-comp-linear-progress-indicator.scss deleted file mode 100644 index bc58692e1350..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-linear-progress-indicator.scss +++ /dev/null @@ -1,29 +0,0 @@ -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 4px), - 'active-indicator-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'four-color-active-indicator-four-color': - map.get($deps, 'md-sys-color', 'tertiary-container'), - 'four-color-active-indicator-one-color': - map.get($deps, 'md-sys-color', 'primary'), - 'four-color-active-indicator-three-color': - map.get($deps, 'md-sys-color', 'tertiary'), - 'four-color-active-indicator-two-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'track-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'track-height': if($exclude-hardcoded-values, null, 4px), - 'track-shape': map.get($deps, 'md-sys-shape', 'corner-none') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-list.scss b/src/material/core/tokens/m3/definitions/_md-comp-list.scss deleted file mode 100644 index 9de3bffe5e88..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-list.scss +++ /dev/null @@ -1,252 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'list-item-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'list-item-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'list-item-container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'list-item-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.3), - 'list-item-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'list-item-disabled-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-disabled-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'list-item-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'list-item-dragged-container-elevation': - map.get($deps, 'md-sys-elevation', 'level4'), - 'list-item-dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-dragged-leading-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'list-item-dragged-trailing-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-focus-leading-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'list-item-focus-trailing-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-hover-leading-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'list-item-hover-trailing-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.list.list-item.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'list-item-large-leading-video-height': - if($exclude-hardcoded-values, null, 69px), - 'list-item-leading-avatar-label-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'list-item-leading-avatar-label-font': - map.get($deps, 'md-sys-typescale', 'title-medium-font'), - 'list-item-leading-avatar-label-line-height': - map.get($deps, 'md-sys-typescale', 'title-medium-line-height'), - 'list-item-leading-avatar-label-size': - map.get($deps, 'md-sys-typescale', 'title-medium-size'), - 'list-item-leading-avatar-label-tracking': - map.get($deps, 'md-sys-typescale', 'title-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.list.list-item.leading-avatar-label.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'list-item-leading-avatar-label-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-medium-weight') - map.get($deps, 'md-sys-typescale', 'title-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-medium-font') - ), - 'list-item-leading-avatar-label-weight': - map.get($deps, 'md-sys-typescale', 'title-medium-weight'), - 'list-item-leading-avatar-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'list-item-leading-avatar-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'list-item-leading-avatar-size': if($exclude-hardcoded-values, null, 40px), - 'list-item-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-leading-icon-size': if($exclude-hardcoded-values, null, 18px), - 'list-item-leading-image-height': if($exclude-hardcoded-values, null, 56px), - 'list-item-leading-image-shape': - map.get($deps, 'md-sys-shape', 'corner-none'), - 'list-item-leading-image-width': if($exclude-hardcoded-values, null, 56px), - 'list-item-leading-video-shape': - map.get($deps, 'md-sys-shape', 'corner-none'), - 'list-item-leading-video-width': if($exclude-hardcoded-values, null, 100px), - 'list-item-one-line-container-height': - if($exclude-hardcoded-values, null, 56px), - 'list-item-overline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-overline-font': - map.get($deps, 'md-sys-typescale', 'label-small-font'), - 'list-item-overline-line-height': - map.get($deps, 'md-sys-typescale', 'label-small-line-height'), - 'list-item-overline-size': - map.get($deps, 'md-sys-typescale', 'label-small-size'), - 'list-item-overline-tracking': - map.get($deps, 'md-sys-typescale', 'label-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.list.list-item.overline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'list-item-overline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-small-weight') - map.get($deps, 'md-sys-typescale', 'label-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-small-font') - ), - 'list-item-overline-weight': - map.get($deps, 'md-sys-typescale', 'label-small-weight'), - 'list-item-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-pressed-leading-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'list-item-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'list-item-pressed-trailing-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-selected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'list-item-small-leading-video-height': - if($exclude-hardcoded-values, null, 56px), - 'list-item-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'list-item-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'list-item-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'list-item-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.list.list-item.supporting-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'list-item-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - map.get($deps, 'md-sys-typescale', 'body-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-medium-font') - ), - 'list-item-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'list-item-three-line-container-height': - if($exclude-hardcoded-values, null, 88px), - 'list-item-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-trailing-icon-size': if($exclude-hardcoded-values, null, 24px), - 'list-item-trailing-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'list-item-trailing-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'label-small-font'), - 'list-item-trailing-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-small-line-height'), - 'list-item-trailing-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'label-small-size'), - 'list-item-trailing-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.list.list-item.trailing-supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'list-item-trailing-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-small-weight') - map.get($deps, 'md-sys-typescale', 'label-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-small-font') - ), - 'list-item-trailing-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'label-small-weight'), - 'list-item-two-line-container-height': - if($exclude-hardcoded-values, null, 72px), - 'list-item-unselected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-outlined-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-outlined-button.scss deleted file mode 100644 index eba0a07a64a4..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-outlined-button.scss +++ /dev/null @@ -1,80 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-outline-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-button.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-outlined-card.scss b/src/material/core/tokens/m3/definitions/_md-comp-outlined-card.scss deleted file mode 100644 index c2b672ff4d7f..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-outlined-card.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'dragged-outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'dragged-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'pressed-outline-color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-outlined-icon-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-outlined-icon-button.scss deleted file mode 100644 index cb99cb528820..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-outlined-icon-button.scss +++ /dev/null @@ -1,73 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'container-size': if($exclude-hardcoded-values, null, 40px), - 'disabled-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-selected-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-selected-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'disabled-unselected-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-unselected-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'selected-container-color': - map.get($deps, 'md-sys-color', 'inverse-surface'), - 'selected-focus-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-hover-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-icon-color': map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'unselected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'unselected-outline-width': if($exclude-hardcoded-values, null, 1px), - 'unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-outlined-text-field.scss b/src/material/core/tokens/m3/definitions/_md-comp-outlined-text-field.scss deleted file mode 100644 index d09bbf9c9f92..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-outlined-text-field.scss +++ /dev/null @@ -1,171 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'caret-color': map.get($deps, 'md-sys-color', 'primary'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'disabled-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-input-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-leading-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-outline-width': if($exclude-hardcoded-values, null, 1px), - 'disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'disabled-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'error-focus-caret-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-focus-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-focus-outline-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-focus-trailing-icon-color': map.get($deps, 'md-sys-color', 'error'), - 'error-hover-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-hover-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'error-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'error-outline-color': map.get($deps, 'md-sys-color', 'error'), - 'error-supporting-text-color': map.get($deps, 'md-sys-color', 'error'), - 'error-trailing-icon-color': map.get($deps, 'md-sys-color', 'error'), - 'focus-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-outline-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-outline-width': if($exclude-hardcoded-values, null, 2px), - 'focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-outline-width': if($exclude-hardcoded-values, null, 1px), - 'hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'input-text-font': map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'input-text-placeholder-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-prefix-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-size': map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'input-text-suffix-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-text-field.input-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'input-text-weight': map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-text-field.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'label-text-weight': map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-text-field.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-plain-tooltip.scss b/src/material/core/tokens/m3/definitions/_md-comp-plain-tooltip.scss deleted file mode 100644 index d777adc14f10..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-plain-tooltip.scss +++ /dev/null @@ -1,51 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'inverse-surface'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.plain-tooltip.supporting-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-radio-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-radio-button.scss deleted file mode 100644 index 986a0040146b..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-radio-button.scss +++ /dev/null @@ -1,62 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'disabled-selected-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-selected-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-unselected-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-unselected-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'icon-size': if($exclude-hardcoded-values, null, 20px), - 'selected-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'state-layer-size': if($exclude-hardcoded-values, null, 40px), - 'unselected-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-secondary-navigation-tab.scss b/src/material/core/tokens/m3/definitions/_md-comp-secondary-navigation-tab.scss deleted file mode 100644 index 9c6bb7f2d4e5..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-secondary-navigation-tab.scss +++ /dev/null @@ -1,80 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 48px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'divider-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'divider-height': if($exclude-hardcoded-values, null, 1px), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'inactive-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.secondary-navigation-tab.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-small-weight') - map.get($deps, 'md-sys-typescale', 'title-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-small-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'title-small-weight'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-active-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 24px), - 'with-icon-inactive-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-surface') - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-slider.scss b/src/material/core/tokens/m3/definitions/_md-comp-slider.scss deleted file mode 100644 index 6b507a845938..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-slider.scss +++ /dev/null @@ -1,110 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-track-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-track-height': if($exclude-hardcoded-values, null, 4px), - 'active-track-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-active-track-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-active-track-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-handle-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-handle-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-handle-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-inactive-track-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-inactive-track-opacity': if($exclude-hardcoded-values, null, 0.12), - 'focus-handle-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'handle-color': map.get($deps, 'md-sys-color', 'primary'), - 'handle-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'handle-height': if($exclude-hardcoded-values, null, 20px), - 'handle-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'handle-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'handle-width': if($exclude-hardcoded-values, null, 20px), - 'hover-handle-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'inactive-track-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'inactive-track-height': if($exclude-hardcoded-values, null, 4px), - 'inactive-track-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'label-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'label-container-height': if($exclude-hardcoded-values, null, 28px), - 'label-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'label-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-medium-font'), - 'label-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-medium-line-height'), - 'label-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-medium-size'), - 'label-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.slider.label.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-medium-weight') - map.get($deps, 'md-sys-typescale', 'label-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-medium-font') - ), - 'label-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-medium-weight'), - 'pressed-handle-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'state-layer-size': if($exclude-hardcoded-values, null, 40px), - 'track-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'with-overlap-handle-outline-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'with-overlap-handle-outline-width': - if($exclude-hardcoded-values, null, 1px), - 'with-tick-marks-active-container-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'with-tick-marks-active-container-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-tick-marks-container-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'with-tick-marks-container-size': if($exclude-hardcoded-values, null, 2px), - 'with-tick-marks-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-tick-marks-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-tick-marks-inactive-container-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-tick-marks-inactive-container-opacity': - if($exclude-hardcoded-values, null, 0.38) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-snackbar.scss b/src/material/core/tokens/m3/definitions/_md-comp-snackbar.scss deleted file mode 100644 index 20e154d91efd..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-snackbar.scss +++ /dev/null @@ -1,125 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'action-focus-label-text-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'action-hover-label-text-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'action-label-text-color': map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'action-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'action-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'action-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.snackbar.action.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'action-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'action-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'action-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-primary'), - 'action-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'container-color': map.get($deps, 'md-sys-color', 'inverse-surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'icon-color': map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-focus-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'icon-hover-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-pressed-icon-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'icon-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'inverse-on-surface'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.snackbar.supporting-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - map.get($deps, 'md-sys-typescale', 'body-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-medium-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'with-single-line-container-height': - if($exclude-hardcoded-values, null, 48px), - 'with-two-lines-container-height': if($exclude-hardcoded-values, null, 68px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-switch.scss b/src/material/core/tokens/m3/definitions/_md-comp-switch.scss deleted file mode 100644 index 26e8b58cb587..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-switch.scss +++ /dev/null @@ -1,130 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'disabled-selected-handle-color': map.get($deps, 'md-sys-color', 'surface'), - 'disabled-selected-handle-opacity': if($exclude-hardcoded-values, null, 1), - 'disabled-selected-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-selected-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-selected-track-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-track-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-unselected-handle-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-unselected-handle-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'disabled-unselected-icon-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'disabled-unselected-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'disabled-unselected-track-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'disabled-unselected-track-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'handle-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'pressed-handle-height': if($exclude-hardcoded-values, null, 28px), - 'pressed-handle-width': if($exclude-hardcoded-values, null, 28px), - 'selected-focus-handle-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'selected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-focus-track-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-handle-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'selected-handle-height': if($exclude-hardcoded-values, null, 24px), - 'selected-handle-width': if($exclude-hardcoded-values, null, 24px), - 'selected-hover-handle-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'selected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-hover-track-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-icon-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'selected-icon-size': if($exclude-hardcoded-values, null, 16px), - 'selected-pressed-handle-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'selected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'selected-pressed-track-color': map.get($deps, 'md-sys-color', 'primary'), - 'selected-track-color': map.get($deps, 'md-sys-color', 'primary'), - 'state-layer-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'state-layer-size': if($exclude-hardcoded-values, null, 40px), - 'track-height': if($exclude-hardcoded-values, null, 32px), - 'track-outline-width': if($exclude-hardcoded-values, null, 2px), - 'track-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'track-width': if($exclude-hardcoded-values, null, 52px), - 'unselected-focus-handle-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-icon-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-focus-track-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-focus-track-outline-color': - map.get($deps, 'md-sys-color', 'outline'), - 'unselected-handle-color': map.get($deps, 'md-sys-color', 'outline'), - 'unselected-handle-height': if($exclude-hardcoded-values, null, 16px), - 'unselected-handle-width': if($exclude-hardcoded-values, null, 16px), - 'unselected-hover-handle-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-icon-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-hover-track-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-hover-track-outline-color': - map.get($deps, 'md-sys-color', 'outline'), - 'unselected-icon-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-icon-size': if($exclude-hardcoded-values, null, 16px), - 'unselected-pressed-handle-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'unselected-pressed-track-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-pressed-track-outline-color': - map.get($deps, 'md-sys-color', 'outline'), - 'unselected-track-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'unselected-track-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'with-icon-handle-height': if($exclude-hardcoded-values, null, 24px), - 'with-icon-handle-width': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/_md-comp-text-button.scss b/src/material/core/tokens/m3/definitions/_md-comp-text-button.scss deleted file mode 100644 index 6795035b9369..000000000000 --- a/src/material/core/tokens/m3/definitions/_md-comp-text-button.scss +++ /dev/null @@ -1,73 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.text-button.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-assist-chip.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-assist-chip.scss deleted file mode 100644 index 00eef420334b..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-assist-chip.scss +++ /dev/null @@ -1,105 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 32px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-small'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'dragged-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'dragged-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'elevated-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'elevated-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'elevated-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'elevated-disabled-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'elevated-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'elevated-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'elevated-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'flat-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'flat-disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'flat-focus-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'flat-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'flat-outline-width': if($exclude-hardcoded-values, null, 1px), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.assist-chip.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-dragged-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-badge.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-badge.scss deleted file mode 100644 index ab791cbcd159..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-badge.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'color': map.get($deps, 'md-sys-color', 'error'), - 'large-color': map.get($deps, 'md-sys-color', 'error'), - 'large-label-text-color': map.get($deps, 'md-sys-color', 'on-error'), - 'large-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-small-font'), - 'large-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-small-line-height'), - 'large-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-small-size'), - 'large-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.badge.large.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'large-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-small-weight') - map.get($deps, 'md-sys-typescale', 'label-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-small-font') - ), - 'large-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-small-weight'), - 'large-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'large-size': if($exclude-hardcoded-values, null, 16px), - 'shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'size': if($exclude-hardcoded-values, null, 6px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-banner.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-banner.scss deleted file mode 100644 index 6be3c5a4772d..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-banner.scss +++ /dev/null @@ -1,71 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'desktop-with-single-line-container-height': - if($exclude-hardcoded-values, null, 52px), - 'desktop-with-three-lines-container-height': - if($exclude-hardcoded-values, null, 90px), - 'desktop-with-two-lines-with-image-container-height': - if($exclude-hardcoded-values, null, 72px), - 'mobile-with-single-line-container-height': - if($exclude-hardcoded-values, null, 54px), - 'mobile-with-two-lines-container-height': - if($exclude-hardcoded-values, null, 112px), - 'mobile-with-two-lines-with-image-container-height': - if($exclude-hardcoded-values, null, 120px), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.banner.supporting-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - map.get($deps, 'md-sys-typescale', 'body-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-medium-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight'), - 'with-image-image-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'with-image-image-size': if($exclude-hardcoded-values, null, 40px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-bottom-app-bar.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-bottom-app-bar.scss deleted file mode 100644 index 3e630b7a35f0..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-bottom-app-bar.scss +++ /dev/null @@ -1,29 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'container-height': if($exclude-hardcoded-values, null, 80px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-carousel-item.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-carousel-item.scss deleted file mode 100644 index adb1f708d22d..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-carousel-item.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-outline-disabled-outline-color': - map.get($deps, 'md-sys-color', 'outline'), - 'with-outline-disabled-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'with-outline-focus-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-outline-hover-outline-color': - map.get($deps, 'md-sys-color', 'outline'), - 'with-outline-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'with-outline-outline-width': if($exclude-hardcoded-values, null, 1), - 'with-outline-pressed-outline-color': - map.get($deps, 'md-sys-color', 'outline') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-input-modal.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-date-input-modal.scss deleted file mode 100644 index bdd7b76534d5..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-input-modal.scss +++ /dev/null @@ -1,87 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 512px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 328px), - 'header-container-height': if($exclude-hardcoded-values, null, 120px), - 'header-container-width': if($exclude-hardcoded-values, null, 328px), - 'header-headline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-headline-font': - map.get($deps, 'md-sys-typescale', 'headline-large-font'), - 'header-headline-line-height': - map.get($deps, 'md-sys-typescale', 'headline-large-line-height'), - 'header-headline-size': - map.get($deps, 'md-sys-typescale', 'headline-large-size'), - 'header-headline-tracking': - map.get($deps, 'md-sys-typescale', 'headline-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-input.modal.header.headline.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'header-headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'headline-large-weight') - map.get($deps, 'md-sys-typescale', 'headline-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'headline-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'headline-large-font') - ), - 'header-headline-weight': - map.get($deps, 'md-sys-typescale', 'headline-large-weight'), - 'header-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'header-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'header-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'header-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-input.modal.header.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'header-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'header-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-docked.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-docked.scss deleted file mode 100644 index cce46b395fef..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-docked.scss +++ /dev/null @@ -1,248 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 456px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 360px), - 'date-container-height': if($exclude-hardcoded-values, null, 48px), - 'date-container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'date-container-width': if($exclude-hardcoded-values, null, 48px), - 'date-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'date-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'date-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'date-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'date-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'date-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.docked.date.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'date-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'date-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'date-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'date-selected-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'date-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-state-layer-height': if($exclude-hardcoded-values, null, 40px), - 'date-state-layer-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'date-state-layer-width': if($exclude-hardcoded-values, null, 40px), - 'date-today-container-outline-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-container-outline-width': - if($exclude-hardcoded-values, null, 1px), - 'date-today-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'date-today-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'date-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'date-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'date-unselected-outside-month-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'date-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-height': if($exclude-hardcoded-values, null, 64px), - 'menu-button-container-height': if($exclude-hardcoded-values, null, 40px), - 'menu-button-container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'menu-button-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-button-disabled-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'menu-button-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-button-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'menu-button-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'menu-button-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'menu-button-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-icon-size': if($exclude-hardcoded-values, null, 18px), - 'menu-button-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'menu-button-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'menu-button-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'menu-button-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.docked.menu-button.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-button-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'menu-button-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'menu-button-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-button-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'menu-list-item-container-height': if($exclude-hardcoded-values, null, 48px), - 'menu-list-item-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'menu-list-item-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'menu-list-item-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'menu-list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'menu-list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'menu-list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.docked.menu.list-item.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'menu-list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'menu-list-item-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'menu-list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-list-item-selected-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-selected-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-selected-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-selected-leading-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-list-item-selected-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'weekdays-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'weekdays-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'weekdays-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'weekdays-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'weekdays-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.docked.weekdays.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'weekdays-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'weekdays-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-modal.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-modal.scss deleted file mode 100644 index 058b9a517149..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-date-picker-modal.scss +++ /dev/null @@ -1,313 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 568px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 360px), - 'date-container-height': if($exclude-hardcoded-values, null, 40px), - 'date-container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'date-container-width': if($exclude-hardcoded-values, null, 40px), - 'date-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'date-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'date-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'date-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'date-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'date-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.date.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'date-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'date-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'date-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'date-selected-container-color': map.get($deps, 'md-sys-color', 'primary'), - 'date-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'date-state-layer-height': if($exclude-hardcoded-values, null, 40px), - 'date-state-layer-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'date-state-layer-width': if($exclude-hardcoded-values, null, 40px), - 'date-today-container-outline-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-container-outline-width': - if($exclude-hardcoded-values, null, 1px), - 'date-today-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-today-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'date-today-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'date-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'date-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'date-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'date-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-container-height': if($exclude-hardcoded-values, null, 120px), - 'header-container-width': if($exclude-hardcoded-values, null, 360px), - 'header-headline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-headline-font': - map.get($deps, 'md-sys-typescale', 'headline-large-font'), - 'header-headline-line-height': - map.get($deps, 'md-sys-typescale', 'headline-large-line-height'), - 'header-headline-size': - map.get($deps, 'md-sys-typescale', 'headline-large-size'), - 'header-headline-tracking': - map.get($deps, 'md-sys-typescale', 'headline-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.header.headline.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'header-headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'headline-large-weight') - map.get($deps, 'md-sys-typescale', 'headline-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'headline-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'headline-large-font') - ), - 'header-headline-weight': - map.get($deps, 'md-sys-typescale', 'headline-large-weight'), - 'header-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'header-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'header-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'header-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.header.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'header-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'header-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'range-selection-active-indicator-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'range-selection-active-indicator-container-height': - if($exclude-hardcoded-values, null, 40px), - 'range-selection-active-indicator-container-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'range-selection-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'range-selection-container-shape': - map.get($deps, 'md-sys-shape', 'corner-none'), - 'range-selection-date-in-range-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'range-selection-date-in-range-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'range-selection-date-in-range-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'range-selection-date-in-range-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'range-selection-date-in-range-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'range-selection-date-in-range-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'range-selection-date-in-range-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'range-selection-header-container-height': - if($exclude-hardcoded-values, null, 128px), - 'range-selection-header-headline-font': - map.get($deps, 'md-sys-typescale', 'title-large-font'), - 'range-selection-header-headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-large-line-height'), - 'range-selection-header-headline-size': - map.get($deps, 'md-sys-typescale', 'title-large-size'), - 'range-selection-header-headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.range-selection.header.headline.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'range-selection-header-headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-large-weight') - map.get($deps, 'md-sys-typescale', 'title-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-large-font') - ), - 'range-selection-header-headline-weight': - map.get($deps, 'md-sys-typescale', 'title-large-weight'), - 'range-selection-month-subhead-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'range-selection-month-subhead-font': - map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'range-selection-month-subhead-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'range-selection-month-subhead-size': - map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'range-selection-month-subhead-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.range-selection.month.subhead.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'range-selection-month-subhead-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-small-weight') - map.get($deps, 'md-sys-typescale', 'title-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-small-font') - ), - 'range-selection-month-subhead-weight': - map.get($deps, 'md-sys-typescale', 'title-small-weight'), - 'weekdays-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'weekdays-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'weekdays-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'weekdays-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'weekdays-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.weekdays.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'weekdays-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'weekdays-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'year-selection-year-container-height': - if($exclude-hardcoded-values, null, 36px), - 'year-selection-year-container-width': - if($exclude-hardcoded-values, null, 72px), - 'year-selection-year-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'year-selection-year-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'year-selection-year-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'year-selection-year-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'year-selection-year-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'year-selection-year-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.date-picker.modal.year-selection.year.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'year-selection-year-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'year-selection-year-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'year-selection-year-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'year-selection-year-selected-container-color': - map.get($deps, 'md-sys-color', 'primary'), - 'year-selection-year-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'year-selection-year-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'year-selection-year-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'year-selection-year-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'year-selection-year-state-layer-height': - if($exclude-hardcoded-values, null, 36px), - 'year-selection-year-state-layer-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'year-selection-year-state-layer-width': - if($exclude-hardcoded-values, null, 72px), - 'year-selection-year-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'year-selection-year-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'year-selection-year-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'year-selection-year-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-divider.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-divider.scss deleted file mode 100644 index ba39b7dcbe19..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-divider.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'color': map.get($deps, 'md-sys-color', 'outline-variant'), - 'thickness': if($exclude-hardcoded-values, null, 1px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-branded.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-branded.scss deleted file mode 100644 index d18114b18b6f..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-branded.scss +++ /dev/null @@ -1,82 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.extended-fab.branded.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-surface.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-surface.scss deleted file mode 100644 index c4d5c7ae4ca8..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-extended-fab-surface.scss +++ /dev/null @@ -1,86 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.extended-fab.surface.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded-large.scss deleted file mode 100644 index 530ace9a4d04..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded-large.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 96px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 96px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 48px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded.scss deleted file mode 100644 index 17f1c291c66c..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-branded.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 56px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-primary-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-primary-large.scss deleted file mode 100644 index c2e00c82706d..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-primary-large.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 96px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-width': if($exclude-hardcoded-values, null, 96px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-secondary-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-secondary-large.scss deleted file mode 100644 index 6192e5473f72..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-secondary-large.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 96px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-width': if($exclude-hardcoded-values, null, 96px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-large.scss deleted file mode 100644 index 13105e976791..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-large.scss +++ /dev/null @@ -1,58 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 96px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 96px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-small.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-small.scss deleted file mode 100644 index 074b76f04437..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface-small.scss +++ /dev/null @@ -1,58 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-medium'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 40px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface.scss deleted file mode 100644 index fe5843b69f42..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-surface.scss +++ /dev/null @@ -1,58 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 56px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-tertiary-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-tertiary-large.scss deleted file mode 100644 index d39c9dcc7e95..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-fab-tertiary-large.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'tertiary-container'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 96px), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-width': if($exclude-hardcoded-values, null, 96px), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 36px), - 'lowered-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'lowered-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'lowered-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-autocomplete.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-autocomplete.scss deleted file mode 100644 index 8d5d4d42f487..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-autocomplete.scss +++ /dev/null @@ -1,269 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'menu-cascading-menu-indicator-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-cascading-menu-indicator-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'menu-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'menu-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'menu-container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'menu-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'menu-divider-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-divider-height': if($exclude-hardcoded-values, null, 1px), - 'menu-list-item-container-height': if($exclude-hardcoded-values, null, 48px), - 'menu-list-item-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'menu-list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'menu-list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'menu-list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-autocomplete.menu.list-item.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'menu-list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'menu-list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-caret-color': map.get($deps, 'md-sys-color', 'primary'), - 'text-field-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-small-top'), - 'text-field-disabled-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-disabled-active-indicator-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.04), - 'text-field-disabled-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-input-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-error-active-indicator-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-active-indicator-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-caret-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-focus-label-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-error-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-focus-active-indicator-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-active-indicator-height': - if($exclude-hardcoded-values, null, 2px), - 'text-field-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-input-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-input-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-autocomplete.text-field.input-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-input-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-autocomplete.text-field.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-leading-icon-size': if($exclude-hardcoded-values, null, 20px), - 'text-field-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'text-field-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-autocomplete.text-field.supporting-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'text-field-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'text-field-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-menu-button.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-menu-button.scss deleted file mode 100644 index d3d9ed7a361c..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-menu-button.scss +++ /dev/null @@ -1,94 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'primary'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'focus-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-menu-button.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'pressed-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-leading-icon-color': map.get($deps, 'md-sys-color', 'on-primary'), - 'with-icon-leading-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-select.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-select.scss deleted file mode 100644 index 4becc3330ef1..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-select.scss +++ /dev/null @@ -1,274 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'menu-cascading-menu-indicator-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-cascading-menu-indicator-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'menu-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'menu-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'menu-container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'menu-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'menu-divider-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-divider-height': if($exclude-hardcoded-values, null, 1px), - 'menu-list-item-container-height': if($exclude-hardcoded-values, null, 48px), - 'menu-list-item-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'menu-list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'menu-list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'menu-list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-select.menu.list-item.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'menu-list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'menu-list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-list-item-with-leading-icon-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-with-leading-icon-leading-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-list-item-with-trailing-icon-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-with-trailing-icon-trailing-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'text-field-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-small-top'), - 'text-field-disabled-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-disabled-active-indicator-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.04), - 'text-field-disabled-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-input-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-error-active-indicator-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-active-indicator-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-focus-label-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-error-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-focus-active-indicator-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-active-indicator-height': - if($exclude-hardcoded-values, null, 2px), - 'text-field-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-hover-active-indicator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-active-indicator-height': - if($exclude-hardcoded-values, null, 1px), - 'text-field-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-input-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-input-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-select.text-field.input-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-input-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-select.text-field.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-leading-icon-size': if($exclude-hardcoded-values, null, 20px), - 'text-field-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'text-field-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filled-select.text-field.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'text-field-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'text-field-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-tonal-icon-button.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-tonal-icon-button.scss deleted file mode 100644 index 373395af3005..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-filled-tonal-icon-button.scss +++ /dev/null @@ -1,80 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'secondary-container'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'container-size': if($exclude-hardcoded-values, null, 40px), - 'disabled-container-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-color': map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'selected-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'toggle-selected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'toggle-unselected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'toggle-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-filter-chip.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-filter-chip.scss deleted file mode 100644 index e004f587f3e3..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-filter-chip.scss +++ /dev/null @@ -1,205 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 32px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-small'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'elevated-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'elevated-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'elevated-disabled-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'elevated-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'elevated-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'elevated-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-selected-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'elevated-unselected-container-color': - map.get($deps, 'md-sys-color', 'surface'), - 'flat-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-disabled-selected-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'flat-disabled-selected-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'flat-disabled-unselected-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'flat-disabled-unselected-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'flat-selected-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'flat-selected-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-selected-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'flat-selected-outline-width': if($exclude-hardcoded-values, null, 0), - 'flat-selected-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-unselected-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-unselected-focus-outline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'flat-unselected-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-unselected-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'flat-unselected-outline-width': if($exclude-hardcoded-values, null, 1px), - 'flat-unselected-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.filter-chip.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'selected-dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'unselected-dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-leading-icon-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-leading-icon-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-leading-icon-selected-dragged-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-selected-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-selected-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-selected-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-selected-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-unselected-dragged-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-trailing-icon-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-trailing-icon-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-trailing-icon-selected-dragged-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-pressed-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-unselected-dragged-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-pressed-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-full-screen-dialog.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-full-screen-dialog.scss deleted file mode 100644 index e68603400d44..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-full-screen-dialog.scss +++ /dev/null @@ -1,109 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'header-action-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'header-action-hover-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'header-action-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'header-action-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'header-action-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'header-action-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'header-action-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.full-screen-dialog.header.action.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'header-action-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'header-action-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'header-action-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'header-action-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'header-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'header-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'header-container-height': if($exclude-hardcoded-values, null, 56px), - 'header-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'header-headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'header-headline-font': - map.get($deps, 'md-sys-typescale', 'title-large-font'), - 'header-headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-large-line-height'), - 'header-headline-size': - map.get($deps, 'md-sys-typescale', 'title-large-size'), - 'header-headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.full-screen-dialog.header.headline.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'header-headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-large-weight') - map.get($deps, 'md-sys-typescale', 'title-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-large-font') - ), - 'header-headline-weight': - map.get($deps, 'md-sys-typescale', 'title-large-weight'), - 'header-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'header-icon-size': if($exclude-hardcoded-values, null, 24px), - 'header-on-scroll-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-input-chip.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-input-chip.scss deleted file mode 100644 index 1a2199d6ef58..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-input-chip.scss +++ /dev/null @@ -1,180 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 32px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-small'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-selected-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-selected-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'disabled-unselected-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-unselected-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.input-chip.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'selected-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'selected-dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-outline-width': if($exclude-hardcoded-values, null, 0), - 'selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'unselected-dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-outline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'unselected-outline-width': if($exclude-hardcoded-values, null, 1px), - 'unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'unselected-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-avatar-avatar-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'with-avatar-avatar-size': if($exclude-hardcoded-values, null, 24px), - 'with-avatar-disabled-avatar-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-leading-icon-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-leading-icon-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-leading-icon-leading-icon-size': - if($exclude-hardcoded-values, null, 18px), - 'with-leading-icon-selected-dragged-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-leading-icon-selected-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-selected-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-selected-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-selected-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-dragged-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-leading-icon-unselected-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-unselected-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-leading-icon-unselected-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-trailing-icon-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-trailing-icon-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-trailing-icon-selected-dragged-trailing-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-trailing-icon-selected-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-pressed-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-selected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'with-trailing-icon-trailing-icon-size': - if($exclude-hardcoded-values, null, 18px), - 'with-trailing-icon-unselected-dragged-trailing-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-trailing-icon-unselected-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-pressed-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-trailing-icon-unselected-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-menu.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-menu.scss deleted file mode 100644 index 85b6a5fd0480..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-menu.scss +++ /dev/null @@ -1,31 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-bar.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-bar.scss deleted file mode 100644 index 0b0b14a34a43..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-bar.scss +++ /dev/null @@ -1,110 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 32px), - 'active-indicator-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'active-indicator-width': if($exclude-hardcoded-values, null, 64px), - 'active-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'active-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-medium-weight-prominent'), - 'active-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'container-height': if($exclude-hardcoded-values, null, 80px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'inactive-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-medium-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-medium-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-medium-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.navigation-bar.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-medium-weight') - map.get($deps, 'md-sys-typescale', 'label-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-medium-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-medium-weight'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-drawer.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-drawer.scss deleted file mode 100644 index 61f35ae7990b..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-drawer.scss +++ /dev/null @@ -1,162 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 56px), - 'active-indicator-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'active-indicator-width': if($exclude-hardcoded-values, null, 336px), - 'active-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight-prominent'), - 'active-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'bottom-container-shape': map.get($deps, 'md-sys-shape', 'corner-large-top'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-height': if($exclude-hardcoded-values, null, 100%), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-large-end'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'container-width': if($exclude-hardcoded-values, null, 360px), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.navigation-drawer.headline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-small-weight') - map.get($deps, 'md-sys-typescale', 'title-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-small-font') - ), - 'headline-weight': map.get($deps, 'md-sys-typescale', 'title-small-weight'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'inactive-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.navigation-drawer.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'large-badge-label-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'large-badge-label-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'large-badge-label-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'large-badge-label-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'large-badge-label-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.navigation-drawer.large-badge-label.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'large-badge-label-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'large-badge-label-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'modal-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'standard-container-elevation': map.get($deps, 'md-sys-elevation', 'level0') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-rail.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-rail.scss deleted file mode 100644 index 7e364133847f..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-navigation-rail.scss +++ /dev/null @@ -1,127 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 32px), - 'active-indicator-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'active-indicator-width': if($exclude-hardcoded-values, null, 56px), - 'active-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'active-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-medium-weight-prominent'), - 'active-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'active-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'active-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-width': if($exclude-hardcoded-values, null, 80px), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'icon-size': if($exclude-hardcoded-values, null, 24px), - 'inactive-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'inactive-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-medium-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-medium-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-medium-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.navigation-rail.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-medium-weight') - map.get($deps, 'md-sys-typescale', 'label-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-medium-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-medium-weight'), - 'menu-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-focus-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'menu-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'menu-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-icon-size': if($exclude-hardcoded-values, null, 24px), - 'menu-pressed-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'no-label-active-indicator-height': - if($exclude-hardcoded-values, null, 56px), - 'no-label-active-indicator-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-autocomplete.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-autocomplete.scss deleted file mode 100644 index 2bd947d5830c..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-autocomplete.scss +++ /dev/null @@ -1,259 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'menu-cascading-menu-indicator-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-cascading-menu-indicator-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'menu-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'menu-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'menu-container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'menu-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'menu-divider-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-divider-height': if($exclude-hardcoded-values, null, 1px), - 'menu-list-item-container-height': if($exclude-hardcoded-values, null, 48px), - 'menu-list-item-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'menu-list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'menu-list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'menu-list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-autocomplete.menu.list-item.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'menu-list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'menu-list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-caret-color': map.get($deps, 'md-sys-color', 'primary'), - 'text-field-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'text-field-disabled-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-input-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'text-field-disabled-outline-width': - if($exclude-hardcoded-values, null, 1px), - 'text-field-disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-error-focus-caret-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-focus-label-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-focus-outline-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-error-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-outline-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-outline-color': map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-outline-width': if($exclude-hardcoded-values, null, 2px), - 'text-field-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-outline-width': if($exclude-hardcoded-values, null, 1px), - 'text-field-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-input-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-input-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-autocomplete.text-field.input-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-input-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-autocomplete.text-field.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'text-field-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'text-field-outline-width': if($exclude-hardcoded-values, null, 1px), - 'text-field-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'text-field-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-autocomplete.text-field.supporting-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'text-field-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'text-field-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-menu-button.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-menu-button.scss deleted file mode 100644 index 0e5bde6a05e5..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-menu-button.scss +++ /dev/null @@ -1,90 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'disabled-container-opacity': if($exclude-hardcoded-values, null, 0.12), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-outline-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'focus-trailing-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-trailing-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-menu-button.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'pressed-trailing-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-disabled-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-leading-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-leading-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-segmented-button.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-segmented-button.scss deleted file mode 100644 index e26e6ae0599c..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-segmented-button.scss +++ /dev/null @@ -1,108 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'disabled-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-segmented-button.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'outline-width': if($exclude-hardcoded-values, null, 1px), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'selected-container-color': - map.get($deps, 'md-sys-color', 'secondary-container'), - 'selected-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'selected-with-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-secondary-container'), - 'shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'unselected-focus-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'unselected-with-icon-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 18px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-select.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-select.scss deleted file mode 100644 index cad2d00c9645..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-outlined-select.scss +++ /dev/null @@ -1,264 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'menu-cascading-menu-indicator-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-cascading-menu-indicator-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'menu-container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'menu-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'menu-container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'menu-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'menu-divider-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-divider-height': if($exclude-hardcoded-values, null, 1px), - 'menu-list-item-container-height': if($exclude-hardcoded-values, null, 48px), - 'menu-list-item-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'menu-list-item-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'menu-list-item-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'menu-list-item-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'menu-list-item-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-select.menu.list-item.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'menu-list-item-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'menu-list-item-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'menu-list-item-selected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'menu-list-item-with-leading-icon-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-with-leading-icon-leading-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'menu-list-item-with-trailing-icon-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'menu-list-item-with-trailing-icon-trailing-icon-size': - if($exclude-hardcoded-values, null, 24px), - 'text-field-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'text-field-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-small'), - 'text-field-disabled-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-input-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-label-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-outline-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'text-field-disabled-outline-width': - if($exclude-hardcoded-values, null, 1px), - 'text-field-disabled-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-supporting-text-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-disabled-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-disabled-trailing-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'text-field-error-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-focus-label-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-focus-outline-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-error-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-error-container'), - 'text-field-error-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-error-label-text-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-error-outline-color': map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-supporting-text-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-error-trailing-icon-color': - map.get($deps, 'md-sys-color', 'error'), - 'text-field-focus-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-outline-color': map.get($deps, 'md-sys-color', 'primary'), - 'text-field-focus-outline-width': if($exclude-hardcoded-values, null, 2px), - 'text-field-focus-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'text-field-hover-input-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-outline-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-outline-width': if($exclude-hardcoded-values, null, 1px), - 'text-field-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'text-field-hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'text-field-input-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-input-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-select.text-field.input-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-input-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'text-field-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'text-field-label-text-populated-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-label-text-populated-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'text-field-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-select.text-field.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'text-field-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'text-field-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'text-field-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'text-field-outline-width': if($exclude-hardcoded-values, null, 1px), - 'text-field-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'text-field-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'text-field-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'text-field-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.outlined-select.text-field.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'text-field-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'text-field-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight'), - 'text-field-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'text-field-trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-primary-navigation-tab.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-primary-navigation-tab.scss deleted file mode 100644 index 8ab6793cfe64..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-primary-navigation-tab.scss +++ /dev/null @@ -1,117 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'active-indicator-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-indicator-height': if($exclude-hardcoded-values, null, 3px), - 'active-indicator-shape': - if($exclude-hardcoded-values, null, (3px 3px 0 0)), - 'active-focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'active-hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'active-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'active-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'active-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 48px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'inactive-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'inactive-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'inactive-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'inactive-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'inactive-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-icon-and-label-text-container-height': - if($exclude-hardcoded-values, null, 64px), - 'with-icon-active-focus-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-active-hover-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-active-icon-color': map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-active-pressed-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-icon-icon-size': if($exclude-hardcoded-values, null, 24px), - 'with-icon-inactive-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-inactive-hover-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-inactive-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-icon-inactive-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-label-text-active-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-label-text-active-hover-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-label-text-active-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-label-text-active-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-label-text-inactive-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-label-text-inactive-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-label-text-inactive-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-label-text-inactive-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-label-text-label-text-font': - map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'with-label-text-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'with-label-text-label-text-size': - map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'with-label-text-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.primary-navigation-tab.with-label-text.label-text.tracking cannot be - // represented in the "font" property shorthand. Consider using the discrete properties instead. - 'with-label-text-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-small-weight') - map.get($deps, 'md-sys-typescale', 'title-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-small-font') - ), - 'with-label-text-label-text-weight': - map.get($deps, 'md-sys-typescale', 'title-small-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-rich-tooltip.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-rich-tooltip.scss deleted file mode 100644 index 9d1b89c5dc55..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-rich-tooltip.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'action-focus-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-focus-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'action-hover-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-hover-state-layer-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'action-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-label-text-font': - map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'action-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'action-label-text-size': - map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'action-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.rich-tooltip.action.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'action-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'action-label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'action-pressed-label-text-color': map.get($deps, 'md-sys-color', 'primary'), - 'action-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'action-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level2'), - 'container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-small'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'subhead-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'subhead-font': map.get($deps, 'md-sys-typescale', 'title-small-font'), - 'subhead-line-height': - map.get($deps, 'md-sys-typescale', 'title-small-line-height'), - 'subhead-size': map.get($deps, 'md-sys-typescale', 'title-small-size'), - 'subhead-tracking': - map.get($deps, 'md-sys-typescale', 'title-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.rich-tooltip.subhead.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'subhead-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-small-weight') - map.get($deps, 'md-sys-typescale', 'title-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-small-font') - ), - 'subhead-weight': map.get($deps, 'md-sys-typescale', 'title-small-weight'), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-medium-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-medium-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-medium-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.rich-tooltip.supporting-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - map.get($deps, 'md-sys-typescale', 'body-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-medium-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-medium-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-scrim.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-scrim.scss deleted file mode 100644 index a70e771da930..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-scrim.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'scrim'), - 'container-opacity': if($exclude-hardcoded-values, null, 0.32) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-search-bar.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-search-bar.scss deleted file mode 100644 index a076c996e137..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-search-bar.scss +++ /dev/null @@ -1,97 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'avatar-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'avatar-size': if($exclude-hardcoded-values, null, 30px), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-height': if($exclude-hardcoded-values, null, 56px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'hover-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'input-text-font': map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'input-text-size': map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.search-bar.input-text.tracking cannot be represented in the "font" property - // shorthand. Consider using the discrete properties instead. - 'input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'input-text-weight': map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'pressed-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.search-bar.supporting-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-search-view.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-search-view.scss deleted file mode 100644 index 615623c60f06..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-search-view.scss +++ /dev/null @@ -1,91 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'divider-color': map.get($deps, 'md-sys-color', 'outline'), - 'docked-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'docked-header-container-height': if($exclude-hardcoded-values, null, 56px), - 'full-screen-container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'full-screen-header-container-height': - if($exclude-hardcoded-values, null, 72px), - 'header-input-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'header-input-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'header-input-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'header-input-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'header-input-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.search-view.header.input-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'header-input-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'header-input-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'header-leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'header-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'header-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'header-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'header-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'header-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.search-view.header.supporting-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'header-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'header-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'header-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-bottom.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-bottom.scss deleted file mode 100644 index f581ecdb8721..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-bottom.scss +++ /dev/null @@ -1,39 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'docked-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'docked-container-shape': - map.get($deps, 'md-sys-shape', 'corner-extra-large-top'), - 'docked-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'docked-drag-handle-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'docked-drag-handle-height': if($exclude-hardcoded-values, null, 4px), - 'docked-drag-handle-opacity': if($exclude-hardcoded-values, null, 0.4), - 'docked-drag-handle-width': if($exclude-hardcoded-values, null, 32px), - 'docked-minimized-container-shape': - map.get($deps, 'md-sys-shape', 'corner-none'), - 'docked-modal-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'docked-standard-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-floating.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-floating.scss deleted file mode 100644 index ae6b063f4be7..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-floating.scss +++ /dev/null @@ -1,28 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), -); - -@function values($deps: $_default) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-side.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-side.scss deleted file mode 100644 index 398970f126c3..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-sheet-side.scss +++ /dev/null @@ -1,87 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'detached-container-shape': map.get($deps, 'md-sys-shape', 'corner-large'), - 'docked-action-focus-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'docked-action-hover-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'docked-action-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'primary'), - 'docked-action-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'docked-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'docked-container-height': if($exclude-hardcoded-values, null, 100%), - 'docked-container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'docked-container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'docked-container-width': if($exclude-hardcoded-values, null, 256px), - 'docked-divider-color': map.get($deps, 'md-sys-color', 'outline'), - 'docked-headline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'docked-headline-font': - map.get($deps, 'md-sys-typescale', 'title-large-font'), - 'docked-headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-large-line-height'), - 'docked-headline-size': - map.get($deps, 'md-sys-typescale', 'title-large-size'), - 'docked-headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.sheet.side.docked.headline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'docked-headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-large-weight') - map.get($deps, 'md-sys-typescale', 'title-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-large-font') - ), - 'docked-headline-weight': - map.get($deps, 'md-sys-typescale', 'title-large-weight'), - 'docked-modal-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'docked-modal-container-shape': - map.get($deps, 'md-sys-shape', 'corner-large-start'), - 'docked-standard-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-standard-menu-button.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-standard-menu-button.scss deleted file mode 100644 index 0f294784e002..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-standard-menu-button.scss +++ /dev/null @@ -1,94 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 40px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'disabled-trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-trailing-icon-opacity': if($exclude-hardcoded-values, null, 0.38), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'focus-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'hover-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.standard-menu-button.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'pressed-trailing-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-icon-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-icon-focus-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-icon-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-icon-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'with-icon-leading-icon-size': if($exclude-hardcoded-values, null, 18px), - 'with-icon-pressed-icon-color': - map.get($deps, 'md-sys-color', 'on-surface-variant') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-suggestion-chip.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-suggestion-chip.scss deleted file mode 100644 index 2975353814af..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-suggestion-chip.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-height': if($exclude-hardcoded-values, null, 32px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-small'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'disabled-label-text-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'disabled-label-text-opacity': if($exclude-hardcoded-values, null, 0.38), - 'dragged-container-elevation': map.get($deps, 'md-sys-elevation', 'level4'), - 'dragged-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'dragged-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'dragged-state-layer-opacity': - map.get($deps, 'md-sys-state', 'dragged-state-layer-opacity'), - 'elevated-container-color': map.get($deps, 'md-sys-color', 'surface'), - 'elevated-container-elevation': map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-container-shadow-color': map.get($deps, 'md-sys-color', 'shadow'), - 'elevated-disabled-container-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'elevated-disabled-container-elevation': - map.get($deps, 'md-sys-elevation', 'level0'), - 'elevated-disabled-container-opacity': - if($exclude-hardcoded-values, null, 0.12), - 'elevated-focus-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'elevated-hover-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'elevated-pressed-container-elevation': - map.get($deps, 'md-sys-elevation', 'level1'), - 'flat-container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'flat-disabled-outline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'flat-disabled-outline-opacity': if($exclude-hardcoded-values, null, 0.12), - 'flat-focus-outline-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'flat-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'flat-outline-width': if($exclude-hardcoded-values, null, 1px), - 'focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'label-text-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'label-text-font': map.get($deps, 'md-sys-typescale', 'label-large-font'), - 'label-text-line-height': - map.get($deps, 'md-sys-typescale', 'label-large-line-height'), - 'label-text-size': map.get($deps, 'md-sys-typescale', 'label-large-size'), - 'label-text-tracking': - map.get($deps, 'md-sys-typescale', 'label-large-tracking'), - 'label-text-type': - if( - $exclude-hardcoded-values, - null, - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.suggestion-chip.label-text.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - map.get($deps, 'md-sys-typescale', 'label-large-weight') - map.get($deps, 'md-sys-typescale', 'label-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-large-font') - ), - 'label-text-weight': - map.get($deps, 'md-sys-typescale', 'label-large-weight'), - 'pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'with-leading-icon-disabled-leading-icon-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'with-leading-icon-disabled-leading-icon-opacity': - if($exclude-hardcoded-values, null, 0.38), - 'with-leading-icon-dragged-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-focus-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-hover-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary'), - 'with-leading-icon-leading-icon-size': - if($exclude-hardcoded-values, null, 18px), - 'with-leading-icon-pressed-leading-icon-color': - map.get($deps, 'md-sys-color', 'primary') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-time-input.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-time-input.scss deleted file mode 100644 index ac149d62fbb8..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-time-input.scss +++ /dev/null @@ -1,222 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'label-medium-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'label-medium-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'label-medium-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'label-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-input.headline.tracking cannot be represented in the "font" property - // shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-medium-weight') - map.get($deps, 'md-sys-typescale', 'label-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-medium-font') - ), - 'headline-weight': map.get($deps, 'md-sys-typescale', 'label-medium-weight'), - 'period-selector-container-height': - if($exclude-hardcoded-values, null, 72px), - 'period-selector-container-shape': - map.get($deps, 'md-sys-shape', 'corner-small'), - 'period-selector-container-width': if($exclude-hardcoded-values, null, 52px), - 'period-selector-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'period-selector-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'period-selector-label-text-font': - map.get($deps, 'md-sys-typescale', 'title-medium-font'), - 'period-selector-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'title-medium-line-height'), - 'period-selector-label-text-size': - map.get($deps, 'md-sys-typescale', 'title-medium-size'), - 'period-selector-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'title-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-input.period-selector.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'period-selector-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-medium-weight') - map.get($deps, 'md-sys-typescale', 'title-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-medium-font') - ), - 'period-selector-label-text-weight': - map.get($deps, 'md-sys-typescale', 'title-medium-weight'), - 'period-selector-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'period-selector-outline-width': if($exclude-hardcoded-values, null, 1px), - 'period-selector-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'period-selector-selected-container-color': - map.get($deps, 'md-sys-color', 'tertiary-container'), - 'period-selector-selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'surface-tint-layer-color': map.get($deps, 'md-sys-color', 'surface-tint'), - 'time-input-field-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'time-input-field-container-height': - if($exclude-hardcoded-values, null, 72px), - 'time-input-field-container-shape': - map.get($deps, 'md-sys-shape', 'corner-small'), - 'time-input-field-container-width': - if($exclude-hardcoded-values, null, 96px), - 'time-input-field-focus-container-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'time-input-field-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-input-field-focus-outline-color': - map.get($deps, 'md-sys-color', 'primary'), - 'time-input-field-focus-outline-width': - if($exclude-hardcoded-values, null, 2px), - 'time-input-field-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-input-field-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-input-field-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'time-input-field-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-input-field-label-text-font': - map.get($deps, 'md-sys-typescale', 'display-medium-font'), - 'time-input-field-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'display-medium-line-height'), - 'time-input-field-label-text-size': - map.get($deps, 'md-sys-typescale', 'display-medium-size'), - 'time-input-field-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'display-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-input.time-input-field.label-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'time-input-field-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'display-medium-weight') - map.get($deps, 'md-sys-typescale', 'display-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'display-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'display-medium-font') - ), - 'time-input-field-label-text-weight': - map.get($deps, 'md-sys-typescale', 'display-medium-weight'), - 'time-input-field-separator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-input-field-separator-font': - map.get($deps, 'md-sys-typescale', 'display-large-font'), - 'time-input-field-separator-line-height': - map.get($deps, 'md-sys-typescale', 'display-large-line-height'), - 'time-input-field-separator-size': - map.get($deps, 'md-sys-typescale', 'display-large-size'), - 'time-input-field-separator-tracking': - map.get($deps, 'md-sys-typescale', 'display-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-input.time-input-field.separator.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'time-input-field-separator-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'display-large-weight') - map.get($deps, 'md-sys-typescale', 'display-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'display-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'display-large-font') - ), - 'time-input-field-separator-weight': - map.get($deps, 'md-sys-typescale', 'display-large-weight'), - 'time-input-field-supporting-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'time-input-field-supporting-text-font': - map.get($deps, 'md-sys-typescale', 'body-small-font'), - 'time-input-field-supporting-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-small-line-height'), - 'time-input-field-supporting-text-size': - map.get($deps, 'md-sys-typescale', 'body-small-size'), - 'time-input-field-supporting-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-input.time-input-field.supporting-text.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'time-input-field-supporting-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-small-weight') - map.get($deps, 'md-sys-typescale', 'body-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-small-font') - ), - 'time-input-field-supporting-text-weight': - map.get($deps, 'md-sys-typescale', 'body-small-weight') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-time-picker.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-time-picker.scss deleted file mode 100644 index e14327db636c..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-time-picker.scss +++ /dev/null @@ -1,268 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-state'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-state': md-sys-state.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'clock-dial-color': map.get($deps, 'md-sys-color', 'surface-variant'), - 'clock-dial-container-size': if($exclude-hardcoded-values, null, 256px), - 'clock-dial-label-text-font': - map.get($deps, 'md-sys-typescale', 'body-large-font'), - 'clock-dial-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'body-large-line-height'), - 'clock-dial-label-text-size': - map.get($deps, 'md-sys-typescale', 'body-large-size'), - 'clock-dial-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'body-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-picker.clock-dial.label-text.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'clock-dial-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'body-large-weight') - map.get($deps, 'md-sys-typescale', 'body-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'body-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'body-large-font') - ), - 'clock-dial-label-text-weight': - map.get($deps, 'md-sys-typescale', 'body-large-weight'), - 'clock-dial-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary'), - 'clock-dial-selector-center-container-color': - map.get($deps, 'md-sys-color', 'primary'), - 'clock-dial-selector-center-container-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'clock-dial-selector-center-container-size': - if($exclude-hardcoded-values, null, 8px), - 'clock-dial-selector-handle-container-color': - map.get($deps, 'md-sys-color', 'primary'), - 'clock-dial-selector-handle-container-shape': - map.get($deps, 'md-sys-shape', 'corner-full'), - 'clock-dial-selector-handle-container-size': - if($exclude-hardcoded-values, null, 48px), - 'clock-dial-selector-track-container-color': - map.get($deps, 'md-sys-color', 'primary'), - 'clock-dial-selector-track-container-width': - if($exclude-hardcoded-values, null, 2px), - 'clock-dial-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'clock-dial-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level3'), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-extra-large'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'label-medium-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'label-medium-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'label-medium-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'label-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-picker.headline.tracking cannot be represented in the "font" property - // shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'label-medium-weight') - map.get($deps, 'md-sys-typescale', 'label-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'label-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'label-medium-font') - ), - 'headline-weight': map.get($deps, 'md-sys-typescale', 'label-medium-weight'), - 'period-selector-container-shape': - map.get($deps, 'md-sys-shape', 'corner-small'), - 'period-selector-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'period-selector-horizontal-container-height': - if($exclude-hardcoded-values, null, 38px), - 'period-selector-horizontal-container-width': - if($exclude-hardcoded-values, null, 216px), - 'period-selector-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'period-selector-label-text-font': - map.get($deps, 'md-sys-typescale', 'title-medium-font'), - 'period-selector-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'title-medium-line-height'), - 'period-selector-label-text-size': - map.get($deps, 'md-sys-typescale', 'title-medium-size'), - 'period-selector-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'title-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-picker.period-selector.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'period-selector-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-medium-weight') - map.get($deps, 'md-sys-typescale', 'title-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-medium-font') - ), - 'period-selector-label-text-weight': - map.get($deps, 'md-sys-typescale', 'title-medium-weight'), - 'period-selector-outline-color': map.get($deps, 'md-sys-color', 'outline'), - 'period-selector-outline-width': if($exclude-hardcoded-values, null, 1px), - 'period-selector-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'period-selector-selected-container-color': - map.get($deps, 'md-sys-color', 'tertiary-container'), - 'period-selector-selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-tertiary-container'), - 'period-selector-unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'period-selector-vertical-container-height': - if($exclude-hardcoded-values, null, 80px), - 'period-selector-vertical-container-width': - if($exclude-hardcoded-values, null, 52px), - 'surface-tint-layer-color': map.get($deps, 'md-sys-color', 'surface-tint'), - 'time-selector-24h-vertical-container-width': - if($exclude-hardcoded-values, null, 114px), - 'time-selector-container-height': if($exclude-hardcoded-values, null, 80px), - 'time-selector-container-shape': - map.get($deps, 'md-sys-shape', 'corner-small'), - 'time-selector-container-width': if($exclude-hardcoded-values, null, 96px), - 'time-selector-focus-state-layer-opacity': - map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'), - 'time-selector-hover-state-layer-opacity': - map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'), - 'time-selector-label-text-font': - map.get($deps, 'md-sys-typescale', 'display-large-font'), - 'time-selector-label-text-line-height': - map.get($deps, 'md-sys-typescale', 'display-large-line-height'), - 'time-selector-label-text-size': - map.get($deps, 'md-sys-typescale', 'display-large-size'), - 'time-selector-label-text-tracking': - map.get($deps, 'md-sys-typescale', 'display-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-picker.time-selector.label-text.tracking cannot be represented in - // the "font" property shorthand. Consider using the discrete properties instead. - 'time-selector-label-text-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'display-large-weight') - map.get($deps, 'md-sys-typescale', 'display-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'display-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'display-large-font') - ), - 'time-selector-label-text-weight': - map.get($deps, 'md-sys-typescale', 'display-large-weight'), - 'time-selector-pressed-state-layer-opacity': - map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'), - 'time-selector-selected-container-color': - map.get($deps, 'md-sys-color', 'primary-container'), - 'time-selector-selected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-selected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-primary-container'), - 'time-selector-separator-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-separator-font': - map.get($deps, 'md-sys-typescale', 'display-large-font'), - 'time-selector-separator-line-height': - map.get($deps, 'md-sys-typescale', 'display-large-line-height'), - 'time-selector-separator-size': - map.get($deps, 'md-sys-typescale', 'display-large-size'), - 'time-selector-separator-tracking': - map.get($deps, 'md-sys-typescale', 'display-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.time-picker.time-selector.separator.tracking cannot be represented in the - // "font" property shorthand. Consider using the discrete properties instead. - 'time-selector-separator-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'display-large-weight') - map.get($deps, 'md-sys-typescale', 'display-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'display-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'display-large-font') - ), - 'time-selector-separator-weight': - map.get($deps, 'md-sys-typescale', 'display-large-weight'), - 'time-selector-unselected-container-color': - map.get($deps, 'md-sys-color', 'surface-variant'), - 'time-selector-unselected-focus-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-focus-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-hover-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-hover-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-pressed-label-text-color': - map.get($deps, 'md-sys-color', 'on-surface'), - 'time-selector-unselected-pressed-state-layer-color': - map.get($deps, 'md-sys-color', 'on-surface') - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-large.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-large.scss deleted file mode 100644 index 1560773f0deb..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-large.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 152px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'headline-medium-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'headline-medium-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'headline-medium-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'headline-medium-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.top-app-bar.large.headline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'headline-medium-weight') - map.get($deps, 'md-sys-typescale', 'headline-medium-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'headline-medium-line-height' - ) map.get($deps, 'md-sys-typescale', 'headline-medium-font') - ), - 'headline-weight': - map.get($deps, 'md-sys-typescale', 'headline-medium-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-medium.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-medium.scss deleted file mode 100644 index 80b0e603fedf..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-medium.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 112px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'headline-small-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'headline-small-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'headline-small-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'headline-small-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.top-app-bar.medium.headline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'headline-small-weight') - map.get($deps, 'md-sys-typescale', 'headline-small-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'headline-small-line-height' - ) map.get($deps, 'md-sys-typescale', 'headline-small-font') - ), - 'headline-weight': - map.get($deps, 'md-sys-typescale', 'headline-small-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small-centered.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small-centered.scss deleted file mode 100644 index 63c9909dab1f..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small-centered.scss +++ /dev/null @@ -1,62 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'avatar-shape': map.get($deps, 'md-sys-shape', 'corner-full'), - 'avatar-size': if($exclude-hardcoded-values, null, 30px), - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 64px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'title-large-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-large-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'title-large-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.top-app-bar.small.centered.headline.tracking cannot be represented - // in the "font" property shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-large-weight') - map.get($deps, 'md-sys-typescale', 'title-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-large-font') - ), - 'headline-weight': map.get($deps, 'md-sys-typescale', 'title-large-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'on-scroll-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small.scss b/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small.scss deleted file mode 100644 index 9de00b9fbf8f..000000000000 --- a/src/material/core/tokens/m3/definitions/unused/_md-comp-top-app-bar-small.scss +++ /dev/null @@ -1,60 +0,0 @@ -// -// Design system display name: Material 3 -// Design system version: v0.161 -// - -@use 'sass:map'; - -@use './md-sys-color'; - -@use './md-sys-elevation'; - -@use './md-sys-shape'; - -@use './md-sys-typescale'; - -$_default: ( - 'md-sys-color': md-sys-color.values-light(), - 'md-sys-elevation': md-sys-elevation.values(), - 'md-sys-shape': md-sys-shape.values(), - 'md-sys-typescale': md-sys-typescale.values(), -); - -@function values($deps: $_default, $exclude-hardcoded-values: false) { - @return ( - 'container-color': map.get($deps, 'md-sys-color', 'surface'), - 'container-elevation': map.get($deps, 'md-sys-elevation', 'level0'), - 'container-height': if($exclude-hardcoded-values, null, 64px), - 'container-shape': map.get($deps, 'md-sys-shape', 'corner-none'), - 'container-surface-tint-layer-color': - map.get($deps, 'md-sys-color', 'surface-tint'), - 'headline-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'headline-font': map.get($deps, 'md-sys-typescale', 'title-large-font'), - 'headline-line-height': - map.get($deps, 'md-sys-typescale', 'title-large-line-height'), - 'headline-size': map.get($deps, 'md-sys-typescale', 'title-large-size'), - 'headline-tracking': - map.get($deps, 'md-sys-typescale', 'title-large-tracking'), - // Warning: risk of reduced fidelity from using this composite typography token. - // Tokens md.comp.top-app-bar.small.headline.tracking cannot be represented in the "font" - // property shorthand. Consider using the discrete properties instead. - 'headline-type': - if( - $exclude-hardcoded-values, - null, - map.get($deps, 'md-sys-typescale', 'title-large-weight') - map.get($deps, 'md-sys-typescale', 'title-large-size') #{'/'} map.get( - $deps, - 'md-sys-typescale', - 'title-large-line-height' - ) map.get($deps, 'md-sys-typescale', 'title-large-font') - ), - 'headline-weight': map.get($deps, 'md-sys-typescale', 'title-large-weight'), - 'leading-icon-color': map.get($deps, 'md-sys-color', 'on-surface'), - 'leading-icon-size': if($exclude-hardcoded-values, null, 24px), - 'on-scroll-container-elevation': - map.get($deps, 'md-sys-elevation', 'level2'), - 'trailing-icon-color': map.get($deps, 'md-sys-color', 'on-surface-variant'), - 'trailing-icon-size': if($exclude-hardcoded-values, null, 24px) - ); -} diff --git a/src/material/core/tokens/m3/mat/_checkbox.scss b/src/material/core/tokens/m3/mat/_checkbox.scss deleted file mode 100644 index baba1f094020..000000000000 --- a/src/material/core/tokens/m3/mat/_checkbox.scss +++ /dev/null @@ -1,26 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, checkbox); - -/// Generates custom tokens for mat-checkbox. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for mat-checkbox -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - disabled-label-color: - sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - label-text-color: map.get($systems, md-sys-color, on-surface), - label-text-font: map.get($systems, md-sys-typescale, body-medium-font), - label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), - label-text-size: map.get($systems, md-sys-typescale, body-medium-size), - label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), - label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_chip.scss b/src/material/core/tokens/m3/mat/_chip.scss deleted file mode 100644 index 3deb9511cd37..000000000000 --- a/src/material/core/tokens/m3/mat/_chip.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, chip); - -/// Generates custom tokens for the mat-chip. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-chip -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - disabled-container-opacity: token-definition.hardcode(1, $exclude-hardcoded), - selected-trailing-icon-color: map.get($systems, md-sys-color, on-secondary-container), - selected-disabled-trailing-icon-color: map.get($systems, md-sys-color, on-surface), - trailing-action-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - selected-trailing-action-state-layer-color: - map.get($systems, md-sys-color, on-secondary-container), - trailing-action-hover-state-layer-opacity: - map.get($systems, md-sys-state, hover-state-layer-opacity), - trailing-action-focus-state-layer-opacity: - map.get($systems, md-sys-state, focus-state-layer-opacity), - trailing-action-opacity: token-definition.hardcode(1, $exclude-hardcoded), - trailing-action-focus-opacity: token-definition.hardcode(1, $exclude-hardcoded), - ), ( - primary: ( - selected-trailing-icon-color: map.get($systems, md-sys-color, on-primary-container), - selected-trailing-action-state-layer-color: - map.get($systems, md-sys-color, on-primary-container), - ), - secondary: (), // Default, no overrides needed. - tertiary: ( - selected-trailing-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-trailing-action-state-layer-color: - map.get($systems, md-sys-color, on-tertiary-container), - ), - error: ( - selected-trailing-icon-color: map.get($systems, md-sys-color, on-error-container), - selected-trailing-action-state-layer-color: - map.get($systems, md-sys-color, on-error-container), - ), - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_dialog.scss b/src/material/core/tokens/m3/mat/_dialog.scss deleted file mode 100644 index 8d1bd2e6d655..000000000000 --- a/src/material/core/tokens/m3/mat/_dialog.scss +++ /dev/null @@ -1,32 +0,0 @@ -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, dialog); - -/// Generates custom tokens for the dialog. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the dialog -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - container-elevation-shadow: token-definition.hardcode(none, $exclude-hardcoded), - container-max-width: token-definition.hardcode(560px, $exclude-hardcoded), - container-small-max-width: - token-definition.hardcode(calc(100vw - 32px), $exclude-hardcoded), - container-min-width: token-definition.hardcode(280px, $exclude-hardcoded), - actions-alignment: token-definition.hardcode(flex-end, $exclude-hardcoded), - content-padding: token-definition.hardcode(20px 24px, $exclude-hardcoded), - with-actions-content-padding: token-definition.hardcode(20px 24px 0, $exclude-hardcoded), - actions-padding: token-definition.hardcode(16px 24px, $exclude-hardcoded), - - // The vertical padding values are a bit weird, because MDC uses a `::before` pseudo - // element to size the title which in turn means that we can't set a specific padding - // and get the exact same space out of it. These values were determined through - // trial and error so that the first line of text is 24px from the top and the bottom - // of the text is 16px from the content under it. - headline-padding: token-definition.hardcode(6px 24px 13px, $exclude-hardcoded), - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_fab-small.scss b/src/material/core/tokens/m3/mat/_fab-small.scss deleted file mode 100644 index ae7e4bb332a4..000000000000 --- a/src/material/core/tokens/m3/mat/_fab-small.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, fab-small); - -/// Generates custom tokens for the mat-mini-fab. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-mini-fab -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - foreground-color: map.get($systems, md-sys-color, on-primary-container), - state-layer-color: map.get($systems, md-sys-color, on-primary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-primary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - disabled-state-container-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), $alpha: 0.12), - disabled-state-foreground-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - ), ( - // Color variants - primary: (), // Default, no overrides needed. - secondary: ( - foreground-color: map.get($systems, md-sys-color, on-secondary-container), - state-layer-color: map.get($systems, md-sys-color, on-secondary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-secondary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - tertiary: ( - foreground-color: map.get($systems, md-sys-color, on-tertiary-container), - state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-tertiary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ) - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_fab.scss b/src/material/core/tokens/m3/mat/_fab.scss deleted file mode 100644 index c93d62a182d3..000000000000 --- a/src/material/core/tokens/m3/mat/_fab.scss +++ /dev/null @@ -1,50 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, fab); - -/// Generates custom tokens for the mat-fab. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-fab -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - foreground-color: map.get($systems, md-sys-color, on-primary-container), - state-layer-color: map.get($systems, md-sys-color, on-primary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-primary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - disabled-state-container-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), $alpha: 0.12), - disabled-state-foreground-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - ), ( - // Color variants - primary: (), // Default, no overrides needed. - secondary: ( - foreground-color: map.get($systems, md-sys-color, on-secondary-container), - state-layer-color: map.get($systems, md-sys-color, on-secondary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-secondary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - tertiary: ( - foreground-color: map.get($systems, md-sys-color, on-tertiary-container), - state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-tertiary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ) - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_filled-button.scss b/src/material/core/tokens/m3/mat/_filled-button.scss deleted file mode 100644 index 6f45fb0b67b4..000000000000 --- a/src/material/core/tokens/m3/mat/_filled-button.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, filled-button); - -/// Generates custom tokens for the mat-flat-button. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-flat-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - horizontal-padding: token-definition.hardcode(24px, $exclude-hardcoded), - icon-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - icon-offset: token-definition.hardcode(-8px, $exclude-hardcoded), - state-layer-color: map.get($systems, md-sys-color, on-primary), - disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-primary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - ), ( - // Color variants: - primary: (), // Default, no overrides needed. - secondary: ( - state-layer-color: map.get($systems, md-sys-color, on-secondary), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-secondary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - tertiary: ( - state-layer-color: map.get($systems, md-sys-color, on-tertiary), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-tertiary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - error: ( - state-layer-color: map.get($systems, md-sys-color, on-error), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-error), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ) - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_list.scss b/src/material/core/tokens/m3/mat/_list.scss deleted file mode 100644 index d2617e62e982..000000000000 --- a/src/material/core/tokens/m3/mat/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, list); - -/// Generates custom tokens for the mat-list. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-list -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - active-indicator-color: map.get($systems, md-sys-color, secondary-container), - active-indicator-shape: map.get($systems, md-sys-shape, corner-full), - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_option.scss b/src/material/core/tokens/m3/mat/_option.scss deleted file mode 100644 index ad8aed6bb316..000000000000 --- a/src/material/core/tokens/m3/mat/_option.scss +++ /dev/null @@ -1,55 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, option); - -/// Generates custom tokens for the mat-option. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-option -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - selected-state-label-text-color: map.get($systems, md-sys-color, on-secondary-container), - label-text-color: map.get($systems, md-sys-color, on-surface), - hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), - $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity) - ), - focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), - $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity) - ), - selected-state-layer-color: map.get($systems, md-sys-color, secondary-container), - - // According to the spec the options have to be `label-large` in all typography - // dimensions, however this is inconsistent with the designs and with MDC's - // own implementation. This appears to be a bug in the spec, because MDC overrides - // the font size and weight to be `body-large` (see b/261838263). We make the same - // override here so the label looks correct. - label-text-size: map.get($systems, md-sys-typescale, body-large-size), - label-text-weight: map.get($systems, md-sys-typescale, body-large-weight), - label-text-font: map.get($systems, md-sys-typescale, label-large-font), - label-text-line-height: map.get($systems, md-sys-typescale, label-large-line-height), - label-text-tracking: map.get($systems, md-sys-typescale, label-large-tracking), - ), ( - // Color variants: - primary: ( - selected-state-label-text-color: map.get($systems, md-sys-color, on-primary-container), - selected-state-layer-color: map.get($systems, md-sys-color, primary-container), - ), - secondary: (), // Default, no overrides needed - tertiary: ( - selected-state-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-state-layer-color: map.get($systems, md-sys-color, tertiary-container), - ), - error: ( - selected-state-label-text-color: map.get($systems, md-sys-color, on-error-container), - selected-state-layer-color: map.get($systems, md-sys-color, error-container), - ) - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_protected-button.scss b/src/material/core/tokens/m3/mat/_protected-button.scss deleted file mode 100644 index f2e53e0667fa..000000000000 --- a/src/material/core/tokens/m3/mat/_protected-button.scss +++ /dev/null @@ -1,55 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -// Note: in M3 the "protected" button is called "elevated". -$prefix: (mat, protected-button); - -/// Generates custom tokens for the mat-raised-button. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-raised-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - horizontal-padding: token-definition.hardcode(24px, $exclude-hardcoded), - icon-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - icon-offset: token-definition.hardcode(-8px, $exclude-hardcoded), - state-layer-color: map.get($systems, md-sys-color, primary), - disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, primary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - ), ( - // Color variants: - primary: (), // Default, no overrides needed. - secondary: ( - state-layer-color: map.get($systems, md-sys-color, secondary), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, secondary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - tertiary: ( - state-layer-color: map.get($systems, md-sys-color, tertiary), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, tertiary), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - error: ( - state-layer-color: map.get($systems, md-sys-color, error), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, error), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ) - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_radio.scss b/src/material/core/tokens/m3/mat/_radio.scss deleted file mode 100644 index 042c6deecf5e..000000000000 --- a/src/material/core/tokens/m3/mat/_radio.scss +++ /dev/null @@ -1,45 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, radio); - -/// Generates custom tokens for the mat-radio. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-radio -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - ( - ripple-color: map.get($systems, md-sys-color, on-surface), - checked-ripple-color: map.get($systems, md-sys-color, primary), - disabled-label-color: - sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - label-text-color: map.get($systems, md-sys-color, on-surface), - label-text-font: map.get($systems, md-sys-typescale, body-medium-font), - label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), - label-text-size: map.get($systems, md-sys-typescale, body-medium-size), - label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), - label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), - ), - ( - // Color variants: - primary: (), - // Default, no overrides needed - secondary: - ( - checked-ripple-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - checked-ripple-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - checked-ripple-color: map.get($systems, md-sys-color, error), - ) - ) - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_slider.scss b/src/material/core/tokens/m3/mat/_slider.scss deleted file mode 100644 index bc6a8577ee32..000000000000 --- a/src/material/core/tokens/m3/mat/_slider.scss +++ /dev/null @@ -1,58 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, slider); - -/// Generates custom tokens for the mat-slider. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-slider -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - ripple-color: map.get($systems, md-sys-color, primary), - hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, primary), $alpha: 0.05), - focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, primary), $alpha: 0.2), - value-indicator-opacity: token-definition.hardcode(1, $exclude-hardcoded), - value-indicator-padding: token-definition.hardcode(0, $exclude-hardcoded), - value-indicator-width: token-definition.hardcode(28px, $exclude-hardcoded), - value-indicator-height: token-definition.hardcode(28px, $exclude-hardcoded), - value-indicator-caret-display: token-definition.hardcode(none, $exclude-hardcoded), - value-indicator-border-radius: - token-definition.hardcode(50% 50% 50% 0, $exclude-hardcoded), - value-indicator-text-transform: - token-definition.hardcode(rotate(45deg), $exclude-hardcoded), - value-indicator-container-transform: - token-definition.hardcode(translateX(-50%) rotate(-45deg), $exclude-hardcoded) - ), ( - // Color variants - primary: (), // Default, no overrides needed - secondary: ( - ripple-color: map.get($systems, md-sys-color, secondary), - hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, secondary), $alpha: 0.05), - focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, secondary), $alpha: 0.2), - ), - tertiary: ( - ripple-color: map.get($systems, md-sys-color, tertiary), - hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, tertiary), $alpha: 0.05), - focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, tertiary), $alpha: 0.2), - ), - error: ( - ripple-color: map.get($systems, md-sys-color, error), - hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, error), $alpha: 0.05), - focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, error), $alpha: 0.2), - ), - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_snack-bar.scss b/src/material/core/tokens/m3/mat/_snack-bar.scss deleted file mode 100644 index 670078989dbe..000000000000 --- a/src/material/core/tokens/m3/mat/_snack-bar.scss +++ /dev/null @@ -1,18 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, snack-bar); - -/// Generates custom tokens for the mat-snack-bar. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-snack-bar -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - button-color: map.get($systems, md-sys-color, inverse-primary), - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_stepper.scss b/src/material/core/tokens/m3/mat/_stepper.scss deleted file mode 100644 index b30723b5eb1e..000000000000 --- a/src/material/core/tokens/m3/mat/_stepper.scss +++ /dev/null @@ -1,79 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, stepper); - -/// Generates custom tokens for the mat-stepper. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-stepper -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - ( - container-color: map.get($systems, md-sys-color, surface), - line-color: map.get($systems, md-sys-color, outline), - header-hover-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, inverse-surface), - $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity) - ), - header-focus-state-layer-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, inverse-surface), - $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity) - ), - header-label-text-color: map.get($systems, md-sys-color, on-surface-variant), - header-optional-label-text-color: map.get($systems, md-sys-color, on-surface-variant), - header-selected-state-label-text-color: map.get($systems, md-sys-color, on-surface-variant), - header-icon-background-color: map.get($systems, md-sys-color, on-surface-variant), - header-icon-foreground-color: map.get($systems, md-sys-color, surface), - header-edit-state-icon-background-color: map.get($systems, md-sys-color, primary), - header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), - header-error-state-label-text-color: map.get($systems, md-sys-color, error), - header-error-state-icon-foreground-color: map.get($systems, md-sys-color, error), - header-error-state-icon-background-color: - token-definition.hardcode(transparent, $exclude-hardcoded), - container-text-font: map.get($systems, md-sys-typescale, body-medium-font), - header-label-text-font: map.get($systems, md-sys-typescale, title-small-font), - header-label-text-size: map.get($systems, md-sys-typescale, title-small-size), - header-label-text-weight: map.get($systems, md-sys-typescale, title-small-weight), - header-error-state-label-text-size: map.get($systems, md-sys-typescale, title-small-size), - header-focus-state-layer-shape: map.get($systems, md-sys-shape, corner-medium), - header-hover-state-layer-shape: map.get($systems, md-sys-shape, corner-medium), - header-selected-state-label-text-size: map.get($systems, md-sys-typescale, title-small-size), - header-selected-state-label-text-weight: map.get( - $systems, md-sys-typescale, title-small-weight), - header-selected-state-icon-background-color: map.get($systems, md-sys-color, primary), - header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), - ), ( - // Color variants - primary: ( - header-edit-state-icon-background-color: map.get($systems, md-sys-color, primary), - header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), - header-selected-state-icon-background-color: map.get($systems, md-sys-color, primary), - header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), - ), - secondary: ( - header-edit-state-icon-background-color: map.get($systems, md-sys-color, secondary), - header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-secondary), - header-selected-state-icon-background-color: map.get($systems, md-sys-color, secondary), - header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-secondary), - ), - tertiary: ( - header-edit-state-icon-background-color: map.get($systems, md-sys-color, tertiary), - header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-tertiary), - header-selected-state-icon-background-color: map.get($systems, md-sys-color, tertiary), - header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-tertiary), - ), - error: ( - header-edit-state-icon-background-color: map.get($systems, md-sys-color, error), - header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-error), - header-selected-state-icon-background-color: map.get($systems, md-sys-color, error), - header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-error), - ) - ) - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_switch.scss b/src/material/core/tokens/m3/mat/_switch.scss deleted file mode 100644 index 56fcac2b81d4..000000000000 --- a/src/material/core/tokens/m3/mat/_switch.scss +++ /dev/null @@ -1,56 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, switch); - -/// Generates custom tokens for the mat-slide-toggle. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-slide-toggle -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: ( - disabled-selected-handle-opacity: token-definition.hardcode(1, $exclude-hardcoded), - disabled-unselected-handle-opacity: token-definition.hardcode(0.38, $exclude-hardcoded), - unselected-handle-size: token-definition.hardcode(16px, $exclude-hardcoded), - selected-handle-size: token-definition.hardcode(24px, $exclude-hardcoded), - with-icon-handle-size: token-definition.hardcode(24px, $exclude-hardcoded), - pressed-handle-size: token-definition.hardcode(28px, $exclude-hardcoded), - selected-handle-horizontal-margin: token-definition.hardcode(0 24px, $exclude-hardcoded), - selected-with-icon-handle-horizontal-margin: - token-definition.hardcode(0 24px, $exclude-hardcoded), - selected-pressed-handle-horizontal-margin: - token-definition.hardcode(0 22px, $exclude-hardcoded), - unselected-handle-horizontal-margin: token-definition.hardcode(0 8px, $exclude-hardcoded), - unselected-with-icon-handle-horizontal-margin: - token-definition.hardcode(0 4px, $exclude-hardcoded), - unselected-pressed-handle-horizontal-margin: - token-definition.hardcode(0 2px, $exclude-hardcoded), - // The hidden and visible track represent whichever track is visible or - // hidden in the ui. This could be the .mdc-switch__track :before or - // :after depending on whether the switch is selected or unselected. - // - // The m2 slide-toggle uses transforms to hide & show the tracks while - // the m3 slide-toggle uses opacity. - visible-track-opacity: token-definition.hardcode(1, $exclude-hardcoded), - hidden-track-opacity: token-definition.hardcode(0, $exclude-hardcoded), - visible-track-transition: token-definition.hardcode(opacity 75ms, $exclude-hardcoded), - hidden-track-transition: token-definition.hardcode(opacity 75ms, $exclude-hardcoded), - track-outline-width: token-definition.hardcode(2px, $exclude-hardcoded), - track-outline-color: map.get($systems, md-sys-color, outline), - selected-track-outline-width: token-definition.hardcode(2px, $exclude-hardcoded), - selected-track-outline-color: token-definition.hardcode(transparent, $exclude-hardcoded), - disabled-unselected-track-outline-width: - token-definition.hardcode(2px, $exclude-hardcoded), - disabled-unselected-track-outline-color: map.get($systems, md-sys-color, on-surface), - label-text-color: map.get($systems, md-sys-color, on-surface), - label-text-font: map.get($systems, md-sys-typescale, body-medium-font), - label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), - label-text-size: map.get($systems, md-sys-typescale, body-medium-size), - label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), - label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mat/_tonal-button.scss b/src/material/core/tokens/m3/mat/_tonal-button.scss deleted file mode 100644 index 0069c240db12..000000000000 --- a/src/material/core/tokens/m3/mat/_tonal-button.scss +++ /dev/null @@ -1,101 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, tonal-button); - -/// Generates custom tokens for the mat-flat-button. -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of custom tokens for the mat-flat-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('filled-tonal-button', $systems, $exclude-hardcoded); - - $tokens: map.merge($mdc-tokens, ( - horizontal-padding: token-definition.hardcode(24px, $exclude-hardcoded), - icon-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - icon-offset: token-definition.hardcode(-8px, $exclude-hardcoded), - state-layer-color: map.get($systems, md-sys-color, on-secondary-container), - disabled-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-secondary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - pressed-state-layer-opacity: map.get($systems, md-sys-state, pressed-state-layer-opacity), - )); - - $variant-tokens: ( - // Color variants: - primary: (), - secondary: (), - tertiary: ( - container-color: map.get($systems, md-sys-color, tertiary-container), - focus-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - focus-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - hover-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - hover-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - pressed-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - pressed-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - with-icon-focus-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - with-icon-hover-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - with-icon-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-tertiary-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ), - error: ( - container-color: map.get($systems, md-sys-color, error-container), - focus-label-text-color: map.get($systems, md-sys-color, on-error-container), - focus-state-layer-color: map.get($systems, md-sys-color, on-error-container), - hover-label-text-color: map.get($systems, md-sys-color, on-error-container), - hover-state-layer-color: map.get($systems, md-sys-color, on-error-container), - label-text-color: map.get($systems, md-sys-color, on-error-container), - pressed-label-text-color: map.get($systems, md-sys-color, on-error-container), - pressed-state-layer-color: map.get($systems, md-sys-color, on-error-container), - with-icon-focus-icon-color: map.get($systems, md-sys-color, on-error-container), - with-icon-hover-icon-color: map.get($systems, md-sys-color, on-error-container), - with-icon-icon-color: map.get($systems, md-sys-color, on-error-container), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, on-error-container), - state-layer-color: map.get($systems, md-sys-color, on-error-container), - ripple-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-error-container), - $alpha: map.get($systems, md-sys-state, pressed-state-layer-opacity) - ), - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - - -/// Fixes inconsistent values in the tonal button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of tonal button tokens currently being generated. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('filled-tonal-button', (), false); - - @return token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity, - ), - ( - color: disabled-container-color, - opacity: disabled-container-opacity, - ) - )); -} diff --git a/src/material/core/tokens/m3/mdc/_checkbox.scss b/src/material/core/tokens/m3/mdc/_checkbox.scss deleted file mode 100644 index cecb2e9ec4ed..000000000000 --- a/src/material/core/tokens/m3/mdc/_checkbox.scss +++ /dev/null @@ -1,112 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, checkbox); - -/// Generates the tokens for MDC checkbox -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC checkbox -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('checkbox', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - selected-container-color: map.get($systems, md-sys-color, secondary), - selected-focus-container-color: map.get($systems, md-sys-color, secondary), - selected-focus-icon-color: map.get($systems, md-sys-color, on-secondary), - selected-focus-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-hover-container-color: map.get($systems, md-sys-color, secondary), - selected-hover-icon-color: map.get($systems, md-sys-color, on-secondary), - selected-hover-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-icon-color: map.get($systems, md-sys-color, on-secondary), - selected-pressed-container-color: map.get($systems, md-sys-color, secondary), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-secondary), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - selected-container-color: map.get($systems, md-sys-color, tertiary), - selected-focus-container-color: map.get($systems, md-sys-color, tertiary), - selected-focus-icon-color: map.get($systems, md-sys-color, on-tertiary), - selected-focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-hover-container-color: map.get($systems, md-sys-color, tertiary), - selected-hover-icon-color: map.get($systems, md-sys-color, on-tertiary), - selected-hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-icon-color: map.get($systems, md-sys-color, on-tertiary), - selected-pressed-container-color: map.get($systems, md-sys-color, tertiary), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-tertiary), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - selected-container-color: map.get($systems, md-sys-color, error), - selected-focus-container-color: map.get($systems, md-sys-color, error), - selected-focus-icon-color: map.get($systems, md-sys-color, on-error), - selected-focus-state-layer-color: map.get($systems, md-sys-color, error), - selected-hover-container-color: map.get($systems, md-sys-color, error), - selected-hover-icon-color: map.get($systems, md-sys-color, on-error), - selected-hover-state-layer-color: map.get($systems, md-sys-color, error), - selected-icon-color: map.get($systems, md-sys-color, on-error), - selected-pressed-container-color: map.get($systems, md-sys-color, error), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-error), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, error), - ) - ); - - @return token-definition.namespace-tokens( - $prefix, - ( - _fix-tokens($mdc-tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), - $token-slots - ); -} - -/// Renames the official checkbox tokens to match the names actually used in MDC's code (which are -/// different). This is a temporary workaround until MDC updates to use the correct names for the -/// tokens. -/// @param {Map} $tokens The map of checkbox tokens with the official tokens names -/// @param {Map} $all-tokens Map of all checkbox tokens, including hardcoded values. -/// This is necessary in order to do opacity lookups. -/// @return {Map} The given tokens, renamed to be compatible with MDC's token implementation. -@function _fix-tokens($tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('checkbox', (), false); - - $rename-keys: ( - selected-icon-color: selected-checkmark-color, - selected-disabled-icon-color: disabled-selected-checkmark-color, - selected-container-color: selected-icon-color, - selected-hover-container-color: selected-hover-icon-color, - selected-disabled-container-color: disabled-selected-icon-color, - selected-disabled-container-opacity: disabled-selected-icon-opacity, - selected-focus-container-color: selected-focus-icon-color, - selected-pressed-container-color: selected-pressed-icon-color, - unselected-disabled-outline-color: disabled-unselected-icon-color, - unselected-disabled-container-opacity: disabled-unselected-icon-opacity, - unselected-focus-outline-color: unselected-focus-icon-color, - unselected-hover-outline-color: unselected-hover-icon-color, - unselected-outline-color: unselected-icon-color, - unselected-pressed-outline-color: unselected-pressed-icon-color - ); - - $remapped-tokens: token-definition.rename-map-keys($tokens, $rename-keys); - $remapped-hardcoded-tokens: - token-definition.rename-map-keys($hardcoded-tokens, $rename-keys); - - @return token-definition.combine-color-tokens( - $remapped-tokens, $remapped-hardcoded-tokens, ( - ( - color: disabled-selected-icon-color, - opacity: disabled-selected-icon-opacity, - ), - ( - color: disabled-unselected-icon-color, - opacity: disabled-unselected-icon-opacity, - ), - )); -} diff --git a/src/material/core/tokens/m3/mdc/_chip.scss b/src/material/core/tokens/m3/mdc/_chip.scss deleted file mode 100644 index 27de7dcf1090..000000000000 --- a/src/material/core/tokens/m3/mdc/_chip.scss +++ /dev/null @@ -1,93 +0,0 @@ -@use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, chip); - -/// Generates the tokens for MDC chip -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC chip -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - // MDC has a chip component, but they seem to have made up the tokens rather than using ones - // generated from the token database, therefore we need a custom token function for it. - $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, label-text, label-large), - ( - container-shape-radius: token-definition.hardcode(8px, $exclude-hardcoded), - with-avatar-avatar-size: token-definition.hardcode(24px, $exclude-hardcoded), - with-avatar-avatar-shape-radius: token-definition.hardcode(24px, $exclude-hardcoded), - label-text-color: map.get($systems, md-sys-color, on-surface-variant), - disabled-label-text-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), - $alpha: 0.38, - ), - with-icon-icon-size: token-definition.hardcode(18px, $exclude-hardcoded), - with-icon-icon-color: map.get($systems, md-sys-color, on-surface-variant), - with-icon-disabled-icon-color: map.get($systems, md-sys-color, on-surface), - with-icon-selected-icon-color: map.get($systems, md-sys-color, on-secondary-container), - with-trailing-icon-trailing-icon-color: map.get($systems, md-sys-color, on-surface-variant), - with-trailing-icon-disabled-trailing-icon-color: map.get($systems, md-sys-color, on-surface), - focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), - focus-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - outline-width: token-definition.hardcode(1px, $exclude-hardcoded), - outline-color: map.get($systems, md-sys-color, outline), - disabled-outline-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), - $alpha: 0.12, - ), - focus-outline-color: map.get($systems, md-sys-color, on-surface-variant), - hover-state-layer-color: map.get($systems, md-sys-color, on-surface-variant), - hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - with-avatar-disabled-avatar-opacity: - token-definition.hardcode(0.38, $exclude-hardcoded), - elevated-selected-container-color: map.get($systems, md-sys-color, secondary-container), - // In the M3 tokens this is a `surface` color, but in the MDC implementation it's - // never being emitted. We emit `transparent` so consumers override the color. - elevated-container-color: token-definition.hardcode(transparent, $exclude-hardcoded), - flat-selected-outline-width: token-definition.hardcode(0, $exclude-hardcoded), - selected-label-text-color: map.get($systems, md-sys-color, on-secondary-container), - flat-disabled-selected-container-color: sass-utils.safe-color-change( - map.get($systems, md-sys-color, on-surface), - $alpha: 0.12, - ), - selected-hover-state-layer-color: map.get($systems, md-sys-color, on-secondary-container), - selected-hover-state-layer-opacity: - map.get($systems, md-sys-state, hover-state-layer-opacity), - selected-focus-state-layer-color: map.get($systems, md-sys-color, on-secondary-container), - selected-focus-state-layer-opacity: - map.get($systems, md-sys-state, focus-state-layer-opacity), - with-icon-disabled-icon-opacity: token-definition.hardcode(0.38, $exclude-hardcoded), - with-trailing-icon-disabled-trailing-icon-opacity: - token-definition.hardcode(0.38, $exclude-hardcoded), - ), - ), ( - // Color variants: - primary: ( - with-icon-selected-icon-color: map.get($systems, md-sys-color, on-primary-container), - elevated-selected-container-color: map.get($systems, md-sys-color, primary-container), - selected-label-text-color: map.get($systems, md-sys-color, on-primary-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, on-primary-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, on-primary-container), - ), - secondary: (), // Default, no overrides needed. - tertiary: ( - with-icon-selected-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - elevated-selected-container-color: map.get($systems, md-sys-color, tertiary-container), - selected-label-text-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, on-tertiary-container), - ), - error: ( - with-icon-selected-icon-color: map.get($systems, md-sys-color, on-error-container), - elevated-selected-container-color: map.get($systems, md-sys-color, error-container), - selected-label-text-color: map.get($systems, md-sys-color, on-error-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, on-error-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, on-error-container), - ) - ); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_dialog.scss b/src/material/core/tokens/m3/mdc/_dialog.scss deleted file mode 100644 index 5f2356026964..000000000000 --- a/src/material/core/tokens/m3/mdc/_dialog.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, dialog); - -/// Generates the tokens for MDC dialog -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC dialog -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('dialog', $systems, $exclude-hardcoded); - $tokens: token-definition.rename-map-keys($tokens, ( - headline-color: subhead-color, - headline-font: subhead-font, - headline-line-height: subhead-line-height, - headline-size: subhead-size, - headline-tracking: subhead-tracking, - headline-weight: subhead-weight, - )); - - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_extended-fab.scss b/src/material/core/tokens/m3/mdc/_extended-fab.scss deleted file mode 100644 index f4469a2776b5..000000000000 --- a/src/material/core/tokens/m3/mdc/_extended-fab.scss +++ /dev/null @@ -1,42 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, extended-fab); - -/// Generates the tokens for MDC extended-fab -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC extended-fab -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: - token-definition.get-mdc-tokens('extended-fab-primary', $systems, $exclude-hardcoded); - $elevation-tokens: ( - container-elevation, - focus-container-elevation, - hover-container-elevation, - pressed-container-elevation, - ); - - @each $token in $elevation-tokens { - $elevation: map.get($tokens, $token); - - @if ($elevation != null) { - $tokens: map.set($tokens, $token + '-shadow', elevation.get-box-shadow($elevation)); - } - } - - $variant-tokens: ( - // Color variants - primary: (), // Default, no overrides needed. - secondary: token-definition.get-mdc-tokens( - 'extended-fab-secondary', $systems, $exclude-hardcoded), - tertiary: token-definition.get-mdc-tokens( - 'extended-fab-tertiary', $systems, $exclude-hardcoded) - ); - - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_fab-small.scss b/src/material/core/tokens/m3/mdc/_fab-small.scss deleted file mode 100644 index 6ac3bef75a4f..000000000000 --- a/src/material/core/tokens/m3/mdc/_fab-small.scss +++ /dev/null @@ -1,41 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, fab-small); - -/// Generates the tokens for MDC fab-small -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC fab-small -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('fab-primary-small', $systems, $exclude-hardcoded); - $elevation-tokens: ( - container-elevation, - focus-container-elevation, - hover-container-elevation, - pressed-container-elevation, - ); - - @each $token in $elevation-tokens { - $elevation: map.get($tokens, $token); - - @if ($elevation != null) { - $tokens: map.set($tokens, $token + '-shadow', elevation.get-box-shadow($elevation)); - } - } - - $variant-tokens: ( - // Color variants - primary: (), // Default, no overrides needed. - secondary: token-definition.get-mdc-tokens( - 'fab-secondary-small', $systems, $exclude-hardcoded), - tertiary: token-definition.get-mdc-tokens( - 'fab-tertiary-small', $systems, $exclude-hardcoded) - ); - - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_fab.scss b/src/material/core/tokens/m3/mdc/_fab.scss deleted file mode 100644 index 835e7196a5bc..000000000000 --- a/src/material/core/tokens/m3/mdc/_fab.scss +++ /dev/null @@ -1,39 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, fab); - -/// Generates the tokens for MDC fab -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC fab -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('fab-primary', $systems, $exclude-hardcoded); - $elevation-tokens: ( - container-elevation, - focus-container-elevation, - hover-container-elevation, - pressed-container-elevation, - ); - - @each $token in $elevation-tokens { - $elevation: map.get($tokens, $token); - - @if ($elevation != null) { - $tokens: map.set($tokens, $token + '-shadow', elevation.get-box-shadow($elevation)); - } - } - - $variant-tokens: ( - // Color variants - primary: (), // Default, no overrides needed. - secondary: token-definition.get-mdc-tokens('fab-secondary', $systems, $exclude-hardcoded), - tertiary: token-definition.get-mdc-tokens('fab-tertiary', $systems, $exclude-hardcoded) - ); - - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_filled-button.scss b/src/material/core/tokens/m3/mdc/_filled-button.scss deleted file mode 100644 index 4d267db82ed1..000000000000 --- a/src/material/core/tokens/m3/mdc/_filled-button.scss +++ /dev/null @@ -1,86 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, filled-button); - -/// Generates the tokens for MDC filled-button -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC filled-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('filled-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed. - secondary: ( - container-color: map.get($systems, md-sys-color, secondary), - focus-label-text-color: map.get($systems, md-sys-color, on-secondary), - focus-state-layer-color: map.get($systems, md-sys-color, on-secondary), - hover-label-text-color: map.get($systems, md-sys-color, on-secondary), - hover-state-layer-color: map.get($systems, md-sys-color, on-secondary), - label-text-color: map.get($systems, md-sys-color, on-secondary), - pressed-label-text-color: map.get($systems, md-sys-color, on-secondary), - pressed-state-layer-color: map.get($systems, md-sys-color, on-secondary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, on-secondary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, on-secondary), - with-icon-icon-color: map.get($systems, md-sys-color, on-secondary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, on-secondary) - ), - tertiary: ( - container-color: map.get($systems, md-sys-color, tertiary), - focus-label-text-color: map.get($systems, md-sys-color, on-tertiary), - focus-state-layer-color: map.get($systems, md-sys-color, on-tertiary), - hover-label-text-color: map.get($systems, md-sys-color, on-tertiary), - hover-state-layer-color: map.get($systems, md-sys-color, on-tertiary), - label-text-color: map.get($systems, md-sys-color, on-tertiary), - pressed-label-text-color: map.get($systems, md-sys-color, on-tertiary), - pressed-state-layer-color: map.get($systems, md-sys-color, on-tertiary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, on-tertiary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, on-tertiary), - with-icon-icon-color: map.get($systems, md-sys-color, on-tertiary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, on-tertiary) - ), - error: ( - container-color: map.get($systems, md-sys-color, error), - focus-label-text-color: map.get($systems, md-sys-color, on-error), - focus-state-layer-color: map.get($systems, md-sys-color, on-error), - hover-label-text-color: map.get($systems, md-sys-color, on-error), - hover-state-layer-color: map.get($systems, md-sys-color, on-error), - label-text-color: map.get($systems, md-sys-color, on-error), - pressed-label-text-color: map.get($systems, md-sys-color, on-error), - pressed-state-layer-color: map.get($systems, md-sys-color, on-error), - with-icon-focus-icon-color: map.get($systems, md-sys-color, on-error), - with-icon-hover-icon-color: map.get($systems, md-sys-color, on-error), - with-icon-icon-color: map.get($systems, md-sys-color, on-error), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, on-error) - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($mdc-tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - - -/// Fixes inconsistent values in the filled button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of filled button tokens currently being generated. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('filled-button', (), false); - - @return token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity, - ), - ( - color: disabled-container-color, - opacity: disabled-container-opacity, - ) - )); -} diff --git a/src/material/core/tokens/m3/mdc/_filled-text-field.scss b/src/material/core/tokens/m3/mdc/_filled-text-field.scss deleted file mode 100644 index 7311e947fddc..000000000000 --- a/src/material/core/tokens/m3/mdc/_filled-text-field.scss +++ /dev/null @@ -1,91 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, filled-text-field); - -/// Generates the tokens for MDC filled-text-field -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC filled-text-field -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'filled-text-field', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - caret-color: map.get($systems, md-sys-color, secondary), - focus-active-indicator-color: map.get($systems, md-sys-color, secondary), - focus-label-text-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - caret-color: map.get($systems, md-sys-color, tertiary), - focus-active-indicator-color: map.get($systems, md-sys-color, tertiary), - focus-label-text-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - caret-color: map.get($systems, md-sys-color, error), - focus-active-indicator-color: map.get($systems, md-sys-color, error), - focus-label-text-color: map.get($systems, md-sys-color, error), - ), - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($mdc-tokens, $systems), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens), $systems) - ), $token-slots); -} - - -/// Fixes inconsistent values in the filled text field tokens so that they can produce valid -/// styles. -/// @param {Map} $initial-tokens Map of filled text field tokens currently being generated. -/// @param {Map} $systems The MDC system tokens -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens, $systems) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('filled-text-field', (), false); - - $tokens: token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-active-indicator-color, - opacity: disabled-active-indicator-opacity - ), - ( - color: disabled-container-color, - opacity: disabled-container-opacity - ), - ( - color: disabled-input-text-color, - opacity: disabled-input-text-opacity - ), - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity - ), - ( - color: disabled-leading-icon-color, - opacity: disabled-leading-icon-opacity - ), - ( - color: disabled-supporting-text-color, - opacity: disabled-supporting-text-opacity - ), - ( - color: disabled-trailing-icon-color, - opacity: disabled-trailing-icon-opacity - ) - )); - - // The system tokens have this set as `corner-extra-small-top` which assumes that the value will - // be set as a `border-radius`, however we set it as `border-top-left-radius` and - // `border-top-right-radius`. Changing it at this point will be breaking so instead we remap it. - @if (map.get($tokens, container-shape)) { - $tokens: map.set($tokens, container-shape, map.get($systems, md-sys-shape, corner-extra-small)); - } - - @return $tokens; -} diff --git a/src/material/core/tokens/m3/mdc/_icon-button.scss b/src/material/core/tokens/m3/mdc/_icon-button.scss deleted file mode 100644 index 55279ff6915f..000000000000 --- a/src/material/core/tokens/m3/mdc/_icon-button.scss +++ /dev/null @@ -1,60 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, icon-button); - -/// Generates the tokens for MDC icon-button -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC icon-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('icon-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: ( - icon-color: map.get($systems, md-sys-color, primary) - ), - secondary: ( - icon-color: map.get($systems, md-sys-color, secondary) - ), - tertiary: ( - icon-color: map.get($systems, md-sys-color, tertiary) - ), - error: ( - icon-color: map.get($systems, md-sys-color, error) - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - -/// Fixes inconsistent values in the icon button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of icon button tokens currently being generated. -/// @param {Map} $all-tokens Map of all icon button tokens, including hardcoded values. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('icon-button', (), false); - - $rename-keys: ( - unselected-icon-color: icon-color, - ); - - $remapped-tokens: token-definition.rename-map-keys($tokens, $rename-keys); - $remapped-hardcoded-tokens: - token-definition.rename-map-keys($hardcoded-tokens, $rename-keys); - - @return token-definition.combine-color-tokens( - $remapped-tokens, $remapped-hardcoded-tokens, ( - ( - color: disabled-icon-color, - opacity: disabled-icon-opacity, - ), - )); -} diff --git a/src/material/core/tokens/m3/mdc/_list.scss b/src/material/core/tokens/m3/mdc/_list.scss deleted file mode 100644 index 5bd052eed16c..000000000000 --- a/src/material/core/tokens/m3/mdc/_list.scss +++ /dev/null @@ -1,37 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, list); - -/// Generates the tokens for MDC list -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC list -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('list', $systems, $exclude-hardcoded); - - @return token-definition.namespace-tokens($prefix, _fix-tokens($mdc-tokens), $token-slots); -} - -/// Fixes values in the list tokens that are inconsistent with its usage. -/// @param {Map} $initial-tokens Map of list tokens currently being generated. -/// @return {Map} The given tokens, with the inconsistent values replaced with valid ones. -@function _fix-tokens($tokens) { - // This does not match the spec, which defines this to be `md.sys.color.surface`. - // However, this interferes with the use case of placing a list on other components. For example, - // the bottom sheet's container color is `md.sys.color.surface-container-low`. Instead, allow the - // list to just display the colors for its background. - @if map.get($tokens, list-item-container-color) != null { - $tokens: map.set($tokens, list-item-container-color, transparent); - } - - // Match spec, which has list-item-leading-icon-size of 24px. - // Current version of tokens (0_161) has 18px. - @if map.get($tokens, list-item-leading-icon-size) != null { - $tokens: map.set($tokens, list-item-leading-icon-size, 24px); - } - - @return $tokens; -} diff --git a/src/material/core/tokens/m3/mdc/_outlined-button.scss b/src/material/core/tokens/m3/mdc/_outlined-button.scss deleted file mode 100644 index 25800d740579..000000000000 --- a/src/material/core/tokens/m3/mdc/_outlined-button.scss +++ /dev/null @@ -1,84 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-button); - -/// Generates the tokens for MDC outlined-button -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC outlined-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'outlined-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed. - secondary: ( - focus-label-text-color: map.get($systems, md-sys-color, secondary), - focus-outline-color: map.get($systems, md-sys-color, secondary), - focus-state-layer-color: map.get($systems, md-sys-color, secondary), - hover-label-text-color: map.get($systems, md-sys-color, secondary), - hover-state-layer-color: map.get($systems, md-sys-color, secondary), - label-text-color: map.get($systems, md-sys-color, secondary), - pressed-label-text-color: map.get($systems, md-sys-color, secondary), - pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, secondary) - ), - tertiary: ( - focus-label-text-color: map.get($systems, md-sys-color, tertiary), - focus-outline-color: map.get($systems, md-sys-color, tertiary), - focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - hover-label-text-color: map.get($systems, md-sys-color, tertiary), - hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, tertiary) - ), - error: ( - focus-label-text-color: map.get($systems, md-sys-color, error), - focus-outline-color: map.get($systems, md-sys-color, error), - focus-state-layer-color: map.get($systems, md-sys-color, error), - hover-label-text-color: map.get($systems, md-sys-color, error), - hover-state-layer-color: map.get($systems, md-sys-color, error), - label-text-color: map.get($systems, md-sys-color, error), - pressed-label-text-color: map.get($systems, md-sys-color, error), - pressed-state-layer-color: map.get($systems, md-sys-color, error), - with-icon-focus-icon-color: map.get($systems, md-sys-color, error), - with-icon-hover-icon-color: map.get($systems, md-sys-color, error), - with-icon-icon-color: map.get($systems, md-sys-color, error), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, error) - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($mdc-tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - -/// Fixes inconsistent values in the outlined button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of outlined button tokens currently being generated. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - $hardcoded-tokens: token-definition.get-mdc-tokens('outlined-button', (), false); - - @return token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity, - ), - ( - color: disabled-outline-color, - opacity: disabled-outline-opacity, - ) - )); -} diff --git a/src/material/core/tokens/m3/mdc/_outlined-text-field.scss b/src/material/core/tokens/m3/mdc/_outlined-text-field.scss deleted file mode 100644 index bdf28178edf2..000000000000 --- a/src/material/core/tokens/m3/mdc/_outlined-text-field.scss +++ /dev/null @@ -1,86 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-text-field); - -/// Generates the tokens for MDC outlined-text-field -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC outlined-text-field -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'outlined-text-field', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - caret-color: map.get($systems, md-sys-color, secondary), - focus-label-text-color: map.get($systems, md-sys-color, secondary), - focus-outline-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - caret-color: map.get($systems, md-sys-color, tertiary), - focus-label-text-color: map.get($systems, md-sys-color, tertiary), - focus-outline-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - caret-color: map.get($systems, md-sys-color, error), - focus-label-text-color: map.get($systems, md-sys-color, error), - focus-outline-color: map.get($systems, md-sys-color, error), - ), - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($mdc-tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - -/// Fixes inconsistent values in the outlined text field tokens so that they can produce valid -/// styles. -/// @param {Map} $initial-tokens Map of outlined text field tokens currently being generated. -/// @param {Map} $all-tokens Map of all outlined text field tokens, including hardcoded values. -/// This is necessary in order to do opacity lookups. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('outlined-text-field', (), false); - - @return token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-outline-color, - opacity: disabled-outline-opacity - ), - ( - color: disabled-active-indicator-color, - opacity: disabled-active-indicator-opacity - ), - ( - color: disabled-container-color, - opacity: disabled-container-opacity - ), - ( - color: disabled-input-text-color, - opacity: disabled-input-text-opacity - ), - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity - ), - ( - color: disabled-leading-icon-color, - opacity: disabled-leading-icon-opacity - ), - ( - color: disabled-supporting-text-color, - opacity: disabled-supporting-text-opacity - ), - ( - color: disabled-trailing-icon-color, - opacity: disabled-trailing-icon-opacity - ) - )); -} diff --git a/src/material/core/tokens/m3/mdc/_plain-tooltip.scss b/src/material/core/tokens/m3/mdc/_plain-tooltip.scss deleted file mode 100644 index 6fd4f1545c0f..000000000000 --- a/src/material/core/tokens/m3/mdc/_plain-tooltip.scss +++ /dev/null @@ -1,15 +0,0 @@ -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, plain-tooltip); - -/// Generates the tokens for MDC plain-tooltip -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC plain-tooltip -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('plain-tooltip', $systems, $exclude-hardcoded); - - @return token-definition.namespace-tokens($prefix, $mdc-tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_protected-button.scss b/src/material/core/tokens/m3/mdc/_protected-button.scss deleted file mode 100644 index be2f01760a5c..000000000000 --- a/src/material/core/tokens/m3/mdc/_protected-button.scss +++ /dev/null @@ -1,101 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, protected-button); - -/// Generates the tokens for MDC protected-button -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC protected-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - // Note: in M3 the "protected" button is called "elevated". - $tokens: token-definition.get-mdc-tokens('elevated-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed. - secondary: ( - focus-label-text-color: map.get($systems, md-sys-color, secondary), - focus-state-layer-color: map.get($systems, md-sys-color, secondary), - hover-label-text-color: map.get($systems, md-sys-color, secondary), - hover-state-layer-color: map.get($systems, md-sys-color, secondary), - label-text-color: map.get($systems, md-sys-color, secondary), - pressed-label-text-color: map.get($systems, md-sys-color, secondary), - pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, secondary) - ), - tertiary: ( - focus-label-text-color: map.get($systems, md-sys-color, tertiary), - focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - hover-label-text-color: map.get($systems, md-sys-color, tertiary), - hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, tertiary) - ), - error: ( - focus-label-text-color: map.get($systems, md-sys-color, error), - focus-state-layer-color: map.get($systems, md-sys-color, error), - hover-label-text-color: map.get($systems, md-sys-color, error), - hover-state-layer-color: map.get($systems, md-sys-color, error), - label-text-color: map.get($systems, md-sys-color, error), - pressed-label-text-color: map.get($systems, md-sys-color, error), - pressed-state-layer-color: map.get($systems, md-sys-color, error), - with-icon-focus-icon-color: map.get($systems, md-sys-color, error), - with-icon-hover-icon-color: map.get($systems, md-sys-color, error), - with-icon-icon-color: map.get($systems, md-sys-color, error), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, error) - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)), - ), $token-slots); -} - - -/// Fixes inconsistent values in the protected button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of protected button tokens currently being generated. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - // Need to get the hardcoded values, because they include - // opacities that are used for the disabled state. - $hardcoded-tokens: token-definition.get-mdc-tokens('elevated-button', (), false); - $tokens: $initial-tokens; - $elevation-tokens: ( - container-elevation, - disabled-container-elevation, - focus-container-elevation, - hover-container-elevation, - pressed-container-elevation, - ); - - @each $token in $elevation-tokens { - $elevation: map.get($tokens, $token); - - @if ($elevation != null) { - $tokens: map.set($tokens, $token + '-shadow', elevation.get-box-shadow($elevation)); - } - } - - @return token-definition.combine-color-tokens($tokens, $hardcoded-tokens, ( - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity, - ), - ( - color: disabled-container-color, - opacity: disabled-container-opacity, - ) - )); -} diff --git a/src/material/core/tokens/m3/mdc/_radio.scss b/src/material/core/tokens/m3/mdc/_radio.scss deleted file mode 100644 index 24bb30d15128..000000000000 --- a/src/material/core/tokens/m3/mdc/_radio.scss +++ /dev/null @@ -1,47 +0,0 @@ -@use 'sass:map'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, radio); - -/// Generates the tokens for MDC radio -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC radio -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('radio-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - selected-focus-icon-color: map.get($systems, md-sys-color, secondary), - selected-focus-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-hover-icon-color: map.get($systems, md-sys-color, secondary), - selected-hover-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-icon-color: map.get($systems, md-sys-color, secondary), - selected-pressed-icon-color: map.get($systems, md-sys-color, secondary), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - selected-focus-icon-color: map.get($systems, md-sys-color, tertiary), - selected-focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-hover-icon-color: map.get($systems, md-sys-color, tertiary), - selected-hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-icon-color: map.get($systems, md-sys-color, tertiary), - selected-pressed-icon-color: map.get($systems, md-sys-color, tertiary), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - selected-focus-icon-color: map.get($systems, md-sys-color, error), - selected-focus-state-layer-color: map.get($systems, md-sys-color, error), - selected-hover-icon-color: map.get($systems, md-sys-color, error), - selected-hover-state-layer-color: map.get($systems, md-sys-color, error), - selected-icon-color: map.get($systems, md-sys-color, error), - selected-pressed-icon-color: map.get($systems, md-sys-color, error), - unselected-pressed-state-layer-color: map.get($systems, md-sys-color, error), - ), - ); - - @return token-definition.namespace-tokens( - $prefix, ($mdc-tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_slider.scss b/src/material/core/tokens/m3/mdc/_slider.scss deleted file mode 100644 index eb3c9271b360..000000000000 --- a/src/material/core/tokens/m3/mdc/_slider.scss +++ /dev/null @@ -1,69 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, slider); - -/// Generates the tokens for MDC slider -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC slider -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('slider', $systems, $exclude-hardcoded); - $handle-elevation: map.get($tokens, 'handle-elevation'); - - @if ($handle-elevation != null) { - $tokens: map.set($tokens, 'handle-elevation', elevation.get-box-shadow($handle-elevation)); - } - - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - active-track-color: map.get($systems, md-sys-color, secondary), - focus-handle-color: map.get($systems, md-sys-color, secondary), - focus-state-layer-color: map.get($systems, md-sys-color, secondary), - handle-color: map.get($systems, md-sys-color, secondary), - hover-handle-color: map.get($systems, md-sys-color, secondary), - hover-state-layer-color: map.get($systems, md-sys-color, secondary), - label-container-color: map.get($systems, md-sys-color, secondary), - label-label-text-color: map.get($systems, md-sys-color, on-secondary), - pressed-handle-color: map.get($systems, md-sys-color, secondary), - pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-secondary), - with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-secondary), - ), - tertiary: ( - active-track-color: map.get($systems, md-sys-color, tertiary), - focus-handle-color: map.get($systems, md-sys-color, tertiary), - focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - handle-color: map.get($systems, md-sys-color, tertiary), - hover-handle-color: map.get($systems, md-sys-color, tertiary), - hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - label-container-color: map.get($systems, md-sys-color, tertiary), - label-label-text-color: map.get($systems, md-sys-color, on-tertiary), - pressed-handle-color: map.get($systems, md-sys-color, tertiary), - pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-tertiary), - with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-tertiary), - ), - error: ( - active-track-color: map.get($systems, md-sys-color, error), - focus-handle-color: map.get($systems, md-sys-color, error), - focus-state-layer-color: map.get($systems, md-sys-color, error), - handle-color: map.get($systems, md-sys-color, error), - hover-handle-color: map.get($systems, md-sys-color, error), - hover-state-layer-color: map.get($systems, md-sys-color, error), - label-container-color: map.get($systems, md-sys-color, error), - label-label-text-color: map.get($systems, md-sys-color, on-error), - pressed-handle-color: map.get($systems, md-sys-color, error), - pressed-state-layer-color: map.get($systems, md-sys-color, error), - with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-error), - with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-error), - ), - ); - - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_snack-bar.scss b/src/material/core/tokens/m3/mdc/_snack-bar.scss deleted file mode 100644 index ec5ad2d2b67e..000000000000 --- a/src/material/core/tokens/m3/mdc/_snack-bar.scss +++ /dev/null @@ -1,15 +0,0 @@ -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, snackbar); - -/// Generates the tokens for MDC snackbar -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC snackbar -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('snackbar', $systems, $exclude-hardcoded); - - @return token-definition.namespace-tokens($prefix, $mdc-tokens, $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_switch.scss b/src/material/core/tokens/m3/mdc/_switch.scss deleted file mode 100644 index e8b5374dc10d..000000000000 --- a/src/material/core/tokens/m3/mdc/_switch.scss +++ /dev/null @@ -1,82 +0,0 @@ -@use 'sass:map'; -@use '../../../style/elevation'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, switch); - -/// Generates the tokens for MDC switch -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC switch -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: token-definition.get-mdc-tokens('switch', $systems, $exclude-hardcoded); - $elevation-tokens: (handle-elevation, disabled-handle-elevation); - - @each $token in $elevation-tokens { - $elevation: map.get($tokens, $token); - - @if ($elevation != null) { - $tokens: map.set($tokens, $token + '-shadow', elevation.get-box-shadow($elevation)); - } - } - - $variant-tokens: ( - primary: (), // Default, no overrides needed - secondary: ( - selected-focus-handle-color: map.get($systems, md-sys-color, secondary-container), - selected-focus-icon-color: map.get($systems, md-sys-color, on-secondary-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-focus-track-color: map.get($systems, md-sys-color, secondary), - selected-handle-color: map.get($systems, md-sys-color, on-secondary), - selected-hover-handle-color: map.get($systems, md-sys-color, secondary-container), - selected-hover-icon-color: map.get($systems, md-sys-color, on-secondary-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-hover-track-color: map.get($systems, md-sys-color, secondary), - selected-icon-color: map.get($systems, md-sys-color, on-secondary-container), - selected-pressed-handle-color: map.get($systems, md-sys-color, secondary-container), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-secondary-container), - selected-pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - selected-pressed-track-color: map.get($systems, md-sys-color, secondary), - selected-track-color: map.get($systems, md-sys-color, secondary), - ), - tertiary: ( - selected-focus-handle-color: map.get($systems, md-sys-color, tertiary-container), - selected-focus-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-focus-track-color: map.get($systems, md-sys-color, tertiary), - selected-handle-color: map.get($systems, md-sys-color, on-tertiary), - selected-hover-handle-color: map.get($systems, md-sys-color, tertiary-container), - selected-hover-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-hover-track-color: map.get($systems, md-sys-color, tertiary), - selected-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-pressed-handle-color: map.get($systems, md-sys-color, tertiary-container), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-tertiary-container), - selected-pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - selected-pressed-track-color: map.get($systems, md-sys-color, tertiary), - selected-track-color: map.get($systems, md-sys-color, tertiary), - ), - error: ( - selected-focus-handle-color: map.get($systems, md-sys-color, error-container), - selected-focus-icon-color: map.get($systems, md-sys-color, on-error-container), - selected-focus-state-layer-color: map.get($systems, md-sys-color, error), - selected-focus-track-color: map.get($systems, md-sys-color, error), - selected-handle-color: map.get($systems, md-sys-color, on-error), - selected-hover-handle-color: map.get($systems, md-sys-color, error-container), - selected-hover-icon-color: map.get($systems, md-sys-color, on-error-container), - selected-hover-state-layer-color: map.get($systems, md-sys-color, error), - selected-hover-track-color: map.get($systems, md-sys-color, error), - selected-icon-color: map.get($systems, md-sys-color, on-error-container), - selected-pressed-handle-color: map.get($systems, md-sys-color, error-container), - selected-pressed-icon-color: map.get($systems, md-sys-color, on-error-container), - selected-pressed-state-layer-color: map.get($systems, md-sys-color, error), - selected-pressed-track-color: map.get($systems, md-sys-color, error), - selected-track-color: map.get($systems, md-sys-color, error), - ), - ); - - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); -} diff --git a/src/material/core/tokens/m3/mdc/_text-button.scss b/src/material/core/tokens/m3/mdc/_text-button.scss deleted file mode 100644 index eb5a0340582d..000000000000 --- a/src/material/core/tokens/m3/mdc/_text-button.scss +++ /dev/null @@ -1,79 +0,0 @@ -@use 'sass:map'; -@use 'sass:meta'; -@use '../../token-definition'; - -// The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, text-button); - -/// Generates the tokens for MDC text-button -/// @param {Map} $systems The MDC system tokens -/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values -/// @param {Map} $token-slots Possible token slots -/// @return {Map} A set of tokens for the MDC text-button -@function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens('text-button', $systems, $exclude-hardcoded); - $variant-tokens: ( - primary: (), // Default, no overrides needed. - secondary: ( - focus-label-text-color: map.get($systems, md-sys-color, secondary), - focus-state-layer-color: map.get($systems, md-sys-color, secondary), - hover-label-text-color: map.get($systems, md-sys-color, secondary), - hover-state-layer-color: map.get($systems, md-sys-color, secondary), - label-text-color: map.get($systems, md-sys-color, secondary), - pressed-label-text-color: map.get($systems, md-sys-color, secondary), - pressed-state-layer-color: map.get($systems, md-sys-color, secondary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-icon-color: map.get($systems, md-sys-color, secondary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, secondary) - ), - tertiary: ( - focus-label-text-color: map.get($systems, md-sys-color, tertiary), - focus-state-layer-color: map.get($systems, md-sys-color, tertiary), - hover-label-text-color: map.get($systems, md-sys-color, tertiary), - hover-state-layer-color: map.get($systems, md-sys-color, tertiary), - label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-label-text-color: map.get($systems, md-sys-color, tertiary), - pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), - with-icon-focus-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-hover-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-icon-color: map.get($systems, md-sys-color, tertiary), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, tertiary) - ), - error: ( - focus-label-text-color: map.get($systems, md-sys-color, error), - focus-state-layer-color: map.get($systems, md-sys-color, error), - hover-label-text-color: map.get($systems, md-sys-color, error), - hover-state-layer-color: map.get($systems, md-sys-color, error), - label-text-color: map.get($systems, md-sys-color, error), - pressed-label-text-color: map.get($systems, md-sys-color, error), - pressed-state-layer-color: map.get($systems, md-sys-color, error), - with-icon-focus-icon-color: map.get($systems, md-sys-color, error), - with-icon-hover-icon-color: map.get($systems, md-sys-color, error), - with-icon-icon-color: map.get($systems, md-sys-color, error), - with-icon-pressed-icon-color: map.get($systems, md-sys-color, error) - ) - ); - - @return token-definition.namespace-tokens($prefix, ( - _fix-tokens($mdc-tokens), - token-definition.map-values($variant-tokens, meta.get-function(_fix-tokens)) - ), $token-slots); -} - - -/// Fixes inconsistent values in the text button tokens so that they can produce valid styles. -/// @param {Map} $initial-tokens Map of text button tokens currently being generated. -/// @return {Map} The given tokens, with the invalid values replaced with valid ones. -@function _fix-tokens($initial-tokens) { - // Need to get the hardcoded values, because they include opacities that are used for the disabled - // state. - $hardcoded-tokens: token-definition.get-mdc-tokens('text-button', (), false); - - @return token-definition.combine-color-tokens($initial-tokens, $hardcoded-tokens, ( - ( - color: disabled-label-text-color, - opacity: disabled-label-text-opacity, - ), - )); -} diff --git a/src/material/core/typography/BUILD.bazel b/src/material/core/typography/BUILD.bazel new file mode 100644 index 000000000000..325583e8960d --- /dev/null +++ b/src/material/core/typography/BUILD.bazel @@ -0,0 +1,84 @@ +load("//tools:defaults.bzl", "sass_library") + +package(default_visibility = ["//visibility:public"]) + +sass_library( + name = "all_typography", + srcs = [ + "_all-typography.scss", + ], + deps = [ + ":typography", + "//src/material/autocomplete:theme", + "//src/material/badge:theme", + "//src/material/bottom-sheet:theme", + "//src/material/button:fab_theme", + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + "//src/material/button-toggle:theme", + "//src/material/card:theme", + "//src/material/checkbox:theme", + "//src/material/chips:theme", + "//src/material/core:theme_sass", + "//src/material/core/m2:m2_sass", + "//src/material/core/theming:_inspection", + "//src/material/datepicker:theme", + "//src/material/dialog:theme", + "//src/material/divider:theme", + "//src/material/expansion:theme", + "//src/material/form-field:theme", + "//src/material/grid-list:theme", + "//src/material/icon:theme", + "//src/material/input:theme", + "//src/material/list:theme", + "//src/material/menu:theme", + "//src/material/paginator:theme", + "//src/material/progress-bar:theme", + "//src/material/progress-spinner:theme", + "//src/material/radio:theme", + "//src/material/select:theme", + "//src/material/sidenav:theme", + "//src/material/slide-toggle:theme", + "//src/material/slider:theme", + "//src/material/snack-bar:theme", + "//src/material/sort:theme", + "//src/material/stepper:theme", + "//src/material/table:theme", + "//src/material/tabs:theme", + "//src/material/timepicker:theme", + "//src/material/toolbar:theme", + "//src/material/tooltip:theme", + "//src/material/tree:theme", + ], +) + +sass_library( + name = "typography", + srcs = [ + "_typography.scss", + ], + deps = [ + ":_versioning", + ":utils", + "//src/material/core/theming:_inspection", + ], +) + +sass_library( + name = "utils", + srcs = [ + "_typography-utils.scss", + ], +) + +sass_library( + name = "_versioning", + srcs = ["_versioning.scss"], + deps = ["//src/material/core/m2:m2_sass"], +) + +sass_library( + name = "_typography_utils_deprecated", + srcs = ["_typography-utils-deprecated.scss"], + deps = [":utils"], +) diff --git a/src/material/datepicker/BUILD.bazel b/src/material/datepicker/BUILD.bazel index adb127523203..509149cd0253 100644 --- a/src/material/datepicker/BUILD.bazel +++ b/src/material/datepicker/BUILD.bazel @@ -2,113 +2,200 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "datepicker", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":datepicker-content.css", - ":datepicker-actions.css", - ":datepicker-toggle.css", - ":date-range-input.css", - ":calendar-body.css", - ":calendar.css", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-datepicker.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/coercion", - "//src/cdk/keycodes", - "//src/cdk/overlay", - "//src/cdk/platform", - "//src/cdk/portal", - "//src/material/button", - "//src/material/core", - "//src/material/form-field", - "//src/material/input", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "datepicker_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-datepicker.scss", + ], deps = [ - "//src/material/button:button_scss_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) -sass_binary( - name = "datepicker_content_scss", - src = "datepicker-content.scss", - deps = ["//src/material/core:core_scss_lib"], +sass_library( + name = "theme", + srcs = [ + "_datepicker-theme.scss", + ], + deps = [ + ":m2", + "//src/material/button:icon_button_theme", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +sass_library( + name = "datepicker_legacy_compat", + srcs = ["_datepicker-legacy-compat.scss"], + deps = [ + "//src/material/button:icon_button_theme", + "//src/material/button:theme", + ], ) sass_binary( - name = "datepicker_toggle_scss", - src = "datepicker-toggle.scss", + name = "datepicker_content_css", + src = "datepicker-content.scss", deps = [ - "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "calendar_scss", + name = "calendar_css", src = "calendar.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/focus-indicators", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "calendar_body_scss", + name = "calendar_body_css", src = "calendar-body.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:button_common", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "date_range_input_scss", - src = "date-range-input.scss", + name = "datepicker_toggle_css", + src = "datepicker-toggle.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "datepicker_actions_scss", + name = "datepicker_actions_css", src = "datepicker-actions.scss", ) -ng_test_library( +sass_binary( + name = "date_range_input_css", + src = "date-range-input.scss", + deps = [ + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:variables", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "datepicker", + srcs = [ + "aria-accessible-name.ts", + "calendar.ts", + "calendar-body.ts", + "date-range-input.ts", + "date-range-input-parts.ts", + "date-range-picker.ts", + "date-range-selection-strategy.ts", + "date-selection-model.ts", + "datepicker.ts", + "datepicker-actions.ts", + "datepicker-animations.ts", + "datepicker-base.ts", + "datepicker-errors.ts", + "datepicker-input.ts", + "datepicker-input-base.ts", + "datepicker-intl.ts", + "datepicker-module.ts", + "datepicker-toggle.ts", + "index.ts", + "month-view.ts", + "multi-year-view.ts", + "public-api.ts", + "year-view.ts", + ], + assets = [ + "calendar-body.html", + "calendar-header.html", + "calendar.html", + "date-range-input.html", + "datepicker-content.html", + "datepicker-toggle.html", + "month-view.html", + "multi-year-view.html", + "year-view.html", + ":datepicker_actions_css", + ":datepicker_content_css", + ":datepicker_toggle_css", + ":date_range_input_css", + ":calendar_css", + ":calendar_body_css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/coercion", + "//src/cdk/keycodes", + "//src/cdk/overlay", + "//src/cdk/platform", + "//src/cdk/portal", + "//src/material/button", + "//src/material/core", + "//src/material/form-field", + "//src/material/input", + ], +) + +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":datepicker", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", @@ -120,10 +207,6 @@ ng_test_library( "//src/material/form-field", "//src/material/input", "//src/material/testing", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -139,7 +222,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":datepicker_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/datepicker/_datepicker-theme.scss b/src/material/datepicker/_datepicker-theme.scss index b5d4ff6ac4a1..eba19985d1c8 100644 --- a/src/material/datepicker/_datepicker-theme.scss +++ b/src/material/datepicker/_datepicker-theme.scss @@ -1,6 +1,6 @@ @use 'sass:color'; @use 'sass:map'; -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; +@use './m2-datepicker'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; @@ -19,17 +19,15 @@ $calendar-weekday-table-font-size: 11px !default; @mixin _calendar-color($theme, $palette-name) { $palette-color: inspection.get-theme-color($theme, $palette-name); - $range-color: tokens-mat-datepicker.private-get-range-background-color($palette-color); - $range-tokens: tokens-mat-datepicker.get-range-color-tokens($range-color); - $calendar-tokens: tokens-mat-datepicker.private-get-calendar-color-palette-color-tokens( + $range-color: m2-datepicker.private-get-range-background-color($palette-color); + $range-tokens: m2-datepicker.get-range-color-tokens($range-color); + $calendar-tokens: m2-datepicker.private-get-calendar-color-palette-color-tokens( $theme, $palette-name ); @include token-utils.create-token-values-mixed( - tokens-mat-datepicker.$prefix, - map.merge($calendar-tokens, $range-tokens) - ); + m2-datepicker.$prefix, map.merge($calendar-tokens, $range-tokens)); } /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) @@ -41,9 +39,7 @@ $calendar-weekday-table-font-size: 11px !default; } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-datepicker.$prefix, - tokens-mat-datepicker.get-unthemable-tokens() - ); + m2-datepicker.$prefix, m2-datepicker.get-unthemable-tokens()); } } } @@ -59,9 +55,7 @@ $calendar-weekday-table-font-size: 11px !default; } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-datepicker.$prefix, - tokens-mat-datepicker.get-color-tokens($theme) - ); + m2-datepicker.$prefix, m2-datepicker.get-color-tokens($theme)); } .mat-datepicker-content { @@ -76,20 +70,13 @@ $calendar-weekday-table-font-size: 11px !default; .mat-datepicker-toggle-active { &.mat-accent { - $accent-tokens: tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens( - $theme, - accent - ); - @include token-utils.create-token-values-mixed(tokens-mat-datepicker.$prefix, - $accent-tokens); + $accent-tokens: m2-datepicker.private-get-toggle-color-palette-color-tokens($theme, accent); + @include token-utils.create-token-values-mixed(m2-datepicker.$prefix, $accent-tokens); } &.mat-warn { - $warn-tokens: tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens( - $theme, - warn - ); - @include token-utils.create-token-values-mixed(tokens-mat-datepicker.$prefix, $warn-tokens); + $warn-tokens: m2-datepicker.private-get-toggle-color-palette-color-tokens($theme, warn); + @include token-utils.create-token-values-mixed(m2-datepicker.$prefix, $warn-tokens); } } } @@ -103,8 +90,8 @@ $calendar-weekday-table-font-size: 11px !default; } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-datepicker.$prefix, - tokens-mat-datepicker.get-typography-tokens($theme) + m2-datepicker.$prefix, + m2-datepicker.get-typography-tokens($theme) ); } } @@ -112,12 +99,12 @@ $calendar-weekday-table-font-size: 11px !default; @mixin date-range-colors( $range-color, - $comparison-color: tokens-mat-datepicker.$private-default-comparison-color, - $overlap-color: tokens-mat-datepicker.$private-default-overlap-color, + $comparison-color: m2-datepicker.$private-default-comparison-color, + $overlap-color: m2-datepicker.$private-default-overlap-color, $overlap-selected-color: - tokens-mat-datepicker.private-get-default-overlap-selected-color($overlap-color) + m2-datepicker.private-get-default-overlap-selected-color($overlap-color) ) { - $tokens: tokens-mat-datepicker.get-range-color-tokens( + $tokens: m2-datepicker.get-range-color-tokens( $range-color: $range-color, $comparison-color: $comparison-color, $overlap-color: $overlap-color, @@ -125,7 +112,7 @@ $calendar-weekday-table-font-size: 11px !default; ); @include sass-utils.current-selector-or-root() { - @include token-utils.create-token-values-mixed(tokens-mat-datepicker.$prefix, $tokens); + @include token-utils.create-token-values-mixed(m2-datepicker.$prefix, $tokens); } } @@ -150,8 +137,8 @@ $calendar-weekday-table-font-size: 11px !default; @function _define-overrides() { @return ( ( - namespace: tokens-mat-datepicker.$prefix, - tokens: tokens-mat-datepicker.get-token-slots(), + namespace: m2-datepicker.$prefix, + tokens: m2-datepicker.get-token-slots(), ), ); } @@ -191,9 +178,6 @@ $calendar-weekday-table-font-size: 11px !default; 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); $mat-datepicker-tokens: token-utils.get-tokens-for( - $tokens, - tokens-mat-datepicker.$prefix, - $options... - ); - @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $mat-datepicker-tokens); + $tokens, m2-datepicker.$prefix, $options...); + @include token-utils.create-token-values(m2-datepicker.$prefix, $mat-datepicker-tokens); } diff --git a/src/material/core/tokens/m2/mat/_datepicker.scss b/src/material/datepicker/_m2-datepicker.scss similarity index 95% rename from src/material/core/tokens/m2/mat/_datepicker.scss rename to src/material/datepicker/_m2-datepicker.scss index c586fb125fbe..178bc3fdd26e 100644 --- a/src/material/core/tokens/m2/mat/_datepicker.scss +++ b/src/material/datepicker/_m2-datepicker.scss @@ -1,10 +1,10 @@ @use 'sass:color'; @use 'sass:meta'; @use 'sass:math'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, datepicker); @@ -175,8 +175,8 @@ $private-default-overlap-color: #a8dab5; @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_datepicker.scss b/src/material/datepicker/_m3-datepicker.scss similarity index 92% rename from src/material/core/tokens/m3/mat/_datepicker.scss rename to src/material/datepicker/_m3-datepicker.scss index 02343b4931ab..5b75e92704c1 100644 --- a/src/material/core/tokens/m3/mat/_datepicker.scss +++ b/src/material/datepicker/_m3-datepicker.scss @@ -1,7 +1,7 @@ @use 'sass:map'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, datepicker); @@ -12,7 +12,7 @@ $prefix: (mat, datepicker); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-datepicker @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( + $tokens: ( calendar-date-in-range-state-background-color: map.get($systems, md-sys-color, primary-container), calendar-date-in-comparison-range-state-background-color: @@ -42,7 +42,7 @@ $prefix: (mat, datepicker); calendar-period-button-text-color: map.get($systems, md-sys-color, on-surface-variant), calendar-period-button-icon-color: map.get($systems, md-sys-color, on-surface-variant), calendar-navigation-button-icon-color: map.get($systems, md-sys-color, on-surface-variant), - calendar-header-divider-color: token-definition.hardcode(transparent, $exclude-hardcoded), + calendar-header-divider-color: m3-utils.hardcode(transparent, $exclude-hardcoded), calendar-header-text-color: map.get($systems, md-sys-color, on-surface-variant), calendar-date-today-outline-color: map.get($systems, md-sys-color, primary), calendar-date-today-disabled-state-outline-color: sass-utils.safe-color-change( @@ -50,7 +50,7 @@ $prefix: (mat, datepicker); $alpha: 0.38 ), calendar-date-text-color: map.get($systems, md-sys-color, on-surface), - calendar-date-outline-color: token-definition.hardcode(transparent, $exclude-hardcoded), + calendar-date-outline-color: m3-utils.hardcode(transparent, $exclude-hardcoded), calendar-date-disabled-state-text-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38 @@ -68,9 +68,9 @@ $prefix: (mat, datepicker); calendar-container-background-color: map.get($systems, md-sys-color, surface-container-high), calendar-container-text-color: map.get($systems, md-sys-color, on-surface), calendar-container-elevation-shadow: - token-definition.hardcode(elevation.get-box-shadow(0), $exclude-hardcoded), + m3-utils.hardcode(elevation.get-box-shadow(0), $exclude-hardcoded), calendar-container-touch-elevation-shadow: - token-definition.hardcode(elevation.get-box-shadow(0), $exclude-hardcoded), + m3-utils.hardcode(elevation.get-box-shadow(0), $exclude-hardcoded), calendar-container-shape: map.get($systems, md-sys-shape, corner-large), calendar-container-touch-shape: map.get($systems, md-sys-shape, corner-extra-large), calendar-text-font: map.get($systems, md-sys-typescale, body-medium-font), @@ -81,7 +81,9 @@ $prefix: (mat, datepicker); calendar-period-button-text-weight: map.get($systems, md-sys-typescale, title-small-weight), calendar-header-text-size: map.get($systems, md-sys-typescale, title-small-size), calendar-header-text-weight: map.get($systems, md-sys-typescale, title-small-weight), - ), ( + ); + + $variant-tokens: ( // Color variants: primary: (), // Default, no overrides needed. secondary: ( @@ -117,7 +119,7 @@ $prefix: (mat, datepicker); calendar-date-today-outline-color: map.get($systems, md-sys-color, error), calendar-date-preview-state-outline-color: map.get($systems, md-sys-color, error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/datepicker/calendar-body.scss b/src/material/datepicker/calendar-body.scss index 46d5ad63a5af..d27c6edcd58e 100644 --- a/src/material/datepicker/calendar-body.scss +++ b/src/material/datepicker/calendar-body.scss @@ -2,8 +2,8 @@ @use '@angular/cdk'; @use '../core/style/button-common'; -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; @use '../core/tokens/token-utils'; +@use './m2-datepicker'; $calendar-body-label-padding-start: 5% !default; // We don't want the label to jump around when we switch between month and year views, so we use @@ -23,13 +23,14 @@ $calendar-body-cell-content-size: 100% - $calendar-body-cell-content-margin * 2 $calendar-range-end-body-cell-size: $calendar-body-cell-content-size + $calendar-body-cell-content-margin !default; -$_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots()); +$token-prefix: m2-datepicker.$prefix; +$token-slots: m2-datepicker.get-token-slots(); // Styles for a highlighted calendar cell (e.g. hovered or focused). @mixin _highlighted-cell($token-name) { & > .mat-calendar-body-cell-content { @include _unselected-cell { - @include token-utils.create-token-slot(background-color, $token-name); + background-color: token-utils.slot($token-name); } } } @@ -47,9 +48,8 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( .mat-calendar-body-today { @include _unselected-cell { - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(border-color, - calendar-date-today-outline-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(calendar-date-today-outline-color); } } } @@ -61,10 +61,10 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( padding-left: $calendar-body-label-side-padding; padding-right: $calendar-body-label-side-padding; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(font-size, calendar-body-label-text-size); - @include token-utils.create-token-slot(font-weight, calendar-body-label-text-weight); - @include token-utils.create-token-slot(color, calendar-body-label-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-size: token-utils.slot(calendar-body-label-text-size); + font-weight: token-utils.slot(calendar-body-label-text-weight); + color: token-utils.slot(calendar-body-label-text-color); } } @@ -92,9 +92,9 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( margin: 0; // Needs to be repeated here in order to override the user agent styles. - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(font-family, calendar-text-font); - @include token-utils.create-token-slot(font-size, calendar-text-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(calendar-text-font); + font-size: token-utils.slot(calendar-text-size); } @include button-common.reset(); @@ -188,8 +188,8 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( } .mat-calendar-body-in-preview { - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, calendar-date-preview-state-outline-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(calendar-date-preview-state-outline-color); } .mat-calendar-body-cell-preview { @@ -219,17 +219,16 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( .mat-calendar-body-disabled { cursor: default; - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { & > .mat-calendar-body-cell-content { @include _unselected-cell { - @include token-utils.create-token-slot(color, calendar-date-disabled-state-text-color); + color: token-utils.slot(calendar-date-disabled-state-text-color); } } & > .mat-calendar-body-today { @include _unselected-cell { - @include token-utils.create-token-slot(border-color, - calendar-date-today-disabled-state-outline-color); + border-color: token-utils.slot(calendar-date-today-disabled-state-outline-color); } } } @@ -264,10 +263,9 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( // Choosing a value clearly larger than the height ensures we get the correct capsule shape. border-radius: $calendar-body-cell-radius; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, calendar-date-text-color); - @include token-utils.create-token-slot(border-color, - calendar-date-outline-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(calendar-date-text-color); + border-color: token-utils.slot(calendar-date-outline-color); } // Increase specificity because focus indicator styles are part of the `mat-core` mixin and can @@ -282,7 +280,7 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( } .mat-calendar-body-active { - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .cdk-keyboard-focused &, .cdk-program-focused & { @include _highlighted-cell(calendar-date-focus-state-background-color); } @@ -291,51 +289,46 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( @media (hover: hover) { .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover { - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { @include _highlighted-cell(calendar-date-hover-state-background-color); } } } .mat-calendar-body-selected { - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(background-color, - calendar-date-selected-state-background-color); - @include token-utils.create-token-slot(color, calendar-date-selected-state-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(calendar-date-selected-state-background-color); + color: token-utils.slot(calendar-date-selected-state-text-color); .mat-calendar-body-disabled > & { - @include token-utils.create-token-slot(background-color, - calendar-date-selected-disabled-state-background-color); + background-color: token-utils.slot(calendar-date-selected-disabled-state-background-color); } &.mat-calendar-body-today { - $shadow: token-utils.get-token-variable(calendar-date-today-selected-state-outline-color); + $shadow: token-utils.slot(calendar-date-today-selected-state-outline-color); box-shadow: inset 0 0 0 1px #{$shadow}; } } } -@include token-utils.use-tokens($_tokens...) { +@include token-utils.use-tokens($token-prefix, $token-slots) { $range-color: - token-utils.get-token-variable(calendar-date-in-range-state-background-color); + token-utils.slot(calendar-date-in-range-state-background-color); $comparison-color: - token-utils.get-token-variable(calendar-date-in-comparison-range-state-background-color); + token-utils.slot(calendar-date-in-comparison-range-state-background-color); .mat-calendar-body-in-range::before { - @include token-utils.create-token-slot(background, - calendar-date-in-range-state-background-color); + background: token-utils.slot(calendar-date-in-range-state-background-color); } .mat-calendar-body-comparison-identical, .mat-calendar-body-in-comparison-range::before { - @include token-utils.create-token-slot(background, - calendar-date-in-comparison-range-state-background-color); + background: token-utils.slot(calendar-date-in-comparison-range-state-background-color); } .mat-calendar-body-comparison-identical, .mat-calendar-body-in-comparison-range::before { - @include token-utils.create-token-slot(background, - calendar-date-in-comparison-range-state-background-color); + background: token-utils.slot(calendar-date-in-comparison-range-state-background-color); } .mat-calendar-body-comparison-bridge-start::before, @@ -350,14 +343,12 @@ $_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots( .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical, .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after { - @include token-utils.create-token-slot(background, - calendar-date-in-overlap-range-state-background-color); + background: token-utils.slot(calendar-date-in-overlap-range-state-background-color); } .mat-calendar-body-comparison-identical.mat-calendar-body-selected, .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected { - @include token-utils.create-token-slot(background, - calendar-date-in-overlap-range-selected-state-background-color); + background: token-utils.slot(calendar-date-in-overlap-range-selected-state-background-color); } } diff --git a/src/material/datepicker/calendar-body.ts b/src/material/datepicker/calendar-body.ts index da7f3d83056d..34af64d8faba 100644 --- a/src/material/datepicker/calendar-body.ts +++ b/src/material/datepicker/calendar-body.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Platform, _bindEventWithOptions} from '@angular/cdk/platform'; +import {Platform} from '@angular/cdk/platform'; import { ChangeDetectionStrategy, Component, @@ -239,55 +239,13 @@ export class MatCalendarBody implements OnChanges, OnDestroy, AfterView const element = this._elementRef.nativeElement; const cleanups = [ // `touchmove` is active since we need to call `preventDefault`. - _bindEventWithOptions( - renderer, - element, - 'touchmove', - this._touchmoveHandler, - activeCapturingEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'mouseenter', - this._enterHandler, - passiveCapturingEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'focus', - this._enterHandler, - passiveCapturingEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'mouseleave', - this._leaveHandler, - passiveCapturingEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'blur', - this._leaveHandler, - passiveCapturingEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'mousedown', - this._mousedownHandler, - passiveEventOptions, - ), - _bindEventWithOptions( - renderer, - element, - 'touchstart', - this._mousedownHandler, - passiveEventOptions, - ), + renderer.listen(element, 'touchmove', this._touchmoveHandler, activeCapturingEventOptions), + renderer.listen(element, 'mouseenter', this._enterHandler, passiveCapturingEventOptions), + renderer.listen(element, 'focus', this._enterHandler, passiveCapturingEventOptions), + renderer.listen(element, 'mouseleave', this._leaveHandler, passiveCapturingEventOptions), + renderer.listen(element, 'blur', this._leaveHandler, passiveCapturingEventOptions), + renderer.listen(element, 'mousedown', this._mousedownHandler, passiveEventOptions), + renderer.listen(element, 'touchstart', this._mousedownHandler, passiveEventOptions), ]; if (this._platform.isBrowser) { diff --git a/src/material/datepicker/calendar.scss b/src/material/datepicker/calendar.scss index 7471adae05ac..c64748efebbc 100644 --- a/src/material/datepicker/calendar.scss +++ b/src/material/datepicker/calendar.scss @@ -1,8 +1,8 @@ @use '@angular/cdk'; @use '../core/focus-indicators/private'; -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; @use '../core/tokens/token-utils'; +@use './m2-datepicker'; $calendar-padding: 8px !default; $calendar-header-divider-width: 1px !default; @@ -15,7 +15,8 @@ $calendar-controls-side-margin: calc(33% / 7 - 16px); $calendar-arrow-size: 5px !default; $calendar-arrow-disabled-opacity: 0.5 !default; -$_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots(); +$token-prefix: m2-datepicker.$prefix; +$token-slots: m2-datepicker.get-token-slots(); .mat-calendar { display: block; @@ -23,9 +24,9 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() // Prevents layout issues if the line height bleeds in from the body (see #29756). line-height: normal; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(font-family, calendar-text-font); - @include token-utils.create-token-slot(font-size, calendar-text-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(calendar-text-font); + font-size: token-utils.slot(calendar-text-size); } } @@ -52,11 +53,10 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() min-width: 0; margin: 0 8px; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(font-size, calendar-period-button-text-size); - @include token-utils.create-token-slot(font-weight, calendar-period-button-text-weight); - @include token-utils.create-token-slot(--mdc-text-button-label-text-color, - calendar-period-button-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-size: token-utils.slot(calendar-period-button-text-size); + font-weight: token-utils.slot(calendar-period-button-text-weight); + --mat-button-text-label-text-color: #{token-utils.slot(calendar-period-button-text-color)}; } } @@ -67,8 +67,8 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() margin: 0 0 0 $calendar-arrow-size; vertical-align: middle; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(fill, calendar-period-button-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + fill: token-utils.slot(calendar-period-button-icon-color); } &.mat-calendar-invert { @@ -87,10 +87,10 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() .mat-calendar-previous-button, .mat-calendar-next-button { - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { // Needs need a bit more specificity to avoid being overwritten by the .mat-icon-button. .mat-datepicker-content &:not(.mat-mdc-button-disabled) { - @include token-utils.create-token-slot(color, calendar-navigation-button-icon-color); + color: token-utils.slot(calendar-navigation-button-icon-color); } } @@ -109,10 +109,10 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() text-align: center; padding: 0 0 $calendar-padding 0; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, calendar-header-text-color); - @include token-utils.create-token-slot(font-size, calendar-header-text-size); - @include token-utils.create-token-slot(font-weight, calendar-header-text-weight); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(calendar-header-text-color); + font-size: token-utils.slot(calendar-header-text-size); + font-weight: token-utils.slot(calendar-header-text-weight); } } @@ -130,8 +130,8 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() right: -$calendar-padding; height: $calendar-header-divider-width; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(background, calendar-header-divider-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background: token-utils.slot(calendar-header-divider-color); } } } diff --git a/src/material/datepicker/date-range-input.scss b/src/material/datepicker/date-range-input.scss index 49f652f48920..cb58af0cfa70 100644 --- a/src/material/datepicker/date-range-input.scss +++ b/src/material/datepicker/date-range-input.scss @@ -3,12 +3,11 @@ @use '../core/style/variables'; @use '../core/style/vendor-prefixes'; -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; @use '../core/tokens/token-utils'; +@use './m2-datepicker'; $date-range-input-separator-spacing: 4px; $date-range-input-part-max-width: calc(50% - #{$date-range-input-separator-spacing}); -$_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots(); @mixin _placeholder-transition($property) { transition: #{$property} variables.$swift-ease-out-duration @@ -33,11 +32,11 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() @include _placeholder-transition(opacity); margin: 0 $date-range-input-separator-spacing; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, range-input-separator-color); + @include token-utils.use-tokens(m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { + color: token-utils.slot(range-input-separator-color); .mat-form-field-disabled & { - @include token-utils.create-token-slot(color, range-input-disabled-state-separator-color); + color: token-utils.slot(range-input-disabled-state-separator-color); } } @@ -101,10 +100,10 @@ $_tokens: tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots() @include _placeholder-transition(color); } - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens(m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { &[disabled] { - @include token-utils.create-token-slot(color, range-input-disabled-state-text-color); + color: token-utils.slot(range-input-disabled-state-text-color); } } diff --git a/src/material/datepicker/date-range-input.spec.ts b/src/material/datepicker/date-range-input.spec.ts index 6fb59091ec42..326f0203400a 100644 --- a/src/material/datepicker/date-range-input.spec.ts +++ b/src/material/datepicker/date-range-input.spec.ts @@ -1,10 +1,10 @@ import {FocusMonitor} from '@angular/cdk/a11y'; -import {Directionality} from '@angular/cdk/bidi'; +import {Direction, Directionality} from '@angular/cdk/bidi'; import {BACKSPACE, LEFT_ARROW, RIGHT_ARROW} from '@angular/cdk/keycodes'; import {OverlayContainer} from '@angular/cdk/overlay'; import {dispatchFakeEvent, dispatchKeyboardEvent} from '@angular/cdk/testing/private'; -import {Component, Directive, ElementRef, Provider, Type, ViewChild} from '@angular/core'; -import {ComponentFixture, TestBed, fakeAsync, flush, inject, tick} from '@angular/core/testing'; +import {Component, Directive, ElementRef, Provider, signal, Type, ViewChild} from '@angular/core'; +import {ComponentFixture, fakeAsync, flush, inject, TestBed, tick} from '@angular/core/testing'; import { FormControl, FormGroup, @@ -15,11 +15,11 @@ import { Validator, Validators, } from '@angular/forms'; +import {NoopAnimationsModule} from '@angular/platform-browser/animations'; +import {Subscription} from 'rxjs'; import {ErrorStateMatcher, MatNativeDateModule} from '../core'; import {MatFormField, MatFormFieldModule, MatLabel} from '../form-field'; import {MatInputModule} from '../input'; -import {NoopAnimationsModule} from '@angular/platform-browser/animations'; -import {Subscription} from 'rxjs'; import {MatDateRangeInput} from './date-range-input'; import {MatEndDate, MatStartDate} from './date-range-input-parts'; import {MatDateRangePicker} from './date-range-picker'; @@ -830,7 +830,7 @@ describe('MatDateRangeInput', () => { it('moves focus between fields with arrow keys when cursor is at edge (RTL)', () => { class RTL extends Directionality { - override readonly value = 'rtl'; + override readonly valueSignal = signal('rtl'); } const fixture = createComponent(StandardRangePicker, [ { diff --git a/src/material/datepicker/date-range-selection-strategy.ts b/src/material/datepicker/date-range-selection-strategy.ts index b595d50dc665..8bd18c4c779d 100644 --- a/src/material/datepicker/date-range-selection-strategy.ts +++ b/src/material/datepicker/date-range-selection-strategy.ts @@ -7,8 +7,7 @@ */ import {Injectable, InjectionToken, Optional, SkipSelf, FactoryProvider} from '@angular/core'; -// TODO: Change to relative import -import {DateAdapter} from '@angular/material/core'; +import {DateAdapter} from '../core'; import {DateRange} from './date-selection-model'; /** Injection token used to customize the date range selection behavior. */ diff --git a/src/material/datepicker/date-selection-model.ts b/src/material/datepicker/date-selection-model.ts index 23b88478feeb..76d04b29273d 100644 --- a/src/material/datepicker/date-selection-model.ts +++ b/src/material/datepicker/date-selection-model.ts @@ -7,8 +7,7 @@ */ import {FactoryProvider, Injectable, Optional, SkipSelf, OnDestroy} from '@angular/core'; -// TODO: Change to relative import -import {DateAdapter} from '@angular/material/core'; +import {DateAdapter} from '../core'; import {Observable, Subject} from 'rxjs'; /** A class representing a range of dates. */ diff --git a/src/material/datepicker/datepicker-content.scss b/src/material/datepicker/datepicker-content.scss index 57ecd20348b7..ce68ddc2f2b5 100644 --- a/src/material/datepicker/datepicker-content.scss +++ b/src/material/datepicker/datepicker-content.scss @@ -1,4 +1,4 @@ -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; +@use './m2-datepicker'; @use '../core/tokens/token-utils'; $calendar-padding: 8px; @@ -63,11 +63,11 @@ $touch-max-height: 788px; border-radius: 4px; @include token-utils.use-tokens( - tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots()) { - @include token-utils.create-token-slot(background-color, calendar-container-background-color); - @include token-utils.create-token-slot(color, calendar-container-text-color); - @include token-utils.create-token-slot(box-shadow, calendar-container-elevation-shadow); - @include token-utils.create-token-slot(border-radius, calendar-container-shape); + m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { + background-color: token-utils.slot(calendar-container-background-color); + color: token-utils.slot(calendar-container-text-color); + box-shadow: token-utils.slot(calendar-container-elevation-shadow); + border-radius: token-utils.slot(calendar-container-shape); } &.mat-datepicker-content-animations-enabled { @@ -115,9 +115,9 @@ $touch-max-height: 788px; max-height: 80vh; @include token-utils.use-tokens( - tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots()) { - @include token-utils.create-token-slot(box-shadow, calendar-container-touch-elevation-shadow); - @include token-utils.create-token-slot(border-radius, calendar-container-touch-shape); + m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { + box-shadow: token-utils.slot(calendar-container-touch-elevation-shadow); + border-radius: token-utils.slot(calendar-container-touch-shape); } // Allows for the screen reader close button to be seen in touch UI mode. diff --git a/src/material/datepicker/datepicker-toggle.scss b/src/material/datepicker/datepicker-toggle.scss index 7263655e329f..68de3278d185 100644 --- a/src/material/datepicker/datepicker-toggle.scss +++ b/src/material/datepicker/datepicker-toggle.scss @@ -1,22 +1,20 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/datepicker' as tokens-mat-datepicker; +@use './m2-datepicker'; @use '../core/tokens/token-utils'; -$_tokens: (tokens-mat-datepicker.$prefix, tokens-mat-datepicker.get-token-slots()); - // We support the case where the form field is disabled, but the datepicker is not. // MDC sets `pointer-events: none` on disabled form fields which prevents clicks on the toggle. .mat-datepicker-toggle { pointer-events: auto; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, toggle-icon-color); + @include token-utils.use-tokens(m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { + color: token-utils.slot(toggle-icon-color); } } .mat-datepicker-toggle-active { - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, toggle-active-state-icon-color); + @include token-utils.use-tokens(m2-datepicker.$prefix, m2-datepicker.get-token-slots()) { + color: token-utils.slot(toggle-active-state-icon-color); } } diff --git a/src/material/datepicker/testing/BUILD.bazel b/src/material/datepicker/testing/BUILD.bazel index cb6e2924af53..a1c678231b5e 100644 --- a/src/material/datepicker/testing/BUILD.bazel +++ b/src/material/datepicker/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", "//src/material/form-field/testing/control", @@ -21,17 +21,19 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/core", "//src/material/datepicker", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/dialog/BUILD.bazel b/src/material/dialog/BUILD.bazel index 5112e15cab9e..109ff6cf9e0f 100644 --- a/src/material/dialog/BUILD.bazel +++ b/src/material/dialog/BUILD.bazel @@ -2,44 +2,96 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "dialog", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":dialog_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-dialog.scss", + ], deps = [ - "//src/cdk/dialog", - "//src/cdk/overlay", - "//src/cdk/portal", - "//src/material/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-dialog.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "dialog_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "theme", + srcs = [ + "_dialog-theme.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +sass_library( + name = "dialog_legacy_padding", + srcs = [ + "_dialog-legacy-padding.scss", ], ) sass_binary( - name = "dialog_scss", + name = "css", src = "dialog.scss", deps = [ - ":dialog_scss_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:variables", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "dialog", + srcs = [ + "dialog.ts", + "dialog-animations.ts", + "dialog-config.ts", + "dialog-container.ts", + "dialog-content-directives.ts", + "dialog-ref.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "dialog-container.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src/cdk/dialog", + "//src/cdk/overlay", + "//src/cdk/portal", + "//src/material/core", ], ) @@ -47,13 +99,18 @@ sass_binary( # Testing ########### -ng_test_library( +ts_project( name = "dialog_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":dialog", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/dialog", @@ -62,9 +119,6 @@ ng_test_library( "//src/cdk/platform", "//src/cdk/scrolling", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -82,7 +136,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":dialog_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/dialog/_dialog-theme.scss b/src/material/dialog/_dialog-theme.scss index f33dd9fa5507..76914ee51706 100644 --- a/src/material/dialog/_dialog-theme.scss +++ b/src/material/dialog/_dialog-theme.scss @@ -1,7 +1,6 @@ @use 'sass:map'; @use '../core/style/sass-utils'; -@use '../core/tokens/m2/mdc/dialog' as tokens-mdc-dialog; -@use '../core/tokens/m2/mat/dialog' as tokens-mat-dialog; +@use './m2-dialog'; @use '../core/tokens/token-utils'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @@ -15,13 +14,7 @@ // Add default values for tokens not related to color, typography, or density. @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-dialog.$prefix, - tokens-mdc-dialog.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-dialog.$prefix, - tokens-mat-dialog.get-unthemable-tokens() - ); + m2-dialog.$prefix, m2-dialog.get-unthemable-tokens()); } } } @@ -32,13 +25,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-dialog.$prefix, - tokens-mdc-dialog.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-dialog.$prefix, - tokens-mat-dialog.get-color-tokens($theme) - ); + m2-dialog.$prefix, m2-dialog.get-color-tokens($theme)); } } } @@ -49,13 +36,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-dialog.$prefix, - tokens-mdc-dialog.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-dialog.$prefix, - tokens-mat-dialog.get-typography-tokens($theme) - ); + m2-dialog.$prefix, m2-dialog.get-typography-tokens($theme)); } } } @@ -71,12 +52,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-dialog.$prefix, - tokens: tokens-mdc-dialog.get-token-slots(), - ), - ( - namespace: tokens-mat-dialog.$prefix, - tokens: tokens-mat-dialog.get-token-slots(), + namespace: m2-dialog.$prefix, + tokens: m2-dialog.get-token-slots(), ), ); } @@ -110,12 +87,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mdc-dialog.$prefix, - map.get($tokens, tokens-mdc-dialog.$prefix) - ); - @include token-utils.create-token-values( - tokens-mat-dialog.$prefix, - map.get($tokens, tokens-mat-dialog.$prefix) + m2-dialog.$prefix, + map.get($tokens, m2-dialog.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mdc/_dialog.scss b/src/material/dialog/_m2-dialog.scss similarity index 52% rename from src/material/core/tokens/m2/mdc/_dialog.scss rename to src/material/dialog/_m2-dialog.scss index 087327384f72..40c641fb5f27 100644 --- a/src/material/core/tokens/m2/mdc/_dialog.scss +++ b/src/material/dialog/_m2-dialog.scss @@ -1,52 +1,28 @@ -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/tokens/m2-utils'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; +@use '../core/theming/inspection'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, dialog); +$prefix: (mat, dialog); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( - // Border radius of the container. container-shape: 4px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - container-elevation: null, - container-shadow-color: null, - with-divider-divider-height: null, - with-divider-divider-color: null, - with-icon-icon-size: null, - with-icon-icon-color: null, - action-label-text-font: null, - action-label-text-line-height: null, - action-label-text-size: null, - action-label-text-weight: null, - action-label-text-tracking: null, - action-label-text-color: null, - action-hover-state-layer-color: null, - action-hover-state-layer-opacity: null, - action-hover-label-text-color: null, - action-focus-state-layer-color: null, - action-focus-state-layer-opacity: null, - action-focus-label-text-color: null, - action-pressed-state-layer-color: null, - action-pressed-state-layer-opacity: null, - action-pressed-label-text-color: null, - headline-color: null, - headline-font: null, - headline-line-height: null, - headline-size: null, - headline-tracking: null, - headline-weight: null, - z-index: null, - container-surface-tint-layer-color: null, + container-elevation-shadow: elevation.get-box-shadow(24), + container-max-width: 80vw, + container-small-max-width: 80vw, + container-min-width: 0, + actions-alignment: start, + actions-padding: 8px, + content-padding: 20px 24px, + with-actions-content-padding: 20px 24px, + + // Note: the CSS class is `title` while the M2 tokens call it `subhead`. + // M3 calls it `headline` which is what we're aligning with. + headline-padding: 0 24px 9px, ); } @@ -56,17 +32,14 @@ $prefix: (mdc, dialog); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - $text-base: if(token-definition.$private-is-internal-build, + $text-base: if(m2-utils.$private-is-internal-build, if($is-dark, #fff, #000), inspection.get-theme-color($theme, foreground, text, 1) ); @return ( - // Background color of the container. container-color: inspection.get-theme-color($theme, background, dialog), - // Color of the dialog header. subhead-color: sass-utils.safe-color-change($text-base, $alpha: 0.87), - // Color of the dialog body text. supporting-text-color: sass-utils.safe-color-change($text-base, $alpha: 0.6), ); } @@ -74,13 +47,11 @@ $prefix: (mdc, dialog); // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { @return ( - // Typography of the dialog header. subhead-font: inspection.get-theme-typography($theme, headline-6, font-family), subhead-line-height: inspection.get-theme-typography($theme, headline-6, line-height), subhead-size: inspection.get-theme-typography($theme, headline-6, font-size), subhead-weight: inspection.get-theme-typography($theme, headline-6, font-weight), subhead-tracking: inspection.get-theme-typography($theme, headline-6, letter-spacing), - // Typography of the dialog body text. supporting-text-font: inspection.get-theme-typography($theme, body-1, font-family), supporting-text-line-height: inspection.get-theme-typography($theme, body-1, line-height), supporting-text-size: inspection.get-theme-typography($theme, body-1, font-size), @@ -99,8 +70,8 @@ $prefix: (mdc, dialog); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/dialog/_m3-dialog.scss b/src/material/dialog/_m3-dialog.scss new file mode 100644 index 000000000000..23f6a4e613ac --- /dev/null +++ b/src/material/dialog/_m3-dialog.scss @@ -0,0 +1,47 @@ +@use '../core/tokens/m3-utils'; +@use 'sass:map'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, dialog); + +/// Generates custom tokens for the dialog. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the dialog +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + // headline-padding: + // The vertical padding values are a bit weird, because MDC uses a `::before` pseudo + // element to size the title which in turn means that we can't set a specific padding + // and get the exact same space out of it. These values were determined through + // trial and error so that the first line of text is 24px from the top and the bottom + // of the text is 16px from the content under it. + $tokens: ( + actions-alignment: m3-utils.hardcode(flex-end, $exclude-hardcoded), + actions-padding: m3-utils.hardcode(16px 24px, $exclude-hardcoded), + container-color: map.get($systems, md-sys-color, surface), + container-elevation-shadow: m3-utils.hardcode(none, $exclude-hardcoded), + container-max-width: m3-utils.hardcode(560px, $exclude-hardcoded), + container-min-width: m3-utils.hardcode(280px, $exclude-hardcoded), + container-shape: map.get($systems, md-sys-shape, corner-extra-large), + container-small-max-width: + m3-utils.hardcode(calc(100vw - 32px), $exclude-hardcoded), + content-padding: m3-utils.hardcode(20px 24px, $exclude-hardcoded), + headline-padding: m3-utils.hardcode(6px 24px 13px, $exclude-hardcoded), + subhead-color: map.get($systems, md-sys-color, on-surface), + subhead-font: map.get($systems, md-sys-typescale, headline-small-font), + subhead-line-height: map.get($systems, md-sys-typescale, headline-small-line-height), + subhead-size: map.get($systems, md-sys-typescale, headline-small-size), + subhead-tracking: map.get($systems, md-sys-typescale, headline-small-tracking), + subhead-weight: map.get($systems, md-sys-typescale, headline-small-weight), + supporting-text-color: map.get($systems, md-sys-color, on-surface-variant), + supporting-text-font: map.get($systems, md-sys-typescale, body-medium-font), + supporting-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), + supporting-text-size: map.get($systems, md-sys-typescale, body-medium-size), + supporting-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), + supporting-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + with-actions-content-padding: m3-utils.hardcode(20px 24px 0, $exclude-hardcoded), + ); + + @return m3-utils.namespace($prefix, $tokens, $token-slots); +} diff --git a/src/material/dialog/dialog.scss b/src/material/dialog/dialog.scss index 33e2560d527e..7b89b5dc9007 100644 --- a/src/material/dialog/dialog.scss +++ b/src/material/dialog/dialog.scss @@ -1,6 +1,5 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mdc/dialog' as tokens-mdc-dialog; -@use '../core/tokens/m2/mat/dialog' as tokens-mat-dialog; +@use './m2-dialog'; @use '../core/tokens/token-utils'; @use '../core/style/variables'; @@ -21,17 +20,8 @@ $mat-dialog-container-max-height: 95vh !default; // include the `dialog-base`. Eventually we should clean up the usages of this flag. $_emit-fallbacks: true; -@mixin _use-mat-tokens { - @include token-utils.use-tokens(tokens-mat-dialog.$prefix, tokens-mat-dialog.get-token-slots()) { - @content; - } -} - -@mixin _use-mdc-tokens { - @include token-utils.use-tokens(tokens-mdc-dialog.$prefix, tokens-mdc-dialog.get-token-slots()) { - @content; - } -} +$token-prefix: m2-dialog.$prefix; +$token-slots: m2-dialog.get-token-slots(); // Note that we disable fallback declarations, but we don't disable fallback // values, because there are a lot of internal apps that don't include a proper @@ -52,15 +42,12 @@ $_emit-fallbacks: true; // This needs extra specificity so it doesn't get overwritten by the CDK structural styles. .cdk-overlay-pane.mat-mdc-dialog-panel { - @include _use-mat-tokens { - @include token-utils.create-token-slot(max-width, container-max-width, - $_emit-fallbacks); - @include token-utils.create-token-slot(min-width, container-min-width, - $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + max-width: token-utils.slot(container-max-width, $_emit-fallbacks); + min-width: token-utils.slot(container-min-width, $_emit-fallbacks); @media (variables.$xsmall) { - @include token-utils.create-token-slot(max-width, container-small-max-width, - $_emit-fallbacks); + max-width: token-utils.slot(container-small-max-width, $_emit-fallbacks); } } } @@ -111,14 +98,13 @@ $_emit-fallbacks: true; min-width: inherit; max-width: inherit; - @include _use-mat-tokens { - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow, - $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + box-shadow: token-utils.slot(container-elevation-shadow, $_emit-fallbacks); } - @include _use-mdc-tokens { - @include token-utils.create-token-slot(border-radius, container-shape, $_emit-fallbacks); - @include token-utils.create-token-slot(background-color, container-color, $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-radius: token-utils.slot(container-shape, $_emit-fallbacks); + background-color: token-utils.slot(container-color, $_emit-fallbacks); } [dir='rtl'] & { @@ -156,8 +142,8 @@ $_emit-fallbacks: true; box-sizing: border-box; margin: 0 0 1px; - @include _use-mat-tokens { - @include token-utils.create-token-slot(padding, headline-padding, $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + padding: token-utils.slot(headline-padding, $_emit-fallbacks); } // This was used by MDC to set the text baseline. We should figure out a way to @@ -177,14 +163,13 @@ $_emit-fallbacks: true; // Nested to maintain the old specificity. .mat-mdc-dialog-container & { - @include _use-mdc-tokens { - @include token-utils.create-token-slot(color, subhead-color, $_emit-fallbacks); - @include token-utils.create-token-slot(font-family, subhead-font, - if($_emit-fallbacks, inherit, null)); - @include token-utils.create-token-slot(line-height, subhead-line-height, $_emit-fallbacks); - @include token-utils.create-token-slot(font-size, subhead-size, $_emit-fallbacks); - @include token-utils.create-token-slot(font-weight, subhead-weight, $_emit-fallbacks); - @include token-utils.create-token-slot(letter-spacing, subhead-tracking, $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(subhead-color, $_emit-fallbacks); + font-family: token-utils.slot(subhead-font, if($_emit-fallbacks, inherit, null)); + line-height: token-utils.slot(subhead-line-height, $_emit-fallbacks); + font-size: token-utils.slot(subhead-size, $_emit-fallbacks); + font-weight: token-utils.slot(subhead-weight, $_emit-fallbacks); + letter-spacing: token-utils.slot(subhead-tracking, $_emit-fallbacks); } } } @@ -207,30 +192,26 @@ $_emit-fallbacks: true; // Nested to maintain the old specificity. .mat-mdc-dialog-container & { - @include _use-mdc-tokens { - @include token-utils.create-token-slot(color, supporting-text-color, $_emit-fallbacks); - @include token-utils.create-token-slot(font-family, supporting-text-font, - if($_emit-fallbacks, inherit, null)); - @include token-utils.create-token-slot(line-height, supporting-text-line-height, - $_emit-fallbacks); - @include token-utils.create-token-slot(font-size, supporting-text-size, $_emit-fallbacks); - @include token-utils.create-token-slot(font-weight, supporting-text-weight, $_emit-fallbacks); - @include token-utils.create-token-slot(letter-spacing, supporting-text-tracking, - $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(supporting-text-color, $_emit-fallbacks); + font-family: token-utils.slot(supporting-text-font, if($_emit-fallbacks, inherit, null)); + line-height: token-utils.slot(supporting-text-line-height, $_emit-fallbacks); + font-size: token-utils.slot(supporting-text-size, $_emit-fallbacks); + font-weight: token-utils.slot(supporting-text-weight, $_emit-fallbacks); + letter-spacing: token-utils.slot(supporting-text-tracking, $_emit-fallbacks); } } - @include _use-mat-tokens { + @include token-utils.use-tokens($token-prefix, $token-slots) { // These styles need a bit more specificity. .mat-mdc-dialog-container & { - @include token-utils.create-token-slot(padding, content-padding, $_emit-fallbacks); + padding: token-utils.slot(content-padding, $_emit-fallbacks); } // Note: we can achieve this with a `:has` selector, but it results in an // increased specificity which breaks a lot of internal clients. .mat-mdc-dialog-container-with-actions & { - @include token-utils.create-token-slot(padding, with-actions-content-padding, - $_emit-fallbacks); + padding: token-utils.slot(with-actions-content-padding, $_emit-fallbacks); } } @@ -254,9 +235,9 @@ $_emit-fallbacks: true; // For backwards compatibility, actions align at start by default. MDC usually // aligns actions at the end of the container. - @include _use-mat-tokens { - @include token-utils.create-token-slot(padding, actions-padding, $_emit-fallbacks); - @include token-utils.create-token-slot(justify-content, actions-alignment, $_emit-fallbacks); + @include token-utils.use-tokens($token-prefix, $token-slots) { + padding: token-utils.slot(actions-padding, $_emit-fallbacks); + justify-content: token-utils.slot(actions-alignment, $_emit-fallbacks); } @include cdk.high-contrast { diff --git a/src/material/dialog/testing/BUILD.bazel b/src/material/dialog/testing/BUILD.bazel index a8e5fb0a7d2e..7b13c71f4218 100644 --- a/src/material/dialog/testing/BUILD.bazel +++ b/src/material/dialog/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,15 +9,13 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ - "//src/cdk/overlay", - "//src/cdk/testing", - "//src/material/dialog", - ], deps = [ "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", "//:node_modules/rxjs", + "//src/cdk/overlay", + "//src/cdk/testing", + "//src/material/dialog", ], ) @@ -26,16 +24,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/dialog", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/divider/BUILD.bazel b/src/material/divider/BUILD.bazel index 911d869a015b..99a2173aca14 100644 --- a/src/material/divider/BUILD.bazel +++ b/src/material/divider/BUILD.bazel @@ -2,53 +2,91 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "divider", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":divider.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-divider.scss", + ], deps = [ - "//src/cdk/coercion", - "//src/material/core", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-divider.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "divider_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], + name = "theme", + srcs = ["_divider-theme.scss"], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "offset_sass", + srcs = ["_divider-offset.scss"], ) sass_binary( - name = "divider_scss", + name = "css", src = "divider.scss", deps = [ - ":divider_scss_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "divider", + srcs = [ + "divider.ts", + "divider-module.ts", + "index.ts", + "public-api.ts", + ], + assets = [":css"], + deps = [ + "//:node_modules/@angular/core", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":divider", - "@npm//@angular/platform-browser", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", ], ) @@ -64,7 +102,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":divider_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/divider/_divider-theme.scss b/src/material/divider/_divider-theme.scss index 6b1ecabc35c6..2193c1ec468c 100644 --- a/src/material/divider/_divider-theme.scss +++ b/src/material/divider/_divider-theme.scss @@ -4,7 +4,7 @@ @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/divider' as tokens-mat-divider; +@use './m2-divider'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -12,9 +12,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-divider.$prefix, - tokens-mat-divider.get-unthemable-tokens() - ); + m2-divider.$prefix, m2-divider.get-unthemable-tokens()); } } } @@ -25,9 +23,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-divider.$prefix, - tokens-mat-divider.get-color-tokens($theme) - ); + m2-divider.$prefix, m2-divider.get-color-tokens($theme)); } } } @@ -50,8 +46,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-divider.$prefix, - tokens: tokens-mat-divider.get-token-slots(), + namespace: m2-divider.$prefix, + tokens: m2-divider.get-token-slots(), ), ); } @@ -85,8 +81,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-divider.$prefix, - map.get($tokens, tokens-mat-divider.$prefix) + m2-divider.$prefix, + map.get($tokens, m2-divider.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_divider.scss b/src/material/divider/_m2-divider.scss similarity index 76% rename from src/material/core/tokens/m2/mat/_divider.scss rename to src/material/divider/_m2-divider.scss index 9128b54f6b1b..6940edbf1d65 100644 --- a/src/material/core/tokens/m2/mat/_divider.scss +++ b/src/material/divider/_m2-divider.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, divider); @@ -35,8 +35,8 @@ $prefix: (mat, divider); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_divider.scss b/src/material/divider/_m3-divider.scss similarity index 76% rename from src/material/core/tokens/m3/mat/_divider.scss rename to src/material/divider/_m3-divider.scss index f986303d4242..2a1b605846c4 100644 --- a/src/material/core/tokens/m3/mat/_divider.scss +++ b/src/material/divider/_m3-divider.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, divider); @@ -11,9 +11,9 @@ $prefix: (mat, divider); /// @return {Map} A set of custom tokens for the mat-divider @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: ( - width: token-definition.hardcode(1px, $exclude-hardcoded), + width: m3-utils.hardcode(1px, $exclude-hardcoded), color: map.get($systems, md-sys-color, outline), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/divider/divider.scss b/src/material/divider/divider.scss index e23890740e9c..bbde097ef05d 100644 --- a/src/material/divider/divider.scss +++ b/src/material/divider/divider.scss @@ -1,5 +1,5 @@ @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/divider' as tokens-mat-divider; +@use './m2-divider'; $inset-margin: 80px; @@ -7,16 +7,15 @@ $inset-margin: 80px; display: block; margin: 0; border-top-style: solid; - @include token-utils.use-tokens( - tokens-mat-divider.$prefix, tokens-mat-divider.get-token-slots()) { - @include token-utils.create-token-slot(border-top-color, color); - @include token-utils.create-token-slot(border-top-width, width); + @include token-utils.use-tokens(m2-divider.$prefix, m2-divider.get-token-slots()) { + border-top-color: token-utils.slot(color); + border-top-width: token-utils.slot(width); &.mat-divider-vertical { border-top: 0; border-right-style: solid; - @include token-utils.create-token-slot(border-right-color, color); - @include token-utils.create-token-slot(border-right-width, width); + border-right-color: token-utils.slot(color); + border-right-width: token-utils.slot(width); } } diff --git a/src/material/divider/testing/BUILD.bazel b/src/material/divider/testing/BUILD.bazel index 68efbb212de3..d5d712d6cb82 100644 --- a/src/material/divider/testing/BUILD.bazel +++ b/src/material/divider/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", ], ) @@ -19,15 +19,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/divider", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/expansion/BUILD.bazel b/src/material/expansion/BUILD.bazel index 9519a0091545..687a1ce1b42d 100644 --- a/src/material/expansion/BUILD.bazel +++ b/src/material/expansion/BUILD.bazel @@ -2,73 +2,129 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "expansion", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = glob(["**/*.html"]) + [ - ":expansion-panel.css", - ":expansion-panel-header.css", +sass_library( + name = "m3", + srcs = [ + "_m3-expansion.scss", ], deps = [ - "//src/cdk/a11y", - "//src/cdk/accordion", - "//src/cdk/collections", - "//src/cdk/keycodes", - "//src/cdk/portal", - "//src/material/core", - "@npm//@angular/core", - "@npm//@angular/platform-browser", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "expansion_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], + name = "m2", + srcs = [ + "_m2-expansion.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_expansion-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], ) sass_binary( - name = "expansion_panel_scss", + name = "css", src = "expansion-panel.scss", deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:variables", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "expansion_panel_header_scss", + name = "header_css", src = "expansion-panel-header.scss", deps = [ - ":expansion_scss_lib", + ":m2", + ":variables", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "variables", + srcs = ["_expansion-variables.scss"], +) + +ng_project( + name = "expansion", + srcs = [ + "accordion.ts", + "accordion-base.ts", + "expansion-animations.ts", + "expansion-module.ts", + "expansion-panel.ts", + "expansion-panel-base.ts", + "expansion-panel-content.ts", + "expansion-panel-header.ts", + "index.ts", + "public-api.ts", + ], + assets = [ + "expansion-panel-header.html", + "expansion-panel.html", + ":css", + ":header_css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/accordion", + "//src/cdk/collections", + "//src/cdk/keycodes", + "//src/cdk/portal", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":expansion", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/a11y", "//src/cdk/keycodes", "//src/cdk/testing/private", - "@npm//@angular/platform-browser", ], ) @@ -84,7 +140,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":expansion_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/expansion/_expansion-theme.scss b/src/material/expansion/_expansion-theme.scss index cdc60a8461d9..13d21e537a81 100644 --- a/src/material/expansion/_expansion-theme.scss +++ b/src/material/expansion/_expansion-theme.scss @@ -5,7 +5,7 @@ @use '../core/typography/typography'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/expansion' as tokens-mat-expansion; +@use './m2-expansion'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -13,9 +13,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-expansion.$prefix, - tokens-mat-expansion.get-unthemable-tokens() - ); + m2-expansion.$prefix, m2-expansion.get-unthemable-tokens()); } } } @@ -26,9 +24,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-expansion.$prefix, - tokens-mat-expansion.get-color-tokens($theme) - ); + m2-expansion.$prefix, m2-expansion.get-color-tokens($theme)); } } } @@ -42,9 +38,7 @@ @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-expansion.$prefix, - tokens-mat-expansion.get-typography-tokens($theme) - ); + m2-expansion.$prefix, m2-expansion.get-typography-tokens($theme)); } } } @@ -55,9 +49,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-expansion.$prefix, - tokens-mat-expansion.get-density-tokens($theme) - ); + m2-expansion.$prefix, m2-expansion.get-density-tokens($theme)); } } } @@ -66,8 +58,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-expansion.$prefix, - tokens: tokens-mat-expansion.get-token-slots(), + namespace: m2-expansion.$prefix, + tokens: m2-expansion.get-token-slots(), ), ); } @@ -101,8 +93,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-expansion.$prefix, - map.get($tokens, tokens-mat-expansion.$prefix) + m2-expansion.$prefix, + map.get($tokens, m2-expansion.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_expansion.scss b/src/material/expansion/_m2-expansion.scss similarity index 90% rename from src/material/core/tokens/m2/mat/_expansion.scss rename to src/material/expansion/_m2-expansion.scss index ce1411507e74..4a33f72367e1 100644 --- a/src/material/core/tokens/m2/mat/_expansion.scss +++ b/src/material/expansion/_m2-expansion.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, expansion); @@ -81,8 +81,8 @@ $prefix: (mat, expansion); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_expansion.scss b/src/material/expansion/_m3-expansion.scss similarity index 72% rename from src/material/core/tokens/m3/mat/_expansion.scss rename to src/material/expansion/_m3-expansion.scss index 155674bb6d14..35df80c355da 100644 --- a/src/material/core/tokens/m3/mat/_expansion.scss +++ b/src/material/expansion/_m3-expansion.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, expansion); @@ -12,12 +12,12 @@ $prefix: (mat, expansion); /// @return {Map} A set of custom tokens for the mat-expansion @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, header-text, title-medium), - token-definition.generate-typography-tokens($systems, container-text, body-large), + m3-utils.generate-typography-tokens($systems, header-text, title-medium), + m3-utils.generate-typography-tokens($systems, container-text, body-large), ( - container-shape: token-definition.hardcode(12px, $exclude-hardcoded), - legacy-header-indicator-display: token-definition.hardcode(none, $exclude-hardcoded), - header-indicator-display: token-definition.hardcode(inline-block, $exclude-hardcoded), + container-shape: m3-utils.hardcode(12px, $exclude-hardcoded), + legacy-header-indicator-display: m3-utils.hardcode(none, $exclude-hardcoded), + header-indicator-display: m3-utils.hardcode(inline-block, $exclude-hardcoded), container-background-color: map.get($systems, md-sys-color, surface), container-text-color: map.get($systems, md-sys-color, on-surface), actions-divider-color: map.get($systems, md-sys-color, outline), @@ -37,5 +37,5 @@ $prefix: (mat, expansion); ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/expansion/expansion-panel-header.scss b/src/material/expansion/expansion-panel-header.scss index 976fb620ff7f..c9a9af2826bc 100644 --- a/src/material/expansion/expansion-panel-header.scss +++ b/src/material/expansion/expansion-panel-header.scss @@ -1,8 +1,11 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/expansion' as tokens-mat-expansion; +@use './m2-expansion'; @use '../core/tokens/token-utils'; @use './expansion-variables'; +$token-prefix: m2-expansion.$prefix; +$token-slots: m2-expansion.get-token-slots(); + .mat-expansion-panel-header { display: flex; flex-direction: row; @@ -19,40 +22,39 @@ border-radius: inherit; } - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(height, header-collapsed-state-height); - @include token-utils.create-token-slot(font-family, header-text-font); - @include token-utils.create-token-slot(font-size, header-text-size); - @include token-utils.create-token-slot(font-weight, header-text-weight); - @include token-utils.create-token-slot(line-height, header-text-line-height); - @include token-utils.create-token-slot(letter-spacing, header-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(header-collapsed-state-height); + font-family: token-utils.slot(header-text-font); + font-size: token-utils.slot(header-text-size); + font-weight: token-utils.slot(header-text-weight); + line-height: token-utils.slot(header-text-line-height); + letter-spacing: token-utils.slot(header-text-tracking); &.mat-expanded { - @include token-utils.create-token-slot(height, header-expanded-state-height); + height: token-utils.slot(header-expanded-state-height); } &[aria-disabled='true'] { - @include token-utils.create-token-slot(color, header-disabled-state-text-color); + color: token-utils.slot(header-disabled-state-text-color); } &:not([aria-disabled='true']) { cursor: pointer; .mat-expansion-panel:not(.mat-expanded) &:hover { - @include token-utils.create-token-slot(background, header-hover-state-layer-color); + background: token-utils.slot(header-hover-state-layer-color); // Disable the hover on touch devices since it can appear like it is stuck. We can't use // `@media (hover)` above, because the desktop support browser support isn't great. @media (hover: none) { - @include token-utils.create-token-slot(background, container-background-color); + background: token-utils.slot(container-background-color); } } // The `.mat-expansion-panel` here is redundant, but we need the additional specificity. .mat-expansion-panel &.cdk-keyboard-focused, .mat-expansion-panel &.cdk-program-focused { - @include token-utils.create-token-slot(background, header-focus-state-layer-color); + background: token-utils.slot(header-focus-state-layer-color); } } } @@ -113,9 +115,8 @@ } .mat-expansion-panel-header-title { - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(color, header-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(header-text-color); } } @@ -140,9 +141,8 @@ .mat-expansion-panel-header-description { flex-grow: 2; - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(color, header-description-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(header-description-color); } } @@ -166,10 +166,9 @@ transform: rotate(45deg); vertical-align: middle; - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(color, header-indicator-color); - @include token-utils.create-token-slot(display, legacy-header-indicator-display, + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(header-indicator-color); + display: token-utils.slot(legacy-header-indicator-display, inline-block); } } @@ -186,10 +185,9 @@ // Ideally we'd make the container `inline-flex`, but that affects M2. vertical-align: middle; - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(fill, header-indicator-color); - @include token-utils.create-token-slot(display, header-indicator-display, none); + @include token-utils.use-tokens($token-prefix, $token-slots) { + fill: token-utils.slot(header-indicator-color); + display: token-utils.slot(header-indicator-display, none); } } } diff --git a/src/material/expansion/expansion-panel.scss b/src/material/expansion/expansion-panel.scss index c9be77e66bcc..99f62abbdab1 100644 --- a/src/material/expansion/expansion-panel.scss +++ b/src/material/expansion/expansion-panel.scss @@ -1,10 +1,13 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/expansion' as tokens-mat-expansion; +@use './m2-expansion'; @use '../core/tokens/token-utils'; @use '../core/style/variables'; @use '../core/style/elevation'; +$token-prefix: m2-expansion.$prefix; +$token-slots: m2-expansion.get-token-slots(); + .mat-expansion-panel { box-sizing: content-box; display: block; @@ -20,11 +23,10 @@ // focus indicator relatively positions the header. position: relative; - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(background, container-background-color); - @include token-utils.create-token-slot(color, container-text-color); - @include token-utils.create-token-slot(border-radius, container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background: token-utils.slot(container-background-color); + color: token-utils.slot(container-text-color); + border-radius: token-utils.slot(container-shape); } @include elevation.overridable-elevation(2); @@ -34,16 +36,15 @@ border-radius: 0; } - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &:first-of-type { - @include token-utils.create-token-slot(border-top-right-radius, container-shape); - @include token-utils.create-token-slot(border-top-left-radius, container-shape); + border-top-right-radius: token-utils.slot(container-shape); + border-top-left-radius: token-utils.slot(container-shape); } &:last-of-type { - @include token-utils.create-token-slot(border-bottom-right-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-left-radius, container-shape); + border-bottom-right-radius: token-utils.slot(container-shape); + border-bottom-left-radius: token-utils.slot(container-shape); } } } @@ -104,13 +105,12 @@ visibility: visible; } - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(font-family, container-text-font); - @include token-utils.create-token-slot(font-size, container-text-size); - @include token-utils.create-token-slot(font-weight, container-text-weight); - @include token-utils.create-token-slot(line-height, container-text-line-height); - @include token-utils.create-token-slot(letter-spacing, container-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(container-text-font); + font-size: token-utils.slot(container-text-size); + font-weight: token-utils.slot(container-text-weight); + line-height: token-utils.slot(container-text-line-height); + letter-spacing: token-utils.slot(container-text-tracking); } } @@ -140,9 +140,8 @@ justify-content: flex-end; padding: 16px 8px 16px 24px; - @include token-utils.use-tokens( - tokens-mat-expansion.$prefix, tokens-mat-expansion.get-token-slots()) { - @include token-utils.create-token-slot(border-top-color, actions-divider-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-color: token-utils.slot(actions-divider-color); } .mat-button-base, .mat-mdc-button-base { diff --git a/src/material/expansion/testing/BUILD.bazel b/src/material/expansion/testing/BUILD.bazel index 57bb80c1dd91..e1bbeb936728 100644 --- a/src/material/expansion/testing/BUILD.bazel +++ b/src/material/expansion/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", ], ) @@ -19,15 +19,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/expansion", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/form-field/BUILD.bazel b/src/material/form-field/BUILD.bazel index 4fbb9906282d..4210664d553b 100644 --- a/src/material/form-field/BUILD.bazel +++ b/src/material/form-field/BUILD.bazel @@ -2,49 +2,78 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "form-field", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":form_field_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-filled-text-field.scss", + "_m3-form-field.scss", + "_m3-outlined-text-field.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/bidi", - "//src/cdk/observers/private", - "//src/cdk/platform", - "//src/material/core", - "@npm//@angular/forms", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "form_field_scss_lib", + name = "m2", + srcs = [ + "_m2-filled-text-field.scss", + "_m2-form-field.scss", + "_m2-outlined-text-field.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", srcs = [ "_form-field-theme.scss", ], deps = [ - ":form_field_partials", - "//src/material/core:core_scss_lib", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "form_field_scss", + name = "css", src = "form-field.scss", deps = [ ":form_field_partials", - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "form_field_scss_lib", + srcs = [ + "_form-field-theme.scss", + ], + deps = [ + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) @@ -63,7 +92,35 @@ sass_library( ], deps = [ "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:layout_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "form-field", + srcs = [ + "form-field.ts", + "form-field-animations.ts", + "form-field-control.ts", + "form-field-errors.ts", + "index.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "form-field.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/material/core", + "//src/material/form-field/directives", ], ) @@ -74,7 +131,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":form_field_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/form-field/_form-field-focus-overlay.scss b/src/material/form-field/_form-field-focus-overlay.scss index c5b7c42313b4..5d9c37d3420f 100644 --- a/src/material/form-field/_form-field-focus-overlay.scss +++ b/src/material/form-field/_form-field-focus-overlay.scss @@ -1,4 +1,4 @@ -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use '../core/tokens/token-utils'; @use '../core/style/layout-common'; @@ -16,15 +16,15 @@ pointer-events: none; // Make sure we don't block click on the prefix/suffix. @include token-utils.use-tokens( - tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots()) { - @include token-utils.create-token-slot(background-color, state-layer-color); + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + background-color: token-utils.slot(state-layer-color); .mat-mdc-text-field-wrapper:hover & { - @include token-utils.create-token-slot(opacity, hover-state-layer-opacity); + opacity: token-utils.slot(hover-state-layer-opacity); } .mat-mdc-form-field.mat-focused & { - @include token-utils.create-token-slot(opacity, focus-state-layer-opacity); + opacity: token-utils.slot(focus-state-layer-opacity); } } } diff --git a/src/material/form-field/_form-field-native-select.scss b/src/material/form-field/_form-field-native-select.scss index defc1094500f..16279807959d 100644 --- a/src/material/form-field/_form-field-native-select.scss +++ b/src/material/form-field/_form-field-native-select.scss @@ -1,5 +1,5 @@ @use 'sass:math'; -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use '../core/tokens/token-utils'; // Width of the Material Design form-field select arrow. @@ -10,8 +10,6 @@ $mat-form-field-select-arrow-height: 5px; // that the absolute positioned arrow does not overlap the select content. $mat-form-field-select-horizontal-end-padding: $mat-form-field-select-arrow-width + 5px; -$_tokens: tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots(); - // Mixin that creates styles for native select controls in a form-field. @mixin private-form-field-native-select() { // Remove the native select down arrow and ensure that the native appearance @@ -32,13 +30,13 @@ $_tokens: tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots() } &:not(.mat-mdc-native-select-inline) { - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens(m2-form-field.$prefix, m2-form-field.get-token-slots()) { option { - @include token-utils.create-token-slot(color, select-option-text-color); + color: token-utils.slot(select-option-text-color); } option:disabled { - @include token-utils.create-token-slot(color, select-disabled-option-text-color); + color: token-utils.slot(select-disabled-option-text-color); } } } @@ -64,8 +62,8 @@ $_tokens: tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots() // Make the arrow non-clickable so the user can click on the form control under it. pointer-events: none; - @include token-utils.use-tokens($_tokens...) { - @include token-utils.create-token-slot(color, enabled-select-arrow-color); + @include token-utils.use-tokens(m2-form-field.$prefix, m2-form-field.get-token-slots()) { + color: token-utils.slot(enabled-select-arrow-color); } [dir='rtl'] & { @@ -74,13 +72,13 @@ $_tokens: tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots() } } - @include token-utils.use-tokens($_tokens...) { + @include token-utils.use-tokens(m2-form-field.$prefix, m2-form-field.get-token-slots()) { &.mat-focused .mat-mdc-form-field-infix::after { - @include token-utils.create-token-slot(color, focus-select-arrow-color); + color: token-utils.slot(focus-select-arrow-color); } &.mat-form-field-disabled .mat-mdc-form-field-infix::after { - @include token-utils.create-token-slot(color, disabled-select-arrow-color); + color: token-utils.slot(disabled-select-arrow-color); } } diff --git a/src/material/form-field/_form-field-subscript.scss b/src/material/form-field/_form-field-subscript.scss index 2e3da86d9899..7a9e48508b86 100644 --- a/src/material/form-field/_form-field-subscript.scss +++ b/src/material/form-field/_form-field-subscript.scss @@ -1,4 +1,4 @@ -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use '../core/style/vendor-prefixes'; @use '../core/tokens/token-utils'; @@ -72,9 +72,9 @@ .mat-mdc-form-field-error { display: block; - @include token-utils.use-tokens(tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-token-slots()) { - @include token-utils.create-token-slot(color, error-text-color); + @include token-utils.use-tokens( + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + color: token-utils.slot(error-text-color); } } @@ -82,14 +82,14 @@ // jumps when hints or errors are displayed. .mat-mdc-form-field-subscript-wrapper, .mat-mdc-form-field-bottom-align::before { - @include token-utils.use-tokens(tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-token-slots()) { + @include token-utils.use-tokens( + m2-form-field.$prefix, m2-form-field.get-token-slots()) { @include vendor-prefixes.smooth-font(); - @include token-utils.create-token-slot(font-family, subscript-text-font); - @include token-utils.create-token-slot(line-height, subscript-text-line-height); - @include token-utils.create-token-slot(font-size, subscript-text-size); - @include token-utils.create-token-slot(letter-spacing, subscript-text-tracking); - @include token-utils.create-token-slot(font-weight, subscript-text-weight); + font-family: token-utils.slot(subscript-text-font); + line-height: token-utils.slot(subscript-text-line-height); + font-size: token-utils.slot(subscript-text-size); + letter-spacing: token-utils.slot(subscript-text-tracking); + font-weight: token-utils.slot(subscript-text-weight); } } } diff --git a/src/material/form-field/_form-field-theme.scss b/src/material/form-field/_form-field-theme.scss index 13ecaffad535..fd7d61c859f4 100644 --- a/src/material/form-field/_form-field-theme.scss +++ b/src/material/form-field/_form-field-theme.scss @@ -1,6 +1,6 @@ -@use '../core/tokens/m2/mdc/filled-text-field' as tokens-mdc-filled-text-field; -@use '../core/tokens/m2/mdc/outlined-text-field' as tokens-mdc-outlined-text-field; -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-filled-text-field'; +@use './m2-outlined-text-field'; +@use './m2-form-field'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; @@ -17,16 +17,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.get-unthemable-tokens() + m2-filled-text-field.$prefix, + m2-filled-text-field.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.get-unthemable-tokens() + m2-outlined-text-field.$prefix, + m2-outlined-text-field.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-unthemable-tokens() + m2-form-field.$prefix, + m2-form-field.get-unthemable-tokens() ); } } @@ -43,46 +43,46 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.get-color-tokens($theme) + m2-filled-text-field.$prefix, + m2-filled-text-field.get-color-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.get-color-tokens($theme) + m2-outlined-text-field.$prefix, + m2-outlined-text-field.get-color-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-color-tokens($theme) + m2-form-field.$prefix, + m2-form-field.get-color-tokens($theme) ); } .mat-mdc-form-field.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.private-get-color-palette-color-tokens($theme, accent) + m2-filled-text-field.$prefix, + m2-filled-text-field.private-get-color-palette-color-tokens($theme, accent) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.private-get-color-palette-color-tokens($theme, accent) + m2-outlined-text-field.$prefix, + m2-outlined-text-field.private-get-color-palette-color-tokens($theme, accent) ); @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.private-get-color-palette-color-tokens($theme, accent) + m2-form-field.$prefix, + m2-form-field.private-get-color-palette-color-tokens($theme, accent) ); } .mat-mdc-form-field.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.private-get-color-palette-color-tokens($theme, warn) + m2-filled-text-field.$prefix, + m2-filled-text-field.private-get-color-palette-color-tokens($theme, warn) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.private-get-color-palette-color-tokens($theme, warn) + m2-outlined-text-field.$prefix, + m2-outlined-text-field.private-get-color-palette-color-tokens($theme, warn) ); @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.private-get-color-palette-color-tokens($theme, warn) + m2-form-field.$prefix, + m2-form-field.private-get-color-palette-color-tokens($theme, warn) ); } } @@ -96,16 +96,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.get-typography-tokens($theme) + m2-filled-text-field.$prefix, + m2-filled-text-field.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.get-typography-tokens($theme) + m2-outlined-text-field.$prefix, + m2-outlined-text-field.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-typography-tokens($theme) + m2-form-field.$prefix, + m2-form-field.get-typography-tokens($theme) ); } } @@ -119,8 +119,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-density-tokens($theme) + m2-form-field.$prefix, + m2-form-field.get-density-tokens($theme) ); } } @@ -128,23 +128,23 @@ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction. @function _define-overrides() { - $filled-text-field-tokens: tokens-mdc-filled-text-field.get-token-slots(); - $outlined-text-field-tokens: tokens-mdc-outlined-text-field.get-token-slots(); - $form-field-tokens: tokens-mat-form-field.get-token-slots(); + $filled-text-field-tokens: m2-filled-text-field.get-token-slots(); + $outlined-text-field-tokens: m2-outlined-text-field.get-token-slots(); + $form-field-tokens: m2-form-field.get-token-slots(); @return ( ( - namespace: tokens-mdc-filled-text-field.$prefix, + namespace: m2-filled-text-field.$prefix, tokens: $filled-text-field-tokens, prefix: 'filled-', ), ( - namespace: tokens-mdc-outlined-text-field.$prefix, + namespace: m2-outlined-text-field.$prefix, tokens: $outlined-text-field-tokens, prefix: 'outlined-', ), ( - namespace: tokens-mat-form-field.$prefix, + namespace: m2-form-field.$prefix, tokens: $form-field-tokens, ) ); @@ -186,26 +186,26 @@ ); $mdc-filled-text-field-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-filled-text-field.$prefix, + m2-filled-text-field.$prefix, $options... ); $mdc-outlined-text-field-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-outlined-text-field.$prefix, + m2-outlined-text-field.$prefix, $options... ); $mat-form-field-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-form-field.$prefix, + m2-form-field.$prefix, $options... ); @include token-utils.create-token-values( - tokens-mdc-filled-text-field.$prefix, + m2-filled-text-field.$prefix, $mdc-filled-text-field-tokens ); @include token-utils.create-token-values( - tokens-mdc-outlined-text-field.$prefix, + m2-outlined-text-field.$prefix, $mdc-outlined-text-field-tokens ); - @include token-utils.create-token-values(tokens-mat-form-field.$prefix, $mat-form-field-tokens); + @include token-utils.create-token-values(m2-form-field.$prefix, $mat-form-field-tokens); } diff --git a/src/material/core/tokens/m2/mdc/_filled-text-field.scss b/src/material/form-field/_m2-filled-text-field.scss similarity index 57% rename from src/material/core/tokens/m2/mdc/_filled-text-field.scss rename to src/material/form-field/_m2-filled-text-field.scss index b79701a67d05..44e909802805 100644 --- a/src/material/core/tokens/m2/mdc/_filled-text-field.scss +++ b/src/material/form-field/_m2-filled-text-field.scss @@ -1,12 +1,12 @@ @use 'sass:color'; @use 'sass:map'; @use 'sass:meta'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, filled-text-field); +$prefix: (mat, form-field-filled); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -19,73 +19,6 @@ $prefix: (mdc, filled-text-field); active-indicator-height: 1px, focus-active-indicator-height: 2px, container-shape: 4px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - disabled-active-indicator-height: null, - hover-active-indicator-height: null, - disabled-active-indicator-opacity: null, - error-focus-caret-color: null, - error-hover-caret-color: null, - focus-caret-color: null, - hover-caret-color: null, - label-text-populated-line-height: null, - label-text-populated-size: null, - label-text-type: null, - disabled-label-text-opacity: null, - supporting-text-color: null, - supporting-text-font: null, - supporting-text-line-height: null, - supporting-text-size: null, - supporting-text-tracking: null, - supporting-text-weight: null, - disabled-supporting-text-color: null, - disabled-supporting-text-opacity: null, - error-focus-supporting-text-color: null, - error-hover-supporting-text-color: null, - error-supporting-text-color: null, - focus-supporting-text-color: null, - hover-supporting-text-color: null, - input-text-prefix-color: null, - input-text-suffix-color: null, - container-height: null, - trailing-icon-size: null, - leading-icon-size: null, - trailing-icon-color: null, - disabled-trailing-icon-color: null, - disabled-trailing-icon-opacity: null, - error-focus-trailing-icon-color: null, - error-hover-trailing-icon-color: null, - error-trailing-icon-color: null, - focus-trailing-icon-color: null, - hover-trailing-icon-color: null, - leading-icon-color: null, - disabled-leading-icon-opacity: null, - disabled-leading-icon-color: null, - error-focus-leading-icon-color: null, - error-hover-leading-icon-color: null, - error-leading-icon-color: null, - focus-leading-icon-color: null, - hover-leading-icon-color: null, - input-text-type: null, - input-text-font: null, - input-text-line-height: null, - input-text-size: null, - input-text-tracking: null, - input-text-weight: null, - error-input-text-color: null, - focus-input-text-color: null, - hover-input-text-color: null, - disabled-input-text-opacity: null, - error-focus-input-text-color: null, - error-hover-input-text-color: null, - disabled-container-opacity: null, - error-hover-state-layer-color: null, - error-hover-state-layer-opacity: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - label-text-line-height: null, // We override the line height to `normal` so don't emit a slot. ); } @@ -99,11 +32,11 @@ $prefix: (mdc, filled-text-field); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. - $text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, text, 1)); - $disabled-text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $disabled-text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, disabled-text, 1)); - $divider-base: if(token-definition.$private-is-internal-build, $on-surface, + $divider-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, divider, 1)); @return map.merge($color-tokens, ( @@ -174,8 +107,8 @@ $prefix: (mdc, filled-text-field); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_form-field.scss b/src/material/form-field/_m2-form-field.scss similarity index 95% rename from src/material/core/tokens/m2/mat/_form-field.scss rename to src/material/form-field/_m2-form-field.scss index 1531cb14d8cf..28dd9c753c24 100644 --- a/src/material/core/tokens/m2/mat/_form-field.scss +++ b/src/material/form-field/_m2-form-field.scss @@ -1,10 +1,10 @@ @use 'sass:math'; @use 'sass:map'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../m2/palette' as m2-palette; +@use '../core/tokens/m2-utils'; +@use '../core/style/sass-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/m2/palette' as m2-palette; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, form-field); @@ -158,8 +158,8 @@ $prefix: (mat, form-field); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mdc/_outlined-text-field.scss b/src/material/form-field/_m2-outlined-text-field.scss similarity index 55% rename from src/material/core/tokens/m2/mdc/_outlined-text-field.scss rename to src/material/form-field/_m2-outlined-text-field.scss index 1347680109c3..957b16310576 100644 --- a/src/material/core/tokens/m2/mdc/_outlined-text-field.scss +++ b/src/material/form-field/_m2-outlined-text-field.scss @@ -1,10 +1,10 @@ @use 'sass:map'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, outlined-text-field); +$prefix: (mat, form-field-outlined); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -17,69 +17,6 @@ $prefix: (mdc, outlined-text-field); outline-width: 1px, focus-outline-width: 2px, container-shape: 4px, - - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - error-focus-caret-color: null, - error-hover-caret-color: null, - focus-caret-color: null, - hover-caret-color: null, - disabled-outline-opacity: null, - hover-outline-width: null, - disabled-outline-width: null, - label-text-type: null, - label-text-populated-line-height: null, - label-text-populated-size: null, - disabled-label-text-opacity: null, - disabled-supporting-text-color: null, - disabled-supporting-text-opacity: null, - error-focus-supporting-text-color: null, - error-hover-supporting-text-color: null, - error-supporting-text-color: null, - focus-supporting-text-color: null, - hover-supporting-text-color: null, - supporting-text-color: null, - supporting-text-font: null, - supporting-text-line-height: null, - supporting-text-size: null, - supporting-text-tracking: null, - supporting-text-type: null, - supporting-text-weight: null, - leading-icon-size: null, - trailing-icon-size: null, - leading-icon-color: null, - disabled-leading-icon-color: null, - disabled-leading-icon-opacity: null, - error-focus-leading-icon-color: null, - error-hover-leading-icon-color: null, - error-leading-icon-color: null, - focus-leading-icon-color: null, - hover-leading-icon-color: null, - trailing-icon-color: null, - disabled-trailing-icon-color: null, - disabled-trailing-icon-opacity: null, - error-focus-trailing-icon-color: null, - error-hover-trailing-icon-color: null, - error-trailing-icon-color: null, - focus-trailing-icon-color: null, - hover-trailing-icon-color: null, - input-text-prefix-color: null, - input-text-type: null, - container-height: null, - input-text-suffix-color: null, - input-text-font: null, - input-text-line-height: null, - input-text-size: null, - input-text-tracking: null, - input-text-weight: null, - disabled-input-text-opacity: null, - error-focus-input-text-color: null, - error-hover-input-text-color: null, - error-input-text-color: null, - focus-input-text-color: null, - hover-input-text-color: null, - label-text-line-height: null, // We override the line height to `normal` so don't emit a slot. ); } @@ -92,11 +29,11 @@ $prefix: (mdc, outlined-text-field); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. $on-surface: if($is-dark, #fff, #000); - $text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, text, 1)); - $disabled-text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $disabled-text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, disabled-text, 1)); - $divider-base: if(token-definition.$private-is-internal-build, $on-surface, + $divider-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, divider, 1)); @return map.merge($color-tokens, ( @@ -156,8 +93,8 @@ $prefix: (mdc, outlined-text-field); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/form-field/_m3-filled-text-field.scss b/src/material/form-field/_m3-filled-text-field.scss new file mode 100644 index 000000000000..de0a2a3977b5 --- /dev/null +++ b/src/material/form-field/_m3-filled-text-field.scss @@ -0,0 +1,68 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; +@use '../core/style/sass-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, form-field-filled); + +/// Generates the tokens for MDC filled-text-field +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of tokens for the MDC filled-text-field +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + active-indicator-color: map.get($systems, md-sys-color, on-surface-variant), + active-indicator-height: if($exclude-hardcoded, null, 1px), + caret-color: map.get($systems, md-sys-color, primary), + container-color: map.get($systems, md-sys-color, surface-variant), + container-shape: map.get($systems, md-sys-shape, corner-extra-small), + disabled-active-indicator-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-container-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.04), + disabled-input-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + error-active-indicator-color: map.get($systems, md-sys-color, error), + error-focus-active-indicator-color: map.get($systems, md-sys-color, error), + error-focus-label-text-color: map.get($systems, md-sys-color, error), + error-hover-active-indicator-color: map.get($systems, md-sys-color, on-error-container), + error-hover-label-text-color: map.get($systems, md-sys-color, on-error-container), + error-label-text-color: map.get($systems, md-sys-color, error), + focus-active-indicator-color: map.get($systems, md-sys-color, primary), + focus-active-indicator-height: if($exclude-hardcoded, null, 2px), + focus-label-text-color: map.get($systems, md-sys-color, primary), + hover-active-indicator-color: map.get($systems, md-sys-color, on-surface), + hover-label-text-color: map.get($systems, md-sys-color, on-surface-variant), + input-text-color: map.get($systems, md-sys-color, on-surface), + input-text-placeholder-color: map.get($systems, md-sys-color, on-surface-variant), + label-text-color: map.get($systems, md-sys-color, on-surface-variant), + label-text-font: map.get($systems, md-sys-typescale, body-large-font), + label-text-size: map.get($systems, md-sys-typescale, body-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, body-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, body-large-weight), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + caret-color: map.get($systems, md-sys-color, secondary), + focus-active-indicator-color: map.get($systems, md-sys-color, secondary), + focus-label-text-color: map.get($systems, md-sys-color, secondary), + ), + tertiary: ( + caret-color: map.get($systems, md-sys-color, tertiary), + focus-active-indicator-color: map.get($systems, md-sys-color, tertiary), + focus-label-text-color: map.get($systems, md-sys-color, tertiary), + ), + error: ( + caret-color: map.get($systems, md-sys-color, error), + focus-active-indicator-color: map.get($systems, md-sys-color, error), + focus-label-text-color: map.get($systems, md-sys-color, error), + ), + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/core/tokens/m3/mat/_form-field.scss b/src/material/form-field/_m3-form-field.scss similarity index 83% rename from src/material/core/tokens/m3/mat/_form-field.scss rename to src/material/form-field/_m3-form-field.scss index 42dba93e1895..36a2f50c2128 100644 --- a/src/material/core/tokens/m3/mat/_form-field.scss +++ b/src/material/form-field/_m3-form-field.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, form-field); @@ -12,8 +12,8 @@ $prefix: (mat, form-field); /// @return {Map} A set of custom tokens for the mat-form-field @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, container-text, body-large), - token-definition.generate-typography-tokens($systems, subscript-text, body-small), + m3-utils.generate-typography-tokens($systems, container-text, body-large), + m3-utils.generate-typography-tokens($systems, subscript-text, body-small), ( disabled-input-text-placeholder-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38), @@ -26,14 +26,11 @@ $prefix: (mat, form-field); disabled-select-arrow-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38), hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), - focus-state-layer-opacity: token-definition.hardcode(0, $exclude-hardcoded), + focus-state-layer-opacity: m3-utils.hardcode(0, $exclude-hardcoded), focus-select-arrow-color: map.get($systems, md-sys-color, primary), - outlined-label-text-populated-size: map.get($systems, md-sys-typeface, body-large-size), - leading-icon-color: map.get($systems, md-sys-color, on-surface-variant), disabled-leading-icon-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38), - trailing-icon-color: map.get($systems, md-sys-color, on-surface-variant), disabled-trailing-icon-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: 0.38), @@ -41,7 +38,9 @@ $prefix: (mat, form-field); error-hover-trailing-icon-color: map.get($systems, md-sys-color, on-error-container), error-trailing-icon-color: map.get($systems, md-sys-color, error), ) - ), ( + ); + + $variant-tokens: ( // Color variants: primary: (), // Default, no overrides needed. secondary: ( @@ -55,5 +54,5 @@ $prefix: (mat, form-field); ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/form-field/_m3-outlined-text-field.scss b/src/material/form-field/_m3-outlined-text-field.scss new file mode 100644 index 000000000000..4345731a1939 --- /dev/null +++ b/src/material/form-field/_m3-outlined-text-field.scss @@ -0,0 +1,65 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; +@use '../core/style/sass-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, form-field-outlined); + +/// Generates the tokens for MDC outlined-text-field +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of tokens for the MDC outlined-text-field +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + caret-color: map.get($systems, md-sys-color, primary), + container-shape: map.get($systems, md-sys-shape, corner-extra-small), + disabled-input-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-label-text-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + disabled-outline-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, on-surface), $alpha: 0.12), + error-focus-label-text-color: map.get($systems, md-sys-color, error), + error-focus-outline-color: map.get($systems, md-sys-color, error), + error-hover-label-text-color: map.get($systems, md-sys-color, on-error-container), + error-hover-outline-color: map.get($systems, md-sys-color, on-error-container), + error-label-text-color: map.get($systems, md-sys-color, error), + error-outline-color: map.get($systems, md-sys-color, error), + focus-label-text-color: map.get($systems, md-sys-color, primary), + focus-outline-color: map.get($systems, md-sys-color, primary), + focus-outline-width: if($exclude-hardcoded, null, 2px), + hover-label-text-color: map.get($systems, md-sys-color, on-surface), + hover-outline-color: map.get($systems, md-sys-color, on-surface), + input-text-color: map.get($systems, md-sys-color, on-surface), + input-text-placeholder-color: map.get($systems, md-sys-color, on-surface-variant), + label-text-color: map.get($systems, md-sys-color, on-surface-variant), + label-text-font: map.get($systems, md-sys-typescale, body-large-font), + label-text-size: map.get($systems, md-sys-typescale, body-large-size), + label-text-tracking: map.get($systems, md-sys-typescale, body-large-tracking), + label-text-weight: map.get($systems, md-sys-typescale, body-large-weight), + outline-color: map.get($systems, md-sys-color, outline), + outline-width: if($exclude-hardcoded, null, 1px), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + caret-color: map.get($systems, md-sys-color, secondary), + focus-label-text-color: map.get($systems, md-sys-color, secondary), + focus-outline-color: map.get($systems, md-sys-color, secondary), + ), + tertiary: ( + caret-color: map.get($systems, md-sys-color, tertiary), + focus-label-text-color: map.get($systems, md-sys-color, tertiary), + focus-outline-color: map.get($systems, md-sys-color, tertiary), + ), + error: ( + caret-color: map.get($systems, md-sys-color, error), + focus-label-text-color: map.get($systems, md-sys-color, error), + focus-outline-color: map.get($systems, md-sys-color, error), + ), + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/form-field/_mdc-text-field-density-overrides.scss b/src/material/form-field/_mdc-text-field-density-overrides.scss index 9540bf057301..e8b2da41ed4a 100644 --- a/src/material/form-field/_mdc-text-field-density-overrides.scss +++ b/src/material/form-field/_mdc-text-field-density-overrides.scss @@ -1,4 +1,4 @@ -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use '../core/tokens/token-utils'; // Mixin that includes the density styles for form fields. MDC provides their own density @@ -10,23 +10,21 @@ // based on the density scale. @mixin private-text-field-density-overrides() { @include token-utils.use-tokens( - tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots()) { - $height: token-utils.get-token-variable(container-height); + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + $height: token-utils.slot(container-height); .mat-mdc-form-field-infix { // We add a minimum height to the infix container to ensure that custom controls have the // same default vertical space as text-field inputs (with respect to the vertical padding). min-height: #{$height}; - @include token-utils.create-token-slot(padding-top, - filled-with-label-container-padding-top); - @include token-utils.create-token-slot(padding-bottom, - filled-with-label-container-padding-bottom); + padding-top: token-utils.slot(filled-with-label-container-padding-top); + padding-bottom: token-utils.slot(filled-with-label-container-padding-bottom); .mdc-text-field--outlined &, .mdc-text-field--no-label & { - @include token-utils.create-token-slot(padding-top, container-vertical-padding); - @include token-utils.create-token-slot(padding-bottom, container-vertical-padding); + padding-top: token-utils.slot(container-vertical-padding); + padding-bottom: token-utils.slot(container-vertical-padding); } } @@ -40,7 +38,7 @@ // We need to conditionally hide the floating label based on the height of the form field. .mdc-text-field--filled .mat-mdc-floating-label { - display: token-utils.get-token-variable(filled-label-display, $fallback: block); + display: token-utils.slot(filled-label-display, $fallback: block); } // For the outline appearance, we re-create the active floating label transform. This is diff --git a/src/material/form-field/_mdc-text-field-structure-overrides.scss b/src/material/form-field/_mdc-text-field-structure-overrides.scss index 772c1c0476fe..96419c6b5223 100644 --- a/src/material/form-field/_mdc-text-field-structure-overrides.scss +++ b/src/material/form-field/_mdc-text-field-structure-overrides.scss @@ -1,4 +1,4 @@ -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; @@ -117,8 +117,8 @@ $_enable-form-field-will-change-reset: true; .mat-form-field-disabled .mdc-text-field__input { @include vendor-prefixes.input-placeholder { @include token-utils.use-tokens( - tokens-mat-form-field.$prefix, tokens-mat-form-field.get-token-slots()) { - @include token-utils.create-token-slot(color, disabled-input-text-placeholder-color); + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + color: token-utils.slot(disabled-input-text-placeholder-color); } } } diff --git a/src/material/form-field/_mdc-text-field-structure.scss b/src/material/form-field/_mdc-text-field-structure.scss index 3f00d56b11ab..03774045f5ca 100644 --- a/src/material/form-field/_mdc-text-field-structure.scss +++ b/src/material/form-field/_mdc-text-field-structure.scss @@ -1,20 +1,16 @@ @use '@angular/cdk'; @use '../core/style/vendor-prefixes'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mdc/filled-text-field' as tokens-mdc-filled-text-field; -@use '../core/tokens/m2/mdc/outlined-text-field' as tokens-mdc-outlined-text-field; +@use './m2-filled-text-field'; +@use './m2-outlined-text-field'; + +$filled-token-prefix: m2-filled-text-field.$prefix; +$filled-token-slots: m2-filled-text-field.get-token-slots(); +$outlined-token-prefix: m2-outlined-text-field.$prefix; +$outlined-token-slots: m2-outlined-text-field.get-token-slots(); // Includes the structural styles for the form field inherited from MDC. @mixin private-text-field-structure { - $filled-slots: ( - tokens-mdc-filled-text-field.$prefix, - tokens-mdc-filled-text-field.get-token-slots() - ); - $outlined-slots: ( - tokens-mdc-outlined-text-field.$prefix, - tokens-mdc-outlined-text-field.get-token-slots() - ); - .mdc-text-field { display: inline-flex; align-items: baseline; @@ -97,11 +93,11 @@ pointer-events: auto; } - @include token-utils.use-tokens($filled-slots...) { + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { @include _input-tokens('.mdc-text-field--filled'); } - @include token-utils.use-tokens($outlined-slots...) { + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { @include _input-tokens('.mdc-text-field--outlined'); } @@ -117,16 +113,16 @@ border-bottom-right-radius: 0; border-bottom-left-radius: 0; - @include token-utils.use-tokens($filled-slots...) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-top-right-radius, container-shape); + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-top-right-radius: token-utils.slot(container-shape); &:not(.mdc-text-field--disabled) { - @include token-utils.create-token-slot(background-color, container-color); + background-color: token-utils.slot(container-color); } &.mdc-text-field--disabled { - @include token-utils.create-token-slot(background-color, disabled-container-color); + background-color: token-utils.slot(disabled-container-color); } } } @@ -135,8 +131,8 @@ height: 56px; overflow: visible; - @include token-utils.use-tokens($outlined-slots...) { - $shape-var: token-utils.get-token-variable(container-shape); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + $shape-var: token-utils.slot(container-shape); padding-right: max(16px, #{$shape-var}); padding-left: max(16px, calc(#{$shape-var} + 4px)); @@ -210,11 +206,11 @@ display: none; } - @include token-utils.use-tokens($filled-slots...) { + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { @include _floating-label-tokens('.mdc-text-field--filled'); } - @include token-utils.use-tokens($outlined-slots...) { + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { @include _floating-label-tokens('.mdc-text-field--outlined'); } } @@ -297,42 +293,42 @@ border-width: 2px; } - @include token-utils.use-tokens($outlined-slots...) { + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { // Moved out into variables because the selectors we inherited were too long. $enabled-selector: '.mdc-text-field--outlined:not(.mdc-text-field--disabled)'; $hover-selector: ':not(.mdc-text-field--focused):hover'; #{$enabled-selector} & { - @include token-utils.create-token-slot(border-color, outline-color); - @include token-utils.create-token-slot(border-width, outline-width); + border-color: token-utils.slot(outline-color); + border-width: token-utils.slot(outline-width); } #{$enabled-selector}#{$hover-selector} & { - @include token-utils.create-token-slot(border-color, hover-outline-color); + border-color: token-utils.slot(hover-outline-color); } #{$enabled-selector}.mdc-text-field--focused & { - @include token-utils.create-token-slot(border-color, focus-outline-color); + border-color: token-utils.slot(focus-outline-color); } .mdc-text-field--outlined.mdc-text-field--disabled & { - @include token-utils.create-token-slot(border-color, disabled-outline-color); + border-color: token-utils.slot(disabled-outline-color); } #{$enabled-selector}.mdc-text-field--invalid & { - @include token-utils.create-token-slot(border-color, error-outline-color); + border-color: token-utils.slot(error-outline-color); } #{$enabled-selector}.mdc-text-field--invalid#{$hover-selector} .mdc-notched-outline & { - @include token-utils.create-token-slot(border-color, error-hover-outline-color); + border-color: token-utils.slot(error-hover-outline-color); } #{$enabled-selector}.mdc-text-field--invalid.mdc-text-field--focused & { - @include token-utils.create-token-slot(border-color, error-focus-outline-color); + border-color: token-utils.slot(error-focus-outline-color); } #{$enabled-selector}.mdc-text-field--focused .mdc-notched-outline & { - @include token-utils.create-token-slot(border-width, focus-outline-width); + border-width: token-utils.slot(focus-outline-width); } } } @@ -343,12 +339,12 @@ border-top-right-radius: 0; border-bottom-right-radius: 0; - @include token-utils.use-tokens($outlined-slots...) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-left-radius, container-shape); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-bottom-left-radius: token-utils.slot(container-shape); .mdc-text-field--outlined .mdc-notched-outline & { - $shape-var: token-utils.get-token-variable(container-shape); + $shape-var: token-utils.slot(container-shape); width: max(12px, #{$shape-var}); } } @@ -359,9 +355,9 @@ border-bottom-left-radius: 0; border-top-left-radius: 0; - @include token-utils.use-tokens($outlined-slots...) { - @include token-utils.create-token-slot(border-top-right-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-right-radius, container-shape); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + border-top-right-radius: token-utils.slot(container-shape); + border-bottom-right-radius: token-utils.slot(container-shape); } } } @@ -373,9 +369,9 @@ border-top-left-radius: 0; border-bottom-left-radius: 0; - @include token-utils.use-tokens($outlined-slots...) { - @include token-utils.create-token-slot(border-top-right-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-right-radius, container-shape); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + border-top-right-radius: token-utils.slot(container-shape); + border-bottom-right-radius: token-utils.slot(container-shape); } [dir='rtl'] & { @@ -384,9 +380,9 @@ border-top-right-radius: 0; border-bottom-right-radius: 0; - @include token-utils.use-tokens($outlined-slots...) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-left-radius, container-shape); + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-bottom-left-radius: token-utils.slot(container-shape); } } } @@ -395,9 +391,9 @@ flex: 0 0 auto; width: auto; - @include token-utils.use-tokens($outlined-slots...) { + @include token-utils.use-tokens($outlined-token-prefix, $outlined-token-slots) { .mdc-text-field--outlined .mdc-notched-outline & { - $shape-var: token-utils.get-token-variable(container-shape); + $shape-var: token-utils.slot(container-shape); max-width: min( var(--mat-form-field-notch-max-width, 100%), calc(100% - max(12px, #{$shape-var}) * 2) @@ -444,35 +440,29 @@ &::before { z-index: 1; - @include token-utils.use-tokens($filled-slots...) { + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { $enabled-field: '.mdc-text-field--filled:not(.mdc-text-field--disabled)'; - @include token-utils.create-token-slot(border-bottom-width, active-indicator-height); + border-bottom-width: token-utils.slot(active-indicator-height); #{$enabled-field} & { - @include token-utils.create-token-slot(border-bottom-color, active-indicator-color); + border-bottom-color: token-utils.slot(active-indicator-color); } #{$enabled-field}:not(.mdc-text-field--focused):hover & { - @include token-utils.create-token-slot(border-bottom-color, hover-active-indicator-color); + border-bottom-color: token-utils.slot(hover-active-indicator-color); } .mdc-text-field--filled.mdc-text-field--disabled & { - @include token-utils.create-token-slot( - border-bottom-color, - disabled-active-indicator-color - ); + border-bottom-color: token-utils.slot(disabled-active-indicator-color); } #{$enabled-field}.mdc-text-field--invalid & { - @include token-utils.create-token-slot(border-bottom-color, error-active-indicator-color); + border-bottom-color: token-utils.slot(error-active-indicator-color); } #{$enabled-field}.mdc-text-field--invalid:not(.mdc-text-field--focused):hover & { - @include token-utils.create-token-slot( - border-bottom-color, - error-hover-active-indicator-color - ); + border-bottom-color: token-utils.slot(error-hover-active-indicator-color); } } } @@ -482,23 +472,17 @@ opacity: 0; z-index: 2; - @include token-utils.use-tokens($filled-slots...) { + @include token-utils.use-tokens($filled-token-prefix, $filled-token-slots) { .mdc-text-field--filled & { - @include token-utils.create-token-slot( - border-bottom-width, - focus-active-indicator-height - ); + border-bottom-width: token-utils.slot(focus-active-indicator-height); } .mdc-text-field--filled:not(.mdc-text-field--disabled) & { - @include token-utils.create-token-slot(border-bottom-color, focus-active-indicator-color); + border-bottom-color: token-utils.slot(focus-active-indicator-color); } .mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) & { - @include token-utils.create-token-slot( - border-bottom-color, - error-focus-active-indicator-color - ); + border-bottom-color: token-utils.slot(error-focus-active-indicator-color); } } } @@ -523,58 +507,58 @@ $enabled-field: '#{$selector}:not(.mdc-text-field--disabled)'; #{$enabled-field} & { - @include token-utils.create-token-slot(color, label-text-color); + color: token-utils.slot(label-text-color); } #{$enabled-field}.mdc-text-field--focused & { - @include token-utils.create-token-slot(color, focus-label-text-color); + color: token-utils.slot(focus-label-text-color); } #{$enabled-field}:not(.mdc-text-field--focused):hover & { - @include token-utils.create-token-slot(color, hover-label-text-color); + color: token-utils.slot(hover-label-text-color); } #{$selector}.mdc-text-field--disabled & { - @include token-utils.create-token-slot(color, disabled-label-text-color); + color: token-utils.slot(disabled-label-text-color); } #{$enabled-field}.mdc-text-field--invalid & { - @include token-utils.create-token-slot(color, error-label-text-color); + color: token-utils.slot(error-label-text-color); } #{$enabled-field}.mdc-text-field--invalid.mdc-text-field--focused & { - @include token-utils.create-token-slot(color, error-focus-label-text-color); + color: token-utils.slot(error-focus-label-text-color); } #{$enabled-field}.mdc-text-field--invalid:not(.mdc-text-field--disabled):hover & { - @include token-utils.create-token-slot(color, error-hover-label-text-color); + color: token-utils.slot(error-hover-label-text-color); } #{$selector} & { - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(font-weight, label-text-weight); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + font-weight: token-utils.slot(label-text-weight); + letter-spacing: token-utils.slot(label-text-tracking); } } // Includes the tokens for the input for a specific form field variant. @mixin _input-tokens($selector) { #{$selector}:not(.mdc-text-field--disabled) & { - @include token-utils.create-token-slot(color, input-text-color); - @include token-utils.create-token-slot(caret-color, caret-color); + color: token-utils.slot(input-text-color); + caret-color: token-utils.slot(caret-color); @include vendor-prefixes.input-placeholder { - @include token-utils.create-token-slot(color, input-text-placeholder-color); + color: token-utils.slot(input-text-placeholder-color); } } #{$selector}.mdc-text-field--invalid:not(.mdc-text-field--disabled) & { - @include token-utils.create-token-slot(caret-color, error-caret-color); + caret-color: token-utils.slot(error-caret-color); } #{$selector}.mdc-text-field--disabled & { - @include token-utils.create-token-slot(color, disabled-input-text-color); + color: token-utils.slot(disabled-input-text-color); } } diff --git a/src/material/form-field/directives/BUILD.bazel b/src/material/form-field/directives/BUILD.bazel new file mode 100644 index 000000000000..ff583dd5d324 --- /dev/null +++ b/src/material/form-field/directives/BUILD.bazel @@ -0,0 +1,25 @@ +load("//tools:defaults2.bzl", "ng_project") + +package(default_visibility = ["//visibility:public"]) + +ng_project( + name = "directives", + srcs = [ + "error.ts", + "floating-label.ts", + "hint.ts", + "label.ts", + "line-ripple.ts", + "notched-outline.ts", + "prefix.ts", + "suffix.ts", + ], + assets = [ + "notched-outline.html", + ], + deps = [ + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/observers/private", + ], +) diff --git a/src/material/form-field/directives/error.ts b/src/material/form-field/directives/error.ts index a304e90a8171..9d474d478ad8 100644 --- a/src/material/form-field/directives/error.ts +++ b/src/material/form-field/directives/error.ts @@ -6,14 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import { - Directive, - ElementRef, - InjectionToken, - Input, - HostAttributeToken, - inject, -} from '@angular/core'; +import {Directive, InjectionToken, Input, inject} from '@angular/core'; import {_IdGenerator} from '@angular/cdk/a11y'; /** @@ -28,7 +21,6 @@ export const MAT_ERROR = new InjectionToken('MatError'); selector: 'mat-error, [matError]', host: { 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align', - 'aria-atomic': 'true', '[id]': 'id', }, providers: [{provide: MAT_ERROR, useExisting: MatError}], @@ -38,14 +30,5 @@ export class MatError { constructor(...args: unknown[]); - constructor() { - const ariaLive = inject(new HostAttributeToken('aria-live'), {optional: true}); - - // If no aria-live value is set add 'polite' as a default. This is preferred over setting - // role='alert' so that screen readers do not interrupt the current task to read this aloud. - if (!ariaLive) { - const elementRef = inject(ElementRef); - elementRef.nativeElement.setAttribute('aria-live', 'polite'); - } - } + constructor() {} } diff --git a/src/material/form-field/form-field.html b/src/material/form-field/form-field.html index f1a46075b46b..2697be0d764c 100644 --- a/src/material/form-field/form-field.html +++ b/src/material/form-field/form-field.html @@ -96,25 +96,33 @@
    - @switch (_getDisplayedMessages()) { - @case ('error') { -
    + @let subscriptMessageType = _getSubscriptMessageType(); + + +
    + @switch (subscriptMessageType) { + @case ('error') { -
    - } + } - @case ('hint') { -
    + @case ('hint') { @if (hintLabel) { {{hintLabel}} }
    -
    + } } - } +
    diff --git a/src/material/form-field/form-field.scss b/src/material/form-field/form-field.scss index 0dcbe41561c1..65d0bed2570b 100644 --- a/src/material/form-field/form-field.scss +++ b/src/material/form-field/form-field.scss @@ -1,6 +1,6 @@ @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; -@use '../core/tokens/m2/mat/form-field' as tokens-mat-form-field; +@use './m2-form-field'; @use './form-field-subscript'; @use './form-field-focus-overlay'; @use './form-field-high-contrast'; @@ -45,17 +45,17 @@ $_icon-prefix-infix-padding: 4px; // To avoid problems with text-align. text-align: left; - @include token-utils.use-tokens(tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-token-slots()) { + @include token-utils.use-tokens( + m2-form-field.$prefix, m2-form-field.get-token-slots()) { @include vendor-prefixes.smooth-font(); - @include token-utils.create-token-slot(font-family, container-text-font); - @include token-utils.create-token-slot(line-height, container-text-line-height); - @include token-utils.create-token-slot(font-size, container-text-size); - @include token-utils.create-token-slot(letter-spacing, container-text-tracking); - @include token-utils.create-token-slot(font-weight, container-text-weight); + font-family: token-utils.slot(container-text-font); + line-height: token-utils.slot(container-text-line-height); + font-size: token-utils.slot(container-text-size); + letter-spacing: token-utils.slot(container-text-tracking); + font-weight: token-utils.slot(container-text-weight); .mdc-text-field--outlined { - $token-value: token-utils.get-token-variable(outlined-label-text-populated-size); + $token-value: token-utils.slot(outlined-label-text-populated-size); // For the non-upgraded notch label (i.e. when rendered on the server), also // use the correct typography. @@ -115,36 +115,36 @@ $_icon-prefix-infix-padding: 4px; } .mat-mdc-form-field-icon-prefix { - @include token-utils.use-tokens(tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-token-slots()) { - @include token-utils.create-token-slot(color, leading-icon-color); + @include token-utils.use-tokens( + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + color: token-utils.slot(leading-icon-color); .mat-form-field-disabled & { - @include token-utils.create-token-slot(color, disabled-leading-icon-color); + color: token-utils.slot(disabled-leading-icon-color); } } } .mat-mdc-form-field-icon-suffix { - @include token-utils.use-tokens(tokens-mat-form-field.$prefix, - tokens-mat-form-field.get-token-slots()) { - @include token-utils.create-token-slot(color, trailing-icon-color); + @include token-utils.use-tokens( + m2-form-field.$prefix, m2-form-field.get-token-slots()) { + color: token-utils.slot(trailing-icon-color); .mat-form-field-disabled & { - @include token-utils.create-token-slot(color, disabled-trailing-icon-color); + color: token-utils.slot(disabled-trailing-icon-color); } .mat-form-field-invalid & { - @include token-utils.create-token-slot(color, error-trailing-icon-color); + color: token-utils.slot(error-trailing-icon-color); } .mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover & { - @include token-utils.create-token-slot(color, error-hover-trailing-icon-color); + color: token-utils.slot(error-hover-trailing-icon-color); } .mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper & { - @include token-utils.create-token-slot(color, error-focus-trailing-icon-color); + color: token-utils.slot(error-focus-trailing-icon-color); } } } diff --git a/src/material/form-field/form-field.ts b/src/material/form-field/form-field.ts index 3cb238a35f07..0c0c28d00c7f 100644 --- a/src/material/form-field/form-field.ts +++ b/src/material/form-field/form-field.ts @@ -5,6 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ +import {_IdGenerator} from '@angular/cdk/a11y'; import {Directionality} from '@angular/cdk/bidi'; import {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion'; import {Platform} from '@angular/cdk/platform'; @@ -20,23 +21,23 @@ import { ContentChildren, ElementRef, InjectionToken, - Injector, Input, NgZone, OnDestroy, QueryList, ViewChild, ViewEncapsulation, - afterRender, + afterRenderEffect, computed, contentChild, inject, + signal, + viewChild, } from '@angular/core'; import {AbstractControlDirective, ValidatorFn} from '@angular/forms'; -import {_animationsDisabled, ThemePalette} from '../core'; -import {_IdGenerator} from '@angular/cdk/a11y'; import {Subject, Subscription, merge} from 'rxjs'; -import {map, pairwise, takeUntil, filter, startWith} from 'rxjs/operators'; +import {filter, map, pairwise, startWith, takeUntil} from 'rxjs/operators'; +import {ThemePalette, _animationsDisabled} from '../core'; import {MAT_ERROR, MatError} from './directives/error'; import { FLOATING_LABEL_PARENT, @@ -189,7 +190,6 @@ export class MatFormField private _platform = inject(Platform); private _idGenerator = inject(_IdGenerator); private _ngZone = inject(NgZone); - private _injector = inject(Injector); private _defaults = inject(MAT_FORM_FIELD_DEFAULT_OPTIONS, { optional: true, }); @@ -203,6 +203,21 @@ export class MatFormField @ViewChild(MatFormFieldNotchedOutline) _notchedOutline: MatFormFieldNotchedOutline | undefined; @ViewChild(MatFormFieldLineRipple) _lineRipple: MatFormFieldLineRipple | undefined; + private _iconPrefixContainerSignal = viewChild>('iconPrefixContainer'); + private _textPrefixContainerSignal = viewChild>('textPrefixContainer'); + private _iconSuffixContainerSignal = viewChild>('iconSuffixContainer'); + private _textSuffixContainerSignal = viewChild>('textSuffixContainer'); + private _prefixSuffixContainers = computed(() => { + return [ + this._iconPrefixContainerSignal(), + this._textPrefixContainerSignal(), + this._iconSuffixContainerSignal(), + this._textSuffixContainerSignal(), + ] + .map(container => container?.nativeElement) + .filter(e => e !== undefined); + }); + @ContentChild(_MatFormFieldControl) _formFieldControl: MatFormFieldControl; @ContentChildren(MAT_PREFIX, {descendants: true}) _prefixChildren: QueryList; @ContentChildren(MAT_SUFFIX, {descendants: true}) _suffixChildren: QueryList; @@ -250,10 +265,9 @@ export class MatFormField /** The form field appearance style. */ @Input() get appearance(): MatFormFieldAppearance { - return this._appearance; + return this._appearanceSignal(); } set appearance(value: MatFormFieldAppearance) { - const oldValue = this._appearance; const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE; if (typeof ngDevMode === 'undefined' || ngDevMode) { if (newAppearance !== 'fill' && newAppearance !== 'outline') { @@ -262,15 +276,9 @@ export class MatFormField ); } } - this._appearance = newAppearance; - if (this._appearance === 'outline' && this._appearance !== oldValue) { - // If the appearance has been switched to `outline`, the label offset needs to be updated. - // The update can happen once the view has been re-checked, but not immediately because - // the view has not been updated and the notched-outline floating label is not present. - this._needsOutlineLabelOffsetUpdate = true; - } + this._appearanceSignal.set(newAppearance); } - private _appearance: MatFormFieldAppearance = DEFAULT_APPEARANCE; + private _appearanceSignal = signal(DEFAULT_APPEARANCE); /** * Whether the form field should reserve space for one line of hint/error text (default) @@ -319,7 +327,6 @@ export class MatFormField private _destroyed = new Subject(); private _isFocused: boolean | null = null; private _explicitFormFieldControl: MatFormFieldControl; - private _needsOutlineLabelOffsetUpdate = false; private _previousControl: MatFormFieldControl | null = null; private _previousControlValidatorFn: ValidatorFn | null = null; private _stateChanges: Subscription | undefined; @@ -341,6 +348,8 @@ export class MatFormField this.color = defaults.color; } } + + this._syncOutlineLabelOffset(); } ngAfterViewInit() { @@ -366,7 +375,6 @@ export class MatFormField this._assertFormFieldControl(); this._initializeSubscript(); this._initializePrefixAndSuffix(); - this._initializeOutlineLabelOffsetSubscriptions(); } ngAfterContentChecked() { @@ -399,6 +407,7 @@ export class MatFormField } ngOnDestroy() { + this._outlineLabelOffsetResizeObserver?.disconnect(); this._stateChanges?.unsubscribe(); this._valueChanges?.unsubscribe(); this._describedByChanges?.unsubscribe(); @@ -546,34 +555,37 @@ export class MatFormField ); } + private _outlineLabelOffsetResizeObserver: ResizeObserver | null = null; + /** * The floating label in the docked state needs to account for prefixes. The horizontal offset * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the * form field is added to the DOM. This method sets up all subscriptions which are needed to * trigger the label offset update. */ - private _initializeOutlineLabelOffsetSubscriptions() { + private _syncOutlineLabelOffset() { // Whenever the prefix changes, schedule an update of the label offset. - // TODO(mmalerba): Use ResizeObserver to better support dynamically changing prefix content. - this._prefixChildren.changes.subscribe(() => (this._needsOutlineLabelOffsetUpdate = true)); - // TODO(mmalerba): Split this into separate `afterRender` calls using the `EarlyRead` and // `Write` phases. - afterRender( - () => { - if (this._needsOutlineLabelOffsetUpdate) { - this._needsOutlineLabelOffsetUpdate = false; - this._updateOutlineLabelOffset(); + afterRenderEffect(() => { + if (this._appearanceSignal() === 'outline') { + this._updateOutlineLabelOffset(); + if (!globalThis.ResizeObserver) { + return; } - }, - { - injector: this._injector, - }, - ); - this._dir.change - .pipe(takeUntil(this._destroyed)) - .subscribe(() => (this._needsOutlineLabelOffsetUpdate = true)); + // Setup a resize observer to monitor changes to the size of the prefix / suffix and + // readjust the label offset. + this._outlineLabelOffsetResizeObserver ||= new globalThis.ResizeObserver(() => + this._updateOutlineLabelOffset(), + ); + for (const el of this._prefixSuffixContainers()) { + this._outlineLabelOffsetResizeObserver.observe(el, {box: 'border-box'}); + } + } else { + this._outlineLabelOffsetResizeObserver?.disconnect(); + } + }); } /** Whether the floating label should always float or not. */ @@ -615,8 +627,8 @@ export class MatFormField return control && control[prop]; } - /** Determines whether to display hints or errors. */ - _getDisplayedMessages(): 'error' | 'hint' { + /** Gets the type of subscript message to render (error or hint). */ + _getSubscriptMessageType(): 'error' | 'hint' { return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint'; @@ -684,7 +696,7 @@ export class MatFormField ids.push(...this._control.userAriaDescribedBy.split(' ')); } - if (this._getDisplayedMessages() === 'hint') { + if (this._getSubscriptMessageType() === 'hint') { const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null; @@ -719,6 +731,7 @@ export class MatFormField * incorporate the horizontal offset into their default text-field styles. */ private _updateOutlineLabelOffset() { + const dir = this._dir.valueSignal(); if (!this._hasOutline() || !this._floatingLabel) { return; } @@ -732,7 +745,6 @@ export class MatFormField // If the form field is not attached to the DOM yet (e.g. in a tab), we defer // the label offset update until the zone stabilizes. if (!this._isAttachedToDom()) { - this._needsOutlineLabelOffsetUpdate = true; return; } const iconPrefixContainer = this._iconPrefixContainer?.nativeElement; @@ -745,7 +757,7 @@ export class MatFormField const textSuffixContainerWidth = textSuffixContainer?.getBoundingClientRect().width ?? 0; // If the directionality is RTL, the x-axis transform needs to be inverted. This // is because `transformX` does not change based on the page directionality. - const negate = this._dir.value === 'rtl' ? '-1' : '1'; + const negate = dir === 'rtl' ? '-1' : '1'; const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`; const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`; const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`; diff --git a/src/material/form-field/testing/BUILD.bazel b/src/material/form-field/testing/BUILD.bazel index a8188b4de4ec..c1df8f7fdbd7 100644 --- a/src/material/form-field/testing/BUILD.bazel +++ b/src/material/form-field/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", "//src/material/datepicker/testing", "//src/material/form-field/testing/control", @@ -23,11 +23,15 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", @@ -40,8 +44,6 @@ ng_test_library( "//src/material/input/testing", "//src/material/select", "//src/material/select/testing", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/form-field/testing/control/BUILD.bazel b/src/material/form-field/testing/control/BUILD.bazel index 0e2fb4d83dbe..6865929b828c 100644 --- a/src/material/form-field/testing/control/BUILD.bazel +++ b/src/material/form-field/testing/control/BUILD.bazel @@ -5,7 +5,7 @@ package(default_visibility = ["//visibility:public"]) ts_project( name = "control", srcs = glob(["**/*.ts"]), - interop_deps = ["//src/cdk/testing"], + deps = ["//src/cdk/testing"], ) filegroup( diff --git a/src/material/grid-list/BUILD.bazel b/src/material/grid-list/BUILD.bazel index e483276f3ff5..418681ba121b 100644 --- a/src/material/grid-list/BUILD.bazel +++ b/src/material/grid-list/BUILD.bazel @@ -2,52 +2,103 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "grid-list", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":grid-list.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-grid-list.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/bidi", - "//src/cdk/coercion", - "//src/material/core", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "grid_list_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], + name = "m2", + srcs = [ + "_m2-grid-list.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_grid-list-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], ) sass_binary( - name = "grid_list_scss", + name = "css", src = "grid-list.scss", - deps = ["//src/material/core:core_scss_lib"], + deps = [ + ":m2", + "//src/material/core/style:layout_common", + "//src/material/core/style:list_common", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "grid-list", + srcs = [ + "grid-list.ts", + "grid-list-base.ts", + "grid-list-module.ts", + "grid-tile.ts", + "index.ts", + "public-api.ts", + "tile-coordinator.ts", + "tile-styler.ts", + ], + assets = [ + "grid-list.html", + "grid-tile-text.html", + "grid-tile.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//src:dev_mode_types", + "//src/cdk/bidi", + "//src/cdk/coercion", + "//src/material/core", + ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":grid-list", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/bidi", - "@npm//@angular/platform-browser", ], ) @@ -63,7 +114,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":grid_list_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/grid-list/_grid-list-theme.scss b/src/material/grid-list/_grid-list-theme.scss index 5ae82b3ed0c3..57ecae1c983f 100644 --- a/src/material/grid-list/_grid-list-theme.scss +++ b/src/material/grid-list/_grid-list-theme.scss @@ -3,7 +3,7 @@ @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mat/grid-list' as tokens-mat-grid-list; +@use './m2-grid-list'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; @@ -28,9 +28,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-grid-list.$prefix, - tokens-mat-grid-list.get-typography-tokens($theme) - ); + m2-grid-list.$prefix, m2-grid-list.get-typography-tokens($theme)); } } } @@ -46,8 +44,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-grid-list.$prefix, - tokens: tokens-mat-grid-list.get-token-slots(), + namespace: m2-grid-list.$prefix, + tokens: m2-grid-list.get-token-slots(), ), ); } @@ -81,8 +79,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-grid-list.$prefix, - map.get($tokens, tokens-mat-grid-list.$prefix) + m2-grid-list.$prefix, + map.get($tokens, m2-grid-list.$prefix) ); } } diff --git a/src/material/core/tokens/m2/mat/_grid-list.scss b/src/material/grid-list/_m2-grid-list.scss similarity index 83% rename from src/material/core/tokens/m2/mat/_grid-list.scss rename to src/material/grid-list/_m2-grid-list.scss index 5119aae3c550..0c593c5eda8c 100644 --- a/src/material/core/tokens/m2/mat/_grid-list.scss +++ b/src/material/grid-list/_m2-grid-list.scss @@ -1,6 +1,6 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, grid-list); @@ -39,8 +39,8 @@ $prefix: (mat, grid-list); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_grid-list.scss b/src/material/grid-list/_m3-grid-list.scss similarity index 88% rename from src/material/core/tokens/m3/mat/_grid-list.scss rename to src/material/grid-list/_m3-grid-list.scss index 95f678d86778..75a882d46a38 100644 --- a/src/material/core/tokens/m3/mat/_grid-list.scss +++ b/src/material/grid-list/_m3-grid-list.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, grid-list); @@ -17,5 +17,5 @@ $prefix: (mat, grid-list); tile-footer-secondary-text-size: map.get($systems, md-sys-typescale, body-medium), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/grid-list/grid-list.scss b/src/material/grid-list/grid-list.scss index d687513d1e4b..65f8d51e3dfb 100644 --- a/src/material/grid-list/grid-list.scss +++ b/src/material/grid-list/grid-list.scss @@ -1,6 +1,6 @@ @use '../core/style/list-common'; @use '../core/style/layout-common'; -@use '../core/tokens/m2/mat/grid-list' as tokens-mat-grid-list; +@use './m2-grid-list'; @use '../core/tokens/token-utils'; @@ -72,18 +72,18 @@ $text-padding: 16px; .mat-grid-tile-header { @include token-utils.use-tokens( - tokens-mat-grid-list.$prefix, tokens-mat-grid-list.get-token-slots()) { - $secondary-token-name: token-utils.get-token-variable(tile-header-secondary-text-size); - @include token-utils.create-token-slot(font-size, tile-header-primary-text-size); + m2-grid-list.$prefix, m2-grid-list.get-token-slots()) { + $secondary-token-name: token-utils.slot(tile-header-secondary-text-size); + font-size: token-utils.slot(tile-header-primary-text-size); @include list-common.base(#{$secondary-token-name}); } } .mat-grid-tile-footer { @include token-utils.use-tokens( - tokens-mat-grid-list.$prefix, tokens-mat-grid-list.get-token-slots()) { - $secondary-token-name: token-utils.get-token-variable(tile-footer-secondary-text-size); - @include token-utils.create-token-slot(font-size, tile-footer-primary-text-size); + m2-grid-list.$prefix, m2-grid-list.get-token-slots()) { + $secondary-token-name: token-utils.slot(tile-footer-secondary-text-size); + font-size: token-utils.slot(tile-footer-primary-text-size); @include list-common.base(#{$secondary-token-name}); } } diff --git a/src/material/grid-list/testing/BUILD.bazel b/src/material/grid-list/testing/BUILD.bazel index ed7784a66ff1..6a5267e48a5b 100644 --- a/src/material/grid-list/testing/BUILD.bazel +++ b/src/material/grid-list/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", "//src/material/grid-list", ], @@ -20,16 +20,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/grid-list", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/icon/BUILD.bazel b/src/material/icon/BUILD.bazel index 3637bc7c9818..d1d45141023d 100644 --- a/src/material/icon/BUILD.bazel +++ b/src/material/icon/BUILD.bazel @@ -2,55 +2,100 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "icon", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":icon.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-icon.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/material/core", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/platform-browser", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "icon_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], + name = "m2", + srcs = [ + "_m2-icon.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_icon-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], ) sass_binary( - name = "icon_scss", + name = "css", src = "icon.scss", - deps = ["//src/material/core:core_scss_lib"], + deps = [ + ":m2", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "icon", + srcs = [ + "fake-svgs.ts", + "icon.ts", + "icon-module.ts", + "icon-registry.ts", + "index.ts", + "public-api.ts", + "trusted-types.ts", + ], + assets = [ + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/material/core", + ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":icon", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) @@ -66,7 +111,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":icon_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/icon/_icon-theme.scss b/src/material/icon/_icon-theme.scss index 551ee717db53..5c4f1a213da3 100644 --- a/src/material/icon/_icon-theme.scss +++ b/src/material/icon/_icon-theme.scss @@ -1,14 +1,14 @@ -@use '../core/theming/theming'; +@use '../core/style/sass-utils'; @use '../core/theming/inspection'; +@use '../core/theming/theming'; @use '../core/theming/validation'; -@use '../core/tokens/m2/mat/icon' as tokens-mat-icon; @use '../core/tokens/token-utils'; -@use '../core/style/sass-utils'; +@use './m2-icon'; @mixin _palette-colors($theme, $palette-name) { $color: inspection.get-theme-color($theme, $palette-name, text); - $tokens: tokens-mat-icon.private-get-icon-color-tokens($color); - @include token-utils.create-token-values-mixed(tokens-mat-icon.$prefix, $tokens); + $tokens: m2-icon.private-get-icon-color-tokens($color); + @include token-utils.create-token-values-mixed(m2-icon.$prefix, $tokens); } /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) @@ -32,8 +32,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-icon.$prefix, - tokens-mat-icon.get-color-tokens($theme) + m2-icon.$prefix, + m2-icon.get-color-tokens($theme) ); } @@ -75,8 +75,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-icon.$prefix, - tokens: tokens-mat-icon.get-token-slots(), + namespace: m2-icon.$prefix, + tokens: m2-icon.get-token-slots(), ), ); } @@ -115,6 +115,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mat-icon-tokens: token-utils.get-tokens-for($tokens, tokens-mat-icon.$prefix, $options...); - @include token-utils.create-token-values(tokens-mat-icon.$prefix, $mat-icon-tokens); + $mat-icon-tokens: token-utils.get-tokens-for($tokens, m2-icon.$prefix, $options...); + @include token-utils.create-token-values(m2-icon.$prefix, $mat-icon-tokens); } diff --git a/src/material/core/tokens/m2/mat/_icon.scss b/src/material/icon/_m2-icon.scss similarity index 80% rename from src/material/core/tokens/m2/mat/_icon.scss rename to src/material/icon/_m2-icon.scss index 9d7a74d4fbc4..29d5a869471b 100644 --- a/src/material/core/tokens/m2/mat/_icon.scss +++ b/src/material/icon/_m2-icon.scss @@ -1,5 +1,5 @@ -@use '../../token-definition'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, icon); @@ -38,8 +38,8 @@ $prefix: (mat, icon); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_icon.scss b/src/material/icon/_m3-icon.scss similarity index 79% rename from src/material/core/tokens/m3/mat/_icon.scss rename to src/material/icon/_m3-icon.scss index adc647a678cb..9883fe468d34 100644 --- a/src/material/core/tokens/m3/mat/_icon.scss +++ b/src/material/icon/_m3-icon.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, icon); @@ -10,9 +10,11 @@ $prefix: (mat, icon); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of custom tokens for the mat-icon @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $tokens: (( - color: token-definition.hardcode(inherit, $exclude-hardcoded), - ), ( + $tokens: ( + color: m3-utils.hardcode(inherit, $exclude-hardcoded), + ); + + $variant-tokens: ( // Color variants: surface: (), // Default, no overrides needed. primary: ( @@ -27,7 +29,7 @@ $prefix: (mat, icon); error: ( color: map.get($systems, md-sys-color, error), ) - )); + ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/icon/icon.scss b/src/material/icon/icon.scss index bddac57f92e0..10cf58d39fa3 100644 --- a/src/material/icon/icon.scss +++ b/src/material/icon/icon.scss @@ -1,5 +1,5 @@ @use '../core/style/vendor-prefixes'; -@use '../core/tokens/m2/mat/icon' as tokens-mat-icon; +@use './m2-icon'; @use '../core/tokens/token-utils'; // The width/height of the icon element. @@ -15,8 +15,8 @@ $size: 24px !default; // `warn` because there we want the additional specificity. mat-icon { &, &.mat-primary, &.mat-accent, &.mat-warn { - @include token-utils.use-tokens(tokens-mat-icon.$prefix, tokens-mat-icon.get-token-slots()) { - @include token-utils.create-token-slot(color, color); + @include token-utils.use-tokens(m2-icon.$prefix, m2-icon.get-token-slots()) { + color: token-utils.slot(color); } } } diff --git a/src/material/icon/icon.spec.ts b/src/material/icon/icon.spec.ts index 3649f4aa94ee..d1b41a9d92a3 100644 --- a/src/material/icon/icon.spec.ts +++ b/src/material/icon/icon.spec.ts @@ -368,7 +368,7 @@ describe('MatIcon', () => { verifyPathChildElement(svgElement, 'meow'); // Assert that a registered icon can be looked-up by url. - iconRegistry.getSvgIconFromUrl(trustUrl('cat.svg')).subscribe(element => { + iconRegistry.getSvgIconFromUrl(trustUrl('cat.svg')).subscribe((element: SVGElement) => { verifyPathChildElement(element, 'meow'); }); @@ -836,7 +836,7 @@ describe('MatIcon', () => { verifyPathChildElement(svgElement, 'meow'); // Assert that a registered icon can be looked-up by name. - iconRegistry.getNamedSvgIcon('fluffy').subscribe(element => { + iconRegistry.getNamedSvgIcon('fluffy').subscribe((element: SVGElement) => { verifyPathChildElement(element, 'meow'); }); @@ -1264,7 +1264,7 @@ describe('MatIcon', () => { verifyPathChildElement(svgElement, 'meow'); // Assert that a registered icon can be looked-up by url. - iconRegistry.getSvgIconFromUrl(trustUrl('cat.svg')).subscribe(element => { + iconRegistry.getSvgIconFromUrl(trustUrl('cat.svg')).subscribe((element: SVGElement) => { verifyPathChildElement(element, 'meow'); }); diff --git a/src/material/icon/testing/BUILD.bazel b/src/material/icon/testing/BUILD.bazel index e06226855b45..7a330f074440 100644 --- a/src/material/icon/testing/BUILD.bazel +++ b/src/material/icon/testing/BUILD.bazel @@ -1,19 +1,20 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "testing", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", "//src/cdk/testing", "//src/material/icon", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//rxjs", ], ) @@ -22,16 +23,18 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/icon", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/input/BUILD.bazel b/src/material/input/BUILD.bazel index 59a60896ab11..77c24df09277 100644 --- a/src/material/input/BUILD.bazel +++ b/src/material/input/BUILD.bazel @@ -2,54 +2,68 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +sass_library( + name = "theme", + srcs = [ + "_input-theme.scss", + ], + deps = [ + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], +) + +ng_project( name = "input", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = glob(["**/*.html"]), + srcs = [ + "index.ts", + "input.ts", + "input-errors.ts", + "input-value-accessor.ts", + "module.ts", + "public-api.ts", + ], deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", "//src/cdk/text-field", "//src/material/core", "//src/material/form-field", - "@npm//@angular/forms", ], ) -sass_library( - name = "input_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], -) - ########### # Testing ########### -ng_test_library( +ts_project( name = "input_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":input", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", "//src/cdk/testing/private", "//src/material/core", "//src/material/form-field", "//src/material/icon", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) @@ -67,7 +81,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":input_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/input/input.spec.ts b/src/material/input/input.spec.ts index b019faca0fc0..4b29f4f3a61f 100644 --- a/src/material/input/input.spec.ts +++ b/src/material/input/input.spec.ts @@ -1266,11 +1266,13 @@ describe('MatMdcInput with forms', () => { .toBe(1); })); - it('should set the proper aria-live attribute on the error messages', fakeAsync(() => { + it('should be in a parent element with the an aria-live attribute to announce the error', fakeAsync(() => { testComponent.formControl.markAsTouched(); fixture.detectChanges(); - expect(containerEl.querySelector('mat-error')!.getAttribute('aria-live')).toBe('polite'); + expect( + containerEl.querySelector('[aria-live]:has(mat-error)')!.getAttribute('aria-live'), + ).toBe('polite'); })); it('sets the aria-describedby to reference errors when in error state', fakeAsync(() => { diff --git a/src/material/input/testing/BUILD.bazel b/src/material/input/testing/BUILD.bazel index e267b0c3950c..9dca428dcfde 100644 --- a/src/material/input/testing/BUILD.bazel +++ b/src/material/input/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,34 +9,36 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", "//src/material/form-field/testing/control", ], ) -filegroup( - name = "source-files", - srcs = glob(["**/*.ts"]), -) - -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/form-field", "//src/material/form-field/testing/control", "//src/material/input", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) +filegroup( + name = "source-files", + srcs = glob(["**/*.ts"]), +) + ng_web_test_suite( name = "unit_tests", deps = [":unit_tests_lib"], diff --git a/src/material/list/BUILD.bazel b/src/material/list/BUILD.bazel index 5ab52fbecd5d..2545b01e5987 100644 --- a/src/material/list/BUILD.bazel +++ b/src/material/list/BUILD.bazel @@ -2,99 +2,145 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "list", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [ - ":list_scss", - ":list_option_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-list.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/coercion", - "//src/cdk/collections", - "//src/cdk/observers", - "//src/cdk/private", - "//src/material/core", - "//src/material/divider", - "@npm//@angular/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "hcm_indicator_scss_lib", - srcs = ["_list-item-hcm-indicator.scss"], -) - -sass_library( - name = "inherited_structure_scss_lib", - srcs = ["_list-inherited-structure.scss"], + name = "m2", + srcs = [ + "_m2-list.scss", + ], deps = [ - "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "list_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "theme", + srcs = [ + "_list-theme.scss", + ], deps = [ - ":hcm_indicator_scss_lib", - "//src/material/checkbox:checkbox_scss_lib", - "//src/material/core:core_scss_lib", - "//src/material/radio:radio_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "list_scss", + name = "css", src = "list.scss", deps = [ - ":hcm_indicator_scss_lib", - ":inherited_structure_scss_lib", - "//src/material/core:core_scss_lib", + ":list_inherited_structure", + ":list_item_hcm_indicator", + ":m2", + "//src/material/core/style:layout_common", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "list_item_hcm_indicator", + srcs = ["_list-item-hcm-indicator.scss"], + deps = ["//src/cdk:sass_lib"], +) + +sass_library( + name = "list_inherited_structure", + srcs = ["_list-inherited-structure.scss"], + deps = [ + ":m2", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "list_option_scss", + name = "option_css", src = "list-option.scss", deps = [ - ":list_scss_lib", - "//src/cdk:sass_lib", - "//src/material/checkbox:checkbox_scss_lib", - "//src/material/core:core_scss_lib", + ":list_item_hcm_indicator", + "//src/material/checkbox:checkbox_common", + "//src/material/radio:radio_common", + ], +) + +ng_project( + name = "list", + srcs = [ + "action-list.ts", + "index.ts", + "list.ts", + "list-base.ts", + "list-item-sections.ts", + "list-module.ts", + "list-option.ts", + "list-option-types.ts", + "nav-list.ts", + "public-api.ts", + "selection-list.ts", + "subheader.ts", + "tokens.ts", + ], + assets = [ + "list-item.html", + "list-option.html", + ":css", + ":option_css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/coercion", + "//src/cdk/collections", + "//src/cdk/observers", + "//src/cdk/private", + "//src/material/core", + "//src/material/divider", ], ) -ng_test_library( +ts_project( name = "list_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":list", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/keycodes", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/core", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) @@ -112,7 +158,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":list_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/list/_list-inherited-structure.scss b/src/material/list/_list-inherited-structure.scss index 427febfec4b4..1b8b30ef04f6 100644 --- a/src/material/list/_list-inherited-structure.scss +++ b/src/material/list/_list-inherited-structure.scss @@ -1,11 +1,12 @@ @use '../core/style/vendor-prefixes'; -@use '../core/tokens/m2/mdc/list' as tokens-mdc-list; @use '../core/tokens/token-utils'; +@use './m2-list'; + +$token-prefix: m2-list.$prefix; +$token-slots: m2-list.get-token-slots(); // Includes the structural styles for the list that were inherited from MDC. @mixin private-list-inherited-structural-styles { - $tokens: (tokens-mdc-list.$prefix, tokens-mdc-list.get-token-slots()); - .mdc-list { margin: 0; padding: 8px 0; @@ -27,13 +28,12 @@ padding-left: 16px; padding-right: 16px; - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(background-color, list-item-container-color); - @include token-utils.create-token-slot(border-radius, list-item-container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(list-item-container-color); + border-radius: token-utils.slot(list-item-container-shape); &.mdc-list-item--selected { - @include token-utils.create-token-slot(background-color, - list-item-selected-container-color); + background-color: token-utils.slot(list-item-selected-container-color); } } @@ -46,8 +46,8 @@ } &.mdc-list-item--with-one-line { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(height, list-item-one-line-container-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(list-item-one-line-container-height); } .mdc-list-item__start { @@ -62,8 +62,8 @@ } &.mdc-list-item--with-two-lines { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(height, list-item-two-line-container-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(list-item-two-line-container-height); } .mdc-list-item__start { @@ -78,8 +78,8 @@ } &.mdc-list-item--with-three-lines { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(height, list-item-three-line-container-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(list-item-three-line-container-height); } .mdc-list-item__start { @@ -118,11 +118,11 @@ flex-shrink: 0; pointer-events: none; - @include token-utils.use-tokens($tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-list-item--with-leading-icon & { - @include token-utils.create-token-slot(color, list-item-leading-icon-color); - @include token-utils.create-token-slot(width, list-item-leading-icon-size); - @include token-utils.create-token-slot(height, list-item-leading-icon-size); + color: token-utils.slot(list-item-leading-icon-color); + width: token-utils.slot(list-item-leading-icon-size); + height: token-utils.slot(list-item-leading-icon-size); margin-left: 16px; margin-right: 32px; } @@ -133,13 +133,13 @@ } .mdc-list-item--with-leading-icon:hover & { - @include token-utils.create-token-slot(color, list-item-hover-leading-icon-color); + color: token-utils.slot(list-item-hover-leading-icon-color); } // This is the same in RTL, but we need the specificity. .mdc-list-item--with-leading-avatar & { - @include token-utils.create-token-slot(width, list-item-leading-avatar-size); - @include token-utils.create-token-slot(height, list-item-leading-avatar-size); + width: token-utils.slot(list-item-leading-avatar-size); + height: token-utils.slot(list-item-leading-avatar-size); margin-left: 16px; margin-right: 16px; border-radius: 50%; @@ -158,38 +158,33 @@ flex-shrink: 0; pointer-events: none; - @include token-utils.use-tokens($tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-list-item--with-trailing-meta & { - @include token-utils.create-token-slot(font-family, - list-item-trailing-supporting-text-font); - @include token-utils.create-token-slot(line-height, - list-item-trailing-supporting-text-line-height); - @include token-utils.create-token-slot(font-size, - list-item-trailing-supporting-text-size); - @include token-utils.create-token-slot(font-weight, - list-item-trailing-supporting-text-weight); - @include token-utils.create-token-slot(letter-spacing, - list-item-trailing-supporting-text-tracking); + font-family: token-utils.slot(list-item-trailing-supporting-text-font); + line-height: token-utils.slot(list-item-trailing-supporting-text-line-height); + font-size: token-utils.slot(list-item-trailing-supporting-text-size); + font-weight: token-utils.slot(list-item-trailing-supporting-text-weight); + letter-spacing: token-utils.slot(list-item-trailing-supporting-text-tracking); } .mdc-list-item--with-trailing-icon & { - @include token-utils.create-token-slot(color, list-item-trailing-icon-color); - @include token-utils.create-token-slot(width, list-item-trailing-icon-size); - @include token-utils.create-token-slot(height, list-item-trailing-icon-size); + color: token-utils.slot(list-item-trailing-icon-color); + width: token-utils.slot(list-item-trailing-icon-size); + height: token-utils.slot(list-item-trailing-icon-size); } .mdc-list-item--with-trailing-icon:hover & { - @include token-utils.create-token-slot(color, list-item-hover-trailing-icon-color); + color: token-utils.slot(list-item-hover-trailing-icon-color); } // For some reason this has an increased specificity just for the `color`. // Keeping it in place for now to reduce the amount of screenshot diffs. .mdc-list-item.mdc-list-item--with-trailing-meta & { - @include token-utils.create-token-slot(color, list-item-trailing-supporting-text-color); + color: token-utils.slot(list-item-trailing-supporting-text-color); } .mdc-list-item--selected.mdc-list-item--with-trailing-icon & { - @include token-utils.create-token-slot(color, list-item-selected-trailing-icon-color); + color: token-utils.slot(list-item-selected-trailing-icon-color); } } } @@ -213,20 +208,20 @@ white-space: nowrap; overflow: hidden; - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(color, list-item-label-text-color); - @include token-utils.create-token-slot(font-family, list-item-label-text-font); - @include token-utils.create-token-slot(line-height, list-item-label-text-line-height); - @include token-utils.create-token-slot(font-size, list-item-label-text-size); - @include token-utils.create-token-slot(font-weight, list-item-label-text-weight); - @include token-utils.create-token-slot(letter-spacing, list-item-label-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(list-item-label-text-color); + font-family: token-utils.slot(list-item-label-text-font); + line-height: token-utils.slot(list-item-label-text-line-height); + font-size: token-utils.slot(list-item-label-text-size); + font-weight: token-utils.slot(list-item-label-text-weight); + letter-spacing: token-utils.slot(list-item-label-text-tracking); .mdc-list-item:hover & { - @include token-utils.create-token-slot(color, list-item-hover-label-text-color); + color: token-utils.slot(list-item-hover-label-text-color); } .mdc-list-item:focus & { - @include token-utils.create-token-slot(color, list-item-focus-label-text-color); + color: token-utils.slot(list-item-focus-label-text-color); } } @@ -264,13 +259,13 @@ display: block; margin-top: 0; - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(color, list-item-supporting-text-color); - @include token-utils.create-token-slot(font-family, list-item-supporting-text-font); - @include token-utils.create-token-slot(line-height, list-item-supporting-text-line-height); - @include token-utils.create-token-slot(font-size, list-item-supporting-text-size); - @include token-utils.create-token-slot(font-weight, list-item-supporting-text-weight); - @include token-utils.create-token-slot(letter-spacing, list-item-supporting-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(list-item-supporting-text-color); + font-family: token-utils.slot(list-item-supporting-text-font); + line-height: token-utils.slot(list-item-supporting-text-line-height); + font-size: token-utils.slot(list-item-supporting-text-size); + font-weight: token-utils.slot(list-item-supporting-text-weight); + letter-spacing: token-utils.slot(list-item-supporting-text-tracking); } &::before { @@ -475,22 +470,22 @@ .mdc-list-item__primary-text, .mdc-list-item__secondary-text { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(opacity, list-item-disabled-label-text-opacity); + @include token-utils.use-tokens($token-prefix, $token-slots) { + opacity: token-utils.slot(list-item-disabled-label-text-opacity); } } &.mdc-list-item--with-leading-icon .mdc-list-item__start { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(color, list-item-disabled-leading-icon-color); - @include token-utils.create-token-slot(opacity, list-item-disabled-leading-icon-opacity); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(list-item-disabled-leading-icon-color); + opacity: token-utils.slot(list-item-disabled-leading-icon-opacity); } } &.mdc-list-item--with-trailing-icon .mdc-list-item__end { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(color, list-item-disabled-trailing-icon-color); - @include token-utils.create-token-slot(opacity, list-item-disabled-trailing-icon-opacity); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(list-item-disabled-trailing-icon-color); + opacity: token-utils.slot(list-item-disabled-trailing-icon-opacity); } } } diff --git a/src/material/list/_list-theme.scss b/src/material/list/_list-theme.scss index 69ab84fb2ec9..2f3e8ea78a34 100644 --- a/src/material/list/_list-theme.scss +++ b/src/material/list/_list-theme.scss @@ -1,15 +1,14 @@ @use 'sass:map'; +@use '../checkbox/m2-checkbox'; @use '../core/style/sass-utils'; -@use '../core/theming/theming'; @use '../core/theming/inspection'; +@use '../core/theming/theming'; @use '../core/theming/validation'; -@use '../core/tokens/m2/mat/list' as tokens-mat-list; -@use '../core/tokens/m2/mdc/checkbox' as tokens-mdc-checkbox; -@use '../core/tokens/m2/mdc/radio' as tokens-mdc-radio; -@use '../core/tokens/m2/mdc/list' as tokens-mdc-list; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; +@use '../radio/m2-radio'; +@use './m2-list'; @mixin base($theme) { // Add default values for tokens not related to color, typography, or density. @@ -18,13 +17,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-list.$prefix, - tokens-mdc-list.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-list.$prefix, - tokens-mat-list.get-unthemable-tokens() - ); + m2-list.$prefix, m2-list.get-unthemable-tokens()); } } } @@ -35,29 +28,21 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-list.$prefix, - tokens-mdc-list.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-list.$prefix, - tokens-mat-list.get-color-tokens($theme) - ); + m2-list.$prefix, m2-list.get-color-tokens($theme)); } .mdc-list-item__start, .mdc-list-item__end { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme, primary) - ); + m2-radio.$prefix, m2-radio.get-color-tokens($theme, primary)); } .mat-accent { .mdc-list-item__start, .mdc-list-item__end { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme, accent) + m2-radio.$prefix, + m2-radio.get-color-tokens($theme, accent) ); } } @@ -66,28 +51,28 @@ .mdc-list-item__start, .mdc-list-item__end { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme, warn) + m2-radio.$prefix, + m2-radio.get-color-tokens($theme, warn) ); } } .mat-mdc-list-option { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme, primary) + m2-checkbox.$prefix, + m2-checkbox.get-color-tokens($theme, primary) ); } .mat-mdc-list-option.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme, accent) + m2-checkbox.$prefix, + m2-checkbox.get-color-tokens($theme, accent) ); } .mat-mdc-list-option.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-checkbox.$prefix, - tokens-mdc-checkbox.get-color-tokens($theme, warn) + m2-checkbox.$prefix, + m2-checkbox.get-color-tokens($theme, warn) ); } @@ -123,22 +108,15 @@ $density-scale: inspection.get-theme-density($theme); @include sass-utils.current-selector-or-root() { + // TODO: See if this can be removed @include token-utils.create-token-values-mixed( - tokens-mdc-list.$prefix, - tokens-mdc-list.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-list.$prefix, - tokens-mat-list.get-density-tokens($theme) - ); + m2-list.$prefix, m2-list.get-density-tokens($theme)); } .mdc-list-item__start, .mdc-list-item__end { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-density-tokens($theme) - ); + m2-radio.$prefix, m2-radio.get-density-tokens($theme)); } // TODO(mmalerba): This is added to maintain the same style MDC used prior to the token-based @@ -186,13 +164,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-list.$prefix, - tokens-mdc-list.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-list.$prefix, - tokens-mat-list.get-typography-tokens($theme) - ); + m2-list.$prefix, m2-list.get-typography-tokens($theme)); } // MDC does not have tokens for the subheader. @@ -208,12 +180,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-list.$prefix, - tokens: tokens-mat-list.get-token-slots(), - ), - ( - namespace: tokens-mdc-list.$prefix, - tokens: tokens-mdc-list.get-token-slots(), + namespace: m2-list.$prefix, + tokens: m2-list.get-token-slots(), ), ); } @@ -245,8 +213,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-list-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-list.$prefix); - $mat-list-tokens: token-utils.get-tokens-for($tokens, tokens-mat-list.$prefix); - @include token-utils.create-token-values(tokens-mdc-list.$prefix, $mdc-list-tokens); - @include token-utils.create-token-values(tokens-mat-list.$prefix, $mat-list-tokens); + $mat-list-tokens: token-utils.get-tokens-for($tokens, m2-list.$prefix); + @include token-utils.create-token-values(m2-list.$prefix, $mat-list-tokens); } diff --git a/src/material/list/_m2-list.scss b/src/material/list/_m2-list.scss new file mode 100644 index 000000000000..1d09b9c4c81b --- /dev/null +++ b/src/material/list/_m2-list.scss @@ -0,0 +1,133 @@ +@use '../core/tokens/m2-utils'; +@use '../core/style/sass-utils'; +@use '../core/theming/inspection'; +@use 'sass:map'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, list); + +// Tokens that can't be configured through Angular Material's current theming API, +// but may be in a future version of the theming API. +@function get-unthemable-tokens() { + @return ( + active-indicator-color: transparent, + active-indicator-shape: 4px, + list-item-container-shape: 0, + list-item-leading-avatar-shape: 50%, + list-item-container-color: transparent, + list-item-selected-container-color: transparent, + list-item-leading-avatar-color: transparent, + list-item-leading-icon-size: 24px, + list-item-leading-avatar-size: 40px, + list-item-trailing-icon-size: 24px, + list-item-disabled-state-layer-color: transparent, + list-item-disabled-state-layer-opacity: 0, + list-item-disabled-label-text-opacity: 0.38, + list-item-disabled-leading-icon-opacity: 0.38, + list-item-disabled-trailing-icon-opacity: 0.38, + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme) { + $is-dark: inspection.get-theme-type($theme) == dark; + $foreground-base: inspection.get-theme-color($theme, foreground, base); + $foreground-text: inspection.get-theme-color($theme, foreground, text); + $foreground-secondary-text: inspection.get-theme-color($theme, foreground, secondary-text); + $foreground-hint-text: inspection.get-theme-color($theme, foreground, hint-text); + $text-icon-on-background: sass-utils.safe-color-change( + $foreground-base, $alpha: if($is-dark, 0.5, 0.38)); + + @return ( + list-item-label-text-color: $foreground-text, + list-item-supporting-text-color: $foreground-secondary-text, + list-item-leading-icon-color: $text-icon-on-background, + list-item-trailing-supporting-text-color: $foreground-hint-text, + list-item-trailing-icon-color: $text-icon-on-background, + list-item-selected-trailing-icon-color: $text-icon-on-background, + list-item-disabled-label-text-color: $foreground-base, + list-item-disabled-leading-icon-color: $foreground-base, + list-item-disabled-trailing-icon-color: $foreground-base, + list-item-hover-label-text-color: $foreground-text, + list-item-hover-leading-icon-color: $text-icon-on-background, + list-item-hover-state-layer-color: $foreground-base, + list-item-hover-state-layer-opacity: if($is-dark, 0.08, 0.04), + list-item-hover-trailing-icon-color: $text-icon-on-background, + list-item-focus-label-text-color: $foreground-text, + list-item-focus-state-layer-color: $foreground-base, + list-item-focus-state-layer-opacity: if($is-dark, 0.24, 0.12), + ); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return ( + list-item-label-text-font: inspection.get-theme-typography($theme, body-1, font-family), + list-item-label-text-line-height: inspection.get-theme-typography($theme, body-1, line-height), + list-item-label-text-size: inspection.get-theme-typography($theme, body-1, font-size), + list-item-label-text-tracking: inspection.get-theme-typography($theme, body-1, letter-spacing), + list-item-label-text-weight: inspection.get-theme-typography($theme, body-1, font-weight), + list-item-supporting-text-font: inspection.get-theme-typography($theme, body-2, font-family), + list-item-supporting-text-line-height:inspection.get-theme-typography( + $theme, body-2, line-height), + list-item-supporting-text-size: inspection.get-theme-typography($theme, body-2, font-size), + list-item-supporting-text-tracking: inspection.get-theme-typography( + $theme, body-2, letter-spacing), + list-item-supporting-text-weight: inspection.get-theme-typography($theme, body-2, font-weight), + list-item-trailing-supporting-text-font: inspection.get-theme-typography( + $theme, caption, font-family), + list-item-trailing-supporting-text-line-height: inspection.get-theme-typography( + $theme, caption, line-height), + list-item-trailing-supporting-text-size: inspection.get-theme-typography( + $theme, caption, font-size), + list-item-trailing-supporting-text-tracking: inspection.get-theme-typography( + $theme, caption, letter-spacing), + list-item-trailing-supporting-text-weight: inspection.get-theme-typography( + $theme, caption, font-weight), + ); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + $scale: inspection.get-theme-density($theme); + + @return ( + list-item-leading-icon-start-space: 16px, + list-item-leading-icon-end-space: 32px, + list-item-one-line-container-height: map.get(( + 0: 48px, + -1: 44px, + -2: 40px, + -3: 36px, + -4: 32px, + -5: 24px, + ), $scale), + list-item-two-line-container-height: map.get(( + 0: 64px, + -1: 60px, + -2: 56px, + -3: 52px, + -4: 48px, + -5: 48px, + ), $scale), + list-item-three-line-container-height: map.get(( + 0: 88px, + -1: 84px, + -2: 80px, + -3: 76px, + -4: 72px, + -5: 56px, + ), $scale), + ); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return sass-utils.deep-merge-all( + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ); +} diff --git a/src/material/list/_m3-list.scss b/src/material/list/_m3-list.scss new file mode 100644 index 000000000000..fcd37d1aac15 --- /dev/null +++ b/src/material/list/_m3-list.scss @@ -0,0 +1,78 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, list); + +/// Generates custom tokens for the mat-list. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-list +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + // list-item-container-color + // This does not match the spec, which defines this to be `md.sys.color.surface`. + // However, this interferes with the use case of placing a list on other components. For example, + // the bottom sheets container color is `md.sys.color.surface-container-low`. Instead, allow the + // list to just display the colors for its background. + + // list-item-leading-icon-size + // Match spec, which has list-item-leading-icon-size of 24px. + // Current version of tokens (0_161) has 18px. + $tokens: ( + active-indicator-color: map.get($systems, md-sys-color, secondary-container), + active-indicator-shape: map.get($systems, md-sys-shape, corner-full), + list-item-container-color: if($exclude-hardcoded, null, transparent), + list-item-container-shape: map.get($systems, md-sys-shape, corner-none), + list-item-disabled-label-text-color: map.get($systems, md-sys-color, on-surface), + list-item-disabled-label-text-opacity: if($exclude-hardcoded, null, 0.3), + list-item-disabled-leading-icon-color: map.get($systems, md-sys-color, on-surface), + list-item-disabled-leading-icon-opacity: if($exclude-hardcoded, null, 0.38), + list-item-disabled-state-layer-color: map.get($systems, md-sys-color, on-surface), + list-item-disabled-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + list-item-disabled-trailing-icon-color: map.get($systems, md-sys-color, on-surface), + list-item-disabled-trailing-icon-opacity: if($exclude-hardcoded, null, 0.38), + list-item-focus-label-text-color: map.get($systems, md-sys-color, on-surface), + list-item-focus-state-layer-color: map.get($systems, md-sys-color, on-surface), + list-item-focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity), + list-item-hover-label-text-color: map.get($systems, md-sys-color, on-surface), + list-item-hover-state-layer-color: map.get($systems, md-sys-color, on-surface), + list-item-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + list-item-label-text-color: map.get($systems, md-sys-color, on-surface), + list-item-label-text-font: map.get($systems, md-sys-typescale, body-large-font), + list-item-label-text-line-height: map.get($systems, md-sys-typescale, body-large-line-height), + list-item-label-text-size: map.get($systems, md-sys-typescale, body-large-size), + list-item-label-text-tracking: map.get($systems, md-sys-typescale, body-large-tracking), + list-item-label-text-weight: map.get($systems, md-sys-typescale, body-large-weight), + list-item-leading-avatar-color: map.get($systems, md-sys-color, primary-container), + list-item-leading-avatar-shape: map.get($systems, md-sys-shape, corner-full), + list-item-leading-avatar-size: if($exclude-hardcoded, null, 40px), + list-item-leading-icon-color: map.get($systems, md-sys-color, on-surface-variant), + list-item-leading-icon-size: if($exclude-hardcoded, null, 24px), + list-item-one-line-container-height: if($exclude-hardcoded, null, 56px), + list-item-selected-trailing-icon-color: map.get($systems, md-sys-color, primary), + list-item-supporting-text-color: map.get($systems, md-sys-color, on-surface-variant), + list-item-supporting-text-font: map.get($systems, md-sys-typescale, body-medium-font), + list-item-supporting-text-line-height: + map.get($systems, md-sys-typescale, body-medium-line-height), + list-item-supporting-text-size: map.get($systems, md-sys-typescale, body-medium-size), + list-item-supporting-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), + list-item-supporting-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + list-item-three-line-container-height: if($exclude-hardcoded, null, 88px), + list-item-trailing-icon-color: map.get($systems, md-sys-color, on-surface-variant), + list-item-trailing-icon-size: if($exclude-hardcoded, null, 24px), + list-item-trailing-supporting-text-color: map.get($systems, md-sys-color, on-surface-variant), + list-item-trailing-supporting-text-font: map.get($systems, md-sys-typescale, label-small-font), + list-item-trailing-supporting-text-line-height: + map.get($systems, md-sys-typescale, label-small-line-height), + list-item-trailing-supporting-text-size: map.get($systems, md-sys-typescale, label-small-size), + list-item-trailing-supporting-text-tracking: + map.get($systems, md-sys-typescale, label-small-tracking), + list-item-trailing-supporting-text-weight: + map.get($systems, md-sys-typescale, label-small-weight), + list-item-two-line-container-height: if($exclude-hardcoded, null, 72px), + ); + + @return m3-utils.namespace($prefix, $tokens, $token-slots); +} diff --git a/src/material/list/list-module.ts b/src/material/list/list-module.ts index d69163454ab3..91de006ab5a6 100644 --- a/src/material/list/list-module.ts +++ b/src/material/list/list-module.ts @@ -8,7 +8,7 @@ import {NgModule} from '@angular/core'; import {MatPseudoCheckboxModule, MatRippleModule, MatCommonModule} from '../core'; -import {MatDividerModule, MatDivider} from '@angular/material/divider'; +import {MatDividerModule, MatDivider} from '../divider'; import {MatActionList} from './action-list'; import {MatList, MatListItem} from './list'; import {MatListOption} from './list-option'; diff --git a/src/material/list/list.scss b/src/material/list/list.scss index 95098cebdf4c..210396e57b57 100644 --- a/src/material/list/list.scss +++ b/src/material/list/list.scss @@ -1,6 +1,5 @@ @use '../core/style/layout-common'; -@use '../core/tokens/m2/mat/list' as tokens-mat-list; -@use '../core/tokens/m2/mdc/list' as tokens-mdc-list; +@use './m2-list'; @use '../core/tokens/token-utils'; @use './list-item-hcm-indicator'; @use './list-inherited-structure'; @@ -8,28 +7,28 @@ @include list-inherited-structure.private-list-inherited-structural-styles; // Add additional slots for the MDC list tokens, needed in Angular Material. -@include token-utils.use-tokens(tokens-mdc-list.$prefix, tokens-mdc-list.get-token-slots()) { +@include token-utils.use-tokens(m2-list.$prefix, m2-list.get-token-slots()) { // MDC allows focus and hover colors to take precedence over disabled color. We add the disabled // color here with higher specificity so that the disabled color takes precedence. // TODO(mmalerba): Dicuss with MDC whether to change this in their code. .mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text { - @include token-utils.create-token-slot(color, list-item-disabled-label-text-color); + color: token-utils.slot(list-item-disabled-label-text-color); } // We don't use MDC's state layer since it's tied in with their ripple. Instead we emit slots // for our own state layer. // TODO(mmalerba): Consider using MDC's ripple & state layer. .mdc-list-item:hover::before { - @include token-utils.create-token-slot(background-color, list-item-hover-state-layer-color); - @include token-utils.create-token-slot(opacity, list-item-hover-state-layer-opacity); + background-color: token-utils.slot(list-item-hover-state-layer-color); + opacity: token-utils.slot(list-item-hover-state-layer-opacity); } .mdc-list-item.mdc-list-item--disabled::before { - @include token-utils.create-token-slot(background-color, list-item-disabled-state-layer-color); - @include token-utils.create-token-slot(opacity, list-item-disabled-state-layer-opacity); + background-color: token-utils.slot(list-item-disabled-state-layer-color); + opacity: token-utils.slot(list-item-disabled-state-layer-opacity); } .mdc-list-item:focus::before { - @include token-utils.create-token-slot(background-color, list-item-focus-state-layer-color); - @include token-utils.create-token-slot(opacity, list-item-focus-state-layer-opacity); + background-color: token-utils.slot(list-item-focus-state-layer-color); + opacity: token-utils.slot(list-item-focus-state-layer-opacity); } // Apply the disabled opacity to the checkbox/radio indicators. @@ -38,7 +37,7 @@ .mdc-list-item--disabled { .mdc-radio, .mdc-checkbox { - @include token-utils.create-token-slot(opacity, list-item-disabled-label-text-opacity); + opacity: token-utils.slot(list-item-disabled-label-text-opacity); } } @@ -47,15 +46,15 @@ // TODO(mmalerba): We should try to change MDC's recommended DOM or change ours to match their // recommendation. .mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar { - @include token-utils.create-token-slot(border-radius, list-item-leading-avatar-shape); - @include token-utils.create-token-slot(background-color, list-item-leading-avatar-color); + border-radius: token-utils.slot(list-item-leading-avatar-shape); + background-color: token-utils.slot(list-item-leading-avatar-color); } // Set font-size of leading icon to same value as its width and height. Ensure icon scales to // "list-item-leading-icon-size" token. In Angular Material, the icon is on the same element as // ".mdc-list-item__start", rather than a child of ".mdc-list-item__start". .mat-mdc-list-item-icon { - @include token-utils.create-token-slot(font-size, list-item-leading-icon-size); + font-size: token-utils.slot(list-item-leading-icon-size); } } @@ -171,21 +170,18 @@ mat-action-list button { } } -@include token-utils.use-tokens(tokens-mat-list.$prefix, tokens-mat-list.get-token-slots()) { +@include token-utils.use-tokens(m2-list.$prefix, m2-list.get-token-slots()) { .mdc-list-item--with-leading-icon .mdc-list-item__start { - @include token-utils.create-token-slot(margin-inline-start, list-item-leading-icon-start-space); - @include token-utils.create-token-slot(margin-inline-end, list-item-leading-icon-end-space); + margin-inline-start: token-utils.slot(list-item-leading-icon-start-space); + margin-inline-end: token-utils.slot(list-item-leading-icon-end-space); } .mat-mdc-nav-list .mat-mdc-list-item { - @include token-utils.create-token-slot(border-radius, active-indicator-shape); - @include token-utils.create-token-slot( - --mat-focus-indicator-border-radius, - active-indicator-shape - ); + border-radius: token-utils.slot(active-indicator-shape); + --mat-focus-indicator-border-radius: #{token-utils.slot(active-indicator-shape)}; &.mdc-list-item--activated { - @include token-utils.create-token-slot(background-color, active-indicator-color); + background-color: token-utils.slot(active-indicator-color); } } } diff --git a/src/material/list/testing/BUILD.bazel b/src/material/list/testing/BUILD.bazel index ed06bcc011a9..626ba114d663 100644 --- a/src/material/list/testing/BUILD.bazel +++ b/src/material/list/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", "//src/material/divider/testing", @@ -22,11 +22,13 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/divider/testing", diff --git a/src/material/menu/BUILD.bazel b/src/material/menu/BUILD.bazel index 61b0c11819af..bba1651cdbe3 100644 --- a/src/material/menu/BUILD.bazel +++ b/src/material/menu/BUILD.bazel @@ -2,57 +2,108 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "menu", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [":menu_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-menu.scss", + ], deps = [ - "//src/cdk/overlay", - "//src/cdk/scrolling", - "//src/material/core", - "@npm//@angular/common", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "menu_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-menu.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_menu-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "menu_scss", + name = "css", src = "menu.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:button_common", + "//src/material/core/style:menu_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "menu", + srcs = [ + "index.ts", + "menu.ts", + "menu-animations.ts", + "menu-content.ts", + "menu-errors.ts", + "menu-item.ts", + "menu-panel.ts", + "menu-positions.ts", + "menu-trigger.ts", + "module.ts", + "public-api.ts", + ], + assets = [ + "menu-item.html", + "menu.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src/cdk/overlay", + "//src/cdk/scrolling", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "menu_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":menu", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", @@ -60,8 +111,6 @@ ng_test_library( "//src/cdk/scrolling", "//src/cdk/testing/private", "//src/material/core", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -79,7 +128,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":menu_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_menu.scss b/src/material/menu/_m2-menu.scss similarity index 87% rename from src/material/core/tokens/m2/mat/_menu.scss rename to src/material/menu/_m2-menu.scss index bf3e68248b23..dd4655c8835d 100644 --- a/src/material/core/tokens/m2/mat/_menu.scss +++ b/src/material/menu/_m2-menu.scss @@ -1,7 +1,7 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../../style/elevation'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, menu); @@ -64,8 +64,8 @@ $prefix: (mat, menu); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_menu.scss b/src/material/menu/_m3-menu.scss similarity index 57% rename from src/material/core/tokens/m3/mat/_menu.scss rename to src/material/menu/_m3-menu.scss index c341e9a40465..a23b6da9e49e 100644 --- a/src/material/core/tokens/m3/mat/_menu.scss +++ b/src/material/menu/_m3-menu.scss @@ -1,7 +1,7 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; -@use '../../../style/elevation'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, menu); @@ -13,15 +13,15 @@ $prefix: (mat, menu); /// @return {Map} A set of custom tokens for the mat-menu @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, item-label-text, label-large), + m3-utils.generate-typography-tokens($systems, item-label-text, label-large), ( container-shape: map.get($systems, md-sys-shape, corner-extra-small), divider-color: map.get($systems, md-sys-color, surface-variant), - divider-bottom-spacing: token-definition.hardcode(8px, $exclude-hardcoded), - divider-top-spacing: token-definition.hardcode(8px, $exclude-hardcoded), + divider-bottom-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), + divider-top-spacing: m3-utils.hardcode(8px, $exclude-hardcoded), item-label-text-color: map.get($systems, md-sys-color, on-surface), item-icon-color: map.get($systems, md-sys-color, on-surface-variant), - item-icon-size: token-definition.hardcode(24px, $exclude-hardcoded), + item-icon-size: m3-utils.hardcode(24px, $exclude-hardcoded), item-hover-state-layer-color: sass-utils.safe-color-change( map.get($systems, md-sys-color, on-surface), $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity) @@ -30,19 +30,16 @@ $prefix: (mat, menu); map.get($systems, md-sys-color, on-surface), $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity) ), - item-spacing: token-definition.hardcode(12px, $exclude-hardcoded), - item-leading-spacing: token-definition.hardcode(12px, $exclude-hardcoded), - item-trailing-spacing: token-definition.hardcode(12px, $exclude-hardcoded), - item-with-icon-leading-spacing: token-definition.hardcode(12px, $exclude-hardcoded), - item-with-icon-trailing-spacing: token-definition.hardcode(12px, $exclude-hardcoded), + item-spacing: m3-utils.hardcode(12px, $exclude-hardcoded), + item-leading-spacing: m3-utils.hardcode(12px, $exclude-hardcoded), + item-trailing-spacing: m3-utils.hardcode(12px, $exclude-hardcoded), + item-with-icon-leading-spacing: m3-utils.hardcode(12px, $exclude-hardcoded), + item-with-icon-trailing-spacing: m3-utils.hardcode(12px, $exclude-hardcoded), container-color: map.get($systems, md-sys-color, surface-container), - container-elevation-shadow: token-definition.hardcode( + container-elevation-shadow: m3-utils.hardcode( elevation.get-box-shadow(2), $exclude-hardcoded), - - // Unused - base-elevation-level: null, ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/menu/_menu-theme.scss b/src/material/menu/_menu-theme.scss index 6bad25053474..68c8d8c1a56d 100644 --- a/src/material/menu/_menu-theme.scss +++ b/src/material/menu/_menu-theme.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../core/tokens/m2/mat/menu' as tokens-mat-menu; +@use './m2-menu'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; @use '../core/theming/theming'; @@ -13,9 +13,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-menu.$prefix, - tokens-mat-menu.get-unthemable-tokens() - ); + m2-menu.$prefix, m2-menu.get-unthemable-tokens()); } } } @@ -26,9 +24,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-menu.$prefix, - tokens-mat-menu.get-color-tokens($theme) - ); + m2-menu.$prefix, m2-menu.get-color-tokens($theme)); } } } @@ -39,9 +35,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-menu.$prefix, - tokens-mat-menu.get-typography-tokens($theme) - ); + m2-menu.$prefix, m2-menu.get-typography-tokens($theme)); } } } @@ -57,8 +51,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-menu.$prefix, - tokens: tokens-mat-menu.get-token-slots(), + namespace: m2-menu.$prefix, + tokens: m2-menu.get-token-slots(), ), ); } @@ -92,8 +86,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-menu.$prefix, - map.get($tokens, tokens-mat-menu.$prefix) + m2-menu.$prefix, + map.get($tokens, m2-menu.$prefix) ); } } diff --git a/src/material/menu/menu-trigger.ts b/src/material/menu/menu-trigger.ts index 6dcf5aefeb8b..7fd5a475d9bf 100644 --- a/src/material/menu/menu-trigger.ts +++ b/src/material/menu/menu-trigger.ts @@ -39,7 +39,6 @@ import { Renderer2, ViewContainerRef, } from '@angular/core'; -import {_bindEventWithOptions} from '@angular/cdk/platform'; import {merge, Observable, of as observableOf, Subscription} from 'rxjs'; import {filter, take, takeUntil} from 'rxjs/operators'; import {MatMenu, MenuCloseReason} from './menu'; @@ -228,8 +227,7 @@ export class MatMenuTrigger implements AfterContentInit, OnDestroy { const renderer = inject(Renderer2); this._parentMaterialMenu = parentMenu instanceof MatMenu ? parentMenu : undefined; - this._cleanupTouchstart = _bindEventWithOptions( - renderer, + this._cleanupTouchstart = renderer.listen( this._element.nativeElement, 'touchstart', (event: TouchEvent) => { diff --git a/src/material/menu/menu.scss b/src/material/menu/menu.scss index b5544945ff9c..517f0626b524 100644 --- a/src/material/menu/menu.scss +++ b/src/material/menu/menu.scss @@ -1,10 +1,13 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/menu' as tokens-mat-menu; +@use './m2-menu'; @use '../core/tokens/token-utils'; @use '../core/style/menu-common'; @use '../core/style/button-common'; @use '../core/style/vendor-prefixes'; +$token-prefix: m2-menu.$prefix; +$token-slots: m2-menu.get-token-slots(); + // Prevent rendering mat-menu as it can affect the flex layout. mat-menu { display: none; @@ -21,12 +24,12 @@ mat-menu { flex: 1; white-space: normal; - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { - @include token-utils.create-token-slot(font-family, item-label-text-font); - @include token-utils.create-token-slot(line-height, item-label-text-line-height); - @include token-utils.create-token-slot(font-size, item-label-text-size); - @include token-utils.create-token-slot(letter-spacing, item-label-text-tracking); - @include token-utils.create-token-slot(font-weight, item-label-text-weight); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(item-label-text-font); + line-height: token-utils.slot(item-label-text-line-height); + font-size: token-utils.slot(item-label-text-size); + letter-spacing: token-utils.slot(item-label-text-tracking); + font-weight: token-utils.slot(item-label-text-weight); } } } @@ -59,10 +62,10 @@ mat-menu { outline: 0; animation: _mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1); - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(background-color, container-color); - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-radius: token-utils.slot(container-shape); + background-color: token-utils.slot(container-color); + box-shadow: token-utils.slot(container-elevation-shadow); } // TODO(crisbeto): we don't need this for anything, but it was there when @@ -103,13 +106,10 @@ mat-menu { .mat-divider { // Use margin instead of padding since divider uses border-top to render out the line. - @include token-utils.use-tokens( - tokens-mat-menu.$prefix, - tokens-mat-menu.get-token-slots() - ) { - color: token-utils.get-token-variable(divider-color); - margin-bottom: token-utils.get-token-variable(divider-bottom-spacing); - margin-top: token-utils.get-token-variable(divider-top-spacing); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(divider-color); + margin-bottom: token-utils.slot(divider-bottom-spacing); + margin-top: token-utils.slot(divider-top-spacing); } } } @@ -135,43 +135,43 @@ mat-menu { margin: 0; // Resolves an issue where buttons have an extra 2px margin on Safari. min-height: 48px; - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { - @include token-utils.create-token-slot(padding-left, item-leading-spacing); - @include token-utils.create-token-slot(padding-right, item-trailing-spacing); + @include token-utils.use-tokens($token-prefix, $token-slots) { + padding-left: token-utils.slot(item-leading-spacing); + padding-right: token-utils.slot(item-trailing-spacing); } @include button-common.reset; - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $icons-selector: '.material-icons, mat-icon, [matButtonIcon]'; [dir='rtl'] & { - @include token-utils.create-token-slot(padding-left, item-trailing-spacing); - @include token-utils.create-token-slot(padding-right, item-leading-spacing); + padding-left: token-utils.slot(item-trailing-spacing); + padding-right: token-utils.slot(item-leading-spacing); } &:has(#{$icons-selector}) { - @include token-utils.create-token-slot(padding-left, item-with-icon-leading-spacing); - @include token-utils.create-token-slot(padding-right, item-with-icon-trailing-spacing); + padding-left: token-utils.slot(item-with-icon-leading-spacing); + padding-right: token-utils.slot(item-with-icon-trailing-spacing); } [dir='rtl'] &:has(#{$icons-selector}) { - @include token-utils.create-token-slot(padding-left, item-with-icon-trailing-spacing); - @include token-utils.create-token-slot(padding-right, item-with-icon-leading-spacing); + padding-left: token-utils.slot(item-with-icon-trailing-spacing); + padding-right: token-utils.slot(item-with-icon-leading-spacing); } } - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { // The class selector isn't specific enough to overide the link pseudo selectors so we need // to target them specifically, otherwise the item color might be overwritten by the user // agent resets of the app. &, &:visited, &:link { - @include token-utils.create-token-slot(color, item-label-text-color); + color: token-utils.slot(item-label-text-color); } .mat-icon-no-color, .mat-mdc-menu-submenu-icon { - @include token-utils.create-token-slot(color, item-icon-color); + color: token-utils.slot(item-icon-color); } } @@ -201,10 +201,10 @@ mat-menu { .mat-icon { flex-shrink: 0; - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { - margin-right: token-utils.get-token-variable(item-spacing); - height: token-utils.get-token-variable(item-icon-size); - width: token-utils.get-token-variable(item-icon-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + margin-right: token-utils.slot(item-spacing); + height: token-utils.slot(item-icon-size); + width: token-utils.slot(item-icon-size); } } @@ -213,22 +213,22 @@ mat-menu { .mat-icon { margin-right: 0; - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { - margin-left: token-utils.get-token-variable(item-spacing); + @include token-utils.use-tokens($token-prefix, $token-slots) { + margin-left: token-utils.slot(item-spacing); } } } &:not([disabled]) { - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &:hover { - @include token-utils.create-token-slot(background-color, item-hover-state-layer-color); + background-color: token-utils.slot(item-hover-state-layer-color); } &.cdk-program-focused, &.cdk-keyboard-focused, &.mat-mdc-menu-item-highlighted { - @include token-utils.create-token-slot(background-color, item-focus-state-layer-color); + background-color: token-utils.slot(item-focus-state-layer-color); } } } @@ -243,10 +243,10 @@ mat-menu { } .mat-mdc-menu-submenu-icon { - @include token-utils.use-tokens(tokens-mat-menu.$prefix, tokens-mat-menu.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { @include menu-common.item-submenu-icon( - token-utils.get-token-variable(item-spacing), - token-utils.get-token-variable(item-icon-size) + token-utils.slot(item-spacing), + token-utils.slot(item-icon-size) ); } } diff --git a/src/material/menu/testing/BUILD.bazel b/src/material/menu/testing/BUILD.bazel index 931be02f4ce0..f05c13f0cc8f 100644 --- a/src/material/menu/testing/BUILD.bazel +++ b/src/material/menu/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", ], @@ -20,17 +20,19 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/menu", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/package.json b/src/material/package.json index 2f6914964f4e..2b5bafc90ac2 100644 --- a/src/material/package.json +++ b/src/material/package.json @@ -61,10 +61,13 @@ "@angular/common": "0.0.0-NG", "@angular/forms": "0.0.0-NG", "@angular/platform-browser": "0.0.0-NG", - "rxjs": "0.0.0-RXJS" + "rxjs": "^6.5.3 || ^7.4.0" }, "dependencies": { - "tslib": "0.0.0-TSLIB" + "tslib": "^2.3.0" + }, + "devDependencies": { + "@angular/cdk": "workspace:*" }, "schematics": "./schematics/collection.json", "ng-update": { diff --git a/src/material/paginator/BUILD.bazel b/src/material/paginator/BUILD.bazel index 56436d96ad8f..ebb43ba2f612 100644 --- a/src/material/paginator/BUILD.bazel +++ b/src/material/paginator/BUILD.bazel @@ -2,62 +2,103 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "paginator", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":paginator.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-paginator.scss", + ], deps = [ - "//src/material/button", - "//src/material/core", - "//src/material/select", - "//src/material/tooltip", - "@npm//@angular/core", - "@npm//@angular/forms", # TODO(jelbourn): transitive dep via generated code - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "paginator_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-paginator.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_paginator-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "paginator_scss", + name = "css", src = "paginator.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material:sass_lib", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "paginator", + srcs = [ + "index.ts", + "module.ts", + "paginator.ts", + "paginator-intl.ts", + "public-api.ts", + ], + assets = [ + "paginator.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/material/button", + "//src/material/core", + "//src/material/select", + "//src/material/tooltip", ], ) -ng_test_library( +ts_project( name = "paginator_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":paginator", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing/private", "//src/material/core", "//src/material/select", - "@npm//@angular/platform-browser", ], ) @@ -75,7 +116,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":paginator_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_paginator.scss b/src/material/paginator/_m2-paginator.scss similarity index 90% rename from src/material/core/tokens/m2/mat/_paginator.scss rename to src/material/paginator/_m2-paginator.scss index 05d2c28f9756..971e20b8aae7 100644 --- a/src/material/core/tokens/m2/mat/_paginator.scss +++ b/src/material/paginator/_m2-paginator.scss @@ -1,9 +1,9 @@ @use 'sass:math'; @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, paginator); @@ -81,8 +81,8 @@ $prefix: (mat, paginator); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_paginator.scss b/src/material/paginator/_m3-paginator.scss similarity index 81% rename from src/material/core/tokens/m3/mat/_paginator.scss rename to src/material/paginator/_m3-paginator.scss index 1d9119378d58..ca2ad1e85995 100644 --- a/src/material/core/tokens/m3/mat/_paginator.scss +++ b/src/material/paginator/_m3-paginator.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, paginator); @@ -12,7 +12,7 @@ $prefix: (mat, paginator); /// @return {Map} A set of custom tokens for the mat-paginator @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, container-text, body-small), + m3-utils.generate-typography-tokens($systems, container-text, body-small), ( container-text-color: map.get($systems, md-sys-color, on-surface), container-background-color: map.get($systems, md-sys-color, surface), @@ -23,5 +23,5 @@ $prefix: (mat, paginator); ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/paginator/_paginator-theme.scss b/src/material/paginator/_paginator-theme.scss index c2290940a82b..887ddd382ad3 100644 --- a/src/material/paginator/_paginator-theme.scss +++ b/src/material/paginator/_paginator-theme.scss @@ -1,6 +1,6 @@ @use 'sass:map'; @use 'sass:meta'; -@use '../core/tokens/m2/mat/paginator' as tokens-mat-paginator; +@use './m2-paginator'; @use '../core/style/sass-utils'; @use '../core/typography/typography'; @use '../core/theming/theming'; @@ -21,9 +21,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-color-tokens($theme) - ); + m2-paginator.$prefix, m2-paginator.get-color-tokens($theme)); } } } @@ -34,9 +32,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-typography-tokens($theme) - ); + m2-paginator.$prefix, m2-paginator.get-typography-tokens($theme)); } } } @@ -55,9 +51,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-density-tokens($theme) - ); + m2-paginator.$prefix, m2-paginator.get-density-tokens($theme)); } } } @@ -66,8 +60,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-paginator.$prefix, - tokens: tokens-mat-paginator.get-token-slots(), + namespace: m2-paginator.$prefix, + tokens: m2-paginator.get-token-slots(), ), ); } @@ -101,8 +95,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-paginator.$prefix, - map.get($tokens, tokens-mat-paginator.$prefix) + m2-paginator.$prefix, + map.get($tokens, m2-paginator.$prefix) ); } } diff --git a/src/material/paginator/paginator.scss b/src/material/paginator/paginator.scss index ab3e9e9b06ec..f25fe623a386 100644 --- a/src/material/paginator/paginator.scss +++ b/src/material/paginator/paginator.scss @@ -1,5 +1,5 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/paginator' as tokens-mat-paginator; +@use './m2-paginator'; @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; @@ -14,34 +14,29 @@ $touch-target-height: 48px; $range-label-margin: 0 32px 0 24px; $button-icon-size: 28px; +$token-prefix: m2-paginator.$prefix; +$token-slots: m2-paginator.get-token-slots(); + .mat-mdc-paginator { display: block; - @include token-utils.use-tokens( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-token-slots() - ) { + @include token-utils.use-tokens($token-prefix, $token-slots) { @include vendor-prefixes.smooth-font(); - @include token-utils.create-token-slot(color, container-text-color); - @include token-utils.create-token-slot(background-color, container-background-color); - @include token-utils.create-token-slot(font-family, container-text-font); - @include token-utils.create-token-slot(line-height, container-text-line-height); - @include token-utils.create-token-slot(font-size, container-text-size); - @include token-utils.create-token-slot(font-weight, container-text-weight); - @include token-utils.create-token-slot(letter-spacing, container-text-tracking); + color: token-utils.slot(container-text-color); + background-color: token-utils.slot(container-background-color); + font-family: token-utils.slot(container-text-font); + line-height: token-utils.slot(container-text-line-height); + font-size: token-utils.slot(container-text-size); + font-weight: token-utils.slot(container-text-weight); + letter-spacing: token-utils.slot(container-text-tracking); // Apply custom form-field density for paginator. - @include token-utils.create-token-slot( - --mat-form-field-container-height, - form-field-container-height - ); - @include token-utils.create-token-slot( - --mat-form-field-container-vertical-padding, - form-field-container-vertical-padding - ); + --mat-form-field-container-height: #{token-utils.slot(form-field-container-height)}; + --mat-form-field-container-vertical-padding: #{ + token-utils.slot(form-field-container-vertical-padding)}; .mat-mdc-select-value { - @include token-utils.create-token-slot(font-size, select-trigger-text-size); + font-size: #{token-utils.slot(select-trigger-text-size)}; } } @@ -72,11 +67,8 @@ $button-icon-size: 28px; flex-wrap: wrap; width: 100%; - @include token-utils.use-tokens( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-token-slots() - ) { - @include token-utils.create-token-slot(min-height, container-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + min-height: token-utils.slot(container-size); } } @@ -113,14 +105,11 @@ $button-icon-size: 28px; display: inline-block; width: $button-icon-size; - @include token-utils.use-tokens( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-token-slots() - ) { - @include token-utils.create-token-slot(fill, enabled-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + fill: token-utils.slot(enabled-icon-color); .mat-mdc-icon-button[aria-disabled] & { - @include token-utils.create-token-slot(fill, disabled-icon-color); + fill: token-utils.slot(disabled-icon-color); } } @@ -146,11 +135,8 @@ $button-icon-size: 28px; } .mat-mdc-paginator-touch-target { - @include token-utils.use-tokens( - tokens-mat-paginator.$prefix, - tokens-mat-paginator.get-token-slots() - ) { - @include token-utils.create-token-slot(display, touch-target-display); + @include token-utils.use-tokens($token-prefix, $token-slots) { + display: token-utils.slot(touch-target-display); } position: absolute; diff --git a/src/material/paginator/testing/BUILD.bazel b/src/material/paginator/testing/BUILD.bazel index a09338d9689f..cc95dad2caa4 100644 --- a/src/material/paginator/testing/BUILD.bazel +++ b/src/material/paginator/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,23 +9,25 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", "//src/material/select/testing", ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/paginator", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/prebuilt-themes/BUILD.bazel b/src/material/prebuilt-themes/BUILD.bazel index b0ffdf2da7bc..cee8f50e28ae 100644 --- a/src/material/prebuilt-themes/BUILD.bazel +++ b/src/material/prebuilt-themes/BUILD.bazel @@ -9,56 +9,56 @@ package(default_visibility = ["//visibility:public"]) genrule( name = "indigo-pink", - srcs = ["//src/material/core:theming/prebuilt/indigo-pink.css"], + srcs = ["//src/material/core/theming/prebuilt:indigo-pink-theme"], outs = ["indigo-pink.css"], cmd = "cp $< $@", ) genrule( name = "deeppurple-amber", - srcs = ["//src/material/core:theming/prebuilt/deeppurple-amber.css"], + srcs = ["//src/material/core/theming/prebuilt:deeppurple-amber-theme"], outs = ["deeppurple-amber.css"], cmd = "cp $< $@", ) genrule( name = "pink-bluegrey", - srcs = ["//src/material/core:theming/prebuilt/pink-bluegrey.css"], + srcs = ["//src/material/core/theming/prebuilt:pink-bluegrey-theme"], outs = ["pink-bluegrey.css"], cmd = "cp $< $@", ) genrule( name = "purple-green", - srcs = ["//src/material/core:theming/prebuilt/purple-green.css"], + srcs = ["//src/material/core/theming/prebuilt:purple-green-theme"], outs = ["purple-green.css"], cmd = "cp $< $@", ) genrule( name = "azure-blue", - srcs = ["//src/material/core:theming/prebuilt/azure-blue.css"], + srcs = ["//src/material/core/theming/prebuilt:azure_blue"], outs = ["azure-blue.css"], cmd = "cp $< $@", ) genrule( name = "rose-red", - srcs = ["//src/material/core:theming/prebuilt/rose-red.css"], + srcs = ["//src/material/core/theming/prebuilt:rose_red"], outs = ["rose-red.css"], cmd = "cp $< $@", ) genrule( name = "cyan-orange", - srcs = ["//src/material/core:theming/prebuilt/cyan-orange.css"], + srcs = ["//src/material/core/theming/prebuilt:cyan_orange"], outs = ["cyan-orange.css"], cmd = "cp $< $@", ) genrule( name = "magenta-violet", - srcs = ["//src/material/core:theming/prebuilt/magenta-violet.css"], + srcs = ["//src/material/core/theming/prebuilt:magenta_violet"], outs = ["magenta-violet.css"], cmd = "cp $< $@", ) diff --git a/src/material/progress-bar/BUILD.bazel b/src/material/progress-bar/BUILD.bazel index 7c78a5f3a5a9..10d90d2e436e 100644 --- a/src/material/progress-bar/BUILD.bazel +++ b/src/material/progress-bar/BUILD.bazel @@ -2,55 +2,94 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "progress-bar", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [":progress_bar_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-progress-bar.scss", + ], deps = [ - "//src/material/core", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "progress_bar_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-progress-bar.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_progress-bar-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "progress_bar_scss", + name = "css", src = "progress-bar.scss", deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "progress-bar", + srcs = [ + "index.ts", + "module.ts", + "progress-bar.ts", + "public-api.ts", + ], + assets = [ + "progress-bar.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "progress_bar_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":progress-bar", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing/private", - "@npm//@angular/platform-browser", ], ) @@ -68,7 +107,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":progress_bar_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mdc/_linear-progress.scss b/src/material/progress-bar/_m2-progress-bar.scss similarity index 80% rename from src/material/core/tokens/m2/mdc/_linear-progress.scss rename to src/material/progress-bar/_m2-progress-bar.scss index 2d76ac02b5cb..029215a7814d 100644 --- a/src/material/core/tokens/m2/mdc/_linear-progress.scss +++ b/src/material/progress-bar/_m2-progress-bar.scss @@ -1,11 +1,11 @@ -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; @use 'sass:color'; @use 'sass:meta'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, linear-progress); +$prefix: (mat, progress-bar); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -29,7 +29,6 @@ $prefix: (mdc, linear-progress); @function get-color-tokens($theme, $palette-name: primary) { $palette-color: inspection.get-theme-color($theme, $palette-name); @return ( - // The color of the progress bar's active section. active-indicator-color: $palette-color, track-color: if( meta.type-of($palette-color) == color, @@ -54,8 +53,8 @@ $prefix: (mdc, linear-progress); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mdc/_linear-progress.scss b/src/material/progress-bar/_m3-progress-bar.scss similarity index 68% rename from src/material/core/tokens/m3/mdc/_linear-progress.scss rename to src/material/progress-bar/_m3-progress-bar.scss index 762e1af0e63b..dd7bda9673a4 100644 --- a/src/material/core/tokens/m3/mdc/_linear-progress.scss +++ b/src/material/progress-bar/_m3-progress-bar.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, linear-progress); +$prefix: (mat, progress-bar); /// Generates the tokens for MDC linear-progress /// @param {Map} $systems The MDC system tokens @@ -10,8 +10,14 @@ $prefix: (mdc, linear-progress); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of tokens for the MDC linear-progress @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'linear-progress-indicator', $systems, $exclude-hardcoded); + $tokens: ( + active-indicator-color: map.get($systems, md-sys-color, primary), + active-indicator-height: if($exclude-hardcoded, null, 4px), + track-color: map.get($systems, md-sys-color, surface-variant), + track-height: if($exclude-hardcoded, null, 4px), + track-shape: map.get($systems, md-sys-shape, corner-none) + ); + $variant-tokens: ( primary: (), // Default, no overrides needed secondary: ( @@ -28,6 +34,5 @@ $prefix: (mdc, linear-progress); ), ); - @return token-definition.namespace-tokens( - $prefix, ($mdc-tokens, $variant-tokens), $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/progress-bar/_progress-bar-theme.scss b/src/material/progress-bar/_progress-bar-theme.scss index 00db674780bf..50d554be6fa8 100644 --- a/src/material/progress-bar/_progress-bar-theme.scss +++ b/src/material/progress-bar/_progress-bar-theme.scss @@ -3,7 +3,7 @@ @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mdc/linear-progress' as tokens-mdc-linear-progress; +@use './m2-progress-bar'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-progress-bar. @@ -15,8 +15,8 @@ // Add default values for tokens not related to color, typography, or density. @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-unthemable-tokens() + m2-progress-bar.$prefix, + m2-progress-bar.get-unthemable-tokens() ); } } @@ -24,8 +24,8 @@ @mixin _palette-styles($theme, $palette-name) { @include token-utils.create-token-values-mixed( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-color-tokens($theme, $palette-name) + m2-progress-bar.$prefix, + m2-progress-bar.get-color-tokens($theme, $palette-name) ); } @@ -66,8 +66,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-linear-progress.$prefix, - tokens: tokens-mdc-linear-progress.get-token-slots(), + namespace: m2-progress-bar.$prefix, + tokens: m2-progress-bar.get-token-slots(), ), ); } @@ -106,6 +106,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $tokens: token-utils.get-tokens-for($tokens, tokens-mdc-linear-progress.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-linear-progress.$prefix, $tokens); + $tokens: token-utils.get-tokens-for($tokens, m2-progress-bar.$prefix, $options...); + @include token-utils.create-token-values(m2-progress-bar.$prefix, $tokens); } diff --git a/src/material/progress-bar/progress-bar.scss b/src/material/progress-bar/progress-bar.scss index 4e5c61a57dd7..f30c6fb8a5e5 100644 --- a/src/material/progress-bar/progress-bar.scss +++ b/src/material/progress-bar/progress-bar.scss @@ -1,8 +1,11 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mdc/linear-progress' as tokens-mdc-linear-progress; +@use './m2-progress-bar'; @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; +$token-prefix: m2-progress-bar.$prefix; +$token-slots: m2-progress-bar.get-token-slots(); + .mat-mdc-progress-bar { // Explicitly set to `block` since the browser defaults custom elements to `inline`. display: block; @@ -41,12 +44,9 @@ overflow-x: hidden; transition: opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - $track-variable: token-utils.get-token-variable(track-height); - $indicator-height-variable: token-utils.get-token-variable(active-indicator-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $track-variable: token-utils.slot(track-height); + $indicator-height-variable: token-utils.slot(active-indicator-height); height: max(#{$track-variable}, #{$indicator-height-variable}); } @@ -65,11 +65,8 @@ transform-origin: top left; transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - @include token-utils.create-token-slot(height, active-indicator-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(active-indicator-height); } .mdc-linear-progress--indeterminate & { @@ -89,12 +86,9 @@ animation: none; border-top-style: solid; - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - @include token-utils.create-token-slot(border-color, active-indicator-color); - @include token-utils.create-token-slot(border-top-width, active-indicator-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(active-indicator-color); + border-top-width: token-utils.slot(active-indicator-height); } } @@ -107,12 +101,9 @@ width: 100%; overflow: hidden; - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - @include token-utils.create-token-slot(height, track-height); - @include token-utils.create-token-slot(border-radius, track-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(track-height); + border-radius: token-utils.slot(track-shape); } } @@ -128,11 +119,8 @@ transform: rotate(180deg); animation: mdc-linear-progress-buffering 250ms infinite linear; - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - @include token-utils.create-token-slot(background-color, track-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(track-color); } @include cdk.high-contrast { @@ -149,11 +137,8 @@ flex: 0 1 100%; transition: flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - @include token-utils.create-token-slot(background-color, track-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(track-color); } } @@ -214,11 +199,8 @@ @keyframes mdc-linear-progress-buffering { from { - @include token-utils.use-tokens( - tokens-mdc-linear-progress.$prefix, - tokens-mdc-linear-progress.get-token-slots() - ) { - $track-variable: token-utils.get-token-variable(track-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $track-variable: token-utils.slot(track-height); transform: rotate(180deg) translateX(calc(#{$track-variable} * -2.5)); } } diff --git a/src/material/progress-bar/testing/BUILD.bazel b/src/material/progress-bar/testing/BUILD.bazel index 344c9a954598..352ad6a033b7 100644 --- a/src/material/progress-bar/testing/BUILD.bazel +++ b/src/material/progress-bar/testing/BUILD.bazel @@ -1,28 +1,32 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "testing", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk/coercion", "//src/cdk/testing", ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/progress-bar", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/progress-spinner/BUILD.bazel b/src/material/progress-spinner/BUILD.bazel index c0baf5708989..45cf1ebfc8ff 100644 --- a/src/material/progress-spinner/BUILD.bazel +++ b/src/material/progress-spinner/BUILD.bazel @@ -2,59 +2,95 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "progress-spinner", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [":progress_spinner_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-progress-spinner.scss", + ], deps = [ - "//src/cdk/platform", - "//src/material/core", - "@npm//@angular/common", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "progress_spinner_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-progress-spinner.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_progress-spinner-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "progress_spinner_scss", + name = "css", src = "progress-spinner.scss", deps = [ - "//src/material:sass_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/cdk:sass_lib", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "progress-spinner", + srcs = [ + "index.ts", + "module.ts", + "progress-spinner.ts", + "public-api.ts", + ], + assets = [ + "progress-spinner.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//src/cdk/platform", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "progress_spinner_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":progress-spinner", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/platform", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) @@ -72,7 +108,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":progress_spinner_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_list.scss b/src/material/progress-spinner/_m2-progress-spinner.scss similarity index 55% rename from src/material/core/tokens/m2/mat/_list.scss rename to src/material/progress-spinner/_m2-progress-spinner.scss index 2218d801ac1f..988718d42452 100644 --- a/src/material/core/tokens/m2/mat/_list.scss +++ b/src/material/progress-spinner/_m2-progress-spinner.scss @@ -1,22 +1,28 @@ -@use '../../token-definition'; -@use '../../../style/sass-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, list); +$prefix: (mat, progress-spinner); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. +// +// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. +// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in +// our CSS. @function get-unthemable-tokens() { @return ( - // active indicator themable with M3 - active-indicator-color: transparent, - active-indicator-shape: 4px, + active-indicator-width: 4px, + size: 48px, ); } // Tokens that can be configured through Angular Material's color theming API. -@function get-color-tokens($theme) { - @return (); +@function get-color-tokens($theme, $palette-name: primary) { + @return ( + active-indicator-color: inspection.get-theme-color($theme, $palette-name) + ); } // Tokens that can be configured through Angular Material's typography theming API. @@ -26,10 +32,7 @@ $prefix: (mat, list); // Tokens that can be configured through Angular Material's density theming API. @function get-density-tokens($theme) { - @return ( - list-item-leading-icon-start-space: 16px, - list-item-leading-icon-end-space: 32px, - ); + @return (); } // Combines the tokens generated by the above functions into a single map with placeholder values. @@ -37,8 +40,8 @@ $prefix: (mat, list); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mdc/_circular-progress.scss b/src/material/progress-spinner/_m3-progress-spinner.scss similarity index 70% rename from src/material/core/tokens/m3/mdc/_circular-progress.scss rename to src/material/progress-spinner/_m3-progress-spinner.scss index d9e19fb9c185..34d69a7ffdf9 100644 --- a/src/material/core/tokens/m3/mdc/_circular-progress.scss +++ b/src/material/progress-spinner/_m3-progress-spinner.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, circular-progress); +$prefix: (mat, progress-spinner); /// Generates the tokens for MDC circular-progress /// @param {Map} $systems The MDC system tokens @@ -10,8 +10,12 @@ $prefix: (mdc, circular-progress); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of tokens for the MDC circular-progress @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'circular-progress-indicator', $systems, $exclude-hardcoded); + $tokens: ( + active-indicator-color: map.get($systems, md-sys-color, primary), + active-indicator-width: if($exclude-hardcoded, null, 4px), + size: if($exclude-hardcoded, null, 48px) + ); + $variant-tokens: ( primary: (), // Default, no overrides needed secondary: ( @@ -25,6 +29,6 @@ $prefix: (mdc, circular-progress); ) ); - @return token-definition.namespace-tokens( - $prefix, ($mdc-tokens, $variant-tokens), $token-slots); + @return m3-utils.namespace( + $prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/progress-spinner/_progress-spinner-theme.scss b/src/material/progress-spinner/_progress-spinner-theme.scss index 70917492251a..081205b2600d 100644 --- a/src/material/progress-spinner/_progress-spinner-theme.scss +++ b/src/material/progress-spinner/_progress-spinner-theme.scss @@ -3,7 +3,7 @@ @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mdc/circular-progress' as tokens-mdc-circular-progress; +@use './m2-progress-spinner'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-progress-spinner. @@ -14,8 +14,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-unthemable-tokens() + m2-progress-spinner.$prefix, + m2-progress-spinner.get-unthemable-tokens() ); } } @@ -32,21 +32,21 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-color-tokens($theme, primary) + m2-progress-spinner.$prefix, + m2-progress-spinner.get-color-tokens($theme, primary) ); .mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-color-tokens($theme, accent) + m2-progress-spinner.$prefix, + m2-progress-spinner.get-color-tokens($theme, accent) ); } .mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-color-tokens($theme, warn) + m2-progress-spinner.$prefix, + m2-progress-spinner.get-color-tokens($theme, warn) ); } } @@ -67,8 +67,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-circular-progress.$prefix, - tokens: tokens-mdc-circular-progress.get-token-slots(), + namespace: m2-progress-spinner.$prefix, + tokens: m2-progress-spinner.get-token-slots(), ), ); } @@ -109,11 +109,11 @@ ); $mdc-circular-progress-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-circular-progress.$prefix, + m2-progress-spinner.$prefix, $options... ); @include token-utils.create-token-values( - tokens-mdc-circular-progress.$prefix, + m2-progress-spinner.$prefix, $mdc-circular-progress-tokens ); } diff --git a/src/material/progress-spinner/progress-spinner.scss b/src/material/progress-spinner/progress-spinner.scss index fe43cdee532c..574cf184c4b6 100644 --- a/src/material/progress-spinner/progress-spinner.scss +++ b/src/material/progress-spinner/progress-spinner.scss @@ -1,6 +1,6 @@ @use '@angular/cdk'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mdc/circular-progress' as tokens-mdc-circular-progress; +@use './m2-progress-spinner'; .mat-mdc-progress-spinner { // Explicitly set to `block` since the browser defaults custom elements to `inline`. @@ -18,10 +18,10 @@ circle { @include token-utils.use-tokens( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-token-slots() + m2-progress-spinner.$prefix, + m2-progress-spinner.get-token-slots() ) { - @include token-utils.create-token-slot(stroke-width, active-indicator-width); + stroke-width: token-utils.slot(active-indicator-width); } } @@ -94,10 +94,10 @@ .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle, .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic { @include token-utils.use-tokens( - tokens-mdc-circular-progress.$prefix, - tokens-mdc-circular-progress.get-token-slots() + m2-progress-spinner.$prefix, + m2-progress-spinner.get-token-slots() ) { - @include token-utils.create-token-slot(stroke, active-indicator-color); + stroke: token-utils.slot(active-indicator-color); } @include cdk.high-contrast { diff --git a/src/material/progress-spinner/progress-spinner.ts b/src/material/progress-spinner/progress-spinner.ts index c517d3e11c55..ccd9bf730880 100644 --- a/src/material/progress-spinner/progress-spinner.ts +++ b/src/material/progress-spinner/progress-spinner.ts @@ -84,8 +84,8 @@ const BASE_STROKE_WIDTH = 10; '[class.mdc-circular-progress--indeterminate]': 'mode === "indeterminate"', '[style.width.px]': 'diameter', '[style.height.px]': 'diameter', - '[style.--mdc-circular-progress-size]': 'diameter + "px"', - '[style.--mdc-circular-progress-active-indicator-width]': 'diameter + "px"', + '[style.--mat-progress-spinner-size]': 'diameter + "px"', + '[style.--mat-progress-spinner-active-indicator-width]': 'diameter + "px"', '[attr.aria-valuemin]': '0', '[attr.aria-valuemax]': '100', '[attr.aria-valuenow]': 'mode === "determinate" ? value : null', diff --git a/src/material/progress-spinner/testing/BUILD.bazel b/src/material/progress-spinner/testing/BUILD.bazel index 210f2f380c90..151dee4f01bf 100644 --- a/src/material/progress-spinner/testing/BUILD.bazel +++ b/src/material/progress-spinner/testing/BUILD.bazel @@ -1,14 +1,16 @@ -load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( +ng_project( name = "testing", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), deps = [ + "//:node_modules/@angular/core", "//src/cdk/coercion", "//src/cdk/testing", "//src/material/progress-spinner", @@ -20,15 +22,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/progress-spinner", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/radio/BUILD.bazel b/src/material/radio/BUILD.bazel index a96c2a5f4e0f..4d83d2a0eae3 100644 --- a/src/material/radio/BUILD.bazel +++ b/src/material/radio/BUILD.bazel @@ -2,44 +2,93 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "radio", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":radio_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-radio.scss", + ], deps = [ - "//src/cdk/a11y", - "//src/cdk/collections", - "//src/material/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-radio.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_radio-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_library( - name = "radio_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "radio_common", + srcs = ["_radio-common.scss"], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "radio_scss", + name = "css", src = "radio.scss", deps = [ - ":radio_scss_lib", - "//src/material/core:core_scss_lib", + ":m2", + ":radio_common", + "//src/material/core/style:layout_common", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "radio", + srcs = [ + "index.ts", + "module.ts", + "public-api.ts", + "radio.ts", + ], + assets = [ + "radio.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/cdk/a11y", + "//src/cdk/collections", + "//src/material/core", ], ) @@ -50,7 +99,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":radio_scss_lib"], + srcs = [":theme"], ) filegroup( @@ -62,17 +111,19 @@ filegroup( # Testing ########### -ng_test_library( +ts_project( name = "radio_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":radio", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/core/tokens/m2/mdc/_radio.scss b/src/material/radio/_m2-radio.scss similarity index 59% rename from src/material/core/tokens/m2/mdc/_radio.scss rename to src/material/radio/_m2-radio.scss index b6b99277605c..55fa86124b7d 100644 --- a/src/material/core/tokens/m2/mdc/_radio.scss +++ b/src/material/radio/_m2-radio.scss @@ -1,20 +1,16 @@ @use 'sass:map'; -@use '../../../m2/palette' as m2-palette; -@use '../../../m2/theming' as m2-theming; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/m2/palette' as m2-palette; +@use '../core/m2/theming' as m2-theming; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, radio); +$prefix: (mat, radio); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( disabled-selected-icon-opacity: 0.38, @@ -23,21 +19,6 @@ $prefix: (mdc, radio); // determines the size of the radio button itself and there are internal // tests who don't configure the theme correctly. state-layer-size: 40px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - selected-focus-state-layer-color: null, - selected-focus-state-layer-opacity: null, - selected-hover-state-layer-color: null, - selected-hover-state-layer-opacity: null, - selected-pressed-state-layer-color: null, - selected-pressed-state-layer-opacity: null, - unselected-focus-state-layer-color: null, - unselected-focus-state-layer-opacity: null, - unselected-hover-state-layer-color: null, - unselected-hover-state-layer-opacity: null, - unselected-pressed-state-layer-color: null, - unselected-pressed-state-layer-opacity: null, ); } @@ -48,22 +29,32 @@ $prefix: (mdc, radio); $icon-color: m2-theming.get-color-from-palette(m2-palette.$gray-palette, if($is-dark, 200, 900)); @return ( + checked-ripple-color: inspection.get-theme-color($theme, $palette-name, default), + disabled-label-color: inspection.get-theme-color($theme, foreground, disabled-text), disabled-selected-icon-color: inspection.get-theme-color($theme, foreground, icon, 1), disabled-unselected-icon-color: inspection.get-theme-color($theme, foreground, icon, 1), - unselected-hover-icon-color: $icon-color, - unselected-focus-icon-color: $icon-color, - unselected-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54), - unselected-pressed-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54), + label-text-color: inspection.get-theme-color($theme, foreground, text), + ripple-color: inspection.get-theme-color($theme, foreground, base), selected-focus-icon-color: $palette-color, selected-hover-icon-color: $palette-color, selected-icon-color: $palette-color, selected-pressed-icon-color: $palette-color, + unselected-focus-icon-color: $icon-color, + unselected-hover-icon-color: $icon-color, + unselected-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54), + unselected-pressed-icon-color: inspection.get-theme-color($theme, foreground, icon, 0.54), ); } // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { - @return (); + @return ( + label-text-font: inspection.get-theme-typography($theme, body-2, font-family), + label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), + label-text-size: inspection.get-theme-typography($theme, body-2, font-size), + label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) + ); } // Tokens that can be configured through Angular Material's density theming API. @@ -77,7 +68,8 @@ $prefix: (mdc, radio); -1: 36px, -2: 32px, -3: 28px, - ), $scale) + ), $scale), + touch-target-display: if($scale < -1, none, block) ); } @@ -85,9 +77,9 @@ $prefix: (mdc, radio); // This is used to create token slots. @function get-token-slots() { @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/radio/_m3-radio.scss b/src/material/radio/_m3-radio.scss new file mode 100644 index 000000000000..b1f01204edf8 --- /dev/null +++ b/src/material/radio/_m3-radio.scss @@ -0,0 +1,66 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, radio); + +/// Generates custom tokens for the mat-radio. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-radio +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + ripple-color: map.get($systems, md-sys-color, on-surface), + checked-ripple-color: map.get($systems, md-sys-color, primary), + disabled-label-color: + sass-utils.safe-color-change(map.get($systems, md-sys-color, on-surface), $alpha: 0.38), + label-text-color: map.get($systems, md-sys-color, on-surface), + label-text-font: map.get($systems, md-sys-typescale, body-medium-font), + label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), + label-text-size: map.get($systems, md-sys-typescale, body-medium-size), + label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), + label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + disabled-selected-icon-color: map.get($systems, md-sys-color, on-surface), + disabled-selected-icon-opacity: if($exclude-hardcoded, null, 0.38), + disabled-unselected-icon-color: map.get($systems, md-sys-color, on-surface), + disabled-unselected-icon-opacity: if($exclude-hardcoded, null, 0.38), + selected-focus-icon-color: map.get($systems, md-sys-color, primary), + selected-hover-icon-color: map.get($systems, md-sys-color, primary), + selected-icon-color: map.get($systems, md-sys-color, primary), + selected-pressed-icon-color: map.get($systems, md-sys-color, primary), + state-layer-size: if($exclude-hardcoded, null, 40px), + unselected-focus-icon-color: map.get($systems, md-sys-color, on-surface), + unselected-hover-icon-color: map.get($systems, md-sys-color, on-surface), + unselected-icon-color: map.get($systems, md-sys-color, on-surface-variant), + unselected-pressed-icon-color: map.get($systems, md-sys-color, on-surface), + ); + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + checked-ripple-color: map.get($systems, md-sys-color, secondary), + selected-focus-icon-color: map.get($systems, md-sys-color, secondary), + selected-hover-icon-color: map.get($systems, md-sys-color, secondary), + selected-icon-color: map.get($systems, md-sys-color, secondary), + selected-pressed-icon-color: map.get($systems, md-sys-color, secondary), + ), + tertiary: ( + checked-ripple-color: map.get($systems, md-sys-color, tertiary), + selected-focus-icon-color: map.get($systems, md-sys-color, tertiary), + selected-hover-icon-color: map.get($systems, md-sys-color, tertiary), + selected-icon-color: map.get($systems, md-sys-color, tertiary), + selected-pressed-icon-color: map.get($systems, md-sys-color, tertiary), + ), + error: ( + checked-ripple-color: map.get($systems, md-sys-color, error), + selected-focus-icon-color: map.get($systems, md-sys-color, error), + selected-hover-icon-color: map.get($systems, md-sys-color, error), + selected-icon-color: map.get($systems, md-sys-color, error), + selected-pressed-icon-color: map.get($systems, md-sys-color, error), + ), + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/radio/_radio-common.scss b/src/material/radio/_radio-common.scss index 20ce68945298..c0836cd35482 100644 --- a/src/material/radio/_radio-common.scss +++ b/src/material/radio/_radio-common.scss @@ -1,8 +1,11 @@ -@use '../core/tokens/m2/mdc/radio' as tokens-mdc-radio; +@use './m2-radio'; @use '../core/tokens/token-utils'; $_icon-size: 20px; +$token-prefix: m2-radio.$prefix; +$token-slots: m2-radio.get-token-slots(); + @function _enter-transition($name) { @return $name 90ms cubic-bezier(0, 0, 0.2, 1); } @@ -13,8 +16,6 @@ $_icon-size: 20px; // Structural styles for a radio button. Shared with the selection list. @mixin radio-structure($is-interactive) { - $tokens: tokens-mdc-radio.$prefix, tokens-mdc-radio.get-token-slots(); - .mdc-radio { display: inline-block; position: relative; @@ -28,8 +29,8 @@ $_icon-size: 20px; // Removing it will likely lead to screenshot diffs. will-change: opacity, transform, border-color, color; - @include token-utils.use-tokens($tokens...) { - $size-token: token-utils.get-token-variable(state-layer-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $size-token: token-utils.slot(state-layer-size); padding: calc((#{$size-token} - #{$_icon-size}) / 2); } @@ -44,8 +45,8 @@ $_icon-size: 20px; &:hover > .mdc-radio__native-control:not([disabled]) ~ .mdc-radio__background { > .mdc-radio__outer-circle { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(border-color, unselected-hover-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(unselected-hover-icon-color); } } } @@ -53,16 +54,16 @@ $_icon-size: 20px; &:hover > .mdc-radio__native-control:enabled:checked + .mdc-radio__background { > .mdc-radio__outer-circle, > .mdc-radio__inner-circle { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(border-color, selected-hover-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(selected-hover-icon-color); } } } &:active > .mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background { > .mdc-radio__outer-circle { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(border-color, unselected-pressed-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(unselected-pressed-icon-color); } } } @@ -70,8 +71,8 @@ $_icon-size: 20px; &:active > .mdc-radio__native-control:enabled:checked + .mdc-radio__background { > .mdc-radio__outer-circle, > .mdc-radio__inner-circle { - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(border-color, selected-pressed-icon-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(selected-pressed-icon-color); } } } @@ -94,8 +95,8 @@ $_icon-size: 20px; content: ''; transition: _exit-transition(opacity), _exit-transition(transform); - @include token-utils.use-tokens($tokens...) { - $size: token-utils.get-token-variable(state-layer-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $size: token-utils.slot(state-layer-size); $offset: calc(-1 * (#{$size} - #{$_icon-size}) / 2); width: $size; height: $size; @@ -143,9 +144,9 @@ $_icon-size: 20px; cursor: inherit; z-index: 1; - @include token-utils.use-tokens($tokens...) { - @include token-utils.create-token-slot(width, state-layer-size); - @include token-utils.create-token-slot(height, state-layer-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(state-layer-size); + height: token-utils.slot(state-layer-size); } &:checked, &:disabled { @@ -171,10 +172,10 @@ $_icon-size: 20px; } &:disabled { - @include token-utils.use-tokens($tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &:not(:checked) + .mdc-radio__background > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color); - @include token-utils.create-token-slot(opacity, disabled-unselected-icon-opacity); + border-color: token-utils.slot(disabled-unselected-icon-color); + opacity: token-utils.slot(disabled-unselected-icon-opacity); } + .mdc-radio__background { @@ -182,23 +183,23 @@ $_icon-size: 20px; > .mdc-radio__inner-circle, > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, disabled-selected-icon-color); - @include token-utils.create-token-slot(opacity, disabled-selected-icon-opacity); + border-color: token-utils.slot(disabled-selected-icon-color); + opacity: token-utils.slot(disabled-selected-icon-opacity); } } } } &:enabled { - @include token-utils.use-tokens($tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &:not(:checked) + .mdc-radio__background > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, unselected-icon-color); + border-color: token-utils.slot(unselected-icon-color); } &:checked + .mdc-radio__background { > .mdc-radio__outer-circle, > .mdc-radio__inner-circle { - @include token-utils.create-token-slot(border-color, selected-icon-color); + border-color: token-utils.slot(selected-icon-color); } } @@ -206,7 +207,7 @@ $_icon-size: 20px; &:focus:checked + .mdc-radio__background { > .mdc-radio__inner-circle, > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, selected-focus-icon-color); + border-color: token-utils.slot(selected-focus-icon-color); } } } @@ -223,12 +224,12 @@ $_icon-size: 20px; &.mat-mdc-radio-disabled-interactive .mdc-radio--disabled { pointer-events: auto; - @include token-utils.use-tokens($tokens...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { // stylelint-disable selector-combinator-space-before .mdc-radio__native-control:not(:checked) + .mdc-radio__background > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, disabled-unselected-icon-color); - @include token-utils.create-token-slot(opacity, disabled-unselected-icon-opacity); + border-color: token-utils.slot(disabled-unselected-icon-color); + opacity: token-utils.slot(disabled-unselected-icon-opacity); } // stylelint-enable selector-combinator-space-before @@ -237,8 +238,8 @@ $_icon-size: 20px; .mdc-radio__native-control + .mdc-radio__background { > .mdc-radio__inner-circle, > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, disabled-selected-icon-color); - @include token-utils.create-token-slot(opacity, disabled-selected-icon-opacity); + border-color: token-utils.slot(disabled-selected-icon-color); + opacity: token-utils.slot(disabled-selected-icon-opacity); } } } diff --git a/src/material/radio/_radio-theme.scss b/src/material/radio/_radio-theme.scss index 74a7a386f64a..ac4d40e166b0 100644 --- a/src/material/radio/_radio-theme.scss +++ b/src/material/radio/_radio-theme.scss @@ -4,8 +4,7 @@ @use '../core/theming/validation'; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mdc/radio' as tokens-mdc-radio; -@use '../core/tokens/m2/mat/radio' as tokens-mat-radio; +@use './m2-radio'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-radio. @@ -16,13 +15,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-unthemable-tokens() - ); + m2-radio.$prefix, m2-radio.get-unthemable-tokens()); } } } @@ -39,34 +32,22 @@ .mat-mdc-radio-button { &.mat-primary { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme, primary) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-color-tokens($theme, primary) + m2-radio.$prefix, + m2-radio.get-color-tokens($theme, primary) ); } &.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-color-tokens($theme) + m2-radio.$prefix, + m2-radio.get-color-tokens($theme) ); } &.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-color-tokens($theme, warn) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-color-tokens($theme, warn) + m2-radio.$prefix, + m2-radio.get-color-tokens($theme, warn) ); } } @@ -81,12 +62,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-typography-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-typography-tokens($theme) + m2-radio.$prefix, + m2-radio.get-typography-tokens($theme) ); } } @@ -102,12 +79,8 @@ @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-radio.$prefix, - tokens-mdc-radio.get-density-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-radio.$prefix, - tokens-mat-radio.get-density-tokens($theme) + m2-radio.$prefix, + m2-radio.get-density-tokens($theme) ); } } @@ -117,12 +90,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-radio.$prefix, - tokens: tokens-mdc-radio.get-token-slots(), - ), - ( - namespace: tokens-mat-radio.$prefix, - tokens: tokens-mat-radio.get-token-slots(), + namespace: m2-radio.$prefix, + tokens: m2-radio.get-token-slots(), ), ); } @@ -161,8 +130,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-radio-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-radio.$prefix, $options...); - $mat-radio-tokens: token-utils.get-tokens-for($tokens, tokens-mat-radio.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-radio.$prefix, $mdc-radio-tokens); - @include token-utils.create-token-values(tokens-mat-radio.$prefix, $mat-radio-tokens); + $mat-radio-tokens: token-utils.get-tokens-for($tokens, m2-radio.$prefix, $options...); + @include token-utils.create-token-values(m2-radio.$prefix, $mat-radio-tokens); } diff --git a/src/material/radio/radio.scss b/src/material/radio/radio.scss index 0c8416fba55a..a240eb54a884 100644 --- a/src/material/radio/radio.scss +++ b/src/material/radio/radio.scss @@ -1,45 +1,47 @@ -@use '../core/tokens/m2/mat/radio' as tokens-mat-radio; -@use '../core/tokens/m2/mdc/radio' as tokens-mdc-radio; +@use './m2-radio'; @use '../core/tokens/token-utils'; @use '../core/style/layout-common'; @use './radio-common'; +$token-prefix: m2-radio.$prefix; +$token-slots: m2-radio.get-token-slots(); + .mat-mdc-radio-button { -webkit-tap-highlight-color: transparent; @include radio-common.radio-structure(true); @include radio-common.radio-noop-animations(); - @include token-utils.use-tokens(tokens-mat-radio.$prefix, tokens-mat-radio.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-radio__background::before { - @include token-utils.create-token-slot(background-color, ripple-color); + background-color: token-utils.slot(ripple-color); } &.mat-mdc-radio-checked { .mat-ripple-element, .mdc-radio__background::before { - @include token-utils.create-token-slot(background-color, checked-ripple-color); + background-color: token-utils.slot(checked-ripple-color); } } &.mat-mdc-radio-disabled-interactive .mdc-radio--disabled { .mat-ripple-element, .mdc-radio__background::before { - @include token-utils.create-token-slot(background-color, ripple-color); + background-color: token-utils.slot(ripple-color); } } .mat-internal-form-field { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(font-weight, label-text-weight); + color: token-utils.slot(label-text-color); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + font-weight: token-utils.slot(label-text-weight); } .mdc-radio--disabled + label { - @include token-utils.create-token-slot(color, disabled-label-color); + color: token-utils.slot(disabled-label-color); } } @@ -61,10 +63,10 @@ // We don't inherit the border focus style from MDC since we don't use their ripple. // Instead we need to replicate it here. - @include token-utils.use-tokens(tokens-mdc-radio.$prefix, tokens-mdc-radio.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-radio > .mdc-radio__native-control:focus:enabled:not(:checked) { & ~ .mdc-radio__background > .mdc-radio__outer-circle { - @include token-utils.create-token-slot(border-color, unselected-focus-icon-color); + border-color: token-utils.slot(unselected-focus-icon-color); } } } @@ -95,8 +97,8 @@ width: 48px; transform: translate(-50%, -50%); - @include token-utils.use-tokens(tokens-mat-radio.$prefix, tokens-mat-radio.get-token-slots()) { - @include token-utils.create-token-slot(display, touch-target-display); + @include token-utils.use-tokens($token-prefix, $token-slots) { + display: token-utils.slot(touch-target-display); } [dir='rtl'] & { diff --git a/src/material/radio/testing/BUILD.bazel b/src/material/radio/testing/BUILD.bazel index 491e599078eb..99266e820cdb 100644 --- a/src/material/radio/testing/BUILD.bazel +++ b/src/material/radio/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,23 +9,25 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/radio", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/schematics/BUILD.bazel b/src/material/schematics/BUILD.bazel index 67380d0ded2e..1706e278ff2c 100644 --- a/src/material/schematics/BUILD.bazel +++ b/src/material/schematics/BUILD.bazel @@ -1,8 +1,16 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "jasmine_node_test", "pkg_npm", "ts_library") +load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config") +load("//tools:defaults2.bzl", "jasmine_test", "npm_package", "ts_project") +load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") package(default_visibility = ["//visibility:public"]) +npm_link_package( + name = "node_modules/@angular/cdk/schematics", + src = "//src/cdk/schematics:npm_package", + root_package = package_name(), +) + copy_to_bin( name = "collection_assets", srcs = [ @@ -25,7 +33,29 @@ copy_to_bin( ]), ) -ts_library( +copy_to_bin( + name = "package_json", + srcs = ["package.json"], +) + +rules_js_tsconfig( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:node_modules/@types/node", + ], +) + +rules_js_tsconfig( + name = "tsconfig-test", + src = "tsconfig-test.json", + deps = [ + "tsconfig.json", + "//:node_modules/@types/jasmine", + ], +) + +ts_project( name = "schematics", srcs = glob( ["**/*.ts"], @@ -35,72 +65,46 @@ ts_library( "ng-generate/*/files/**/*.ts", ], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", - tsconfig = ":tsconfig.json", + tsconfig = ":tsconfig", deps = [ - "//src/cdk/schematics", - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@schematics/angular", - # TODO(devversion): Only include jasmine for test sources (See: tsconfig types). - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//rxjs", - "@npm//tslint", - "@npm//typescript", + ":node_modules/@angular/cdk/schematics", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@schematics/angular", + "//:node_modules/rxjs", + "//:node_modules/tslint", + "//:node_modules/typescript", ], ) -ts_library( +ts_project( name = "paths", testonly = True, srcs = ["paths.ts"], data = [ ":collection_assets", ], - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", - tsconfig = ":tsconfig.json", + tsconfig = ":tsconfig", deps = [ - "@npm//@bazel/runfiles", + "//:node_modules/@bazel/runfiles", ], ) # This package is intended to be combined into the main @angular/material package as a dep. -pkg_npm( +npm_package( name = "npm_package", - srcs = ["package.json"], - nested_packages = [ - "//src/material/schematics/ng-generate/theme-color:npm_package", - ], - deps = [ + srcs = [ + "package.json", ":collection_assets", ":ng_generate_assets", ":schema_assets", ":schematics", + "//src/material/schematics/ng-generate/theme-color:npm_package_assets", "//src/material/schematics/ng-update:ng_update_index", ], ) -### Testing rules - -jasmine_node_test( - name = "unit_tests", - srcs = [":unit_test_sources"], - data = [ - ":collection_assets", - ":ng_generate_assets", - ":schema_assets", - ":schematics_test_cases", - ], -) - -ts_library( +ts_project( name = "unit_test_sources", testonly = True, srcs = glob( @@ -110,23 +114,19 @@ ts_library( "ng-generate/*/files/**/*.spec.ts", ], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", - prodmode_module = "commonjs", - tsconfig = ":tsconfig.json", + tsconfig = ":tsconfig-test", deps = [ + ":node_modules/@angular/cdk/schematics", ":paths", ":schematics", - "//src/cdk/schematics", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/fs-extra", + "//:node_modules/@types/jasmine", + "//:node_modules/@types/node", + "//:node_modules/fs-extra", "//src/cdk/schematics/testing", - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@schematics/angular", - "@npm//@types/fs-extra", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//fs-extra", ], ) @@ -138,3 +138,16 @@ filegroup( "ng-update/test-cases/**/*_expected_output.ts", ]), ) + +jasmine_test( + name = "unit_tests", + data = [ + ":collection_assets", + ":ng_generate_assets", + ":schema_assets", + ":schematics", + ":schematics_test_cases", + ":unit_test_sources", + "//src/material/schematics:package_json", + ], +) diff --git a/src/material/schematics/migration-utilities/BUILD.bazel b/src/material/schematics/migration-utilities/BUILD.bazel index f9f9409ed5bb..f881da5b21c8 100644 --- a/src/material/schematics/migration-utilities/BUILD.bazel +++ b/src/material/schematics/migration-utilities/BUILD.bazel @@ -1,36 +1,35 @@ -load("//tools:defaults.bzl", "jasmine_node_test", "spec_bundle", "ts_library") +load("//tools:defaults2.bzl", "jasmine_test", "ts_project") package(default_visibility = ["//visibility:public"]) -ts_library( +ts_project( name = "migration-utilities", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), + tsconfig = "//src/material/schematics:tsconfig", deps = [ - "@npm//typescript", + "//:node_modules/typescript", ], ) -ts_library( +ts_project( name = "unit_tests_lib", testonly = True, srcs = glob(["**/*.spec.ts"] + ["rules/components/test-setup-helper.ts"]), + tsconfig = "//src/material/schematics:tsconfig-test", deps = [ ":migration-utilities", - "@npm//@types/jasmine", - "@npm//typescript", + "//:node_modules/@types/jasmine", + "//:node_modules/typescript", ], ) -spec_bundle( - name = "unit_tests_bundle", - platform = "cjs-legacy", - deps = [":unit_tests_lib"], -) - -jasmine_node_test( +jasmine_test( name = "unit_tests", - deps = [":unit_tests_bundle"], + data = [ + ":unit_tests_lib", + "//src/material/schematics:package_json", + ], ) diff --git a/src/material/schematics/ng-add/index.spec.ts b/src/material/schematics/ng-add/index.spec.ts index 1b394d54831a..14696f621391 100644 --- a/src/material/schematics/ng-add/index.spec.ts +++ b/src/material/schematics/ng-add/index.spec.ts @@ -7,7 +7,7 @@ import { getProjectStyleFile, getProjectTargetOptions, } from '@angular/cdk/schematics'; -import {createTestApp, createTestLibrary, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, createTestLibrary, getFileContent} from '../../../cdk/schematics/testing'; import {getWorkspace} from '@schematics/angular/utility/workspace'; import {COLLECTION_PATH} from '../paths'; import {addPackageToPackageJson} from './package-config'; diff --git a/src/material/schematics/ng-generate/address-form/index.spec.ts b/src/material/schematics/ng-generate/address-form/index.spec.ts index c1a334de9725..f0c5e08b723d 100644 --- a/src/material/schematics/ng-generate/address-form/index.spec.ts +++ b/src/material/schematics/ng-generate/address-form/index.spec.ts @@ -1,5 +1,5 @@ import {SchematicTestRunner} from '@angular-devkit/schematics/testing'; -import {createTestApp, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, getFileContent} from '../../../../cdk/schematics/testing'; import {COLLECTION_PATH} from '../../paths'; import {Schema} from './schema'; diff --git a/src/material/schematics/ng-generate/dashboard/index.spec.ts b/src/material/schematics/ng-generate/dashboard/index.spec.ts index 97f7792abf2f..1d867252f67f 100644 --- a/src/material/schematics/ng-generate/dashboard/index.spec.ts +++ b/src/material/schematics/ng-generate/dashboard/index.spec.ts @@ -1,5 +1,5 @@ import {SchematicTestRunner} from '@angular-devkit/schematics/testing'; -import {createTestApp, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, getFileContent} from '../../../../cdk/schematics/testing'; import {COLLECTION_PATH} from '../../paths'; import {Schema} from './schema'; diff --git a/src/material/schematics/ng-generate/navigation/index.spec.ts b/src/material/schematics/ng-generate/navigation/index.spec.ts index e17ce5b14e92..266db2943c87 100644 --- a/src/material/schematics/ng-generate/navigation/index.spec.ts +++ b/src/material/schematics/ng-generate/navigation/index.spec.ts @@ -1,5 +1,5 @@ import {SchematicTestRunner, UnitTestTree} from '@angular-devkit/schematics/testing'; -import {createTestApp, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, getFileContent} from '../../../../cdk/schematics/testing'; import {COLLECTION_PATH} from '../../paths'; import {Schema} from './schema'; diff --git a/src/material/schematics/ng-generate/table/index.spec.ts b/src/material/schematics/ng-generate/table/index.spec.ts index dbdf545983bd..45887d312fd4 100644 --- a/src/material/schematics/ng-generate/table/index.spec.ts +++ b/src/material/schematics/ng-generate/table/index.spec.ts @@ -1,5 +1,5 @@ import {SchematicTestRunner} from '@angular-devkit/schematics/testing'; -import {createTestApp, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, getFileContent} from '../../../../cdk/schematics/testing'; import {COLLECTION_PATH} from '../../paths'; import {Schema} from './schema'; diff --git a/src/material/schematics/ng-generate/theme-color/BUILD.bazel b/src/material/schematics/ng-generate/theme-color/BUILD.bazel index dae38aaf9cba..64fcc19ab2f6 100644 --- a/src/material/schematics/ng-generate/theme-color/BUILD.bazel +++ b/src/material/schematics/ng-generate/theme-color/BUILD.bazel @@ -1,5 +1,6 @@ load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin") -load("//tools:defaults.bzl", "esbuild", "jasmine_node_test", "pkg_npm", "spec_bundle", "ts_library") +load("//tools:defaults.bzl", "esbuild") +load("//tools:defaults2.bzl", "jasmine_test", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -7,24 +8,25 @@ STATIC_ASSETS = [ "schema.json", ] -ts_library( +ts_project( name = "m3_theme_lib", srcs = glob( ["**/*.ts"], exclude = ["**/*.spec.ts"] + ["rules/components/test-setup-helper.ts"], ), + tsconfig = "//src/material/schematics:tsconfig", deps = [ - "//src/cdk/schematics", - "@npm//@angular-devkit/schematics", - "@npm//@material/material-color-utilities", - "@npm//@types/node", - "@npm//sass", - "@npm//typescript", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@material/material-color-utilities", + "//:node_modules/@types/node", + "//:node_modules/sass", + "//:node_modules/typescript", + "//src/material/schematics:node_modules/@angular/cdk/schematics", ], ) esbuild( - name = "m3_theme_bundle", + name = "index_bundled", entry_point = ":index.ts", external = [ "@angular/cdk/schematics", @@ -44,65 +46,56 @@ esbuild( ], ) -pkg_npm( - name = "npm_package", - srcs = STATIC_ASSETS, - deps = [":m3_theme_bundle"], +filegroup( + name = "npm_package_assets", + srcs = STATIC_ASSETS + [":index_bundled"], ) ######################################## # Testing configuration # ######################################## -ts_library( +ts_project( name = "unit_tests_lib", testonly = True, - srcs = glob(["**/*.spec.ts"] + ["rules/components/test-setup-helper.ts"]), - devmode_module = "commonjs", + srcs = glob([ + "**/*.spec.ts", + "index_bundled.d.ts", + ] + ["rules/components/test-setup-helper.ts"]), + data = [":index_bundled"], + tsconfig = "//src/material/schematics:tsconfig-test", deps = [ ":m3_theme_lib", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@bazel/runfiles", + "//:node_modules/@material/material-color-utilities", + "//:node_modules/sass", "//src/cdk/schematics/testing", "//tools/sass:sass_lib", - "@npm//@angular-devkit/schematics", - "@npm//@bazel/runfiles", - "@npm//@material/material-color-utilities", - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//sass", ], ) -spec_bundle( - name = "unit_tests_bundle", - # Exclude the `node` devkit entry-point to avoid bundling native modules like - # `chokidar` and `fsevents`. These rely on native bindings and break with ESBuild. - external = ["@angular-devkit/core/node"], - platform = "node", - target = "es2020", - deps = [":unit_tests_lib"], -) - copy_to_bin( name = "unit_tests_assets", testonly = True, srcs = STATIC_ASSETS, ) -jasmine_node_test( +jasmine_test( name = "unit_tests", data = [ - ":m3_theme_bundle", ":unit_tests_assets", + ":unit_tests_lib", + "//src/material:sass_lib", + "//src/material-experimental:sass_lib", "//src/material/schematics:collection_assets", "//src/material/schematics:ng_generate_assets", + "//src/material/schematics:package_json", ], - shard_count = 10, - deps = [ - ":unit_tests_bundle", - # Runtime dependencies needed by the test and actual migration sources. These need - # to be specified explicitly here because they are not captured by the bundling. - "@npm//@schematics/angular", + no_copy_to_bin = [ + # TODO(devversion): Ensure Sass is copied to `bazel-bin`. "//src/material:sass_lib", "//src/material-experimental:sass_lib", ], + shard_count = 10, ) diff --git a/src/material/schematics/ng-generate/theme-color/index.spec.ts b/src/material/schematics/ng-generate/theme-color/index.spec.ts index 82e5e672b486..cae1ad3c9b96 100644 --- a/src/material/schematics/ng-generate/theme-color/index.spec.ts +++ b/src/material/schematics/ng-generate/theme-color/index.spec.ts @@ -1,17 +1,14 @@ import {SchematicTestRunner, UnitTestTree} from '@angular-devkit/schematics/testing'; -import {createTestApp} from '@angular/cdk/schematics/testing'; +import {createTestApp} from '../../../../cdk/schematics/testing'; import {runfiles} from '@bazel/runfiles'; import {compileString} from 'sass'; import * as path from 'path'; import {createLocalAngularPackageImporter} from '../../../../../tools/sass/local-sass-importer'; -import {ColorPalettes, generateSCSSTheme, getColorPalettes} from './index'; +import {ColorPalettes, generateSCSSTheme, getColorPalettes} from './index_bundled'; import {Schema} from './schema'; -// Note: For Windows compatibility, we need to resolve the directory paths through runfiles -// which are guaranteed to reside in the source tree. -const testDir = runfiles.resolvePackageRelative('../theme-color'); -const packagesDir = path.join(runfiles.resolveWorkspaceRelative('src/cdk/_index.scss'), '../..'); +const packagesDir = path.resolve('../../../..'); const localPackageSassImporter = createLocalAngularPackageImporter(packagesDir); describe('material-theme-color-schematic', () => { @@ -65,7 +62,7 @@ describe('material-theme-color-schematic', () => { } `, { - loadPaths: [testDir], + loadPaths: [], importers: [localPackageSassImporter], }, ).css.toString(); @@ -91,7 +88,7 @@ describe('material-theme-color-schematic', () => { } }); - describe('with scss output', async () => { + describe('with scss output', () => { it('should generate theme file', async () => { const tree = await runM3ThemeSchematic(runner, { primaryColor: '#984061', @@ -418,7 +415,7 @@ describe('material-theme-color-schematic', () => { }); }); - describe('with CSS output', async () => { + describe('with CSS output', () => { it('should generate m3 theme CSS file', async () => { const tree = await runM3ThemeSchematic(runner, { primaryColor: '#984061', diff --git a/src/material/schematics/ng-generate/theme-color/index_bundled.d.ts b/src/material/schematics/ng-generate/theme-color/index_bundled.d.ts new file mode 100644 index 000000000000..07066146182c --- /dev/null +++ b/src/material/schematics/ng-generate/theme-color/index_bundled.d.ts @@ -0,0 +1,11 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +// Represents the bundled `index.ts` file. We bundle because of the external ESM +// dependency while schematics are executed as CommonJS. +export * from './index'; diff --git a/src/material/schematics/ng-generate/tree/index.spec.ts b/src/material/schematics/ng-generate/tree/index.spec.ts index d4d88822ba7a..65f1affbf815 100644 --- a/src/material/schematics/ng-generate/tree/index.spec.ts +++ b/src/material/schematics/ng-generate/tree/index.spec.ts @@ -1,5 +1,5 @@ import {SchematicTestRunner} from '@angular-devkit/schematics/testing'; -import {createTestApp, getFileContent} from '@angular/cdk/schematics/testing'; +import {createTestApp, getFileContent} from '../../../../cdk/schematics/testing'; import {COLLECTION_PATH} from '../../paths'; import {Schema} from './schema'; diff --git a/src/material/schematics/ng-update/BUILD.bazel b/src/material/schematics/ng-update/BUILD.bazel index d6eb41c5c2dc..f3245ae312ef 100644 --- a/src/material/schematics/ng-update/BUILD.bazel +++ b/src/material/schematics/ng-update/BUILD.bazel @@ -1,9 +1,7 @@ -load("//tools:defaults.bzl", "esbuild", "jasmine_node_test", "spec_bundle", "ts_library") +load("//tools:defaults2.bzl", "jasmine_test", "ts_project") +load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild") -## THIS ONE IS ESM -# By default everything is ESM -# ESBUild needs ESM for bundling. Cannot reliably use CJS as input. -ts_library( +ts_project( name = "ng_update_lib", srcs = glob( ["**/*.ts"], @@ -11,24 +9,22 @@ ts_library( "test-cases/**/*.ts", ], ), - # Schematics can not yet run in ESM module. For now we continue to use CommonJS. - # TODO(ESM): remove this once the Angular CLI supports ESM schematics. - devmode_module = "commonjs", + tsconfig = "//src/material/schematics:tsconfig", deps = [ - "//src/cdk/schematics", - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@schematics/angular", - "@npm//@types/node", - "@npm//postcss", - "@npm//postcss-scss", - "@npm//typescript", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@schematics/angular", + "//:node_modules/@types/node", + "//:node_modules/postcss", + "//:node_modules/postcss-scss", + "//:node_modules/typescript", + "//src/material/schematics:node_modules/@angular/cdk/schematics", ], ) esbuild( name = "ng_update_index", - entry_point = ":index.ts", + entry_point = ":index.js", external = [ "@angular/cdk/schematics", "@schematics/angular", @@ -36,7 +32,6 @@ esbuild( "@angular-devkit/core", "typescript", ], - # TODO: Switch to ESM when Angular CLI supports it. format = "cjs", output = "index_bundled.js", platform = "node", @@ -45,10 +40,6 @@ esbuild( deps = [":ng_update_lib"], ) -################# -## Specs -################# - filegroup( name = "schematics_test_cases", testonly = True, @@ -58,46 +49,30 @@ filegroup( ]), ) -# This one is now ESM, the default in the repository -# Needs to be ESM because we import frm `ng_update_lib` (which is also ESM) -ts_library( +ts_project( name = "test_lib", testonly = True, srcs = glob(["**/*.spec.ts"]), + tsconfig = "//src/material/schematics:tsconfig-test", deps = [ ":ng_update_lib", - "//src/cdk/schematics", + "//:node_modules/@angular-devkit/core", + "//:node_modules/@angular-devkit/schematics", + "//:node_modules/@bazel/runfiles", "//src/cdk/schematics/testing", + "//src/material/schematics:node_modules/@angular/cdk/schematics", "//src/material/schematics:paths", - "@npm//@angular-devkit/core", - "@npm//@angular-devkit/schematics", - "@npm//@bazel/runfiles", - "@npm//@types/jasmine", - "@npm//@types/node", ], ) -spec_bundle( - name = "spec_bundle", - external = [ - "*/paths.js", - "@angular-devkit/core/node", - ], - platform = "cjs-legacy", - target = "es2020", - deps = [":test_lib"], -) - -jasmine_node_test( +jasmine_test( name = "test", data = [ - ":ng_update_index", ":schematics_test_cases", - "//src/cdk/schematics", + ":test_lib", "//src/material/schematics:collection_assets", + "//src/material/schematics:node_modules/@angular/cdk/schematics", + "//src/material/schematics:package_json", ], shard_count = 4, - deps = [ - ":spec_bundle", - ], ) diff --git a/src/material/schematics/ng-update/test-cases/index.spec.ts b/src/material/schematics/ng-update/test-cases/index.spec.ts index 824ee60dedc4..45af0a6c271d 100644 --- a/src/material/schematics/ng-update/test-cases/index.spec.ts +++ b/src/material/schematics/ng-update/test-cases/index.spec.ts @@ -1,5 +1,8 @@ import {getAllVersionNames} from '@angular/cdk/schematics'; -import {defineJasmineTestCases, findBazelVersionTestCases} from '@angular/cdk/schematics/testing'; +import { + defineJasmineTestCases, + findBazelVersionTestCases, +} from '../../../../cdk/schematics/testing/index'; import {MIGRATION_PATH} from '../../paths'; describe('Material upgrade test cases', () => { diff --git a/src/material/schematics/ng-update/tsconfig.json b/src/material/schematics/ng-update/tsconfig.json deleted file mode 100644 index 695bc2ef40b4..000000000000 --- a/src/material/schematics/ng-update/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -// For IDE -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "module": "esnext", - "target": "es2015" - } -} diff --git a/src/material/schematics/tsconfig-test.json b/src/material/schematics/tsconfig-test.json new file mode 100644 index 000000000000..6b63c9589e00 --- /dev/null +++ b/src/material/schematics/tsconfig-test.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": ["jasmine", "node"] + }, + "exclude": [] +} diff --git a/src/material/schematics/tsconfig.json b/src/material/schematics/tsconfig.json index 227597b4f5cb..3a72ab670281 100644 --- a/src/material/schematics/tsconfig.json +++ b/src/material/schematics/tsconfig.json @@ -1,30 +1,17 @@ { "compilerOptions": { - "lib": ["es2017"], - "module": "commonjs", - "moduleResolution": "node", - "outDir": "../../../dist/packages/material/schematics", - "noEmitOnError": false, - "strictNullChecks": true, - "noPropertyAccessFromIndexSignature": true, - "useUnknownInCatchVariables": true, - "noImplicitOverride": true, - "noImplicitAny": true, - "noFallthroughCasesInSwitch": true, - "noImplicitThis": true, - "noImplicitReturns": true, - "skipDefaultLibCheck": true, - "noUnusedLocals": false, - "noUnusedParameters": false, - "strictFunctionTypes": true, + "lib": ["es2022"], + "target": "es2022", + "module": "CommonJS", + "moduleResolution": "node10", + "strict": true, "skipLibCheck": true, "sourceMap": true, "declaration": true, - "target": "es6", "types": ["jasmine", "node"], - "baseUrl": ".", "paths": { - "@angular/cdk/schematics": ["../../cdk/schematics"] + "@angular/cdk/schematics": ["../../cdk/schematics"], + "@angular/cdk/schematics/*": ["../../cdk/schematics/*"] } }, "exclude": [ @@ -35,8 +22,5 @@ "ng-generate/*/files/**/*.ts", // Exclude all test-case files because those should not be included in the schematics output. "ng-update/test-cases/**/*.ts" - ], - "bazelOptions": { - "suppressTsconfigOverrideWarnings": true - } + ] } diff --git a/src/material/select/BUILD.bazel b/src/material/select/BUILD.bazel index 25fe19fa9d0c..03ec9950f6da 100644 --- a/src/material/select/BUILD.bazel +++ b/src/material/select/BUILD.bazel @@ -2,65 +2,109 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "select", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - ], - ), - assets = [":select_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-select.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/collections", - "//src/cdk/keycodes", - "//src/cdk/overlay", - "//src/cdk/scrolling", - "//src/material/core", - "//src/material/form-field", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "select_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-select.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_select-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "select_scss", + name = "css", src = "select.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material:sass_lib", + "//src/material/core/style:variables", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "select", + srcs = [ + "index.ts", + "module.ts", + "public-api.ts", + "select.ts", + "select-animations.ts", + "select-errors.ts", + ], + assets = [ + "select.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/collections", + "//src/cdk/keycodes", + "//src/cdk/overlay", + "//src/cdk/scrolling", + "//src/material/core", + "//src/material/form-field", ], ) -ng_test_library( +ts_project( name = "select_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":select", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", @@ -69,9 +113,6 @@ ng_test_library( "//src/cdk/testing/private", "//src/material/core", "//src/material/form-field", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -89,7 +130,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":select_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_select.scss b/src/material/select/_m2-select.scss similarity index 82% rename from src/material/core/tokens/m2/mat/_select.scss rename to src/material/select/_m2-select.scss index 7e5c41bc302f..08cb7cbc5ef7 100644 --- a/src/material/core/tokens/m2/mat/_select.scss +++ b/src/material/select/_m2-select.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../theming/theming'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/theming/theming'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, select); @@ -23,11 +23,11 @@ $prefix: (mat, select); // Ideally we would derive all values directly from the theme, but it causes a lot of regressions // internally. For now we fall back to the old hardcoded behavior only for internal apps. $on-surface: if($is-dark, #fff, #000); - $text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, text, 1)); - $disabled-text-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $disabled-text-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, disabled-text, 1)); - $icon-color-base: if(token-definition.$private-is-internal-build, $on-surface, + $icon-color-base: if(m2-utils.$private-is-internal-build, $on-surface, inspection.get-theme-color($theme, foreground, divider, 1)); @return ( @@ -74,8 +74,8 @@ $prefix: (mat, select); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_select.scss b/src/material/select/_m3-select.scss similarity index 82% rename from src/material/core/tokens/m3/mat/_select.scss rename to src/material/select/_m3-select.scss index a88bd6767f7b..263364b013dd 100644 --- a/src/material/core/tokens/m3/mat/_select.scss +++ b/src/material/select/_m3-select.scss @@ -1,7 +1,7 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../../style/elevation'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/style/elevation'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, select); @@ -13,7 +13,7 @@ $prefix: (mat, select); /// @return {Map} A set of custom tokens for the mat-select @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, trigger-text, body-large), + m3-utils.generate-typography-tokens($systems, trigger-text, body-large), ( panel-background-color: map.get($systems, md-sys-color, surface-container), enabled-trigger-text-color: map.get($systems, md-sys-color, on-surface), @@ -26,9 +26,11 @@ $prefix: (mat, select); focused-arrow-color: map.get($systems, md-sys-color, primary), invalid-arrow-color: map.get($systems, md-sys-color, error), container-elevation-shadow: - token-definition.hardcode(elevation.get-box-shadow(2), $exclude-hardcoded), + m3-utils.hardcode(elevation.get-box-shadow(2), $exclude-hardcoded), ) - ), ( + ); + + $variant-tokens: ( // Color variants: primary: (), // Default, no overrides needed secondary: ( @@ -42,5 +44,5 @@ $prefix: (mat, select); ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/select/_select-theme.scss b/src/material/select/_select-theme.scss index 3c4ba1a88ee6..096973d132ea 100644 --- a/src/material/select/_select-theme.scss +++ b/src/material/select/_select-theme.scss @@ -1,11 +1,10 @@ -@use '../core/tokens/m2/mat/select' as tokens-mat-select; -@use '../core/tokens/token-utils'; @use '../core/style/sass-utils'; - -@use '../core/theming/theming'; @use '../core/theming/inspection'; +@use '../core/theming/theming'; @use '../core/theming/validation'; +@use '../core/tokens/token-utils'; @use '../core/typography/typography'; +@use './m2-select'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-select. @@ -15,8 +14,8 @@ @include _theme-from-tokens(inspection.get-theme-tokens($theme, base)); } @else { @include sass-utils.current-selector-or-root() { - $mat-tokens: tokens-mat-select.get-unthemable-tokens(); - @include token-utils.create-token-values-mixed(tokens-mat-select.$prefix, $mat-tokens); + $mat-tokens: m2-select.get-unthemable-tokens(); + @include token-utils.create-token-values-mixed(m2-select.$prefix, $mat-tokens); } } } @@ -32,21 +31,21 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-select.$prefix, - tokens-mat-select.get-color-tokens($theme) + m2-select.$prefix, + m2-select.get-color-tokens($theme) ); .mat-mdc-form-field.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mat-select.$prefix, - tokens-mat-select.get-color-tokens($theme, accent) + m2-select.$prefix, + m2-select.get-color-tokens($theme, accent) ); } .mat-mdc-form-field.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mat-select.$prefix, - tokens-mat-select.get-color-tokens($theme, warn) + m2-select.$prefix, + m2-select.get-color-tokens($theme, warn) ); } } @@ -61,8 +60,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-select.$prefix, - tokens-mat-select.get-typography-tokens($theme) + m2-select.$prefix, + m2-select.get-typography-tokens($theme) ); } } @@ -76,8 +75,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-select.$prefix, - tokens-mat-select.get-density-tokens($theme) + m2-select.$prefix, + m2-select.get-density-tokens($theme) ); } } @@ -87,8 +86,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-select.$prefix, - tokens: tokens-mat-select.get-token-slots(), + namespace: m2-select.$prefix, + tokens: m2-select.get-token-slots(), ), ); } @@ -127,6 +126,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mat-select-tokens: token-utils.get-tokens-for($tokens, tokens-mat-select.$prefix, $options...); - @include token-utils.create-token-values(tokens-mat-select.$prefix, $mat-select-tokens); + $mat-select-tokens: token-utils.get-tokens-for($tokens, m2-select.$prefix, $options...); + @include token-utils.create-token-values(m2-select.$prefix, $mat-select-tokens); } diff --git a/src/material/select/select.scss b/src/material/select/select.scss index 7636c4b2e152..68d57248a191 100644 --- a/src/material/select/select.scss +++ b/src/material/select/select.scss @@ -3,7 +3,7 @@ @use '../core/style/vendor-prefixes'; @use '../core/style/variables'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/select' as tokens-mat-select; +@use './m2-select'; $mat-select-arrow-size: 5px !default; $mat-select-arrow-margin: 4px !default; @@ -13,6 +13,9 @@ $mat-select-placeholder-arrow-space: 2 * $leading-width: 12px !default; $scale: 0.75 !default; +$token-prefix: m2-select.$prefix; +$token-slots: m2-select.get-token-slots(); + @keyframes _mat-select-enter { from { opacity: 0; @@ -40,33 +43,30 @@ $scale: 0.75 !default; width: 100%; outline: none; - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { @include vendor-prefixes.smooth-font(); - @include token-utils.create-token-slot(color, enabled-trigger-text-color); - @include token-utils.create-token-slot(font-family, trigger-text-font); - @include token-utils.create-token-slot(line-height, trigger-text-line-height); - @include token-utils.create-token-slot(font-size, trigger-text-size); - @include token-utils.create-token-slot(font-weight, trigger-text-weight); - @include token-utils.create-token-slot(letter-spacing, trigger-text-tracking); + color: token-utils.slot(enabled-trigger-text-color); + font-family: token-utils.slot(trigger-text-font); + line-height: token-utils.slot(trigger-text-line-height); + font-size: token-utils.slot(trigger-text-size); + font-weight: token-utils.slot(trigger-text-weight); + letter-spacing: token-utils.slot(trigger-text-tracking); } } -@include token-utils.use-tokens(tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { +@include token-utils.use-tokens($token-prefix, $token-slots) { div.mat-mdc-select-panel { - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow); + box-shadow: token-utils.slot(container-elevation-shadow); } } .mat-mdc-select-disabled { - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(color, disabled-trigger-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(disabled-trigger-text-color); } .mat-mdc-select-placeholder { - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(color, disabled-trigger-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(disabled-trigger-text-color); } } } @@ -111,8 +111,8 @@ $scale: 0.75 !default; .mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow, .mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after { - @include token-utils.use-tokens(tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(color, invalid-arrow-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(invalid-arrow-color); } } @@ -121,16 +121,15 @@ $scale: 0.75 !default; height: $mat-select-arrow-size; position: relative; - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(color, enabled-arrow-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(enabled-arrow-color); .mat-mdc-form-field.mat-focused & { - @include token-utils.create-token-slot(color, focused-arrow-color); + color: token-utils.slot(focused-arrow-color); } .mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled & { - @include token-utils.create-token-slot(color, disabled-arrow-color); + color: token-utils.slot(disabled-arrow-color); } } @@ -168,9 +167,8 @@ div.mat-mdc-select-panel { // Workaround in case other MDC menu surface styles bleed in. position: static; - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(background-color, panel-background-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(panel-background-color); } @include cdk.high-contrast { @@ -190,7 +188,7 @@ div.mat-mdc-select-panel { } .mat-mdc-option { - --mdc-list-list-item-container-color: var(--mat-select-panel-background-color); + --mat-list-list-item-container-color: var(--mat-select-panel-background-color); } } @@ -209,9 +207,8 @@ div.mat-mdc-select-panel { math.div(variables.$swift-ease-out-duration, 3) variables.$swift-ease-out-timing-function; - @include token-utils.use-tokens( - tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { - @include token-utils.create-token-slot(color, placeholder-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(placeholder-text-color); } .mat-mdc-form-field:not(.mat-form-field-animations-enabled) &, @@ -277,8 +274,8 @@ div.mat-mdc-select-panel { visibility: hidden; } -@include token-utils.use-tokens(tokens-mat-select.$prefix, tokens-mat-select.get-token-slots()) { +@include token-utils.use-tokens($token-prefix, $token-slots) { .mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper { - @include token-utils.create-token-slot(transform, arrow-transform); + transform: token-utils.slot(arrow-transform); } } diff --git a/src/material/select/testing/BUILD.bazel b/src/material/select/testing/BUILD.bazel index 30c5ce2ec513..bcb23ba82e9d 100644 --- a/src/material/select/testing/BUILD.bazel +++ b/src/material/select/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/testing", "//src/material/core/testing", "//src/material/form-field/testing/control", @@ -21,19 +21,21 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/form-field", "//src/material/form-field/testing/control", "//src/material/select", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/sidenav/BUILD.bazel b/src/material/sidenav/BUILD.bazel index 52b318181a63..b991fd8b60c3 100644 --- a/src/material/sidenav/BUILD.bazel +++ b/src/material/sidenav/BUILD.bazel @@ -2,58 +2,107 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "sidenav", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":drawer.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-sidenav.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/coercion", - "//src/cdk/keycodes", - "//src/cdk/scrolling", - "//src/material/core", - "@npm//@angular/core", - "@npm//@angular/platform-browser", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "sidenav_scss_lib", - srcs = glob(["**/_*.scss"]), - deps = ["//src/material/core:core_scss_lib"], + name = "m2", + srcs = [ + "_m2-sidenav.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_sidenav-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + ], ) sass_binary( - name = "drawer_scss", + name = "css", src = "drawer.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:layout_common", + "//src/material/core/style:variables", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "sidenav", + srcs = [ + "drawer.ts", + "drawer-animations.ts", + "index.ts", + "public-api.ts", + "sidenav.ts", + "sidenav-module.ts", + ], + assets = [ + "drawer-container.html", + "drawer.html", + "sidenav-container.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/coercion", + "//src/cdk/keycodes", + "//src/cdk/scrolling", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":sidenav", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/keycodes", @@ -61,8 +110,6 @@ ng_test_library( "//src/cdk/scrolling", "//src/cdk/testing", "//src/cdk/testing/private", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) @@ -78,7 +125,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":sidenav_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_sidenav.scss b/src/material/sidenav/_m2-sidenav.scss similarity index 87% rename from src/material/core/tokens/m2/mat/_sidenav.scss rename to src/material/sidenav/_m2-sidenav.scss index a8be8b73c7c8..5f35c59afa30 100644 --- a/src/material/core/tokens/m2/mat/_sidenav.scss +++ b/src/material/sidenav/_m2-sidenav.scss @@ -1,9 +1,9 @@ @use 'sass:color'; @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, sidenav); @@ -59,8 +59,8 @@ $prefix: (mat, sidenav); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_sidenav.scss b/src/material/sidenav/_m3-sidenav.scss similarity index 71% rename from src/material/core/tokens/m3/mat/_sidenav.scss rename to src/material/sidenav/_m3-sidenav.scss index c4ffe42de0cd..b4cebe5237ea 100644 --- a/src/material/core/tokens/m3/mat/_sidenav.scss +++ b/src/material/sidenav/_m3-sidenav.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, sidenav); @@ -12,9 +12,9 @@ $prefix: (mat, sidenav); /// @return {Map} A set of custom tokens for the mat-sidenav @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: ( - container-elevation-shadow: token-definition.hardcode(none, $exclude-hardcoded), - container-divider-color: token-definition.hardcode(transparent, $exclude-hardcoded), - container-width: token-definition.hardcode(360px, $exclude-hardcoded), + container-elevation-shadow: m3-utils.hardcode(none, $exclude-hardcoded), + container-divider-color: m3-utils.hardcode(transparent, $exclude-hardcoded), + container-width: m3-utils.hardcode(360px, $exclude-hardcoded), container-shape: map.get($systems, md-sys-shape, corner-large), container-background-color: map.get($systems, md-sys-color, surface), container-text-color: map.get($systems, md-sys-color, on-surface-variant), @@ -24,5 +24,5 @@ $prefix: (mat, sidenav); map.get($systems, md-ref-palette, neutral-variant20), $alpha: 0.4), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/sidenav/_sidenav-theme.scss b/src/material/sidenav/_sidenav-theme.scss index 8bf69e5b9f23..ad5872fb778b 100644 --- a/src/material/sidenav/_sidenav-theme.scss +++ b/src/material/sidenav/_sidenav-theme.scss @@ -1,10 +1,10 @@ @use 'sass:map'; -@use '../core/theming/theming'; +@use '../core/style/sass-utils'; @use '../core/theming/inspection'; +@use '../core/theming/theming'; @use '../core/theming/validation'; -@use '../core/tokens/m2/mat/sidenav' as tokens-mat-sidenav; @use '../core/tokens/token-utils'; -@use '../core/style/sass-utils'; +@use './m2-sidenav'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -12,9 +12,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-unthemable-tokens() - ); + m2-sidenav.$prefix, m2-sidenav.get-unthemable-tokens()); } } } @@ -25,9 +23,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-color-tokens($theme) - ); + m2-sidenav.$prefix, m2-sidenav.get-color-tokens($theme)); } } } @@ -50,8 +46,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-sidenav.$prefix, - tokens: tokens-mat-sidenav.get-token-slots(), + namespace: m2-sidenav.$prefix, + tokens: m2-sidenav.get-token-slots(), ), ); } @@ -85,8 +81,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-sidenav.$prefix, - map.get($tokens, tokens-mat-sidenav.$prefix) + m2-sidenav.$prefix, + map.get($tokens, m2-sidenav.$prefix) ); } } diff --git a/src/material/sidenav/drawer.scss b/src/material/sidenav/drawer.scss index 717c141dc2dd..f0b8e68198da 100644 --- a/src/material/sidenav/drawer.scss +++ b/src/material/sidenav/drawer.scss @@ -1,6 +1,6 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/sidenav' as tokens-mat-sidenav; +@use './m2-sidenav'; @use '../core/tokens/token-utils'; @use '../core/style/variables'; @use '../core/style/layout-common'; @@ -10,6 +10,9 @@ $drawer-side-drawer-z-index: 2; $drawer-backdrop-z-index: 3; $drawer-over-drawer-z-index: 4; +$token-prefix: m2-sidenav.$prefix; +$token-slots: m2-sidenav.get-token-slots(); + // Mixin that creates a new stacking context. // see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context @mixin drawer-stacking-context($z-index: 1) { @@ -27,12 +30,9 @@ $drawer-over-drawer-z-index: 4; // the application content does not get messed up with our own CSS. @include drawer-stacking-context(); - @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() - ) { - @include token-utils.create-token-slot(color, content-text-color); - @include token-utils.create-token-slot(background-color, content-background-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(content-text-color); + background-color: token-utils.slot(content-background-color); } box-sizing: border-box; @@ -86,11 +86,8 @@ $drawer-over-drawer-z-index: 4; &.mat-drawer-shown { visibility: visible; - @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() - ) { - @include token-utils.create-token-slot(background-color, scrim-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(scrim-color); } } @@ -132,16 +129,13 @@ $drawer-over-drawer-z-index: 4; @include drawer-stacking-context($drawer-over-drawer-z-index); - @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() - ) { - @include token-utils.create-token-slot(color, container-text-color); - @include token-utils.create-token-slot(box-shadow, container-elevation-shadow); - @include token-utils.create-token-slot(background-color, container-background-color); - @include token-utils.create-token-slot(border-top-right-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-right-radius, container-shape); - @include token-utils.create-token-slot(width, container-width); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(container-text-color); + box-shadow: token-utils.slot(container-elevation-shadow); + background-color: token-utils.slot(container-background-color); + border-top-right-radius: token-utils.slot(container-shape); + border-bottom-right-radius: token-utils.slot(container-shape); + width: token-utils.slot(container-width); } display: block; @@ -177,31 +171,25 @@ $drawer-over-drawer-z-index: 4; right: 0; transform: translate3d(100%, 0, 0); - @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() - ) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-left-radius, container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-bottom-left-radius: token-utils.slot(container-shape); border-top-right-radius: 0; border-bottom-right-radius: 0; } } [dir='rtl'] & { - @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() - ) { - @include token-utils.create-token-slot(border-top-left-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-left-radius, container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-left-radius: token-utils.slot(container-shape); + border-bottom-left-radius: token-utils.slot(container-shape); border-top-right-radius: 0; border-bottom-right-radius: 0; transform: translate3d(100%, 0, 0); &.mat-drawer-end { - @include token-utils.create-token-slot(border-top-right-radius, container-shape); - @include token-utils.create-token-slot(border-bottom-right-radius, container-shape); + border-top-right-radius: token-utils.slot(container-shape); + border-bottom-right-radius: token-utils.slot(container-shape); border-top-left-radius: 0; border-bottom-left-radius: 0; left: 0; @@ -240,28 +228,28 @@ $drawer-over-drawer-z-index: 4; box-shadow: none; @include token-utils.use-tokens( - tokens-mat-sidenav.$prefix, - tokens-mat-sidenav.get-token-slots() + $token-prefix, + $token-slots ) { - @include token-utils.create-token-slot(border-right-color, container-divider-color); + border-right-color: token-utils.slot(container-divider-color); border-right-width: 1px; border-right-style: solid; &.mat-drawer-end { - @include token-utils.create-token-slot(border-left-color, container-divider-color); + border-left-color: token-utils.slot(container-divider-color); border-left-width: 1px; border-left-style: solid; border-right: none; } [dir='rtl'] & { - @include token-utils.create-token-slot(border-left-color, container-divider-color); + border-left-color: token-utils.slot(container-divider-color); border-left-width: 1px; border-left-style: solid; border-right: none; // Clears the default LTR border. &.mat-drawer-end { - @include token-utils.create-token-slot(border-right-color, container-divider-color); + border-right-color: token-utils.slot(container-divider-color); border-right-width: 1px; border-right-style: solid; border-left: none; diff --git a/src/material/sidenav/testing/BUILD.bazel b/src/material/sidenav/testing/BUILD.bazel index a8ca460c2061..27ee4f03781e 100644 --- a/src/material/sidenav/testing/BUILD.bazel +++ b/src/material/sidenav/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,7 +9,7 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", "//src/cdk/testing", ], @@ -20,15 +20,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/sidenav", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/slide-toggle/BUILD.bazel b/src/material/slide-toggle/BUILD.bazel index cf94f56eb392..d44b1d3ed0f1 100644 --- a/src/material/slide-toggle/BUILD.bazel +++ b/src/material/slide-toggle/BUILD.bazel @@ -2,62 +2,102 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "slide-toggle", - srcs = glob( - ["**/*.ts"], - exclude = [ - "**/*.spec.ts", - "harness/**", - ], - ), - assets = [":slide_toggle_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-slide-toggle.scss", + ], deps = [ - "//src/material/core", - "@npm//@angular/animations", - "@npm//@angular/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "slide_toggle_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-slide-toggle.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_slide-toggle-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "slide_toggle_scss", + name = "css", src = "slide-toggle.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:layout_common", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "slide-toggle", + srcs = [ + "index.ts", + "module.ts", + "public-api.ts", + "slide-toggle.ts", + "slide-toggle-config.ts", + ], + assets = [ + "slide-toggle.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/animations", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "slide_toggle_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":slide-toggle", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/testing/private", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) @@ -75,7 +115,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":slide_toggle_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/slide-toggle/_m2-slide-toggle.scss b/src/material/slide-toggle/_m2-slide-toggle.scss new file mode 100644 index 000000000000..333936c3925d --- /dev/null +++ b/src/material/slide-toggle/_m2-slide-toggle.scss @@ -0,0 +1,167 @@ +@use '../core/style/elevation'; +@use '../core/style/sass-utils'; +@use '../core/theming/inspection'; +@use '../core/theming/theming'; +@use '../core/tokens/m2-utils'; +@use 'sass:map'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, slide-toggle); + +// Tokens that can't be configured through Angular Material's current theming API, +// but may be in a future version of the theming API. +@function get-unthemable-tokens() { + // visible-track-opacity and hidden-track-opacity: + // The hidden and visible track represent whichever track is visible or + // hidden in the ui. This could be the .mdc-switch__track :before or + // :after depending on whether the switch is selected or unselected. + // + // The m2 slide-toggle uses transforms to hide & show the tracks while + // the m3 slide-toggle uses opacity. + @return ( + disabled-handle-opacity: null, + disabled-selected-handle-opacity: 0.38, + disabled-selected-icon-opacity: 0.38, + disabled-track-opacity: 0.12, + disabled-unselected-handle-opacity: 0.38, + disabled-unselected-icon-opacity: 0.38, + disabled-unselected-track-outline-color: transparent, + disabled-unselected-track-outline-width: 1px, + handle-height: 20px, + handle-shape: 10px, + handle-width: 20px, + hidden-track-opacity: 1, + hidden-track-transition: transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1), + pressed-handle-size: 20px, + selected-focus-state-layer-opacity: 0.12, + selected-handle-horizontal-margin: 0, + selected-handle-size: 20px, + selected-hover-state-layer-opacity: 0.04, + selected-icon-size: 18px, + selected-pressed-handle-horizontal-margin: 0, + selected-pressed-state-layer-opacity: 0.1, + selected-track-outline-color: transparent, + selected-track-outline-width: 1px, + selected-with-icon-handle-horizontal-margin: 0, + track-height: 14px, + track-outline-color: transparent, + track-outline-width: 1px, + track-shape: 7px, + track-width: 36px, + unselected-focus-state-layer-opacity: 0.12, + unselected-handle-horizontal-margin: 0, + unselected-handle-size: 20px, + unselected-hover-state-layer-opacity: 0.04, + unselected-icon-size: 18px, + unselected-pressed-handle-horizontal-margin: 0, + unselected-pressed-state-layer-opacity: 0.1, + unselected-with-icon-handle-horizontal-margin: 0, + visible-track-opacity: 1, + visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1), + with-icon-handle-size: 20px, + ); +} + +// Tokens that can be configured through Angular Material's color theming API. +@function get-color-tokens($theme) { + $is-dark: inspection.get-theme-type($theme) == dark; + $on-surface: if($is-dark, #f5f5f5, #424242); + $hairline: if($is-dark, #616161, #e0e0e0); + $on-surface-variant: if($is-dark, #9e9e9e, #616161); + $on-surface-state-content: if($is-dark, #fafafa, #212121); + $disabled-handle-color: if($is-dark, #000, #424242); + $icon-color: if($is-dark, #212121, #fff); + + // The default for tokens that rely on the theme will use the primary palette + $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary); + + // TODO(crisbeto): `handle-surface-color` was hardcoded to `var(--mat-surface-color, #fff)` + // which made it basically hardcoded to #fff. Should it be based on the theme? + @return map.merge( + $theme-color-tokens, + ( + disabled-handle-elevation-shadow: elevation.get-box-shadow(0), + disabled-selected-handle-color: $disabled-handle-color, + disabled-selected-icon-color: $icon-color, + disabled-selected-track-color: $on-surface, + disabled-unselected-handle-color: $disabled-handle-color, + disabled-unselected-icon-color: $icon-color, + disabled-unselected-track-color: $on-surface, + handle-elevation-shadow: elevation.get-box-shadow(1), + handle-surface-color: #fff, + label-text-color: inspection.get-theme-color($theme, foreground, text), + selected-icon-color: $icon-color, + unselected-hover-handle-color: $on-surface-state-content, + unselected-focus-handle-color: $on-surface-state-content, + unselected-focus-state-layer-color: $on-surface, + unselected-focus-track-color: $hairline, + unselected-icon-color: $icon-color, + unselected-handle-color: $on-surface-variant, + unselected-hover-state-layer-color: $on-surface, + unselected-hover-track-color: $hairline, + unselected-pressed-handle-color: $on-surface-state-content, + unselected-pressed-track-color: $hairline, + unselected-pressed-state-layer-color: $on-surface, + unselected-track-color: $hairline, + ) + ); +} + +// Generates the mapping for the properties that change based on the slide toggle color. +@function private-get-color-palette-color-tokens($theme, $palette-name) { + $is-dark: inspection.get-theme-type($theme) == dark; + $palette-color: inspection.get-theme-color($theme, $palette-name, if($is-dark, 300, 600)); + $state-content: inspection.get-theme-color($theme, $palette-name, if($is-dark, 200, 900)); + $inverse: inspection.get-theme-color($theme, $palette-name, if($is-dark, 600, 300)); + + @return ( + selected-focus-state-layer-color: $palette-color, + selected-handle-color: $palette-color, + selected-hover-state-layer-color: $palette-color, + selected-pressed-state-layer-color: $palette-color, + selected-focus-handle-color: $state-content, + selected-hover-handle-color: $state-content, + selected-pressed-handle-color: $state-content, + selected-focus-track-color: $inverse, + selected-hover-track-color: $inverse, + selected-pressed-track-color: $inverse, + selected-track-color: $inverse, + ); +} + +// Tokens that can be configured through Angular Material's typography theming API. +@function get-typography-tokens($theme) { + @return ( + label-text-font: inspection.get-theme-typography($theme, body-2, font-family), + label-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), + label-text-size: inspection.get-theme-typography($theme, body-2, font-size), + label-text-tracking: inspection.get-theme-typography($theme, body-2, letter-spacing), + label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight) + ); +} + +// Tokens that can be configured through Angular Material's density theming API. +@function get-density-tokens($theme) { + $scale: theming.clamp-density(inspection.get-theme-density($theme), -3); + + @return ( + // The diameter of the handle ripple. + state-layer-size: map.get(( + 0: 40px, + -1: 36px, + -2: 32px, + -3: 28px, + ), $scale) + ); +} + +// Combines the tokens generated by the above functions into a single map with placeholder values. +// This is used to create token slots. +@function get-token-slots() { + @return sass-utils.deep-merge-all( + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) + ); +} diff --git a/src/material/slide-toggle/_m3-slide-toggle.scss b/src/material/slide-toggle/_m3-slide-toggle.scss new file mode 100644 index 000000000000..8784743d3e2e --- /dev/null +++ b/src/material/slide-toggle/_m3-slide-toggle.scss @@ -0,0 +1,165 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; +@use '../core/style/elevation'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, slide-toggle); + +/// Generates custom tokens for the mat-slide-toggle. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-slide-toggle +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + // visible/hidden-track-opacity: + // The hidden and visible track represent whichever track is visible or + // hidden in the ui. This could be the .mdc-switch__track :before or + // :after depending on whether the switch is selected or unselected. + // + // The m2 slide-toggle uses transforms to hide & show the tracks while + // the m3 slide-toggle uses opacity. + $tokens: ( + disabled-selected-handle-color: map.get($systems, md-sys-color, surface), + disabled-selected-handle-opacity: if($exclude-hardcoded, null, 1), + disabled-selected-icon-color: map.get($systems, md-sys-color, on-surface), + disabled-selected-icon-opacity: if($exclude-hardcoded, null, 0.38), + disabled-selected-track-color: map.get($systems, md-sys-color, on-surface), + disabled-track-opacity: if($exclude-hardcoded, null, 0.12), + disabled-unselected-handle-color: map.get($systems, md-sys-color, on-surface), + disabled-unselected-handle-opacity: if($exclude-hardcoded, null, 0.38), + disabled-unselected-icon-color: map.get($systems, md-sys-color, surface-variant), + disabled-unselected-icon-opacity: if($exclude-hardcoded, null, 0.38), + disabled-unselected-track-color: map.get($systems, md-sys-color, surface-variant), + disabled-unselected-track-outline-color: map.get($systems, md-sys-color, on-surface), + disabled-unselected-track-outline-width: + m3-utils.hardcode(2px, $exclude-hardcoded), + handle-shape: map.get($systems, md-sys-shape, corner-full), + hidden-track-opacity: m3-utils.hardcode(0, $exclude-hardcoded), + hidden-track-transition: m3-utils.hardcode(opacity 75ms, $exclude-hardcoded), + label-text-color: map.get($systems, md-sys-color, on-surface), + label-text-font: map.get($systems, md-sys-typescale, body-medium-font), + label-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), + label-text-size: map.get($systems, md-sys-typescale, body-medium-size), + label-text-tracking: map.get($systems, md-sys-typescale, body-medium-tracking), + label-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + pressed-handle-size: m3-utils.hardcode(28px, $exclude-hardcoded), + selected-focus-handle-color: map.get($systems, md-sys-color, primary-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, primary), + selected-focus-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + selected-focus-track-color: map.get($systems, md-sys-color, primary), + selected-handle-color: map.get($systems, md-sys-color, on-primary), + selected-handle-horizontal-margin: m3-utils.hardcode(0 24px, $exclude-hardcoded), + selected-handle-size: m3-utils.hardcode(24px, $exclude-hardcoded), + selected-hover-handle-color: map.get($systems, md-sys-color, primary-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, primary), + selected-hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity), + selected-hover-track-color: map.get($systems, md-sys-color, primary), + selected-icon-color: map.get($systems, md-sys-color, on-primary-container), + selected-icon-size: if($exclude-hardcoded, null, 16px), + selected-pressed-handle-color: map.get($systems, md-sys-color, primary-container), + selected-pressed-handle-horizontal-margin: + m3-utils.hardcode(0 22px, $exclude-hardcoded), + selected-pressed-state-layer-color: map.get($systems, md-sys-color, primary), + selected-pressed-state-layer-opacity: + map.get($systems, md-sys-state, pressed-state-layer-opacity), + selected-pressed-track-color: map.get($systems, md-sys-color, primary), + selected-track-color: map.get($systems, md-sys-color, primary), + selected-track-outline-color: m3-utils.hardcode(transparent, $exclude-hardcoded), + selected-track-outline-width: m3-utils.hardcode(2px, $exclude-hardcoded), + selected-with-icon-handle-horizontal-margin: + m3-utils.hardcode(0 24px, $exclude-hardcoded), + state-layer-size: if($exclude-hardcoded, null, 40px), + track-height: if($exclude-hardcoded, null, 32px), + track-outline-color: map.get($systems, md-sys-color, outline), + track-outline-width: if($exclude-hardcoded, null, 2px), + track-shape: map.get($systems, md-sys-shape, corner-full), + track-width: if($exclude-hardcoded, null, 52px), + unselected-focus-handle-color: map.get($systems, md-sys-color, on-surface-variant), + unselected-focus-state-layer-color: map.get($systems, md-sys-color, on-surface), + unselected-focus-state-layer-opacity: + map.get($systems, md-sys-state, focus-state-layer-opacity), + unselected-focus-track-color: map.get($systems, md-sys-color, surface-variant), + unselected-handle-color: map.get($systems, md-sys-color, outline), + unselected-handle-horizontal-margin: + m3-utils.hardcode(0 8px, $exclude-hardcoded), + unselected-handle-size: m3-utils.hardcode(16px, $exclude-hardcoded), + unselected-hover-handle-color: map.get($systems, md-sys-color, on-surface-variant), + unselected-hover-state-layer-color: map.get($systems, md-sys-color, on-surface), + unselected-hover-state-layer-opacity: + map.get($systems, md-sys-state, hover-state-layer-opacity), + unselected-hover-track-color: map.get($systems, md-sys-color, surface-variant), + unselected-icon-color: map.get($systems, md-sys-color, surface-variant), + unselected-icon-size: if($exclude-hardcoded, null, 16px), + unselected-pressed-handle-color: map.get($systems, md-sys-color, on-surface-variant), + unselected-pressed-handle-horizontal-margin: + m3-utils.hardcode(0 2px, $exclude-hardcoded), + unselected-pressed-state-layer-color: map.get($systems, md-sys-color, on-surface), + unselected-pressed-state-layer-opacity: + map.get($systems, md-sys-state, pressed-state-layer-opacity), + unselected-pressed-track-color: map.get($systems, md-sys-color, surface-variant), + unselected-track-color: map.get($systems, md-sys-color, surface-variant), + unselected-with-icon-handle-horizontal-margin: + m3-utils.hardcode(0 4px, $exclude-hardcoded), + visible-track-opacity: m3-utils.hardcode(1, $exclude-hardcoded), + visible-track-transition: m3-utils.hardcode(opacity 75ms, $exclude-hardcoded), + with-icon-handle-size: m3-utils.hardcode(24px, $exclude-hardcoded), + ); + $elevation-tokens: (handle-elevation, disabled-handle-elevation); + + @each $token in $elevation-tokens { + $elevation: map.get($tokens, $token); + + @if ($elevation != null) { + $tokens: map.set($tokens, $token + -shadow, elevation.get-box-shadow($elevation)); + } + } + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + selected-focus-handle-color: map.get($systems, md-sys-color, secondary-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-focus-track-color: map.get($systems, md-sys-color, secondary), + selected-handle-color: map.get($systems, md-sys-color, on-secondary), + selected-hover-handle-color: map.get($systems, md-sys-color, secondary-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-hover-track-color: map.get($systems, md-sys-color, secondary), + selected-icon-color: map.get($systems, md-sys-color, on-secondary-container), + selected-pressed-handle-color: map.get($systems, md-sys-color, secondary-container), + selected-pressed-state-layer-color: map.get($systems, md-sys-color, secondary), + selected-pressed-track-color: map.get($systems, md-sys-color, secondary), + selected-track-color: map.get($systems, md-sys-color, secondary), + ), + tertiary: ( + selected-focus-handle-color: map.get($systems, md-sys-color, tertiary-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-focus-track-color: map.get($systems, md-sys-color, tertiary), + selected-handle-color: map.get($systems, md-sys-color, on-tertiary), + selected-hover-handle-color: map.get($systems, md-sys-color, tertiary-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-hover-track-color: map.get($systems, md-sys-color, tertiary), + selected-icon-color: map.get($systems, md-sys-color, on-tertiary-container), + selected-pressed-handle-color: map.get($systems, md-sys-color, tertiary-container), + selected-pressed-state-layer-color: map.get($systems, md-sys-color, tertiary), + selected-pressed-track-color: map.get($systems, md-sys-color, tertiary), + selected-track-color: map.get($systems, md-sys-color, tertiary), + ), + error: ( + selected-focus-handle-color: map.get($systems, md-sys-color, error-container), + selected-focus-state-layer-color: map.get($systems, md-sys-color, error), + selected-focus-track-color: map.get($systems, md-sys-color, error), + selected-handle-color: map.get($systems, md-sys-color, on-error), + selected-hover-handle-color: map.get($systems, md-sys-color, error-container), + selected-hover-state-layer-color: map.get($systems, md-sys-color, error), + selected-hover-track-color: map.get($systems, md-sys-color, error), + selected-icon-color: map.get($systems, md-sys-color, on-error-container), + selected-pressed-handle-color: map.get($systems, md-sys-color, error-container), + selected-pressed-state-layer-color: map.get($systems, md-sys-color, error), + selected-pressed-track-color: map.get($systems, md-sys-color, error), + selected-track-color: map.get($systems, md-sys-color, error), + ), + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/slide-toggle/_slide-toggle-theme.scss b/src/material/slide-toggle/_slide-toggle-theme.scss index d2c302bd1c1e..a01513c3ea57 100644 --- a/src/material/slide-toggle/_slide-toggle-theme.scss +++ b/src/material/slide-toggle/_slide-toggle-theme.scss @@ -1,11 +1,11 @@ +@use 'sass:map'; @use '../core/style/sass-utils'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; @use '../core/tokens/token-utils'; @use '../core/typography/typography'; -@use '../core/tokens/m2/mat/switch' as tokens-mat-switch; -@use '../core/tokens/m2/mdc/switch' as tokens-mdc-switch; +@use './m2-slide-toggle'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-slide-toggle. @@ -15,15 +15,16 @@ @include _theme-from-tokens(inspection.get-theme-tokens($theme, base)); } @else { @include sass-utils.current-selector-or-root() { + // TODO: See if this can be removed @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.get-unthemable-tokens() + m2-slide-toggle.$prefix, + m2-slide-toggle.get-unthemable-tokens() ); .mat-mdc-slide-toggle { @include token-utils.create-token-values-mixed( - tokens-mat-switch.$prefix, - tokens-mat-switch.get-unthemable-tokens() + m2-slide-toggle.$prefix, + m2-slide-toggle.get-unthemable-tokens() ); } } @@ -39,18 +40,25 @@ @if inspection.get-theme-version($theme) == 1 { @include _theme-from-tokens(inspection.get-theme-tokens($theme, color), $options...); } @else { - $mdc-tokens: tokens-mdc-switch.get-color-tokens($theme); + $mat-tokens: m2-slide-toggle.get-color-tokens($theme); // Add values for MDC slide toggles tokens @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.get-color-tokens($theme) + m2-slide-toggle.$prefix, + m2-slide-toggle.get-color-tokens($theme) ); & { + // TODO(andrewjs): Remove this once all tokens are migrated to + // mat internally. + --mdc-slide-toggle-disabled-label-text-color: #{inspection.get-theme-color( + $theme, + foreground, + disabled-text + )}; // TODO(wagnermaciel): Use our token system to define this css variable. - --mdc-switch-disabled-label-text-color: #{inspection.get-theme-color( + --mat-slide-toggle-disabled-label-text-color: #{inspection.get-theme-color( $theme, foreground, disabled-text @@ -58,23 +66,25 @@ } .mat-mdc-slide-toggle { - @include token-utils.create-token-values-mixed( - tokens-mat-switch.$prefix, - tokens-mat-switch.get-color-tokens($theme) - ); + // TODO(wagnermaciel): Use our token system to define this css variable. + --mat-slide-toggle-label-text-color: #{inspection.get-theme-color( + $theme, + foreground, + text + )}; // Change the color palette related tokens to accent or warn if applicable &.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.private-get-color-palette-color-tokens($theme, accent) + m2-slide-toggle.$prefix, + m2-slide-toggle.private-get-color-palette-color-tokens($theme, accent) ); } &.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.private-get-color-palette-color-tokens($theme, warn) + m2-slide-toggle.$prefix, + m2-slide-toggle.private-get-color-palette-color-tokens($theme, warn) ); } } @@ -89,15 +99,16 @@ @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography)); } @else { @include sass-utils.current-selector-or-root() { + // TODO: See if this can be removed @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.get-typography-tokens($theme) + m2-slide-toggle.$prefix, + m2-slide-toggle.get-typography-tokens($theme) ); .mat-mdc-slide-toggle { @include token-utils.create-token-values-mixed( - tokens-mat-switch.$prefix, - tokens-mat-switch.get-typography-tokens($theme) + m2-slide-toggle.$prefix, + m2-slide-toggle.get-typography-tokens($theme) ); } } @@ -111,15 +122,16 @@ @include _theme-from-tokens(inspection.get-theme-tokens($theme, density)); } @else { @include sass-utils.current-selector-or-root() { + // TODO: See if this can be removed @include token-utils.create-token-values-mixed( - tokens-mdc-switch.$prefix, - tokens-mdc-switch.get-density-tokens($theme) + m2-slide-toggle.$prefix, + m2-slide-toggle.get-density-tokens($theme) ); .mat-mdc-slide-toggle { @include token-utils.create-token-values-mixed( - tokens-mat-switch.$prefix, - tokens-mat-switch.get-density-tokens($theme) + m2-slide-toggle.$prefix, + m2-slide-toggle.get-density-tokens($theme) ); } } @@ -130,12 +142,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-switch.$prefix, - tokens: tokens-mat-switch.get-token-slots(), - ), - ( - namespace: tokens-mdc-switch.$prefix, - tokens: tokens-mdc-switch.get-token-slots(), + namespace: m2-slide-toggle.$prefix, + tokens: m2-slide-toggle.get-token-slots(), ), ); } @@ -174,11 +182,10 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-switch-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-switch.$prefix, $options...); - // Don't pass $options here, since the mat-switch doesn't support color options, - // only the mdc-switch does. - $mat-switch-tokens: token-utils.get-tokens-for($tokens, tokens-mat-switch.$prefix); + $mat-switch-tokens: token-utils.get-tokens-for($tokens, m2-slide-toggle.$prefix); + $mat-switch-tokens-options: + token-utils.get-tokens-for($tokens, m2-slide-toggle.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-switch.$prefix, $mdc-switch-tokens); - @include token-utils.create-token-values(tokens-mat-switch.$prefix, $mat-switch-tokens); + $tokens: map.merge($mat-switch-tokens, $mat-switch-tokens-options); + @include token-utils.create-token-values(m2-slide-toggle.$prefix, $tokens); } diff --git a/src/material/slide-toggle/slide-toggle.scss b/src/material/slide-toggle/slide-toggle.scss index 161a2f7c4d98..de1bc096a6d4 100644 --- a/src/material/slide-toggle/slide-toggle.scss +++ b/src/material/slide-toggle/slide-toggle.scss @@ -1,14 +1,15 @@ -@use '@angular/cdk'; @use '../core/style/layout-common'; -@use '../core/tokens/m2/mat/switch' as tokens-mat-switch; -@use '../core/tokens/m2/mdc/switch' as tokens-mdc-switch; -@use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; +@use '../core/tokens/token-utils'; +@use './m2-slide-toggle'; +@use '@angular/cdk'; -$_mdc-slots: (tokens-mdc-switch.$prefix, tokens-mdc-switch.get-token-slots()); -$_mat-slots: (tokens-mat-switch.$prefix, tokens-mat-switch.get-token-slots()); $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled'; +$token-prefix: m2-slide-toggle.$prefix; +$token-slots: m2-slide-toggle.get-token-slots(); + + .mdc-switch { align-items: center; background: none; @@ -22,8 +23,8 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc padding: 0; position: relative; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(width, track-width); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(track-width); } &.mdc-switch--disabled { @@ -41,12 +42,12 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc position: relative; width: 100%; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(height, track-height); - @include token-utils.create-token-slot(border-radius, track-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(track-height); + border-radius: token-utils.slot(track-shape); .mdc-switch--disabled.mdc-switch & { - @include token-utils.create-token-slot(opacity, disabled-track-opacity); + opacity: token-utils.slot(disabled-track-opacity); } } @@ -61,20 +62,18 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc position: absolute; width: 100%; - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(border-width, track-outline-width); - @include token-utils.create-token-slot(border-color, track-outline-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-width: token-utils.slot(track-outline-width); + border-color: token-utils.slot(track-outline-color); .mdc-switch--selected & { - @include token-utils.create-token-slot(border-width, selected-track-outline-width); - @include token-utils.create-token-slot(border-color, selected-track-outline-color); + border-width: token-utils.slot(selected-track-outline-width); + border-color: token-utils.slot(selected-track-outline-color); } .mdc-switch--disabled & { - @include token-utils.create-token-slot(border-width, - disabled-unselected-track-outline-width); - @include token-utils.create-token-slot(border-color, - disabled-unselected-track-outline-color); + border-width: token-utils.slot(disabled-unselected-track-outline-width); + border-color: token-utils.slot(disabled-unselected-track-outline-color); } } } @@ -87,8 +86,8 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc transition: transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1); transform: translateX(0); - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(background, unselected-track-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background: token-utils.slot(unselected-track-color); } .mdc-switch--selected & { @@ -100,36 +99,36 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc } } - @include token-utils.use-tokens($_mat-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch--selected & { - @include token-utils.create-token-slot(opacity, hidden-track-opacity); - @include token-utils.create-token-slot(transition, hidden-track-transition); + opacity: token-utils.slot(hidden-track-opacity); + transition: token-utils.slot(hidden-track-transition); } .mdc-switch--unselected & { - @include token-utils.create-token-slot(opacity, visible-track-opacity); - @include token-utils.create-token-slot(transition, visible-track-transition); + opacity: token-utils.slot(visible-track-opacity); + transition: token-utils.slot(visible-track-transition); } } - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch:enabled:hover:not(:focus):not(:active) & { - @include token-utils.create-token-slot(background, unselected-hover-track-color); + background: token-utils.slot(unselected-hover-track-color); } .mdc-switch:enabled:focus:not(:active) & { - @include token-utils.create-token-slot(background, unselected-focus-track-color); + background: token-utils.slot(unselected-focus-track-color); } .mdc-switch:enabled:active & { - @include token-utils.create-token-slot(background, unselected-pressed-track-color); + background: token-utils.slot(unselected-pressed-track-color); } #{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &, #{$_interactive-disabled-selector}:focus:not(:active) &, #{$_interactive-disabled-selector}:active &, .mdc-switch.mdc-switch--disabled & { - @include token-utils.create-token-slot(background, disabled-unselected-track-color); + background: token-utils.slot(disabled-unselected-track-color); } } } @@ -137,8 +136,8 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc &::after { transform: translateX(-100%); - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(background, selected-track-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background: token-utils.slot(selected-track-color); } [dir='rtl'] & { @@ -149,36 +148,36 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc transform: translateX(0); } - @include token-utils.use-tokens($_mat-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch--selected & { - @include token-utils.create-token-slot(opacity, visible-track-opacity); - @include token-utils.create-token-slot(transition, visible-track-transition); + opacity: token-utils.slot(visible-track-opacity); + transition: token-utils.slot(visible-track-transition); } .mdc-switch--unselected & { - @include token-utils.create-token-slot(opacity, hidden-track-opacity); - @include token-utils.create-token-slot(transition, hidden-track-transition); + opacity: token-utils.slot(hidden-track-opacity); + transition: token-utils.slot(hidden-track-transition); } } - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch:enabled:hover:not(:focus):not(:active) & { - @include token-utils.create-token-slot(background, selected-hover-track-color); + background: token-utils.slot(selected-hover-track-color); } .mdc-switch:enabled:focus:not(:active) & { - @include token-utils.create-token-slot(background, selected-focus-track-color); + background: token-utils.slot(selected-focus-track-color); } .mdc-switch:enabled:active & { - @include token-utils.create-token-slot(background, selected-pressed-track-color); + background: token-utils.slot(selected-pressed-track-color); } #{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &, #{$_interactive-disabled-selector}:focus:not(:active) &, #{$_interactive-disabled-selector}:active &, .mdc-switch.mdc-switch--disabled & { - @include token-utils.create-token-slot(background, disabled-selected-track-color); + background: token-utils.slot(disabled-selected-track-color); } } } @@ -194,8 +193,8 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc right: auto; transform: translateX(0); - @include token-utils.use-tokens($_mdc-slots...) { - width: calc(100% - #{token-utils.get-token-variable(handle-width)}); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: calc(100% - #{token-utils.slot(handle-width)}); } [dir='rtl'] & { @@ -228,10 +227,10 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc height 75ms cubic-bezier(0.4, 0, 0.2, 1), margin 75ms cubic-bezier(0.4, 0, 0.2, 1); - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(width, handle-width); - @include token-utils.create-token-slot(height, handle-height); - @include token-utils.create-token-slot(border-radius, handle-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(handle-width); + height: token-utils.slot(handle-height); + border-radius: token-utils.slot(handle-shape); } [dir='rtl'] & { @@ -239,52 +238,51 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc right: 0; } - @include token-utils.use-tokens($_mat-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-slide-toggle .mdc-switch--unselected & { - @include token-utils.create-token-slot(width, unselected-handle-size); - @include token-utils.create-token-slot(height, unselected-handle-size); - @include token-utils.create-token-slot(margin, unselected-handle-horizontal-margin); + width: token-utils.slot(unselected-handle-size); + height: token-utils.slot(unselected-handle-size); + margin: token-utils.slot(unselected-handle-horizontal-margin); &:has(.mdc-switch__icons) { - @include token-utils.create-token-slot(margin, - unselected-with-icon-handle-horizontal-margin); + margin: token-utils.slot(unselected-with-icon-handle-horizontal-margin); } } .mat-mdc-slide-toggle .mdc-switch--selected & { - @include token-utils.create-token-slot(width, selected-handle-size); - @include token-utils.create-token-slot(height, selected-handle-size); - @include token-utils.create-token-slot(margin, selected-handle-horizontal-margin); + width: token-utils.slot(selected-handle-size); + height: token-utils.slot(selected-handle-size); + margin: token-utils.slot(selected-handle-horizontal-margin); &:has(.mdc-switch__icons) { - @include token-utils.create-token-slot(margin, selected-with-icon-handle-horizontal-margin); + margin: token-utils.slot(selected-with-icon-handle-horizontal-margin); } } .mat-mdc-slide-toggle &:has(.mdc-switch__icons) { - @include token-utils.create-token-slot(width, with-icon-handle-size); - @include token-utils.create-token-slot(height, with-icon-handle-size); + width: token-utils.slot(with-icon-handle-size); + height: token-utils.slot(with-icon-handle-size); } .mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) & { - @include token-utils.create-token-slot(width, pressed-handle-size); - @include token-utils.create-token-slot(height, pressed-handle-size); + width: token-utils.slot(pressed-handle-size); + height: token-utils.slot(pressed-handle-size); } .mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) & { - @include token-utils.create-token-slot(margin, selected-pressed-handle-horizontal-margin); + margin: token-utils.slot(selected-pressed-handle-horizontal-margin); } .mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) & { - @include token-utils.create-token-slot(margin, unselected-pressed-handle-horizontal-margin); + margin: token-utils.slot(unselected-pressed-handle-horizontal-margin); } .mdc-switch--disabled.mdc-switch--selected &::after { - @include token-utils.create-token-slot(opacity, disabled-selected-handle-opacity); + opacity: token-utils.slot(disabled-selected-handle-opacity); } .mdc-switch--disabled.mdc-switch--unselected &::after { - @include token-utils.create-token-slot(opacity, disabled-unselected-handle-opacity); + opacity: token-utils.slot(disabled-unselected-handle-opacity); } } @@ -308,54 +306,54 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc } } - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &::after { .mdc-switch--selected:enabled & { - @include token-utils.create-token-slot(background, selected-handle-color); + background: token-utils.slot(selected-handle-color); } .mdc-switch--selected:enabled:hover:not(:focus):not(:active) & { - @include token-utils.create-token-slot(background, selected-hover-handle-color); + background: token-utils.slot(selected-hover-handle-color); } .mdc-switch--selected:enabled:focus:not(:active) & { - @include token-utils.create-token-slot(background, selected-focus-handle-color); + background: token-utils.slot(selected-focus-handle-color); } .mdc-switch--selected:enabled:active & { - @include token-utils.create-token-slot(background, selected-pressed-handle-color); + background: token-utils.slot(selected-pressed-handle-color); } #{$_interactive-disabled-selector}.mdc-switch--selected:hover:not(:focus):not(:active) &, #{$_interactive-disabled-selector}.mdc-switch--selected:focus:not(:active) &, #{$_interactive-disabled-selector}.mdc-switch--selected:active &, .mdc-switch--selected.mdc-switch--disabled & { - @include token-utils.create-token-slot(background, disabled-selected-handle-color); + background: token-utils.slot(disabled-selected-handle-color); } .mdc-switch--unselected:enabled & { - @include token-utils.create-token-slot(background, unselected-handle-color); + background: token-utils.slot(unselected-handle-color); } .mdc-switch--unselected:enabled:hover:not(:focus):not(:active) & { - @include token-utils.create-token-slot(background, unselected-hover-handle-color); + background: token-utils.slot(unselected-hover-handle-color); } .mdc-switch--unselected:enabled:focus:not(:active) & { - @include token-utils.create-token-slot(background, unselected-focus-handle-color); + background: token-utils.slot(unselected-focus-handle-color); } .mdc-switch--unselected:enabled:active & { - @include token-utils.create-token-slot(background, unselected-pressed-handle-color); + background: token-utils.slot(unselected-pressed-handle-color); } .mdc-switch--unselected.mdc-switch--disabled & { - @include token-utils.create-token-slot(background, disabled-unselected-handle-color); + background: token-utils.slot(disabled-unselected-handle-color); } } &::before { - @include token-utils.create-token-slot(background, handle-surface-color); + background: token-utils.slot(handle-surface-color); } } } @@ -368,16 +366,16 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc right: 0; top: 0; - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch:enabled & { - @include token-utils.create-token-slot(box-shadow, handle-elevation-shadow); + box-shadow: token-utils.slot(handle-elevation-shadow); } #{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &, #{$_interactive-disabled-selector}:focus:not(:active) &, #{$_interactive-disabled-selector}:active &, .mdc-switch.mdc-switch--disabled & { - @include token-utils.create-token-slot(box-shadow, disabled-handle-elevation-shadow); + box-shadow: token-utils.slot(disabled-handle-elevation-shadow); } } } @@ -389,9 +387,9 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc transform: translate(-50%, -50%); z-index: -1; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(width, state-layer-size); - @include token-utils.create-token-slot(height, state-layer-size); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(state-layer-size); + height: token-utils.slot(state-layer-size); } &::after { @@ -416,35 +414,35 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc opacity: 0.12; } - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { #{$_interactive-disabled-selector}:enabled:focus &, #{$_interactive-disabled-selector}:enabled:active &, #{$_interactive-disabled-selector}:enabled:hover:not(:focus) &, .mdc-switch--unselected:enabled:hover:not(:focus) & { - @include token-utils.create-token-slot(background, unselected-hover-state-layer-color); + background: token-utils.slot(unselected-hover-state-layer-color); } .mdc-switch--unselected:enabled:focus & { - @include token-utils.create-token-slot(background, unselected-focus-state-layer-color); + background: token-utils.slot(unselected-focus-state-layer-color); } .mdc-switch--unselected:enabled:active & { - @include token-utils.create-token-slot(background, unselected-pressed-state-layer-color); - @include token-utils.create-token-slot(opacity, unselected-pressed-state-layer-opacity); + background: token-utils.slot(unselected-pressed-state-layer-color); + opacity: token-utils.slot(unselected-pressed-state-layer-opacity); transition: opacity 75ms linear; } .mdc-switch--selected:enabled:hover:not(:focus) & { - @include token-utils.create-token-slot(background, selected-hover-state-layer-color); + background: token-utils.slot(selected-hover-state-layer-color); } .mdc-switch--selected:enabled:focus & { - @include token-utils.create-token-slot(background, selected-focus-state-layer-color); + background: token-utils.slot(selected-focus-state-layer-color); } .mdc-switch--selected:enabled:active & { - @include token-utils.create-token-slot(background, selected-pressed-state-layer-color); - @include token-utils.create-token-slot(opacity, selected-pressed-state-layer-opacity); + background: token-utils.slot(selected-pressed-state-layer-color); + opacity: token-utils.slot(selected-pressed-state-layer-opacity); transition: opacity 75ms linear; } } @@ -460,13 +458,13 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc // Works around a rendering issue in Safari 18.3 (see #30487). transform: translateZ(0); - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch--disabled.mdc-switch--unselected & { - @include token-utils.create-token-slot(opacity, disabled-unselected-icon-opacity); + opacity: token-utils.slot(disabled-unselected-icon-opacity); } .mdc-switch--disabled.mdc-switch--selected & { - @include token-utils.create-token-slot(opacity, disabled-selected-icon-opacity); + opacity: token-utils.slot(disabled-selected-icon-opacity); } } } @@ -481,25 +479,25 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc opacity: 0; transition: opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1); - @include token-utils.use-tokens($_mdc-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mdc-switch--unselected & { - @include token-utils.create-token-slot(width, unselected-icon-size); - @include token-utils.create-token-slot(height, unselected-icon-size); - @include token-utils.create-token-slot(fill, unselected-icon-color); + width: token-utils.slot(unselected-icon-size); + height: token-utils.slot(unselected-icon-size); + fill: token-utils.slot(unselected-icon-color); } .mdc-switch--unselected.mdc-switch--disabled & { - @include token-utils.create-token-slot(fill, disabled-unselected-icon-color); + fill: token-utils.slot(disabled-unselected-icon-color); } .mdc-switch--selected & { - @include token-utils.create-token-slot(width, selected-icon-size); - @include token-utils.create-token-slot(height, selected-icon-size); - @include token-utils.create-token-slot(fill, selected-icon-color); + width: token-utils.slot(selected-icon-size); + height: token-utils.slot(selected-icon-size); + fill: token-utils.slot(selected-icon-color); } .mdc-switch--selected.mdc-switch--disabled & { - @include token-utils.create-token-slot(fill, disabled-selected-icon-color); + fill: token-utils.slot(disabled-selected-icon-color); } } } @@ -542,13 +540,13 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc } .mat-internal-form-field { - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(color, label-text-color); - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(font-weight, label-text-weight); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(label-text-color); + font-family: token-utils.slot(label-text-font); + line-height: token-utils.slot(label-text-line-height); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + font-weight: token-utils.slot(label-text-weight); } } @@ -580,6 +578,6 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc // TODO(wagnermaciel): Use our custom token system to emit this css rule. .mdc-switch--disabled + label { - color: var(--mdc-switch-disabled-label-text-color); + color: var(--mat-slide-toggle-disabled-label-text-color); } } diff --git a/src/material/slide-toggle/testing/BUILD.bazel b/src/material/slide-toggle/testing/BUILD.bazel index bcd4b02c4454..38263c705b7d 100644 --- a/src/material/slide-toggle/testing/BUILD.bazel +++ b/src/material/slide-toggle/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -14,24 +14,24 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ - "//src/cdk/coercion", - ], deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/coercion", + "//src/cdk/testing", ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/slide-toggle", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/slider/BUILD.bazel b/src/material/slider/BUILD.bazel index afc3c4da9d43..cf4650d2014e 100644 --- a/src/material/slider/BUILD.bazel +++ b/src/material/slider/BUILD.bazel @@ -3,56 +3,97 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_e2e_test_library", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "slider", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":slider_scss", - ":slider_thumb_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-slider.scss", + ], deps = [ - "//src/cdk/bidi", - "//src/cdk/platform", - "//src/material/core", - "@npm//@angular/forms", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-slider.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "slider_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "theme", + srcs = [ + "_slider-theme.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "slider_scss", + name = "slider-css", src = "slider.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "slider_thumb_scss", + name = "slider-thumb-css", src = "slider-thumb.scss", ) +ng_project( + name = "slider", + srcs = [ + "index.ts", + "module.ts", + "public-api.ts", + "slider.ts", + "slider-input.ts", + "slider-interface.ts", + "slider-thumb.ts", + ], + assets = [ + "slider.html", + "slider-thumb.html", + ":slider-css", + ":slider-thumb-css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src/cdk/bidi", + "//src/cdk/platform", + "//src/material/core", + ], +) + markdown_to_html( name = "overview", srcs = [":slider.md"], @@ -60,7 +101,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":slider_scss_lib"], + srcs = [":theme"], ) filegroup( @@ -72,22 +113,24 @@ filegroup( # Testing ########### -ng_test_library( +ts_project( name = "slider_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":slider", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/platform", "//src/cdk/testing/private", "//src/material/core", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -98,17 +141,16 @@ ng_web_test_suite( ], ) -ng_e2e_test_library( +ts_project( name = "e2e_test_sources", + testonly = True, srcs = glob(["**/*.e2e.spec.ts"]), - deps = [ - ":slider", - ], + deps = ["//:node_modules/protractor"], ) e2e_test_suite( name = "e2e_tests", deps = [ - ":e2e_test_sources", + ":e2e_test_sources_legacy", ], ) diff --git a/src/material/core/tokens/m2/mdc/_slider.scss b/src/material/slider/_m2-slider.scss similarity index 53% rename from src/material/core/tokens/m2/mdc/_slider.scss rename to src/material/slider/_m2-slider.scss index 4bb875b28ce7..054c97a14c47 100644 --- a/src/material/core/tokens/m2/mdc/_slider.scss +++ b/src/material/slider/_m2-slider.scss @@ -1,128 +1,89 @@ @use 'sass:map'; -@use '../../../theming/inspection'; -@use '../../token-definition'; -@use '../../../style/elevation'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/style/sass-utils'; +@use '../core/theming/inspection'; +@use '../core/style/elevation'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, slider); +$prefix: (mat, slider); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. -// -// Tokens that are available in MDC, but not used in Angular Material should be mapped to `null`. -// `null` indicates that we are intentionally choosing not to emit a slot or value for the token in -// our CSS. @function get-unthemable-tokens() { @return ( - // Height of active track. active-track-height: 6px, - // Border radius of active track. active-track-shape: 9999px, - // Height of handle. + handle-elevation: elevation.get-box-shadow(1), handle-height: 20px, - // Border radius of handle. handle-shape: 50%, - // Width of handle. handle-width: 20px, - // Height of inactive track. inactive-track-height: 4px, - // Border radius of inactive track. inactive-track-shape: 9999px, - // Width of handle when overlapping with another handle below it. + value-indicator-border-radius: 4px, + value-indicator-caret-display: block, + value-indicator-container-transform: translateX(-50%), + value-indicator-height: 32px, + value-indicator-padding: 0 12px, + value-indicator-text-transform: none, + value-indicator-width: auto, with-overlap-handle-outline-width: 1px, - // Opacity of active container with tick marks. with-tick-marks-active-container-opacity: 0.6, - // Border radius of container with tick marks. with-tick-marks-container-shape: 50%, - // Size of container with tick marks. with-tick-marks-container-size: 2px, - // Opacity of inactive container with tick marks. with-tick-marks-inactive-container-opacity: 0.6, - // Elevation for the handle. - handle-elevation: elevation.get-box-shadow(1), - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - disabled-handle-elevation: null, - label-container-elevation: null, - label-container-height: null, - track-elevation: null, - focus-state-layer-opacity: null, - hover-state-layer-opacity: null, - pressed-state-layer-opacity: null, - handle-shadow-color: null, - // MDC does not seem to use these tokens. - hover-state-layer-color: null, - pressed-handle-color: null, ); } // Tokens that can be configured through Angular Material's color theming API. @function get-color-tokens($theme) { - $elevation: inspection.get-theme-color($theme, foreground, elevation); + $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary); $is-dark: inspection.get-theme-type($theme) == dark; + $elevation: inspection.get-theme-color($theme, foreground, elevation); $on-surface: if($is-dark, #fff, #000); - // The default for tokens that rely on the theme will use the primary palette - $theme-color-tokens: private-get-color-palette-color-tokens($theme, primary); - @return map.merge( $theme-color-tokens, ( - // Color of active track when disabled. disabled-active-track-color: $on-surface, - // Color of handle when disabled. disabled-handle-color: $on-surface, - // Color of inactive track when disabled. disabled-inactive-track-color: $on-surface, - // Color of container label. label-container-color: $on-surface, - // Color of label text. label-label-text-color: if($is-dark, #000, #fff), - // Color of handle outline when overlapping with another handle below it. + value-indicator-opacity: if($is-dark, 0.9, 0.6), with-overlap-handle-outline-color: #fff, - // Color of container with tick marks when disabled. with-tick-marks-disabled-container-color: $on-surface, - ) + ), ); } // Generates tokens for the slider properties that change based on the theme. @function private-get-color-palette-color-tokens($theme, $palette-name) { $color: inspection.get-theme-color($theme, $palette-name); + $hover-ripple-color: if($color == null, null, #{rgba($color, 0.05)}); + $focus-ripple-color: if($color == null, null, #{rgba($color, 0.2)}); $on-color: inspection.get-theme-color($theme, $palette-name, default-contrast); @return ( - // Color of handle. - handle-color: $color, - // Color of handle when focused. + active-track-color: $color, focus-handle-color: $color, - // Color of handle on hover. + focus-state-layer-color: $focus-ripple-color, + handle-color: $color, hover-handle-color: $color, - // Color of handle when active. - active-track-color: $color, - // Color of inactive track. + hover-state-layer-color: $hover-ripple-color, inactive-track-color: $color, - // Color of inactive container with tick marks. - with-tick-marks-inactive-container-color: $color, - // Color of active container with tick marks. + ripple-color: $color, with-tick-marks-active-container-color: $on-color, + with-tick-marks-inactive-container-color: $color, ); } // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { @return ( - // Font for label text. label-label-text-font: inspection.get-theme-typography($theme, subtitle-2, font-family), - // Font size of label text. label-label-text-size: inspection.get-theme-typography($theme, subtitle-2, font-size), - // Line height of label text. label-label-text-line-height: inspection.get-theme-typography($theme, subtitle-2, line-height), - // Letter spacing of label text. label-label-text-tracking: inspection.get-theme-typography($theme, subtitle-2, letter-spacing), - // Font weight of label text. label-label-text-weight: inspection.get-theme-typography($theme, subtitle-2, font-weight), ); } @@ -136,9 +97,9 @@ $prefix: (mdc, slider); // This is used to create token slots. @function get-token-slots() { @return sass-utils.deep-merge-all( - get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-unthemable-tokens(), + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/slider/_m3-slider.scss b/src/material/slider/_m3-slider.scss new file mode 100644 index 000000000000..46ef07d5d071 --- /dev/null +++ b/src/material/slider/_m3-slider.scss @@ -0,0 +1,121 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; +@use '../core/style/elevation'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, slider); + +/// Generates custom tokens for the mat-slider. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-slider +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + ripple-color: map.get($systems, md-sys-color, primary), + hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, primary), $alpha: 0.05), + focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, primary), $alpha: 0.2), + value-indicator-opacity: m3-utils.hardcode(1, $exclude-hardcoded), + value-indicator-padding: m3-utils.hardcode(0, $exclude-hardcoded), + value-indicator-width: m3-utils.hardcode(28px, $exclude-hardcoded), + value-indicator-height: m3-utils.hardcode(28px, $exclude-hardcoded), + value-indicator-caret-display: m3-utils.hardcode(none, $exclude-hardcoded), + value-indicator-border-radius: + m3-utils.hardcode(50% 50% 50% 0, $exclude-hardcoded), + value-indicator-text-transform: + m3-utils.hardcode(rotate(45deg), $exclude-hardcoded), + value-indicator-container-transform: + m3-utils.hardcode(translateX(-50%) rotate(-45deg), $exclude-hardcoded), + active-track-color: map.get($systems, md-sys-color, primary), + active-track-height: if($exclude-hardcoded, null, 4px), + active-track-shape: map.get($systems, md-sys-shape, corner-full), + disabled-active-track-color: map.get($systems, md-sys-color, on-surface), + disabled-handle-color: map.get($systems, md-sys-color, on-surface), + disabled-inactive-track-color: map.get($systems, md-sys-color, on-surface), + focus-handle-color: map.get($systems, md-sys-color, primary), + handle-color: map.get($systems, md-sys-color, primary), + handle-elevation: map.get($systems, md-sys-elevation, level1), + handle-height: if($exclude-hardcoded, null, 20px), + handle-shape: map.get($systems, md-sys-shape, corner-full), + handle-width: if($exclude-hardcoded, null, 20px), + hover-handle-color: map.get($systems, md-sys-color, primary), + inactive-track-color: map.get($systems, md-sys-color, surface-variant), + inactive-track-height: if($exclude-hardcoded, null, 4px), + inactive-track-shape: map.get($systems, md-sys-shape, corner-full), + label-container-color: map.get($systems, md-sys-color, primary), + label-label-text-color: map.get($systems, md-sys-color, on-primary), + label-label-text-font: map.get($systems, md-sys-typescale, label-medium-font), + label-label-text-line-height: map.get($systems, md-sys-typescale, label-medium-line-height), + label-label-text-size: map.get($systems, md-sys-typescale, label-medium-size), + label-label-text-tracking: map.get($systems, md-sys-typescale, label-medium-tracking), + label-label-text-weight: map.get($systems, md-sys-typescale, label-medium-weight), + with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-primary), + with-overlap-handle-outline-width: if($exclude-hardcoded, null, 1px), + with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-primary), + with-tick-marks-active-container-opacity: if($exclude-hardcoded, null, 0.38), + with-tick-marks-container-shape: map.get($systems, md-sys-shape, corner-full), + with-tick-marks-container-size: if($exclude-hardcoded, null, 2px), + with-tick-marks-disabled-container-color: map.get($systems, md-sys-color, on-surface), + with-tick-marks-inactive-container-color: map.get($systems, md-sys-color, on-surface-variant), + with-tick-marks-inactive-container-opacity: if($exclude-hardcoded, null, 0.38) + ); + $handle-elevation: map.get($tokens, handle-elevation); + + @if ($handle-elevation != null) { + $tokens: map.set($tokens, handle-elevation, elevation.get-box-shadow($handle-elevation)); + } + + $variant-tokens: ( + primary: (), // Default, no overrides needed + secondary: ( + ripple-color: map.get($systems, md-sys-color, secondary), + hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, secondary), $alpha: 0.05), + focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, secondary), $alpha: 0.2), + active-track-color: map.get($systems, md-sys-color, secondary), + focus-handle-color: map.get($systems, md-sys-color, secondary), + handle-color: map.get($systems, md-sys-color, secondary), + hover-handle-color: map.get($systems, md-sys-color, secondary), + label-container-color: map.get($systems, md-sys-color, secondary), + label-label-text-color: map.get($systems, md-sys-color, on-secondary), + with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-secondary), + with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-secondary), + ), + tertiary: ( + ripple-color: map.get($systems, md-sys-color, tertiary), + hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, tertiary), $alpha: 0.05), + focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, tertiary), $alpha: 0.2), + active-track-color: map.get($systems, md-sys-color, tertiary), + focus-handle-color: map.get($systems, md-sys-color, tertiary), + handle-color: map.get($systems, md-sys-color, tertiary), + hover-handle-color: map.get($systems, md-sys-color, tertiary), + label-container-color: map.get($systems, md-sys-color, tertiary), + label-label-text-color: map.get($systems, md-sys-color, on-tertiary), + with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-tertiary), + with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-tertiary), + ), + error: ( + ripple-color: map.get($systems, md-sys-color, error), + hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, error), $alpha: 0.05), + focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, error), $alpha: 0.2), + active-track-color: map.get($systems, md-sys-color, error), + focus-handle-color: map.get($systems, md-sys-color, error), + handle-color: map.get($systems, md-sys-color, error), + hover-handle-color: map.get($systems, md-sys-color, error), + label-container-color: map.get($systems, md-sys-color, error), + label-label-text-color: map.get($systems, md-sys-color, on-error), + with-overlap-handle-outline-color: map.get($systems, md-sys-color, on-error), + with-tick-marks-active-container-color: map.get($systems, md-sys-color, on-error), + ), + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/slider/_slider-theme.scss b/src/material/slider/_slider-theme.scss index 52f0210cd2fe..9c500dcca421 100644 --- a/src/material/slider/_slider-theme.scss +++ b/src/material/slider/_slider-theme.scss @@ -4,8 +4,7 @@ @use '../core/typography/typography'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/slider' as tokens-mat-slider; -@use '../core/tokens/m2/mdc/slider' as tokens-mdc-slider; +@use './m2-slider'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for the mat-slider. @@ -16,13 +15,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.get-unthemable-tokens() - ); - @include token-utils.create-token-values-mixed( - tokens-mat-slider.$prefix, - tokens-mat-slider.get-unthemable-tokens() - ); + m2-slider.$prefix, m2-slider.get-unthemable-tokens()); } } } @@ -38,34 +31,16 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-slider.$prefix, - tokens-mat-slider.get-color-tokens($theme) - ); + m2-slider.$prefix, m2-slider.get-color-tokens($theme)); .mat-accent { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.private-get-color-palette-color-tokens($theme, accent) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-slider.$prefix, - tokens-mat-slider.private-get-color-palette-color-tokens($theme, accent) - ); + m2-slider.$prefix, m2-slider.private-get-color-palette-color-tokens($theme, accent)); } .mat-warn { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.private-get-color-palette-color-tokens($theme, warn) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-slider.$prefix, - tokens-mat-slider.private-get-color-palette-color-tokens($theme, warn) - ); + m2-slider.$prefix, m2-slider.private-get-color-palette-color-tokens($theme, warn)); } } } @@ -79,9 +54,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.get-typography-tokens($theme) - ); + m2-slider.$prefix, m2-slider.get-typography-tokens($theme)); } } } @@ -94,9 +67,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-slider.$prefix, - tokens-mdc-slider.get-density-tokens($theme) - ); + m2-slider.$prefix, m2-slider.get-density-tokens($theme)); } } } @@ -105,12 +76,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-slider.$prefix, - tokens: tokens-mat-slider.get-token-slots(), - ), - ( - namespace: tokens-mdc-slider.$prefix, - tokens: tokens-mdc-slider.get-token-slots(), + namespace: m2-slider.$prefix, + tokens: m2-slider.get-token-slots(), ), ); } @@ -149,8 +116,6 @@ @include validation.selector-defined( 'Calls to Angular Material theme mixins with an M3 theme must be wrapped in a selector' ); - $mdc-slider-tokens: token-utils.get-tokens-for($tokens, tokens-mdc-slider.$prefix, $options...); - $mat-slider-tokens: token-utils.get-tokens-for($tokens, tokens-mat-slider.$prefix, $options...); - @include token-utils.create-token-values(tokens-mdc-slider.$prefix, $mdc-slider-tokens); - @include token-utils.create-token-values(tokens-mat-slider.$prefix, $mat-slider-tokens); + $mat-slider-tokens: token-utils.get-tokens-for($tokens, m2-slider.$prefix, $options...); + @include token-utils.create-token-values(m2-slider.$prefix, $mat-slider-tokens); } diff --git a/src/material/slider/slider.e2e.spec.ts b/src/material/slider/slider.e2e.spec.ts index a1935579f4c1..f402c4645211 100644 --- a/src/material/slider/slider.e2e.spec.ts +++ b/src/material/slider/slider.e2e.spec.ts @@ -6,8 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {$, browser, by, element, ElementFinder} from 'protractor'; -import {logging} from 'selenium-webdriver'; +import {$, browser, by, element, ElementFinder, logging} from 'protractor'; describe('MatSlider', () => { const getStandardSlider = () => element(by.id('standard-slider')); diff --git a/src/material/slider/slider.scss b/src/material/slider/slider.scss index 0e282262ca1a..1bdbfbf5b7fa 100644 --- a/src/material/slider/slider.scss +++ b/src/material/slider/slider.scss @@ -1,13 +1,13 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/slider' as tokens-mat-slider; -@use '../core/tokens/m2/mdc/slider' as tokens-mdc-slider; +@use './m2-slider'; @use '../core/tokens/token-utils'; @use '../core/style/vendor-prefixes'; $mat-slider-min-size: 128px !default; $mat-slider-horizontal-margin: 8px !default; -$_mdc-slots: (tokens-mdc-slider.$prefix, tokens-mdc-slider.get-token-slots()); -$_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); + +$token-prefix: m2-slider.$prefix; +$token-slots: m2-slider.get-token-slots(); .mdc-slider__track { position: absolute; @@ -16,8 +16,8 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); width: 100%; pointer-events: none; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(height, inactive-track-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(inactive-track-height); } } @@ -32,10 +32,10 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); .mdc-slider__track--active { overflow: hidden; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(border-radius, active-track-shape); - $active-height-ref: token-utils.get-token-variable(active-track-height); - $inactive-height-ref: token-utils.get-token-variable(inactive-track-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-radius: token-utils.slot(active-track-shape); + $active-height-ref: token-utils.slot(active-track-height); + $inactive-height-ref: token-utils.slot(inactive-track-height); height: $active-height-ref; top: calc((#{$inactive-height-ref} - #{$active-height-ref}) / 2); } @@ -50,12 +50,12 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); transform-origin: left; transition: transform 80ms ease; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(border-color, active-track-color); - @include token-utils.create-token-slot(border-top-width, active-track-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(active-track-color); + border-top-width: token-utils.slot(active-track-height); .mdc-slider--disabled & { - @include token-utils.create-token-slot(border-color, disabled-active-track-color); + border-color: token-utils.slot(disabled-active-track-color); } } @@ -70,13 +70,13 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); top: 0; opacity: 0.24; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(background-color, inactive-track-color); - @include token-utils.create-token-slot(height, inactive-track-height); - @include token-utils.create-token-slot(border-radius, inactive-track-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(inactive-track-color); + height: token-utils.slot(inactive-track-height); + border-radius: token-utils.slot(inactive-track-shape); .mdc-slider--disabled & { - @include token-utils.create-token-slot(background-color, disabled-inactive-track-color); + background-color: token-utils.slot(disabled-inactive-track-color); opacity: 0.24; } } @@ -106,8 +106,8 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); position: absolute; transform: translateX(-50%); - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(transform, value-indicator-container-transform); + @include token-utils.use-tokens($token-prefix, $token-slots) { + transform: token-utils.slot(value-indicator-container-transform); } .mdc-slider__thumb--with-indicator & { @@ -130,17 +130,17 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); // the word-break of the value indicator. word-break: normal; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(background-color, label-container-color); - @include token-utils.create-token-slot(color, label-label-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(label-container-color); + color: token-utils.slot(label-label-text-color); } - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(width, value-indicator-width); - @include token-utils.create-token-slot(height, value-indicator-height); - @include token-utils.create-token-slot(padding, value-indicator-padding); - @include token-utils.create-token-slot(opacity, value-indicator-opacity); - @include token-utils.create-token-slot(border-radius, value-indicator-border-radius); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(value-indicator-width); + height: token-utils.slot(value-indicator-height); + padding: token-utils.slot(value-indicator-padding); + opacity: token-utils.slot(value-indicator-opacity); + border-radius: token-utils.slot(value-indicator-border-radius); } .mdc-slider__thumb--with-indicator & { @@ -160,12 +160,12 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); transform: translateX(-50%); width: 0; - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(display, value-indicator-caret-display); + @include token-utils.use-tokens($token-prefix, $token-slots) { + display: token-utils.slot(value-indicator-caret-display); } - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(border-top-color, label-container-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-color: token-utils.slot(label-container-color); } } @@ -190,17 +190,17 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); .mdc-slider__value-indicator-text { text-align: center; - @include token-utils.use-tokens($_mat-slots...) { - @include token-utils.create-token-slot(width, value-indicator-width); - @include token-utils.create-token-slot(transform, value-indicator-text-transform); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(value-indicator-width); + transform: token-utils.slot(value-indicator-text-transform); } - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(font-family, label-label-text-font); - @include token-utils.create-token-slot(font-size, label-label-text-size); - @include token-utils.create-token-slot(font-weight, label-label-text-weight); - @include token-utils.create-token-slot(line-height, label-label-text-line-height); - @include token-utils.create-token-slot(letter-spacing, label-label-text-tracking); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(label-label-text-font); + font-size: token-utils.slot(label-label-text-size); + font-weight: token-utils.slot(label-label-text-weight); + line-height: token-utils.slot(label-label-text-line-height); + letter-spacing: token-utils.slot(label-label-text-tracking); } } @@ -235,31 +235,31 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); transform: translate(-50%, -50%); border-style: solid; - @include token-utils.use-tokens($_mdc-slots...) { - $width-ref: token-utils.get-token-variable(handle-width); - $height-ref: token-utils.get-token-variable(handle-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + $width-ref: token-utils.slot(handle-width); + $height-ref: token-utils.slot(handle-height); width: $width-ref; height: $height-ref; border-width: calc(#{$height-ref} / 2) calc(#{$width-ref} / 2); - @include token-utils.create-token-slot(box-shadow, handle-elevation); - @include token-utils.create-token-slot(background-color, handle-color); - @include token-utils.create-token-slot(border-color, handle-color); - @include token-utils.create-token-slot(border-radius, handle-shape); + box-shadow: token-utils.slot(handle-elevation); + background-color: token-utils.slot(handle-color); + border-color: token-utils.slot(handle-color); + border-radius: token-utils.slot(handle-shape); .mdc-slider__thumb:hover & { - @include token-utils.create-token-slot(background-color, hover-handle-color); - @include token-utils.create-token-slot(border-color, hover-handle-color); + background-color: token-utils.slot(hover-handle-color); + border-color: token-utils.slot(hover-handle-color); } .mdc-slider__thumb--focused & { - @include token-utils.create-token-slot(background-color, focus-handle-color); - @include token-utils.create-token-slot(border-color, focus-handle-color); + background-color: token-utils.slot(focus-handle-color); + border-color: token-utils.slot(focus-handle-color); } .mdc-slider--disabled & { - @include token-utils.create-token-slot(background-color, disabled-handle-color); - @include token-utils.create-token-slot(border-color, disabled-handle-color); + background-color: token-utils.slot(disabled-handle-color); + border-color: token-utils.slot(disabled-handle-color); } } @@ -269,9 +269,9 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); border: solid 1px #fff; box-sizing: content-box; - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(border-color, with-overlap-handle-outline-color); - @include token-utils.create-token-slot(border-width, with-overlap-handle-outline-width); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-color: token-utils.slot(with-overlap-handle-outline-color); + border-width: token-utils.slot(with-overlap-handle-outline-width); } } } @@ -289,32 +289,29 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); .mdc-slider__tick-mark--active, .mdc-slider__tick-mark--inactive { - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(width, with-tick-marks-container-size); - @include token-utils.create-token-slot(height, with-tick-marks-container-size); - @include token-utils.create-token-slot(border-radius, with-tick-marks-container-shape); + @include token-utils.use-tokens($token-prefix, $token-slots) { + width: token-utils.slot(with-tick-marks-container-size); + height: token-utils.slot(with-tick-marks-container-size); + border-radius: token-utils.slot(with-tick-marks-container-shape); } } .mdc-slider__tick-mark--inactive { - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(opacity, with-tick-marks-inactive-container-opacity); - @include token-utils.create-token-slot(background-color, - with-tick-marks-inactive-container-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + opacity: token-utils.slot(with-tick-marks-inactive-container-opacity); + background-color: token-utils.slot(with-tick-marks-inactive-container-color); .mdc-slider--disabled & { - @include token-utils.create-token-slot(opacity, with-tick-marks-inactive-container-opacity); - @include token-utils.create-token-slot(background-color, - with-tick-marks-disabled-container-color); + opacity: token-utils.slot(with-tick-marks-inactive-container-opacity); + background-color: token-utils.slot(with-tick-marks-disabled-container-color); } } } .mdc-slider__tick-mark--active { - @include token-utils.use-tokens($_mdc-slots...) { - @include token-utils.create-token-slot(opacity, with-tick-marks-active-container-opacity); - @include token-utils.create-token-slot(background-color, - with-tick-marks-active-container-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + opacity: token-utils.slot(with-tick-marks-active-container-opacity); + background-color: token-utils.slot(with-tick-marks-active-container-color); } } @@ -392,21 +389,21 @@ $_mat-slots: (tokens-mat-slider.$prefix, tokens-mat-slider.get-token-slots()); } // Add slots for custom Angular Material slider tokens. - @include token-utils.use-tokens($_mat-slots...) { + @include token-utils.use-tokens($token-prefix, $token-slots) { // The `.mat-ripple` wrapper here is redundant, but we need it to // increase the specificity due to how some styles are setup in g3. .mat-ripple { .mat-ripple-element { - @include token-utils.create-token-slot(background-color, ripple-color); + background-color: token-utils.slot(ripple-color); } .mat-mdc-slider-hover-ripple { - @include token-utils.create-token-slot(background-color, hover-state-layer-color); + background-color: token-utils.slot(hover-state-layer-color); } .mat-mdc-slider-focus-ripple, .mat-mdc-slider-active-ripple { - @include token-utils.create-token-slot(background-color, focus-state-layer-color); + background-color: token-utils.slot(focus-state-layer-color); } } } diff --git a/src/material/slider/testing/BUILD.bazel b/src/material/slider/testing/BUILD.bazel index 2eeddfde10d7..c69b310bcd62 100644 --- a/src/material/slider/testing/BUILD.bazel +++ b/src/material/slider/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,20 +9,20 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ + deps = [ "//src/cdk/coercion", + "//src/cdk/testing", "//src/material/slider", ], - deps = [ - "//src/cdk/testing:testing_rjs", - ], ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/slider", diff --git a/src/material/snack-bar/BUILD.bazel b/src/material/snack-bar/BUILD.bazel index 7c6ba68eac81..104746e4a4e6 100644 --- a/src/material/snack-bar/BUILD.bazel +++ b/src/material/snack-bar/BUILD.bazel @@ -2,54 +2,99 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "snack-bar", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":simple_snack_bar_scss", - ":snack_bar_container_scss", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-snack-bar.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/overlay", - "//src/cdk/portal", - "//src/material/button", - "//src/material/core", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "snack_bar_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-snack-bar.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) -sass_binary( - name = "simple_snack_bar_scss", - src = "simple-snack-bar.scss", +sass_library( + name = "theme", + srcs = [ + "_snack-bar-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", + ], ) sass_binary( - name = "snack_bar_container_scss", + name = "container_css", src = "snack-bar-container.scss", deps = [ + ":m2", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/tokens:token_utils", + ], +) + +sass_binary( + name = "css", + src = "simple-snack-bar.scss", +) + +ng_project( + name = "snack-bar", + srcs = [ + "index.ts", + "module.ts", + "public-api.ts", + "simple-snack-bar.ts", + "snack-bar.ts", + "snack-bar-animations.ts", + "snack-bar-config.ts", + "snack-bar-container.ts", + "snack-bar-content.ts", + "snack-bar-ref.ts", + ], + assets = [ + "simple-snack-bar.html", + "snack-bar-container.html", + ":container_css", + ":css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/overlay", + "//src/cdk/portal", + "//src/material/button", + "//src/material/core", ], ) @@ -57,19 +102,21 @@ sass_binary( # Testing ########### -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":snack-bar", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/a11y", "//src/cdk/overlay", "//src/cdk/platform", - "@npm//@angular/common", - "@npm//@angular/platform-browser", ], ) @@ -87,7 +134,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":snack_bar_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_snack-bar.scss b/src/material/snack-bar/_m2-snack-bar.scss similarity index 52% rename from src/material/core/tokens/m2/mat/_snack-bar.scss rename to src/material/snack-bar/_m2-snack-bar.scss index d9f650f73c1b..9db12843824a 100644 --- a/src/material/core/tokens/m2/mat/_snack-bar.scss +++ b/src/material/snack-bar/_m2-snack-bar.scss @@ -1,6 +1,8 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use 'sass:meta'; +@use 'sass:color'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, snack-bar); @@ -8,14 +10,22 @@ $prefix: (mat, snack-bar); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @function get-unthemable-tokens() { - @return (); + @return ( + container-shape: 4px, + ); } // Tokens that can be configured through Angular Material's color theming API. @function get-color-tokens($theme) { $is-dark: inspection.get-theme-type($theme) == dark; + $surface: inspection.get-theme-color($theme, background, card); @return ( + container-color: if( + meta.type-of($surface) == color, + color.mix(if($is-dark, #fff, #000), $surface, 80%), + $surface), + supporting-text-color: if(meta.type-of($surface) == color, rgba($surface, 0.87), $surface), button-color: if( $is-dark, @@ -27,7 +37,12 @@ $prefix: (mat, snack-bar); // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { - @return (); + @return ( + supporting-text-font: inspection.get-theme-typography($theme, body-2, font-family), + supporting-text-line-height: inspection.get-theme-typography($theme, body-2, line-height), + supporting-text-size: inspection.get-theme-typography($theme, body-2, font-size), + supporting-text-weight: inspection.get-theme-typography($theme, body-2, font-weight), + ); } // Tokens that can be configured through Angular Material's density theming API. @@ -40,8 +55,8 @@ $prefix: (mat, snack-bar); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/snack-bar/_m3-snack-bar.scss b/src/material/snack-bar/_m3-snack-bar.scss new file mode 100644 index 000000000000..52ad45f0d2e8 --- /dev/null +++ b/src/material/snack-bar/_m3-snack-bar.scss @@ -0,0 +1,25 @@ +@use 'sass:map'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, snack-bar); + +/// Generates custom tokens for the mat-snack-bar. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-snack-bar +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + button-color: map.get($systems, md-sys-color, inverse-primary), + container-color: map.get($systems, md-sys-color, inverse-surface), + container-shape: map.get($systems, md-sys-shape, corner-extra-small), + supporting-text-color: map.get($systems, md-sys-color, inverse-on-surface), + supporting-text-font: map.get($systems, md-sys-typescale, body-medium-font), + supporting-text-line-height: map.get($systems, md-sys-typescale, body-medium-line-height), + supporting-text-size: map.get($systems, md-sys-typescale, body-medium-size), + supporting-text-weight: map.get($systems, md-sys-typescale, body-medium-weight), + ); + + @return m3-utils.namespace($prefix, $tokens, $token-slots); +} diff --git a/src/material/snack-bar/_snack-bar-theme.scss b/src/material/snack-bar/_snack-bar-theme.scss index ed50ba742648..ec133baaab0d 100644 --- a/src/material/snack-bar/_snack-bar-theme.scss +++ b/src/material/snack-bar/_snack-bar-theme.scss @@ -5,8 +5,7 @@ @use '../core/style/sass-utils'; @use '../core/typography/typography'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mdc/snack-bar' as tokens-mdc-snack-bar; -@use '../core/tokens/m2/mat/snack-bar' as tokens-mat-snack-bar; +@use './m2-snack-bar'; @mixin base($theme) { @if inspection.get-theme-version($theme) == 1 { @@ -15,9 +14,7 @@ // Add default values for tokens not related to color, typography, or density. @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-snack-bar.$prefix, - tokens-mdc-snack-bar.get-unthemable-tokens() - ); + m2-snack-bar.$prefix, m2-snack-bar.get-unthemable-tokens()); } } } @@ -28,13 +25,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-snack-bar.$prefix, - tokens-mdc-snack-bar.get-color-tokens($theme) - ); - @include token-utils.create-token-values-mixed( - tokens-mat-snack-bar.$prefix, - tokens-mat-snack-bar.get-color-tokens($theme) - ); + m2-snack-bar.$prefix, m2-snack-bar.get-color-tokens($theme)); } } } @@ -45,9 +36,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-snack-bar.$prefix, - tokens-mdc-snack-bar.get-typography-tokens($theme) - ); + m2-snack-bar.$prefix, m2-snack-bar.get-typography-tokens($theme)); } } } @@ -59,12 +48,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mdc-snack-bar.$prefix, - tokens: tokens-mdc-snack-bar.get-token-slots(), - ), - ( - namespace: tokens-mat-snack-bar.$prefix, - tokens: tokens-mat-snack-bar.get-token-slots(), + namespace: m2-snack-bar.$prefix, + tokens: m2-snack-bar.get-token-slots(), ), ); } @@ -100,12 +85,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mdc-snack-bar.$prefix, - map.get($tokens, tokens-mdc-snack-bar.$prefix) - ); - @include token-utils.create-token-values( - tokens-mat-snack-bar.$prefix, - map.get($tokens, tokens-mat-snack-bar.$prefix) + m2-snack-bar.$prefix, + map.get($tokens, m2-snack-bar.$prefix) ); } } diff --git a/src/material/snack-bar/snack-bar-container.scss b/src/material/snack-bar/snack-bar-container.scss index 33387620e715..1e03ff9bfb32 100644 --- a/src/material/snack-bar/snack-bar-container.scss +++ b/src/material/snack-bar/snack-bar-container.scss @@ -1,12 +1,14 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mdc/snack-bar' as tokens-mdc-snack-bar; -@use '../core/tokens/m2/mat/snack-bar' as tokens-mat-snack-bar; -@use '../core/tokens/m2/mat/text-button' as tokens-mat-text-button; +@use './m2-snack-bar'; +@use '../button/m2-text-button'; @use '../core/tokens/token-utils'; @use '../core/style/elevation'; $_side-padding: 8px; +$token-prefix: m2-snack-bar.$prefix; +$token-slots: m2-snack-bar.get-token-slots(); + @keyframes _mat-snack-bar-enter { from { transform: scale(0.8); @@ -88,14 +90,11 @@ $_side-padding: 8px; outline: solid 1px; } - @include token-utils.use-tokens( - tokens-mdc-snack-bar.$prefix, - tokens-mdc-snack-bar.get-token-slots() - ) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-snack-bar-container & { - @include token-utils.create-token-slot(color, supporting-text-color); - @include token-utils.create-token-slot(border-radius, container-shape); - @include token-utils.create-token-slot(background-color, container-color); + color: token-utils.slot(supporting-text-color); + border-radius: token-utils.slot(container-shape); + background-color: token-utils.slot(container-color); } } } @@ -112,15 +111,12 @@ $_side-padding: 8px; padding-right: 16px; } - @include token-utils.use-tokens( - tokens-mdc-snack-bar.$prefix, - tokens-mdc-snack-bar.get-token-slots() - ) { + @include token-utils.use-tokens($token-prefix, $token-slots) { .mat-mdc-snack-bar-container & { - @include token-utils.create-token-slot(font-family, supporting-text-font); - @include token-utils.create-token-slot(font-size, supporting-text-size); - @include token-utils.create-token-slot(font-weight, supporting-text-weight); - @include token-utils.create-token-slot(line-height, supporting-text-line-height); + font-family: token-utils.slot(supporting-text-font); + font-size: token-utils.slot(supporting-text-size); + font-weight: token-utils.slot(supporting-text-weight); + line-height: token-utils.slot(supporting-text-line-height); } } } @@ -148,16 +144,13 @@ $_side-padding: 8px; // MDC's `action-label-text-color` should be able to do this, but the button theme has a // higher specificity so it ends up overriding it. Define our own variable that we can // use to control the color instead. - @include token-utils.use-tokens( - tokens-mat-snack-bar.$prefix, - tokens-mat-snack-bar.get-token-slots() - ) { - @include token-utils.create-token-slot(color, button-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(button-color); } } // Darken the ripples in the button so they're visible against the dark background. - @include token-utils.create-token-values-mixed(tokens-mat-text-button.$prefix, ( + @include token-utils.create-token-values-mixed(m2-text-button.$prefix, ( state-layer-color: currentColor, ripple-color: currentColor, )); diff --git a/src/material/snack-bar/snack-bar-container.ts b/src/material/snack-bar/snack-bar-container.ts index 3e43a7de36fe..aaedf7318315 100644 --- a/src/material/snack-bar/snack-bar-container.ts +++ b/src/material/snack-bar/snack-bar-container.ts @@ -6,9 +6,18 @@ * found in the LICENSE file at https://angular.dev/license */ +import {_IdGenerator, AriaLivePoliteness} from '@angular/cdk/a11y'; +import {Platform} from '@angular/cdk/platform'; +import { + BasePortalOutlet, + CdkPortalOutlet, + ComponentPortal, + DomPortal, + TemplatePortal, +} from '@angular/cdk/portal'; +import {DOCUMENT} from '@angular/common'; import { - afterRender, - AfterRenderRef, + afterNextRender, ChangeDetectionStrategy, ChangeDetectorRef, Component, @@ -16,25 +25,15 @@ import { ElementRef, EmbeddedViewRef, inject, + Injector, NgZone, OnDestroy, ViewChild, ViewEncapsulation, } from '@angular/core'; -import {DOCUMENT} from '@angular/common'; -import { - BasePortalOutlet, - CdkPortalOutlet, - ComponentPortal, - DomPortal, - TemplatePortal, -} from '@angular/cdk/portal'; -import {Observable, Subject, of} from 'rxjs'; -import {_IdGenerator, AriaLivePoliteness} from '@angular/cdk/a11y'; -import {Platform} from '@angular/cdk/platform'; -import {MatSnackBarConfig} from './snack-bar-config'; -import {take} from 'rxjs/operators'; +import {Observable, of, Subject} from 'rxjs'; import {_animationsDisabled} from '../core'; +import {MatSnackBarConfig} from './snack-bar-config'; const ENTER_ANIMATION = '_mat-snack-bar-enter'; const EXIT_ANIMATION = '_mat-snack-bar-exit'; @@ -68,7 +67,6 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy private _elementRef = inject>(ElementRef); private _changeDetectorRef = inject(ChangeDetectorRef); private _platform = inject(Platform); - private _rendersRef: AfterRenderRef; protected _animationsDisabled = _animationsDisabled(); snackBarConfig = inject(MatSnackBarConfig); @@ -76,7 +74,7 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy private _trackedModals = new Set(); private _enterFallback: ReturnType | undefined; private _exitFallback: ReturnType | undefined; - private _renders = new Subject(); + private _injector = inject(Injector); /** The number of milliseconds to wait before announcing the snack bar's content. */ private readonly _announceDelay: number = 150; @@ -147,11 +145,6 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy this._role = 'alert'; } } - - // Note: ideally we'd just do an `afterNextRender` in the places where we need to delay - // something, however in some cases (TestBed teardown) the injector can be destroyed at an - // unexpected time, causing the `afterRender` to fail. - this._rendersRef = afterRender(() => this._renders.next(), {manualCleanup: true}); } /** Attach a component portal as content to this snack bar container. */ @@ -206,9 +199,12 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy this._screenReaderAnnounce(); if (this._animationsDisabled) { - this._renders.pipe(take(1)).subscribe(() => { - this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(ENTER_ANIMATION))); - }); + afterNextRender( + () => { + this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(ENTER_ANIMATION))); + }, + {injector: this._injector}, + ); } else { clearTimeout(this._enterFallback); this._enterFallback = setTimeout(() => { @@ -246,9 +242,12 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy clearTimeout(this._announceTimeoutId); if (this._animationsDisabled) { - this._renders.pipe(take(1)).subscribe(() => { - this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(EXIT_ANIMATION))); - }); + afterNextRender( + () => { + this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(EXIT_ANIMATION))); + }, + {injector: this._injector}, + ); } else { clearTimeout(this._exitFallback); this._exitFallback = setTimeout(() => this.onAnimationEnd(EXIT_ANIMATION), 200); @@ -263,8 +262,6 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy this._destroyed = true; this._clearFromModals(); this._completeExit(); - this._renders.complete(); - this._rendersRef.destroy(); } private _completeExit() { diff --git a/src/material/snack-bar/testing/BUILD.bazel b/src/material/snack-bar/testing/BUILD.bazel index 3462d049f2e0..e12a68fb1c3d 100644 --- a/src/material/snack-bar/testing/BUILD.bazel +++ b/src/material/snack-bar/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,11 +9,9 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ - "//src/cdk/a11y", - ], deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/a11y", + "//src/cdk/testing", ], ) @@ -22,17 +20,19 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/overlay", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/snack-bar", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/sort/BUILD.bazel b/src/material/sort/BUILD.bazel index 357c6d4bb850..e25d59c38f48 100644 --- a/src/material/sort/BUILD.bazel +++ b/src/material/sort/BUILD.bazel @@ -2,63 +2,107 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "sort", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":sort-header.css"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-sort.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/keycodes", - "//src/material/core", - "@npm//@angular/core", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "sort_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-sort.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", + ], +) + +sass_library( + name = "theme", + srcs = [ + "_sort-theme.scss", + ], + deps = [ + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "sort_header_scss", + name = "css", src = "sort-header.scss", deps = [ - "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/focus-indicators", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "sort", + srcs = [ + "index.ts", + "public-api.ts", + "sort.ts", + "sort-animations.ts", + "sort-direction.ts", + "sort-errors.ts", + "sort-header.ts", + "sort-header-intl.ts", + "sort-module.ts", + ], + assets = [ + "sort-header.html", + ":css", + ], + deps = [ + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/keycodes", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], exclude = ["**/*.e2e.spec.ts"], ), deps = [ ":sort", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/collections", "//src/cdk/table", "//src/cdk/testing/private", "//src/material/table", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -74,7 +118,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":sort_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_sort.scss b/src/material/sort/_m2-sort.scss similarity index 86% rename from src/material/core/tokens/m2/mat/_sort.scss rename to src/material/sort/_m2-sort.scss index 2c2e6f98ca4b..67e37fe1fda7 100644 --- a/src/material/core/tokens/m2/mat/_sort.scss +++ b/src/material/sort/_m2-sort.scss @@ -1,8 +1,8 @@ @use 'sass:color'; @use 'sass:meta'; -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, sort); @@ -53,8 +53,8 @@ $prefix: (mat, sort); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_sort.scss b/src/material/sort/_m3-sort.scss similarity index 83% rename from src/material/core/tokens/m3/mat/_sort.scss rename to src/material/sort/_m3-sort.scss index 2342e71c757a..b9cadc762fdd 100644 --- a/src/material/core/tokens/m3/mat/_sort.scss +++ b/src/material/sort/_m3-sort.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, sort); @@ -14,5 +14,5 @@ $prefix: (mat, sort); arrow-color: map.get($systems, md-sys-color, on-surface), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/sort/_sort-theme.scss b/src/material/sort/_sort-theme.scss index 33b9e546c2fe..8ba1b069eac4 100644 --- a/src/material/sort/_sort-theme.scss +++ b/src/material/sort/_sort-theme.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../core/tokens/m2/mat/sort' as tokens-mat-sort; +@use './m2-sort'; @use '../core/style/sass-utils'; @use '../core/typography/typography'; @use '../core/theming/theming'; @@ -20,9 +20,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-sort.$prefix, - tokens-mat-sort.get-color-tokens($theme) - ); + m2-sort.$prefix, m2-sort.get-color-tokens($theme)); } } } @@ -33,9 +31,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-sort.$prefix, - tokens-mat-sort.get-typography-tokens($theme) - ); + m2-sort.$prefix, m2-sort.get-typography-tokens($theme)); } } } @@ -46,9 +42,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-sort.$prefix, - tokens-mat-sort.get-density-tokens($theme) - ); + m2-sort.$prefix, m2-sort.get-density-tokens($theme)); } } } @@ -57,8 +51,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-sort.$prefix, - tokens: tokens-mat-sort.get-token-slots(), + namespace: m2-sort.$prefix, + tokens: m2-sort.get-token-slots(), ), ); } @@ -92,8 +86,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-sort.$prefix, - map.get($tokens, tokens-mat-sort.$prefix) + m2-sort.$prefix, + map.get($tokens, m2-sort.$prefix) ); } } diff --git a/src/material/sort/sort-header.scss b/src/material/sort/sort-header.scss index c836a7383091..54ad6f0e9dea 100644 --- a/src/material/sort/sort-header.scss +++ b/src/material/sort/sort-header.scss @@ -1,10 +1,17 @@ -@use '../core/tokens/m2/mat/sort' as tokens-mat-sort; +@use './m2-sort'; @use '../core/tokens/token-utils'; @use '../core/focus-indicators/private'; +.mat-sort-header { + cursor: pointer; +} + +.mat-sort-header-disabled { + cursor: default; +} + .mat-sort-header-container { display: flex; - cursor: pointer; align-items: center; letter-spacing: normal; @@ -19,10 +26,6 @@ border-bottom: solid 1px currentColor; } - .mat-sort-header-disabled & { - cursor: default; - } - // For the sort-header element, default inset/offset values are necessary to ensure that // the focus indicator is sufficiently contrastive and renders appropriately. &::before { @@ -74,8 +77,8 @@ opacity: 0; overflow: visible; - @include token-utils.use-tokens(tokens-mat-sort.$prefix, tokens-mat-sort.get-token-slots()) { - @include token-utils.create-token-slot(color, arrow-color); + @include token-utils.use-tokens(m2-sort.$prefix, m2-sort.get-token-slots()) { + color: token-utils.slot(arrow-color); } .mat-sort-header.cdk-keyboard-focused &, diff --git a/src/material/sort/testing/BUILD.bazel b/src/material/sort/testing/BUILD.bazel index 167b4eb69956..e0fc57f2cdaa 100644 --- a/src/material/sort/testing/BUILD.bazel +++ b/src/material/sort/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -9,11 +9,9 @@ ts_project( ["**/*.ts"], exclude = ["**/*.spec.ts"], ), - interop_deps = [ - "//src/material/sort", - ], deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", + "//src/material/sort", ], ) @@ -22,15 +20,17 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/sort", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/stepper/BUILD.bazel b/src/material/stepper/BUILD.bazel index d793ac741638..e6d7ceae7ea1 100644 --- a/src/material/stepper/BUILD.bazel +++ b/src/material/stepper/BUILD.bazel @@ -2,75 +2,131 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "stepper", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":stepper.css", - ":step-header.css", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-stepper.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/portal", - "//src/cdk/stepper", - "//src/material/core", - "//src/material/icon", - "@npm//@angular/common", - "@npm//@angular/core", - "@npm//@angular/forms", - "@npm//rxjs", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", + ], +) + +sass_library( + name = "m2", + srcs = [ + "_m2-stepper.scss", + ], + deps = [ + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) sass_library( - name = "stepper_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "theme", + srcs = [ + "_stepper-theme.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_binary( - name = "stepper_scss", + name = "css", src = "stepper.scss", deps = [ - ":stepper_scss_lib", + ":m2", + ":variables", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/tokens:token_utils", ], ) sass_binary( - name = "step_header_scss", + name = "header_css", src = "step-header.scss", deps = [ - ":stepper_scss_lib", + ":m2", + ":variables", "//src/cdk:sass_lib", - "//src/material/core:core_scss_lib", + "//src/material/core/style:layout_common", + "//src/material/core/tokens:token_utils", + ], +) + +sass_library( + name = "variables", + srcs = ["_stepper-variables.scss"], +) + +ng_project( + name = "stepper", + srcs = [ + "index.ts", + "public-api.ts", + "step-content.ts", + "step-header.ts", + "step-label.ts", + "stepper.ts", + "stepper-animations.ts", + "stepper-button.ts", + "stepper-icon.ts", + "stepper-intl.ts", + "stepper-module.ts", + ], + assets = [ + "step.html", + "step-header.html", + "stepper.html", + ":css", + ":header_css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/portal", + "//src/cdk/stepper", + "//src/material/core", + "//src/material/icon", ], ) -ng_test_library( +ts_project( name = "unit_test_sources", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":stepper", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/platform", @@ -79,9 +135,6 @@ ng_test_library( "//src/material/core", "//src/material/form-field", "//src/material/input", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -97,7 +150,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":stepper_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_stepper.scss b/src/material/stepper/_m2-stepper.scss similarity index 67% rename from src/material/core/tokens/m2/mat/_stepper.scss rename to src/material/stepper/_m2-stepper.scss index eaa01c87e35b..6963ef3b0925 100644 --- a/src/material/core/tokens/m2/mat/_stepper.scss +++ b/src/material/stepper/_m2-stepper.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../token-definition'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, stepper); @@ -11,9 +11,7 @@ $prefix: (mat, stepper); // but may be in a future version of the theming API. @function get-unthemable-tokens() { @return ( - // Border radius for step header on focus header-focus-state-layer-shape: 0, - // Border radius for step header on hover header-hover-state-layer-shape: 0, ); } @@ -21,28 +19,17 @@ $prefix: (mat, stepper); // Tokens that can be configured through Angular Material's color theming API. @function get-color-tokens($theme) { @return map.merge(private-get-color-palette-color-tokens($theme, primary), ( - // Background for stepper container. container-color: inspection.get-theme-color($theme, background, card), - // Color of the line indicator connecting the steps. line-color: inspection.get-theme-color($theme, foreground, divider), - // Background color of the header while hovered. header-hover-state-layer-color: inspection.get-theme-color($theme, background, hover), - // Background color of the header while focused. header-focus-state-layer-color: inspection.get-theme-color($theme, background, hover), - // Color of the text inside the step header. header-label-text-color: inspection.get-theme-color($theme, foreground, secondary-text), - // Color for the "optional" label in the step header. header-optional-label-text-color: inspection.get-theme-color( $theme, foreground, secondary-text), - // Color of the header text when a step is selected. header-selected-state-label-text-color: inspection.get-theme-color($theme, foreground, text), - // Color of the header text when a step is in an error state. header-error-state-label-text-color: inspection.get-theme-color($theme, warn, text), - // Background color of the header icon. header-icon-background-color: inspection.get-theme-color($theme, foreground, secondary-text), - // Foreground color of the header icon in the error state. header-error-state-icon-foreground-color: inspection.get-theme-color($theme, warn, text), - // Background color of the header icon in the error state. header-error-state-icon-background-color: transparent, )); } @@ -50,20 +37,13 @@ $prefix: (mat, stepper); // Tokens that can be configured through Angular Material's typography theming API. @function get-typography-tokens($theme) { @return ( - // Font family of the entire stepper. container-text-font: inspection.get-theme-typography($theme, body-2, font-family), - // Font family of the text inside the step header. header-label-text-font: inspection.get-theme-typography($theme, body-2, font-family), - // Size of the text inside the step header. header-label-text-size: inspection.get-theme-typography($theme, body-2, font-size), - // Weight of the text inside the step header. header-label-text-weight: inspection.get-theme-typography($theme, body-2, font-weight), - // Color of the header text when a step is in an error state. header-error-state-label-text-size: inspection.get-theme-typography($theme, body-1, font-size), - // Size of the header text in the selected state. header-selected-state-label-text-size: inspection.get-theme-typography( $theme, body-1, font-size), - // Weight of the header text in the selected state. header-selected-state-label-text-weight: inspection.get-theme-typography( $theme, body-1, font-weight), ); @@ -91,19 +71,12 @@ $prefix: (mat, stepper); $active-state-background: inspection.get-theme-color($theme, $palette-name); @return ( - // Foreground color of the header icon. header-icon-foreground-color: $active-state-foreground, - // Background color of the header icon in the selected state. header-selected-state-icon-background-color: $active-state-background, - // Foreground color of the header icon in the selected state. header-selected-state-icon-foreground-color: $active-state-foreground, - // Background color of the header icon in the selected state. header-done-state-icon-background-color: $active-state-background, - // Foreground color of the header icon in the selected state. header-done-state-icon-foreground-color: $active-state-foreground, - // Background color of the header icon in the editing state. header-edit-state-icon-background-color: $active-state-background, - // Foreground color of the header icon in the editing state. header-edit-state-icon-foreground-color: $active-state-foreground, ); } @@ -113,8 +86,8 @@ $prefix: (mat, stepper); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/stepper/_m3-stepper.scss b/src/material/stepper/_m3-stepper.scss new file mode 100644 index 000000000000..09ecd961e1d8 --- /dev/null +++ b/src/material/stepper/_m3-stepper.scss @@ -0,0 +1,79 @@ +@use 'sass:map'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; + +// The prefix used to generate the fully qualified name for tokens in this file. +$prefix: (mat, stepper); + +/// Generates custom tokens for the mat-stepper. +/// @param {Map} $systems The MDC system tokens +/// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values +/// @param {Map} $token-slots Possible token slots +/// @return {Map} A set of custom tokens for the mat-stepper +@function get-tokens($systems, $exclude-hardcoded, $token-slots) { + $tokens: ( + container-color: map.get($systems, md-sys-color, surface), + line-color: map.get($systems, md-sys-color, outline), + header-hover-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, inverse-surface), + $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity) + ), + header-focus-state-layer-color: sass-utils.safe-color-change( + map.get($systems, md-sys-color, inverse-surface), + $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity) + ), + header-label-text-color: map.get($systems, md-sys-color, on-surface-variant), + header-optional-label-text-color: map.get($systems, md-sys-color, on-surface-variant), + header-selected-state-label-text-color: map.get($systems, md-sys-color, on-surface-variant), + header-icon-background-color: map.get($systems, md-sys-color, on-surface-variant), + header-icon-foreground-color: map.get($systems, md-sys-color, surface), + header-edit-state-icon-background-color: map.get($systems, md-sys-color, primary), + header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), + header-error-state-label-text-color: map.get($systems, md-sys-color, error), + header-error-state-icon-foreground-color: map.get($systems, md-sys-color, error), + header-error-state-icon-background-color: + m3-utils.hardcode(transparent, $exclude-hardcoded), + container-text-font: map.get($systems, md-sys-typescale, body-medium-font), + header-label-text-font: map.get($systems, md-sys-typescale, title-small-font), + header-label-text-size: map.get($systems, md-sys-typescale, title-small-size), + header-label-text-weight: map.get($systems, md-sys-typescale, title-small-weight), + header-error-state-label-text-size: map.get($systems, md-sys-typescale, title-small-size), + header-focus-state-layer-shape: map.get($systems, md-sys-shape, corner-medium), + header-hover-state-layer-shape: map.get($systems, md-sys-shape, corner-medium), + header-selected-state-label-text-size: map.get($systems, md-sys-typescale, title-small-size), + header-selected-state-label-text-weight: map.get( + $systems, md-sys-typescale, title-small-weight), + header-selected-state-icon-background-color: map.get($systems, md-sys-color, primary), + header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), + ); + + $variant-tokens: ( + // Color variants + primary: ( + header-edit-state-icon-background-color: map.get($systems, md-sys-color, primary), + header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), + header-selected-state-icon-background-color: map.get($systems, md-sys-color, primary), + header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-primary), + ), + secondary: ( + header-edit-state-icon-background-color: map.get($systems, md-sys-color, secondary), + header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-secondary), + header-selected-state-icon-background-color: map.get($systems, md-sys-color, secondary), + header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-secondary), + ), + tertiary: ( + header-edit-state-icon-background-color: map.get($systems, md-sys-color, tertiary), + header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-tertiary), + header-selected-state-icon-background-color: map.get($systems, md-sys-color, tertiary), + header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-tertiary), + ), + error: ( + header-edit-state-icon-background-color: map.get($systems, md-sys-color, error), + header-edit-state-icon-foreground-color: map.get($systems, md-sys-color, on-error), + header-selected-state-icon-background-color: map.get($systems, md-sys-color, error), + header-selected-state-icon-foreground-color: map.get($systems, md-sys-color, on-error), + ) + ); + + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); +} diff --git a/src/material/stepper/_stepper-theme.scss b/src/material/stepper/_stepper-theme.scss index a2748c8a7ee5..3bc2d3f53fda 100644 --- a/src/material/stepper/_stepper-theme.scss +++ b/src/material/stepper/_stepper-theme.scss @@ -4,7 +4,7 @@ @use '../core/typography/typography'; @use '../core/style/sass-utils'; @use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/stepper' as tokens-mat-stepper; +@use './m2-stepper'; /// Outputs base theme styles (styles not dependent on the color, typography, or density settings) /// for mat-stepper. @@ -27,21 +27,21 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-stepper.$prefix, - tokens-mat-stepper.get-color-tokens($theme) + m2-stepper.$prefix, + m2-stepper.get-color-tokens($theme) ); .mat-step-header.mat-accent { @include token-utils.create-token-values-mixed( - tokens-mat-stepper.$prefix, - tokens-mat-stepper.private-get-color-palette-color-tokens($theme, accent) + m2-stepper.$prefix, + m2-stepper.private-get-color-palette-color-tokens($theme, accent) ); } .mat-step-header.mat-warn { @include token-utils.create-token-values-mixed( - tokens-mat-stepper.$prefix, - tokens-mat-stepper.private-get-color-palette-color-tokens($theme, warn) + m2-stepper.$prefix, + m2-stepper.private-get-color-palette-color-tokens($theme, warn) ); } } @@ -56,8 +56,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-stepper.$prefix, - tokens-mat-stepper.get-typography-tokens($theme) + m2-stepper.$prefix, + m2-stepper.get-typography-tokens($theme) ); } } @@ -71,8 +71,8 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-stepper.$prefix, - tokens-mat-stepper.get-density-tokens($theme) + m2-stepper.$prefix, + m2-stepper.get-density-tokens($theme) ); } } @@ -82,8 +82,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-stepper.$prefix, - tokens: tokens-mat-stepper.get-token-slots(), + namespace: m2-stepper.$prefix, + tokens: m2-stepper.get-token-slots(), ), ); } @@ -125,9 +125,9 @@ @if ($tokens != ()) { $mat-stepper-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-stepper.$prefix, + m2-stepper.$prefix, $options... ); - @include token-utils.create-token-values(tokens-mat-stepper.$prefix, $mat-stepper-tokens); + @include token-utils.create-token-values(m2-stepper.$prefix, $mat-stepper-tokens); } } diff --git a/src/material/stepper/step-header.scss b/src/material/stepper/step-header.scss index deb5c063c0af..92e241eac38a 100644 --- a/src/material/stepper/step-header.scss +++ b/src/material/stepper/step-header.scss @@ -1,9 +1,12 @@ @use '@angular/cdk'; -@use '../core/tokens/m2/mat/stepper' as tokens-mat-stepper; -@use '../core/tokens/token-utils'; @use '../core/style/layout-common'; +@use '../core/tokens/token-utils'; +@use './m2-stepper'; @use './stepper-variables'; +$token-prefix: m2-stepper.$prefix; +$token-slots: m2-stepper.get-token-slots(); + .mat-step-header { overflow: hidden; outline: none; @@ -22,19 +25,18 @@ cursor: default; } - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { &:hover:not([aria-disabled]), &:hover[aria-disabled='false'] { - @include token-utils.create-token-slot(background-color, header-hover-state-layer-color); - @include token-utils.create-token-slot(border-radius, header-hover-state-layer-shape); + background-color: token-utils.slot(header-hover-state-layer-color); + border-radius: token-utils.slot(header-hover-state-layer-shape); } &.cdk-keyboard-focused, &.cdk-program-focused { - @include token-utils.create-token-slot(background-color, header-focus-state-layer-color); - @include token-utils.create-token-slot(border-radius, header-focus-state-layer-shape); + background-color: token-utils.slot(header-focus-state-layer-color); + border-radius: token-utils.slot(header-focus-state-layer-shape); } } @@ -72,9 +74,8 @@ .mat-step-optional { font-size: stepper-variables.$step-sub-label-font-size; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(color, header-optional-label-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(header-optional-label-text-color); } } @@ -90,10 +91,9 @@ flex-shrink: 0; position: relative; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(color, header-icon-foreground-color); - @include token-utils.create-token-slot(background-color, header-icon-background-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + color: token-utils.slot(header-icon-foreground-color); + background-color: token-utils.slot(header-icon-background-color); } } @@ -116,12 +116,9 @@ } .mat-step-icon-state-error { - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(background-color, - header-error-state-icon-background-color); - @include token-utils.create-token-slot(color, - header-error-state-icon-foreground-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(header-error-state-icon-background-color); + color: token-utils.slot(header-error-state-icon-foreground-color); } .mat-icon { @@ -139,25 +136,24 @@ min-width: stepper-variables.$label-min-width; vertical-align: middle; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(font-family, header-label-text-font); - @include token-utils.create-token-slot(font-size, header-label-text-size); - @include token-utils.create-token-slot(font-weight, header-label-text-weight); - @include token-utils.create-token-slot(color, header-label-text-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(header-label-text-font); + font-size: token-utils.slot(header-label-text-size); + font-weight: token-utils.slot(header-label-text-weight); + color: token-utils.slot(header-label-text-color); &.mat-step-label-active { - @include token-utils.create-token-slot(color, header-selected-state-label-text-color); + color: token-utils.slot(header-selected-state-label-text-color); } &.mat-step-label-error { - @include token-utils.create-token-slot(color, header-error-state-label-text-color); - @include token-utils.create-token-slot(font-size, header-error-state-label-text-size); + color: token-utils.slot(header-error-state-label-text-color); + font-size: token-utils.slot(header-error-state-label-text-size); } &.mat-step-label-selected { - @include token-utils.create-token-slot(font-size, header-selected-state-label-text-size); - @include token-utils.create-token-slot(font-weight, header-selected-state-label-text-weight); + font-size: token-utils.slot(header-selected-state-label-text-size); + font-weight: token-utils.slot(header-selected-state-label-text-weight); } } } @@ -175,31 +171,22 @@ } .mat-step-icon-selected { - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(background-color, - header-selected-state-icon-background-color); - @include token-utils.create-token-slot(color, - header-selected-state-icon-foreground-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(header-selected-state-icon-background-color); + color: token-utils.slot(header-selected-state-icon-foreground-color); } } .mat-step-icon-state-done { - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(background-color, - header-done-state-icon-background-color); - @include token-utils.create-token-slot(color, - header-done-state-icon-foreground-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(header-done-state-icon-background-color); + color: token-utils.slot(header-done-state-icon-foreground-color); } } .mat-step-icon-state-edit { - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(background-color, - header-edit-state-icon-background-color); - @include token-utils.create-token-slot(color, - header-edit-state-icon-foreground-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(header-edit-state-icon-background-color); + color: token-utils.slot(header-edit-state-icon-foreground-color); } } diff --git a/src/material/stepper/stepper.scss b/src/material/stepper/stepper.scss index 19ab2d88ea56..a271ddd4b11e 100644 --- a/src/material/stepper/stepper.scss +++ b/src/material/stepper/stepper.scss @@ -1,23 +1,25 @@ @use 'sass:math'; @use '@angular/cdk'; -@use '../core/tokens/m2/mat/stepper' as tokens-mat-stepper; +@use './m2-stepper'; @use '../core/tokens/token-utils'; @use './stepper-variables'; // Gets the `calc` expression for the vertical padding of the stepper header. @function _get-vertical-padding-calc() { - $height: token-utils.get-token-variable(header-height); + $height: token-utils.slot(header-height); @return calc(calc(#{$height} - #{stepper-variables.$label-header-height}) / 2); } +$token-prefix: m2-stepper.$prefix; +$token-slots: m2-stepper.get-token-slots(); + .mat-stepper-vertical, .mat-stepper-horizontal { display: block; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(font-family, container-text-font); - @include token-utils.create-token-slot(background, container-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + font-family: token-utils.slot(container-text-font); + background: token-utils.slot(container-color); } } @@ -43,9 +45,8 @@ margin: 0 stepper-variables.$line-gap - stepper-variables.$side-gap; min-width: stepper-variables.$line-gap + stepper-variables.$side-gap; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(border-top-color, line-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + border-top-color: token-utils.slot(line-color); .mat-stepper-label-position-bottom & { $vertical-padding: _get-vertical-padding-calc(); @@ -77,9 +78,8 @@ align-items: center; padding: 0 stepper-variables.$side-gap; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { - @include token-utils.create-token-slot(height, header-height); + @include token-utils.use-tokens($token-prefix, $token-slots) { + height: token-utils.slot(header-height); } .mat-step-icon { @@ -92,13 +92,12 @@ } } - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $vertical-padding: _get-vertical-padding-calc(); &::before, &::after { - @include token-utils.create-token-slot(border-top-color, line-color); + border-top-color: token-utils.slot(line-color); } .mat-stepper-label-position-bottom & { @@ -157,8 +156,7 @@ // We can't use `max-height` here, because it breaks the flexbox centering in IE. height: stepper-variables.$label-header-height; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { padding: #{_get-vertical-padding-calc()} stepper-variables.$side-gap; } @@ -273,12 +271,11 @@ border-left-width: stepper-variables.$line-width; border-left-style: solid; - @include token-utils.use-tokens( - tokens-mat-stepper.$prefix, tokens-mat-stepper.get-token-slots()) { + @include token-utils.use-tokens($token-prefix, $token-slots) { $vertical-padding: _get-vertical-padding-calc(); $vertical-offset: calc(#{stepper-variables.$line-gap} - #{$vertical-padding}); - @include token-utils.create-token-slot(border-left-color, line-color); + border-left-color: token-utils.slot(line-color); // Ensures that the vertical lines for the step content exceed into the step // headers with a given distance (`$mat-stepper-line-gap`) to the step icon. diff --git a/src/material/stepper/testing/BUILD.bazel b/src/material/stepper/testing/BUILD.bazel index 28172633b4d0..9eeed8565d9c 100644 --- a/src/material/stepper/testing/BUILD.bazel +++ b/src/material/stepper/testing/BUILD.bazel @@ -1,4 +1,4 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") +load("//tools:defaults.bzl", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") package(default_visibility = ["//visibility:public"]) @@ -10,7 +10,7 @@ ts_project( exclude = ["**/*.spec.ts"], ), deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", ], ) @@ -19,18 +19,20 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", + "//:node_modules/@angular/forms", + "//:node_modules/@angular/platform-browser", "//src/cdk/stepper", "//src/cdk/testing", "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/stepper", - "@npm//@angular/forms", - "@npm//@angular/platform-browser", ], ) diff --git a/src/material/table/BUILD.bazel b/src/material/table/BUILD.bazel index 54a64f6d5909..e5b1e40ebd39 100644 --- a/src/material/table/BUILD.bazel +++ b/src/material/table/BUILD.bazel @@ -2,72 +2,114 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "table", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [":table_scss"] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-table.scss", + ], deps = [ - "//src/cdk/table", - "//src/material/core", - "//src/material/paginator", - "//src/material/sort", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "table_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-table.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) -sass_binary( - name = "table_scss", - src = "table.scss", +sass_library( + name = "theme", + srcs = [ + "_table-theme.scss", + ], deps = [ - ":table_flex_scss_lib", - "//src/material/core:core_scss_lib", + ":m2", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) sass_library( - name = "table_flex_scss_lib", + name = "flex_sass", srcs = [ "_table-flex-styles.scss", ], - deps = ["//src/material/core:core_scss_lib"], +) + +sass_binary( + name = "css", + src = "table.scss", + deps = [ + ":flex_sass", + ":m2", + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], +) + +ng_project( + name = "table", + srcs = [ + "cell.ts", + "index.ts", + "module.ts", + "public-api.ts", + "row.ts", + "table.ts", + "table-data-source.ts", + "text-column.ts", + ], + assets = [":css"], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src/cdk/table", + "//src/material/core", + "//src/material/paginator", + "//src/material/sort", + ], ) ########### # Testing ########### -ng_test_library( +ts_project( name = "table_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":table", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/table", "//src/material/paginator", "//src/material/sort", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -85,7 +127,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":table_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mat/_table.scss b/src/material/table/_m2-table.scss similarity index 90% rename from src/material/core/tokens/m2/mat/_table.scss rename to src/material/table/_m2-table.scss index c99a1be0c690..aff938ffe713 100644 --- a/src/material/core/tokens/m2/mat/_table.scss +++ b/src/material/table/_m2-table.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../token-definition'; -@use '../../../style/sass-utils'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/tokens/m2-utils'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, table); @@ -86,8 +86,8 @@ $prefix: (mat, table); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mat/_table.scss b/src/material/table/_m3-table.scss similarity index 65% rename from src/material/core/tokens/m3/mat/_table.scss rename to src/material/table/_m3-table.scss index ab7cf1b4f2f1..cec7d081f7e6 100644 --- a/src/material/core/tokens/m3/mat/_table.scss +++ b/src/material/table/_m3-table.scss @@ -1,6 +1,6 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. $prefix: (mat, table); @@ -12,12 +12,12 @@ $prefix: (mat, table); /// @return {Map} A set of custom tokens for the mat-table @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, header-headline, title-small), - token-definition.generate-typography-tokens($systems, row-item-label-text, body-medium), - token-definition.generate-typography-tokens( + m3-utils.generate-typography-tokens($systems, header-headline, title-small), + m3-utils.generate-typography-tokens($systems, row-item-label-text, body-medium), + m3-utils.generate-typography-tokens( $systems, footer-supporting-text, body-medium), ( - row-item-outline-width: token-definition.hardcode(1px, $exclude-hardcoded), + row-item-outline-width: m3-utils.hardcode(1px, $exclude-hardcoded), background-color: map.get($systems, md-sys-color, surface), header-headline-color: map.get($systems, md-sys-color, on-surface), row-item-label-text-color: map.get($systems, md-sys-color, on-surface), @@ -25,5 +25,5 @@ $prefix: (mat, table); ), ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/table/_table-theme.scss b/src/material/table/_table-theme.scss index 6773c8e84322..3189a304ec57 100644 --- a/src/material/table/_table-theme.scss +++ b/src/material/table/_table-theme.scss @@ -1,5 +1,5 @@ @use 'sass:map'; -@use '../core/tokens/m2/mat/table' as tokens-mat-table; +@use './m2-table'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; @@ -13,9 +13,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-table.$prefix, - tokens-mat-table.get-unthemable-tokens() - ); + m2-table.$prefix, m2-table.get-unthemable-tokens()); } } } @@ -26,9 +24,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-table.$prefix, - tokens-mat-table.get-color-tokens($theme) - ); + m2-table.$prefix, m2-table.get-color-tokens($theme)); } } } @@ -39,9 +35,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-table.$prefix, - tokens-mat-table.get-typography-tokens($theme) - ); + m2-table.$prefix, m2-table.get-typography-tokens($theme)); } } } @@ -52,9 +46,7 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mat-table.$prefix, - tokens-mat-table.get-density-tokens($theme) - ); + m2-table.$prefix, m2-table.get-density-tokens($theme)); } } } @@ -63,8 +55,8 @@ @function _define-overrides() { @return ( ( - namespace: tokens-mat-table.$prefix, - tokens: tokens-mat-table.get-token-slots(), + namespace: m2-table.$prefix, + tokens: m2-table.get-token-slots(), ), ); } @@ -98,8 +90,8 @@ ); @if ($tokens != ()) { @include token-utils.create-token-values( - tokens-mat-table.$prefix, - map.get($tokens, tokens-mat-table.$prefix) + m2-table.$prefix, + map.get($tokens, m2-table.$prefix) ); } } diff --git a/src/material/table/table.scss b/src/material/table/table.scss index 1d36a2e3d830..5dab30bae5d6 100644 --- a/src/material/table/table.scss +++ b/src/material/table/table.scss @@ -1,6 +1,6 @@ -@use '../core/tokens/token-utils'; -@use '../core/tokens/m2/mat/table' as tokens-mat-table; @use '../core/style/vendor-prefixes'; +@use '../core/tokens/token-utils'; +@use './m2-table'; @use './table-flex-styles'; .mat-mdc-table-sticky { @@ -10,9 +10,12 @@ position: sticky !important; } +$token-prefix: m2-table.$prefix; +$token-slots: m2-table.get-token-slots(); + @mixin _cell-border { - @include token-utils.create-token-slot(border-bottom-color, row-item-outline-color, true); - @include token-utils.create-token-slot(border-bottom-width, row-item-outline-width, true); + border-bottom-color: token-utils.slot(row-item-outline-color, true); + border-bottom-width: token-utils.slot(row-item-outline-width, true); border-bottom-style: solid; } @@ -25,8 +28,8 @@ table-layout: auto; white-space: normal; - @include token-utils.use-tokens(tokens-mat-table.$prefix, tokens-mat-table.get-token-slots()) { - @include token-utils.create-token-slot(background-color, background-color); + @include token-utils.use-tokens($token-prefix, $token-slots) { + background-color: token-utils.slot(background-color); } } @@ -46,22 +49,22 @@ padding: 0 16px; } -@include token-utils.use-tokens(tokens-mat-table.$prefix, tokens-mat-table.get-token-slots()) { +@include token-utils.use-tokens($token-prefix, $token-slots) { // TODO(crisbeto): these tokens have default values in order to make the initial token // work easier to land in g3. Eventually we should remove them. .mat-mdc-header-row { @include vendor-prefixes.smooth-font; - @include token-utils.create-token-slot(height, header-container-height, 56px); - @include token-utils.create-token-slot(color, header-headline-color, true); - @include token-utils.create-token-slot(font-family, header-headline-font, true); - @include token-utils.create-token-slot(line-height, header-headline-line-height); - @include token-utils.create-token-slot(font-size, header-headline-size, 14px); - @include token-utils.create-token-slot(font-weight, header-headline-weight, 500); + height: token-utils.slot(header-container-height, 56px); + color: token-utils.slot(header-headline-color, true); + font-family: token-utils.slot(header-headline-font, true); + line-height: token-utils.slot(header-headline-line-height); + font-size: token-utils.slot(header-headline-size, 14px); + font-weight: token-utils.slot(header-headline-weight, 500); } .mat-mdc-row { - @include token-utils.create-token-slot(height, row-item-container-height, 52px); - @include token-utils.create-token-slot(color, row-item-label-text-color, true); + height: token-utils.slot(row-item-container-height, 52px); + color: token-utils.slot(row-item-label-text-color, true); } // Note that while it's redundant to apply the typography both to the row @@ -71,26 +74,26 @@ .mat-mdc-row, .mdc-data-table__content { @include vendor-prefixes.smooth-font; - @include token-utils.create-token-slot(font-family, row-item-label-text-font, true); - @include token-utils.create-token-slot(line-height, row-item-label-text-line-height); - @include token-utils.create-token-slot(font-size, row-item-label-text-size, 14px); - @include token-utils.create-token-slot(font-weight, row-item-label-text-weight); + font-family: token-utils.slot(row-item-label-text-font, true); + line-height: token-utils.slot(row-item-label-text-line-height); + font-size: token-utils.slot(row-item-label-text-size, 14px); + font-weight: token-utils.slot(row-item-label-text-weight); } .mat-mdc-footer-row { @include vendor-prefixes.smooth-font; - @include token-utils.create-token-slot(height, footer-container-height, 52px); - @include token-utils.create-token-slot(color, row-item-label-text-color, true); - @include token-utils.create-token-slot(font-family, footer-supporting-text-font, true); - @include token-utils.create-token-slot(line-height, footer-supporting-text-line-height); - @include token-utils.create-token-slot(font-size, footer-supporting-text-size, 14px); - @include token-utils.create-token-slot(font-weight, footer-supporting-text-weight); - @include token-utils.create-token-slot(letter-spacing, footer-supporting-text-tracking); + height: token-utils.slot(footer-container-height, 52px); + color: token-utils.slot(row-item-label-text-color, true); + font-family: token-utils.slot(footer-supporting-text-font, true); + line-height: token-utils.slot(footer-supporting-text-line-height); + font-size: token-utils.slot(footer-supporting-text-size, 14px); + font-weight: token-utils.slot(footer-supporting-text-weight); + letter-spacing: token-utils.slot(footer-supporting-text-tracking); } .mat-mdc-header-cell { @include _cell-border; - @include token-utils.create-token-slot(letter-spacing, header-headline-tracking); + letter-spacing: token-utils.slot(header-headline-tracking); font-weight: inherit; line-height: inherit; box-sizing: border-box; @@ -110,7 +113,7 @@ .mat-mdc-cell { @include _cell-border; - @include token-utils.create-token-slot(letter-spacing, row-item-label-text-tracking); + letter-spacing: token-utils.slot(row-item-label-text-tracking); line-height: inherit; .mdc-data-table__row:last-child > & { @@ -119,7 +122,7 @@ } .mat-mdc-footer-cell { - @include token-utils.create-token-slot(letter-spacing, row-item-label-text-tracking); + letter-spacing: token-utils.slot(row-item-label-text-tracking); } } diff --git a/src/material/table/testing/BUILD.bazel b/src/material/table/testing/BUILD.bazel index 3ff3a06c0a10..3a4c756a9029 100644 --- a/src/material/table/testing/BUILD.bazel +++ b/src/material/table/testing/BUILD.bazel @@ -1,5 +1,5 @@ -load("//tools:defaults.bzl", "ng_test_library", "ng_web_test_suite") load("//tools:defaults2.bzl", "ts_project") +load("//tools:defaults.bzl", "ng_web_test_suite") package(default_visibility = ["//visibility:public"]) @@ -10,7 +10,7 @@ ts_project( exclude = ["**/*.spec.ts"], ), deps = [ - "//src/cdk/testing:testing_rjs", + "//src/cdk/testing", ], ) @@ -19,11 +19,13 @@ filegroup( srcs = glob(["**/*.ts"]), ) -ng_test_library( +ts_project( name = "unit_tests_lib", + testonly = True, srcs = glob(["**/*.spec.ts"]), deps = [ ":testing", + "//:node_modules/@angular/core", "//src/cdk/testing", "//src/cdk/testing/testbed", "//src/material/table", diff --git a/src/material/tabs/BUILD.bazel b/src/material/tabs/BUILD.bazel index e957c0b46b54..742a60b24159 100644 --- a/src/material/tabs/BUILD.bazel +++ b/src/material/tabs/BUILD.bazel @@ -2,96 +2,174 @@ load( "//tools:defaults.bzl", "extract_tokens", "markdown_to_html", - "ng_module", - "ng_test_library", "ng_web_test_suite", "sass_binary", "sass_library", ) +load("//tools:defaults2.bzl", "ng_project", "ts_project") package(default_visibility = ["//visibility:public"]) -ng_module( - name = "tabs", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - assets = [ - ":tab-body.css", - ":tab-header.css", - ":tab-group.css", - ":tab-nav-bar/tab-nav-bar.css", - ":tab-nav-bar/tab-link.css", - ] + glob(["**/*.html"]), +sass_library( + name = "m3", + srcs = [ + "_m3-secondary-navigation-tab.scss", + "_m3-tab-header.scss", + "_m3-tab-indicator.scss", + ], deps = [ - "//src:dev_mode_types", - "//src/cdk/a11y", - "//src/cdk/bidi", - "//src/cdk/coercion", - "//src/cdk/keycodes", - "//src/cdk/observers", - "//src/cdk/observers/private", - "//src/cdk/platform", - "//src/cdk/portal", - "//src/cdk/scrolling", - "//src/material/core", - "@npm//@angular/common", - "@npm//@angular/core", + "//src/material/core/style:sass_utils", + "//src/material/core/tokens:m3_utils", ], ) sass_library( - name = "tabs_scss_lib", - srcs = glob(["**/_*.scss"]), + name = "m2", + srcs = [ + "_m2-secondary-navigation-tab.scss", + "_m2-tab-header.scss", + "_m2-tab-header-with-background.scss", + "_m2-tab-indicator.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:elevation", + "//src/material/core/style:sass_utils", + "//src/material/core/theming:_inspection", + "//src/material/core/tokens:m2_utils", ], ) -sass_binary( - name = "tab_body_scss", - src = "tab-body.scss", +sass_library( + name = "theme", + srcs = [ + "_tabs-theme.scss", + ], deps = [ - "//src/material/core:core_scss_lib", + "//src/material/core/style:sass_utils", + "//src/material/core/theming", + "//src/material/core/theming:_inspection", + "//src/material/core/theming:_validation", + "//src/material/core/tokens:token_utils", + "//src/material/core/typography", ], ) -sass_binary( - name = "tab_header_scss", - src = "tab-header.scss", - deps = [":tabs_scss_lib"], +sass_library( + name = "sass", + srcs = [ + "_tabs-common.scss", + ], + deps = [ + "//src/material/core/style:vendor_prefixes", + "//src/material/core/tokens:token_utils", + ], ) sass_binary( - name = "tab_group_scss", + name = "tab_group_css", src = "tab-group.scss", deps = [ - ":tabs_scss_lib", + ":m2", + ":sass", + "//src/material/core/style:private", + "//src/material/core/style:variables", ], ) sass_binary( - name = "tab_nav_bar_scss", + name = "tab_nav_bar_css", src = "tab-nav-bar/tab-nav-bar.scss", - deps = [":tabs_scss_lib"], + deps = [ + ":sass", + ], ) sass_binary( - name = "tab_link_scss", + name = "tab_link_css", src = "tab-nav-bar/tab-link.scss", deps = [ - ":tabs_scss_lib", + ":sass", + "//src/material/core/style:variables", + ], +) + +sass_binary( + name = "tab_header_css", + src = "tab-header.scss", + deps = [ + ":sass", + "//src/cdk:sass_lib", + ], +) + +sass_binary( + name = "tab_body_css", + src = "tab-body.scss", + deps = ["//src/material/core/style:layout_common"], +) + +ng_project( + name = "tabs", + srcs = [ + "index.ts", + "ink-bar.ts", + "module.ts", + "paginated-tab-header.ts", + "public-api.ts", + "tab.ts", + "tab-body.ts", + "tab-config.ts", + "tab-content.ts", + "tab-group.ts", + "tab-header.ts", + "tab-label.ts", + "tab-label-wrapper.ts", + "tab-nav-bar/tab-nav-bar.ts", + "tabs-animations.ts", + ], + assets = [ + "tab-body.html", + "tab-group.html", + "tab-header.html", + "tab.html", + "tab-nav-bar/tab-nav-bar.html", + "tab-nav-bar/tab-link.html", + ":tab_group_css", + ":tab-nav-bar/tab-nav-bar.css", + ":tab-nav-bar/tab-link.css", + ":tab_header_css", + ":tab_body_css", + ], + deps = [ + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/rxjs", + "//src:dev_mode_types", + "//src/cdk/a11y", + "//src/cdk/bidi", + "//src/cdk/coercion", + "//src/cdk/keycodes", + "//src/cdk/observers", + "//src/cdk/observers/private", + "//src/cdk/platform", + "//src/cdk/portal", + "//src/cdk/scrolling", + "//src/material/core", ], ) -ng_test_library( +ts_project( name = "tabs_tests_lib", + testonly = True, srcs = glob( ["**/*.spec.ts"], ), deps = [ ":tabs", + "//:node_modules/@angular/common", + "//:node_modules/@angular/core", + "//:node_modules/@angular/platform-browser", + "//:node_modules/rxjs", "//src/cdk/bidi", "//src/cdk/keycodes", "//src/cdk/observers", @@ -101,9 +179,6 @@ ng_test_library( "//src/cdk/testing/private", "//src/cdk/testing/testbed", "//src/material/core", - "@npm//@angular/common", - "@npm//@angular/platform-browser", - "@npm//rxjs", ], ) @@ -121,7 +196,7 @@ markdown_to_html( extract_tokens( name = "tokens", - srcs = [":tabs_scss_lib"], + srcs = [":theme"], ) filegroup( diff --git a/src/material/core/tokens/m2/mdc/_secondary-navigation-tab.scss b/src/material/tabs/_m2-secondary-navigation-tab.scss similarity index 50% rename from src/material/core/tokens/m2/mdc/_secondary-navigation-tab.scss rename to src/material/tabs/_m2-secondary-navigation-tab.scss index 8e6b740e8e19..15f8ab7e1315 100644 --- a/src/material/core/tokens/m2/mdc/_secondary-navigation-tab.scss +++ b/src/material/tabs/_m2-secondary-navigation-tab.scss @@ -1,11 +1,11 @@ @use 'sass:map'; -@use '../../../theming/theming'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/theming/theming'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, secondary-navigation-tab); +$prefix: (mat, tab); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -18,35 +18,6 @@ $prefix: (mdc, secondary-navigation-tab); // This is specified both here and in the density tokens, because it determines the size of the // tab itself and there are internal tests who don't configure the theme correctly. container-height: 48px, - // ============================================================================================= - // = TOKENS NOT USED IN ANGULAR MATERIAL = - // ============================================================================================= - inactive-label-text-color: null, - active-label-text-color: null, - container-color: null, - container-elevation: null, - container-shadow-color: null, - container-shape: null, - focus-label-text-color: null, - focus-state-layer-color: null, - focus-state-layer-opacity: null, - hover-label-text-color: null, - hover-state-layer-color: null, - hover-state-layer-opacity: null, - pressed-label-text-color: null, - pressed-state-layer-color: null, - pressed-state-layer-opacity: null, - with-icon-active-icon-color: null, - with-icon-focus-icon-color: null, - with-icon-hover-icon-color: null, - with-icon-inactive-icon-color: null, - with-icon-pressed-icon-color: null, - with-icon-icon-size: null, - label-text-font: null, - label-text-size: null, - label-text-letter-spacing: null, - label-text-line-height: null, - label-text-weight: null, ); } @@ -80,8 +51,8 @@ $prefix: (mdc, secondary-navigation-tab); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_tab-header-with-background.scss b/src/material/tabs/_m2-tab-header-with-background.scss similarity index 75% rename from src/material/core/tokens/m2/mat/_tab-header-with-background.scss rename to src/material/tabs/_m2-tab-header-with-background.scss index 5a0417a8d674..80c457a4fa82 100644 --- a/src/material/core/tokens/m2/mat/_tab-header-with-background.scss +++ b/src/material/tabs/_m2-tab-header-with-background.scss @@ -1,9 +1,9 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, tab-header-with-background); +$prefix: (mat, tab); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -35,8 +35,8 @@ $prefix: (mat, tab-header-with-background); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mat/_tab-header.scss b/src/material/tabs/_m2-tab-header.scss similarity index 89% rename from src/material/core/tokens/m2/mat/_tab-header.scss rename to src/material/tabs/_m2-tab-header.scss index 1ce5211a1721..e096a93ac756 100644 --- a/src/material/core/tokens/m2/mat/_tab-header.scss +++ b/src/material/tabs/_m2-tab-header.scss @@ -1,9 +1,9 @@ -@use '../../token-definition'; -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; +@use '../core/tokens/m2-utils'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, tab-header); +$prefix: (mat, tab); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -65,8 +65,8 @@ $prefix: (mat, tab-header); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m2/mdc/_tab-indicator.scss b/src/material/tabs/_m2-tab-indicator.scss similarity index 80% rename from src/material/core/tokens/m2/mdc/_tab-indicator.scss rename to src/material/tabs/_m2-tab-indicator.scss index 0cf689055285..37c4a5528bf5 100644 --- a/src/material/core/tokens/m2/mdc/_tab-indicator.scss +++ b/src/material/tabs/_m2-tab-indicator.scss @@ -1,9 +1,9 @@ -@use '../../../theming/inspection'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/theming/inspection'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m2-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, tab-indicator); +$prefix: (mat, tab); // Tokens that can't be configured through Angular Material's current theming API, // but may be in a future version of the theming API. @@ -41,8 +41,8 @@ $prefix: (mdc, tab-indicator); @function get-token-slots() { @return sass-utils.deep-merge-all( get-unthemable-tokens(), - get-color-tokens(token-definition.$placeholder-color-config), - get-typography-tokens(token-definition.$placeholder-typography-config), - get-density-tokens(token-definition.$placeholder-density-config) + get-color-tokens(m2-utils.$placeholder-color-config), + get-typography-tokens(m2-utils.$placeholder-typography-config), + get-density-tokens(m2-utils.$placeholder-density-config) ); } diff --git a/src/material/core/tokens/m3/mdc/_secondary-navigation-tab.scss b/src/material/tabs/_m3-secondary-navigation-tab.scss similarity index 61% rename from src/material/core/tokens/m3/mdc/_secondary-navigation-tab.scss rename to src/material/tabs/_m3-secondary-navigation-tab.scss index 4ef4f025f90d..c94ed527ac4b 100644 --- a/src/material/core/tokens/m3/mdc/_secondary-navigation-tab.scss +++ b/src/material/tabs/_m3-secondary-navigation-tab.scss @@ -1,7 +1,7 @@ -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, secondary-navigation-tab); +$prefix: (mat, tab); /// Generates the tokens for MDC tab /// @param {Map} $systems The MDC system tokens @@ -9,8 +9,9 @@ $prefix: (mdc, secondary-navigation-tab); /// @param {Map} $token-slots Possible token slots /// @return {Map} A set of tokens for the MDC tab @function get-tokens($systems, $exclude-hardcoded, $token-slots) { - $mdc-tokens: token-definition.get-mdc-tokens( - 'secondary-navigation-tab', $systems, $exclude-hardcoded); + $tokens: ( + container-height: if($exclude-hardcoded, null, 48px), + ); - @return token-definition.namespace-tokens($prefix, $mdc-tokens, $token-slots); + @return m3-utils.namespace($prefix, $tokens, $token-slots); } diff --git a/src/material/core/tokens/m3/mat/_tab-header.scss b/src/material/tabs/_m3-tab-header.scss similarity index 83% rename from src/material/core/tokens/m3/mat/_tab-header.scss rename to src/material/tabs/_m3-tab-header.scss index 5d4ee275c118..3d3fde6e2576 100644 --- a/src/material/core/tokens/m3/mat/_tab-header.scss +++ b/src/material/tabs/_m3-tab-header.scss @@ -1,9 +1,9 @@ @use 'sass:map'; -@use '../../../style/sass-utils'; -@use '../../token-definition'; +@use '../core/style/sass-utils'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mat, tab-header); +$prefix: (mat, tab); /// Generates custom tokens for the mat-tab-header. /// @param {Map} $systems The MDC system tokens @@ -12,11 +12,10 @@ $prefix: (mat, tab-header); /// @return {Map} A set of custom tokens for the mat-tab-header @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: sass-utils.merge-all( - token-definition.generate-typography-tokens($systems, label-text, title-small), + m3-utils.generate-typography-tokens($systems, label-text, title-small), ( divider-color: map.get($systems, md-sys-color, surface-variant), - divider-height: token-definition.hardcode(1px, $exclude-hardcoded), - disabled-ripple-color: null, // TODO(mmalerba): Figure out correct value. + divider-height: m3-utils.hardcode(1px, $exclude-hardcoded), pagination-icon-color: map.get($systems, md-sys-color, on-surface), inactive-label-text-color: map.get($systems, md-sys-color, on-surface), active-label-text-color: map.get($systems, md-sys-color, on-surface), @@ -29,7 +28,9 @@ $prefix: (mat, tab-header); active-focus-indicator-color: map.get($systems, md-sys-color, primary), active-hover-indicator-color: map.get($systems, md-sys-color, primary), ), - ), ( + ); + + $variant-tokens: ( // Color variants primary: (), // Default, no overrides needed secondary: ( @@ -46,6 +47,6 @@ $prefix: (mat, tab-header); ) ); - @return token-definition.namespace-tokens($prefix, $tokens, $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/core/tokens/m3/mdc/_tab-indicator.scss b/src/material/tabs/_m3-tab-indicator.scss similarity index 74% rename from src/material/core/tokens/m3/mdc/_tab-indicator.scss rename to src/material/tabs/_m3-tab-indicator.scss index 299472487963..b82c49f26492 100644 --- a/src/material/core/tokens/m3/mdc/_tab-indicator.scss +++ b/src/material/tabs/_m3-tab-indicator.scss @@ -1,8 +1,8 @@ @use 'sass:map'; -@use '../../token-definition'; +@use '../core/tokens/m3-utils'; // The prefix used to generate the fully qualified name for tokens in this file. -$prefix: (mdc, tab-indicator); +$prefix: (mat, tab); /// Generates the tokens for MDC tab-indicator /// @param {Map} $systems The MDC system tokens @@ -11,10 +11,11 @@ $prefix: (mdc, tab-indicator); /// @return {Map} A set of tokens for the MDC tab-indicator @function get-tokens($systems, $exclude-hardcoded, $token-slots) { $tokens: ( - active-indicator-height: token-definition.hardcode(2px, $exclude-hardcoded), - active-indicator-shape: token-definition.hardcode(0, $exclude-hardcoded), + active-indicator-height: m3-utils.hardcode(2px, $exclude-hardcoded), + active-indicator-shape: m3-utils.hardcode(0, $exclude-hardcoded), active-indicator-color: map.get($systems, md-sys-color, primary), ); + $variant-tokens: ( // Color variants primary: (), // Default, no overrides needed @@ -29,6 +30,5 @@ $prefix: (mdc, tab-indicator); ) ); - @return token-definition.namespace-tokens( - $prefix, ($tokens, $variant-tokens), $token-slots); + @return m3-utils.namespace($prefix, ($tokens, $variant-tokens), $token-slots); } diff --git a/src/material/tabs/_tabs-common.scss b/src/material/tabs/_tabs-common.scss index 282db3d041f4..405664a38588 100644 --- a/src/material/tabs/_tabs-common.scss +++ b/src/material/tabs/_tabs-common.scss @@ -1,11 +1,10 @@ @use '../core/style/vendor-prefixes'; -@use '../core/tokens/m2/mdc/tab-indicator' as tokens-mdc-tab-indicator; -@use '../core/tokens/m2/mdc/secondary-navigation-tab' as tokens-mdc-secondary-navigation-tab; -@use '../core/tokens/m2/mat/tab-header' as tokens-mat-tab-header; -@use '../core/tokens/m2/mat/tab-header-with-background' as tokens-mat-tab-header-with-background; +@use './m2-tab-indicator'; +@use './m2-secondary-navigation-tab'; +@use './m2-tab-header'; +@use './m2-tab-header-with-background'; @use '../core/tokens/token-utils'; - $mat-tab-animation-duration: 500ms !default; // Combines the various structural styles we need for the tab group and tab nav bar. @@ -103,21 +102,21 @@ $mat-tab-animation-duration: 500ms !default; background: none; @include token-utils.use-tokens( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-token-slots() + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-token-slots() ) { - @include token-utils.create-token-slot(height, container-height); + height: token-utils.slot(container-height); } @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(font-family, label-text-font); - @include token-utils.create-token-slot(font-size, label-text-size); - @include token-utils.create-token-slot(letter-spacing, label-text-tracking); - @include token-utils.create-token-slot(line-height, label-text-line-height); - @include token-utils.create-token-slot(font-weight, label-text-weight); + font-family: token-utils.slot(label-text-font); + font-size: token-utils.slot(label-text-size); + letter-spacing: token-utils.slot(label-text-tracking); + line-height: token-utils.slot(label-text-line-height); + font-weight: token-utils.slot(label-text-weight); } &.mdc-tab { @@ -129,54 +128,54 @@ $mat-tab-animation-duration: 500ms !default; .mdc-tab-indicator__content--underline { @include token-utils.use-tokens( - tokens-mdc-tab-indicator.$prefix, - tokens-mdc-tab-indicator.get-token-slots() + m2-tab-indicator.$prefix, + m2-tab-indicator.get-token-slots() ) { - @include token-utils.create-token-slot(border-color, active-indicator-color); - @include token-utils.create-token-slot(border-top-width, active-indicator-height); - @include token-utils.create-token-slot(border-radius, active-indicator-shape); + border-color: token-utils.slot(active-indicator-color); + border-top-width: token-utils.slot(active-indicator-height); + border-radius: token-utils.slot(active-indicator-shape); } } @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { &:hover .mdc-tab__text-label { - @include token-utils.create-token-slot(color, inactive-hover-label-text-color); + color: token-utils.slot(inactive-hover-label-text-color); } &:focus .mdc-tab__text-label { - @include token-utils.create-token-slot(color, inactive-focus-label-text-color); + color: token-utils.slot(inactive-focus-label-text-color); } &.mdc-tab--active { .mdc-tab__text-label { - @include token-utils.create-token-slot(color, active-label-text-color); + color: token-utils.slot(active-label-text-color); } .mdc-tab__ripple::before, .mat-ripple-element { - @include token-utils.create-token-slot(background-color, active-ripple-color); + background-color: token-utils.slot(active-ripple-color); } &:hover { .mdc-tab__text-label { - @include token-utils.create-token-slot(color, active-hover-label-text-color); + color: token-utils.slot(active-hover-label-text-color); } .mdc-tab-indicator__content--underline { - @include token-utils.create-token-slot(border-color, active-hover-indicator-color); + border-color: token-utils.slot(active-hover-indicator-color); } } &:focus { .mdc-tab__text-label { - @include token-utils.create-token-slot(color, active-focus-label-text-color); + color: token-utils.slot(active-focus-label-text-color); } .mdc-tab-indicator__content--underline { - @include token-utils.create-token-slot(border-color, active-focus-indicator-color); + border-color: token-utils.slot(active-focus-indicator-color); } } } @@ -200,12 +199,12 @@ $mat-tab-animation-duration: 500ms !default; } @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { .mdc-tab__ripple::before, .mat-ripple-element { - @include token-utils.create-token-slot(background-color, disabled-ripple-color); + background-color: token-utils.slot(disabled-ripple-color); } } } @@ -224,19 +223,19 @@ $mat-tab-animation-duration: 500ms !default; pointer-events: none; @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(background-color, inactive-ripple-color); + background-color: token-utils.slot(inactive-ripple-color); } } .mdc-tab__text-label { @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(color, inactive-label-text-color); + color: token-utils.slot(inactive-label-text-color); } // We support projecting icons into the tab. These styles ensure that they're centered. @@ -271,10 +270,10 @@ $mat-tab-animation-duration: 500ms !default; opacity: 0.12; @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(background-color, inactive-ripple-color); + background-color: token-utils.slot(inactive-ripple-color); } } } @@ -315,10 +314,10 @@ $mat-tab-animation-duration: 500ms !default; opacity: 0.12; @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(background-color, inactive-ripple-color); + background-color: token-utils.slot(inactive-ripple-color); } } @@ -352,10 +351,10 @@ $mat-tab-animation-duration: 500ms !default; width: 8px; @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { - @include token-utils.create-token-slot(border-color, pagination-icon-color); + border-color: token-utils.slot(pagination-icon-color); } } @@ -403,10 +402,10 @@ $mat-tab-animation-duration: 500ms !default; .cdk-drop-list &, &.cdk-drop-list { @include token-utils.use-tokens( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-token-slots() + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-token-slots() ) { - @include token-utils.create-token-slot(min-height, container-height); + min-height: token-utils.slot(container-height); } } } @@ -420,19 +419,19 @@ $mat-tab-animation-duration: 500ms !default; overflow: hidden; z-index: 1; @include token-utils.use-tokens( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-token-slots() + m2-tab-header.$prefix, + m2-tab-header.get-token-slots() ) { border-bottom-style: solid; - @include token-utils.create-token-slot(border-bottom-width, divider-height); - @include token-utils.create-token-slot(border-bottom-color, divider-color); + border-bottom-width: token-utils.slot(divider-height); + border-bottom-color: token-utils.slot(divider-color); @if ($inverted-header-selector) { #{$inverted-header-selector} & { border-bottom: none; border-top-style: solid; - @include token-utils.create-token-slot(border-top-width, divider-height); - @include token-utils.create-token-slot(border-top-color, divider-color); + border-top-width: token-utils.slot(divider-height); + border-top-color: token-utils.slot(divider-color); } } } @@ -441,14 +440,14 @@ $mat-tab-animation-duration: 500ms !default; @mixin paginated-tab-header-with-background($header-selector, $tab-selector) { &.mat-tabs-with-background { @include token-utils.use-tokens( - tokens-mat-tab-header-with-background.$prefix, - tokens-mat-tab-header-with-background.get-token-slots() + m2-tab-header-with-background.$prefix, + m2-tab-header-with-background.get-token-slots() ) { // Note that these selectors target direct descendants so // that the styles don't apply to any nested tab groups. > #{$header-selector}, > .mat-mdc-tab-header-pagination { // Set background color for the tab group - @include token-utils.create-token-slot(background-color, background-color); + background-color: token-utils.slot(background-color); } // Note: this is only scoped to primary, because the legacy tabs had the incorrect behavior @@ -458,22 +457,22 @@ $mat-tab-animation-duration: 500ms !default; &.mat-primary > #{$header-selector} { // Set labels to contrast against background #{$tab-selector} .mdc-tab__text-label { - @include token-utils.create-token-slot(color, foreground-color); + color: token-utils.slot(foreground-color); } .mdc-tab-indicator__content--underline { - @include token-utils.create-token-slot(border-color, foreground-color); + border-color: token-utils.slot(foreground-color); } } &:not(.mat-primary) > #{$header-selector} { #{$tab-selector}:not(.mdc-tab--active) { .mdc-tab__text-label { - @include token-utils.create-token-slot(color, foreground-color); + color: token-utils.slot(foreground-color); } .mdc-tab-indicator__content--underline { - @include token-utils.create-token-slot(border-color, foreground-color); + border-color: token-utils.slot(foreground-color); } } } @@ -481,15 +480,15 @@ $mat-tab-animation-duration: 500ms !default; > #{$header-selector}, > .mat-mdc-tab-header-pagination { .mat-mdc-tab-header-pagination-chevron, .mat-focus-indicator::before { - @include token-utils.create-token-slot(border-color, foreground-color); + border-color: token-utils.slot(foreground-color); } .mat-ripple-element, .mdc-tab__ripple::before { - @include token-utils.create-token-slot(background-color, foreground-color); + background-color: token-utils.slot(foreground-color); } .mat-mdc-tab-header-pagination-chevron { - @include token-utils.create-token-slot(color, foreground-color); + color: token-utils.slot(foreground-color); } } } diff --git a/src/material/tabs/_tabs-theme.scss b/src/material/tabs/_tabs-theme.scss index 368ce348aa42..ffdd5d0968d0 100644 --- a/src/material/tabs/_tabs-theme.scss +++ b/src/material/tabs/_tabs-theme.scss @@ -1,8 +1,8 @@ @use '../core/style/sass-utils'; -@use '../core/tokens/m2/mdc/secondary-navigation-tab' as tokens-mdc-secondary-navigation-tab; -@use '../core/tokens/m2/mdc/tab-indicator' as tokens-mdc-tab-indicator; -@use '../core/tokens/m2/mat/tab-header' as tokens-mat-tab-header; -@use '../core/tokens/m2/mat/tab-header-with-background' as tokens-mat-tab-header-with-background; +@use './m2-secondary-navigation-tab'; +@use './m2-tab-indicator'; +@use './m2-tab-header'; +@use './m2-tab-header-with-background'; @use '../core/theming/theming'; @use '../core/theming/inspection'; @use '../core/theming/validation'; @@ -18,20 +18,20 @@ } @else { @include sass-utils.current-selector-or-root() { @include token-utils.create-token-values-mixed( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-unthemable-tokens() + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mdc-tab-indicator.$prefix, - tokens-mdc-tab-indicator.get-unthemable-tokens() + m2-tab-indicator.$prefix, + m2-tab-indicator.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-unthemable-tokens() + m2-tab-header.$prefix, + m2-tab-header.get-unthemable-tokens() ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header-with-background.$prefix, - tokens-mat-tab-header-with-background.get-unthemable-tokens() + m2-tab-header-with-background.$prefix, + m2-tab-header-with-background.get-unthemable-tokens() ); } } @@ -75,23 +75,23 @@ @mixin _background-styles($theme, $palette-name) { @include token-utils.create-token-values-mixed( - tokens-mat-tab-header-with-background.$prefix, - tokens-mat-tab-header-with-background.get-color-tokens($theme, $palette-name) + m2-tab-header-with-background.$prefix, + m2-tab-header-with-background.get-color-tokens($theme, $palette-name) ); } @mixin _palette-styles($theme, $palette-name) { @include token-utils.create-token-values-mixed( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-color-tokens($theme, $palette-name) + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-color-tokens($theme, $palette-name) ); @include token-utils.create-token-values-mixed( - tokens-mdc-tab-indicator.$prefix, - tokens-mdc-tab-indicator.get-color-tokens($theme, $palette-name) + m2-tab-indicator.$prefix, + m2-tab-indicator.get-color-tokens($theme, $palette-name) ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-color-tokens($theme, $palette-name) + m2-tab-header.$prefix, + m2-tab-header.get-color-tokens($theme, $palette-name) ); } @@ -103,20 +103,20 @@ } @else { .mat-mdc-tab-header { @include token-utils.create-token-values-mixed( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-typography-tokens($theme) + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-tab-indicator.$prefix, - tokens-mdc-tab-indicator.get-typography-tokens($theme) + m2-tab-indicator.$prefix, + m2-tab-indicator.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-typography-tokens($theme) + m2-tab-header.$prefix, + m2-tab-header.get-typography-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header-with-background.$prefix, - tokens-mat-tab-header-with-background.get-typography-tokens($theme) + m2-tab-header-with-background.$prefix, + m2-tab-header-with-background.get-typography-tokens($theme) ); } } @@ -130,20 +130,20 @@ } @else { .mat-mdc-tab-header { @include token-utils.create-token-values-mixed( - tokens-mdc-secondary-navigation-tab.$prefix, - tokens-mdc-secondary-navigation-tab.get-density-tokens($theme) + m2-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mdc-tab-indicator.$prefix, - tokens-mdc-tab-indicator.get-density-tokens($theme) + m2-tab-indicator.$prefix, + m2-tab-indicator.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header.$prefix, - tokens-mat-tab-header.get-density-tokens($theme) + m2-tab-header.$prefix, + m2-tab-header.get-density-tokens($theme) ); @include token-utils.create-token-values-mixed( - tokens-mat-tab-header-with-background.$prefix, - tokens-mat-tab-header-with-background.get-density-tokens($theme) + m2-tab-header-with-background.$prefix, + m2-tab-header-with-background.get-density-tokens($theme) ); } } @@ -151,26 +151,26 @@ /// Defines the tokens that will be available in the `overrides` mixin and for docs extraction. @function _define-overrides() { - $tab-tokens: tokens-mdc-secondary-navigation-tab.get-token-slots(); - $tab-indicator-tokens: tokens-mdc-tab-indicator.get-token-slots(); - $tab-header-tokens: tokens-mat-tab-header.get-token-slots(); - $tab-header-with-background-tokens: tokens-mat-tab-header-with-background.get-token-slots(); + $tab-tokens: m2-secondary-navigation-tab.get-token-slots(); + $tab-indicator-tokens: m2-tab-indicator.get-token-slots(); + $tab-header-tokens: m2-tab-header.get-token-slots(); + $tab-header-with-background-tokens: m2-tab-header-with-background.get-token-slots(); @return ( ( - namespace: tokens-mdc-secondary-navigation-tab.$prefix, + namespace: m2-secondary-navigation-tab.$prefix, tokens: $tab-tokens, ), ( - namespace: tokens-mdc-tab-indicator.$prefix, + namespace: m2-tab-indicator.$prefix, tokens: $tab-indicator-tokens, ), ( - namespace: tokens-mat-tab-header.$prefix, + namespace: m2-tab-header.$prefix, tokens: $tab-header-tokens, ), ( - namespace: tokens-mat-tab-header-with-background.$prefix, + namespace: m2-tab-header-with-background.$prefix, tokens: $tab-header-with-background-tokens, ), ); @@ -212,27 +212,27 @@ ); $mdc-tab-indicator-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-tab-indicator.$prefix, + m2-tab-indicator.$prefix, $options... ); $mat-tab-header-tokens: token-utils.get-tokens-for( $tokens, - tokens-mat-tab-header.$prefix, + m2-tab-header.$prefix, $options... ); // Don't pass $options here, because the mdc-tab doesn't have color variants, // only the mdc-tab-indicator and mat-tab-header do. $mdc-secondary-navigation-tab-tokens: token-utils.get-tokens-for( $tokens, - tokens-mdc-secondary-navigation-tab.$prefix + m2-secondary-navigation-tab.$prefix ); @include token-utils.create-token-values( - tokens-mdc-secondary-navigation-tab.$prefix, + m2-secondary-navigation-tab.$prefix, $mdc-secondary-navigation-tab-tokens ); @include token-utils.create-token-values( - tokens-mdc-tab-indicator.$prefix, + m2-tab-indicator.$prefix, $mdc-tab-indicator-tokens ); - @include token-utils.create-token-values(tokens-mat-tab-header.$prefix, $mat-tab-header-tokens); + @include token-utils.create-token-values(m2-tab-header.$prefix, $mat-tab-header-tokens); } diff --git a/src/material/tabs/paginated-tab-header.ts b/src/material/tabs/paginated-tab-header.ts index c43f349c55e7..6dbde9e09556 100644 --- a/src/material/tabs/paginated-tab-header.ts +++ b/src/material/tabs/paginated-tab-header.ts @@ -10,7 +10,7 @@ import {FocusKeyManager, FocusableOption} from '@angular/cdk/a11y'; import {Direction, Directionality} from '@angular/cdk/bidi'; import {ENTER, SPACE, hasModifierKey} from '@angular/cdk/keycodes'; import {SharedResizeObserver} from '@angular/cdk/observers/private'; -import {Platform, _bindEventWithOptions} from '@angular/cdk/platform'; +import {Platform} from '@angular/cdk/platform'; import {ViewportRuler} from '@angular/cdk/scrolling'; import { AfterContentChecked, @@ -177,15 +177,13 @@ export abstract class MatPaginatedTabHeader // We need to handle these events manually, because we want to bind passive event listeners. this._eventCleanups.push( - _bindEventWithOptions( - this._renderer, + this._renderer.listen( this._previousPaginator.nativeElement, 'touchstart', () => this._handlePaginatorPress('before'), passiveEventListenerOptions, ), - _bindEventWithOptions( - this._renderer, + this._renderer.listen( this._nextPaginator.nativeElement, 'touchstart', () => this._handlePaginatorPress('after'), diff --git a/src/material/tabs/tab-group.html b/src/material/tabs/tab-group.html index 626fa00c7355..82c1332427a4 100644 --- a/src/material/tabs/tab-group.html +++ b/src/material/tabs/tab-group.html @@ -7,26 +7,26 @@ (indexFocused)="_focusChanged($event)" (selectFocusedIndex)="selectedIndex = $event"> - @for (tab of _tabs; track tab; let i = $index) { + @for (tab of _tabs; track tab) {