This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 23b6a1bdf11 Bump the eslint group across 1 directory with 8 updates 
(#69348)
23b6a1bdf11 is described below

commit 23b6a1bdf11b658db81fa9d38c4e58dbd85f08cb
Author: Dependabot [bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Mon Jul 6 14:14:37 2026 +0200

    Bump the eslint group across 1 directory with 8 updates (#69348)
    
    * Bump the eslint group across 1 directory with 8 updates
    
    Bumps the eslint group with 8 updates in the /airflow-core/src/airflow/ui 
directory:
    
    | Package | From | To |
    | --- | --- | --- |
    | 
[@eslint/compat](https://github.com/eslint/rewrite/tree/HEAD/packages/compat) | 
`2.0.5` | `2.1.0` |
    | [eslint](https://github.com/eslint/eslint) | `10.3.0` | `10.6.0` |
    | 
[eslint-plugin-i18next](https://github.com/edvardchen/eslint-plugin-i18next) | 
`6.1.4` | `6.1.5` |
    | [eslint-plugin-jsonc](https://github.com/ota-meshi/eslint-plugin-jsonc) | 
`3.1.2` | `3.2.0` |
    | 
[eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist)
 | `5.9.0` | `5.9.1` |
    | 
[eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | 
`5.5.5` | `5.5.6` |
    | 
[eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh)
 | `0.5.2` | `0.5.3` |
    | 
[eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) 
| `64.0.0` | `70.0.0` |
    
    
    
    Updates `@eslint/compat` from 2.0.5 to 2.1.0
    - [Release notes](https://github.com/eslint/rewrite/releases)
    - 
[Changelog](https://github.com/eslint/rewrite/blob/main/packages/compat/CHANGELOG.md)
    - 
[Commits](https://github.com/eslint/rewrite/commits/compat-v2.1.0/packages/compat)
    
    Updates `eslint` from 10.3.0 to 10.6.0
    - [Release notes](https://github.com/eslint/eslint/releases)
    - [Commits](https://github.com/eslint/eslint/compare/v10.3.0...v10.6.0)
    
    Updates `eslint-plugin-i18next` from 6.1.4 to 6.1.5
    - 
[Changelog](https://github.com/edvardchen/eslint-plugin-i18next/blob/main/CHANGELOG.md)
    - 
[Commits](https://github.com/edvardchen/eslint-plugin-i18next/compare/v6.1.4...v6.1.5)
    
    Updates `eslint-plugin-jsonc` from 3.1.2 to 3.2.0
    - [Release notes](https://github.com/ota-meshi/eslint-plugin-jsonc/releases)
    - 
[Changelog](https://github.com/ota-meshi/eslint-plugin-jsonc/blob/master/CHANGELOG.md)
    - 
[Commits](https://github.com/ota-meshi/eslint-plugin-jsonc/compare/v3.1.2...v3.2.0)
    
    Updates `eslint-plugin-perfectionist` from 5.9.0 to 5.9.1
    - [Release 
notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
    - 
[Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
    - 
[Commits](https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.9.0...v5.9.1)
    
    Updates `eslint-plugin-prettier` from 5.5.5 to 5.5.6
    - [Release 
notes](https://github.com/prettier/eslint-plugin-prettier/releases)
    - 
[Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
    - 
[Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.5...v5.5.6)
    
    Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
    - [Release 
notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
    - 
[Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
    - 
[Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.2...v0.5.3)
    
    Updates `eslint-plugin-unicorn` from 64.0.0 to 70.0.0
    - [Release 
notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
    - 
[Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v64.0.0...v70.0.0)
    
    ---
    updated-dependencies:
    - dependency-name: "@eslint/compat"
      dependency-version: 2.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
      dependency-group: eslint
    - dependency-name: eslint
      dependency-version: 10.6.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
      dependency-group: eslint
    - dependency-name: eslint-plugin-i18next
      dependency-version: 6.1.5
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: eslint
    - dependency-name: eslint-plugin-jsonc
      dependency-version: 3.2.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
      dependency-group: eslint
    - dependency-name: eslint-plugin-perfectionist
      dependency-version: 5.9.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: eslint
    - dependency-name: eslint-plugin-prettier
      dependency-version: 5.5.6
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: eslint
    - dependency-name: eslint-plugin-react-refresh
      dependency-version: 0.5.3
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: eslint
    - dependency-name: eslint-plugin-unicorn
      dependency-version: 69.0.0
      dependency-type: direct:development
      update-type: version-update:semver-major
      dependency-group: eslint
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    
    * UI: Fix lint violations surfaced by the eslint group upgrade
    
    The eslint/typescript-eslint/unicorn upgrades in this group enable stricter
    rules that flag pre-existing code. Apply the auto-fixes and refactor the
    newly-flagged sites (prefer-ternary, consistent-function-scoping,
    max-nested-callbacks, no-literal-string) so the UI static checks pass.
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Jarek Potiuk <[email protected]>
---
 airflow-core/src/airflow/ui/package.json           |  16 +-
 airflow-core/src/airflow/ui/pnpm-lock.yaml         | 423 +++++++++------------
 .../airflow/ui/public/i18n/locales/en/admin.json   |   1 +
 .../src/airflow/ui/src/components/AnsiRenderer.tsx |   2 +-
 .../ui/src/components/MarkdownModal.test.tsx       |  14 +-
 .../src/airflow/ui/src/hooks/usePluginTabs.tsx     |   9 +-
 .../src/airflow/ui/src/mocks/handlers/log.ts       |   2 +-
 .../pages/DagsList/PartitionScheduleModal.test.tsx |   3 +
 .../src/pages/TaskInstance/RenderedTemplates.tsx   |   2 +-
 .../ui/src/pages/TaskInstance/TaskInstance.tsx     |  29 +-
 .../ui/src/pages/Variables/ImportVariablesForm.tsx |   3 +-
 .../airflow/ui/src/queries/useGridTISummaries.ts   |  14 +-
 .../src/airflow/ui/src/utils/datetimeUtils.test.ts |  14 +-
 13 files changed, 247 insertions(+), 285 deletions(-)

diff --git a/airflow-core/src/airflow/ui/package.json 
b/airflow-core/src/airflow/ui/package.json
index 33427e8de04..fcd6fd62d7b 100644
--- a/airflow-core/src/airflow/ui/package.json
+++ b/airflow-core/src/airflow/ui/package.json
@@ -76,7 +76,7 @@
   },
   "devDependencies": {
     "@7nohe/openapi-react-query-codegen": "^1.6.2",
-    "@eslint/compat": "^2.0.5",
+    "@eslint/compat": "^2.1.0",
     "@eslint/js": "^10.0.1",
     "@playwright/test": "^1.60.0",
     "@rolldown/plugin-babel": "^0.2.2",
@@ -97,17 +97,17 @@
     "@vitejs/plugin-react-swc": "^4.2.3",
     "@vitest/coverage-v8": "^4.1.4",
     "babel-plugin-react-compiler": "^1.0.0",
-    "eslint": "^10.3.0",
+    "eslint": "^10.6.0",
     "eslint-config-prettier": "^10.1.8",
-    "eslint-plugin-i18next": "^6.1.4",
-    "eslint-plugin-jsonc": "^3.1.2",
+    "eslint-plugin-i18next": "^6.1.5",
+    "eslint-plugin-jsonc": "^3.2.0",
     "eslint-plugin-jsx-a11y": "^6.10.2",
-    "eslint-plugin-perfectionist": "^5.9.0",
-    "eslint-plugin-prettier": "^5.5.5",
+    "eslint-plugin-perfectionist": "^5.9.1",
+    "eslint-plugin-prettier": "^5.5.6",
     "eslint-plugin-react": "^7.37.5",
     "eslint-plugin-react-hooks": "^7.1.1",
-    "eslint-plugin-react-refresh": "^0.5.2",
-    "eslint-plugin-unicorn": "^64.0.0",
+    "eslint-plugin-react-refresh": "^0.5.3",
+    "eslint-plugin-unicorn": "^70.0.0",
     "globals": "^15.15.0",
     "happy-dom": "^20.8.3",
     "jsonc-eslint-parser": "^2.4.0",
diff --git a/airflow-core/src/airflow/ui/pnpm-lock.yaml 
b/airflow-core/src/airflow/ui/pnpm-lock.yaml
index ebee173a589..be426eb9e3c 100644
--- a/airflow-core/src/airflow/ui/pnpm-lock.yaml
+++ b/airflow-core/src/airflow/ui/pnpm-lock.yaml
@@ -187,11 +187,11 @@ importers:
         specifier: ^1.6.2
         version: 
1.6.2([email protected])([email protected])([email protected])([email protected])([email protected])
       '@eslint/compat':
-        specifier: ^2.0.5
-        version: 2.0.5([email protected]([email protected]))
+        specifier: ^2.1.0
+        version: 2.1.0([email protected]([email protected]))
       '@eslint/js':
         specifier: ^10.0.1
-        version: 10.0.1([email protected]([email protected]))
+        version: 10.0.1([email protected]([email protected]))
       '@playwright/test':
         specifier: ^1.60.0
         version: 1.60.0
@@ -200,10 +200,10 @@ importers:
         version: 
0.2.2(@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected]))
       '@stylistic/eslint-plugin':
         specifier: ^2.13.0
-        version: 2.13.0([email protected]([email protected]))([email protected])
+        version: 2.13.0([email protected]([email protected]))([email protected])
       '@tanstack/eslint-plugin-query':
         specifier: ^5.91.4
-        version: 5.91.4([email protected]([email protected]))([email protected])
+        version: 5.91.4([email protected]([email protected]))([email protected])
       '@testing-library/jest-dom':
         specifier: ^6.9.1
         version: 6.9.1
@@ -230,13 +230,13 @@ importers:
         version: 15.5.13
       '@typescript-eslint/eslint-plugin':
         specifier: ^8.62.1
-        version: 
8.62.1(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+        version: 
8.62.1(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
       '@typescript-eslint/parser':
         specifier: ^8.62.1
-        version: 8.62.1([email protected]([email protected]))([email protected])
+        version: 8.62.1([email protected]([email protected]))([email protected])
       '@typescript-eslint/utils':
         specifier: ^8.62.1
-        version: 8.62.1([email protected]([email protected]))([email protected])
+        version: 8.62.1([email protected]([email protected]))([email protected])
       '@vitejs/plugin-react':
         specifier: ^6.0.1
         version: 
6.0.1(@rolldown/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])))([email protected])([email protected](@types/[email protected])([email protected])([email protected]))
@@ -250,38 +250,38 @@ importers:
         specifier: ^1.0.0
         version: 1.0.0
       eslint:
-        specifier: ^10.3.0
-        version: 10.3.0([email protected])
+        specifier: ^10.6.0
+        version: 10.6.0([email protected])
       eslint-config-prettier:
         specifier: ^10.1.8
-        version: 10.1.8([email protected]([email protected]))
+        version: 10.1.8([email protected]([email protected]))
       eslint-plugin-i18next:
-        specifier: ^6.1.4
-        version: 6.1.4
+        specifier: ^6.1.5
+        version: 6.1.5
       eslint-plugin-jsonc:
-        specifier: ^3.1.2
-        version: 3.1.2([email protected]([email protected]))
+        specifier: ^3.2.0
+        version: 3.2.0([email protected]([email protected]))
       eslint-plugin-jsx-a11y:
         specifier: ^6.10.2
-        version: 6.10.2([email protected]([email protected]))
+        version: 6.10.2([email protected]([email protected]))
       eslint-plugin-perfectionist:
-        specifier: ^5.9.0
-        version: 5.9.0([email protected]([email protected]))([email protected])
+        specifier: ^5.9.1
+        version: 5.9.1([email protected]([email protected]))([email protected])
       eslint-plugin-prettier:
-        specifier: ^5.5.5
-        version: 
5.5.5([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected])
+        specifier: ^5.5.6
+        version: 
5.5.6([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected])
       eslint-plugin-react:
         specifier: ^7.37.5
-        version: 7.37.5([email protected]([email protected]))
+        version: 7.37.5([email protected]([email protected]))
       eslint-plugin-react-hooks:
         specifier: ^7.1.1
-        version: 7.1.1([email protected]([email protected]))
+        version: 7.1.1([email protected]([email protected]))
       eslint-plugin-react-refresh:
-        specifier: ^0.5.2
-        version: 0.5.2([email protected]([email protected]))
+        specifier: ^0.5.3
+        version: 0.5.3([email protected]([email protected]))
       eslint-plugin-unicorn:
-        specifier: ^64.0.0
-        version: 64.0.0([email protected]([email protected]))
+        specifier: ^70.0.0
+        version: 70.0.0([email protected]([email protected]))
       globals:
         specifier: ^15.15.0
         version: 15.15.0
@@ -308,7 +308,7 @@ importers:
         version: 6.0.3
       typescript-eslint:
         specifier: ^8.62.1
-        version: 8.62.1([email protected]([email protected]))([email protected])
+        version: 8.62.1([email protected]([email protected]))([email protected])
       vite:
         specifier: ^8.0.16
         version: 8.0.16(@types/[email protected])([email protected])([email protected])
@@ -432,10 +432,6 @@ packages:
     resolution: {integrity: 
sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/[email protected]':
-    resolution: {integrity: 
sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
-    engines: {node: '>=6.9.0'}
-
   '@babel/[email protected]':
     resolution: {integrity: 
sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
     engines: {node: '>=6.9.0'}
@@ -590,8 +586,8 @@ packages:
     resolution: {integrity: 
sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
     engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: 
sha512-IbHDbHJfkVNv6xjlET8AIVo/K1NQt7YT4Rp6ok/clyBGcpRx1l6gv0Rq3vBvYfPJIZt6ODf66Zq08FJNDpnzgg==}
+  '@eslint/[email protected]':
+    resolution: {integrity: 
sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
     peerDependencies:
       eslint: ^8.40 || 9 || 10
@@ -603,8 +599,8 @@ packages:
     resolution: {integrity: 
sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: 
sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==}
+  '@eslint/[email protected]':
+    resolution: {integrity: 
sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
 
   '@eslint/[email protected]':
@@ -624,12 +620,8 @@ packages:
     resolution: {integrity: 
sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: 
sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==}
-    engines: {node: ^20.19.0 || ^22.13.0 || >=24}
-
-  '@eslint/[email protected]':
-    resolution: {integrity: 
sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==}
+  '@eslint/[email protected]':
+    resolution: {integrity: 
sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
 
   '@floating-ui/[email protected]':
@@ -821,9 +813,9 @@ packages:
     resolution: {integrity: 
sha512-RWxInlS+lGgKiF0fB0HO76vsJFgRvbavm5Z25/GqqN8MPHXYA6n5rZnfdp4itEXy5DJkQ9vt3yrwa2IKiuhtrA==}
     engines: {node: '>=20'}
 
-  '@pkgr/[email protected]':
-    resolution: {integrity: 
sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
-    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+  '@pkgr/[email protected]':
+    resolution: {integrity: 
sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==}
+    engines: {node: ^14.18.0 || >=16.0.0}
 
   '@playwright/[email protected]':
     resolution: {integrity: 
sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==}
@@ -1718,8 +1710,8 @@ packages:
     engines: {node: '>=0.4.0'}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: 
sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
 
@@ -1842,8 +1834,8 @@ packages:
     resolution: {integrity: 
sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
     engines: {node: 18 || 20 || >=22}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-Q+rUQ7Uz8AHM7DEaNdwvfFCTq7a43lNTzuS94eiWqwyxfV/wJv+oUivef51T91mmRY4d4A1u9rcSvkeufCVXlA==}
+  [email protected]:
+    resolution: {integrity: 
sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==}
     engines: {node: '>=6.0.0'}
     hasBin: true
 
@@ -1854,21 +1846,21 @@ packages:
   [email protected]:
     resolution: {integrity: 
sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
+  [email protected]:
+    resolution: {integrity: 
sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==}
     engines: {node: 18 || 20 || >=22}
 
   [email protected]:
     resolution: {integrity: 
sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
     engines: {node: '>=8'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+  [email protected]:
+    resolution: {integrity: 
sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==}
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: 
sha512-c5JxaDrzwRjq3WyJkI1AGR5xy6Gr6udlt7sQPbl09+3ckB+Zo2qqQ2KhCTBr7Q8dHB43bENGYEk4xddrFH/b7A==}
+  [email protected]:
+    resolution: {integrity: 
sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==}
     engines: {node: '>=18.20'}
 
   [email protected]:
@@ -1899,8 +1891,8 @@ packages:
     resolution: {integrity: 
sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
     engines: {node: '>=16'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-bOoxfJPyYo+ds6W0YfptaCWbFnJYjh2Y1Eow5lRv+vI2u8ganPZqNm1JwNh0t2ELQCqIWg4B3dWEusgAmsoyOw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-vmv8ub2xwTNmljSKf82mtCk5JH7hC+YgzLj3P5zotvA0tPQ9016tdNNOG8WRca1IxOnhSsivB+J0z5FeE5LOUw==}
 
   [email protected]:
     resolution: {integrity: 
sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -1981,10 +1973,6 @@ packages:
   [email protected]:
     resolution: {integrity: 
sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
-    engines: {node: '>=4'}
-
   [email protected]:
     resolution: {integrity: 
sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
     engines: {node: '>= 12'}
@@ -2312,6 +2300,10 @@ packages:
   [email protected]:
     resolution: {integrity: 
sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
 
+  [email protected]:
+    resolution: {integrity: 
sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==}
+    engines: {node: '>=12.20'}
+
   [email protected]:
     resolution: {integrity: 
sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
     engines: {node: '>=8'}
@@ -2347,8 +2339,8 @@ packages:
     resolution: {integrity: 
sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
     engines: {node: '>= 0.4'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==}
+  [email protected]:
+    resolution: {integrity: 
sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==}
 
   [email protected]:
     resolution: {integrity: 
sha512-zxxR9k+rx5ktMwT/FwyLdPCrq7xN6e4VGGHH8hA01vVYKjTFik7nHOxBnAYtrgYUB1RpAiLvA1/U2YraWxyKKg==}
@@ -2415,10 +2407,6 @@ packages:
     resolution: {integrity: 
sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     engines: {node: '>=6'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
-    engines: {node: '>=0.8.0'}
-
   [email protected]:
     resolution: {integrity: 
sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
@@ -2444,12 +2432,12 @@ packages:
       '@eslint/json':
         optional: true
 
-  [email protected]:
-    resolution: {integrity: 
sha512-BekXQu1VaVFkREepQGsntBYoKuPsf89V16n/s2xpKMtsw0/lDseds1wBhj3RtO1dKnHsfTPaG+xul1vF0R7LEQ==}
+  [email protected]:
+    resolution: {integrity: 
sha512-xCTfstbK9ZpQ6UFT5S1s6zbZMhKn2o2jRSQYiU2UkV7wt8y1m3WjkUYGkGlipgRdFInYI9+LAqE+JQU/L73HmA==}
     engines: {node: '>=18.10.0'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-dopTxdB22iuOkgKyJCupEC5IYBItUT4J/teq1H5ddUObcaYhOURxtJElZczdcYnnKCghNU/vccuyPkliy2Wxsg==}
+  [email protected]:
+    resolution: {integrity: 
sha512-eQSxJypkpNycQAFE/ph/j+bDD2MiCcojxNb+7nugYzuQZvELYg4YO1Cv1y/8MbjPIEw5u3Lx0VPOTlqJJIhPPw==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
     peerDependencies:
       eslint: '>=9.38.0'
@@ -2460,14 +2448,14 @@ packages:
     peerDependencies:
       eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
 
-  [email protected]:
-    resolution: {integrity: 
sha512-8TWzg02zmnBdZwCkWLi8jhzqXI+fE7Z/RwV8SL6xD45tJ8Bp3wGuYL2XtQgfe/Wd0eBqOUX+s6ey73IyszvKTA==}
+  [email protected]:
+    resolution: {integrity: 
sha512-30mHLNfEhzwaq5cquyWgnzrNXvT8AzwIwyeH5aj4U5ajhHSF2uiO6i09xpMDLv7koaZVTjLsvYF4m3gK/15tyA==}
     engines: {node: ^20.0.0 || >=22.0.0}
     peerDependencies:
       eslint: ^8.45.0 || ^9.0.0 || ^10.0.0
 
-  [email protected]:
-    resolution: {integrity: 
sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
       '@types/eslint': '>=8.0.0'
@@ -2486,8 +2474,8 @@ packages:
     peerDependencies:
       eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || 
^9.0.0 || ^10.0.0
 
-  [email protected]:
-    resolution: {integrity: 
sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==}
+  [email protected]:
+    resolution: {integrity: 
sha512-5EMmLCV98Pi4o/f/3DP/v/tNqLHMIc9I8LKClNDWhZ9JTho89/kQcitCXQBMG7sAfVRK0Ie3T2EDOzp1YXYiVA==}
     peerDependencies:
       eslint: ^9 || ^10
 
@@ -2497,11 +2485,11 @@ packages:
     peerDependencies:
       eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
 
-  [email protected]:
-    resolution: {integrity: 
sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==}
-    engines: {node: ^20.10.0 || >=21.0.0}
+  [email protected]:
+    resolution: {integrity: 
sha512-uAF9xMcVvvhTfvusCgogJ1wh4To3q2KhVMw3i1Apf/ILTbxsCjscvraAZACsEurb7no2fdXblD3whcbVnjw5zg==}
+    engines: {node: '>=22'}
     peerDependencies:
-      eslint: '>=9.38.0'
+      eslint: '>=10.4'
 
   [email protected]:
     resolution: {integrity: 
sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
@@ -2519,8 +2507,8 @@ packages:
     resolution: {integrity: 
sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==}
     engines: {node: ^20.19.0 || ^22.13.0 || >=24}
     hasBin: true
     peerDependencies:
@@ -2716,8 +2704,8 @@ packages:
     resolution: {integrity: 
sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
     engines: {node: '>=18'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==}
+  [email protected]:
+    resolution: {integrity: 
sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==}
     engines: {node: '>=18'}
 
   [email protected]:
@@ -3525,8 +3513,9 @@ packages:
       encoding:
         optional: true
 
-  [email protected]:
-    resolution: {integrity: 
sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==}
+    engines: {node: '>=18'}
 
   [email protected]:
     resolution: {integrity: 
sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@@ -3869,16 +3858,12 @@ packages:
   [email protected]:
     resolution: {integrity: 
sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
-    hasBin: true
-
   [email protected]:
     resolution: {integrity: 
sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
     engines: {node: '>= 0.4'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==}
+  [email protected]:
+    resolution: {integrity: 
sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==}
     hasBin: true
 
   [email protected]:
@@ -3964,16 +3949,6 @@ packages:
     engines: {node: '>=10'}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: 
sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
-    engines: {node: '>=10'}
-    hasBin: true
-
-  [email protected]:
-    resolution: {integrity: 
sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==}
-    engines: {node: '>=10'}
-    hasBin: true
-
   [email protected]:
     resolution: {integrity: 
sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
     engines: {node: '>=10'}
@@ -4124,8 +4099,8 @@ packages:
     resolution: {integrity: 
sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  [email protected]:
-    resolution: {integrity: 
sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
+  [email protected]:
+    resolution: {integrity: 
sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==}
     engines: {node: ^14.18.0 || >=16.0.0}
 
   [email protected]:
@@ -4686,13 +4661,13 @@ snapshots:
 
   '@babel/[email protected]':
     dependencies:
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
       js-tokens: 4.0.0
       picocolors: 1.1.1
 
   '@babel/[email protected]':
     dependencies:
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
       js-tokens: 4.0.0
       picocolors: 1.1.1
 
@@ -4750,7 +4725,7 @@ snapshots:
     dependencies:
       '@babel/compat-data': 7.29.0
       '@babel/helper-validator-option': 7.27.1
-      browserslist: 4.28.2
+      browserslist: 4.28.4
       lru-cache: 5.1.1
       semver: 6.3.1
 
@@ -4787,7 +4762,7 @@ snapshots:
     dependencies:
       '@babel/core': 7.29.0
       '@babel/helper-module-imports': 7.28.6
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
       '@babel/traverse': 7.29.0
     transitivePeerDependencies:
       - supports-color
@@ -4803,8 +4778,6 @@ snapshots:
   '@babel/[email protected]':
     optional: true
 
-  '@babel/[email protected]': {}
-
   '@babel/[email protected]': {}
 
   '@babel/[email protected]': {}
@@ -4872,18 +4845,18 @@ snapshots:
 
   '@babel/[email protected]':
     dependencies:
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
       to-fast-properties: 2.0.0
 
   '@babel/[email protected]':
     dependencies:
       '@babel/helper-string-parser': 7.25.9
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
 
   '@babel/[email protected]':
     dependencies:
       '@babel/helper-string-parser': 7.27.1
-      '@babel/helper-validator-identifier': 7.28.5
+      '@babel/helper-validator-identifier': 7.29.7
 
   '@babel/[email protected]':
     dependencies:
@@ -4996,18 +4969,18 @@ snapshots:
 
   '@emotion/[email protected]': {}
 
-  '@eslint-community/[email protected]([email protected]([email protected]))':
+  '@eslint-community/[email protected]([email protected]([email protected]))':
     dependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       eslint-visitor-keys: 3.4.3
 
   '@eslint-community/[email protected]': {}
 
-  '@eslint/[email protected]([email protected]([email protected]))':
+  '@eslint/[email protected]([email protected]([email protected]))':
     dependencies:
       '@eslint/core': 1.2.1
     optionalDependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
 
   '@eslint/[email protected]':
     dependencies:
@@ -5017,7 +4990,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@eslint/[email protected]':
+  '@eslint/[email protected]':
     dependencies:
       '@eslint/core': 1.2.1
 
@@ -5025,18 +4998,13 @@ snapshots:
     dependencies:
       '@types/json-schema': 7.0.15
 
-  '@eslint/[email protected]([email protected]([email protected]))':
+  '@eslint/[email protected]([email protected]([email protected]))':
     optionalDependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
 
   '@eslint/[email protected]': {}
 
-  '@eslint/[email protected]':
-    dependencies:
-      '@eslint/core': 1.2.1
-      levn: 0.4.1
-
-  '@eslint/[email protected]':
+  '@eslint/[email protected]':
     dependencies:
       '@eslint/core': 1.2.1
       levn: 0.4.1
@@ -5232,7 +5200,7 @@ snapshots:
 
   '@pandacss/[email protected]': {}
 
-  '@pkgr/[email protected]': {}
+  '@pkgr/[email protected]': {}
 
   '@playwright/[email protected]':
     dependencies:
@@ -5304,10 +5272,10 @@ snapshots:
 
   '@standard-schema/[email protected]': {}
 
-  
'@stylistic/[email protected]([email protected]([email protected]))([email protected])':
+  
'@stylistic/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
-      eslint: 10.3.0([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      eslint: 10.6.0([email protected])
       eslint-visitor-keys: 4.2.0
       espree: 10.3.0
       estraverse: 5.3.0
@@ -5373,10 +5341,10 @@ snapshots:
     dependencies:
       '@swc/counter': 0.1.3
 
-  
'@tanstack/[email protected]([email protected]([email protected]))([email protected])':
+  
'@tanstack/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
-      eslint: 10.3.0([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      eslint: 10.6.0([email protected])
     optionalDependencies:
       typescript: 6.0.3
     transitivePeerDependencies:
@@ -5682,15 +5650,15 @@ snapshots:
     dependencies:
       '@types/node': 24.10.3
 
-  
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
+  
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
     dependencies:
       '@eslint-community/regexpp': 4.12.2
-      '@typescript-eslint/parser': 
8.62.1([email protected]([email protected]))([email protected])
+      '@typescript-eslint/parser': 
8.62.1([email protected]([email protected]))([email protected])
       '@typescript-eslint/scope-manager': 8.62.1
-      '@typescript-eslint/type-utils': 
8.62.1([email protected]([email protected]))([email protected])
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      '@typescript-eslint/type-utils': 
8.62.1([email protected]([email protected]))([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
       '@typescript-eslint/visitor-keys': 8.62.1
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       ignore: 7.0.5
       natural-compare: 1.4.0
       ts-api-utils: 2.5.0([email protected])
@@ -5698,14 +5666,14 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
       '@typescript-eslint/scope-manager': 8.62.1
       '@typescript-eslint/types': 8.62.1
       '@typescript-eslint/typescript-estree': 8.62.1([email protected])
       '@typescript-eslint/visitor-keys': 8.62.1
       debug: 4.4.3
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       typescript: 6.0.3
     transitivePeerDependencies:
       - supports-color
@@ -5728,13 +5696,13 @@ snapshots:
     dependencies:
       typescript: 6.0.3
 
-  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
       '@typescript-eslint/types': 8.62.1
       '@typescript-eslint/typescript-estree': 8.62.1([email protected])
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
       debug: 4.4.3
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       ts-api-utils: 2.5.0([email protected])
       typescript: 6.0.3
     transitivePeerDependencies:
@@ -5757,13 +5725,13 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
-      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
       '@typescript-eslint/scope-manager': 8.62.1
       '@typescript-eslint/types': 8.62.1
       '@typescript-eslint/typescript-estree': 8.62.1([email protected])
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       typescript: 6.0.3
     transitivePeerDependencies:
       - supports-color
@@ -6504,15 +6472,15 @@ snapshots:
     dependencies:
       acorn: 8.15.0
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
-      acorn: 8.16.0
+      acorn: 8.17.0
 
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -6667,7 +6635,7 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]: {}
 
@@ -6676,7 +6644,7 @@ snapshots:
       balanced-match: 1.0.2
       concat-map: 0.0.1
 
-  [email protected]:
+  [email protected]:
     dependencies:
       balanced-match: 4.0.4
 
@@ -6684,15 +6652,15 @@ snapshots:
     dependencies:
       fill-range: 7.1.1
 
-  [email protected]:
+  [email protected]:
     dependencies:
-      baseline-browser-mapping: 2.10.21
-      caniuse-lite: 1.0.30001790
-      electron-to-chromium: 1.5.344
-      node-releases: 2.0.38
-      update-browserslist-db: 1.2.3([email protected])
+      baseline-browser-mapping: 2.10.42
+      caniuse-lite: 1.0.30001802
+      electron-to-chromium: 1.5.387
+      node-releases: 2.0.50
+      update-browserslist-db: 1.2.3([email protected])
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]([email protected]):
     dependencies:
@@ -6732,7 +6700,7 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]: {}
 
@@ -6807,10 +6775,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      escape-string-regexp: 1.0.5
-
   [email protected]: {}
 
   [email protected]:
@@ -6857,7 +6821,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      browserslist: 4.28.2
+      browserslist: 4.28.4
 
   [email protected]:
     dependencies:
@@ -7149,6 +7113,8 @@ snapshots:
 
   [email protected]: {}
 
+  [email protected]: {}
+
   [email protected]: {}
 
   [email protected]:
@@ -7182,7 +7148,7 @@ snapshots:
       es-errors: 1.3.0
       gopd: 1.2.0
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]: {}
 
@@ -7304,43 +7270,40 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
 
-  
[email protected]([email protected]([email protected]))([email protected]):
+  
[email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       esquery: 1.7.0
       jsonc-eslint-parser: 3.1.0
 
-  [email protected]:
+  [email protected]:
     dependencies:
-      lodash: 4.18.1
       requireindex: 1.1.0
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
       '@eslint/core': 1.2.1
-      '@eslint/plugin-kit': 0.6.1
+      '@eslint/plugin-kit': 0.7.2
       '@ota-meshi/ast-token-store': 0.3.0
       diff-sequences: 29.6.3
-      eslint: 10.3.0([email protected])
-      eslint-json-compat-utils: 
0.2.3([email protected]([email protected]))([email protected])
+      eslint: 10.6.0([email protected])
+      eslint-json-compat-utils: 
0.2.3([email protected]([email protected]))([email protected])
       jsonc-eslint-parser: 3.1.0
       natural-compare: 1.4.0
-      synckit: 0.11.12
+      synckit: 0.11.13
     transitivePeerDependencies:
       - '@eslint/json'
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
       aria-query: 5.3.2
       array-includes: 3.1.8
@@ -7350,7 +7313,7 @@ snapshots:
       axobject-query: 4.1.0
       damerau-levenshtein: 1.0.8
       emoji-regex: 9.2.2
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       hasown: 2.0.2
       jsx-ast-utils: 3.3.5
       language-tags: 1.0.9
@@ -7359,40 +7322,40 @@ snapshots:
       safe-regex-test: 1.1.0
       string.prototype.includes: 2.0.1
 
-  
[email protected]([email protected]([email protected]))([email protected]):
+  
[email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
-      eslint: 10.3.0([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      eslint: 10.6.0([email protected])
       natural-orderby: 5.0.0
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  
[email protected]([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected]):
+  
[email protected]([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected]):
     dependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       prettier: 3.8.1
       prettier-linter-helpers: 1.0.1
-      synckit: 0.11.12
+      synckit: 0.11.13
     optionalDependencies:
-      eslint-config-prettier: 10.1.8([email protected]([email protected]))
+      eslint-config-prettier: 10.1.8([email protected]([email protected]))
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
       '@babel/core': 7.29.0
       '@babel/parser': 7.29.2
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       hermes-parser: 0.25.1
       zod: 4.3.6
       zod-validation-error: 4.0.2([email protected])
     transitivePeerDependencies:
       - supports-color
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
       array-includes: 3.1.8
       array.prototype.findlast: 1.2.5
@@ -7400,7 +7363,7 @@ snapshots:
       array.prototype.tosorted: 1.1.4
       doctrine: 2.1.0
       es-iterator-helpers: 1.2.1
-      eslint: 10.3.0([email protected])
+      eslint: 10.6.0([email protected])
       estraverse: 5.3.0
       hasown: 2.0.2
       jsx-ast-utils: 3.3.5
@@ -7414,24 +7377,24 @@ snapshots:
       string.prototype.matchall: 4.0.12
       string.prototype.repeat: 1.0.0
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      '@babel/helper-validator-identifier': 7.28.5
-      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+      '@babel/helper-validator-identifier': 7.29.7
+      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+      browserslist: 4.28.4
       change-case: 5.4.4
       ci-info: 4.4.0
-      clean-regexp: 1.0.0
       core-js-compat: 3.49.0
-      eslint: 10.3.0([email protected])
+      detect-indent: 7.0.2
+      eslint: 10.6.0([email protected])
       find-up-simple: 1.0.1
-      globals: 17.5.0
+      globals: 17.7.0
       indent-string: 5.0.0
       is-builtin-module: 5.0.0
       jsesc: 3.1.0
       pluralize: 8.0.0
-      regexp-tree: 0.1.27
-      regjsparser: 0.13.1
-      semver: 7.7.4
+      regjsparser: 0.13.2
+      semver: 7.8.5
       strip-indent: 4.1.1
 
   [email protected]:
@@ -7447,14 +7410,14 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
-      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
       '@eslint-community/regexpp': 4.12.2
       '@eslint/config-array': 0.23.5
-      '@eslint/config-helpers': 0.5.5
+      '@eslint/config-helpers': 0.6.0
       '@eslint/core': 1.2.1
-      '@eslint/plugin-kit': 0.7.1
+      '@eslint/plugin-kit': 0.7.2
       '@humanfs/node': 0.16.8
       '@humanwhocodes/module-importer': 1.0.1
       '@humanwhocodes/retry': 0.4.3
@@ -7492,8 +7455,8 @@ snapshots:
 
   [email protected]:
     dependencies:
-      acorn: 8.16.0
-      acorn-jsx: 5.3.2([email protected])
+      acorn: 8.17.0
+      acorn-jsx: 5.3.2([email protected])
       eslint-visitor-keys: 5.0.1
 
   [email protected]:
@@ -7665,7 +7628,7 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -7942,7 +7905,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      builtin-modules: 5.1.0
+      builtin-modules: 5.3.0
 
   [email protected]: {}
 
@@ -8117,9 +8080,9 @@ snapshots:
 
   [email protected]:
     dependencies:
-      acorn: 8.16.0
+      acorn: 8.17.0
       eslint-visitor-keys: 5.0.1
-      semver: 7.7.4
+      semver: 7.8.5
 
   [email protected]: {}
 
@@ -8254,7 +8217,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      semver: 7.8.0
+      semver: 7.8.5
 
   [email protected]: {}
 
@@ -8664,7 +8627,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      brace-expansion: 5.0.6
+      brace-expansion: 5.0.7
 
   [email protected]:
     dependencies:
@@ -8680,7 +8643,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      acorn: 8.16.0
+      acorn: 8.17.0
       pathe: 2.0.3
       pkg-types: 1.3.1
       ufo: 1.6.1
@@ -8735,7 +8698,7 @@ snapshots:
     dependencies:
       whatwg-url: 5.0.0
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]: {}
 
@@ -9119,8 +9082,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
-
   [email protected]:
     dependencies:
       call-bind: 1.0.8
@@ -9130,7 +9091,7 @@ snapshots:
       gopd: 1.2.0
       set-function-name: 2.0.2
 
-  [email protected]:
+  [email protected]:
     dependencies:
       jsesc: 3.1.0
 
@@ -9266,10 +9227,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
-
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]: {}
@@ -9445,9 +9402,9 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
+  [email protected]:
     dependencies:
-      '@pkgr/core': 0.2.9
+      '@pkgr/core': 0.3.6
 
   [email protected]: {}
 
@@ -9557,13 +9514,13 @@ snapshots:
       possible-typed-array-names: 1.1.0
       reflect.getprototypeof: 1.0.10
 
-  [email protected]([email protected]([email protected]))([email protected]):
+  [email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      '@typescript-eslint/eslint-plugin': 
8.62.1(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
-      '@typescript-eslint/parser': 
8.62.1([email protected]([email protected]))([email protected])
+      '@typescript-eslint/eslint-plugin': 
8.62.1(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+      '@typescript-eslint/parser': 
8.62.1([email protected]([email protected]))([email protected])
       '@typescript-eslint/typescript-estree': 8.62.1([email protected])
-      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
-      eslint: 10.3.0([email protected])
+      '@typescript-eslint/utils': 
8.62.1([email protected]([email protected]))([email protected])
+      eslint: 10.6.0([email protected])
       typescript: 6.0.3
     transitivePeerDependencies:
       - supports-color
@@ -9629,9 +9586,9 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
-      browserslist: 4.28.2
+      browserslist: 4.28.4
       escalade: 3.2.0
       picocolors: 1.1.1
 
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/en/admin.json 
b/airflow-core/src/airflow/ui/public/i18n/locales/en/admin.json
index 77afeafef5a..483a0d71069 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/en/admin.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/en/admin.json
@@ -177,6 +177,7 @@
           "title": "Skip"
         }
       },
+      "parsingFile": "Parsing file...",
       "title": "Import Variables",
       "upload": "Upload a JSON File",
       "uploadPlaceholder": "Upload a JSON file containing variables (e.g., 
{\"key\": \"value\", ...})"
diff --git a/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx 
b/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
index 716160d2600..03809a0a7f6 100644
--- a/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
+++ b/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
@@ -131,7 +131,7 @@ const createChakraProps = (bundle: AnserJsonEntry) => {
     case "underline":
       props.textDecoration = "underline";
       break;
-    // eslint-disable-next-line unicorn/no-useless-switch-case
+
     case null:
     default:
       break;
diff --git a/airflow-core/src/airflow/ui/src/components/MarkdownModal.test.tsx 
b/airflow-core/src/airflow/ui/src/components/MarkdownModal.test.tsx
index 383b0c7d9c1..d2b16a20ca0 100644
--- a/airflow-core/src/airflow/ui/src/components/MarkdownModal.test.tsx
+++ b/airflow-core/src/airflow/ui/src/components/MarkdownModal.test.tsx
@@ -39,6 +39,13 @@ const defaultProps = {
 const renderModal = (props: Partial<typeof defaultProps> = {}) =>
   render(<MarkdownModal {...defaultProps} {...props} />, { wrapper: Wrapper });
 
+// The modal is controlled, so drive mdContent from a stateful wrapper.
+const ControlledModal = () => {
+  const [value, setValue] = useState("");
+
+  return <MarkdownModal {...defaultProps} mdContent={value} 
setMdContent={setValue} />;
+};
+
 describe("MarkdownModal", () => {
   it("shows rendered markdown (read-only) with an edit toggle for an existing 
note", () => {
     renderModal();
@@ -95,13 +102,6 @@ describe("MarkdownModal", () => {
   });
 
   it("toggles between the textarea and a rendered preview while editing", () 
=> {
-    // The modal is controlled, so drive mdContent from a stateful wrapper.
-    const ControlledModal = () => {
-      const [value, setValue] = useState("");
-
-      return <MarkdownModal {...defaultProps} mdContent={value} 
setMdContent={setValue} />;
-    };
-
     render(<ControlledModal />, { wrapper: Wrapper });
 
     // Starts in the editor
diff --git a/airflow-core/src/airflow/ui/src/hooks/usePluginTabs.tsx 
b/airflow-core/src/airflow/ui/src/hooks/usePluginTabs.tsx
index 0bde4e06e39..ba3f838834b 100644
--- a/airflow-core/src/airflow/ui/src/hooks/usePluginTabs.tsx
+++ b/airflow-core/src/airflow/ui/src/hooks/usePluginTabs.tsx
@@ -44,11 +44,10 @@ export const usePluginTabs = (destination: string): 
Array<TabPlugin> => {
 
   return externalViews.map((view) => {
     // Choose icon based on theme - prefer dark mode icon if available and in 
dark mode
-    let iconSrc = view.icon;
-
-    if (colorMode === "dark" && view.icon_dark_mode !== undefined && 
view.icon_dark_mode !== null) {
-      iconSrc = view.icon_dark_mode;
-    }
+    const iconSrc =
+      colorMode === "dark" && view.icon_dark_mode !== undefined && 
view.icon_dark_mode !== null
+        ? view.icon_dark_mode
+        : view.icon;
 
     const icon =
       iconSrc !== undefined && iconSrc !== null ? (
diff --git a/airflow-core/src/airflow/ui/src/mocks/handlers/log.ts 
b/airflow-core/src/airflow/ui/src/mocks/handlers/log.ts
index 5f6f2eef241..2ad5051ce8d 100644
--- a/airflow-core/src/airflow/ui/src/mocks/handlers/log.ts
+++ b/airflow-core/src/airflow/ui/src/mocks/handlers/log.ts
@@ -30,7 +30,7 @@ const ti = {
     id: "019518f4-1adb-7223-a917-45fe08b78947",
     version_number: 1,
   },
-  duration: 0.203_977,
+  duration: 0.203977,
   end_date: "2025-02-18T12:19:56.467235Z",
   executor: null,
   executor_config: "{}",
diff --git 
a/airflow-core/src/airflow/ui/src/pages/DagsList/PartitionScheduleModal.test.tsx
 
b/airflow-core/src/airflow/ui/src/pages/DagsList/PartitionScheduleModal.test.tsx
index 929d0917ab6..cfabb2ae747 100644
--- 
a/airflow-core/src/airflow/ui/src/pages/DagsList/PartitionScheduleModal.test.tsx
+++ 
b/airflow-core/src/airflow/ui/src/pages/DagsList/PartitionScheduleModal.test.tsx
@@ -43,6 +43,9 @@ vi.mock("src/queries/useConfig", () => ({
 
 vi.mock("src/components/ui", async (importOriginal) => {
   const actual = await importOriginal<typeof Ui>();
+  // Must stay inside the factory: vitest hoists vi.mock above module scope, 
so an outer-scope
+  // component cannot be referenced here.
+  // eslint-disable-next-line unicorn/consistent-function-scoping
   const DialogPart = ({ children }: { readonly children?: ReactNode }) => 
<div>{children}</div>;
 
   return {
diff --git 
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
index bcd44ef4dd7..de2c6313699 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
@@ -47,7 +47,7 @@ const RenderedTemplatesContent = () => {
             if (value !== null && value !== undefined) {
               const renderedValue =
                 typeof value === "string"
-                  ? value.split("\\n").join("\n").replaceAll(/\\$/gmu, "")
+                  ? value.replaceAll("\\n", "\n").replaceAll(/\\$/gmu, "")
                   : JSON.stringify(value, null, 2);
               const language = detectLanguage(renderedValue);
 
diff --git 
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx 
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
index 1d390f14596..493270f0f78 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
@@ -89,21 +89,20 @@ export const TaskInstance = () => {
   const taskCount = Object.entries(taskInstanceSummary?.child_states ?? {})
     .map(([_state, count]) => count)
     .reduce((sum, val) => sum + val, 0);
-  let newTabs = tabs;
-
-  if (taskInstance && taskInstance.map_index > -1) {
-    newTabs = [
-      ...tabs.slice(0, 1),
-      {
-        icon: <MdOutlineTask />,
-        label: translate("tabs.mappedTaskInstances_other", {
-          count: Number(taskCount),
-        }),
-        value: "task_instances",
-      },
-      ...tabs.slice(1),
-    ];
-  }
+  const newTabs =
+    taskInstance && taskInstance.map_index > -1
+      ? [
+          ...tabs.slice(0, 1),
+          {
+            icon: <MdOutlineTask />,
+            label: translate("tabs.mappedTaskInstances_other", {
+              count: Number(taskCount),
+            }),
+            value: "task_instances",
+          },
+          ...tabs.slice(1),
+        ]
+      : tabs;
 
   const { tabs: requiredActionTabs } = useRequiredActionTabs({ dagId, 
dagRunId: runId, taskId }, newTabs, {
     autoRedirect: true,
diff --git 
a/airflow-core/src/airflow/ui/src/pages/Variables/ImportVariablesForm.tsx 
b/airflow-core/src/airflow/ui/src/pages/Variables/ImportVariablesForm.tsx
index 3f599ef619d..dbad73c788b 100644
--- a/airflow-core/src/airflow/ui/src/pages/Variables/ImportVariablesForm.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Variables/ImportVariablesForm.tsx
@@ -156,7 +156,8 @@ const ImportVariablesForm = ({ onClose }: 
ImportVariablesFormProps) => {
         </FileUpload.ItemGroup>
         {isParsing ? (
           <Center mt={2}>
-            <Spinner color="brand.solid" marginRight={2} size="sm" /> Parsing 
file...
+            <Spinner color="brand.solid" marginRight={2} size="sm" />{" "}
+            {translate("variables.import.parsingFile")}
           </Center>
         ) : undefined}
       </FileUpload.Root>
diff --git a/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts 
b/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
index 7c350440e66..1ec67127b3f 100644
--- a/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
@@ -168,6 +168,13 @@ export const useGridTiSummariesStream = ({
             setTimeout(cb, 0);
           };
 
+    const runScheduledRefresh = () => {
+      if (isMounted) {
+        setRefreshTick((tick) => tick + 1);
+      }
+      scheduleScheduled = false;
+    };
+
     const unsubscribe = queryClient.getQueryCache().subscribe((event) => {
       const [firstKey] = event.query.queryKey as Array<unknown>;
 
@@ -180,12 +187,7 @@ export const useGridTiSummariesStream = ({
         // Coalesce: multiple invalidations in the same execution tick only 
trigger one re-stream.
         if (!scheduleScheduled) {
           scheduleScheduled = true;
-          schedule(() => {
-            if (isMounted) {
-              setRefreshTick((tick) => tick + 1);
-            }
-            scheduleScheduled = false;
-          });
+          schedule(runScheduledRefresh);
         }
       }
     });
diff --git a/airflow-core/src/airflow/ui/src/utils/datetimeUtils.test.ts 
b/airflow-core/src/airflow/ui/src/utils/datetimeUtils.test.ts
index 3d381e1dc95..abc4606d101 100644
--- a/airflow-core/src/airflow/ui/src/utils/datetimeUtils.test.ts
+++ b/airflow-core/src/airflow/ui/src/utils/datetimeUtils.test.ts
@@ -64,7 +64,7 @@ describe("getDuration & formatDuration", () => {
     expect(getDuration(null, null)).toBe(undefined);
     expect(getDuration(undefined, undefined)).toBe(undefined);
     expect(getDuration(null, "2024-03-14T10:00:10.000Z")).toBe(undefined);
-    expect(renderDuration(0.000_01)).toBe(undefined);
+    expect(renderDuration(0.00001)).toBe(undefined);
   });
 
   it("falls back to current time when endDate is null (running task)", () => {
@@ -85,12 +85,12 @@ describe("getDuration & formatDuration", () => {
   });
 
   it("handles floating point milliseconds", () => {
-    expect(renderDuration(dayjs.duration(10.000_499_738, 
"seconds"))).toBe("00:00:10");
-    expect(renderDuration(10.000_499_738)).toBe("00:00:10");
-    expect(renderDuration(dayjs.duration(10.000_500, 
"seconds"))).toBe("00:00:10.001");
-    expect(renderDuration(10.000_500)).toBe("00:00:10.001");
-    expect(renderDuration(dayjs.duration(10.838_999_738, 
"seconds"))).toBe("00:00:10.839");
-    expect(renderDuration(10.838_999_738)).toBe("00:00:10.839");
+    expect(renderDuration(dayjs.duration(10.000499738, 
"seconds"))).toBe("00:00:10");
+    expect(renderDuration(10.000499738)).toBe("00:00:10");
+    expect(renderDuration(dayjs.duration(10.0005, 
"seconds"))).toBe("00:00:10.001");
+    expect(renderDuration(10.0005)).toBe("00:00:10.001");
+    expect(renderDuration(dayjs.duration(10.838999738, 
"seconds"))).toBe("00:00:10.839");
+    expect(renderDuration(10.838999738)).toBe("00:00:10.839");
   });
 });
 

Reply via email to