You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ha...@apache.org on 2026/07/26 08:11:04 UTC

(superset) 01/01: feat(build): migrate from Prettier to Oxfmt for performant code formatting

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

hainenber pushed a commit to branch feat/migrate-from-prettier-to-oxfmt
in repository https://gitbox.apache.org/repos/asf/superset.git

commit af9729a861487a1805fccca2eb677c1bc1440205
Author: hainenber <do...@gmail.com>
AuthorDate: Sun Jul 26 15:09:51 2026 +0700

    feat(build): migrate from Prettier to Oxfmt for performant code formatting
    
    Signed-off-by: hainenber <do...@gmail.com>
---
 .cursor/rules/dev-standard.mdc                     |   4 +-
 .devcontainer/devcontainer-base.json               |   1 -
 .devcontainer/devcontainer.json                    |   1 -
 .pre-commit-config.yaml                            |   6 +-
 .rat-excludes                                      |   2 -
 AGENTS.md                                          |   4 +-
 Makefile                                           |   2 +-
 superset-frontend/.oxfmtrc.json                    |  23 +
 superset-frontend/.prettierignore                  |  30 --
 superset-frontend/cypress-base/package.json        |  22 +-
 superset-frontend/eslint.config.minimal.js         |  10 +-
 superset-frontend/netlify.toml                     |  14 +-
 superset-frontend/package-lock.json                | 593 ++++++++++++++-------
 superset-frontend/package.json                     | 105 ++--
 .../packages/generator-superset/package.json       |  20 +-
 .../packages/superset-core/package.json            |  46 +-
 .../packages/superset-core/src/storage/index.ts    |   7 +-
 .../superset-ui-chart-controls/package.json        |  20 +-
 .../superset-ui-chart-controls/src/types.ts        |  12 +-
 .../packages/superset-ui-core/package.json         |  64 +--
 .../AsyncAceEditor/AsyncAceEditor.stories.tsx      |   8 +-
 .../src/components/AsyncAceEditor/index.tsx        |   5 +-
 .../src/components/Button/types.ts                 |   7 +-
 .../src/components/CodeEditor/index.tsx            |   8 +-
 .../src/components/DropdownButton/index.tsx        |  20 +-
 .../src/components/DynamicEditableTitle/index.tsx  |  20 +-
 .../src/components/EmptyState/index.tsx            |   8 +-
 .../superset-ui-core/src/components/Form/types.ts  |   3 +-
 .../src/components/Icons/index.tsx                 |   3 +-
 .../superset-ui-core/src/components/Label/types.ts |   7 +-
 .../src/components/Loading/types.ts                |   5 +-
 .../src/components/MetadataBar/ContentType.ts      |   9 +-
 .../src/components/Modal/Modal.tsx                 |  78 ++-
 .../superset-ui-core/src/components/Tabs/Tabs.tsx  |  14 +-
 .../superset-ui-core/src/connection/types.ts       |  11 +-
 .../superset-ui-core/src/currency-format/types.ts  |   8 +-
 .../superset-ui-core/src/models/Registry.ts        |   4 +-
 .../src/query/api/v1/handleError.ts                |   3 +-
 .../src/query/getClientErrorObject.ts              |  10 +-
 .../superset-ui-core/src/query/types/Dashboard.ts  |  13 +-
 .../superset-ui-core/src/query/types/Filter.ts     |   4 +-
 .../superset-ui-core/src/query/types/Metric.ts     |   7 +-
 .../src/query/types/PostProcessing.ts              |  30 +-
 .../src/query/types/QueryFormData.ts               |   3 +-
 .../superset-ui-core/src/time-comparison/types.ts  |   9 +-
 .../chart/components/ChartDataProvider.test.tsx    |   3 +-
 .../factories/createD3TimeFormatter.test.ts        |  10 +-
 .../packages/superset-ui-switchboard/package.json  |  36 +-
 .../legacy-plugin-chart-calendar/package.json      |  16 +-
 .../plugins/legacy-plugin-chart-chord/package.json |  36 +-
 .../legacy-plugin-chart-country-map/package.json   |  26 +-
 .../legacy-plugin-chart-horizon/package.json       |  16 +-
 .../legacy-plugin-chart-paired-t-test/package.json |  16 +-
 .../src/TTestTable.tsx                             |   3 +-
 .../package.json                                   |  34 +-
 .../legacy-plugin-chart-partition/package.json     |  16 +-
 .../plugins/legacy-plugin-chart-rose/package.json  |  16 +-
 .../legacy-plugin-chart-world-map/package.json     |  38 +-
 .../plugins/legacy-preset-chart-nvd3/package.json  |  38 +-
 .../plugin-chart-ag-grid-table/package.json        |  20 +-
 .../src/controlPanel.tsx                           |   3 +-
 .../src/transformProps.ts                          |   3 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |   5 +-
 .../src/utils/getRowBasicColorFormatter.ts         |   3 +-
 .../test/controlPanel.test.tsx                     |   3 +-
 .../plugins/plugin-chart-cartodiagram/package.json |  26 +-
 .../plugins/plugin-chart-echarts/package.json      |  20 +-
 .../plugin-chart-echarts/src/BoxPlot/types.ts      |   6 +-
 .../src/Radar/controlPanel.tsx                     |   3 +-
 .../src/Timeseries/transformers.ts                 |   3 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |   6 +-
 .../plugin-chart-echarts/src/utils/legendLayout.ts |   6 +-
 .../src/utils/safeEChartOptionsParser.ts           |   8 +-
 .../plugin-chart-echarts/src/utils/series.ts       |   6 +-
 .../test/MixedTimeseries/buildQuery.test.ts        |  20 +-
 .../test/Timeseries/transformProps.test.ts         |  15 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |  12 +-
 .../plugins/plugin-chart-handlebars/package.json   |  42 +-
 .../src/plugin/controls/shared.ts                  |   3 +-
 .../plugins/plugin-chart-pivot-table/package.json  |  46 +-
 .../src/react-pivottable/utilities.ts              |   3 +-
 .../plugins/plugin-chart-pivot-table/src/types.ts  |   4 +-
 .../plugin-chart-point-cluster-map/package.json    |  18 +-
 .../plugins/plugin-chart-table/package.json        |  20 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  48 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   3 +-
 .../plugin-chart-table/test/controlPanel.test.tsx  |   3 +-
 .../plugins/plugin-chart-word-cloud/package.json   |  38 +-
 .../plugins/preset-chart-deckgl/package.json       |  20 +-
 .../src/layers/Path/buildQuery.ts                  |   3 +-
 .../src/utilities/Shared_DeckGL.tsx                |   3 +-
 .../src/utils/crossFiltersDataMask.ts              |  12 +-
 superset-frontend/prettier.config.js               |  23 -
 superset-frontend/scripts/po2json.sh               |   2 +-
 .../TableExploreTree/TreeNodeRenderer.tsx          |   6 +-
 .../middlewares/persistSqlLabStateEnhancer.ts      |   5 +-
 superset-frontend/src/SqlLab/reducers/sqlLab.ts    |   3 +-
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |   3 +-
 .../Datasource/FoldersEditor/TreeItem.styles.ts    |  24 +-
 .../Datasource/FoldersEditor/treeUtils.ts          |   4 +-
 .../ListView/Filters/CompactSelectPanel.tsx        |   6 +-
 .../src/dashboard/actions/dashboardLayout.ts       |   2 +-
 .../src/dashboard/actions/dashboardState.ts        |   3 +-
 .../components/AddSliceCard/AddSliceCard.tsx       |   3 +-
 .../AutoRefreshStatus/StatusIndicatorDot.tsx       |  14 +-
 .../src/dashboard/components/Dashboard.tsx         |   4 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |  21 +-
 .../DashboardBuilder/DashboardContainer.test.tsx   |   3 +-
 .../src/dashboard/components/IconButton.tsx        |   3 +-
 .../src/dashboard/components/dnd/DragHandle.tsx    |  10 +-
 .../components/gridComponents/Chart/Chart.tsx      |   3 +-
 .../components/gridComponents/Header/Header.tsx    |   7 +-
 .../FilterBar/ActionButtons/index.tsx              |  60 +--
 .../FilterBar/CrossFilters/CrossFilter.tsx         |  20 +-
 .../FilterBar/CrossFilters/CrossFilterTag.tsx      |  10 +-
 .../FilterBar/CrossFilters/CrossFilterTitle.tsx    |   8 +-
 .../FilterControls.overflow.test.tsx               |   3 +-
 .../FilterBar/UrlFilters/UrlFilterTag.tsx          |   8 +-
 .../components/nativeFilters/FilterBar/index.tsx   |   3 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  10 +-
 .../hooks/useItemStateManager.ts                   |   3 +-
 .../FiltersConfigModal/hooks/useModalSaveLogic.ts  |   3 +-
 .../transformers/customizationTransformer.ts       |   8 +-
 .../transformers/filterTransformer.ts              |   4 +-
 .../dashboard/components/nativeFilters/state.ts    |  11 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   3 +-
 .../src/dashboard/reducers/dashboardInfo.ts        |   3 +-
 .../src/dashboard/reducers/nativeFilters.ts        |   5 +-
 superset-frontend/src/dashboard/types.ts           |   3 +-
 .../src/dashboard/util/risonFilters.ts             |   6 +-
 superset-frontend/src/dataMask/reducer.ts          |   2 +-
 .../ExploreContainer/ExploreDndContext.tsx         |   3 +-
 .../controls/ColumnConfigControl/types.ts          |   4 +-
 .../components/controls/DateFilterControl/types.ts |  22 +-
 .../FilterControl/AdhocFilterEditPopover/index.tsx |   3 +-
 .../index.tsx                                      |   5 +-
 .../LayerConfigsPopoverContent.tsx                 |   3 +-
 .../explore/components/controls/SelectControl.tsx  |   3 +-
 .../components/controls/TextAreaControl.tsx        |  16 +-
 .../components/controls/VerticalRadioControl.tsx   |   8 +-
 .../components/controls/VizTypeControl/VizTile.tsx |  50 +-
 .../useExploreAdditionalActionsMenu/index.tsx      |   3 +-
 .../explore/controlUtils/standardizedFormData.ts   |   3 +-
 superset-frontend/src/explore/types.ts             |   6 +-
 .../src/features/alerts/AlertReportModal.tsx       |  29 +-
 .../features/databases/UploadDataModel/index.tsx   |  11 +-
 superset-frontend/src/features/databases/types.ts  |   3 +-
 .../src/features/home/ActivityTable.tsx            |   6 +-
 superset-frontend/src/features/home/RightMenu.tsx  |  10 +-
 .../src/middleware/loggerMiddleware.ts             |   6 +-
 superset-frontend/src/pages/Chart/index.tsx        |   3 +-
 .../FileHandler/FileHandler.subdirectory.test.tsx  |   4 +-
 .../src/pages/FileHandler/index.test.tsx           |   4 +-
 superset-frontend/src/setup/setupApp.ts            |  16 +-
 superset-frontend/src/views/CRUD/types.ts          |   7 +-
 superset-frontend/src/views/CRUD/utils.tsx         |   3 +-
 156 files changed, 1467 insertions(+), 1107 deletions(-)

diff --git a/.cursor/rules/dev-standard.mdc b/.cursor/rules/dev-standard.mdc
index e45ff299043..fa38af89dfb 100644
--- a/.cursor/rules/dev-standard.mdc
+++ b/.cursor/rules/dev-standard.mdc
@@ -105,9 +105,9 @@ Charts built from enriched datasets containing:
 pre-commit install
 
 # Quick validation (faster than --all-files)
-pre-commit run                    # Staged files only
+pre-commit run                   # Staged files only
 pre-commit run mypy              # Python type checking
-pre-commit run prettier          # Code formatting
+pre-commit run format            # Code formatting
 pre-commit run eslint            # Frontend linting
 ```
 
diff --git a/.devcontainer/devcontainer-base.json b/.devcontainer/devcontainer-base.json
index 59ed6ee1d2f..87048a24c1e 100644
--- a/.devcontainer/devcontainer-base.json
+++ b/.devcontainer/devcontainer-base.json
@@ -32,7 +32,6 @@
         "ms-python.vscode-pylance",
         "charliermarsh.ruff",
         "dbaeumer.vscode-eslint",
-        "esbenp.prettier-vscode"
       ]
     }
   }
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 6dc643315bd..4a1fed94ee5 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -59,7 +59,6 @@
         "ms-python.vscode-pylance",
         "charliermarsh.ruff",
         "dbaeumer.vscode-eslint",
-        "esbenp.prettier-vscode"
       ]
     }
   }
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bbdbf569f10..9e52aea484a 100755
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -62,9 +62,9 @@ repos:
         args: ["--markdown-linebreak-ext=md"]
   - repo: local
     hooks:
-      - id: prettier-frontend
-        name: prettier (frontend)
-        entry: bash -c 'cd superset-frontend && files=(); for f in "$@"; do files+=("${f#superset-frontend/}"); done; npx prettier --write -- "${files[@]}"' --
+      - id: oxfmt-frontend
+        name: oxfmt (frontend)
+        entry: bash -c 'cd superset-frontend && files=(); for f in "$@"; do files+=("${f#superset-frontend/}"); done; npx oxfmt --write -- "${files[@]}"' --
         language: system
         pass_filenames: true
         files: ^superset-frontend/.*\.(js|jsx|ts|tsx|css|scss|sass|json)$
diff --git a/.rat-excludes b/.rat-excludes
index 7b788738f2d..b8e1a5b5090 100644
--- a/.rat-excludes
+++ b/.rat-excludes
@@ -10,7 +10,6 @@
 .stylelintignore
 .flake8
 .nvmrc
-.prettierrc
 .rat-excludes
 .swcrc
 .*log
@@ -64,7 +63,6 @@ tsconfig.tsbuildinfo
 .*yml
 .*iml
 .esprintrc
-.prettierignore
 generator-superset/*
 temporary_superset_ui/*
 
diff --git a/AGENTS.md b/AGENTS.md
index e3d45185eea..00c35cc582d 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -19,7 +19,7 @@ git commit --amend  # or new commit
 ```
 
 Common pre-commit failures:
-- **Formatting** - black, prettier, eslint will auto-fix
+- **Formatting** - black, oxfmt, eslint will auto-fix
 - **Type errors** - mypy failures need manual fixes
 - **Linting** - ruff, pylint issues need manual fixes
 
@@ -263,7 +263,7 @@ git add .                        # Pre-commit only checks staged files
 # Quick validation (faster than --all-files)
 pre-commit run                   # Staged files only
 pre-commit run mypy              # Python type checking
