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

jli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new dbf5e1f1314 feat(theme): use IBM Plex Mono for code and numerical 
displays (#37366)
dbf5e1f1314 is described below

commit dbf5e1f1314735dd5e19c6d244cf6bebb38a77a0
Author: Jean Massucatto <[email protected]>
AuthorDate: Thu Feb 12 14:32:41 2026 -0300

    feat(theme): use IBM Plex Mono for code and numerical displays (#37366)
    
    Co-authored-by: Mehmet Salih Yavuz <[email protected]>
    Co-authored-by: Claude Opus 4.6 <[email protected]>
---
 docs/package.json                                  |   1 +
 docs/yarn.lock                                     |   5 +
 superset-frontend/package-lock.json                | 375 +--------------------
 superset-frontend/package.json                     |   1 +
 .../packages/superset-core/package.json            |   2 +-
 .../superset-core/src/ui/theme/GlobalStyles.tsx    |   6 +-
 .../superset-core/src/ui/theme/Theme.test.tsx      |   2 +-
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |  15 +
 .../src/components/AsyncAceEditor/index.tsx        |   5 +-
 .../src/components/Label/Label.test.tsx            |   5 +
 .../src/SqlLab/components/ResultSet/index.tsx      |   1 +
 .../src/components/RowCountLabel/index.tsx         |   2 +-
 .../src/pages/ExecutionLogList/index.tsx           |  12 +-
 superset/config.py                                 |   2 +-
 14 files changed, 62 insertions(+), 372 deletions(-)

diff --git a/docs/package.json b/docs/package.json
index 914919716ec..729ff7101af 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -48,6 +48,7 @@
     "@emotion/react": "^11.13.3",
     "@emotion/styled": "^11.14.1",
     "@fontsource/fira-code": "^5.2.7",
+    "@fontsource/ibm-plex-mono": "^5.2.7",
     "@fontsource/inter": "^5.2.8",
     "@mdx-js/react": "^3.1.1",
     "@saucelabs/theme-github-codeblock": "^0.3.0",
diff --git a/docs/yarn.lock b/docs/yarn.lock
index b8e15b6fdc0..895c7ecc231 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -2446,6 +2446,11 @@
   resolved 
"https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.2.7.tgz";
   integrity 
sha512-tnB9NNund9TwIym8/7DMJe573nlPEQb+fKUV5GL8TBYXjIhDvL0D7mgmNVNQUPhXp+R7RylQeiBdkA4EbOHPGQ==
 
+"@fontsource/ibm-plex-mono@^5.2.7":
+  version "5.2.7"
+  resolved 
"https://registry.yarnpkg.com/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.2.7.tgz#ef5b6f052115fdf6666208a5f8a0f13fcd7ba1fd";
+  integrity 
sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==
+
 "@fontsource/inter@^5.2.8":
   version "5.2.8"
   resolved "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.8.tgz";
diff --git a/superset-frontend/package-lock.json 
b/superset-frontend/package-lock.json
index 8107c27018b..235a1ac45fa 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -28,6 +28,7 @@
         "@emotion/cache": "^11.4.0",
         "@emotion/react": "^11.14.0",
         "@emotion/styled": "^11.14.1",
+        "@fontsource/ibm-plex-mono": "^5.2.7",
         "@luma.gl/constants": "~9.2.5",
         "@luma.gl/core": "~9.2.5",
         "@luma.gl/engine": "~9.2.5",
@@ -4032,12 +4033,11 @@
         }
       }
     },
-    "node_modules/@fontsource/fira-code": {
+    "node_modules/@fontsource/ibm-plex-mono": {
       "version": "5.2.7",
-      "resolved": 
"https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.2.7.tgz";,
-      "integrity": 
"sha512-tnB9NNund9TwIym8/7DMJe573nlPEQb+fKUV5GL8TBYXjIhDvL0D7mgmNVNQUPhXp+R7RylQeiBdkA4EbOHPGQ==",
+      "resolved": 
"https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.2.7.tgz";,
+      "integrity": 
"sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==",
       "license": "OFL-1.1",
-      "peer": true,
       "funding": {
         "url": "https://github.com/sponsors/ayuhito";
       }
@@ -14452,18 +14452,6 @@
         "@types/node": "*"
       }
     },
