You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2025/09/21 20:57:32 UTC

(superset) branch fire-alert updated (7e7ec67bf5 -> 58a2eb465a)

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

maximebeauchemin pushed a change to branch fire-alert
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard 7e7ec67bf5 feat: Add 1600px default for screenshot width
 discard 5cc353355c fix: Correct validation section for Database and SQL fields
 discard ad23b18b10 refactor: Migrate key AlertReportModal fields to ModalFormField pattern
 discard 825043009b fix: Consistent asterisk styling in AlertReportModal
 discard 8b3e24cb57 feat: Dynamic asterisk coloring for form field validation
 discard dcbfbed684 feat: Add "Trigger Now" functionality for Alerts & Reports
 discard 9b387ba2da Standardize webpack dev server host configuration and enable LAN access
     add 7a20a65a4d feat(embedded): Change function signature of setupExtensions (#35062)
     add a7d349a5c6 fix(drill-to-detail): ensure axis label filters map to original column names (#34694)
     add 078c1701f4 feat(sqllab extension): core query interface api (#35077)
     add 5a2411fa64 fix(settingsMenu): Version  (#35096)
     add eb4351af83 feat(Timeseries & MixedTimeseries): Force selected timegrain on timeseries intervals when the x-axis is of timestamp type (#34595)
     add 529adebe1b fix(templates): Restores templates files accidentally removed  (#35094)
     add 7bf16d805d fix(theming): replace error color with bolt icon for local themes (#35090)
     add b42060c880 fix(pie): fixes pie chart other click error (#35086)
     add 454ed1883f feat(BoxPlot): add chart data zoom (#35097)
     add 06261f262b fix: page size options 'all' correct in table and remove PAGE_SIZE_OPTIONS in handlebars (#35095)
     add e729b2dbb4 fix: SQL Lab tab events (#35105)
     add 3416bd1479 chore: add codeowners (#35107)
     add dea9068647 fix(DashboardEditor): CSS template selector UI in dashboard properties modal restored (#35106)
     add a9fb853e3e fix: Bump FAB to 5.X (#33055)
     add 95333e34b1 fix(theming): Lighter text colors on dark mode (#35114)
     add 7fd5a7668b fix(charts): fix legend theming and hollow symbols in dark mode (#35123)
     add 36daa2dc3f fix(ListView): implement AntD pagination for ListView component (#35057)
     add 19ddcb7e5c fix: Remove emotion-rgba from dependencies and codebase (#35124)
     add 15e8ffee1e chore(deps): bump axios from 1.11.0 to 1.12.0 in /docs (#35109)
     add e1a2e4843a chore: standardize webpack dev server host configuration and enable LAN access (#35066)
     add 088ecdd0bf refactor: Enable G logging rules and comprehensive ruff improvements (#35081)
     add c2534f9155 feat: Add ECharts options overrides to theme system (#34876)
     add 7d0a472d1e feat: Add comprehensive dark mode support for chart thumbnails and examples (#35111)
     add 133e686224 docs(llms): add PR template guidelines to LLMS.md (#35148)
     add bc6859a99d refactor: Organizes the src/core folder (#35119)
     add a66737cb05 feat(custom-tooltip): custom tooltip on deck.gl charts (#34276)
     add 966e231f94 feat: Add Dashboard Filter Support for Alert Reports (#32196)
     add d0cc6f115b feat: add optional garbage collection after requests (#35061)
     add fb840b8e71 fix(deck.gl): restore legend display for Polygon charts with linear palette and fixed color schemes (#35142)
     add c193d6d6a1 fix: import bug template params (#35144)
     add 05c6a1bf20 fix(viz): resolve dark mode compatibility issues in BigNumber and Heatmap (#35151)
     add dced2f8564 feat: Add BaseDAO improvements and test reorganization (#35018)
     add 3e554674ff feat(waterfall): add changes label series and grouping customize settings (#34847)
     add ad3eff9e90 feat(matrixify): replace single toggle with separate horizontal/vertical layout controls (#35067)
     add 1187902e68 feat(playwright): Add Playwright CI Integration for Cypress Migration (SIP-178) (#35110)
     add 1f530d45cb fix(embedded): resolve theme context error in Loading component (#35168)
     add 1bf112a57a fix(CrudThemeProvider): Optimized theme loading logic (#35155)
     add fd6da21ce0 chore(i18n): update French translations (#35070)
     add b60be9655f feat(TimeTable): add other sparkline type options (#35180)
     add a889ae75fc chore: Bump ag grid to 34.2.0 (#35193)
     add 6cb3ef9f5d chore: TypeScript Configuration Modernization and Cleanup (#35159)
     add ea519a77b5 fix: only block showtime for unauthorized users on push (#35184)
     add 127f6b3d66 fix(tests): migrate Cypress control tests to React Testing Library (#35181)
     add 0c8f326258 docs: Add security warning for ENABLE_TEMPLATE_PROCESSING (#35192)
     add 38297edc6b chore(matrixify): Remove leftover option (#35195)
     add 4130b92966 fix(gantt-chart): fix Y-axis label visibility in dark theme (#35189)
     add 23bb4f88c0 fix(Funnel): onInit overridden row_limit to default value on save chart (#35076)
     add 5901320933 feat(database): Adding per-user caching option in Security tab (#34842)
     add db178cf527 fix: Bump pandas to 2.1.4 for python 3.12 (#34999)
     add 1e4bc6ee78 fix: bug in tooltip timeseries chart in calculated total with annotation layer (#35179)
     add 076e477fd4 fix(SQLPopover): Use correct component (#35212)
     add ecb3ac68ff feat: AI-powered TypeScript migration framework with parallel processing (#35045)
     add 4dd1e80f4c feat: Add "Trigger Now" functionality for Alerts & Reports
     add 17eeeaccac feat: Dynamic asterisk coloring for form field validation
     add 7a6b084ff7 fix: Consistent asterisk styling in AlertReportModal
     add 7c9794cc2f refactor: Migrate key AlertReportModal fields to ModalFormField pattern
     add 19be7020c7 fix: Correct validation section for Database and SQL fields
     add 3c51194bb2 feat: Add 1600px default for screenshot width
     add 58a2eb465a fix tests

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (7e7ec67bf5)
            \
             N -- N -- N   refs/heads/fire-alert (58a2eb465a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .claude/commands/js-to-ts.md                       |   10 +
 .claude/projects/js-to-ts/AGENT.md                 |  684 +++++++
 .claude/projects/js-to-ts/COORDINATOR.md           |  199 ++
 .claude/projects/js-to-ts/PROJECT.md               |   76 +
 .github/CODEOWNERS                                 |   14 +-
 .github/workflows/bashlib.sh                       |   70 +
 .github/workflows/showtime-trigger.yml             |   22 +-
 .github/workflows/superset-frontend.yml            |    2 +-
 .github/workflows/superset-playwright.yml          |  141 ++
 LLMS.md                                            |   30 +-
 UPDATING.md                                        |    2 +
 docker-compose.yml                                 |    4 +-
 docker/pythonpath_dev/superset_config.py           |    2 +-
 docs/docs/configuration/configuring-superset.mdx   |  104 -
 docs/docs/configuration/sql-templating.mdx         |   11 +-
 docs/docs/configuration/theming.mdx                |  200 ++
 docs/docs/contributing/development.mdx             |    2 +-
 docs/docs/contributing/howtos.mdx                  |   52 +-
 .../configuration/configuring-superset.mdx         |  104 -
 docs/yarn.lock                                     |    6 +-
 pyproject.toml                                     |    7 +-
 requirements/base.txt                              |   18 +-
 requirements/development.txt                       |   26 +-
 superset-core/pyproject.toml                       |    2 +-
 superset-extensions-cli/tests/test_cli_validate.py |    4 +-
 superset-frontend/.eslintrc.js                     |    8 +
 .../cypress/e2e/chart_list/list.test.ts            |    2 +-
 .../cypress/e2e/dashboard/drillby.test.ts          |  766 --------
 .../cypress/e2e/explore/control.test.ts            |  186 --
 superset-frontend/jest.config.js                   |    1 +
 superset-frontend/package-lock.json                |  123 +-
 superset-frontend/package.json                     |   10 +-
 .../generators/plugin-chart/templates/README.erb   |   13 -
 .../plugin-chart/templates/tsconfig.json           |   49 +-
 .../packages/superset-core/package.json            |    2 +-
 .../packages/superset-core/src/api/core.ts         |   67 +-
 .../packages/superset-core/src/api/sqlLab.ts       |  153 +-
 .../packages/superset-core/tsconfig.json           |   20 +-
 .../superset-ui-chart-controls/package.json        |    4 +-
 .../src/components/SQLPopover.tsx                  |   25 +-
 .../src/sections/matrixify.tsx                     |   44 +-
 .../src/shared-controls/matrixifyControls.tsx      |  161 +-
 .../src/utils/checkColumnType.ts                   |    6 +-
 .../superset-ui-chart-controls/test/tsconfig.json  |   12 +-
 .../superset-ui-chart-controls/tsconfig.json       |   23 +-
 .../packages/superset-ui-core/package.json         |    5 +-
 .../components/Matrixify/MatrixifyGridGenerator.ts |    8 +-
 .../Matrixify/MatrixifyGridRenderer.test.tsx       |   33 +-
 .../components/Matrixify/MatrixifyGridRenderer.tsx |   10 +-
 .../src/chart/models/ChartMetadata.ts              |    6 +
 .../src/chart/types/matrixify.test.ts              |   34 +-
 .../superset-ui-core/src/chart/types/matrixify.ts  |   19 +-
 .../src/components/AsyncAceEditor/index.tsx        |   12 +
 .../src/components/CodeEditor/index.tsx            |  106 +
 .../src/components/EmptyState/index.tsx            |    6 +-
 .../src/components/LastUpdated/index.tsx           |    8 +-
 .../src/components/Pagination/Ellipsis.test.tsx    |   37 -
 .../src/components/Pagination/Item.test.tsx        |   47 -
 .../src/components/Pagination/Item.tsx             |   45 -
 .../src/components/Pagination/Prev.test.tsx        |   37 -
 .../src/components/Pagination/Prev.tsx             |   38 -
 .../src/components/Pagination/Wrapper.test.tsx     |   75 -
 .../src/components/Pagination/Wrapper.tsx          |   90 -
 .../src/components/Pagination/index.tsx            |   47 -
 .../TableCollection/TableCollection.test.tsx       |  106 +
 .../src/components/TableCollection/index.tsx       |  141 +-
 .../src/components/TableView/TableView.test.tsx    |  206 +-
 .../src/components/TableView/TableView.tsx         |  233 +--
 .../superset-ui-core/src/components/index.ts       |    6 +
 .../packages/superset-ui-core/src/theme/index.tsx  |    5 +-
 .../packages/superset-ui-core/src/theme/types.ts   |    9 +
 .../packages/superset-ui-core/src/utils/dates.ts   |    1 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    1 +
 .../packages/superset-ui-core/src/utils/index.ts   |    1 +
 .../superset-ui-core/src/utils/merge.test.ts       |   61 +
 .../packages/superset-ui-core/src/utils/merge.ts   |   52 +
 .../packages/superset-ui-core/test/tsconfig.json   |    8 +-
 .../packages/superset-ui-core/tsconfig.json        |   26 +-
 .../superset-ui-core/types/ace-builds.d.ts         |    2 +
 .../packages/superset-ui-core/types/assets.d.ts    |    2 +
 .../packages/superset-ui-switchboard/tsconfig.json |   19 +-
 superset-frontend/playwright.config.ts             |   90 +
 superset-frontend/playwright/README.md             |  218 +++
 .../playwright/components/core/Button.ts           |  119 ++
 .../playwright/components/core/Form.ts             |  110 ++
 .../playwright/components/core/Input.ts            |  111 ++
 .../components/core/index.ts}                      |    8 +-
 superset-frontend/playwright/pages/AuthPage.ts     |  122 ++
 .../playwright/tests/auth/login.spec.ts            |   88 +
 .../utils/urls.ts}                                 |    6 +-
 .../src/images/example-dark.jpg                    |  Bin 0 -> 37306 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 20062 bytes
 .../legacy-plugin-chart-calendar/src/index.js      |    5 +-
 .../legacy-plugin-chart-calendar/tsconfig.json     |   18 +-
 .../src/images/chord-dark.jpg                      |  Bin 0 -> 135643 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 108756 bytes
 .../plugins/legacy-plugin-chart-chord/src/index.js |    9 +-
 .../legacy-plugin-chart-chord/tsconfig.json        |   18 +-
 .../src/images/exampleGermany-dark.jpg             |  Bin 0 -> 30205 bytes
 .../src/images/exampleUsa-dark.jpg                 |  Bin 0 -> 87048 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 66675 bytes
 .../legacy-plugin-chart-country-map/src/index.js   |    9 +-
 .../legacy-plugin-chart-country-map/tsconfig.json  |   18 +-
 .../src/images/Horizon_Chart-dark.jpg              |  Bin 0 -> 76411 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 52884 bytes
 .../legacy-plugin-chart-horizon/src/index.js       |    5 +-
 .../legacy-plugin-chart-horizon/tsconfig.json      |   18 +-
 .../src/images/MapBox-dark.jpg                     |  Bin 0 -> 106465 bytes
 .../src/images/{MapBox2.jpg => MapBox2-dark.jpg}   |  Bin
 .../src/images/MapBox2.jpg                         |  Bin 129764 -> 114501 bytes
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../src/images/thumbnail.png                       |  Bin 49956 -> 127857 bytes
 .../legacy-plugin-chart-map-box/src/index.js       |    8 +-
 .../src/utils/{roundDecimal.js => roundDecimal.ts} |   11 +-
 .../legacy-plugin-chart-map-box/test/tsconfig.json |   12 +-
 .../{roundDecimal.test.js => roundDecimal.test.ts} |    0
 .../legacy-plugin-chart-map-box/tsconfig.json      |   18 +-
 .../src/images/example-dark.jpg                    |  Bin 0 -> 59995 bytes
 .../src/images/{thumbnailLarge.png => example.jpg} |  Bin
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 59995 bytes
 .../legacy-plugin-chart-paired-t-test/src/index.js |    5 +
 .../tsconfig.json                                  |   18 +-
 .../src/images/example1-dark.jpg                   |  Bin 0 -> 50620 bytes
 .../src/images/example2-dark.jpg                   |  Bin 0 -> 119506 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 125551 bytes
 .../src/index.js                                   |    9 +-
 .../tsconfig.json                                  |   23 +-
 .../src/images/example-dark.jpg                    |  Bin 0 -> 46640 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 27136 bytes
 .../legacy-plugin-chart-partition/src/index.js     |    5 +-
 .../test/tsconfig.json                             |   12 +-
 .../legacy-plugin-chart-partition/tsconfig.json    |   21 +-
 .../src/images/example1-dark.jpg                   |  Bin 0 -> 124574 bytes
 .../src/images/example2-dark.jpg                   |  Bin 0 -> 61143 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 83147 bytes
 .../plugins/legacy-plugin-chart-rose/src/index.js  |    9 +-
 .../plugins/legacy-plugin-chart-rose/tsconfig.json |   18 +-
 .../src/images/WorldMap1-dark.jpg                  |  Bin 0 -> 35886 bytes
 .../src/images/WorldMap2-dark.jpg                  |  Bin 0 -> 39841 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 65192 bytes
 .../legacy-plugin-chart-world-map/src/index.js     |    9 +-
 .../legacy-plugin-chart-world-map/tsconfig.json    |   18 +-
 .../legacy-preset-chart-deckgl/package.json        |    2 +
 .../src/DeckGLContainer.tsx                        |   23 +-
 .../src/Multi/images/example-dark.png              |  Bin 0 -> 27184 bytes
 .../src/Multi/images/thumbnail-dark.png            |  Bin 0 -> 262068 bytes
 .../legacy-preset-chart-deckgl/src/Multi/index.ts  |    5 +-
 .../src/components/Legend.tsx                      |    2 +
 .../src/components/Tooltip.tsx                     |   36 +-
 .../src/layers/Arc/Arc.tsx                         |   56 +-
 .../src/layers/Arc/controlPanel.ts                 |    4 +
 .../src/layers/Arc/images/example-dark.png         |  Bin 0 -> 42266 bytes
 .../src/layers/Arc/images/thumbnail-dark.png       |  Bin 0 -> 66399 bytes
 .../src/layers/Arc/index.ts                        |    5 +-
 .../src/layers/Contour/Contour.tsx                 |   72 +-
 .../src/layers/Contour/controlPanel.ts             |    4 +
 .../src/layers/Contour/images/example-dark.png     |  Bin 0 -> 66548 bytes
 .../src/layers/Contour/images/thumbnail-dark.png   |  Bin 0 -> 158475 bytes
 .../src/layers/Contour/images/thumbnail.png        |  Bin 64889 -> 174130 bytes
 .../src/layers/Contour/index.ts                    |    5 +-
 .../src/layers/Geojson/controlPanel.ts             |    4 +
 .../src/layers/Geojson/images/example-dark.png     |  Bin 0 -> 57157 bytes
 .../src/layers/Geojson/images/thumbnail-dark.png   |  Bin 0 -> 63333 bytes
 .../src/layers/Geojson/index.ts                    |    5 +-
 .../src/layers/Grid/Grid.tsx                       |   32 +-
 .../src/layers/Grid/controlPanel.ts                |    4 +
 .../src/layers/Grid/images/example-dark.png        |  Bin 0 -> 374651 bytes
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../src/layers/Grid/index.ts                       |    5 +-
 .../src/layers/Heatmap/Heatmap.tsx                 |   93 +-
 .../src/layers/Heatmap/controlPanel.ts             |    4 +
 .../src/layers/Heatmap/images/example-dark.png     |  Bin 0 -> 47816 bytes
 .../src/layers/Heatmap/images/thumbnail-dark.png   |  Bin 0 -> 506659 bytes
 .../src/layers/Heatmap/images/thumbnail.png        |  Bin 674091 -> 506659 bytes
 .../src/layers/Heatmap/index.ts                    |    5 +-
 .../src/layers/Hex/Hex.tsx                         |   30 +-
 .../src/layers/Hex/controlPanel.ts                 |    4 +
 .../src/layers/Hex/images/example-dark.png         |  Bin 0 -> 153412 bytes
 .../src/layers/Hex/images/thumbnail-dark.png       |  Bin 0 -> 173437 bytes
 .../src/layers/Hex/index.ts                        |    5 +-
 .../src/layers/Path/Path.tsx                       |   30 +-
 .../src/layers/Path/controlPanel.ts                |    4 +
 .../src/layers/Path/images/example-dark.png        |  Bin 0 -> 10797 bytes
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../src/layers/Path/images/thumbnail.png           |  Bin 31685 -> 71148 bytes
 .../src/layers/Path/index.ts                       |    5 +-
 .../src/layers/Polygon/Polygon.test.tsx            |  355 ++++
 .../src/layers/Polygon/Polygon.tsx                 |   74 +-
 .../src/layers/Polygon/controlPanel.ts             |    4 +
 .../src/layers/Polygon/images/example-dark.png     |  Bin 0 -> 115085 bytes
 .../src/layers/Polygon/images/thumbnail-dark.png   |  Bin 0 -> 90190 bytes
 .../src/layers/Polygon/index.ts                    |    5 +-
 .../src/layers/Scatter/Scatter.tsx                 |   47 +-
 .../src/layers/Scatter/controlPanel.ts             |    4 +
 .../src/layers/Scatter/images/example-dark.png     |  Bin 0 -> 50404 bytes
 .../src/layers/Scatter/images/thumbnail-dark.png   |  Bin 0 -> 216185 bytes
 .../src/layers/Scatter/index.ts                    |    5 +-
 .../src/layers/Screengrid/Screengrid.tsx           |  111 +-
 .../src/layers/Screengrid/controlPanel.ts          |    4 +
 .../images/{example.png => example-dark.png}       |  Bin
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../src/layers/Screengrid/images/thumbnail.png     |  Bin 51372 -> 126314 bytes
 .../src/layers/Screengrid/index.ts                 |    5 +-
 .../src/layers/common.tsx                          |   18 +-
 .../src/utilities/HandlebarsRenderer.tsx           |  231 +++
 .../src/utilities/Shared_DeckGL.tsx                |   77 +-
 .../src/utilities/TooltipTemplateControl.tsx       |   82 +
 .../src/utilities/TooltipTemplateEditor.tsx        |   76 +
 .../src/utilities/controlRegistry.tsx              |   57 +
 .../src/utilities/multiValueUtils.ts               |  142 ++
 .../src/utilities/tooltipUtils.tsx                 |  384 ++++
 .../src/utilities/utils.ts                         |    2 -
 .../legacy-preset-chart-deckgl/tsconfig.json       |   11 +-
 .../src/Bubble/images/example-dark.jpg             |  Bin 0 -> 56660 bytes
 .../src/Bubble/images/thumbnail-dark.png           |  Bin 0 -> 60642 bytes
 .../legacy-preset-chart-nvd3/src/Bubble/index.js   |    5 +-
 .../src/Bullet/images/example-dark.jpg             |  Bin 0 -> 22213 bytes
 .../src/Bullet/images/thumbnail-dark.png           |  Bin 0 -> 3653 bytes
 .../legacy-preset-chart-nvd3/src/Bullet/index.js   |    5 +-
 .../src/Compare/images/example-dark.jpg            |  Bin 0 -> 63894 bytes
 .../src/Compare/images/thumbnail-dark.png          |  Bin 0 -> 89728 bytes
 .../legacy-preset-chart-nvd3/src/Compare/index.js  |    5 +-
 .../legacy-preset-chart-nvd3/src/NVD3Vis.js        |    2 +-
 .../src/TimePivot/images/example-dark.jpg          |  Bin 0 -> 137758 bytes
 .../src/TimePivot/images/example.jpg               |  Bin 0 -> 131853 bytes
 .../src/TimePivot/images/thumbnail-dark.png        |  Bin 0 -> 25338 bytes
 .../src/TimePivot/index.js                         |    9 +-
 .../legacy-preset-chart-nvd3/test/tsconfig.json    |   12 +-
 .../plugins/legacy-preset-chart-nvd3/tsconfig.json |   11 +-
 .../plugin-chart-ag-grid-table/package.json        |    1 +
 .../src/images/Table-dark.jpg                      |  Bin 0 -> 20567 bytes
 .../src/images/Table2-dark.jpg                     |  Bin 0 -> 95338 bytes
 .../src/images/Table3-dark.jpg                     |  Bin 0 -> 162987 bytes
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../src/images/thumbnail.png                       |  Bin 16447 -> 52566 bytes
 .../plugin-chart-ag-grid-table/src/index.ts        |   11 +-
 .../src/utils/useTableTheme.ts                     |    2 +-
 .../plugin-chart-ag-grid-table/tsconfig.json       |   25 +-
 .../src/images/example1-dark.png                   |  Bin 0 -> 155820 bytes
 .../src/images/example2-dark.png                   |  Bin 0 -> 101362 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 58587 bytes
 .../plugin-chart-cartodiagram/src/plugin/index.ts  |   16 +-
 .../plugin-chart-cartodiagram/test/tsconfig.json   |   15 +-
 .../plugin-chart-cartodiagram/tsconfig.json        |   18 +-
 .../plugins/plugin-chart-echarts/package.json      |    1 +
 .../images/thumbnail-dark.png                      |  Bin 0 -> 11540 bytes
 .../BigNumber/BigNumberPeriodOverPeriod/index.ts   |    2 +
 .../BigNumberPeriodOverPeriod/transformProps.ts    |    6 +-
 .../BigNumberTotal/images/BigNumber-dark.jpg       |  Bin 0 -> 24180 bytes
 .../BigNumberTotal/images/BigNumber2-dark.jpg      |  Bin 0 -> 36527 bytes
 .../BigNumberTotal/images/thumbnail-dark.png       |  Bin 0 -> 8949 bytes
 .../src/BigNumber/BigNumberTotal/index.ts          |    8 +-
 .../images/Big_Number_Trendline-dark.jpg           |  Bin 0 -> 65207 bytes
 .../images/thumbnail-dark.png                      |  Bin 0 -> 45329 bytes
 .../src/BigNumber/BigNumberWithTrendline/index.ts  |    5 +-
 .../BigNumberWithTrendline/transformProps.ts       |    3 +-
 .../plugin-chart-echarts/src/BigNumber/utils.ts    |    2 +-
 .../src/BoxPlot/controlPanel.ts                    |    1 +
 .../src/BoxPlot/images/BoxPlot-dark.jpg            |  Bin 0 -> 52082 bytes
 .../src/BoxPlot/images/thumbnail-dark.png          |  Bin 0 -> 27732 bytes
 .../plugin-chart-echarts/src/BoxPlot/index.ts      |    5 +-
 .../src/BoxPlot/transformProps.ts                  |   21 +
 .../src/Bubble/EchartsBubble.tsx                   |    3 +-
 .../src/Bubble/images/example1-dark.png            |  Bin 0 -> 67571 bytes
 .../src/Bubble/images/example2-dark.png            |  Bin 0 -> 46660 bytes
 .../src/Bubble/images/thumbnail-dark.png           |  Bin 0 -> 76044 bytes
 .../plugin-chart-echarts/src/Bubble/index.ts       |    9 +-
 .../src/Funnel/EchartsFunnel.tsx                   |    4 +-
 .../src/Funnel/controlPanel.tsx                    |   10 -
 .../src/Funnel/images/example-dark.jpg             |  Bin 0 -> 51659 bytes
 .../src/Funnel/images/thumbnail-dark.png           |  Bin 0 -> 28543 bytes
 .../plugin-chart-echarts/src/Funnel/index.ts       |    5 +-
 .../src/Gantt/images/example1-dark.png             |  Bin 0 -> 44527 bytes
 .../src/Gantt/images/example2-dark.png             |  Bin 0 -> 44712 bytes
 .../src/Gantt/images/thumbnail-dark.png            |  Bin 0 -> 28798 bytes
 .../plugin-chart-echarts/src/Gantt/index.ts        |    9 +-
 .../src/Gantt/transformProps.ts                    |    3 +-
 .../src/Gauge/EchartsGauge.tsx                     |    4 +-
 .../src/Gauge/images/example1-dark.jpg             |  Bin 0 -> 55693 bytes
 .../src/Gauge/images/example2-dark.jpg             |  Bin 0 -> 35720 bytes
 .../src/Gauge/images/thumbnail-dark.png            |  Bin 0 -> 22746 bytes
 .../plugin-chart-echarts/src/Gauge/index.ts        |    9 +-
 .../src/Graph/images/example-dark.jpg              |  Bin 0 -> 55603 bytes
 .../src/Graph/images/thumbnail-dark.png            |  Bin 0 -> 54936 bytes
 .../plugin-chart-echarts/src/Graph/index.ts        |    5 +-
 .../src/Heatmap/images/example1-dark.png           |  Bin 0 -> 32855 bytes
 .../src/Heatmap/images/example2-dark.png           |  Bin 0 -> 43903 bytes
 .../src/Heatmap/images/example3-dark.png           |  Bin 0 -> 40121 bytes
 .../src/Heatmap/images/thumbnail-dark.png          |  Bin 0 -> 33182 bytes
 .../plugin-chart-echarts/src/Heatmap/index.ts      |   11 +-
 .../src/Heatmap/transformProps.ts                  |    8 +-
 .../src/Histogram/images/example1-dark.png         |  Bin 0 -> 28176 bytes
 .../src/Histogram/images/example2-dark.png         |  Bin 0 -> 29843 bytes
 .../src/Histogram/images/thumbnail-dark.png        |  Bin 0 -> 18597 bytes
 .../plugin-chart-echarts/src/Histogram/index.ts    |    9 +-
 .../src/MixedTimeseries/controlPanel.tsx           |    2 +
 .../src/MixedTimeseries/images/example-dark.jpg    |  Bin 0 -> 64352 bytes
 .../src/MixedTimeseries/images/thumbnail-dark.png  |  Bin 0 -> 96586 bytes
 .../src/MixedTimeseries/index.ts                   |    5 +-
 .../src/MixedTimeseries/transformProps.ts          |    9 +-
 .../src/MixedTimeseries/types.ts                   |    1 +
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |    4 +-
 .../src/Pie/images/Pie1-dark.jpg                   |  Bin 0 -> 62847 bytes
 .../src/Pie/images/Pie2-dark.jpg                   |  Bin 0 -> 31989 bytes
 .../src/Pie/images/Pie3-dark.jpg                   |  Bin 0 -> 32680 bytes
 .../src/Pie/images/Pie4-dark.jpg                   |  Bin 0 -> 31990 bytes
 .../src/Pie/images/thumbnail-dark.png              |  Bin 0 -> 69239 bytes
 .../plugins/plugin-chart-echarts/src/Pie/index.ts  |   14 +-
 .../src/Radar/EchartsRadar.tsx                     |    4 +-
 .../src/Radar/images/example1-dark.jpg             |  Bin 0 -> 62730 bytes
 .../src/Radar/images/example2-dark.jpg             |  Bin 0 -> 61624 bytes
 .../src/Radar/images/thumbnail-dark.png            |  Bin 0 -> 233998 bytes
 .../plugin-chart-echarts/src/Radar/index.ts        |    9 +-
 .../src/Sankey/images/example1-dark.png            |  Bin 0 -> 130141 bytes
 .../src/Sankey/images/example2-dark.png            |  Bin 0 -> 67076 bytes
 .../src/Sankey/images/thumbnail-dark.png           |  Bin 0 -> 33366 bytes
 .../plugin-chart-echarts/src/Sankey/index.ts       |    9 +-
 .../src/Sunburst/images/Sunburst1-dark.png         |  Bin 0 -> 96934 bytes
 .../src/Sunburst/images/Sunburst2-dark.png         |  Bin 0 -> 94885 bytes
 .../src/Sunburst/images/thumbnail-dark.png         |  Bin 0 -> 101965 bytes
 .../plugin-chart-echarts/src/Sunburst/index.ts     |    9 +-
 .../src/Timeseries/Area/controlPanel.tsx           |    2 +
 .../src/Timeseries/Area/images/Area1-dark.png      |  Bin 0 -> 52211 bytes
 .../src/Timeseries/Area/images/thumbnail-dark.png  |  Bin 0 -> 53829 bytes
 .../src/Timeseries/Area/index.ts                   |    5 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |    1 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    2 +
 .../Timeseries/Regular/Bar/images/Bar1-dark.png    |  Bin 0 -> 19364 bytes
 .../Timeseries/Regular/Bar/images/Bar2-dark.png    |  Bin 0 -> 30508 bytes
 .../Timeseries/Regular/Bar/images/Bar3-dark.png    |  Bin 0 -> 16278 bytes
 .../Regular/Bar/images/thumbnail-dark.png          |  Bin 0 -> 16549 bytes
 .../src/Timeseries/Regular/Bar/index.ts            |   11 +-
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |    2 +
 .../Timeseries/Regular/Line/images/Line1-dark.png  |  Bin 0 -> 71625 bytes
 .../Timeseries/Regular/Line/images/Line2-dark.png  |  Bin 0 -> 54033 bytes
 .../Regular/Line/images/thumbnail-dark.png         |  Bin 0 -> 80872 bytes
 .../src/Timeseries/Regular/Line/index.ts           |    9 +-
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |    2 +
 .../Regular/Scatter/images/Scatter1-dark.png       |  Bin 0 -> 17941 bytes
 .../Regular/Scatter/images/thumbnail-dark.png      |  Bin 0 -> 27179 bytes
 .../src/Timeseries/Regular/Scatter/index.ts        |    5 +-
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |    2 +
 .../Regular/SmoothLine/images/SmoothLine1-dark.png |  Bin 0 -> 42042 bytes
 .../Regular/SmoothLine/images/thumbnail-dark.png   |  Bin 0 -> 67405 bytes
 .../src/Timeseries/Regular/SmoothLine/index.ts     |    5 +-
 .../src/Timeseries/Step/controlPanel.tsx           |    2 +
 .../src/Timeseries/Step/images/Step1-dark.png      |  Bin 0 -> 12508 bytes
 .../src/Timeseries/Step/images/Step2-dark.png      |  Bin 0 -> 29848 bytes
 .../src/Timeseries/Step/images/thumbnail-dark.png  |  Bin 0 -> 35279 bytes
 .../src/Timeseries/Step/index.ts                   |    9 +-
 .../Timeseries/images/Time-series_Chart-dark.jpg   |  Bin 0 -> 49610 bytes
 .../src/Timeseries/images/thumbnail-dark.png       |  Bin 0 -> 84529 bytes
 .../plugin-chart-echarts/src/Timeseries/index.ts   |    5 +-
 .../src/Timeseries/transformProps.ts               |   44 +-
 .../src/Timeseries/transformers.ts                 |   65 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    1 +
 .../src/Tree/images/thumbnail-dark.png             |  Bin 0 -> 253647 bytes
 .../src/Tree/images/tree-dark.png                  |  Bin 0 -> 50385 bytes
 .../plugins/plugin-chart-echarts/src/Tree/index.ts |    5 +-
 .../src/Treemap/images/thumbnail-dark.png          |  Bin 0 -> 404817 bytes
 .../src/Treemap/images/treemap_v2_1-dark.png       |  Bin 0 -> 329290 bytes
 .../src/Treemap/images/treemap_v2_2-dark.jpg       |  Bin 0 -> 76998 bytes
 .../plugin-chart-echarts/src/Treemap/index.ts      |    9 +-
 .../src/Waterfall/controlPanel.tsx                 |   85 +-
 .../src/Waterfall/images/example1-dark.png         |  Bin 0 -> 37767 bytes
 .../src/Waterfall/images/example2-dark.png         |  Bin 0 -> 23135 bytes
 .../src/Waterfall/images/example3-dark.png         |  Bin 0 -> 23699 bytes
 .../src/Waterfall/images/thumbnail-dark.png        |  Bin 0 -> 21239 bytes
 .../plugin-chart-echarts/src/Waterfall/index.ts    |   11 +-
 .../src/Waterfall/transformProps.ts                |   50 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |    3 +
 .../plugin-chart-echarts/src/components/Echart.tsx |   25 +-
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   17 +-
 .../plugins/plugin-chart-echarts/src/types.ts      |    1 +
 .../src/utils/eventHandlers.ts                     |    7 +-
 .../src/utils/themeOverrides.test.ts               |  263 +++
 .../test/BoxPlot/transformProps.test.ts            |    8 +
 .../test/Bubble/transformProps.test.ts             |    3 +-
 .../test/Gantt/transformProps.test.ts              |    1 +
 .../test/Waterfall/transformProps.test.ts          |   48 +
 .../plugin-chart-echarts/test/tsconfig.json        |   15 +-
 .../plugins/plugin-chart-echarts/tsconfig.json     |   21 +-
 .../src/components/CodeEditor/CodeEditor.tsx       |   67 +-
 .../src/components/Handlebars/HandlebarsViewer.tsx |    4 +-
 .../plugins/plugin-chart-handlebars/src/consts.ts  |   16 -
 .../src/images/example1-dark.jpg                   |  Bin 0 -> 96349 bytes
 .../src/images/example2-dark.jpg                   |  Bin 0 -> 319392 bytes
 .../images/{thumbnail.png => thumbnail-dark.png}   |  Bin
 .../plugin-chart-handlebars/src/plugin/index.ts    |    9 +-
 .../plugins/plugin-chart-handlebars/tsconfig.json  |   21 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    1 +
 .../src/images/example-dark.jpg                    |  Bin 0 -> 64424 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 348755 bytes
 .../plugin-chart-pivot-table/src/plugin/index.ts   |    5 +-
 .../plugins/plugin-chart-pivot-table/tsconfig.json |   11 +-
 .../plugins/plugin-chart-table/package.json        |    1 +
 .../plugins/plugin-chart-table/src/consts.ts       |    2 +-
 .../plugin-chart-table/src/images/Table-dark.jpg   |  Bin 0 -> 20567 bytes
 .../plugin-chart-table/src/images/Table2-dark.jpg  |  Bin 0 -> 95338 bytes
 .../plugin-chart-table/src/images/Table3-dark.jpg  |  Bin 0 -> 162987 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 52566 bytes
 .../plugins/plugin-chart-table/src/index.ts        |   11 +-
 .../plugins/plugin-chart-table/test/tsconfig.json  |   12 +-
 .../plugins/plugin-chart-table/tsconfig.json       |   21 +-
 .../src/images/Word_Cloud-dark.jpg                 |  Bin 0 -> 166311 bytes
 .../src/images/Word_Cloud_2-dark.jpg               |  Bin 0 -> 97312 bytes
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 56188 bytes
 .../plugin-chart-word-cloud/src/plugin/index.ts    |    9 +-
 .../plugin-chart-word-cloud/test/tsconfig.json     |   12 +-
 .../plugins/plugin-chart-word-cloud/tsconfig.json  |   18 +-
 superset-frontend/scripts/build.js                 |    0
 .../spec/fixtures/mockDashboardLayout.js           |   20 +-
 superset-frontend/spec/helpers/setup.ts            |    6 +
 superset-frontend/src/SqlLab/actions/sqlLab.js     |    8 +-
 .../src/SqlLab/actions/sqlLab.test.js              |    4 +
 .../SqlLab/components/QueryAutoRefresh/index.tsx   |   11 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |    2 +-
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |    4 +-
 superset-frontend/src/SqlLab/fixtures.ts           |    4 +
 .../src/SqlLab/reducers/getInitialState.ts         |    4 +
 superset-frontend/src/SqlLab/types.ts              |    1 +
 .../SqlLab/utils/reduxStateToLocalStorageHelper.ts |    1 +
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |    5 +-
 .../src/components/Chart/ChartRenderer.jsx         |    5 +-
 .../src/components/Chart/ChartRenderer.test.jsx    |   19 +-
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  |    5 +-
 .../components/Chart/DrillBy/DrillByModal.test.tsx |  212 ++
 .../src/components/CrudThemeProvider.tsx           |   10 +-
 .../src/components/FilterableTable/index.tsx       |    1 -
 .../src/components/ListView/CardCollection.tsx     |   15 +-
 .../src/components/ListView/ListView.test.jsx      |   31 +-
 .../src/components/ListView/ListView.tsx           |   33 +-
 superset-frontend/src/components/ListView/utils.ts |   33 +-
 .../MessageToasts/{reducers.js => reducers.ts}     |   20 +-
 .../src/components/Tag/Tag.stories.tsx             |    2 +-
 superset-frontend/src/components/Tag/Tag.test.tsx  |    2 +-
 superset-frontend/src/components/Tag/index.tsx     |    2 +-
 superset-frontend/src/components/Tag/utils.tsx     |    4 +-
 .../src/components/TagsList/index.tsx              |    2 +-
 .../{authentication.ts => authentication/index.ts} |    0
 .../src/core/{commands.ts => commands/index.ts}    |    2 +-
 .../core/{environment.ts => environment/index.ts}  |    0
 .../core/{extensions.ts => extensions/index.ts}    |    0
 superset-frontend/src/core/index.ts                |   25 +-
 superset-frontend/src/core/{core.ts => models.ts}  |   90 +-
 superset-frontend/src/core/sqlLab.ts               |  206 --
 superset-frontend/src/core/sqlLab/index.ts         |  343 ++++
 superset-frontend/src/core/sqlLab/models.ts        |  235 +++
 .../src/dashboard/actions/sliceEntities.ts         |   31 +
 .../components/AddSliceCard/AddSliceCard.tsx       |    4 +-
 .../components/BuilderComponentPane/index.tsx      |    5 +-
 .../EmbeddedModal/EmbeddedModal.test.tsx           |    4 +-
 .../dashboard/components/Header/Header.test.tsx    |    4 +-
 .../dashboard/components/PropertiesModal/index.tsx |    1 +
 .../sections/StylingSection.test.tsx               |  110 +-
 .../PropertiesModal/sections/StylingSection.tsx    |  214 +-
 .../src/dashboard/components/SliceAdder.tsx        |    3 +-
 .../components/dnd/dragDroppableConfig.js          |   85 -
 .../components/dnd/dragDroppableConfig.ts          |  188 ++
 .../DynamicComponent/DynamicComponent.tsx          |    3 +-
 .../gridComponents/new/DraggableNewComponent.tsx   |    3 +-
 .../FilterBar/ActionButtons/index.tsx              |    4 +-
 ...yDashboardLayout.js => emptyDashboardLayout.ts} |   39 +-
 .../{sliceEntities.js => sliceEntities.ts}         |   35 +-
 .../src/dashboard/util/activeDashboardFilters.js   |  126 --
 .../src/dashboard/util/activeDashboardFilters.ts   |  211 ++
 ...peTreeEntry.js => buildFilterScopeTreeEntry.ts} |   32 +-
 ...sParent.test.js => dropOverflowsParent.test.ts} |   39 +-
 ...opOverflowsParent.js => dropOverflowsParent.ts} |   15 +-
 ...entContainer.js => findFirstParentContainer.ts} |    5 +-
 ...ayout.test.js => getChartIdsFromLayout.test.ts} |   33 +-
 .../dashboard/util/getChartIdsFromLayout.ts}       |   35 +-
 ...erScopes.js => getDirectPathToTabIndex.test.ts} |   37 +-
 ...athToTabIndex.js => getDirectPathToTabIndex.ts} |   12 +-
 .../util/{getEmptyLayout.js => getEmptyLayout.ts}  |   18 +-
 .../util/getKeyForFilterScopeTree.test.ts          |   78 +
 ...terScopeTree.js => getKeyForFilterScopeTree.ts} |    7 +-
 .../util/getLayoutComponentFromChartId.test.ts     |  105 +
 ...ChartId.js => getLayoutComponentFromChartId.ts} |    6 +-
 ...IdFromPath.js => getLeafComponentIdFromPath.ts} |    9 +-
 .../src/dashboard/util/isDashboardEmpty.test.ts    |    2 +-
 .../src/dashboard/util/isDashboardLoading.js       |   23 -
 .../src/dashboard/util/isDashboardLoading.test.ts  |   48 +
 .../dashboard/util/isDashboardLoading.ts}          |   32 +-
 .../util/isInDifferentFilterScopes.test.ts         |  197 ++
 ...ilterScopes.js => isInDifferentFilterScopes.ts} |   29 +-
 .../util/logging/childChartsDidLoad.test.ts        |  246 +++
 ...childChartsDidLoad.js => childChartsDidLoad.ts} |   30 +-
 .../dashboard/util/serializeFilterScopes.test.ts   |  113 ++
 ...izeFilterScopes.js => serializeFilterScopes.ts} |   24 +-
 ...ldWrapChildInRow.js => shouldWrapChildInRow.ts} |   23 +-
 superset-frontend/src/embedded/index.tsx           |   10 +-
 .../explore/components/ControlPanelsContainer.tsx  |  133 +-
 .../DataTablesPane/components/SamplesPane.tsx      |   11 +-
 .../components/SingleQueryResultPane.tsx           |    9 +-
 .../DataTablesPane/components/useResultsPane.tsx   |   37 +-
 .../explore/components/DatasourcePanel/index.tsx   |    1 +
 .../explore/components/ExploreChartPanel/index.tsx |    8 +-
 .../components/ExploreViewContainer/index.jsx      |  157 +-
 .../explore/components/RunQueryButton/index.tsx    |    1 +
 .../ColorSchemeControl/ColorSchemeControl.test.tsx |  200 ++
 .../DatasourceControl/DatasourceControl.test.tsx   |  278 +++
 .../DndColumnSelectControl/ColumnSelectPopover.tsx |  317 ++-
 .../ColumnSelectPopoverTrigger.tsx                 |   66 +-
 .../DndColumnMetricSelect.test.tsx                 |  344 ++++
 .../DndColumnMetricSelect.tsx                      |  448 +++++
 .../DndColumnSelect.test.tsx                       |  375 ++++
 .../controls/DndColumnSelectControl/Option.tsx     |    8 +
 .../DndColumnSelectControl/OptionWrapper.tsx       |    2 +
 .../controls/DndColumnSelectControl/index.ts       |   12 +
 .../controls/DndColumnSelectControl/types.ts       |    1 +
 .../controls/FilterControl/adhocFilterType.js      |   37 -
 .../controls/FilterControl/adhocFilterType.test.ts |  103 +
 .../controls/FilterControl/adhocFilterType.ts      |   64 +
 .../controls/FilterControl/columnType.test.ts      |   53 +
 .../controls/FilterControl/columnType.ts}          |   10 +-
 .../components/controls/FilterControl/types.ts     |    7 +
 .../controls/MatrixifyDimensionControl.test.tsx    |   24 -
 .../controls/MatrixifyDimensionControl.tsx         |  140 +-
 .../MetricControl/aggregateOptionType.test.ts}     |   35 +-
 .../{columnType.js => aggregateOptionType.ts}      |    9 +-
 .../types.ts => MetricControl/columnType.ts}       |   13 +-
 .../controls/MetricControl/savedMetricType.js      |   25 -
 .../controls/MetricControl/savedMetricType.test.ts |   45 +
 .../savedMetricType.ts}                            |    8 +-
 .../components/controls/MetricControl/types.ts     |    4 +
 .../components/controls/TextAreaControl.jsx        |   48 +-
 .../components/controls/TextControl/index.tsx      |    1 +
 .../components/controls/TimeOffsetControl.tsx      |    2 +-
 .../components/controls/TimeRangeControl/index.tsx |    5 +-
 .../controls/TimeSeriesColumnControl/index.jsx     |   21 +
 .../VizTypeControl/VizTypeControl.test.tsx         |   68 +
 .../controls/VizTypeControl/VizTypeGallery.tsx     |   31 +-
 .../src/explore/components/controls/index.ts       |    2 +
 .../src/explore/controlPanels/Separator.test.ts    |   76 +
 .../controlPanels/{Separator.js => Separator.ts}   |   23 +-
 .../src/explore/controlPanels/sections.tsx         |   47 +-
 ...rides.js => timeGrainSqlaAnimationOverrides.ts} |   17 +-
 .../explore/controlUtils/getSectionsToRender.ts    |    2 +-
 .../src/extensions/ExtensionsManager.ts            |    2 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |   14 +-
 .../src/features/alerts/AlertReportModal.tsx       |  742 ++++++-
 superset-frontend/src/features/alerts/types.ts     |   44 +
 .../src/features/allEntities/AllEntitiesTable.tsx  |    2 +-
 .../databases/DatabaseModal/ExtraOptions.tsx       |   97 +-
 .../databases/DatabaseModal/index.test.tsx         |    4 +-
 superset-frontend/src/features/databases/types.ts  |    1 +
 superset-frontend/src/features/home/Menu.test.tsx  |   29 +-
 superset-frontend/src/features/home/RightMenu.tsx  |   58 +-
 .../src/hooks/apiResources/sqlEditorTabs.test.ts   |    1 +
 superset-frontend/src/hooks/useLocale.ts           |    3 +-
 .../src/hooks/useThemeMenuItems.test.tsx           |    2 +-
 superset-frontend/src/hooks/useThemeMenuItems.tsx  |   12 +-
 .../src/pages/AnnotationList/index.tsx             |    2 +-
 .../src/pages/ExecutionLogList/index.tsx           |    6 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |    8 +-
 .../src/pages/QueryHistoryList/index.tsx           |    2 +-
 superset-frontend/src/preamble.ts                  |   13 +-
 .../setupCodeOverrides.ts}                         |   27 +-
 .../src/theme/tests/ThemeController.test.ts        |   49 +-
 superset-frontend/src/types/TagType.ts             |    2 -
 superset-frontend/src/types/files.d.ts             |    3 +
 .../src/utils/DebouncedMessageQueue.test.ts        |   66 +
 ...cedMessageQueue.js => DebouncedMessageQueue.ts} |   31 +-
 superset-frontend/src/utils/datasourceUtils.js     |   27 -
 .../src/utils/datasourceUtils.test.ts              |  190 ++
 superset-frontend/src/utils/datasourceUtils.ts     |   57 +
 .../src/utils/getControlsForVizType.test.ts        |  101 +
 .../src/utils/getControlsForVizType.ts             |   74 +
 .../src/utils/hostNamesConfig.test.ts              |   58 +
 .../{hostNamesConfig.js => hostNamesConfig.ts}     |   10 +-
 superset-frontend/src/utils/reducerUtils.test.ts   |  129 ++
 superset-frontend/src/utils/reducerUtils.ts        |  107 +
 superset-frontend/src/views/App.tsx                |    4 +-
 .../TimeTable/components/Sparkline/Sparkline.tsx   |    1 +
 .../components/SparklineCell/SparklineCell.tsx     |   20 +-
 .../TimeTable/images/example-dark.jpg              |  Bin 0 -> 75683 bytes
 .../TimeTable/images/thumbnail-dark.png            |  Bin 0 -> 14908 bytes
 .../src/visualizations/TimeTable/index.ts          |    5 +-
 .../src/visualizations/TimeTable/types.ts          |    3 +
 superset-frontend/tsconfig.base.json               |   43 -
 superset-frontend/tsconfig.json                    |   98 +-
 superset/app.py                                    |    4 +-
 superset/cli/examples.py                           |    2 +-
 superset/commands/database/uploaders/csv_reader.py |    6 +-
 .../commands/database/uploaders/excel_reader.py    |    2 +-
 superset/commands/report/execute.py                |   34 +-
 superset/commands/report/execute_now.py            |    4 +-
 superset/commands/theme/seed.py                    |    9 +-
 superset/commands/theme/set_system_theme.py        |    4 +-
 superset/common/query_context_factory.py           |   77 +
 superset/common/query_object.py                    |   14 +-
 superset/config.py                                 |    6 +-
 superset/daos/base.py                              |  499 ++++-
 superset/daos/chart.py                             |   15 +-
 superset/daos/dashboard.py                         |   34 +-
 superset/daos/dataset.py                           |   19 +-
 superset/daos/datasource.py                        |    2 +-
 superset/daos/theme.py                             |    9 +-
 superset/dashboards/api.py                         |   10 +-
 superset/databases/schemas.py                      |    1 +
 superset/datasets/schemas.py                       |    4 +
 superset/examples/bart_lines.py                    |    2 +-
 superset/examples/birth_names.py                   |    7 +-
 superset/examples/multiformat_time_series.py       |    4 +-
 superset/examples/paris.py                         |    2 +-
 superset/examples/random_time_series.py            |    2 +-
 superset/examples/sf_population_polygons.py        |    2 +-
 superset/extensions/__init__.py                    |    5 +-
 superset/extensions/discovery.py                   |   15 +-
 superset/extensions/local_extensions_watcher.py    |   15 +-
 superset/extensions/utils.py                       |   25 +-
 superset/initialization/__init__.py                |   15 +-
 superset/migrations/env.py                         |    4 +-
 superset/migrations/shared/catalogs.py             |   20 +-
 superset/migrations/shared/migrate_viz/base.py     |   10 +-
 superset/migrations/shared/security_converge.py    |   16 +-
 superset/migrations/shared/utils.py                |  133 +-
 ...2018-12-11_22-03_fb13d49b72f9_better_filters.py |    4 +-
 ..._14-13_3325d4caccc8_dashboard_scoped_filters.py |    6 +-
 ...978245563a02_migrate_iframe_to_dash_markdown.py |    2 +-
 ...5b9441_rename_big_viz_total_form_data_fields.py |   10 +-
 ...d1d2_move_pivot_table_v2_legacy_order_by_to_.py |   10 +-
 ...delete_obsolete_druid_nosql_slice_parameters.py |    4 +-
 ...6f8b1280_cleanup_erroneous_parent_filter_ids.py |    2 +-
 ...9_17-54_ee179a490af9_deckgl_path_width_units.py |    2 +-
 ...9123a_update_charts_with_old_time_comparison.py |   10 +-
 ...2_convert_metric_currencies_from_str_to_json.py |    4 +-
 superset/models/dynamic_plugins.py                 |    1 +
 superset/models/helpers.py                         |    2 +-
 superset/reports/models.py                         |  114 ++
 superset/security/manager.py                       |   42 +-
 superset/stats_logger.py                           |   16 +-
 superset/tags/api.py                               |    6 +-
 superset/tasks/cache.py                            |    6 +-
 superset/templates/head_custom_extra.html          |   25 +
 superset/templates/superset/spa.html               |    4 +
 superset/templates/tail_js_custom_extra.html       |   25 +
 superset/themes/api.py                             |   16 +-
 superset/translations/fr/LC_MESSAGES/messages.po   | 2042 ++++++++++++++++----
 superset/utils/core.py                             |    9 +-
 superset/utils/screenshot_utils.py                 |   19 +-
 superset/utils/webdriver.py                        |   12 +-
 superset/views/base.py                             |   25 +-
 superset/views/base_api.py                         |    6 +-
 superset/views/core.py                             |   11 +-
 superset/views/datasource/utils.py                 |   49 +-
 superset/viz.py                                    |  303 ++-
 tests/common/logger_utils.py                       |   20 +-
 tests/conftest.py                                  |    2 +
 tests/integration_tests/base_api_tests.py          |    6 +-
 tests/integration_tests/core_tests.py              |    2 +-
 tests/integration_tests/dao/base_dao_test.py       | 1613 ++++++++++++++++
 tests/integration_tests/dao/conftest.py            |  143 ++
 tests/integration_tests/dashboards/api_tests.py    |    1 +
 .../dashboards/dashboard_test_utils.py             |    2 +-
 .../dashboards/superset_factory_util.py            |   16 +-
 tests/integration_tests/dynamic_plugins_tests.py   |    4 +-
 tests/integration_tests/fixtures/users.py          |    6 +-
 tests/integration_tests/queries/api_tests.py       |   36 +-
 tests/integration_tests/reports/api_tests.py       |    6 +
 .../commands/execute_dashboard_report_tests.py     |   13 +-
 tests/integration_tests/reports/commands_tests.py  |   18 +-
 tests/integration_tests/security_tests.py          |   22 +-
 tests/integration_tests/viz_tests.py               |  879 ++++++++-
 .../common/test_query_context_factory.py           |  438 +++++
 tests/unit_tests/conftest.py                       |    2 +-
 tests/unit_tests/dao/base_dao_test.py              |  112 +-
 tests/unit_tests/daos/test_theme_dao.py            |   16 +-
 tests/unit_tests/databases/api_test.py             |   20 +-
 .../utils/test_replace_verbose_with_column.py      |   83 +
 tests/unit_tests/migrations/shared/utils_test.py   |   10 +-
 tests/unit_tests/reports/model_test.py             |  242 +++
 tests/unit_tests/security/manager_test.py          |    6 +-
 tests/unit_tests/utils/test_screenshot_utils.py    |   17 +-
 tests/unit_tests/utils/webdriver_test.py           |   12 +-
 676 files changed, 21313 insertions(+), 4998 deletions(-)
 create mode 100644 .claude/commands/js-to-ts.md
 create mode 100644 .claude/projects/js-to-ts/AGENT.md
 create mode 100644 .claude/projects/js-to-ts/COORDINATOR.md
 create mode 100644 .claude/projects/js-to-ts/PROJECT.md
 create mode 100644 .github/workflows/superset-playwright.yml
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/drillby.test.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/control.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Ellipsis.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Item.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Item.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Prev.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Prev.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Wrapper.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Wrapper.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/merge.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/merge.ts
 create mode 100644 superset-frontend/playwright.config.ts
 create mode 100644 superset-frontend/playwright/README.md
 create mode 100644 superset-frontend/playwright/components/core/Button.ts
 create mode 100644 superset-frontend/playwright/components/core/Form.ts
 create mode 100644 superset-frontend/playwright/components/core/Input.ts
 rename superset-frontend/{src/explore/components/controls/MetricControl/aggregateOptionType.js => playwright/components/core/index.ts} (85%)
 create mode 100644 superset-frontend/playwright/pages/AuthPage.ts
 create mode 100644 superset-frontend/playwright/tests/auth/login.spec.ts
 rename superset-frontend/{src/setup/setupExtensions.ts => playwright/utils/urls.ts} (89%)
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-calendar/src/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-calendar/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-chord/src/images/chord-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-chord/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-country-map/src/images/exampleGermany-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-country-map/src/images/exampleUsa-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-country-map/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-horizon/src/images/Horizon_Chart-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-horizon/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/images/MapBox-dark.jpg
 copy superset-frontend/plugins/legacy-plugin-chart-map-box/src/images/{MapBox2.jpg => MapBox2-dark.jpg} (100%)
 copy superset-frontend/plugins/legacy-plugin-chart-map-box/src/images/{thumbnail.png => thumbnail-dark.png} (100%)
 rename superset-frontend/plugins/legacy-plugin-chart-map-box/src/utils/{roundDecimal.js => roundDecimal.ts} (82%)
 rename superset-frontend/plugins/legacy-plugin-chart-map-box/test/utils/{roundDecimal.test.js => roundDecimal.test.ts} (100%)
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/images/example-dark.jpg
 rename superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/images/{thumbnailLarge.png => example.jpg} (100%)
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/images/example1-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/images/example2-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-partition/src/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-partition/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-rose/src/images/example1-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-rose/src/images/example2-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-rose/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-world-map/src/images/WorldMap1-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-world-map/src/images/WorldMap2-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-world-map/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/Multi/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/Multi/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Arc/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Arc/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Contour/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Contour/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Geojson/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Geojson/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Grid/images/example-dark.png
 copy superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Grid/images/{thumbnail.png => thumbnail-dark.png} (100%)
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Heatmap/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Heatmap/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Hex/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Hex/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/images/example-dark.png
 copy superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/images/{thumbnail.png => thumbnail-dark.png} (100%)
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.test.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/images/example-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/images/thumbnail-dark.png
 copy superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/images/{example.png => example-dark.png} (100%)
 copy superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/images/{thumbnail.png => thumbnail-dark.png} (100%)
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateEditor.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/controlRegistry.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/multiValueUtils.ts
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/tooltipUtils.tsx
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bubble/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bubble/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bullet/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bullet/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Compare/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/Compare/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/TimePivot/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/TimePivot/images/example.jpg
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/src/TimePivot/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/images/Table-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/images/Table2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/images/Table3-dark.jpg
 copy superset-frontend/plugins/plugin-chart-ag-grid-table/src/images/{thumbnail.png => thumbnail-dark.png} (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/src/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/src/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberTotal/images/BigNumber-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberTotal/images/BigNumber2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberTotal/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/images/Big_Number_Trendline-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/images/BoxPlot-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Bubble/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Bubble/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Bubble/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Funnel/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Funnel/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gantt/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gantt/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gantt/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gauge/images/example1-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gauge/images/example2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Gauge/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Graph/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Graph/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/example3-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Heatmap/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Histogram/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Histogram/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Histogram/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Pie/images/Pie1-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Pie/images/Pie2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Pie/images/Pie3-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Pie/images/Pie4-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Pie/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Radar/images/example1-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Radar/images/example2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Radar/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sankey/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sankey/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sankey/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/images/Sunburst1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/images/Sunburst2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/images/Area1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/images/Bar1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/images/Bar2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/images/Bar3-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/images/Line1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/images/Line2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/images/Scatter1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/images/SmoothLine1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/images/Step1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/images/Step2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/images/Time-series_Chart-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Tree/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Tree/images/tree-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Treemap/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Treemap/images/treemap_v2_1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Treemap/images/treemap_v2_2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example2-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example3-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/utils/themeOverrides.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/src/images/example1-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/src/images/example2-dark.jpg
 copy superset-frontend/plugins/plugin-chart-handlebars/src/images/{thumbnail.png => thumbnail-dark.png} (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/src/images/example-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-table/src/images/Table-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-table/src/images/Table2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-table/src/images/Table3-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-table/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-word-cloud/src/images/Word_Cloud-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-word-cloud/src/images/Word_Cloud_2-dark.jpg
 create mode 100644 superset-frontend/plugins/plugin-chart-word-cloud/src/images/thumbnail-dark.png
 mode change 100644 => 100755 superset-frontend/scripts/build.js
 rename superset-frontend/src/components/MessageToasts/{reducers.js => reducers.ts} (77%)
 rename superset-frontend/src/core/{authentication.ts => authentication/index.ts} (100%)
 rename superset-frontend/src/core/{commands.ts => commands/index.ts} (98%)
 rename superset-frontend/src/core/{environment.ts => environment/index.ts} (100%)
 rename superset-frontend/src/core/{extensions.ts => extensions/index.ts} (100%)
 rename superset-frontend/src/core/{core.ts => models.ts} (57%)
 delete mode 100644 superset-frontend/src/core/sqlLab.ts
 create mode 100644 superset-frontend/src/core/sqlLab/index.ts
 create mode 100644 superset-frontend/src/core/sqlLab/models.ts
 delete mode 100644 superset-frontend/src/dashboard/components/dnd/dragDroppableConfig.js
 create mode 100644 superset-frontend/src/dashboard/components/dnd/dragDroppableConfig.ts
 rename superset-frontend/src/dashboard/fixtures/{emptyDashboardLayout.js => emptyDashboardLayout.ts} (67%)
 rename superset-frontend/src/dashboard/reducers/{sliceEntities.js => sliceEntities.ts} (80%)
 delete mode 100644 superset-frontend/src/dashboard/util/activeDashboardFilters.js
 create mode 100644 superset-frontend/src/dashboard/util/activeDashboardFilters.ts
 rename superset-frontend/src/dashboard/util/{buildFilterScopeTreeEntry.js => buildFilterScopeTreeEntry.ts} (73%)
 rename superset-frontend/src/dashboard/util/{dropOverflowsParent.test.js => dropOverflowsParent.test.ts} (82%)
 rename superset-frontend/src/dashboard/util/{dropOverflowsParent.js => dropOverflowsParent.ts} (75%)
 rename superset-frontend/src/dashboard/util/{findFirstParentContainer.js => findFirstParentContainer.ts} (89%)
 rename superset-frontend/src/dashboard/util/{getChartIdsFromLayout.test.js => getChartIdsFromLayout.test.ts} (70%)
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/Next.tsx => src/dashboard/util/getChartIdsFromLayout.ts} (60%)
 copy superset-frontend/src/dashboard/util/{serializeFilterScopes.js => getDirectPathToTabIndex.test.ts} (56%)
 rename superset-frontend/src/dashboard/util/{getDirectPathToTabIndex.js => getDirectPathToTabIndex.ts} (80%)
 rename superset-frontend/src/dashboard/util/{getEmptyLayout.js => getEmptyLayout.ts} (74%)
 create mode 100644 superset-frontend/src/dashboard/util/getKeyForFilterScopeTree.test.ts
 rename superset-frontend/src/dashboard/util/{getKeyForFilterScopeTree.js => getKeyForFilterScopeTree.ts} (87%)
 create mode 100644 superset-frontend/src/dashboard/util/getLayoutComponentFromChartId.test.ts
 rename superset-frontend/src/dashboard/util/{getLayoutComponentFromChartId.js => getLayoutComponentFromChartId.ts} (85%)
 rename superset-frontend/src/dashboard/util/{getLeafComponentIdFromPath.js => getLeafComponentIdFromPath.ts} (84%)
 delete mode 100644 superset-frontend/src/dashboard/util/isDashboardLoading.js
 create mode 100644 superset-frontend/src/dashboard/util/isDashboardLoading.test.ts
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/Ellipsis.tsx => src/dashboard/util/isDashboardLoading.ts} (63%)
 create mode 100644 superset-frontend/src/dashboard/util/isInDifferentFilterScopes.test.ts
 rename superset-frontend/src/dashboard/util/{isInDifferentFilterScopes.js => isInDifferentFilterScopes.ts} (65%)
 create mode 100644 superset-frontend/src/dashboard/util/logging/childChartsDidLoad.test.ts
 rename superset-frontend/src/dashboard/util/logging/{childChartsDidLoad.js => childChartsDidLoad.ts} (57%)
 create mode 100644 superset-frontend/src/dashboard/util/serializeFilterScopes.test.ts
 rename superset-frontend/src/dashboard/util/{serializeFilterScopes.js => serializeFilterScopes.ts} (68%)
 rename superset-frontend/src/dashboard/util/{shouldWrapChildInRow.js => shouldWrapChildInRow.ts} (65%)
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnMetricSelect.tsx
 delete mode 100644 superset-frontend/src/explore/components/controls/FilterControl/adhocFilterType.js
 create mode 100644 superset-frontend/src/explore/components/controls/FilterControl/adhocFilterType.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/FilterControl/adhocFilterType.ts
 create mode 100644 superset-frontend/src/explore/components/controls/FilterControl/columnType.test.ts
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => src/explore/components/controls/FilterControl/columnType.ts} (76%)
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/Next.test.tsx => src/explore/components/controls/MetricControl/aggregateOptionType.test.ts} (51%)
 rename superset-frontend/src/explore/components/controls/MetricControl/{columnType.js => aggregateOptionType.ts} (84%)
 copy superset-frontend/src/explore/components/controls/{FilterControl/types.ts => MetricControl/columnType.ts} (76%)
 delete mode 100644 superset-frontend/src/explore/components/controls/MetricControl/savedMetricType.js
 create mode 100644 superset-frontend/src/explore/components/controls/MetricControl/savedMetricType.test.ts
 rename superset-frontend/src/explore/components/controls/{FilterControl/columnType.js => MetricControl/savedMetricType.ts} (84%)
 create mode 100644 superset-frontend/src/explore/controlPanels/Separator.test.ts
 rename superset-frontend/src/explore/controlPanels/{Separator.js => Separator.ts} (79%)
 rename superset-frontend/src/explore/controlPanels/{timeGrainSqlaAnimationOverrides.js => timeGrainSqlaAnimationOverrides.ts} (64%)
 rename superset-frontend/src/{dashboard/util/getChartIdsFromLayout.js => setup/setupCodeOverrides.ts} (65%)
 create mode 100644 superset-frontend/src/utils/DebouncedMessageQueue.test.ts
 rename superset-frontend/src/utils/{DebouncedMessageQueue.js => DebouncedMessageQueue.ts} (69%)
 delete mode 100644 superset-frontend/src/utils/datasourceUtils.js
 create mode 100644 superset-frontend/src/utils/datasourceUtils.test.ts
 create mode 100644 superset-frontend/src/utils/datasourceUtils.ts
 create mode 100644 superset-frontend/src/utils/getControlsForVizType.test.ts
 create mode 100644 superset-frontend/src/utils/getControlsForVizType.ts
 create mode 100644 superset-frontend/src/utils/hostNamesConfig.test.ts
 rename superset-frontend/src/utils/{hostNamesConfig.js => hostNamesConfig.ts} (85%)
 create mode 100644 superset-frontend/src/utils/reducerUtils.test.ts
 create mode 100644 superset-frontend/src/utils/reducerUtils.ts
 create mode 100644 superset-frontend/src/visualizations/TimeTable/images/example-dark.jpg
 create mode 100644 superset-frontend/src/visualizations/TimeTable/images/thumbnail-dark.png
 delete mode 100644 superset-frontend/tsconfig.base.json
 create mode 100644 superset/templates/head_custom_extra.html
 create mode 100644 superset/templates/tail_js_custom_extra.html
 create mode 100644 tests/integration_tests/dao/base_dao_test.py
 create mode 100644 tests/integration_tests/dao/conftest.py
 create mode 100644 tests/unit_tests/common/test_query_context_factory.py
 create mode 100644 tests/unit_tests/datasource/utils/test_replace_verbose_with_column.py
 create mode 100644 tests/unit_tests/reports/model_test.py