-pre-commit run prettier          # Code formatting
+pre-commit run format            # Code formatting
 pre-commit run eslint            # Frontend linting
 ```
 
diff --git a/Makefile b/Makefile
index c6503b24762..d7b1b7c407e 100644
--- a/Makefile
+++ b/Makefile
@@ -95,7 +95,7 @@ py-format: pre-commit
 	pre-commit run black --all-files
 
 js-format:
-	cd superset-frontend; npm run prettier
+	cd superset-frontend; npm run format
 
 flask-app:
 	flask run -p 8088 --reload --debugger
diff --git a/superset-frontend/.oxfmtrc.json b/superset-frontend/.oxfmtrc.json
new file mode 100644
index 00000000000..3193f738cd8
--- /dev/null
+++ b/superset-frontend/.oxfmtrc.json
@@ -0,0 +1,23 @@
+{
+  "$schema": "./node_modules/oxfmt/configuration_schema.json",
+  "singleQuote": true,
+  "trailingComma": "all",
+  "arrowParens": "avoid",
+  "printWidth": 80,
+  "sortPackageJson": true,
+  "ignorePatterns": [
+    "coverage/",
+    "esm/",
+    "lib/",
+    "tmp/",
+    "node_modules/",
+    "tsconfig.json",
+    "lerna.json",
+    "CHANGELOG/",
+    "*.geojson",
+    "*-topo.json",
+    "storybook-static/",
+    "*.snap",
+    "/.nx/workspace-data"
+  ]
+}
diff --git a/superset-frontend/.prettierignore b/superset-frontend/.prettierignore
deleted file mode 100644
index 790231eb298..00000000000
--- a/superset-frontend/.prettierignore
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-coverage/
-esm/
-lib/
-tmp/
-node_modules/
-tsconfig.json
-lerna.json
-CHANGELOG/
-*.geojson
-*-topo.json
-storybook-static/
-*.snap
-
-/.nx/workspace-data
diff --git a/superset-frontend/cypress-base/package.json b/superset-frontend/cypress-base/package.json
index 32cf5f54330..18c9e3d861f 100644
--- a/superset-frontend/cypress-base/package.json
+++ b/superset-frontend/cypress-base/package.json
@@ -9,12 +9,6 @@
     "cypress-debug": "cypress open --config watchForFileChanges=true",
     "cypress-run-chrome": "cypress run --browser chrome --headless"
   },
-  "nyc": {
-    "reporter": [
-      "html",
-      "json"
-    ]
-  },
   "dependencies": {
     "@cypress/code-coverage": "^3.10.4",
     "@superset-ui/core": "^2.1.0",
@@ -35,14 +29,20 @@
   },
   "overrides": {
     "@babel/core": "^7.29.6",
+    "@cypress/code-coverage": {
+      "js-yaml": "4.1.1"
+    },
+    "@cypress/request": "^3.0.0",
     "cypress": {
       "form-data": "^2.3.4"
     },
     "qs": "^6.14.2",
-    "uuid": "^11.1.1",
-    "@cypress/request": "^3.0.0",
-    "@cypress/code-coverage": {
-      "js-yaml": "4.1.1"
-    }
+    "uuid": "^11.1.1"
+  },
+  "nyc": {
+    "reporter": [
+      "html",
+      "json"
+    ]
   }
 }
diff --git a/superset-frontend/eslint.config.minimal.js b/superset-frontend/eslint.config.minimal.js
index c9746f7cce4..7eb2d3b7273 100644
--- a/superset-frontend/eslint.config.minimal.js
+++ b/superset-frontend/eslint.config.minimal.js
@@ -21,8 +21,8 @@
  * MINIMAL ESLint flat config - ONLY for rules OXC doesn't support.
  *
  * This config is run alongside the OXC (oxlint) linter, which handles the
- * bulk of linting. ESLint here only covers the custom Superset plugins and
- * Prettier formatting that oxlint cannot express. It is consumed by
+ * bulk of linting. ESLint here only covers the custom Superset plugins that
+ * oxlint cannot express. It is consumed by
  * `scripts/oxlint-metrics-uploader.js` (`npm run lint-stats`).
  *
  * Migrated from the legacy `.eslintrc.minimal.js` (eslintrc) format to flat
@@ -30,7 +30,6 @@
  *
  * Only covers:
  * - Custom Superset plugins (theme-colors, icons, i18n-strings)
- * - Prettier formatting
  */
 
 // Register the TypeScript require hook so ESLint can load the .ts plugin files
@@ -38,7 +37,6 @@
 require('tsx/cjs');
 
 const tsParser = require('@typescript-eslint/parser');
-const prettierPlugin = require('eslint-plugin-prettier');
 const themeColorsPlugin = require('eslint-plugin-theme-colors');
 const iconsPlugin = require('eslint-plugin-icons');
 const i18nStringsPlugin = require('eslint-plugin-i18n-strings');
@@ -87,15 +85,11 @@ module.exports = [
       reportUnusedDisableDirectives: false,
     },
     plugins: {
-      prettier: prettierPlugin,
       'theme-colors': themeColorsPlugin,
       icons: iconsPlugin,
       'i18n-strings': i18nStringsPlugin,
     },
     rules: {
-      // Prettier integration (formatting)
-      'prettier/prettier': 'error',
-
       // Custom Superset plugins
       'theme-colors/no-literal-colors': 'error',
       'icons/no-fa-icons-usage': 'error',
diff --git a/superset-frontend/netlify.toml b/superset-frontend/netlify.toml
index 3653e69c269..ba35f361d09 100644
--- a/superset-frontend/netlify.toml
+++ b/superset-frontend/netlify.toml
@@ -19,12 +19,12 @@
 # Deployed at: superset-storybook.netlify.app
 
 [build]
-  base = "superset-frontend"
-  command = "npm install && npm run build-storybook"
-  publish = "storybook-static"
-  # Skip builds when no relevant frontend changes
-  # Rebuilds on: component files, storybook config, dependencies
-  ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF -- src/ packages/ plugins/ .storybook/ package.json yarn.lock"
+base = "superset-frontend"
+command = "npm install && npm run build-storybook"
+publish = "storybook-static"
+# Skip builds when no relevant frontend changes
+# Rebuilds on: component files, storybook config, dependencies
+ignore = "git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF -- src/ packages/ plugins/ .storybook/ package.json yarn.lock"
 
 [build.environment]
-  NODE_VERSION = "20"
+NODE_VERSION = "24"
diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index 8a6d049e84c..dbb2a243fa3 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -228,7 +228,6 @@
         "cross-env": "^10.1.0",
         "css-loader": "^7.1.4",
         "eslint": "^10.7.0",
-        "eslint-config-prettier": "^10.1.8",
         "eslint-import-resolver-alias": "^1.1.2",
         "eslint-import-resolver-typescript": "^4.4.5",
         "eslint-plugin-i18n-strings": "file:eslint-rules/eslint-plugin-i18n-strings",
@@ -237,7 +236,6 @@
         "eslint-plugin-jest-dom": "^5.5.0",
         "eslint-plugin-lodash": "^8.0.0",
         "eslint-plugin-no-only-tests": "^3.4.0",
-        "eslint-plugin-prettier": "^5.5.6",
         "eslint-plugin-react-prefer-function-component": "^5.0.0",
         "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.1",
         "eslint-plugin-storybook": "10.5.2",
@@ -259,11 +257,10 @@
         "mini-css-extract-plugin": "^2.10.2",
         "minimizer-webpack-plugin": "^5.6.1",
         "open-cli": "^9.0.0",
+        "oxfmt": "^0.60.0",
         "oxlint": "^1.74.0",
         "po2json": "^0.4.5",
         "postcss-styled-syntax": "^0.7.2",
-        "prettier": "3.9.5",
-        "prettier-plugin-packagejson": "^3.0.2",
         "process": "^0.11.10",
         "react-dnd-test-backend": "^16.0.1",
         "react-refresh": "^0.18.0",
@@ -8440,6 +8437,353 @@
         "win32"
       ]
     },
+    "node_modules/@oxfmt/binding-android-arm-eabi": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.60.0.tgz",
+      "integrity": "sha512-1q4q4Jc8FlOMVojEisyFAVyl8h1yawNv6phjgmhGVEDeyeOdsSnSr9x0+D4mOnEKvpO5L4mxKZ/DP9X6U3A/Mw==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-android-arm64": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.60.0.tgz",
+      "integrity": "sha512-tD41I6nCt9k8SQXft0CSjjU9jg6SwG7uMu7PxodSEHXl+GDW0868oy6tTtoJkyUze8YKFgTpz/k5LuPUnFiGLw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-darwin-arm64": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.60.0.tgz",
+      "integrity": "sha512-TTpzPug96Zxdyb46KvTyIUQDdsqbumXh2TKG9C23PCT0kF7JkW56Z/quPuG9rqOFKQIi1gpRNZ7DX18LwxXPnw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-darwin-x64": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.60.0.tgz",
+      "integrity": "sha512-CnOoWgQ7L+JL/YQaRJ+NyATciSfcftncm7y3kqyte1cGtFEGnStaCd1TAyrinkfQ7nRBfHrTs1/vTwUJr3WF2Q==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-freebsd-x64": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.60.0.tgz",
+      "integrity": "sha512-ychJo7S3hZxdO6eDZ9zM6F2lM9fpJS3EKS5CAUSWyprdLYxTu4gbaUKV/VBPTcMJwQa2Bpo+643y3OJ537pihA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-arm-gnueabihf": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.60.0.tgz",
+      "integrity": "sha512-36IH5o55T2Fx7E0feDttt+mifxN6yk9pWv4KfhAIsP0dFnUq27331OwbpOsZdoXF9soOLWm7mQUz5+UUmyec4g==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-arm-musleabihf": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.60.0.tgz",
+      "integrity": "sha512-G1Ve7lAa6sFBolVI2LWHfEAqy0YKh4vnioH8uYO9kAEdgM7mR40IksIx9/Zk4+vbYew/sGa4J9Q4tZ3n9gXDHA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-arm64-gnu": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.60.0.tgz",
+      "integrity": "sha512-LTQdRBf6uzj/h7Xk6lKzbGD2hrF/fK4YI9LIN1c0509tPUn8wRa3mCmrFQpEWJPLYGFrLFFMTYW1Ljj6VqW2Hw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-arm64-musl": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.60.0.tgz",
+      "integrity": "sha512-2JMo3XPxMPx3hiqddSZYyaH+fKJm6cz0u8n1naYjP/CdOQOZW34i8lKBUfmbWiuFvd6KoYXLmhAyBuvojsYS7Q==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "libc": [
+        "musl"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-ppc64-gnu": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.60.0.tgz",
+      "integrity": "sha512-L3C+nBD13lr306tr/PjM3RMll+BVqgFrIgUyoeHuai5oueJrRLgO3j+GO5/Cbhtkf5PSlHYTI1JY7iqBd1qa6A==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-riscv64-gnu": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.60.0.tgz",
+      "integrity": "sha512-M4MsmvqlxFiPtSRGyBYQSZxchEf463AOyd+Dh4/9xDpjWBsRtDUTDMFN5EdHinjVK1/eDJQ8MLpcYjpYayaCnA==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-riscv64-musl": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.60.0.tgz",
+      "integrity": "sha512-OH+9UskYuxRB+GxqdGkVN8f5UpwhqG8YscNo1wl8+KJ62cd7wZdGga6iGLJIf8kibF1WBwvlfDUx3cez/VXwFg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "libc": [
+        "musl"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-s390x-gnu": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.60.0.tgz",
+      "integrity": "sha512-y7AAFutt9wFWBFOAn6+BHaV39usZmcr3YYH2385f+NHgPNpIF9HpqKp0jgUxPaUOCyG3oaX5VhJduL1Nw164rw==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-x64-gnu": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.60.0.tgz",
+      "integrity": "sha512-yKZ9+CXAI+1RO5nH/4Z/9M6DAsfOzd5bw/gtWk81KB4mpalMaRRSXfouc5/tHxazDmBek55HNPepNYBgaCew0Q==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-linux-x64-musl": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.60.0.tgz",
+      "integrity": "sha512-bCUGaF6hJOYnQzLJdHLZbvGsOd5oSvGAyJhPAKum2uyLYUuXmP8vqg690DWi2hqcnIoYpqSqCrjzE5aiUAgwQg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "libc": [
+        "musl"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-openharmony-arm64": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.60.0.tgz",
+      "integrity": "sha512-GrUeZOvzP30ExxfCuQiyofuUGI+OmvAgFwOO5w5p9mGPlxcyuqI+6Sy9fAKFFfLQrqKYWFgc5sYA2Unj/29nPg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "openharmony"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-win32-arm64-msvc": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.60.0.tgz",
+      "integrity": "sha512-WD4Q954kUl2TDJV/6q7UnE2rlKk047kXLJsr4bJ2mXRaAqNXcmV3nwKUsGCc3mz/jYDBnXtJEaBErJEybK8iQQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-win32-ia32-msvc": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.60.0.tgz",
+      "integrity": "sha512-HqDekjr8JXzVDUP1YthDZ1Y3CBEcuZT4WX3B+1kaxj8CvZA8Y2YhcEsXqoSop3tVsgjACxjnFQFDkBo0r/jq1Q==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
+    "node_modules/@oxfmt/binding-win32-x64-msvc": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.60.0.tgz",
+      "integrity": "sha512-tz78yhmGPKboTMHCHSaUqXK8JrmoSejgDcWeqAtg2s07ZGKQ3rH5Jn8NuXPGNG33CDbY2e9NoQWXIVEmKO21Rw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      }
+    },
     "node_modules/@oxlint/binding-android-arm-eabi": {
       "version": "1.74.0",
       "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.74.0.tgz",
@@ -18756,19 +19100,6 @@
         "npm": "1.2.8000 || >= 1.4.16"
       }
     },
-    "node_modules/detect-indent": {
-      "version": "7.0.2",
-      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.2.tgz",
-      "integrity": "sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12.20"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/detect-libc": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -19811,22 +20142,6 @@
         }
       }
     },
-    "node_modules/eslint-config-prettier": {
-      "version": "10.1.8",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz",
-      "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "eslint-config-prettier": "bin/cli.js"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint-config-prettier"
-      },
-      "peerDependencies": {
-        "eslint": ">=7.0.0"
-      }
-    },
     "node_modules/eslint-import-context": {
       "version": "0.1.9",
       "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz",
@@ -20112,37 +20427,6 @@
         "node": ">=5.0.0"
       }
     },
-    "node_modules/eslint-plugin-prettier": {
-      "version": "5.5.6",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz",
-      "integrity": "sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "prettier-linter-helpers": "^1.0.1",
-        "synckit": "^0.11.13"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint-plugin-prettier"
-      },
-      "peerDependencies": {
-        "@types/eslint": ">=8.0.0",
-        "eslint": ">=8.0.0",
-        "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0",
-        "prettier": ">=3.0.0"
-      },
-      "peerDependenciesMeta": {
-        "@types/eslint": {
-          "optional": true
-        },
-        "eslint-config-prettier": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/eslint-plugin-react-prefer-function-component": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/eslint-plugin-react-prefer-function-component/-/eslint-plugin-react-prefer-function-component-5.0.0.tgz",
@@ -20701,13 +20985,6 @@
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
       "license": "MIT"
     },
-    "node_modules/fast-diff": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
-      "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
-      "dev": true,
-      "license": "Apache-2.0"
-    },
     "node_modules/fast-equals": {
       "version": "6.0.2",
       "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.2.tgz",
@@ -22714,16 +22991,6 @@
         "encoding": "^0.1.11"
       }
     },
-    "node_modules/git-hooks-list": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-4.2.1.tgz",
-      "integrity": "sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw==",
-      "dev": true,
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/fisker/git-hooks-list?sponsor=1"
-      }
-    },
     "node_modules/git-raw-commits": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz",
@@ -32459,6 +32726,58 @@
         "@oxc-resolver/binding-win32-x64-msvc": "11.20.0"
       }
     },
+    "node_modules/oxfmt": {
+      "version": "0.60.0",
+      "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.60.0.tgz",
+      "integrity": "sha512-fViX6i+gJuZWY+jI/fnR6WRbRj70GZ9RlCd30MygJrHTUNc4DxvKHWw8vBjMjffv3PgU5qWDR0AzmojQByqaZA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "tinypool": "2.1.0"
+      },
+      "bin": {
+        "oxfmt": "bin/oxfmt"
+      },
+      "engines": {
+        "node": "^20.19.0 || >=22.12.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/Boshen"
+      },
+      "optionalDependencies": {
+        "@oxfmt/binding-android-arm-eabi": "0.60.0",
+        "@oxfmt/binding-android-arm64": "0.60.0",
+        "@oxfmt/binding-darwin-arm64": "0.60.0",
+        "@oxfmt/binding-darwin-x64": "0.60.0",
+        "@oxfmt/binding-freebsd-x64": "0.60.0",
+        "@oxfmt/binding-linux-arm-gnueabihf": "0.60.0",
+        "@oxfmt/binding-linux-arm-musleabihf": "0.60.0",
+        "@oxfmt/binding-linux-arm64-gnu": "0.60.0",
+        "@oxfmt/binding-linux-arm64-musl": "0.60.0",
+        "@oxfmt/binding-linux-ppc64-gnu": "0.60.0",
+        "@oxfmt/binding-linux-riscv64-gnu": "0.60.0",
+        "@oxfmt/binding-linux-riscv64-musl": "0.60.0",
+        "@oxfmt/binding-linux-s390x-gnu": "0.60.0",
+        "@oxfmt/binding-linux-x64-gnu": "0.60.0",
+        "@oxfmt/binding-linux-x64-musl": "0.60.0",
+        "@oxfmt/binding-openharmony-arm64": "0.60.0",
+        "@oxfmt/binding-win32-arm64-msvc": "0.60.0",
+        "@oxfmt/binding-win32-ia32-msvc": "0.60.0",
+        "@oxfmt/binding-win32-x64-msvc": "0.60.0"
+      },
+      "peerDependencies": {
+        "svelte": "^5.0.0",
+        "vite-plus": "*"
+      },
+      "peerDependenciesMeta": {
+        "svelte": {
+          "optional": true
+        },
+        "vite-plus": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/oxlint": {
       "version": "1.74.0",
       "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.74.0.tgz",
@@ -33610,53 +33929,6 @@
         "node": ">= 0.8.0"
       }
     },
-    "node_modules/prettier": {
-      "version": "3.9.5",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.5.tgz",
-      "integrity": "sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==",
-      "dev": true,
-      "license": "MIT",
-      "bin": {
-        "prettier": "bin/prettier.cjs"
-      },
-      "engines": {
-        "node": ">=14"
-      },
-      "funding": {
-        "url": "https://github.com/prettier/prettier?sponsor=1"
-      }
-    },
-    "node_modules/prettier-linter-helpers": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz",
-      "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "fast-diff": "^1.1.2"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/prettier-plugin-packagejson": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-3.0.2.tgz",
-      "integrity": "sha512-kmoj3hEynXwoHDo8ZhmWAIjRBoQWCDUVackiWfSDWdgD0rS3LGB61T9zoVbume/cotYdCoadUh4sqViAmXvpBQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "sort-package-json": "^3.6.0"
-      },
-      "peerDependencies": {
-        "prettier": "^3"
-      },
-      "peerDependenciesMeta": {
-        "prettier": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/pretty-error": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
@@ -37998,61 +38270,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/sort-object-keys": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-2.1.0.tgz",
-      "integrity": "sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/sort-package-json": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-3.6.0.tgz",
-      "integrity": "sha512-fyJsPLhWvY7u2KsKPZn1PixbXp+1m7V8NWqU8CvgFRbMEX41Ffw1kD8n0CfJiGoaSfoAvbrqRRl/DcHO8omQOQ==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "detect-indent": "^7.0.2",
-        "detect-newline": "^4.0.1",
-        "git-hooks-list": "^4.1.1",
-        "is-plain-obj": "^4.1.0",
-        "semver": "^7.7.3",
-        "sort-object-keys": "^2.0.1",
-        "tinyglobby": "^0.2.15"
-      },
-      "bin": {
-        "sort-package-json": "cli.js"
-      },
-      "engines": {
-        "node": ">=20"
-      }
-    },
-    "node_modules/sort-package-json/node_modules/detect-newline": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz",
-      "integrity": "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/sort-package-json/node_modules/is-plain-obj": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
-      "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
     "node_modules/source-map": {
       "version": "0.7.6",
       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
@@ -40184,6 +40401,16 @@
         "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
+    "node_modules/tinypool": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-2.1.0.tgz",
+      "integrity": "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^20.0.0 || >=22.0.0"
+      }
+    },
     "node_modules/tinyqueue": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz",
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 0dc17aedd8b..cf545116cf1 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -3,30 +3,30 @@
   "version": "0.0.0-dev",
   "description": "Superset is a data exploration platform designed to be visual, intuitive, and interactive.",
   "keywords": [
+    "airbnb",
+    "analysis",
     "big",
+    "d3",
     "data",
+    "database",
     "exploratory",
-    "analysis",
-    "react",
-    "d3",
-    "airbnb",
+    "flask",
     "nerds",
-    "database",
-    "flask"
+    "react"
   ],
   "homepage": "https://superset.apache.org/",
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": {
+    "name": "Apache"
+  },
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend"
   },
-  "license": "Apache-2.0",
-  "author": {
-    "name": "Apache"
-  },
   "directories": {
     "doc": "docs",
     "test": "spec"
@@ -37,7 +37,7 @@
     "src/setup/*"
   ],
   "scripts": {
-    "_prettier": "prettier './({src,spec,cypress-base,plugins,packages,.storybook}/**/*{.js,.jsx,.ts,.tsx,.css,.scss,.sass}|package.json)'",
+    "_format": "oxfmt './{src,spec,cypress-base,plugins,packages,.storybook}/**/*{.js,.jsx,.ts,.tsx,.css,.scss,.sass,.json}'",
     "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=production BABEL_ENV=\"${BABEL_ENV:=production}\" webpack --color --mode production",
     "build-dev": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=development webpack --mode=development --color",
     "build-instrumented": "cross-env NODE_ENV=production BABEL_ENV=instrumented webpack --mode=production --color",
@@ -51,8 +51,8 @@
     "cover": "cross-env NODE_ENV=test NODE_OPTIONS=\"--max-old-space-size=4096\" jest --coverage",
     "dev": "webpack --mode=development --color --watch",
     "dev-server": "cross-env NODE_ENV=development BABEL_ENV=development node --max_old_space_size=4096 ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --mode=development",
-    "format": "npm run _prettier -- --write",
-    "eslint": "npm run lint",
+    "format": "npm run _format --write",
+    "format-check": "npm run _format --check",
     "lint": "npx oxlint --config oxlint.json --quiet",
     "lint:all": "npx oxlint --config oxlint.json && npm run type",
     "lint-fix": "npx oxlint --config oxlint.json --fix --quiet",
@@ -78,8 +78,6 @@
     "playwright:debug": "playwright test --debug",
     "playwright:report": "playwright show-report",
     "docs:screenshots": "playwright test --config=playwright/generators/playwright.config.ts docs/",
-    "prettier": "npm run _prettier -- --write",
-    "prettier-check": "npm run _prettier -- --check",
     "prod": "npm run build",
     "prune": "rm -rf ./{packages,plugins}/*/{node_modules,lib,esm,tsconfig.tsbuildinfo,package-lock.json} ./.temp_cache",
     "storybook": "cross-env NODE_ENV=development BABEL_ENV=development storybook dev -p 6006",
@@ -92,12 +90,6 @@
     "update-maps": "cd plugins/legacy-plugin-chart-country-map/scripts && jupyter nbconvert --to notebook --execute --inplace --allow-errors --ExecutePreprocessor.timeout=1200 'Country Map GeoJSON Generator.ipynb'",
     "validate-release": "../RELEASING/validate_this_release.sh"
   },
-  "browserslist": [
-    "last 3 chrome versions",
-    "last 3 firefox versions",
-    "last 3 safari versions",
-    "last 3 edge versions"
-  ],
   "dependencies": {
     "@apache-superset/core": "file:packages/superset-core",
     "@braintree/sanitize-url": "^7.1.2",
@@ -313,7 +305,6 @@
     "cross-env": "^10.1.0",
     "css-loader": "^7.1.4",
     "eslint": "^10.7.0",
-    "eslint-config-prettier": "^10.1.8",
     "eslint-import-resolver-alias": "^1.1.2",
     "eslint-import-resolver-typescript": "^4.4.5",
     "eslint-plugin-i18n-strings": "file:eslint-rules/eslint-plugin-i18n-strings",
@@ -322,7 +313,6 @@
     "eslint-plugin-jest-dom": "^5.5.0",
     "eslint-plugin-lodash": "^8.0.0",
     "eslint-plugin-no-only-tests": "^3.4.0",
-    "eslint-plugin-prettier": "^5.5.6",
     "eslint-plugin-react-prefer-function-component": "^5.0.0",
     "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.1",
     "eslint-plugin-storybook": "10.5.2",
@@ -344,11 +334,10 @@
     "mini-css-extract-plugin": "^2.10.2",
     "minimizer-webpack-plugin": "^5.6.1",
     "open-cli": "^9.0.0",
+    "oxfmt": "^0.60.0",
     "oxlint": "^1.74.0",
     "po2json": "^0.4.5",
     "postcss-styled-syntax": "^0.7.2",
-    "prettier": "3.9.5",
-    "prettier-plugin-packagejson": "^3.0.2",
     "process": "^0.11.10",
     "react-dnd-test-backend": "^16.0.1",
     "react-refresh": "^0.18.0",
@@ -382,24 +371,10 @@
     "react-ace": "^10.1.0",
     "regenerator-runtime": "^0.14.1"
   },
-  "engines": {
-    "node": "^24.16.0",
-    "npm": "^11.13.0"
-  },
   "overrides": {
-    "uuid": "$uuid",
-    "@great-expectations/jsonforms-antd-renderers": {
-      "antd": "$antd"
+    "@babel/eslint-parser": {
+      "eslint": "$eslint"
     },
-    "core-js": "^3.38.1",
-    "dompurify": "^3.4.11",
-    "esbuild": "^0.28.1",
-    "http-proxy-middleware": "^2.0.10",
-    "tar": "^7.5.16",
-    "puppeteer": "^22.4.1",
-    "underscore": "^1.13.7",
-    "jspdf": "^4.2.0",
-    "nwsapi": "^2.2.13",
     "@deck.gl/aggregation-layers": "~9.2.5",
     "@deck.gl/core": "~9.2.5",
     "@deck.gl/extensions": "~9.2.5",
@@ -408,34 +383,54 @@
     "@deck.gl/mesh-layers": "~9.2.5",
     "@deck.gl/react": "~9.2.5",
     "@deck.gl/widgets": "~9.2.5",
+    "@great-expectations/jsonforms-antd-renderers": {
+      "antd": "$antd"
+    },
+    "@jest/globals": "^30.4.0",
+    "@jest/types": "^30.4.0",
     "@luma.gl/constants": "~9.2.5",
     "@luma.gl/core": "~9.2.5",
     "@luma.gl/engine": "~9.2.5",
     "@luma.gl/gltf": "~9.2.5",
     "@luma.gl/shadertools": "~9.2.5",
     "@luma.gl/webgl": "~9.2.5",
-    "fast-xml-parser": "^5.8.0",
-    "fast-uri": "^3.1.4",
-    "jest-mock": "^30.4.0",
-    "jest-runtime": "^30.4.0",
-    "@jest/globals": "^30.4.0",
-    "@jest/types": "^30.4.0",
-    "jest-util": "^30.4.0",
-    "jest-circus": "^30.4.0",
-    "jest-environment-node": "^30.4.0",
-    "typescript-json-schema": "^0.68.0",
-    "@babel/eslint-parser": {
-      "eslint": "$eslint"
-    },
+    "core-js": "^3.38.1",
+    "dompurify": "^3.4.11",
+    "esbuild": "^0.28.1",
     "eslint-plugin-import": {
       "eslint": "$eslint"
     },
     "eslint-plugin-jest-dom": {
       "eslint": "$eslint"
     },
+    "fast-uri": "^3.1.4",
+    "fast-xml-parser": "^5.8.0",
+    "http-proxy-middleware": "^2.0.10",
+    "jest-circus": "^30.4.0",
+    "jest-environment-node": "^30.4.0",
+    "jest-mock": "^30.4.0",
+    "jest-runtime": "^30.4.0",
+    "jest-util": "^30.4.0",
+    "jspdf": "^4.2.0",
     "lerna": {
       "js-yaml": "^4.3.0"
-    }
+    },
+    "nwsapi": "^2.2.13",
+    "puppeteer": "^22.4.1",
+    "tar": "^7.5.16",
+    "typescript-json-schema": "^0.68.0",
+    "underscore": "^1.13.7",
+    "uuid": "$uuid"
+  },
+  "browserslist": [
+    "last 3 chrome versions",
+    "last 3 firefox versions",
+    "last 3 safari versions",
+    "last 3 edge versions"
+  ],
+  "engines": {
+    "node": "^24.16.0",
+    "npm": "^11.13.0"
   },
   "readme": "ERROR: No README data found!",
   "scarfSettings": {
diff --git a/superset-frontend/packages/generator-superset/package.json b/superset-frontend/packages/generator-superset/package.json
index 716b9a139ae..b6a04a60254 100644
--- a/superset-frontend/packages/generator-superset/package.json
+++ b/superset-frontend/packages/generator-superset/package.json
@@ -3,27 +3,30 @@
   "version": "0.20.3",
   "description": "Scaffolder for Superset",
   "keywords": [
-    "yeoman",
     "generator",
     "superset",
+    "yeoman",
     "yeoman-generator"
   ],
   "homepage": "https://github.com/apache/superset#readme",
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/generator-superset"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "type": "module",
-  "main": "generators/index.js",
   "files": [
     "generators"
   ],
+  "type": "module",
+  "main": "generators/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "scripts": {
     "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest"
   },
@@ -40,10 +43,7 @@
     "yeoman-test": "^11.6.0"
   },
   "engines": {
-    "npm": ">= 4.0.0",
-    "node": ">= 18.0.0"
-  },
-  "publishConfig": {
-    "access": "public"
+    "node": ">= 18.0.0",
+    "npm": ">= 4.0.0"
   }
 }
diff --git a/superset-frontend/packages/superset-core/package.json b/superset-frontend/packages/superset-core/package.json
index 41da6db9b1b..e8be1696e66 100644
--- a/superset-frontend/packages/superset-core/package.json
+++ b/superset-frontend/packages/superset-core/package.json
@@ -2,6 +2,11 @@
   "name": "@apache-superset/core",
   "version": "0.1.0",
   "description": "This package contains UI elements, APIs, and utility functions used by Superset.",
+  "license": "Apache-2.0",
+  "author": "Apache Software Foundation",
+  "files": [
+    "lib"
+  ],
   "sideEffects": false,
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
@@ -79,28 +84,34 @@
       "default": "./lib/storage/index.js"
     }
   },
-  "files": [
-    "lib"
-  ],
-  "author": "Apache Software Foundation",
-  "license": "Apache-2.0",
+  "publishConfig": {
+    "access": "public"
+  },
+  "scripts": {
+    "clean": "rm -rf lib tsconfig.tsbuildinfo",
+    "build": "npm run clean && npx tsc --build",
+    "type": "npx tsc --noEmit"
+  },
+  "dependencies": {
+    "lodash-es": "^4.18.1"
+  },
   "devDependencies": {
     "@babel/cli": "^7.29.7",
     "@babel/core": "^7.29.7",
     "@babel/preset-env": "^7.29.7",
     "@babel/preset-react": "^7.29.7",
     "@babel/preset-typescript": "^7.29.7",
-    "typescript": "^5.0.0",
     "@emotion/styled": "^11.14.1",
-    "@types/lodash": "^4.17.24",
     "@testing-library/dom": "^9.3.4",
     "@testing-library/jest-dom": "*",
     "@testing-library/react": "^14.0.0",
     "@testing-library/user-event": "*",
+    "@types/lodash": "^4.17.24",
     "@types/react": "*",
     "@types/react-loadable": "*",
     "@types/react-window": "^1.8.8",
-    "@types/tinycolor2": "*"
+    "@types/tinycolor2": "*",
+    "typescript": "^5.0.0"
   },
   "peerDependencies": {
     "@emotion/cache": "^11.4.0",
@@ -108,24 +119,13 @@
     "@emotion/styled": "^11.14.1",
     "@fontsource/ibm-plex-mono": "^5.2.7",
     "@fontsource/inter": "^5.2.6",
+    "antd": "^6.0.0",
+    "jed": "^1.1.1",
+    "lodash": "^4.18.1",
     "nanoid": "*",
     "react": "^18.3.0",
     "react-dom": "^18.3.0",
     "react-loadable": "^5.5.0",
-    "tinycolor2": "*",
-    "lodash": "^4.18.1",
-    "antd": "^6.0.0",
-    "jed": "^1.1.1"
-  },
-  "scripts": {
-    "clean": "rm -rf lib tsconfig.tsbuildinfo",
-    "build": "npm run clean && npx tsc --build",
-    "type": "npx tsc --noEmit"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "dependencies": {
-    "lodash-es": "^4.18.1"
+    "tinycolor2": "*"
   }
 }
diff --git a/superset-frontend/packages/superset-core/src/storage/index.ts b/superset-frontend/packages/superset-core/src/storage/index.ts
index ecba890454d..5cf1e9d39a6 100644
--- a/superset-frontend/packages/superset-core/src/storage/index.ts
+++ b/superset-frontend/packages/superset-core/src/storage/index.ts
@@ -29,7 +29,12 @@
  * These are the only values that can be safely serialized/deserialized via JSON.
  */
 export type JsonValue =
-  string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };
+  | string
+  | number
+  | boolean
+  | null
+  | JsonValue[]
+  | { [key: string]: JsonValue };
 
 /**
  * Base interface for a storage accessor.
diff --git a/superset-frontend/packages/superset-ui-chart-controls/package.json b/superset-frontend/packages/superset-ui-chart-controls/package.json
index 855281d9c6f..460577e359e 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/package.json
+++ b/superset-frontend/packages/superset-ui-chart-controls/package.json
@@ -9,26 +9,29 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/superset-ui-chart-controls"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@apache-superset/core": "*",
     "@types/react": "*",
     "lodash": "^4.18.1",
-    "tinycolor2": "*",
-    "lodash-es": "^4.18.1"
+    "lodash-es": "^4.18.1",
+    "tinycolor2": "*"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1 || ^6.0.0",
@@ -44,8 +47,5 @@
     "react": "^18.3.0",
     "react-ace": "^10.1.0",
     "react-dom": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts
index 386e2c93b46..68ae08f93e1 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts
@@ -330,7 +330,8 @@ export interface SelectControlConfig<
   optionRenderer?: (option: O) => ReactNode;
   valueRenderer?: (option: O) => ReactNode;
   filterOption?:
-    ((option: FilterOption<O>, rawInput: string) => boolean) | null;
+    | ((option: FilterOption<O>, rawInput: string) => boolean)
+    | null;
 }
 
 export type SharedControlConfig<
@@ -395,7 +396,9 @@ export const isCustomControlItem = (obj: unknown): obj is CustomControlItem =>
 export type ExpandedControlItem = CustomControlItem | ReactElement | null;
 
 export type ControlSetItem =
-  SharedControlAlias | OverrideSharedControlItem | ExpandedControlItem;
+  | SharedControlAlias
+  | OverrideSharedControlItem
+  | ExpandedControlItem;
 
 export type ControlSetRow = ControlSetItem[];
 
@@ -699,7 +702,10 @@ export interface DataColumnMeta {
   originalLabel?: string;
   dataType: GenericDataType;
   formatter?:
-    TimeFormatter | NumberFormatter | CustomFormatter | CurrencyFormatter;
+    | TimeFormatter
+    | NumberFormatter
+    | CustomFormatter
+    | CurrencyFormatter;
   isMetric?: boolean;
   isPercentMetric?: boolean;
   isNumeric?: boolean;
diff --git a/superset-frontend/packages/superset-ui-core/package.json b/superset-frontend/packages/superset-ui-core/package.json
index b0c3f5eef0d..8f4767cda8e 100644
--- a/superset-frontend/packages/superset-ui-core/package.json
+++ b/superset-frontend/packages/superset-ui-core/package.json
@@ -9,20 +9,45 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/superset-ui-core"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "exports": {
+    ".": {
+      "import": "./esm/index.js",
+      "require": "./lib/index.js",
+      "types": "./lib/index.d.ts"
+    },
+    "./components/*": {
+      "import": "./esm/components/*/index.js",
+      "require": "./lib/components/*/index.js",
+      "types": "./lib/components/*/index.d.ts"
+    },
+    "./components": {
+      "import": "./esm/components/index.js",
+      "require": "./lib/components/index.js",
+      "types": "./lib/components/index.d.ts"
+    },
+    "./utils/*": {
+      "import": "./esm/utils/*.js",
+      "require": "./lib/utils/*.js",
+      "types": "./lib/utils/*.d.ts"
+    }
+  },
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@ant-design/icons": "^6.3.2",
     "@apache-superset/core": "*",
@@ -48,6 +73,7 @@
     "handlebars": "^4.7.9",
     "jed": "^1.1.1",
     "lodash": "^4.18.1",
+    "lodash-es": "^4.18.1",
     "math-expression-evaluator": "^2.0.7",
     "parse-ms": "^4.0.0",
     "re-resizable": "^6.11.2",
@@ -66,8 +92,7 @@
     "reselect": "^5.2.0",
     "rison": "^0.1.1",
     "seedrandom": "^3.0.5",
-    "xss": "^1.0.15",
-    "lodash-es": "^4.18.1"
+    "xss": "^1.0.15"
   },
   "devDependencies": {
     "@emotion/styled": "^11.14.1",
@@ -106,30 +131,5 @@
     "react-dom": "^18.3.0",
     "react-loadable": "^5.5.0",
     "tinycolor2": "*"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "exports": {
-    ".": {
-      "import": "./esm/index.js",
-      "require": "./lib/index.js",
-      "types": "./lib/index.d.ts"
-    },
-    "./components/*": {
-      "import": "./esm/components/*/index.js",
-      "require": "./lib/components/*/index.js",
-      "types": "./lib/components/*/index.d.ts"
-    },
-    "./components": {
-      "import": "./esm/components/index.js",
-      "require": "./lib/components/index.js",
-      "types": "./lib/components/index.d.ts"
-    },
-    "./utils/*": {
-      "import": "./esm/utils/*.js",
-      "require": "./lib/utils/*.js",
-      "types": "./lib/utils/*.d.ts"
-    }
   }
 }
diff --git a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.stories.tsx
index cf775804930..5f6b7679f11 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.stories.tsx
@@ -29,7 +29,13 @@ import {
 import type { AsyncAceEditorOptions } from './types';
 
 type EditorType =
-  'sql' | 'full-sql' | 'markdown' | 'text-area' | 'css' | 'json' | 'config';
+  | 'sql'
+  | 'full-sql'
+  | 'markdown'
+  | 'text-area'
+  | 'css'
+  | 'json'
+  | 'config';
 
 const editorTypes: EditorType[] = [
   'sql',
diff --git a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
index 425db253f89..55a74df9634 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
@@ -389,9 +389,8 @@ export function AsyncAceEditor(
                 }
                 /* Adjust selection color */
                 .ace_editor .ace_selection {
-                  background-color: ${
-                    token.colorEditorSelection ?? token.colorPrimaryBgHover
-                  } !important;
+                  background-color: ${token.colorEditorSelection ??
+                  token.colorPrimaryBgHover} !important;
                 }
 
                 /* Improve active line highlighting */
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Button/types.ts b/superset-frontend/packages/superset-ui-core/src/components/Button/types.ts
index 815b318be11..4bdee16d9c6 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Button/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/Button/types.ts
@@ -31,7 +31,12 @@ export type { AntdButtonProps, ButtonType, ButtonVariantType, ButtonColorType };
 export type OnClickHandler = MouseEventHandler<HTMLElement>;
 
 export type ButtonStyle =
-  'primary' | 'secondary' | 'tertiary' | 'danger' | 'link' | 'dashed';
+  | 'primary'
+  | 'secondary'
+  | 'tertiary'
+  | 'danger'
+  | 'link'
+  | 'dashed';
 
 export type ButtonSize = 'default' | 'small' | 'xsmall';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx
index e766778ccbd..4096c9d1238 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx
@@ -37,7 +37,13 @@ import 'ace-builds/src-noconflict/theme-github';
 import 'ace-builds/src-noconflict/theme-monokai';
 
 export type CodeEditorMode =
-  'handlebars' | 'css' | 'json' | 'sql' | 'markdown' | 'javascript' | 'html';
+  | 'handlebars'
+  | 'css'
+  | 'json'
+  | 'sql'
+  | 'markdown'
+  | 'javascript'
+  | 'html';
 
 export type CodeEditorTheme = 'light' | 'dark';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
index aa860cc4b05..63c556995e1 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
@@ -34,9 +34,8 @@ export const DropdownButton = ({
   const { type: buttonType } = rest;
   // divider implementation for default (non-primary) buttons
   const defaultBtnCss = css`