-    "node_modules/@types/cheerio": {
-      "version": "0.22.35",
-      "resolved": 
"https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.35.tgz";,
-      "integrity": 
"sha512-yD57BchKRvTV+JD53UZ6PD8KWY5g5rvvMLRnZR3EQBCZXiDT/HR+pKpMzFGlWNhFrXlo7VPZXtKvIEwZkAWOIA==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
     "node_modules/@types/chroma-js": {
       "version": "2.4.5",
       "resolved": 
"https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.4.5.tgz";,
@@ -15705,20 +15693,6 @@
         "@types/node": "*"
       }
     },
-    "node_modules/@types/webpack": {
-      "version": "5.28.5",
-      "resolved": 
"https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz";,
-      "integrity": 
"sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "@types/node": "*",
-        "tapable": "^2.2.0",
-        "webpack": "^5"
-      }
-    },
     "node_modules/@types/webpack-sources": {
       "version": "3.2.3",
       "resolved": 
"https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz";,
@@ -17815,8 +17789,7 @@
       "version": "1.43.6",
       "resolved": 
"https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.6.tgz";,
       "integrity": 
"sha512-L1ddibQ7F3vyXR2k2fg+I8TQTPWVA6CKeDQr/h2+8CeyTp3W6EQL8xNFZRTztuP8xNOAqL3IYPqdzs31GCjDvg==",
-      "license": "BSD-3-Clause",
-      "peer": true
+      "license": "BSD-3-Clause"
     },
     "node_modules/acorn": {
       "version": "7.4.1",
@@ -18267,29 +18240,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/array.prototype.filter": {
-      "version": "1.0.4",
-      "resolved": 
"https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz";,
-      "integrity": 
"sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "call-bind": "^1.0.7",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.23.2",
-        "es-array-method-boxes-properly": "^1.0.0",
-        "es-object-atoms": "^1.0.0",
-        "is-string": "^1.0.7"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/array.prototype.findlast": {
       "version": "1.2.5",
       "resolved": 
"https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz";,
@@ -23498,15 +23448,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/discontinuous-range": {
-      "version": "1.0.0",
-      "resolved": 
"https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz";,
-      "integrity": 
"sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/distributions": {
       "version": "2.2.0",
       "resolved": 
"https://registry.npmjs.org/distributions/-/distributions-2.2.0.tgz";,
@@ -24103,87 +24044,6 @@
         "node": ">=4"
       }
     },
-    "node_modules/enzyme": {
-      "version": "3.11.0",
-      "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz";,
-      "integrity": 
"sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "array.prototype.flat": "^1.2.3",
-        "cheerio": "^1.0.0-rc.3",
-        "enzyme-shallow-equal": "^1.0.1",
-        "function.prototype.name": "^1.1.2",
-        "has": "^1.0.3",
-        "html-element-map": "^1.2.0",
-        "is-boolean-object": "^1.0.1",
-        "is-callable": "^1.1.5",
-        "is-number-object": "^1.0.4",
-        "is-regex": "^1.0.5",
-        "is-string": "^1.0.5",
-        "is-subset": "^0.1.1",
-        "lodash.escape": "^4.0.1",
-        "lodash.isequal": "^4.5.0",
-        "object-inspect": "^1.7.0",
-        "object-is": "^1.0.2",
-        "object.assign": "^4.1.0",
-        "object.entries": "^1.1.1",
-        "object.values": "^1.1.1",
-        "raf": "^3.4.1",
-        "rst-selector-parser": "^2.2.3",
-        "string.prototype.trim": "^1.2.1"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/enzyme-shallow-equal": {
-      "version": "1.0.7",
-      "resolved": 
"https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz";,
-      "integrity": 
"sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "hasown": "^2.0.0",
-        "object-is": "^1.1.5"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
-    "node_modules/enzyme-to-json": {
-      "version": "3.6.2",
-      "resolved": 
"https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz";,
-      "integrity": 
"sha512-Ynm6Z6R6iwQ0g2g1YToz6DWhxVnt8Dy1ijR2zynRKxTyBGA8rCDXU3rs2Qc4OKvUvc2Qoe1bcFK6bnPs20TrTg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "@types/cheerio": "^0.22.22",
-        "lodash": "^4.17.21",
-        "react-is": "^16.12.0"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      },
-      "peerDependencies": {
-        "enzyme": "^3.4.0"
-      }
-    },
-    "node_modules/enzyme-to-json/node_modules/react-is": {
-      "version": "16.13.1",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz";,
-      "integrity": 
"sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/err-code": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz";,
@@ -29079,22 +28939,6 @@
         "safe-buffer": "~5.1.0"
       }
     },
-    "node_modules/html-element-map": {
-      "version": "1.3.1",
-      "resolved": 
"https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz";,
-      "integrity": 
"sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "array.prototype.filter": "^1.0.0",
-        "call-bind": "^1.0.2"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/ljharb";
-      }
-    },
     "node_modules/html-encoding-sniffer": {
       "version": "6.0.0",
       "resolved": 
"https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz";,
@@ -30630,15 +30474,6 @@
         "url": "https://github.com/sponsors/ljharb";
       }
     },
-    "node_modules/is-subset": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz";,
-      "integrity": 
"sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/is-symbol": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz";,
@@ -34695,15 +34530,15 @@
       }
     },
     "node_modules/jsdom/node_modules/@noble/hashes": {
-      "version": "2.0.1",
-      "resolved": 
"https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz";,
-      "integrity": 
"sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==",
+      "version": "1.8.0",
+      "resolved": 
"https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz";,
+      "integrity": 
"sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
       "dev": true,
       "license": "MIT",
       "optional": true,
       "peer": true,
       "engines": {
-        "node": ">= 20.19.0"
+        "node": "^14.21.3 || >=16"
       },
       "funding": {
         "url": "https://paulmillr.com/funding/";
@@ -36450,15 +36285,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/lodash.escape": {
-      "version": "4.0.1",
-      "resolved": 
"https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz";,
-      "integrity": 
"sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/lodash.flattendeep": {
       "version": "4.4.0",
       "resolved": 
"https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";,
@@ -36662,17 +36488,6 @@
         "yallist": "^3.0.2"
       }
     },
-    "node_modules/luxon": {
-      "version": "3.7.1",
-      "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.1.tgz";,
-      "integrity": 
"sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==",
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
     "node_modules/lz-string": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz";,
@@ -38052,15 +37867,6 @@
       "integrity": 
"sha512-2I8/T3X/hLxB2oPHgqcNYUVdA/ZEFShT7IAujifIPMfKkNbLOqY8XCoyHCXrsdjb36dW9MwoTwBCFpXKMwNwaQ==",
       "license": "MIT"
     },
-    "node_modules/moo": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz";,
-      "integrity": 
"sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
-      "dev": true,
-      "license": "BSD-3-Clause",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/mousetrap": {
       "version": "1.6.5",
       "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz";,
@@ -38210,40 +38016,6 @@
       "integrity": 
"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
       "license": "MIT"
     },
-    "node_modules/nearley": {
-      "version": "2.20.1",
-      "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz";,
-      "integrity": 
"sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "commander": "^2.19.0",
-        "moo": "^0.5.0",
-        "railroad-diagrams": "^1.0.0",
-        "randexp": "0.4.6"
-      },
-      "bin": {
-        "nearley-railroad": "bin/nearley-railroad.js",
-        "nearley-test": "bin/nearley-test.js",
-        "nearley-unparse": "bin/nearley-unparse.js",
-        "nearleyc": "bin/nearleyc.js"
-      },
-      "funding": {
-        "type": "individual",
-        "url": "https://nearley.js.org/#give-to-nearley";
-      }
-    },
-    "node_modules/nearley/node_modules/commander": {
-      "version": "2.20.3",
-      "resolved": 
"https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";,
-      "integrity": 
"sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/negotiator": {
       "version": "0.6.3",
       "resolved": 
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz";,
@@ -41657,31 +41429,6 @@
         "performance-now": "^2.1.0"
       }
     },
-    "node_modules/railroad-diagrams": {
-      "version": "1.0.0",
-      "resolved": 
"https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz";,
-      "integrity": 
"sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==",
-      "dev": true,
-      "license": "CC0-1.0",
-      "optional": true,
-      "peer": true
-    },
-    "node_modules/randexp": {
-      "version": "0.4.6",
-      "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz";,
-      "integrity": 
"sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "discontinuous-range": "1.0.0",
-        "ret": "~0.1.10"
-      },
-      "engines": {
-        "node": ">=0.12"
-      }
-    },
     "node_modules/randombytes": {
       "version": "2.1.0",
       "resolved": 
"https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";,
@@ -43108,21 +42855,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/react-shallow-renderer": {
-      "version": "16.15.0",
-      "resolved": 
"https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz";,
-      "integrity": 
"sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "object-assign": "^4.1.1",
-        "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
-      },
-      "peerDependencies": {
-        "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
-      }
-    },
     "node_modules/react-sortable-hoc": {
       "version": "2.0.0",
       "resolved": 
"https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz";,
@@ -43165,31 +42897,6 @@
         "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0"
       }
     },