-    ${
-      (!buttonType || buttonType === 'default') &&
-      `.ant-dropdown-trigger {
+    ${(!buttonType || buttonType === 'default') &&
+    `.ant-dropdown-trigger {
       position: relative;
       &:before {
         content: '';
@@ -49,8 +48,7 @@ export const DropdownButton = ({
       .anticon {
         vertical-align: middle;
       }
-    }`
-    }
+    }`}
   `;
   const button = (
     <Dropdown.Button
@@ -60,13 +58,13 @@ export const DropdownButton = ({
         defaultBtnCss,
         css`
           .ant-btn {
-            height: ${
-              styleConfig?.controlHeight ?? theme.buttonControlHeightSM ?? 30
-            }px;
+            height: ${styleConfig?.controlHeight ??
+            theme.buttonControlHeightSM ??
+            30}px;
             box-shadow: ${styleConfig?.boxShadow ?? 'none'};
-            font-size: ${
-              styleConfig?.fontSize ?? theme.buttonFontSize ?? theme.fontSizeSM
-            }px;
+            font-size: ${styleConfig?.fontSize ??
+            theme.buttonFontSize ??
+            theme.fontSizeSM}px;
             font-weight: ${styleConfig?.fontWeight ?? theme.fontWeightStrong};
           }
         `,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
index a465941ad8b..70fa0d41e68 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
@@ -221,22 +221,18 @@ export const DynamicEditableTitle = memo(
             onPressEnter={handleKeyPress}
             placeholder={placeholder}
             css={css`
-              ${
-                !canEdit &&
-                `&[disabled] {
+              ${!canEdit &&
+              `&[disabled] {
                   cursor: default;
                 }
-              `
-              }
+              `}
               font-size: ${theme.fontSizeXL}px;
               transition: auto;
-              ${
-                inputWidth &&
-                inputWidth > 0 &&
-                css`
-                  width: ${inputWidth}px;
-                `
-              }
+              ${inputWidth &&
+              inputWidth > 0 &&
+              css`
+                width: ${inputWidth}px;
+              `}
             `}
             disabled={!canEdit}
           />
diff --git a/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
index 73c27d672d5..71f840e7aab 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
@@ -167,11 +167,9 @@ export const EmptyState: React.FC<EmptyStateProps> = ({
       {image && <ImageContainer image={image} size={size} />}
       <div
         css={(theme: SupersetTheme) => css`
-          max-width: ${
-            containerSize === 'large'
-              ? theme.sizeUnit * 150
-              : theme.sizeUnit * 100
-          }px;
+          max-width: ${containerSize === 'large'
+            ? theme.sizeUnit * 150
+            : theme.sizeUnit * 100}px;
         `}
       >
         {title && <Title size={effectiveTextSize}>{title}</Title>}
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Form/types.ts b/superset-frontend/packages/superset-ui-core/src/components/Form/types.ts
index bcf5db252bb..73efdd4ec64 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Form/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/Form/types.ts
@@ -24,7 +24,8 @@ export type { SerializedStyles };
 export interface LabeledErrorBoundInputProps {
   label?: string;
   validationMethods:
-    { onBlur: (value: any) => void } | { onChange: (value: any) => void };
+    | { onBlur: (value: any) => void }
+    | { onChange: (value: any) => void };
   errorMessage?: string | null;
   helpText?: string;
   required?: boolean;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Icons/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Icons/index.tsx
index 3a72c71e3d0..8750d8299ad 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Icons/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Icons/index.tsx
@@ -77,7 +77,8 @@ customIcons.forEach(customIcon => {
 });
 
 export type IconNameType =
-  keyof typeof antdEnhancedIcons | keyof typeof iconOverrides;
+  | keyof typeof antdEnhancedIcons
+  | keyof typeof iconOverrides;
 
 type IconComponentType = Record<IconNameType, IconComponent>;
 
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Label/types.ts b/superset-frontend/packages/superset-ui-core/src/components/Label/types.ts
index 5b66eb8972b..3cb38e947a1 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Label/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/Label/types.ts
@@ -27,7 +27,12 @@ import type {
 export type OnClickHandler = MouseEventHandler<HTMLElement>;
 
 export type LabelType =
-  'success' | 'warning' | 'error' | 'info' | 'default' | 'primary';
+  | 'success'
+  | 'warning'
+  | 'error'
+  | 'info'
+  | 'default'
+  | 'primary';
 
 export interface LabelProps extends HTMLAttributes<HTMLSpanElement> {
   key?: string;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Loading/types.ts b/superset-frontend/packages/superset-ui-core/src/components/Loading/types.ts
index 76752771ac8..1edfd5dbbde 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Loading/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/Loading/types.ts
@@ -17,7 +17,10 @@
  * under the License.
  */
 export type PositionOption =
-  'floating' | 'inline' | 'inline-centered' | 'normal';
+  | 'floating'
+  | 'inline'
+  | 'inline-centered'
+  | 'normal';
 
 export type SizeOption = 's' | 'm' | 'l';
 
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentType.ts b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentType.ts
index c170c2fa8b8..75c8f97eacb 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentType.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentType.ts
@@ -81,4 +81,11 @@ export type Tags = {
 };
 
 export type ContentType =
-  Dashboards | Description | LastModified | Editor | Rows | Sql | Table | Tags;
+  | Dashboards
+  | Description
+  | LastModified
+  | Editor
+  | Rows
+  | Sql
+  | Table
+  | Tags;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
index 34581940331..06b59a35143 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
@@ -73,16 +73,14 @@ export const StyledModal = styled(BaseModal)<StyledModalProps>`
     const closeButtonWidth = theme.sizeUnit * 14;
 
     return css`
-      ${
-        responsive &&
-        css`
-          max-width: ${maxWidth ?? '900px'};
-          padding-left: ${theme.sizeUnit * 3}px;
-          padding-right: ${theme.sizeUnit * 3}px;
-          padding-bottom: 0;
-          top: 0;
-        `
-      }
+      ${responsive &&
+      css`
+        max-width: ${maxWidth ?? '900px'};
+        padding-left: ${theme.sizeUnit * 3}px;
+        padding-right: ${theme.sizeUnit * 3}px;
+        padding-bottom: 0;
+        top: 0;
+      `}
 
       .ant-modal-container {
         background-color: ${theme.colorBgContainer};
@@ -170,46 +168,40 @@ export const StyledModal = styled(BaseModal)<StyledModalProps>`
         padding: 0;
       }
 
-      ${
-        draggable &&
-        css`
-          .ant-modal-header {
-            padding: 0;
-
-            .draggable-trigger {
-              cursor: move;
-              padding: ${theme.sizeUnit * 4}px ${closeButtonWidth}px
-                ${theme.sizeUnit * 4}px ${theme.sizeUnit * 4}px;
-              width: 100%;
-            }
+      ${draggable &&
+      css`
+        .ant-modal-header {
+          padding: 0;
+
+          .draggable-trigger {
+            cursor: move;
+            padding: ${theme.sizeUnit * 4}px ${closeButtonWidth}px
+              ${theme.sizeUnit * 4}px ${theme.sizeUnit * 4}px;
+            width: 100%;
           }
-        `
-      }
+        }
+      `}
 
-      ${
-        resizable &&
-        css`
-          .resizable {
-            pointer-events: all;
+      ${resizable &&
+      css`
+        .resizable {
+          pointer-events: all;
 
-            .resizable-wrapper {
-              height: 100%;
-            }
+          .resizable-wrapper {
+            height: 100%;
+          }
 
-            .ant-modal-container {
-              height: 100%;
+          .ant-modal-container {
+            height: 100%;
 
-              .ant-modal-body {
-                height: ${
-                  hideFooter
-                    ? `calc(100% - ${MODAL_HEADER_HEIGHT}px)`
-                    : `calc(100% - ${MODAL_HEADER_HEIGHT}px - ${MODAL_FOOTER_HEIGHT}px)`
-                };
-              }
+            .ant-modal-body {
+              height: ${hideFooter
+                ? `calc(100% - ${MODAL_HEADER_HEIGHT}px)`
+                : `calc(100% - ${MODAL_HEADER_HEIGHT}px - ${MODAL_FOOTER_HEIGHT}px)`};
             }
           }
-        `
-      }
+        }
+      `}
     `;
   }}
 `;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx b/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
index 9535061d22b..4600d507c7c 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
@@ -51,10 +51,8 @@ const StyledTabs = ({
       .ant-tabs-body-holder {
         overflow: ${allowOverflow ? 'visible' : 'auto'};
         ${fullHeight && 'height: 100%;'}
-        ${
-          contentHeight &&
-          `height: ${typeof contentHeight === 'number' ? `${contentHeight}px` : contentHeight};`
-        }
+        ${contentHeight &&
+        `height: ${typeof contentHeight === 'number' ? `${contentHeight}px` : contentHeight};`}
         ${contentPadding}
       }
       .ant-tabs-body {
@@ -68,11 +66,9 @@ const StyledTabs = ({
         margin: 0;
       }
       .ant-tabs-nav-wrap {
-        ${
-          !(tabBarStyle && 'paddingLeft' in tabBarStyle)
-            ? `padding: 0 ${theme.sizeUnit * 4}px;`
-            : ''
-        }
+        ${!(tabBarStyle && 'paddingLeft' in tabBarStyle)
+          ? `padding: 0 ${theme.sizeUnit * 4}px;`
+          : ''}
       }
       .ant-tabs-tab {
         flex: 1 1 auto;
diff --git a/superset-frontend/packages/superset-ui-core/src/connection/types.ts b/superset-frontend/packages/superset-ui-core/src/connection/types.ts
index 87d50eb37a1..1893444fe2d 100644
--- a/superset-frontend/packages/superset-ui-core/src/connection/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/connection/types.ts
@@ -51,7 +51,9 @@ export type JsonPrimitive = string | number | boolean | null;
  * (Ref: https://github.com/microsoft/TypeScript/issues/15300).
  */
 export type StrictJsonValue =
-  JsonPrimitive | StrictJsonObject | StrictJsonArray;
+  | JsonPrimitive
+  | StrictJsonObject
+  | StrictJsonArray;
 export type StrictJsonArray = StrictJsonValue[];
 /**
  * More strict JSON objects that makes sure all values are plain objects.
@@ -77,7 +79,12 @@ export type Mode = RequestInit['mode'];
 export type Redirect = RequestInit['redirect'];
 export type ClientTimeout = number | undefined;
 export type ParseMethod =
-  'json' | 'json-bigint' | 'text' | 'raw' | null | undefined;
+  | 'json'
+  | 'json-bigint'
+  | 'text'
+  | 'raw'
+  | null
+  | undefined;
 export type Signal = RequestInit['signal'];
 export type Stringify = boolean;
 export type Url = string;
diff --git a/superset-frontend/packages/superset-ui-core/src/currency-format/types.ts b/superset-frontend/packages/superset-ui-core/src/currency-format/types.ts
index 45259d76098..882fca6f42a 100644
--- a/superset-frontend/packages/superset-ui-core/src/currency-format/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/currency-format/types.ts
@@ -18,6 +18,12 @@
  */
 
 export type RowDataValue =
-  string | number | boolean | Date | bigint | null | undefined;
+  | string
+  | number
+  | boolean
+  | Date
+  | bigint
+  | null
+  | undefined;
 
 export type RowData = Record<string, RowDataValue>;
diff --git a/superset-frontend/packages/superset-ui-core/src/models/Registry.ts b/superset-frontend/packages/superset-ui-core/src/models/Registry.ts
index c3e7083cb78..7488ab82459 100644
--- a/superset-frontend/packages/superset-ui-core/src/models/Registry.ts
+++ b/superset-frontend/packages/superset-ui-core/src/models/Registry.ts
@@ -36,7 +36,9 @@ export interface ItemWithLoader<T> {
 type InclusiveLoaderResult<V> = V | Promise<V>;
 
 export type RegistryValue<V, W extends InclusiveLoaderResult<V>> =
-  V | W | undefined;
+  | V
+  | W
+  | undefined;
 
 export type RegistryEntry<V, W extends InclusiveLoaderResult<V>> = {
   key: string;
diff --git a/superset-frontend/packages/superset-ui-core/src/query/api/v1/handleError.ts b/superset-frontend/packages/superset-ui-core/src/query/api/v1/handleError.ts
index 71344340488..62c13c9d8cd 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/api/v1/handleError.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/api/v1/handleError.ts
@@ -59,7 +59,8 @@ export default async function handleError(error: ErrorInput): Promise<never> {
     errorMessage = `${status} ${statusText}`;
     try {
       errorJson = (await error.json()) as
-        SupersetApiErrorPayload | SupersetApiMultiErrorsPayload;
+        | SupersetApiErrorPayload
+        | SupersetApiMultiErrorsPayload;
       originalError = errorJson;
     } catch (error_) {
       originalError = error;
diff --git a/superset-frontend/packages/superset-ui-core/src/query/getClientErrorObject.ts b/superset-frontend/packages/superset-ui-core/src/query/getClientErrorObject.ts
index 9e9731dbfd3..cc555fa4e93 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/getClientErrorObject.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/getClientErrorObject.ts
@@ -46,7 +46,10 @@ interface TimeoutError {
 }
 
 type ErrorType =
-  SupersetClientResponse | TimeoutError | { response: Response } | string;
+  | SupersetClientResponse
+  | TimeoutError
+  | { response: Response }
+  | string;
 
 type ErrorTextSource = 'dashboard' | 'chart' | 'query' | 'dataset' | 'database';
 
@@ -159,7 +162,10 @@ export function parseErrorJson(responseJson: JsonObject): ClientErrorObject {
 
 export function getClientErrorObject(
   response:
-    SupersetClientResponse | TimeoutError | { response: Response } | string,
+    | SupersetClientResponse
+    | TimeoutError
+    | { response: Response }
+    | string,
 ): Promise<ClientErrorObject> {
   // takes a SupersetClientResponse as input, attempts to read response as Json
   // if possible, and returns a Promise that resolves to a plain object with
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Dashboard.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Dashboard.ts
index 51d8f4b12a4..74474f75045 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/Dashboard.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/Dashboard.ts
@@ -188,7 +188,10 @@ export function isFilterDivider(
 
 export function isChartCustomization(
   filterElement:
-    Filter | Divider | ChartCustomization | ChartCustomizationDivider,
+    | Filter
+    | Divider
+    | ChartCustomization
+    | ChartCustomizationDivider,
 ): filterElement is ChartCustomization {
   return filterElement.type === ChartCustomizationType.ChartCustomization;
 }
@@ -203,7 +206,10 @@ export type FilterConfiguration = Array<Filter | Divider>;
 
 export type Filters = {
   [filterId: string]:
-    Filter | Divider | ChartCustomization | ChartCustomizationDivider;
+    | Filter
+    | Divider
+    | ChartCustomization
+    | ChartCustomizationDivider;
 };
 
 export type PartialFilters = {
@@ -222,7 +228,8 @@ export type ChartCustomizationConfiguration = Array<
 
 export type ChartCustomizations = {
   [chartCustomizationId: string]:
-    ChartCustomization | ChartCustomizationDivider;
+    | ChartCustomization
+    | ChartCustomizationDivider;
 };
 
 export type PartialChartCustomizations = {
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Filter.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Filter.ts
index 2e59126c265..a9aa7b653ee 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/Filter.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/Filter.ts
@@ -53,7 +53,9 @@ export type SetAdhocFilter = BaseSimpleAdhocFilter & {
 };
 
 export type SimpleAdhocFilter =
-  UnaryAdhocFilter | BinaryAdhocFilter | SetAdhocFilter;
+  | UnaryAdhocFilter
+  | BinaryAdhocFilter
+  | SetAdhocFilter;
 
 export interface FreeFormAdhocFilter extends BaseAdhocFilter {
   expressionType: 'SQL';
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts
index 2bc59d1cefc..15b59fb22ab 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/Metric.ts
@@ -21,7 +21,12 @@ import { Currency, Maybe, QueryFormMetric } from '../../types';
 import { Column } from './Column';
 
 export type Aggregate =
-  'AVG' | 'COUNT' | 'COUNT_DISTINCT' | 'MAX' | 'MIN' | 'SUM';
+  | 'AVG'
+  | 'COUNT'
+  | 'COUNT_DISTINCT'
+  | 'MAX'
+  | 'MIN'
+  | 'SUM';
 
 export interface AdhocMetricBase {
   hasCustomLabel?: boolean;
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/PostProcessing.ts b/superset-frontend/packages/superset-ui-core/src/query/types/PostProcessing.ts
index 56e802ae594..96dd51bf7ba 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/PostProcessing.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/PostProcessing.ts
@@ -74,7 +74,8 @@ interface _PostProcessingAggregation {
   };
 }
 export type PostProcessingAggregation =
-  _PostProcessingAggregation | DefaultPostProcessing;
+  | _PostProcessingAggregation
+  | DefaultPostProcessing;
 
 export type BoxPlotQueryObjectWhiskerType = 'tukey' | 'min/max' | 'percentile';
 interface _PostProcessingBoxplot {
@@ -87,7 +88,8 @@ interface _PostProcessingBoxplot {
   };
 }
 export type PostProcessingBoxplot =
-  _PostProcessingBoxplot | DefaultPostProcessing;
+  | _PostProcessingBoxplot
+  | DefaultPostProcessing;
 
 interface _PostProcessingContribution {
   operation: 'contribution';
@@ -99,7 +101,8 @@ interface _PostProcessingContribution {
   };
 }
 export type PostProcessingContribution =
-  _PostProcessingContribution | DefaultPostProcessing;
+  | _PostProcessingContribution
+  | DefaultPostProcessing;
 
 interface _PostProcessingPivot {
   operation: 'pivot';
@@ -129,7 +132,8 @@ interface _PostProcessingProphet {
   };
 }
 export type PostProcessingProphet =
-  _PostProcessingProphet | DefaultPostProcessing;
+  | _PostProcessingProphet
+  | DefaultPostProcessing;
 
 interface _PostProcessingDiff {
   operation: 'diff';
@@ -151,7 +155,8 @@ interface _PostProcessingRolling {
   };
 }
 export type PostProcessingRolling =
-  _PostProcessingRolling | DefaultPostProcessing;
+  | _PostProcessingRolling
+  | DefaultPostProcessing;
 
 interface _PostProcessingCum {
   operation: 'cum';
@@ -172,7 +177,8 @@ export interface _PostProcessingCompare {
   };
 }
 export type PostProcessingCompare =
-  _PostProcessingCompare | DefaultPostProcessing;
+  | _PostProcessingCompare
+  | DefaultPostProcessing;
 
 interface _PostProcessingSort {
   operation: 'sort';
@@ -193,7 +199,8 @@ interface _PostProcessingResample {
   };
 }
 export type PostProcessingResample =
-  _PostProcessingResample | DefaultPostProcessing;
+  | _PostProcessingResample
+  | DefaultPostProcessing;
 
 interface _PostProcessingRename {
   operation: 'rename';
@@ -204,7 +211,8 @@ interface _PostProcessingRename {
   };
 }
 export type PostProcessingRename =
-  _PostProcessingRename | DefaultPostProcessing;
+  | _PostProcessingRename
+  | DefaultPostProcessing;
 
 interface _PostProcessingFlatten {
   operation: 'flatten';
@@ -214,7 +222,8 @@ interface _PostProcessingFlatten {
   };
 }
 export type PostProcessingFlatten =
-  _PostProcessingFlatten | DefaultPostProcessing;
+  | _PostProcessingFlatten
+  | DefaultPostProcessing;
 
 interface _PostProcessingRank {
   operation: 'rank';
@@ -236,7 +245,8 @@ interface _PostProcessingHistogram {
   };
 }
 export type PostProcessingHistogram =
-  _PostProcessingHistogram | DefaultPostProcessing;
+  | _PostProcessingHistogram
+  | DefaultPostProcessing;
 
 /**
  * Parameters for chart data postprocessing.
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts b/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
index ad02b3e03c7..a3de0fb3b91 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
@@ -51,7 +51,8 @@ export type QueryFormColumn = PhysicalColumn | AdhocColumn;
  * Format: [metric/column, is_ascending].
  */
 export type QueryFormOrderBy =
-  [QueryFormColumn | QueryFormMetric | {}, boolean] | [];
+  | [QueryFormColumn | QueryFormMetric | {}, boolean]
+  | [];
 
 export interface FormDataResidual {
   [key: string]: any;
diff --git a/superset-frontend/packages/superset-ui-core/src/time-comparison/types.ts b/superset-frontend/packages/superset-ui-core/src/time-comparison/types.ts
index 8fba188ac01..5c4f564be86 100644
--- a/superset-frontend/packages/superset-ui-core/src/time-comparison/types.ts
+++ b/superset-frontend/packages/superset-ui-core/src/time-comparison/types.ts
@@ -30,7 +30,14 @@ export enum ComparisonTimeRangeType {
 }
 
 export type DateTimeGrainType =
-  'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
+  | 'second'
+  | 'minute'
+  | 'hour'
+  | 'day'
+  | 'week'
+  | 'month'
+  | 'quarter'
+  | 'year';
 
 export type CustomRangeKey =
   | 'sinceMode'
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/components/ChartDataProvider.test.tsx b/superset-frontend/packages/superset-ui-core/test/chart/components/ChartDataProvider.test.tsx
index 4c44433e4ae..906bb8ad019 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/components/ChartDataProvider.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/chart/components/ChartDataProvider.test.tsx
@@ -30,7 +30,8 @@ const defaultMockLoadFormData = jest.fn(({ formData }: { formData: unknown }) =>
 );
 
 type MockLoadFormData =
-  typeof defaultMockLoadFormData | jest.Mock<Promise<unknown>, unknown[]>;
+  | typeof defaultMockLoadFormData
+  | jest.Mock<Promise<unknown>, unknown[]>;
 
 let mockLoadFormData: MockLoadFormData = defaultMockLoadFormData;
 
diff --git a/superset-frontend/packages/superset-ui-core/test/time-format/factories/createD3TimeFormatter.test.ts b/superset-frontend/packages/superset-ui-core/test/time-format/factories/createD3TimeFormatter.test.ts
index dbc54628045..2f6841c21ac 100644
--- a/superset-frontend/packages/superset-ui-core/test/time-format/factories/createD3TimeFormatter.test.ts
+++ b/superset-frontend/packages/superset-ui-core/test/time-format/factories/createD3TimeFormatter.test.ts
@@ -29,15 +29,7 @@ const thLocale: TimeLocaleDefinition = {
   date: '%d/%m/%Y',
   time: '%H:%M:%S',
   periods: ['AM', 'PM'],
-  days: [
-    'วันอาทิตย์',
-    'วันจันทร์',
-    'วันอังคาร',
-    'วันพุธ',
-    'วันพฤหัส',
-    'วันศุกร์',
-    'วันเสาร์',
-  ],
+  days: ['วันอาทิตย์', 'วันจันทร์', 'วันอังคาร', 'วันพุธ', 'วันพฤหัส', 'วันศุกร์', 'วันเสาร์'],
   shortDays: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ', 'ศ.', 'ส.'],
   months: [
     'มกราคม',
diff --git a/superset-frontend/packages/superset-ui-switchboard/package.json b/superset-frontend/packages/superset-ui-switchboard/package.json
index 58298fd41e9..691e94a4826 100644
--- a/superset-frontend/packages/superset-ui-switchboard/package.json
+++ b/superset-frontend/packages/superset-ui-switchboard/package.json
@@ -2,32 +2,32 @@
   "name": "@superset-ui/switchboard",
   "version": "0.20.3",
   "description": "Switchboard is a library to make it easier to communicate across browser windows using the MessageChannel API",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/apache/superset.git",
-    "directory": "superset-frontend/packages/superset-ui-switchboard"
-  },
   "keywords": [
-    "switchboard",
-    "iframe",
     "communication",
+    "iframe",
     "messagechannel",
     "messageport",
-    "postmessage"
+    "postmessage",
+    "switchboard"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
+  "homepage": "https://github.com/apache/superset#readme",
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
-  "homepage": "https://github.com/apache/superset#readme",
+  "license": "Apache-2.0",
+  "author": "Superset",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/apache/superset.git",
+    "directory": "superset-frontend/packages/superset-ui-switchboard"
+  },
+  "files": [
+    "esm",
+    "lib"
+  ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
index 31bc492155f..f6ce65c4ea7 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
@@ -9,19 +9,22 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-calendar"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "d3-array": "^3.2.4",
     "d3-selection": "^3.0.0",
@@ -29,13 +32,10 @@
     "prop-types": "^15.8.1"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@emotion/react": "^11.4.1",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
index 711153df749..ebf3649360d 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
@@ -2,29 +2,29 @@
   "name": "@superset-ui/legacy-plugin-chart-chord",
   "version": "0.20.3",
   "description": "Superset Legacy Chart - Chord Diagram",
-  "sideEffects": [
-    "*.css"
-  ],
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-chord#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-chord"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-chord#readme",
+  "sideEffects": [
+    "*.css"
+  ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
@@ -34,8 +34,8 @@
     "react": "^19.2.7"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
-    "@superset-ui/core": "*",
-    "@apache-superset/core": "*"
+    "@superset-ui/core": "*"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
index 704028afc92..76ca6ad0809 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
@@ -2,26 +2,26 @@
   "name": "@superset-ui/legacy-plugin-chart-country-map",
   "version": "0.20.3",
   "description": "Superset Legacy Chart - Country Map",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-country-map#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-country-map"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-country-map#readme",
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
diff --git a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
index 8e151752be1..fa87f890d2d 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
@@ -9,31 +9,31 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/legacy-plugin-chart-horizon"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "d3-array": "^3.2.4",
     "d3-scale": "^4.0.2",
     "prop-types": "^15.8.1"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
index bb910734bf4..654de16cc17 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
@@ -9,31 +9,31 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-paired-t-test"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "distributions": "^2.2.0",
     "prop-types": "^15.8.1",
     "reactable": "^1.1.0"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.tsx b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.tsx
index ca0881558e2..09ce385c6c4 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.tsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.tsx
@@ -210,7 +210,8 @@ function TTestTable({
 
   // When sorted ascending, 'control' will always be at top
   type SortConfigItem =
-    string | { column: string; sortFunction: (a: string, b: string) => number };
+    | string
+    | { column: string; sortFunction: (a: string, b: string) => number };
 
   const sortConfig: SortConfigItem[] = useMemo(
     () =>
diff --git a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
index 26915611ea1..2e66c9cb0d0 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
@@ -2,29 +2,29 @@
   "name": "@superset-ui/legacy-plugin-chart-parallel-coordinates",
   "version": "0.20.3",
   "description": "Superset Legacy Chart - Parallel Coordinates",
-  "sideEffects": [
-    "*.css"
-  ],
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates#readme",
+  "sideEffects": [
+    "*.css"
+  ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
@@ -33,9 +33,9 @@
     "prop-types": "^15.8.1"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
index 23ef1d9efa0..fea904118f0 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
@@ -9,34 +9,34 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/legacy-plugin-chart-partition"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "d3": "^3.5.17",
     "d3-hierarchy": "^3.1.2",
     "prop-types": "^15.8.1"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "@testing-library/jest-dom": "*",
     "@testing-library/react": "^14.0.0",
     "react": "^18.3.0",
     "react-dom": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
index 725e5b91b8b..83eb8e6a495 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
@@ -9,32 +9,32 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-rose"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "d3": "^3.5.17",
     "nvd3-fork": "^2.0.5",
     "prop-types": "^15.8.1"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@emotion/react": "^11.4.1",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
index cf9ed4f39fe..154469211b2 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
@@ -2,43 +2,43 @@
   "name": "@superset-ui/legacy-plugin-chart-world-map",
   "version": "0.20.3",
   "description": "Superset Legacy Chart - World Map",
-  "sideEffects": [
-    "*.css"
-  ],
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-world-map#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/legacy-plugin-chart-world-map"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-world-map#readme",
+  "sideEffects": [
+    "*.css"
+  ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
   "dependencies": {
     "d3": "^3.5.17",
     "d3-array": "^3.2.4",
-    "tinycolor2": "^1.6.0",
     "datamaps": "^0.5.10",
-    "prop-types": "^15.8.1"
+    "prop-types": "^15.8.1",
+    "tinycolor2": "^1.6.0"
   },
   "peerDependencies": {
+    "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
-    "@apache-superset/core": "*",
     "react": "^18.3.0"
   }
 }
diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
index 1f1f1890d21..a369adb7b73 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
@@ -2,42 +2,42 @@
   "name": "@superset-ui/legacy-preset-chart-nvd3",
   "version": "0.20.3",
   "description": "Superset Legacy Chart - NVD3",
-  "sideEffects": [
-    "*.css"
-  ],
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-preset-chart-nvd3#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/packages/legacy-preset-chart-nvd3"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-preset-chart-nvd3#readme",
+  "sideEffects": [
+    "*.css"
+  ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
   "dependencies": {
     "d3": "^3.5.17",
     "d3-tip": "^0.9.1",
+    "dompurify": "^3.4.12",
     "fast-safe-stringify": "^2.1.1",
     "lodash": "^4.18.1",
+    "lodash-es": "^4.18.1",
     "nvd3-fork": "^2.0.5",
-    "dompurify": "^3.4.12",
     "prop-types": "^15.8.1",
-    "urijs": "^1.19.11",
-    "lodash-es": "^4.18.1"
+    "urijs": "^1.19.11"
   },
   "peerDependencies": {
     "@apache-superset/core": "*",
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
index 1424e87008e..21188c75fce 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/package.json
@@ -9,31 +9,34 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-ag-grid-table"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@types/d3-array": "^3.2.2",
     "@types/react-table": "^7.7.20",
     "classnames": "^2.5.1",
     "d3-array": "^3.2.4",
     "lodash": "^4.18.1",
+    "lodash-es": "^4.18.1",
     "memoize-one": "^6.0.0",
     "react-table": "^7.8.0",
     "regenerator-runtime": "^0.14.1",
-    "xss": "^1.0.15",
-    "lodash-es": "^4.18.1"
+    "xss": "^1.0.15"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
@@ -47,8 +50,5 @@
     "@types/react": "*",
     "react": "^18.3.0",
     "react-dom": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
index a1a434c529d..3ef4ee27a40 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx
@@ -80,7 +80,8 @@ function getQueryMode(controls: ControlStateMapping): QueryMode {
     return mode as QueryMode;
   }
   const rawColumns = controls?.all_columns?.value as
-    QueryFormColumn[] | undefined;
+    | QueryFormColumn[]
+    | undefined;
   const hasRawColumns = rawColumns && rawColumns.length > 0;
   return hasRawColumns ? QueryMode.Raw : QueryMode.Aggregate;
 }
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
index 7a77ea8498c..f03686e43d0 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts
@@ -822,7 +822,8 @@ const transformProps = (
 
   // Strip saved filter from chartState after initial application to prevent re-injection
   let chartState = serverPaginationData?.chartState as
-    AgGridChartState | undefined;
+    | AgGridChartState
+    | undefined;
   const chartStateHasFilter = !!(
     chartState?.filterModel && Object.keys(chartState.filterModel).length > 0
   );
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts
index 89a35267b9c..a71c53a7170 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts
@@ -189,7 +189,10 @@ export interface InputColumn {
   isPercentMetric: boolean;
   config: TableColumnConfig;
   formatter?:
-    TimeFormatter | NumberFormatter | CustomFormatter | CurrencyFormatter;
+    | TimeFormatter
+    | NumberFormatter
+    | CustomFormatter
+    | CurrencyFormatter;
   originalLabel?: string;
   metricName?: string;
   description?: string;
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts
index ad7e7cea411..b3275bf4583 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts
@@ -39,7 +39,8 @@ export default function getRowBasicColorFormatter(
   basicColorFormatters: RowFormatters[] | undefined,
 ): RowFormatters | undefined {
   const attached = node?.data?.[BASIC_COLOR_FORMATTERS_ROW_KEY] as
-    RowFormatters | undefined;
+    | RowFormatters
+    | undefined;
   if (attached) {
     return attached;
   }
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/test/controlPanel.test.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/test/controlPanel.test.tsx
index f5b88edd35a..68c34b5f98e 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/test/controlPanel.test.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/test/controlPanel.test.tsx
@@ -47,7 +47,8 @@ const findConditionalFormattingControl = (): ControlConfig | null => {
 };
 
 const findMetricsMapStateToProps = ():
-  ControlConfig['mapStateToProps'] | null => {
+  | ControlConfig['mapStateToProps']
+  | null => {
   for (const section of config.controlPanelSections) {
     if (!section) continue;
     for (const row of section.controlSetRows) {
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
index 1a8bf569dfa..1ed4e6c42a7 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
@@ -2,29 +2,29 @@
   "name": "@superset-ui/plugin-chart-cartodiagram",
   "version": "0.0.1",
   "description": "An OpenLayers map that displays charts for single features.",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/apache-superset/superset-ui.git"
-  },
   "keywords": [
     "superset"
   ],
-  "license": "Apache-2.0",
+  "homepage": "https://github.com/apache-superset/superset-ui#readme",
   "bugs": {
     "url": "https://github.com/apache-superset/superset-ui/issues"
   },
-  "homepage": "https://github.com/apache-superset/superset-ui#readme",
+  "license": "Apache-2.0",
   "contributors": [
     "terrestris GmbH & Co. KG <in...@terrestris.de> (https://www.terrestris.de)",
     "meggsimum - Büro für Geoinformatik <in...@meggsimum.de> (https://meggsimum.de)"
   ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/apache-superset/superset-ui.git"
+  },
+  "files": [
+    "esm",
+    "lib"
+  ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
diff --git a/superset-frontend/plugins/plugin-chart-echarts/package.json b/superset-frontend/plugins/plugin-chart-echarts/package.json
index cadb4252a80..d68a79fbc99 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/package.json
+++ b/superset-frontend/plugins/plugin-chart-echarts/package.json
@@ -9,28 +9,31 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-echarts"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@types/d3-array": "^3.2.2",
     "@types/react-redux": "^7.1.34",
     "acorn": "^8.17.0",
     "d3-array": "^3.2.4",
     "lodash": "^4.18.1",
-    "zod": "^4.4.3",
-    "lodash-es": "^4.18.1"
+    "lodash-es": "^4.18.1",
+    "zod": "^4.4.3"
   },
   "peerDependencies": {
     "@apache-superset/core": "*",
@@ -40,8 +43,5 @@
     "echarts": "*",
     "memoize-one": "*",
     "react": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/types.ts b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/types.ts
index 612d28b7ca8..622f8e2853b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/types.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/types.ts
@@ -42,7 +42,11 @@ export type BoxPlotFormDataWhiskerOptions =
   | '10/90 percentiles';
 
 export type BoxPlotFormXTickLayout =
-  '45°' | '90°' | 'auto' | 'flat' | 'staggered';
+  | '45°'
+  | '90°'
+  | 'auto'
+  | 'flat'
+  | 'staggered';
 
 // @ts-expect-error
 export const DEFAULT_FORM_DATA: BoxPlotQueryFormData = {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
index 4a40efcaf44..c11d4dab16b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
@@ -221,7 +221,8 @@ const config: ControlPanelConfig = {
 
                 return {
                   queryResponse: chart?.queriesResponse?.[0] as
-                    ChartDataResponseResult | undefined,
+                    | ChartDataResponseResult
+                    | undefined,
                   appliedColumnNames: metricColumn,
                   columnsPropsObject: { colnames, coltypes },
                 };
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
index 8e4919e63fc..a7a40ddaa07 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
@@ -521,7 +521,8 @@ export function transformIntervalAnnotation(
   });
 
   const allIntervalData: (
-    MarkArea1DDataItemOption | MarkArea2DDataItemOption
+    | MarkArea1DDataItemOption
+    | MarkArea2DDataItemOption
   )[] = annotations.map(annotation => {
     const { intervalEnd, time = '' } = annotation;
     const combinedLabel = (intervalsByStartTime.get(time) || []).join('\n');
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts
index a8b70758df9..9ca53991486 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts
@@ -29,7 +29,11 @@ import type { CallbackDataParams } from 'echarts/types/src/util/types';
 import { BaseTransformedProps, LegendFormData } from '../types';
 
 export type WaterfallFormXTicksLayout =
-  '45°' | '90°' | 'auto' | 'flat' | 'staggered';
+  | '45°'
+  | '90°'
+  | 'auto'
+  | 'flat'
+  | 'staggered';
 
 export type ISeriesData = {
   originalValue?: number;
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/legendLayout.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/legendLayout.ts
index 200efc71b98..c4a8740e0c1 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/legendLayout.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/legendLayout.ts
@@ -21,7 +21,11 @@ import { LegendOrientation, LegendType } from '../types';
 import { getLegendLayoutResult, LegendLayoutResult } from './series';
 
 type LegendDataItem =
-  string | number | null | undefined | { name?: string | number | null };
+  | string
+  | number
+  | null
+  | undefined
+  | { name?: string | number | null };
 
 export type ResolvedLegendLayout = {
   effectiveLegendMargin?: string | number | null;
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
index 3e9a4853292..528a602199b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
@@ -46,7 +46,9 @@ import {
  */
 export class EChartOptionsParseError extends Error {
   public readonly errorType:
-    'parse_error' | 'security_error' | 'validation_error';
+    | 'parse_error'
+    | 'security_error'
+    | 'validation_error';
 
   public readonly validationErrors: string[];
 
@@ -55,7 +57,9 @@ export class EChartOptionsParseError extends Error {
   constructor(
     message: string,
     errorType:
-      'parse_error' | 'security_error' | 'validation_error' = 'parse_error',
+      | 'parse_error'
+      | 'security_error'
+      | 'validation_error' = 'parse_error',
     validationErrors: string[] = [],
     location?: { line: number; column: number },
   ) {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
index d8c899be77a..535a310dcc5 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
@@ -73,7 +73,11 @@ const ESTIMATED_LEGEND_SELECTOR_WIDTH = 112;
 const LEGEND_TEXT_WIDTH_CACHE = new Map<string, number>();
 
 type LegendDataItem =
-  string | number | null | undefined | { name?: string | number | null };
+  | string
+  | number
+  | null
+  | undefined
+  | { name?: string | number | null };
 
 export type LegendLayoutResult = {
   effectiveMargin?: number;
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/buildQuery.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/buildQuery.test.ts
index 0f7226e58c9..4a1a612cac0 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/buildQuery.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/buildQuery.test.ts
@@ -219,19 +219,13 @@ test('should compile AA in query A', () => {
   });
   // cumsum
   expect(
-    // prettier-ignore
-    query
-      .post_processing
-      ?.find(operator => operator?.operation === 'cum')
+    query.post_processing?.find(operator => operator?.operation === 'cum')
       ?.operation,
   ).toEqual('cum');
 
   // resample
   expect(
-    // prettier-ignore
-    query
-      .post_processing
-      ?.find(operator => operator?.operation === 'resample'),
+    query.post_processing?.find(operator => operator?.operation === 'resample'),
   ).toEqual({
     operation: 'resample',
     options: {
@@ -249,10 +243,7 @@ test('should compile AA in query B', () => {
 
   // rolling total
   expect(
-    // prettier-ignore
-    query
-      .post_processing
-      ?.find(operator => operator?.operation === 'rolling'),
+    query.post_processing?.find(operator => operator?.operation === 'rolling'),
   ).toEqual({
     operation: 'rolling',
     options: {
@@ -268,10 +259,7 @@ test('should compile AA in query B', () => {
 
   // resample
   expect(
-    // prettier-ignore
-    query
-      .post_processing
-      ?.find(operator => operator?.operation === 'resample'),
+    query.post_processing?.find(operator => operator?.operation === 'resample'),
   ).toEqual({
     operation: 'resample',
     options: {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
index 9f51bcfcca8..c5957619897 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
@@ -1017,9 +1017,11 @@ test('should apply dashed line style to time comparison series with single metri
   const series = (transformed.echartOptions.series as SeriesOption[]) || [];
 
   const mainSeries = series.find(s => s.name === 'sum__num') as
-    (SeriesOption & { lineStyle?: { type?: number[] | string } }) | undefined;
+    | (SeriesOption & { lineStyle?: { type?: number[] | string } })
+    | undefined;
   const comparisonSeries = series.find(s => s.name === '1 week ago') as
-    (SeriesOption & { lineStyle?: { type?: number[] | string } }) | undefined;
+    | (SeriesOption & { lineStyle?: { type?: number[] | string } })
+    | undefined;
 
   expect(mainSeries).toBeDefined();
   expect(comparisonSeries).toBeDefined();
@@ -1060,11 +1062,13 @@ test('should apply dashed line style to time comparison series with metric__offs
   const series = (transformed.echartOptions.series as SeriesOption[]) || [];
 
   const mainSeries = series.find(s => s.name === 'sum__num') as
-    (SeriesOption & { lineStyle?: { type?: number[] | string } }) | undefined;
+    | (SeriesOption & { lineStyle?: { type?: number[] | string } })
+    | undefined;
   const comparisonSeries = series.find(
     s => s.name === 'sum__num__1 week ago',
   ) as
-    (SeriesOption & { lineStyle?: { type?: number[] | string } }) | undefined;
+    | (SeriesOption & { lineStyle?: { type?: number[] | string } })
+    | undefined;
 
   expect(mainSeries).toBeDefined();
   expect(comparisonSeries).toBeDefined();
@@ -1096,7 +1100,8 @@ test('should apply connectNulls to time comparison series', () => {
   const series = (transformed.echartOptions.series as SeriesOption[]) || [];
 
   const comparisonSeries = series.find(s => s.name === '1 week ago') as
-    (SeriesOption & { connectNulls?: boolean }) | undefined;
+    | (SeriesOption & { connectNulls?: boolean })
+    | undefined;
 
   expect(comparisonSeries).toBeDefined();
   expect(comparisonSeries?.connectNulls).toBe(true);
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
index d0ae93f80c0..6e495e6f539 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
@@ -67,7 +67,11 @@ const {
     chartHeight: number;
     chartWidth: number;
     legendItems?: (
-      string | number | null | undefined | { name?: string | number | null }
+      | string
+      | number
+      | null
+      | undefined
+      | { name?: string | number | null }
     )[];
     legendMargin?: string | number | null;
     orientation: LegendOrientation;
@@ -90,7 +94,11 @@ const {
     chartHeight: number;
     chartWidth: number;
     legendItems?: (
-      string | number | null | undefined | { name?: string | number | null }
+      | string
+      | number
+      | null
+      | undefined
+      | { name?: string | number | null }
     )[];
     legendMargin?: string | number | null;
     orientation: LegendOrientation;
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/package.json b/superset-frontend/plugins/plugin-chart-handlebars/package.json
index 715cbfd6479..592b0d960ae 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/package.json
+++ b/superset-frontend/plugins/plugin-chart-handlebars/package.json
@@ -2,27 +2,27 @@
   "name": "@superset-ui/plugin-chart-handlebars",
   "version": "0.20.3",
   "description": "Superset Chart - Write a handlebars template to render the data",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-handlebars#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-handlebars"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-handlebars#readme",
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
@@ -32,21 +32,21 @@
     "just-handlebars-helpers": "^1.0.19",
     "lodash-es": "^4.18.1"
   },
+  "devDependencies": {
+    "@types/jest": "^30.0.0",
+    "@types/lodash": "^4.17.24",
+    "jest": "^30.4.2"
+  },
   "peerDependencies": {
-    "@superset-ui/chart-controls": "*",
     "@apache-superset/core": "*",
+    "@superset-ui/chart-controls": "*",
     "@superset-ui/core": "*",
     "ace-builds": "^1.4.14",
+    "dayjs": "^1.11.21",
     "handlebars": "^4.7.8",
     "lodash": "^4.18.1",
-    "dayjs": "^1.11.21",
     "react": "^18.3.0",
     "react-ace": "^10.1.0",
     "react-dom": "^18.3.0"
-  },
-  "devDependencies": {
-    "@types/jest": "^30.0.0",
-    "@types/lodash": "^4.17.24",
-    "jest": "^30.4.2"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/shared.ts b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/shared.ts
index 7b6cf2155f9..895e7f70d3e 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/shared.ts
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/shared.ts
@@ -29,7 +29,8 @@ export function getQueryMode(controls: ControlStateMapping): QueryMode {
     return mode as QueryMode;
   }
   const rawColumns = controls?.all_columns?.value as
-    QueryFormColumn[] | undefined;
+    | QueryFormColumn[]
+    | undefined;
   const hasRawColumns = rawColumns && rawColumns.length > 0;
   return hasRawColumns ? QueryMode.Raw : QueryMode.Aggregate;
 }
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/package.json b/superset-frontend/plugins/plugin-chart-pivot-table/package.json
index 45a69a4cde5..6c3ce43df0d 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/package.json
@@ -2,30 +2,39 @@
   "name": "@superset-ui/plugin-chart-pivot-table",
   "version": "0.20.3",
   "description": "Superset Chart - Pivot Table",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-pivot-table#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-pivot-table"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-pivot-table#readme",
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
+  "devDependencies": {
+    "@babel/types": "^7.29.7",
+    "@testing-library/dom": "^9.3.4",
+    "@testing-library/jest-dom": "*",
+    "@testing-library/react": "^14.0.0",
+    "@testing-library/user-event": "*",
+    "@types/jest": "^30.0.0",
+    "jest": "^30.4.2"
+  },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
     "@apache-superset/core": "*",
@@ -35,14 +44,5 @@
     "prop-types": "*",
     "react": "^18.3.0",
     "react-dom": "^18.3.0"
-  },
-  "devDependencies": {
-    "@babel/types": "^7.29.7",
-    "@testing-library/dom": "^9.3.4",
-    "@testing-library/jest-dom": "*",
-    "@testing-library/react": "^14.0.0",
-    "@testing-library/user-event": "*",
-    "@types/jest": "^30.0.0",
-    "jest": "^30.4.2"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts
index f96e403653a..8db8940e9fa 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/utilities.ts
@@ -938,7 +938,8 @@ class PivotData {
   props: Record<string, unknown>;
   aggregator: (...args: unknown[]) => Aggregator;
   formattedAggregators:
-    Record<string, Record<string, (...args: unknown[]) => Aggregator>> | false;
+    | Record<string, Record<string, (...args: unknown[]) => Aggregator>>
+    | false;
   tree: Record<string, Record<string, Aggregator>>;
   rowKeys: string[][];
   colKeys: string[][];
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/src/types.ts b/superset-frontend/plugins/plugin-chart-pivot-table/src/types.ts
index b6c2bbd75fe..3e3d4c145eb 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/src/types.ts
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/src/types.ts
@@ -42,7 +42,9 @@ export type FilterType = Record<string, DataRecordValue>;
 export type SelectedFiltersType = Record<string, DataRecordValue[]>;
 
 export type DateFormatter =
-  TimeFormatter | NumberFormatter | ((value: DataRecordValue) => string);
+  | TimeFormatter
+  | NumberFormatter
+  | ((value: DataRecordValue) => string);
 export enum MetricsLayoutEnum {
   ROWS = 'ROWS',
   COLUMNS = 'COLUMNS',
diff --git a/superset-frontend/plugins/plugin-chart-point-cluster-map/package.json b/superset-frontend/plugins/plugin-chart-point-cluster-map/package.json
index 846fc752088..f1febc29266 100644
--- a/superset-frontend/plugins/plugin-chart-point-cluster-map/package.json
+++ b/superset-frontend/plugins/plugin-chart-point-cluster-map/package.json
@@ -9,22 +9,25 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-point-cluster-map"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
+  "files": [
+    "esm",
+    "lib"
+  ],
   "sideEffects": [
     "*.css"
   ],
   "main": "lib/index.js",
   "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
-  ],
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@math.gl/web-mercator": "^4.1.0",
     "mapbox-gl": "^3.26.0",
@@ -38,8 +41,5 @@
     "@superset-ui/core": "*",
     "react": "^18.3.0",
     "react-dom": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-table/package.json b/superset-frontend/plugins/plugin-chart-table/package.json
index 031d1498f52..bf5b641db23 100644
--- a/superset-frontend/plugins/plugin-chart-table/package.json
+++ b/superset-frontend/plugins/plugin-chart-table/package.json
@@ -9,31 +9,34 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-table"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": false,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": false,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@types/d3-array": "^3.2.2",
     "@types/react-table": "^7.7.20",
     "classnames": "^2.5.1",
     "d3-array": "^3.2.4",
     "lodash": "^4.18.1",
+    "lodash-es": "^4.18.1",
     "memoize-one": "^6.0.0",
     "react-table": "^7.8.0",
     "regenerator-runtime": "^0.14.1",
-    "xss": "^1.0.15",
-    "lodash-es": "^4.18.1"
+    "xss": "^1.0.15"
   },
   "peerDependencies": {
     "@ant-design/icons": "^5.6.1",
@@ -48,8 +51,5 @@
     "match-sorter": "^8.2.0",
     "react": "^18.3.0",
     "react-dom": "^18.3.0"
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
index 65bbc5b3702..6b392cd1ee1 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
@@ -1150,15 +1150,13 @@ export default function TableChart<D extends DataRecord = DataRecord>(
             text-align: ${sharedStyle.textAlign};
             white-space: ${value instanceof Date ? 'nowrap' : undefined};
             position: relative;
-            font-weight: ${
-              color ? `${theme.fontWeightBold}` : `${theme.fontWeightNormal}`
-            };
+            font-weight: ${color
+              ? `${theme.fontWeightBold}`
+              : `${theme.fontWeightNormal}`};
             background: ${backgroundColor || undefined};
-            padding-left: ${
-              column.isChildColumn
-                ? `${theme.sizeUnit * 5}px`
-                : `${theme.sizeUnit}px`
-            };
+            padding-left: ${column.isChildColumn
+              ? `${theme.sizeUnit * 5}px`
+              : `${theme.sizeUnit}px`};
           `;
 
           const cellBarStyles = css`
@@ -1166,11 +1164,10 @@ export default function TableChart<D extends DataRecord = DataRecord>(
             height: 100%;
             display: block;
             top: 0;
-            ${
-              valueRange &&
-              typeof value === 'number' &&
-              valueRangeFlag &&
-              `
+            ${valueRange &&
+            typeof value === 'number' &&
+            valueRangeFlag &&
+            `
                 width: ${`${cellWidth({
                   value: value as number,
                   valueRange,
@@ -1189,18 +1186,15 @@ export default function TableChart<D extends DataRecord = DataRecord>(
                     theme,
                   })
                 };
-              `
-            }
+              `}
           `;
 
           let arrowStyles = css`
-            color: ${
-              basicColorFormatters &&
-              basicColorFormatters[row.index][originKey]?.arrowColor ===
-                ColorSchemeEnum.Green
-                ? theme.colorSuccess
-                : theme.colorError
-            };
+            color: ${basicColorFormatters &&
+            basicColorFormatters[row.index][originKey]?.arrowColor ===
+              ColorSchemeEnum.Green
+              ? theme.colorSuccess
+              : theme.colorError};
             margin-right: ${theme.sizeUnit}px;
           `;
 
@@ -1209,12 +1203,10 @@ export default function TableChart<D extends DataRecord = DataRecord>(
             basicColorColumnFormatters?.length > 0
           ) {
             arrowStyles = css`
-              color: ${
-                basicColorColumnFormatters[row.index][column.key]
-                  ?.arrowColor === ColorSchemeEnum.Green
-                  ? theme.colorSuccess
-                  : theme.colorError
-              };
+              color: ${basicColorColumnFormatters[row.index][column.key]
+                ?.arrowColor === ColorSchemeEnum.Green
+                ? theme.colorSuccess
+                : theme.colorError};
               margin-right: ${theme.sizeUnit}px;
             `;
           }
diff --git a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
index 3597dfb6f2e..5a81e4ff526 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
@@ -66,7 +66,8 @@ function getQueryMode(controls: ControlStateMapping): QueryMode {
     return mode as QueryMode;
   }
   const rawColumns = controls?.all_columns?.value as
-    QueryFormColumn[] | undefined;
+    | QueryFormColumn[]
+    | undefined;
   const hasRawColumns = rawColumns && rawColumns.length > 0;
   return hasRawColumns ? QueryMode.Raw : QueryMode.Aggregate;
 }
diff --git a/superset-frontend/plugins/plugin-chart-table/test/controlPanel.test.tsx b/superset-frontend/plugins/plugin-chart-table/test/controlPanel.test.tsx
index 7b276d432e0..9c45037683f 100644
--- a/superset-frontend/plugins/plugin-chart-table/test/controlPanel.test.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/test/controlPanel.test.tsx
@@ -48,7 +48,8 @@ const findConditionalFormattingControl = (): ControlConfig | null => {
 };
 
 const findMetricsMapStateToProps = ():
-  ControlConfig['mapStateToProps'] | null => {
+  | ControlConfig['mapStateToProps']
+  | null => {
   for (const section of config.controlPanelSections) {
     if (!section) continue;
     for (const row of section.controlSetRows) {
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/package.json b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
index 7bc797ec065..102be8e7a54 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/package.json
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
@@ -2,29 +2,29 @@
   "name": "@superset-ui/plugin-chart-word-cloud",
   "version": "0.20.4",
   "description": "Superset Chart Plugin - Word Cloud",
-  "sideEffects": [
-    "*.css"
-  ],
-  "main": "lib/index.js",
-  "module": "esm/index.js",
-  "files": [
-    "esm",
-    "lib"
+  "keywords": [
+    "superset"
   ],
+  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-word-cloud#readme",
+  "bugs": {
+    "url": "https://github.com/apache/superset/issues"
+  },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/plugin-chart-word-cloud"
   },
-  "keywords": [
-    "superset"
+  "files": [
+    "esm",
+    "lib"
   ],
-  "author": "Superset",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/apache/superset/issues"
-  },
-  "homepage": "https://github.com/apache/superset/tree/master/superset-frontend/plugins/plugin-chart-word-cloud#readme",
+  "sideEffects": [
+    "*.css"
+  ],
+  "main": "lib/index.js",
+  "module": "esm/index.js",
   "publishConfig": {
     "access": "public"
   },
@@ -34,6 +34,9 @@
     "d3-scale": "^4.0.2",
     "lodash-es": "^4.18.1"
   },
+  "devDependencies": {
+    "@types/d3-cloud": "^1.2.9"
+  },
   "peerDependencies": {
     "@apache-superset/core": "*",
     "@superset-ui/chart-controls": "*",
@@ -41,8 +44,5 @@
     "@types/lodash": "*",
     "@types/react": "*",
     "react": "^18.3.0"
-  },
-  "devDependencies": {
-    "@types/d3-cloud": "^1.2.9"
   }
 }
diff --git a/superset-frontend/plugins/preset-chart-deckgl/package.json b/superset-frontend/plugins/preset-chart-deckgl/package.json
index 1915c4d04a6..bbe253cf2d1 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/package.json
+++ b/superset-frontend/plugins/preset-chart-deckgl/package.json
@@ -9,20 +9,23 @@
   "bugs": {
     "url": "https://github.com/apache/superset/issues"
   },
+  "license": "Apache-2.0",
+  "author": "Superset",
   "repository": {
     "type": "git",
     "url": "https://github.com/apache/superset.git",
     "directory": "superset-frontend/plugins/preset-chart-deckgl"
   },
-  "license": "Apache-2.0",
-  "author": "Superset",
-  "sideEffects": true,
-  "main": "lib/index.js",
-  "module": "esm/index.js",
   "files": [
     "esm",
     "lib"
   ],
+  "sideEffects": true,
+  "main": "lib/index.js",
+  "module": "esm/index.js",
+  "publishConfig": {
+    "access": "public"
+  },
   "dependencies": {
     "@deck.gl/aggregation-layers": "~9.2.11",
     "@deck.gl/core": "~9.2.5",
@@ -45,6 +48,7 @@
     "d3-scale": "^4.0.2",
     "handlebars": "^4.7.9",
     "lodash": "^4.18.1",
+    "lodash-es": "^4.18.1",
     "maplibre-gl": "^5.24.0",
     "mousetrap": "^1.6.5",
     "ngeohash": "^0.6.3",
@@ -52,8 +56,7 @@
     "react-map-gl": "^8.1.1",
     "tinycolor2": "^1.6.0",
     "urijs": "^1.19.11",
-    "xss": "^1.0.15",
-    "lodash-es": "^4.18.1"
+    "xss": "^1.0.15"
   },
   "devDependencies": {
     "@types/mapbox__geojson-extent": "^1.0.3",
@@ -73,8 +76,5 @@
     "mapbox-gl": {
       "optional": true
     }
-  },
-  "publishConfig": {
-    "access": "public"
   }
 }
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.ts b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.ts
index 79574dad716..7e61e259908 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.ts
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.ts
@@ -35,7 +35,8 @@ export interface DeckPathFormData extends SqlaFormData {
   tooltip_contents?: unknown[];
   tooltip_template?: string;
   line_width?:
-    string | { type?: 'fix' | 'metric'; value?: QueryFormMetric | number };
+    | string
+    | { type?: 'fix' | 'metric'; value?: QueryFormMetric | number };
   line_width_multiplier?: number;
   min_width?: number;
   max_width?: number;
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/Shared_DeckGL.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/Shared_DeckGL.tsx
index feff6b17f57..e6fd1d0e9d9 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/utilities/Shared_DeckGL.tsx
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/utilities/Shared_DeckGL.tsx
@@ -442,7 +442,8 @@ export const mapProvider = {
         options: getLabeledMapRendererOptions({
           hasMapboxKey: hasKey,
           currentValue: state.form_data?.map_renderer as
-            MapProvider | undefined,
+            | MapProvider
+            | undefined,
         }),
         default: getDefaultMapRenderer(),
       };
diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/utils/crossFiltersDataMask.ts b/superset-frontend/plugins/preset-chart-deckgl/src/utils/crossFiltersDataMask.ts
index c1a7de9b761..d5a3c82b289 100644
--- a/superset-frontend/plugins/preset-chart-deckgl/src/utils/crossFiltersDataMask.ts
+++ b/superset-frontend/plugins/preset-chart-deckgl/src/utils/crossFiltersDataMask.ts
@@ -420,7 +420,11 @@ const getLineColumnFilters = ({
     const col = formData.cross_filter_column;
     const obj = data.object ?? {};
     const dimensionVal = obj[col] as
-      string | number | boolean | null | undefined;
+      | string
+      | number
+      | boolean
+      | null
+      | undefined;
 
     if (dimensionVal == null) {
       throw new Error(
@@ -478,7 +482,11 @@ const getGeojsonFilters = ({
       unknown
     >;
     const dimensionVal = properties[col] as
-      string | number | boolean | null | undefined;
+      | string
+      | number
+      | boolean
+      | null
+      | undefined;
 
     if (dimensionVal == null) {
       throw new Error(
diff --git a/superset-frontend/prettier.config.js b/superset-frontend/prettier.config.js
deleted file mode 100644
index 5ee96a0cfbd..00000000000
--- a/superset-frontend/prettier.config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-module.exports = {
-  singleQuote: true,
-  trailingComma: 'all',
-  arrowParens: 'avoid',
-};
diff --git a/superset-frontend/scripts/po2json.sh b/superset-frontend/scripts/po2json.sh
index 7ea151fa368..9baebc1d8df 100755
--- a/superset-frontend/scripts/po2json.sh
+++ b/superset-frontend/scripts/po2json.sh
@@ -32,6 +32,6 @@ do
   then
     echo "po2json --domain superset --format jed1.x $file $filename.json"
     po2json --domain superset --format jed1.x --fuzzy $file $filename.json
-    prettier --write $filename.json
+    oxfmt --write $filename.json
   fi
 done
diff --git a/superset-frontend/src/SqlLab/components/TableExploreTree/TreeNodeRenderer.tsx b/superset-frontend/src/SqlLab/components/TableExploreTree/TreeNodeRenderer.tsx
index 195f1636a35..1c1c5d8132d 100644
--- a/superset-frontend/src/SqlLab/components/TableExploreTree/TreeNodeRenderer.tsx
+++ b/superset-frontend/src/SqlLab/components/TableExploreTree/TreeNodeRenderer.tsx
@@ -370,9 +370,9 @@ const TreeNodeRenderer: React.FC<TreeNodeRendererProps> = ({
                     <Icons.SortAscendingOutlined
                       iconSize="m"
                       css={css`
-                        color: ${
-                          sortedTables[data.id] ? theme.colorPrimary : 'inherit'
-                        };
+                        color: ${sortedTables[data.id]
+                          ? theme.colorPrimary
+                          : 'inherit'};
                       `}
                     />
                   }
diff --git a/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts b/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
index 36103d5dffe..fdd7cbefe91 100644
--- a/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
+++ b/superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
@@ -37,7 +37,10 @@ import { BYTES_PER_CHAR, KB_STORAGE } from '../constants';
 type SqlLabState = SqlLabRootState['sqlLab'];
 
 type ClearEntityHelperValue =
-  Table[] | SqlLabState['queries'] | QueryEditor[] | UnsavedQueryEditor;
+  | Table[]
+  | SqlLabState['queries']
+  | QueryEditor[]
+  | UnsavedQueryEditor;
 
 interface ClearEntityHelpersMap {
   tables: (tables: Table[]) => ReturnType<typeof emptyTablePersistData>;
diff --git a/superset-frontend/src/SqlLab/reducers/sqlLab.ts b/superset-frontend/src/SqlLab/reducers/sqlLab.ts
index 7918079dd5e..600a06ab783 100644
--- a/superset-frontend/src/SqlLab/reducers/sqlLab.ts
+++ b/superset-frontend/src/SqlLab/reducers/sqlLab.ts
@@ -613,7 +613,8 @@ export default function sqlLabReducer(
           ? actionId
           : ((
               getFromArr(state.queryEditors, actionId, 'tabViewId') as
-                QueryEditor | undefined
+                | QueryEditor
+                | undefined
             )?.id ?? actionId);
       if (
         unsavedQueryEditor?.id === normalizedId &&
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
index dd6f747f2c5..ffa5764816c 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
@@ -567,7 +567,8 @@ export default function DrillByModal({
             // broaden it to an optional `SyntheticEvent` callback here to
             // reuse it as the keyboard-activation handler below.
             const onRouteClick = route.onClick as
-              ((event?: SyntheticEvent) => void) | undefined;
+              | ((event?: SyntheticEvent) => void)
+              | undefined;
             return isLastElement ? (
               <span data-test="drill-by-breadcrumb-item">
                 {route.title}
diff --git a/superset-frontend/src/components/Datasource/FoldersEditor/TreeItem.styles.ts b/superset-frontend/src/components/Datasource/FoldersEditor/TreeItem.styles.ts
index 03a39969648..d4c0e43d846 100644
--- a/superset-frontend/src/components/Datasource/FoldersEditor/TreeItem.styles.ts
+++ b/superset-frontend/src/components/Datasource/FoldersEditor/TreeItem.styles.ts
@@ -188,21 +188,17 @@ export const EmptyFolderDropZone = styled.div<{
     margin-left: ${depth * FOLDER_INDENTATION_WIDTH + ITEM_INDENTATION_WIDTH}px;
     padding: ${theme.paddingLG}px;
     border: 2px dashed
-      ${
-        isOver
-          ? isForbidden
-            ? theme.colorError
-            : theme.colorPrimary
-          : 'transparent'
-      };
-    border-radius: ${theme.borderRadius}px;
-    background: ${
-      isOver
+      ${isOver
         ? isForbidden
-          ? theme.colorErrorBg
-          : theme.colorPrimaryBg
-        : 'transparent'
-    };
+          ? theme.colorError
+          : theme.colorPrimary
+        : 'transparent'};
+    border-radius: ${theme.borderRadius}px;
+    background: ${isOver
+      ? isForbidden
+        ? theme.colorErrorBg
+        : theme.colorPrimaryBg
+      : 'transparent'};
     text-align: center;
     transition: all 0.2s ease-in-out;
     cursor: ${isOver && isForbidden ? 'not-allowed' : 'default'};
diff --git a/superset-frontend/src/components/Datasource/FoldersEditor/treeUtils.ts b/superset-frontend/src/components/Datasource/FoldersEditor/treeUtils.ts
index 5f2d24cb63d..fbf89dbb6d3 100644
--- a/superset-frontend/src/components/Datasource/FoldersEditor/treeUtils.ts
+++ b/superset-frontend/src/components/Datasource/FoldersEditor/treeUtils.ts
@@ -305,8 +305,8 @@ export function serializeForAPI(items: TreeItem[]): DatasourceFolder[] {
         (
           child,
         ): child is
-          DatasourceFolder | { uuid: string; type: FoldersEditorItemType } =>
-          child !== null,
+          | DatasourceFolder
+          | { uuid: string; type: FoldersEditorItemType } => child !== null,
       );
   };
 
diff --git a/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx b/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
index 74941e11c93..cde60f9355f 100644
--- a/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
+++ b/superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
@@ -106,9 +106,9 @@ const OptionItem = styled.li<{ $active: boolean }>`
     transition: background 0.15s;
 
     &:hover {
-      background: ${
-        $active ? theme.colorPrimaryBgHover : theme.colorFillTertiary
-      };
+      background: ${$active
+        ? theme.colorPrimaryBgHover
+        : theme.colorFillTertiary};
       outline: 2px solid ${theme.colorPrimary};
       outline-offset: -2px;
     }
diff --git a/superset-frontend/src/dashboard/actions/dashboardLayout.ts b/superset-frontend/src/dashboard/actions/dashboardLayout.ts
index 829953f1a81..192eaaeee86 100644
--- a/superset-frontend/src/dashboard/actions/dashboardLayout.ts
+++ b/superset-frontend/src/dashboard/actions/dashboardLayout.ts
@@ -312,7 +312,7 @@ export function handleComponentDrop(dropResult: DropResult) {
       source &&
       !(
         // ensure it has moved
-        destination.id === source.id && destination.index === source.index
+        (destination.id === source.id && destination.index === source.index)
       )
     ) {
       dispatch(moveComponent(dropResult));
diff --git a/superset-frontend/src/dashboard/actions/dashboardState.ts b/superset-frontend/src/dashboard/actions/dashboardState.ts
index 23a6e7fba2d..95633c04a50 100644
--- a/superset-frontend/src/dashboard/actions/dashboardState.ts
+++ b/superset-frontend/src/dashboard/actions/dashboardState.ts
@@ -717,7 +717,8 @@ export function saveDashboardRequest(
                 updatedBy: dashboard.changed_by_name as string,
                 overwriteConfirmItems:
                   overwriteConfirmItems as DashboardState['overwriteConfirmMetadata'] extends
-                    { overwriteConfirmItems: infer I } | undefined
+                    | { overwriteConfirmItems: infer I }
+                    | undefined
                     ? I
                     : never,
                 dashboardId: id,
diff --git a/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx b/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
index 5e8239c2123..40742f7a9d9 100644
--- a/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
+++ b/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
@@ -174,7 +174,8 @@ const AddSliceCard: FC<{
   datasourceUrl?: string;
   datasourceName?: string;
   innerRef?:
-    RefObject<HTMLDivElement> | ((node: HTMLDivElement | null) => void);
+    | RefObject<HTMLDivElement>
+    | ((node: HTMLDivElement | null) => void);
   isSelected?: boolean;
   lastModified?: string;
   sliceName: string;
diff --git a/superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx b/superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx
index 7592423152c..39a33546cb9 100644
--- a/superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx
+++ b/superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx
@@ -144,14 +144,12 @@ export const StatusIndicatorDot: FC<StatusIndicatorDotProps> = ({
         background-color ${theme.motionDurationMid} ease-in-out,
         border-color ${theme.motionDurationMid} ease-in-out;
       border: ${statusConfig.needsBorder ? '1px solid' : 'none'};
-      border-color: ${
-        statusConfig.needsBorder ? statusConfig.outlineColor : 'transparent'
-      };
-      box-shadow: ${
-        statusConfig.needsBorder
-          ? 'none'
-          : `0 0 0 2px ${theme.colorBgContainer}`
-      };
+      border-color: ${statusConfig.needsBorder
+        ? statusConfig.outlineColor
+        : 'transparent'};
+      box-shadow: ${statusConfig.needsBorder
+        ? 'none'
+        : `0 0 0 2px ${theme.colorBgContainer}`};
       margin-left: ${theme.marginXS}px;
       margin-right: ${theme.marginXS}px;
       cursor: help;
diff --git a/superset-frontend/src/dashboard/components/Dashboard.tsx b/superset-frontend/src/dashboard/components/Dashboard.tsx
index e6df7eff03d..87f9b1b7bb3 100644
--- a/superset-frontend/src/dashboard/components/Dashboard.tsx
+++ b/superset-frontend/src/dashboard/components/Dashboard.tsx
@@ -53,7 +53,9 @@ import { getAffectedOwnDataCharts } from '../util/charts/getOwnDataCharts';
 import { getRelatedCharts } from '../util/getRelatedCharts';
 
 type RelatedChartsFilter =
-  AppliedNativeFilterType | AppliedCrossFilterType | Filter;
+  | AppliedNativeFilterType
+  | AppliedCrossFilterType
+  | Filter;
 
 interface DashboardActions {
   addSliceToDashboard: (id: number, component: LayoutItem | undefined) => void;
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
index 8b4c9f9ad9f..9fffb802924 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
@@ -142,9 +142,8 @@ const DashboardContentWrapper = styled.div`
       & .dashboard-component-tabs {
         box-shadow: 0 ${theme.sizeUnit}px ${theme.sizeUnit}px 0
           ${addAlpha(theme.colorBorderSecondary, 0.1)};
-        padding-left: ${
-          theme.sizeUnit * 2
-        }px; /* note this is added to tab-level padding, to match header */
+        padding-left: ${theme.sizeUnit *
+        2}px; /* note this is added to tab-level padding, to match header */
       }
 
       .dropdown-toggle.btn.btn-primary .caret {
@@ -297,17 +296,15 @@ const StyledDashboardContent = styled.div<{
       margin: ${theme.sizeUnit * 4}px;
       margin-left: ${marginLeft}px;
 
-      ${
-        editMode &&
-        `
+      ${editMode &&
+      `
       max-width: calc(100% - ${
         BUILDER_SIDEPANEL_WIDTH + theme.sizeUnit * 16
       }px);
-    `
-      }
+    `}
 
       /* this is the ParentSize wrapper */
-    & > div:first-of-type {
+      & > div:first-of-type {
         height: 100% !important;
       }
     }
@@ -341,10 +338,8 @@ const StyledDashboardContent = styled.div<{
       }
 
       &.fade-out {
-        box-shadow: ${
-          theme.dashboardTileBoxShadow ??
-          `0 0 0 1px ${addAlpha(theme.colorBorder, 0.5)}`
-        };
+        box-shadow: ${theme.dashboardTileBoxShadow ??
+        `0 0 0 1px ${addAlpha(theme.colorBorder, 0.5)}`};
       }
 
       & .missing-chart-container {
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.test.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.test.tsx
index eed56be697c..d941b9f2324 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.test.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.test.tsx
@@ -75,7 +75,8 @@ const defaultTestFilter = {
 function createTestState(overrides: Record<string, unknown> = {}) {
   const nativeFilterConfig = (
     overrides.dashboardInfo as
-      { metadata?: { native_filter_configuration?: unknown[] } } | undefined
+      | { metadata?: { native_filter_configuration?: unknown[] } }
+      | undefined
   )?.metadata?.native_filter_configuration ?? [defaultTestFilter];
 
   const nativeFiltersMap: Record<string, unknown> = {};
diff --git a/superset-frontend/src/dashboard/components/IconButton.tsx b/superset-frontend/src/dashboard/components/IconButton.tsx
index d497f603a6b..f8652d19820 100644
--- a/superset-frontend/src/dashboard/components/IconButton.tsx
+++ b/superset-frontend/src/dashboard/components/IconButton.tsx
@@ -47,7 +47,8 @@ const StyledDiv = styled.div<{ isDisabled?: boolean }>`
   padding: ${({ theme }) => theme.paddingXXS}px;
   border-radius: ${({ theme }) => theme.borderRadiusXS}px;
 
-  ${({ isDisabled, theme }) => (isDisabled ? disabledCss : activeCss({ theme }))}
+  ${({ isDisabled, theme }) =>
+    isDisabled ? disabledCss : activeCss({ theme })}
 `;
 
 const StyledSpan = styled.span`
diff --git a/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx b/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
index 2f41307ab11..4d3023e72d5 100644
--- a/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
+++ b/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
@@ -30,12 +30,10 @@ const DragHandleContainer = styled.div<{ position: 'left' | 'top' }>`
     height: ${theme.sizeUnit * 5}px;
     overflow: hidden;
     cursor: move;
-    ${
-      position === 'top' &&
-      css`
-        transform: rotate(90deg);
-      `
-    }
+    ${position === 'top' &&
+    css`
+      transform: rotate(90deg);
+    `}
     & path {
       fill: ${theme.colorIcon};
     }
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
index 6727efb263e..ff4a38c5ee6 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.tsx
@@ -537,7 +537,8 @@ const Chart = (props: ChartProps) => {
         actualRowCount = (queriesResponse![0] as JsonObject).rowcount as number;
       } else {
         actualRowCount = (exportFormData as JsonObject)?.row_limit as
-          number | undefined;
+          | number
+          | undefined;
       }
 
       // Handle streaming CSV exports based on row threshold
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Header/Header.tsx b/superset-frontend/src/dashboard/components/gridComponents/Header/Header.tsx
index 04a318770ac..44133f90f65 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Header/Header.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Header/Header.tsx
@@ -43,10 +43,13 @@ export type ComponentType =
   (typeof componentTypes)[keyof typeof componentTypes];
 
 export type HeaderStyleValue =
-  typeof SMALL_HEADER | typeof MEDIUM_HEADER | typeof LARGE_HEADER;
+  | typeof SMALL_HEADER
+  | typeof MEDIUM_HEADER
+  | typeof LARGE_HEADER;
 
 export type BackgroundStyleValue =
-  typeof BACKGROUND_TRANSPARENT | typeof BACKGROUND_WHITE;
+  | typeof BACKGROUND_TRANSPARENT
+  | typeof BACKGROUND_WHITE;
 
 export interface ComponentMeta {
   width?: number;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
index 73dc306152b..7b0c671000b 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
@@ -46,36 +46,32 @@ const ButtonsContainer = styled.div<{ isVertical: boolean }>`
   ${({ theme, isVertical }) => css`
     display: flex;
 
-    ${
-      isVertical
-        ? css`
-            flex-direction: column;
-            align-items: center;
-            position: sticky;
-            z-index: 100;
-            bottom: 0;
-            padding: ${theme.sizeUnit * 4}px;
-            padding-top: ${theme.sizeUnit * 6}px;
-            background: linear-gradient(
-              ${tinycolor(theme.colorBgLayout).setAlpha(0).toRgbString()},
-              ${theme.colorBgContainer} 20%
-            );
-          `
-        : css`
-            align-items: center;
-            margin-left: auto;
-          `
-    }
+    ${isVertical
+      ? css`
+          flex-direction: column;
+          align-items: center;
+          position: sticky;
+          z-index: 100;
+          bottom: 0;
+          padding: ${theme.sizeUnit * 4}px;
+          padding-top: ${theme.sizeUnit * 6}px;
+          background: linear-gradient(
+            ${tinycolor(theme.colorBgLayout).setAlpha(0).toRgbString()},
+            ${theme.colorBgContainer} 20%
+          );
+        `
+      : css`
+          align-items: center;
+          margin-left: auto;
+        `}
   `}
 `;
 
 const applyButtonStyle = (theme: SupersetTheme, isVertical: boolean) => css`
-  ${
-    isVertical &&
-    css`
-      margin-bottom: ${theme.sizeUnit * 3}px;
-    `
-  }
+  ${isVertical &&
+  css`
+    margin-bottom: ${theme.sizeUnit * 3}px;
+  `}
 `;
 
 const clearAllButtonStyle = (theme: SupersetTheme, isVertical: boolean) => css`
@@ -92,13 +88,11 @@ const clearAllButtonStyle = (theme: SupersetTheme, isVertical: boolean) => css`
       color: ${theme.colorTextDisabled};
     }
 
-    ${
-      !isVertical &&
-      css`
-        text-transform: capitalize;
-        font-weight: ${theme.fontWeightNormal};
-      `
-    }
+    ${!isVertical &&
+    css`
+      text-transform: capitalize;
+      font-weight: ${theme.fontWeightNormal};
+    `}
   }
 `;
 
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
index 6083db0380e..fd43a6b4beb 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
@@ -63,16 +63,14 @@ const CrossFilter = (props: {
     <div
       key={`${filter.name}${filter.emitterId}`}
       css={css`
-        ${
-          orientation === FilterBarOrientation.Vertical
-            ? `
+        ${orientation === FilterBarOrientation.Vertical
+          ? `
             display: block;
             margin-bottom: ${theme.sizeUnit * 4}px;
           `
-            : `
+          : `
             display: flex;
-          `
-        }
+          `}
       `}
     >
       <CrossFilterTitle
@@ -91,23 +89,21 @@ const CrossFilter = (props: {
         <div
           data-test="cross-filters-divider"
           css={css`
-            ${
-              orientation === FilterBarOrientation.Horizontal
-                ? `
+            ${orientation === FilterBarOrientation.Horizontal
+              ? `
                 width: 1px;
                 height: 22px;
                 margin-left: ${theme.sizeUnit * 4}px;
                 margin-right: ${theme.sizeUnit}px;
                 flex-shrink: 0;
               `
-                : `
+              : `
                 width: 100%;
                 height: 1px;
                 display: block;
                 margin-bottom: ${theme.sizeUnit * 4}px;
                 margin-top: ${theme.sizeUnit * 4}px;
-            `
-            }
+            `}
             background: ${theme.colorSplit};
           `}
         />
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
index 44467a356f9..81b76579579 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
@@ -67,15 +67,13 @@ const CrossFilterTag = (props: {
   return (
     <StyledTag
       css={css`
-        ${
-          orientation === FilterBarOrientation.Vertical
-            ? `
+        ${orientation === FilterBarOrientation.Vertical
+          ? `
             margin-top: ${theme.sizeUnit * 2}px;
           `
-            : `
+          : `
             margin-left: ${theme.sizeUnit * 2}px;
-          `
-        }
+          `}
       `}
       closable
       onClose={() => removeCrossFilter(filter.emitterId)}
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
index 8b2057d133e..2494779183d 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
@@ -63,11 +63,9 @@ const CrossFilterChartTitle = (props: {
       <Tooltip title={titleIsTruncated ? title : null}>
         <span
           css={css`
-            max-width: ${
-              orientation === FilterBarOrientation.Vertical
-                ? `${theme.sizeUnit * 45}px`
-                : `${theme.sizeUnit * 15}px`
-            };
+            max-width: ${orientation === FilterBarOrientation.Vertical
+              ? `${theme.sizeUnit * 45}px`
+              : `${theme.sizeUnit * 15}px`};
             line-height: 1.4;
             ${ellipsisCss}
           `}
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx
index 7d28b06a5c9..16252e2cfe3 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx
@@ -37,7 +37,8 @@ import FilterControls from './FilterControls';
 const dropdownContainerProps: DropdownContainerProps[] = [];
 const callbackRef: {
   current:
-    ((s: { overflowed: string[]; notOverflowed: string[] }) => void) | null;
+    | ((s: { overflowed: string[]; notOverflowed: string[] }) => void)
+    | null;
 } = { current: null };
 
 // Mock the DropdownContainer subpath rather than the barrel
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/UrlFilterTag.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/UrlFilterTag.tsx
index 432e5b13978..0371deb9997 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/UrlFilterTag.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/UrlFilterTag.tsx
@@ -64,11 +64,9 @@ const UrlFilterTag = (props: {
   return (
     <StyledTag
       css={css`
-        ${
-          orientation === FilterBarOrientation.Vertical
-            ? `margin-top: ${theme.sizeUnit * 2}px;`
-            : `margin-left: ${theme.sizeUnit * 2}px;`
-        }
+        ${orientation === FilterBarOrientation.Vertical
+          ? `margin-top: ${theme.sizeUnit * 2}px;`
+          : `margin-left: ${theme.sizeUnit * 2}px;`}
       `}
       closable
       onClose={() => onRemove(filter)}
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
index a08baa07a72..4686e59c2fd 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
@@ -469,7 +469,8 @@ const FilterBar: FC<FiltersBarProps> = ({
       );
       const pendingItems = (
         Object.values(pendingChartCustomizations).filter(Boolean) as (
-          ChartCustomization | ChartCustomizationDivider
+          | ChartCustomization
+          | ChartCustomizationDivider
         )[]
       ).filter(item => existingCustomizationIds.has(item.id));
 
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
index 9c7ff4dbbcb..ff8e67f2300 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
@@ -1998,12 +1998,10 @@ const FiltersConfigForm = (
                                             iconSize="xl"
                                             iconColor={theme.colorPrimary}
                                             css={css`
-                                              margin-left: ${
-                                                theme.sizeUnit * 2
-                                              }px;
-                                              margin-top: ${
-                                                theme.sizeUnit * 1.5
-                                              }px;
+                                              margin-left: ${theme.sizeUnit *
+                                              2}px;
+                                              margin-top: ${theme.sizeUnit *
+                                              1.5}px;
                                             `}
                                             onClick={() => refreshHandler(true)}
                                           />
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
index e03e5b086bc..de783d13782 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
@@ -44,7 +44,8 @@ export interface ItemStateManager {
   renderedIds: string[];
   setChanges: (
     changes:
-      FilterChangesType | ((prev: FilterChangesType) => FilterChangesType),
+      | FilterChangesType
+      | ((prev: FilterChangesType) => FilterChangesType),
   ) => void;
   setNewIds: (ids: string[]) => void;
   setRemovedItems: (
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
index 3cd2d8a684d..5894c30cdf1 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
@@ -329,7 +329,8 @@ export function useModalSaveLogic({
             ),
           )
           .filter(Boolean) as (
-          ChartCustomization | ChartCustomizationDivider
+          | ChartCustomization
+          | ChartCustomizationDivider
         )[];
 
         saveChanges.customizationChanges = {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.ts
index 6d572566235..1bee2f2d107 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.ts
@@ -43,12 +43,16 @@ type CustomizationFormInput =
   | Divider;
 
 type ChartCustomizationFormOrSaved =
-  ChartCustomizationsFormItem | ChartCustomization;
+  | ChartCustomizationsFormItem
+  | ChartCustomization;
 
 function isFilterType(
   formInputs: CustomizationFormInput,
 ): formInputs is
-  NativeFiltersFormItem | NativeFilterDivider | Filter | Divider {
+  | NativeFiltersFormItem
+  | NativeFilterDivider
+  | Filter
+  | Divider {
   return (
     'type' in formInputs &&
     (formInputs.type === NativeFilterType.NativeFilter ||
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.ts
index d2dca01d0a0..3ceabffc152 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.ts
@@ -48,7 +48,9 @@ type NativeFilterFormOrSaved = NativeFiltersFormItem | Filter;
 function isCustomizationType(
   formInputs: FilterFormInput,
 ): formInputs is
-  ChartCustomizationsFormItem | ChartCustomization | ChartCustomizationDivider {
+  | ChartCustomizationsFormItem
+  | ChartCustomization
+  | ChartCustomizationDivider {
   return (
     'type' in formInputs &&
     (formInputs.type === ChartCustomizationType.ChartCustomization ||
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/state.ts
index a2abf0bfda4..14c92777a84 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/state.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/state.ts
@@ -53,7 +53,10 @@ export const selectFilterConfiguration: (
     return nativeFilterConfig.filter(
       (
         filter:
-          Filter | Divider | ChartCustomization | ChartCustomizationDivider,
+          | Filter
+          | Divider
+          | ChartCustomization
+          | ChartCustomizationDivider,
       ) =>
         filter.type !== 'CHART_CUSTOMIZATION' &&
         filter.type !== 'CHART_CUSTOMIZATION_DIVIDER',
@@ -330,10 +333,12 @@ export function useSelectCustomizationsInScope(
 
   return useMemo(() => {
     let customizationsInScope: (
-      ChartCustomization | ChartCustomizationDivider
+      | ChartCustomization
+      | ChartCustomizationDivider
     )[] = [];
     const customizationsOutOfScope: (
-      ChartCustomization | ChartCustomizationDivider
+      | ChartCustomization
+      | ChartCustomizationDivider
     )[] = [];
 
     // we check customization scopes only on dashboards with tabs
diff --git a/superset-frontend/src/dashboard/containers/DashboardPage.tsx b/superset-frontend/src/dashboard/containers/DashboardPage.tsx
index 6baf36d437a..516b04ba786 100644
--- a/superset-frontend/src/dashboard/containers/DashboardPage.tsx
+++ b/superset-frontend/src/dashboard/containers/DashboardPage.tsx
@@ -221,7 +221,8 @@ export const DashboardPage: FC<PageProps> = ({ idOrSlug }: PageProps) => {
         if (permalinkValue?.state) {
           ({ dataMask, activeTabs, anchor } = permalinkValue.state);
           chartStates = permalinkValue.state.chartStates as
-            DashboardChartStates | undefined;
+            | DashboardChartStates
+            | undefined;
         }
       } else if (nativeFilterKeyValue) {
         dataMask = await getFilterValue(id, nativeFilterKeyValue);
diff --git a/superset-frontend/src/dashboard/reducers/dashboardInfo.ts b/superset-frontend/src/dashboard/reducers/dashboardInfo.ts
index e32d82faa10..d2decf48a3f 100644
--- a/superset-frontend/src/dashboard/reducers/dashboardInfo.ts
+++ b/superset-frontend/src/dashboard/reducers/dashboardInfo.ts
@@ -66,7 +66,8 @@ export interface HydrateDashboardInfoAction {
 }
 
 type DashboardInfoReducerAction =
-  DashboardInfoAction | HydrateDashboardInfoAction;
+  | DashboardInfoAction
+  | HydrateDashboardInfoAction;
 
 type DashboardInfoState = Partial<DashboardInfo> & {
   last_modified_time?: number;
diff --git a/superset-frontend/src/dashboard/reducers/nativeFilters.ts b/superset-frontend/src/dashboard/reducers/nativeFilters.ts
index 598ac3502d3..ae9a87ef455 100644
--- a/superset-frontend/src/dashboard/reducers/nativeFilters.ts
+++ b/superset-frontend/src/dashboard/reducers/nativeFilters.ts
@@ -123,7 +123,10 @@ export default function nativeFilterReducer(
       const existingFilters = state.filters;
 
       type FilterType =
-        Filter | Divider | ChartCustomization | ChartCustomizationDivider;
+        | Filter
+        | Divider
+        | ChartCustomization
+        | ChartCustomizationDivider;
       const mergedFilters: Record<string, FilterType> = {};
 
       Object.entries(incomingFilters).forEach(([id, incomingFilter]) => {
diff --git a/superset-frontend/src/dashboard/types.ts b/superset-frontend/src/dashboard/types.ts
index 67b7704f8ca..3994722fbc8 100644
--- a/superset-frontend/src/dashboard/types.ts
+++ b/superset-frontend/src/dashboard/types.ts
@@ -187,7 +187,8 @@ export type DashboardInfo = {
     map_label_colors: JsonObject;
     cross_filters_enabled: boolean;
     chart_customization_config?: (
-      ChartCustomization | ChartCustomizationDivider
+      | ChartCustomization
+      | ChartCustomizationDivider
     )[];
     timed_refresh_immune_slices?: number[];
     refresh_frequency?: number;
diff --git a/superset-frontend/src/dashboard/util/risonFilters.ts b/superset-frontend/src/dashboard/util/risonFilters.ts
index ba798459b2e..9aa1678c21e 100644
--- a/superset-frontend/src/dashboard/util/risonFilters.ts
+++ b/superset-frontend/src/dashboard/util/risonFilters.ts
@@ -273,7 +273,11 @@ export function risonFiltersToString(filters: RisonFilter[]): string {
   }
 
   type RisonValue =
-    string | number | boolean | (string | number)[] | Record<string, unknown>;
+    | string
+    | number
+    | boolean
+    | (string | number)[]
+    | Record<string, unknown>;
   const risonObject: Record<string, RisonValue> = {};
   const notObject: Record<string, RisonValue> = {};
 
diff --git a/superset-frontend/src/dataMask/reducer.ts b/superset-frontend/src/dataMask/reducer.ts
index 0d484d3c707..6f69d6bec78 100644
--- a/superset-frontend/src/dataMask/reducer.ts
+++ b/superset-frontend/src/dataMask/reducer.ts
@@ -126,7 +126,7 @@ function fillNativeFilters(
       !(
         // Treat all-null arrays (range filters use [null, null] as their
         // canonical cleared value) and empty arrays as "no value".
-        Array.isArray(loadedValue) && loadedValue.every(v => v === null)
+        (Array.isArray(loadedValue) && loadedValue.every(v => v === null))
       );
     const loadedHasExtraFormData =
       !!loaded?.extraFormData && Object.keys(loaded.extraFormData).length > 0;
diff --git a/superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx b/superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
index 4fe09baa23d..cebd240e42c 100644
--- a/superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
+++ b/superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
@@ -249,7 +249,8 @@ export const exploreCollisionDetection: CollisionDetection = args => {
     const activeContainerId = getSortableContainerId(args.active.data.current);
     const sortableContainers = args.droppableContainers.filter(container => {
       const data = container.data.current as
-        Partial<ActiveDragData> | undefined;
+        | Partial<ActiveDragData>
+        | undefined;
       if (!isReorderDrag(data)) {
         return false;
       }
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/types.ts b/superset-frontend/src/explore/components/controls/ColumnConfigControl/types.ts
index 0f42e232baa..c77a7fe408a 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/types.ts
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/types.ts
@@ -29,9 +29,7 @@ import { ControlFormItemComponents } from './ControlForm';
  * Column formatting configs.
  */
 export type ColumnConfig = {
-  [
-    key in SharedColumnConfigProp
-  ]?: (typeof SHARED_COLUMN_CONFIG_PROPS)[key]['value'];
+  [key in SharedColumnConfigProp]?: (typeof SHARED_COLUMN_CONFIG_PROPS)[key]['value'];
 } & Record<string, StrictJsonValue>;
 
 /**
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/types.ts b/superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
index cdc016c63ce..e06c5409cce 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
@@ -22,10 +22,22 @@ export type SelectOptionType = {
 };
 
 export type FrameType =
-  'Common' | 'Calendar' | 'Current' | 'Custom' | 'Advanced' | 'No filter';
+  | 'Common'
+  | 'Calendar'
+  | 'Current'
+  | 'Custom'
+  | 'Advanced'
+  | 'No filter';
 
 export type DateTimeGrainType =
-  'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
+  | 'second'
+  | 'minute'
+  | 'hour'
+  | 'day'
+  | 'week'
+  | 'month'
+  | 'quarter'
+  | 'year';
 
 export type CustomRangeKey =
   | 'sinceMode'
@@ -60,7 +72,11 @@ export type CustomRangeDecodeType = {
 };
 
 export type CommonRangeType =
-  'Last day' | 'Last week' | 'Last month' | 'Last quarter' | 'Last year';
+  | 'Last day'
+  | 'Last week'
+  | 'Last month'
+  | 'Last quarter'
+  | 'Last year';
 
 export const PreviousCalendarWeek = 'previous calendar week';
 export const PreviousCalendarMonth = 'previous calendar month';
diff --git a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
index 0750ef6b926..584468f7e85 100644
--- a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
+++ b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.tsx
@@ -229,7 +229,8 @@ function AdhocFilterEditPopover({
       loadLayerOptions(0, 100).then(result => {
         setLayerOptions(result.data);
         const layerFilterScope = propsAdhocFilter?.layerFilterScope as
-          number[] | undefined;
+          | number[]
+          | undefined;
         if (layerFilterScope) {
           const layers = layerFilterScope
             .map(item => result.data.find(option => option.value === item))
diff --git a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
index 5a6b4e44a1e..a976fd82193 100644
--- a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
+++ b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
@@ -83,7 +83,10 @@ export interface MetricColumnType {
 }
 
 export type ColumnType =
-  ColumnMeta | SimpleExpressionType | SQLExpressionType | MetricColumnType;
+  | ColumnMeta
+  | SimpleExpressionType
+  | SQLExpressionType
+  | MetricColumnType;
 
 export interface Props {
   adhocFilter: AdhocFilter;
diff --git a/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsPopoverContent.tsx b/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsPopoverContent.tsx
index 60dbec50f62..f59c00704c7 100644
--- a/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsPopoverContent.tsx
+++ b/superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsPopoverContent.tsx
@@ -301,7 +301,8 @@ export const LayerConfigsPopoverContent: FC<
       const wfsParser = new WfsDataParser();
       try {
         let requestParams: RequestParams1_1_0 | RequestParams2_0_0 = {} as
-          RequestParams1_1_0 | RequestParams2_0_0;
+          | RequestParams1_1_0
+          | RequestParams2_0_0;
         if (conf.version.startsWith('1.')) {
           requestParams = {
             version: conf.version as RequestParams1_1_0['version'],
diff --git a/superset-frontend/src/explore/components/controls/SelectControl.tsx b/superset-frontend/src/explore/components/controls/SelectControl.tsx
index c07627fefe2..9587fa43453 100644
--- a/superset-frontend/src/explore/components/controls/SelectControl.tsx
+++ b/superset-frontend/src/explore/components/controls/SelectControl.tsx
@@ -102,7 +102,8 @@ export const areAllValuesNumbers = (
 };
 
 type SortComparator =
-  ((a: SelectOption, b: SelectOption) => number) | undefined;
+  | ((a: SelectOption, b: SelectOption) => number)
+  | undefined;
 
 export const getSortComparator = (
   choices: unknown[] | undefined,
diff --git a/superset-frontend/src/explore/components/controls/TextAreaControl.tsx b/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
index 64afeb0103d..753b6fd8e73 100644
--- a/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
+++ b/superset-frontend/src/explore/components/controls/TextAreaControl.tsx
@@ -47,11 +47,23 @@ interface TextAreaControlProps {
   maxLines?: number;
   offerEditInModal?: boolean;
   language?:
-    'json' | 'html' | 'sql' | 'markdown' | 'javascript' | 'handlebars' | null;
+    | 'json'
+    | 'html'
+    | 'sql'
+    | 'markdown'
+    | 'javascript'
+    | 'handlebars'
+    | null;
   aboveEditorSection?: React.ReactNode;
   readOnly?: boolean;
   resize?:
-    'block' | 'both' | 'horizontal' | 'inline' | 'none' | 'vertical' | null;
+    | 'block'
+    | 'both'
+    | 'horizontal'
+    | 'inline'
+    | 'none'
+    | 'vertical'
+    | null;
   textAreaStyles?: React.CSSProperties;
   tooltipOptions?: Record<string, unknown>;
   hotkeys?: HotkeyConfig[];
diff --git a/superset-frontend/src/explore/components/controls/VerticalRadioControl.tsx b/superset-frontend/src/explore/components/controls/VerticalRadioControl.tsx
index 306706878c8..ee382d7faf9 100644
--- a/superset-frontend/src/explore/components/controls/VerticalRadioControl.tsx
+++ b/superset-frontend/src/explore/components/controls/VerticalRadioControl.tsx
@@ -86,11 +86,9 @@ export default function VerticalRadioControl({
                       css={css`
                         margin-left: 4px;
                         font-size: 12px;
-                        color: ${
-                          disabled
-                            ? theme.colorTextDisabled
-                            : theme.colorTextTertiary
-                        };
+                        color: ${disabled
+                          ? theme.colorTextDisabled
+                          : theme.colorTextTertiary};
                         cursor: help;
                       `}
                     />
diff --git a/superset-frontend/src/explore/components/controls/VizTypeControl/VizTile.tsx b/superset-frontend/src/explore/components/controls/VizTypeControl/VizTile.tsx
index 19a42490f31..42b750e4925 100644
--- a/superset-frontend/src/explore/components/controls/VizTypeControl/VizTile.tsx
+++ b/superset-frontend/src/explore/components/controls/VizTypeControl/VizTile.tsx
@@ -97,34 +97,30 @@ export const VizTile = ({
           white-space: nowrap;
           overflow: hidden;
           max-width: fit-content;
-          ${
-            !isActive &&
-            css`
-              flex-shrink: 0;
-              width: ${theme.sizeUnit * 6}px;
-              background-color: transparent;
-              transition: none;
-              &:hover svg path {
-                fill: ${theme.colorPrimary};
-                transition: fill ${theme.motionDurationMid} ease-out;
-              }
-            `
-          }
+          ${!isActive &&
+          css`
+            flex-shrink: 0;
+            width: ${theme.sizeUnit * 6}px;
+            background-color: transparent;
+            transition: none;
+            &:hover svg path {
+              fill: ${theme.colorPrimary};
+              transition: fill ${theme.motionDurationMid} ease-out;
+            }
+          `}
 
-          ${
-            isActive &&
-            css`
-              width: 100%;
-              background-color: ${theme.colorBgLayout};
-              transition:
-                width ${TILE_TRANSITION_TIME} ease-out,
-                background-color ${TILE_TRANSITION_TIME} ease-out;
-              cursor: default;
-              svg path {
-                fill: ${theme.colorPrimary};
-              }
-            `
-          }
+          ${isActive &&
+          css`
+            width: 100%;
+            background-color: ${theme.colorBgLayout};
+            transition:
+              width ${TILE_TRANSITION_TIME} ease-out,
+              background-color ${TILE_TRANSITION_TIME} ease-out;
+            cursor: default;
+            svg path {
+              fill: ${theme.colorPrimary};
+            }
+          `}
         `}
       >
         <span
diff --git a/superset-frontend/src/explore/components/useExploreAdditionalActionsMenu/index.tsx b/superset-frontend/src/explore/components/useExploreAdditionalActionsMenu/index.tsx
index 9b21454b467..3e48c864e19 100644
--- a/superset-frontend/src/explore/components/useExploreAdditionalActionsMenu/index.tsx
+++ b/superset-frontend/src/explore/components/useExploreAdditionalActionsMenu/index.tsx
@@ -303,7 +303,8 @@ export const useExploreAdditionalActionsMenu = (
   onOpenPropertiesModal: () => void,
   ownState: OwnStateWithClientView | undefined,
   dashboards:
-    NonNullable<ExplorePageInitialData['metadata']>['dashboards'] | undefined,
+    | NonNullable<ExplorePageInitialData['metadata']>['dashboards']
+    | undefined,
   showReportModal: () => void,
   setCurrentReportDeleting: Dispatch<SetStateAction<ReportObject | null>>,
   ...rest: MenuProps[]
diff --git a/superset-frontend/src/explore/controlUtils/standardizedFormData.ts b/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
index 0ff3dc9335b..be65ecb7699 100644
--- a/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
+++ b/superset-frontend/src/explore/controlUtils/standardizedFormData.ts
@@ -167,7 +167,8 @@ export class StandardizedFormData {
     controlsState: Record<string, unknown>,
   ): void {
     const control = controlsState?.time_compare as
-      { value?: unknown; choices?: unknown } | undefined;
+      | { value?: unknown; choices?: unknown }
+      | undefined;
     if (!control || !Array.isArray(control.value)) {
       return;
     }
diff --git a/superset-frontend/src/explore/types.ts b/superset-frontend/src/explore/types.ts
index cb0ce75c80c..99518dc4eb6 100644
--- a/superset-frontend/src/explore/types.ts
+++ b/superset-frontend/src/explore/types.ts
@@ -41,7 +41,11 @@ export enum ChartStatusType {
 }
 
 export type ChartStatus =
-  'loading' | 'rendered' | 'failed' | 'stopped' | 'success';
+  | 'loading'
+  | 'rendered'
+  | 'failed'
+  | 'stopped'
+  | 'success';
 
 export interface ChartState {
   id: number;
diff --git a/superset-frontend/src/features/alerts/AlertReportModal.tsx b/superset-frontend/src/features/alerts/AlertReportModal.tsx
index 89e9dffc966..66fc166500d 100644
--- a/superset-frontend/src/features/alerts/AlertReportModal.tsx
+++ b/superset-frontend/src/features/alerts/AlertReportModal.tsx
@@ -1603,7 +1603,12 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
   const onChangeDashboardFilterValue = (
     idx: number,
     filterValues:
-      SelectValue | SelectValue[] | string | string[] | number | number[],
+      | SelectValue
+      | SelectValue[]
+      | string
+      | string[]
+      | number
+      | number[],
   ) => {
     let values: any;
     if (typeof filterValues === 'string') {
@@ -1772,10 +1777,12 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
   };
   const validateContentSection = () => {
     const errors = [];
-    if (!(
-      (contentType === ContentType.Dashboard && !!currentAlert?.dashboard) ||
-      (contentType === ContentType.Chart && !!currentAlert?.chart)
-    )) {
+    if (
+      !(
+        (contentType === ContentType.Dashboard && !!currentAlert?.dashboard) ||
+        (contentType === ContentType.Chart && !!currentAlert?.chart)
+      )
+    ) {
       errors.push(TRANSLATIONS.CONTENT_ERROR_TEXT);
     }
 
@@ -1810,11 +1817,13 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
     if (!currentAlert?.sql?.length) {
       errors.push(TRANSLATIONS.SQL_ERROR_TEXT);
     }
-    if (!(
-      (conditionNotNull || !!currentAlert?.validator_config_json?.op) &&
-      (conditionNotNull ||
-        currentAlert?.validator_config_json?.threshold !== undefined)
-    )) {
+    if (
+      !(
+        (conditionNotNull || !!currentAlert?.validator_config_json?.op) &&
+        (conditionNotNull ||
+          currentAlert?.validator_config_json?.threshold !== undefined)
+      )
+    ) {
       errors.push(TRANSLATIONS.ALERT_CONDITION_ERROR_TEXT);
     }
     updateValidationStatus(Sections.Alert, errors);
diff --git a/superset-frontend/src/features/databases/UploadDataModel/index.tsx b/superset-frontend/src/features/databases/UploadDataModel/index.tsx
index 0b58a3cdcea..5bf0d23baad 100644
--- a/superset-frontend/src/features/databases/UploadDataModel/index.tsx
+++ b/superset-frontend/src/features/databases/UploadDataModel/index.tsx
@@ -439,10 +439,13 @@ const UploadDataModal: FunctionComponent<UploadDataModalProps> = ({
   const appendFormData = (formData: FormData, data: Record<string, any>) => {
     const allFieldsNotInType = getAllFieldsNotInType();
     Object.entries(data).forEach(([key, value]) => {
-      if (!(
-        allFieldsNotInType.includes(key) ||
-        (NonNullFields.includes(key) && (value === undefined || value === null))
-      )) {
+      if (
+        !(
+          allFieldsNotInType.includes(key) ||
+          (NonNullFields.includes(key) &&
+            (value === undefined || value === null))
+        )
+      ) {
         formData.append(key, value);
       }
     });
diff --git a/superset-frontend/src/features/databases/types.ts b/superset-frontend/src/features/databases/types.ts
index fcb5302e73f..162980f7f81 100644
--- a/superset-frontend/src/features/databases/types.ts
+++ b/superset-frontend/src/features/databases/types.ts
@@ -282,7 +282,8 @@ type CustomHTMLTextAreaElement = Omit<
   CustomTextType;
 
 export type CustomParametersChangeType<T = CustomTextType> =
-  FormEvent<InputProps> | { target: T };
+  | FormEvent<InputProps>
+  | { target: T };
 
 export type CustomEventHandlerType = EventHandler<
   ChangeEvent<CustomHTMLInputElement | CustomHTMLTextAreaElement>
diff --git a/superset-frontend/src/features/home/ActivityTable.tsx b/superset-frontend/src/features/home/ActivityTable.tsx
index 7cce8a0bc32..e71006a3adb 100644
--- a/superset-frontend/src/features/home/ActivityTable.tsx
+++ b/superset-frontend/src/features/home/ActivityTable.tsx
@@ -48,7 +48,11 @@ interface RecentDashboard extends RecentActivity {
  * Recent activity objects fetched by `getRecentActivityObjs`.
  */
 type ActivityObject =
-  RecentSlice | RecentDashboard | Chart | Dashboard | SavedQueryObject;
+  | RecentSlice
+  | RecentDashboard
+  | Chart
+  | Dashboard
+  | SavedQueryObject;
 
 interface ActivityProps {
   user: {
diff --git a/superset-frontend/src/features/home/RightMenu.tsx b/superset-frontend/src/features/home/RightMenu.tsx
index 9e69b469e80..2207f9d6c6d 100644
--- a/superset-frontend/src/features/home/RightMenu.tsx
+++ b/superset-frontend/src/features/home/RightMenu.tsx
@@ -104,12 +104,10 @@ const StyledMenuItem = styled.div<{ disabled?: boolean }>`
       color: ${!disabled && theme.colorPrimary};
       cursor: ${!disabled ? 'pointer' : 'not-allowed'};
     }
-    ${
-      disabled &&
-      css`
-        color: ${theme.colorTextDisabled};
-      `
-    }
+    ${disabled &&
+    css`
+      color: ${theme.colorTextDisabled};
+    `}
   `}
 `;
 
diff --git a/superset-frontend/src/middleware/loggerMiddleware.ts b/superset-frontend/src/middleware/loggerMiddleware.ts
index 841ac9af604..f4627df0272 100644
--- a/superset-frontend/src/middleware/loggerMiddleware.ts
+++ b/superset-frontend/src/middleware/loggerMiddleware.ts
@@ -34,7 +34,11 @@ import type { DashboardInfo, DashboardLayoutState } from '../dashboard/types';
 import type { QueryEditor } from '../SqlLab/types';
 
 type LogEventSource =
-  'dashboard' | 'embedded_dashboard' | 'explore' | 'sqlLab' | 'slice';
+  | 'dashboard'
+  | 'embedded_dashboard'
+  | 'explore'
+  | 'sqlLab'
+  | 'slice';
 
 interface LogEventData {
   source?: LogEventSource;
diff --git a/superset-frontend/src/pages/Chart/index.tsx b/superset-frontend/src/pages/Chart/index.tsx
index 4de2b6b712e..97d443b83ec 100644
--- a/superset-frontend/src/pages/Chart/index.tsx
+++ b/superset-frontend/src/pages/Chart/index.tsx
@@ -307,7 +307,8 @@ export default function ExplorePage() {
   useEffect(() => {
     const unlisten = history.listen((loc: Location, action: Action) => {
       const saveAction = (loc.state as Record<string, unknown>)?.saveAction as
-        SaveActionType | undefined;
+        | SaveActionType
+        | undefined;
       if (action === 'PUSH' || action === 'POP') {
         setIsLoaded(false);
         loadExploreData(loc, saveAction);
diff --git a/superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx b/superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx
index 40c8a4c469d..f7d1942f850 100644
--- a/superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx
+++ b/superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx
@@ -145,8 +145,8 @@ const MAX_CONSUMER_POLL_ATTEMPTS = 50;
 // setTimeout, and inline consumer calls deadlock Jest).
 const setupLaunchQueue = (fileHandle: MockFileHandle | null = null) => {
   let savedConsumer:
-    ((params: { files?: MockFileHandle[] }) => void | Promise<void>) | null =
-    null;
+    | ((params: { files?: MockFileHandle[] }) => void | Promise<void>)
+    | null = null;
   (window as unknown as Window & { launchQueue: LaunchQueue }).launchQueue = {
     setConsumer: (consumer: (params: { files?: MockFileHandle[] }) => void) => {
       savedConsumer = consumer;
diff --git a/superset-frontend/src/pages/FileHandler/index.test.tsx b/superset-frontend/src/pages/FileHandler/index.test.tsx
index 18d66bce3e7..b51149daaa0 100644
--- a/superset-frontend/src/pages/FileHandler/index.test.tsx
+++ b/superset-frontend/src/pages/FileHandler/index.test.tsx
@@ -124,8 +124,8 @@ const consumerPromises: Promise<void>[] = [];
 // MessageChannel mock in jsDomWithFetchAPI forces React to schedule via setTimeout.
 const setupLaunchQueue = (fileHandle: MockFileHandle | null = null) => {
   let savedConsumer:
-    ((params: { files?: MockFileHandle[] }) => void | Promise<void>) | null =
-    null;
+    | ((params: { files?: MockFileHandle[] }) => void | Promise<void>)
+    | null = null;
   (window as unknown as Window & { launchQueue: LaunchQueue }).launchQueue = {
     setConsumer: (consumer: (params: { files?: MockFileHandle[] }) => void) => {
       savedConsumer = consumer;
diff --git a/superset-frontend/src/setup/setupApp.ts b/superset-frontend/src/setup/setupApp.ts
index 3a03d3d1839..b72b5ecdfc8 100644
--- a/superset-frontend/src/setup/setupApp.ts
+++ b/superset-frontend/src/setup/setupApp.ts
@@ -62,14 +62,14 @@ function toggleCheckbox(apiUrlPrefix: string, selector: string) {
 
 export default function setupApp() {
   $(document).ready(function () {
-    $(':checkbox[data-checkbox-api-prefix]').change(function (
-      this: HTMLElement,
-    ) {
-      const $this = $(this);
-      const prefix = $this.data('checkbox-api-prefix');
-      const id = $this.attr('id');
-      toggleCheckbox(prefix, `#${id}`);
-    });
+    $(':checkbox[data-checkbox-api-prefix]').change(
+      function (this: HTMLElement) {
+        const $this = $(this);
+        const prefix = $this.data('checkbox-api-prefix');
+        const id = $this.attr('id');
+        toggleCheckbox(prefix, `#${id}`);
+      },
+    );
 
     // for language picker dropdown
     $<HTMLAnchorElement>('#language-picker a').click(function (
diff --git a/superset-frontend/src/views/CRUD/types.ts b/superset-frontend/src/views/CRUD/types.ts
index b2900e5153c..83fef7ab1f6 100644
--- a/superset-frontend/src/views/CRUD/types.ts
+++ b/superset-frontend/src/views/CRUD/types.ts
@@ -137,7 +137,12 @@ export enum QueryObjectColumns {
 }
 
 export type ImportResourceName =
-  'chart' | 'dashboard' | 'database' | 'dataset' | 'saved_query' | 'theme';
+  | 'chart'
+  | 'dashboard'
+  | 'database'
+  | 'dataset'
+  | 'saved_query'
+  | 'theme';
 
 export interface Tag {
   changed_on_delta_humanized: string;
diff --git a/superset-frontend/src/views/CRUD/utils.tsx b/superset-frontend/src/views/CRUD/utils.tsx
index baff54d29a9..1c2ec46393f 100644
--- a/superset-frontend/src/views/CRUD/utils.tsx
+++ b/superset-frontend/src/views/CRUD/utils.tsx
@@ -294,7 +294,8 @@ const createFetchSubjectRelation =
         ...result,
         data: result.data.flatMap(item => {
           const secondaryLabel = item.extra?.secondary_label as
-            string | undefined;
+            | string
+            | undefined;
           const type = item.extra?.type as number | undefined;
           const value = normalizeSubjectToPickerValue({
             value: item.value,