-    "node_modules/react-test-renderer": {
-      "version": "17.0.2",
-      "resolved": 
"https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz";,
-      "integrity": 
"sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "object-assign": "^4.1.1",
-        "react-is": "^17.0.2",
-        "react-shallow-renderer": "^16.13.1",
-        "scheduler": "^0.20.2"
-      },
-      "peerDependencies": {
-        "react": "17.0.2"
-      }
-    },
-    "node_modules/react-test-renderer/node_modules/react-is": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz";,
-      "integrity": 
"sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
-      "license": "MIT",
-      "optional": true,
-      "peer": true
-    },
     "node_modules/react-transition-group": {
       "version": "4.4.5",
       "resolved": 
"https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz";,
@@ -44977,18 +44684,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/ret": {
-      "version": "0.1.15",
-      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";,
-      "integrity": 
"sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "peer": true,
-      "engines": {
-        "node": ">=0.12"
-      }
-    },
     "node_modules/retry": {
       "version": "0.13.1",
       "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz";,
@@ -45114,19 +44809,6 @@
       "integrity": 
"sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
       "license": "Unlicense"
     },
-    "node_modules/rst-selector-parser": {
-      "version": "2.2.3",
-      "resolved": 
"https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz";,
-      "integrity": 
"sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==",
-      "dev": true,
-      "license": "BSD-3-Clause",
-      "optional": true,
-      "peer": true,
-      "dependencies": {
-        "lodash.flattendeep": "^4.4.0",
-        "nearley": "^2.7.10"
-      }
-    },
     "node_modules/run-applescript": {
       "version": "7.0.0",
       "resolved": 
"https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz";,
@@ -51174,15 +50856,15 @@
       }
     },
     "node_modules/whatwg-url/node_modules/@noble/hashes": {
-      "version": "2.0.1",
-      "resolved": 
"https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz";,
-      "integrity": 
"sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==",
+      "version": "1.8.0",
+      "resolved": 
"https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz";,
+      "integrity": 
"sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
       "dev": true,
       "license": "MIT",
       "optional": true,
       "peer": true,
       "engines": {
-        "node": ">= 20.19.0"
+        "node": "^14.21.3 || >=16"
       },
       "funding": {
         "url": "https://paulmillr.com/funding/";
@@ -52279,7 +51961,7 @@
         "@emotion/cache": "^11.4.0",
         "@emotion/react": "^11.4.1",
         "@emotion/styled": "^11.14.1",
-        "@fontsource/fira-code": "^5.2.6",
+        "@fontsource/ibm-plex-mono": "^5.2.7",
         "@fontsource/inter": "^5.2.6",
         "antd": "^5.26.0",
         "jed": "^1.1.1",
@@ -52291,13 +51973,6 @@
         "tinycolor2": "*"
       }
     },
-    "packages/superset-core/node_modules/@types/lodash": {
-      "version": "4.17.21",
-      "resolved": 
"https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz";,
-      "integrity": 
"sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
     "packages/superset-ui-chart-controls": {
       "name": "@superset-ui/chart-controls",
       "version": "0.20.3",
@@ -52423,13 +52098,6 @@
         "@types/unist": "*"
       }
     },
-    "packages/superset-ui-core/node_modules/@types/lodash": {
-      "version": "4.17.21",
-      "resolved": 
"https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz";,
-      "integrity": 
"sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
     "packages/superset-ui-core/node_modules/@types/mdast": {
       "version": "3.0.15",
       "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz";,
@@ -52446,12 +52114,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "packages/superset-ui-core/node_modules/ace-builds": {
-      "version": "1.43.5",
-      "resolved": 
"https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz";,
-      "integrity": 
"sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==",
-      "license": "BSD-3-Clause"
-    },
     "packages/superset-ui-core/node_modules/character-entities-legacy": {
       "version": "3.0.0",
       "resolved": 
"https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz";,
@@ -54159,7 +53821,7 @@
       "version": "0.0.1",
       "license": "Apache-2.0",
       "dependencies": {
-        "@types/geojson": "^7946.0.10",
+        "@types/geojson": "^7946.0.16",
         "geojson": "^0.5.0",
         "lodash": "^4.17.23"
       },
@@ -54239,13 +53901,6 @@
         "react-dom": "^17.0.2"
       }
     },
-    "plugins/plugin-chart-handlebars/node_modules/@types/lodash": {
-      "version": "4.17.21",
-      "resolved": 
"https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz";,
-      "integrity": 
"sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
-      "dev": true,
-      "license": "MIT"
-    },
     "plugins/plugin-chart-handlebars/node_modules/just-handlebars-helpers": {
       "version": "1.0.19",
       "resolved": 
"https://registry.npmjs.org/just-handlebars-helpers/-/just-handlebars-helpers-1.0.19.tgz";,
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 6bc1d3f7fda..92eec8c019f 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -109,6 +109,7 @@
     "@emotion/cache": "^11.4.0",
     "@emotion/react": "^11.14.0",
     "@emotion/styled": "^11.14.1",
+    "@fontsource/ibm-plex-mono": "^5.2.7",
     "@luma.gl/constants": "~9.2.5",
     "@luma.gl/core": "~9.2.5",
     "@luma.gl/engine": "~9.2.5",
diff --git a/superset-frontend/packages/superset-core/package.json 
b/superset-frontend/packages/superset-core/package.json
index 5a03d0780b9..544b8c29965 100644
--- a/superset-frontend/packages/superset-core/package.json
+++ b/superset-frontend/packages/superset-core/package.json
@@ -33,7 +33,7 @@
     "@emotion/cache": "^11.4.0",
     "@emotion/react": "^11.4.1",
     "@emotion/styled": "^11.14.1",
-    "@fontsource/fira-code": "^5.2.6",
+    "@fontsource/ibm-plex-mono": "^5.2.7",
     "@fontsource/inter": "^5.2.6",
     "nanoid": "^5.0.9",
     "react": "^17.0.2",
diff --git 
a/superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx 
b/superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx
index 31cf1547f55..d3350a0efbd 100644
--- a/superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx
@@ -23,9 +23,9 @@ import '@fontsource/inter/200.css';
 import '@fontsource/inter/400.css';
 import '@fontsource/inter/500.css';
 import '@fontsource/inter/600.css';
-import '@fontsource/fira-code/400.css';
-import '@fontsource/fira-code/500.css';
-import '@fontsource/fira-code/600.css';
+import '@fontsource/ibm-plex-mono/400.css';
+import '@fontsource/ibm-plex-mono/500.css';
+import '@fontsource/ibm-plex-mono/600.css';
 /* eslint-enable import/extensions */
 
 import { css, useTheme, Global } from '@emotion/react';
diff --git 
a/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx 
b/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
index e9b1612f15c..e837bd66db9 100644
--- a/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
@@ -502,7 +502,7 @@ test('Theme base theme integration works with real-world 
Superset base theme con
       colorSuccess: '#5ac189',
       colorInfo: '#66bcfe',
       fontFamily: "'Inter', Helvetica, Arial",
-      fontFamilyCode: "'Fira Code', 'Courier New', monospace",
+      fontFamilyCode: "'IBM Plex Mono', 'Courier New', monospace",
     },
   };
 
diff --git 
a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx
 
b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx
index 51c78d0b9cf..358cb263e05 100644
--- 
a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx
+++ 
b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx
@@ -42,6 +42,21 @@ test('renders SQLEditor', async () => {
   });
 });
 
+test('SQLEditor uses fontFamilyCode from theme', async () => {
+  const ref = createRef<AceEditor>();
+  const { container } = render(<SQLEditor ref={ref as React.Ref<never>} />);
+
+  await waitFor(() => {
+    expect(container.querySelector(selector)).toBeInTheDocument();
+  });
+
+  const editorInstance = ref.current?.editor;
+  const fontFamily = editorInstance?.getOption('fontFamily');
+  // Verify font family is set (not undefined) and contains a monospace font
+  expect(fontFamily).toBeDefined();
+  expect(fontFamily).toMatch(/mono|courier|consolas/i);
+});
+
 test('renders FullSQLEditor', async () => {
   const { container } = render(<FullSQLEditor />);
 
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 56b0e9576a7..90a2cafcc9a 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
@@ -114,7 +114,7 @@ export function AsyncAceEditor(
     defaultMode,
     defaultTheme,
     defaultTabSize = 2,
-    fontFamily = 'Menlo, Consolas, Courier New, Ubuntu Mono, source-code-pro, 
Lucida Console, monospace',
+    fontFamily,
     placeholder,
   }: AsyncAceEditorOptions = {},
 ) {
@@ -171,6 +171,7 @@ export function AsyncAceEditor(
         ref,
       ) {
         const token = useTheme();
+        const editorFontFamily = fontFamily || token.fontFamilyCode;
         const langTools = acequire('ace/ext/language_tools');
 
         const setCompleters = useCallback(
@@ -436,7 +437,7 @@ export function AsyncAceEditor(
               theme={theme}
               tabSize={tabSize}
               defaultValue={defaultValue}
-              setOptions={{ fontFamily }}
+              setOptions={{ fontFamily: editorFontFamily }}
               {...props}
             />
           </>
diff --git 
a/superset-frontend/packages/superset-ui-core/src/components/Label/Label.test.tsx
 
b/superset-frontend/packages/superset-ui-core/src/components/Label/Label.test.tsx
index 9d5dc184d31..216db7daa57 100644
--- 
a/superset-frontend/packages/superset-ui-core/src/components/Label/Label.test.tsx
+++ 
b/superset-frontend/packages/superset-ui-core/src/components/Label/Label.test.tsx
@@ -34,6 +34,11 @@ test('works with an onClick handler', () => {
   expect(mockAction).toHaveBeenCalled();
 });
 
+test('renders with monospace prop', () => {
+  const { getByText } = render(<Label monospace>monospace text</Label>);
+  expect(getByText('monospace text')).toBeInTheDocument();
+});
+
 // test stories from the storybook!
 test('renders all the storybook gallery variants', () => {
   // @ts-expect-error: Suppress TypeScript error for LabelGallery usage
diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx 
b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
index 8a8a9b94edb..de3e64ee55c 100644
--- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
@@ -531,6 +531,7 @@ const ResultSet = ({
           placement="left"
         >
           <Label
+            monospace
             css={css`
               line-height: ${theme.fontSizeLG}px;
             `}
diff --git a/superset-frontend/src/components/RowCountLabel/index.tsx 
b/superset-frontend/src/components/RowCountLabel/index.tsx
index 8b60b02f583..fc367e307ea 100644
--- a/superset-frontend/src/components/RowCountLabel/index.tsx
+++ b/superset-frontend/src/components/RowCountLabel/index.tsx
@@ -39,7 +39,7 @@ export default function RowCountLabel(props: 
RowCountLabelProps) {
     limitReached || (rowcount === 0 && !loading) ? 'error' : 'default';
   const formattedRowCount = getNumberFormatter()(rowcount);
   const labelText = (
-    <Label type={type}>
+    <Label type={type} monospace>
       {loading ? (
         t('Loading...')
       ) : (
diff --git a/superset-frontend/src/pages/ExecutionLogList/index.tsx 
b/superset-frontend/src/pages/ExecutionLogList/index.tsx
index 2c2a31d0b8d..06b425f4f96 100644
--- a/superset-frontend/src/pages/ExecutionLogList/index.tsx
+++ b/superset-frontend/src/pages/ExecutionLogList/index.tsx
@@ -25,7 +25,7 @@ import {
 } from '@superset-ui/core/utils/dates';
 import { useEffect, useMemo } from 'react';
 import { Link, useParams } from 'react-router-dom';
-import { Tooltip } from '@superset-ui/core/components';
+import { Label, Tooltip } from '@superset-ui/core/components';
 import { ListView } from 'src/components';
 import SubMenu from 'src/features/home/SubMenu';
 import withToasts from 'src/components/MessageToasts/withToasts';
@@ -149,8 +149,14 @@ function ExecutionLog({
           },
         }: {
           row: { original: AnnotationObject };
-        }) =>
-          fDuration(new Date(startDttm).getTime(), new 
Date(endDttm).getTime()),
+        }) => (
+          <Label monospace>
+            {fDuration(
+              new Date(startDttm).getTime(),
+              new Date(endDttm).getTime(),
+            )}
+          </Label>
+        ),
         Header: t('Duration'),
         disableSortBy: true,
         id: 'duration',
diff --git a/superset/config.py b/superset/config.py
index 423f6fb3bde..ec5653f2360 100644
--- a/superset/config.py
+++ b/superset/config.py
@@ -936,7 +936,7 @@ THEME_DEFAULT: Theme = {
         # Fonts
         "fontUrls": [],
         "fontFamily": "Inter, Helvetica, Arial, sans-serif",
-        "fontFamilyCode": "'Fira Code', 'Courier New', monospace",
+        "fontFamilyCode": "'IBM Plex Mono', 'Courier New', monospace",
         # Extra tokens
         "transitionTiming": 0.3,
         "brandIconMaxWidth": 37,

Reply via email to