You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by kg...@apache.org on 2025/11/24 16:38:22 UTC

(superset) branch folders updated (40a21752e5 -> c0bfb57e47)

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

kgabryje pushed a change to branch folders
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard 40a21752e5 Fix dnd
 discard 8e536f7f29 Fix paths
 discard 8bf23632bd Clean up
 discard df7141b506 Fix jumping loop
 discard 51ca2429b6 Handle dragging multiple items
 discard c041a29db8 feat: Datasource folders editor
     add b0d3f0f0d4 feat: add customizable brand spinners with theme integration (#34764)
     add cefd046ea0 fix(sqllab): autocomplete and delete tabs (#34781)
     add 448a28545b fix(ui-core): Invalid postTransform process (#34874)
     add 355d7e1ee5 chore(deps-dev): bump eslint from 9.30.0 to 9.34.0 in /superset-websocket (#34936)
     add 15d2f22eb4 chore(deps): bump react-virtualized-auto-sizer and @types/react-virtualized-auto-sizer in /superset-frontend (#34938)
     add 1444ef36b9 chore(deps-dev): bump @babel/core from 7.27.7 to 7.28.3 in /superset-frontend (#34940)
     add fa5b0d7281 chore(deps-dev): bump cross-env from 7.0.3 to 10.0.0 in /superset-frontend (#34941)
     add 3081c7fb62 chore(deps-dev): bump fork-ts-checker-webpack-plugin from 9.0.2 to 9.1.0 in /superset-frontend (#34942)
     add 3ba3c09c47 chore(deps-dev): bump @types/jsonwebtoken from 9.0.9 to 9.0.10 in /superset-websocket (#34946)
     add a81282adeb chore(deps-dev): bump ts-jest from 29.3.1 to 29.4.1 in /superset-websocket (#34947)
     add a6b4ff9847 chore(deps): bump react-syntax-highlighter from 15.6.1 to 15.6.6 in /superset-frontend (#34949)
     add 0cd0b37983 chore(deps): bump @rjsf/core from 5.24.1 to 5.24.13 in /superset-frontend (#34950)
     add d2a1d86561 chore(deps): bump actions/download-artifact from 4 to 5 (#34963)
     add c426723275 chore(deps): bump geostyler-data from 1.0.0 to 1.1.0 in /superset-frontend (#34966)
     add e77ff267a1 chore(deps): bump luxon from 3.6.1 to 3.7.1 in /superset-frontend (#34967)
     add 61f359d565 chore(deps): bump actions/setup-java from 4 to 5 (#34968)
     add 3dbe593a4a chore(deps): bump actions/checkout from 4 to 5 (#34969)
     add 7320ad9a0a chore(deps): bump actions/first-interaction from 2 to 3 (#34970)
     add e5e3ddb24e chore(deps): bump codecov/codecov-action from 3 to 5 (#34972)
     add ea0a77daaf fix(tests): resolve AlertReportModal checkmark test failures (#34995)
     add 8406a827dd fix(deps): expand pyarrow version range to <19 (#34870)
     add 2e51d02806 fix: doris genericDataType modify (#35011)
     add 2e4ccffc11 fix: Add TypeScript declaration file generation to @apache-superset/core package (#35002)
     add 59df0d6f15 fix(RoleListEditModal): display user's other properties in table (#35017)
     add 569a7b33a5 fix(theming): more visual bugs (#34987)
     add 7fb7ac8bef fix(sql): Add Impala dialect support to sqlglot parser (#34662)
     add 031fb4b5a8 fix: display legend mixed timeseries chart  (#35005)
     add 9424538bb1 feat: add sort legend to legend section (#34911)
     add ce74ae095d feat: Use dashboard name for screenshot download (#34988)
     add bc54b7970a fix(echarts): rename time series shifted for isTimeComparisonValue (#35022)
     add c65cb284e6 fix(chart): change "No query." to "Query cannot be loaded" in Multi Layer Deck.gl Chart (#34973)
     add d826e90395 chore(deps-dev): bump @typescript-eslint/parser from 8.33.0 to 8.41.0 in /superset-websocket (#34959)
     add 472e599f91 chore(deps): bump @rjsf/validator-ajv8 from 5.24.12 to 5.24.13 in /superset-frontend (#34953)
     add 876257fb94 chore(deps): bump ts-loader from 9.5.2 to 9.5.4 in /docs (#34956)
     add 4e969d19d1 feat: allow create metric and add to folder in single request (#34993)
     add a20b236809 chore(deps): bump sha.js from 2.4.11 to 2.4.12 in /docs (#34797)
     add 9efb80dbf4 fix(tests): one of integration test in TestSqlaTableModel  does not support MySQL "concat"  (#35007)
     add 5a3182ce21 fix: mixed timeseries chart add legend margin (#35036)
     add bef1f4d045 fix(theming): Icons in ExecutionLogList and Country map chart tooltip theme consistency (#34828)
     add 385471c34d fix(utils): ensure webdriver timeout compatibility with urllib3 2.x (#34440)
     add 0fce5ecfa5 fix(dashboard): normalize spacings and background colors (#35001)
     add 1c2b9db4f0 fix: Upload CSV as Dataset (#34763)
     add da7f6efea8 docs(typos): correct spelling mistakes (#35043)
     add b05def1a8a fix(superset-embedded-sdk/release-if-necessary): remove axios (#35038)
     add c5f220a9ff fix(table): table search input placeholder (#35064)
     add 15e4e8df94 fix(utils): Suppress pandas date parsing warnings in normalize_dttm_col (#35042)
     add 4c2b27e7f0 fix: Change database event in core (#35071)
     add 65376c7baf fix(Table Chart): render null dates properly (#34558)
     add 2f64343186 feat(dataset): create usage tab for dataset (#34707)
     add 42b15b6840 fix(translation): order incompatible placeholders, translated placeholders, semantic changes (#34722)
     add fedb3ca941 chore(deps-dev): bump @typescript-eslint/parser from 8.40.0 to 8.41.0 in /docs (#34934)
     add 912ed2ba80 fix(timeshifts): Add missing feature flag to enum (#35072)
     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 5ec8f9d886 chore: bump sqlglot to 27.15.2 (#35176)
     add 48e1b1ff2c feat(bug): defensive code to avoid accesing attribute of a NoneType object (#35219)
     add ce55cc7dd7 fix(table-chart): fix cell bar visibility in dark theme (#35211)
     add 4027bad1d6 docs(oracle): update driver (#35242)
     add 78faaee685 chore: Reference GenericDataType from @apache-superset/core (#35214)
     add c601341520 fix(ConditionalFormattingControl): icon color in dark mode (#35243)
     add 9b6876be62 fix: Typescript declaration files (#35244)
     add 619b341cad fix: docker-compose file and superset-core (#35235)
     add dce74014da refactor(deckgl): update deck.gl charts to use new api (#34859)
     add fe7f8062f3 fix: Enable Playwright migration with graceful Selenium fallback  (#35063)
     add e85337c543 fix(docs): escape comparison operators in MDX files to resolve build errors (#35185)
     add f030d658c5 chore: Bumps @apache-superset/core to 0.0.1-rc5 (#35247)
     add bc0c40c80e feat(helm): Allow multi-database connection support (#34327)
     add 5fbda3af40 chore(effect): add eslint plugin to reduce rerenders (#35223)
     add 4b71adaa9c feat(themes): Adding SupersetText support to Themes Modal (#35248)
     add db88d80b3f fix: docker-compose-image-tag (#35246)
     add a5ad1d186c docs: Add instruction to avoid time-specific language in code comments (#35200)
     add b6f6b75348 fix(dashboard): update header border to use colorBorder token (#35199)
     add 608e3baf43 feat(build): auto-rebuild/check TypeScript types for packages/plugins in webpack (#35240)
     add cb88d886c7 fix(PropertiesModal): do not show validation errors while loading (#35215)
     add ec322dfd8d fix(Mixed Chart): Tooltip incorrectly displays numbers with optional Y-axis format and showQueryIdentifiers set to true (#35224)
     add 94686ddfbe fix(SQL Lab): syncTable on new tabs (#35216)
     add 0defcb604b chore(sqllab): remove unused json param (#35065)
     add 7f3840557a chore(react18): Migrate legacy react methods (#34892)
     add 927cc1cda1 chore(deps): bump tar-fs from 3.1.0 to 3.1.1 in /superset-frontend (#35272)
     add abc2d46fed refactor: remove obsolete Flask flash messaging system (#35237)
     add 0de78d8203 fix(deck.gl): ensure min/max values are included in polygon map legend breakpoints (#35033)
     add 7a9dbfe879 fix(BuilderComponentPane): navigation tabs padding (#35213)
     add fb9032c05c fix: Cosmetic issues (#35122)
     add 77a5969dc1 feat(pdf): add configurable PDF compression level support (#34096)
     add b652fab042 fix(table): New ad-hoc columns retain the name of previous columns (#35274)
     add 027b25e6b8 fix(DateFilterControl): remove modal overlay style to fix z-index issues (#35292)
     add 784ff82847 fix(sqllab): fix blank bottom section in SQL Lab left panel (#35309)
     add 82e2bc6181 fix(DatasourceModal): replace imperative modal updates with declarative state (#35256)
     add ff102aadb3 refactor(llm): rename LLMS.md to AGENTS.md for modern AI tools (#35314)
     add d62249d13f test(frontend): Migrate from describe/it to flat test() pattern (#35305)
     add 90f281f585 fix: AceEditor Autocomplete Highlight (#35316)
     add 0b73b4842f fix: Enable DuckDB examples loading in showtime ephemeral environments (#35294)
     add 4e093a8e2a feat: sqlglot dialect for Pinot (#35333)
     add 7deed00def chore(frontend): Consolidate ESLint configurations in `superset-frontend` (#35318)
     add ef78d2af06 fix(doris): Don't set supports_cross_catalog_queries to true (#35332)
     add 220480b627 feat(theming): add base theme config (#35220)
     add d51b35f61b fix: adhoc orderby in explore (#35342)
     add bf88d9bb1c fix(pinot): restrict types in dialect (#35337)
     add 88e5581d04 fix: Broken splitter in sql lab and some minor visual fixes (#35416)
     add 19db0353a9 feat(db): custom database error messages (#34674)
     add a66c230058 fix(SqlLab): Hit tableschemaview with a valid queryEditorId (#35341)
     add 6fbbc85df7 chore(deps): bump actions/setup-node from 4 to 5 (#35394)
     add 5a90a84685 chore(deps): bump actions/github-script from 7 to 8 (#35385)
     add d27210794c chore(deps): bump actions/setup-python from 5 to 6 (#35390)
     add 84e21434b3 chore(deps): bump aws-actions/configure-aws-credentials from 4 to 5 (#35387)
     add 40378afbf8 chore(deps): bump actions/labeler from 5 to 6 (#35386)
     add d8688cf8b1 fix(explore): close unsaved changes modal when discarding changes (#35307)
     add a3b91f924d chore(deps): bump @babel/runtime from 7.28.2 to 7.28.4 in /superset-frontend (#35403)
     add c188952de2 chore(deps-dev): bump webpack from 5.99.9 to 5.102.0 in /superset-frontend (#35402)
     add 6b0b13e4e7 chore(deps-dev): bump typescript-eslint from 8.40.0 to 8.45.0 in /docs (#35381)
     add 13a164dd63 fix: table quoting in DBs with `supports_cross_catalog_queries=True` (#35350)
     add 50ed9b9e0e chore(deps-dev): bump @types/jquery from 3.5.32 to 3.5.33 in /superset-frontend (#35410)
     add 0c639abe17 chore(deps-dev): bump jsdom from 26.0.0 to 27.0.0 in /superset-frontend (#35409)
     add 85ec3b1901 chore(deps-dev): bump @applitools/eyes-storybook from 3.55.6 to 3.60.0 in /superset-frontend (#35407)
     add 2991f60368 chore(deps-dev): bump @types/react-json-tree from 0.6.11 to 0.13.0 in /superset-frontend (#35406)
     add 2ef7232959 chore(deps-dev): bump eslint from 9.34.0 to 9.36.0 in /docs (#35377)
     add f6b2abee81 chore(deps-dev): bump webpack from 5.101.3 to 5.102.0 in /docs (#35368)
     add 7c415c7cd9 chore(deps): bump hot-shots from 11.1.0 to 11.2.0 in /superset-websocket (#35358)
     add 28389de93e fix(ci): fix GHA for docs during PRs (#35186)
     add aa97d2fe03 fix(pinot): dialect date truncation (#35420)
     add 2f8657f122 chore(deps-dev): bump eslint from 9.34.0 to 9.36.0 in /superset-websocket (#35359)
     add 5493e2c96d chore(dependabot): switch back to daily cadence (a trickle rather than a flood) (#35421)
     add 5428376662 fix(pinot): `DATE_ADD` function (#35424)
     add 449a89c214 fix(slice): Fix using isdigit when id passed as int (#35452)
     add f3349388d0 fix(pinot): `DATE_SUB` function (#35426)
     add 30021f8ede fix(pinot): `SUBSTR` function (#35427)
     add fe8348c03a fix(dataset): sort by database in Dataset and Saved queries Issue (#35277)
     add 553204e613 fix(dashboard): exit markdown edit mode when clicking outside of element (#35336)
     add 3202ff4b3f fix(pinot): more functions (#35451)
     add 0364933e8b fix(explore): Remove query autotrigger (#35418)
     add e2a7dc9256 chore(deps): bump ioredis and @types/ioredis in /superset-websocket (#35428)
     add a7cc48dcda fix(test): changed test use unsaved changes prompt (#35447)
     add d83a88d5d9 chore(deps-dev): bump typescript-eslint from 8.19.0 to 8.45.0 in /superset-websocket (#35430)
     add 6ad8d29fcd chore(deps-dev): bump globals from 16.3.0 to 16.4.0 in /superset-websocket (#35431)
     add 62dc5c0306 fix(cache): ensure SQL is sanitized before cache key generation (#35419)
     add 8ebe045846 chore(deps): bump antd from 5.27.1 to 5.27.4 in /docs (#35432)
     add 38cb577fc6 chore(deps): bump swagger-ui-react from 5.27.1 to 5.29.1 in /docs (#35437)
     add 8fde970b6b chore(deps): bump @ant-design/icons from 6.0.0 to 6.1.0 in /docs (#35439)
     add 96170e43c0 fix(ag-grid-table): remove enterprise features to use community version (#35453)
     add 0e2fb1d1a3 fix(theming): CRUD view padding (#35321)
     add 891f826143 fix(dashboard): Navigate to new dashboard when saved as a new one (#35339)
     add 139b5ae20c fix(sqlglot): adhoc expressions (#35482)
     add a8fd27aec3 chore(deps): bump caniuse-lite from 1.0.30001739 to 1.0.30001747 in /docs (#35473)
     add 281fa67b8e chore(deps): bump swagger-ui-react from 5.29.1 to 5.29.2 in /docs (#35472)
     add fd4fe2c2ad chore(deps-dev): bump typescript from 5.9.2 to 5.9.3 in /docs (#35471)
     add 593e376cf2 chore(deps): bump winston from 3.17.0 to 3.18.3 in /superset-websocket (#35470)
     add d83a938870 chore(deps-dev): bump globals from 16.3.0 to 16.4.0 in /docs (#35469)
     add 249733c768 chore(deps-dev): bump @types/node from 24.2.0 to 24.6.2 in /superset-websocket (#35467)
     add 8bb911bc91 fix(modals): use Modal.useModal hook for proper dark mode theming (#35198)
     add d23006ce03 chore(deps-dev): bump @types/node from 22.15.30 to 24.6.2 in /superset-frontend (#35476)
     add 04b1a45416 fix(security-manager): switch from deprecated get_session to session attribute (#35290)
     add 635b7a6a4d fix(loading): improve loading screen theming for dark mode support (#35129)
     add 821173f6c4 fix(frontend): remove describe/it blocks from Modal.useModal tests (#35497)
     add d39c55e941 fix(Select): Prevent closing the select when clicking on a tag (#35487)
     add a7b158c7fa fix(explore): correct search icon in dashboard submenu (#35489)
     add 4545d55d30 fix: Support metric macro for  embedded users (#35508)
     add 77c3146829 fix(webdriver): add missing options object to WebDriver initialization (#35504)
     add b7266e647c chore(deps): bump swagger-ui-react from 5.29.2 to 5.29.3 in /docs (#35517)
     add 70cd4dd9d9 chore(deps): bump caniuse-lite from 1.0.30001747 to 1.0.30001748 in /docs (#35515)
     add 64af516dfd chore(deps-dev): bump @eslint/js from 9.36.0 to 9.37.0 in /docs (#35511)
     add 72464afb2e chore(deps-dev): bump eslint from 9.36.0 to 9.37.0 in /superset-websocket (#35513)
     add 9d50f1b8a2 fix: update chart with dashboards validation (#35523)
     add a90928766b fix(theme-crud): add unsaved changes modal (#35254)
     add 89932fa0b2 fix(explore): Include chart canvases in the screenshot (#35491)
     add f7b9d7a64b fix(chart): Fixes BigNumber gradient appearing blackish in light mode (#35527)
     add e32c2d82a5 chore(deps-dev): bump eslint from 9.36.0 to 9.37.0 in /docs (#35549)
     add c519094313 chore(deps-dev): bump @types/node from 24.6.2 to 24.7.0 in /superset-websocket (#35547)
     add 10cb964c96 chore(deps-dev): bump ts-jest from 29.4.1 to 29.4.4 in /superset-websocket (#35516)
     add d7903631f5 chore(deps-dev): bump @docusaurus/module-type-aliases from 3.8.1 to 3.9.1 in /docs (#35514)
     add d383b2bf3c chore(deps-dev): bump eslint-plugin-react from 7.37.4 to 7.37.5 in /superset-frontend (#35445)
     add 441e043bff feat(docs): Populate Developer Portal with comprehensive documentation framework (#35217)
     add 50a5854b25 fix: dataset update with invalid SQL query (#35543)
     add 668dcf4799 chore(deps): bump caniuse-lite from 1.0.30001748 to 1.0.30001749 in /docs (#35565)
     add 930736bdb0 chore(deps-dev): bump webpack from 5.102.0 to 5.102.1 in /docs (#35564)
     add aa54da6d67 chore(deps-dev): bump typescript-eslint from 8.45.0 to 8.46.0 in /superset-websocket (#35563)
     add 831a9a8a57 chore(deps): bump ioredis from 5.8.0 to 5.8.1 in /superset-websocket (#35562)
     add 82e4763588 chore(deps-dev): bump @typescript-eslint/parser from 8.45.0 to 8.46.0 in /docs (#35548)
     add 54b4056eb3 chore(deps-dev): bump typescript-eslint from 8.45.0 to 8.46.0 in /docs (#35545)
     add 6b1c058436 chore(deps): bump interweave from 13.1.0 to 13.1.1 in /superset-frontend (#35440)
     add 19cf645224 chore(deps): bump debug from 4.4.1 to 4.4.3 in /superset-websocket/utils/client-ws-app (#35363)
     add c2120f62cf chore(deps-dev): bump typescript from 5.7.3 to 5.9.3 in /superset-websocket (#35375)
     add a9630f3ec7 chore(deps-dev): bump @docusaurus/tsconfig from 3.8.1 to 3.9.1 in /docs (#35376)
     add 9d3fab8e4d chore(deps): update ace-builds requirement from ^1.43.1 to ^1.43.3 in /superset-frontend/packages/superset-ui-core (#35400)
     add d921f6d2b4 chore(deps): bump @docusaurus/preset-classic from 3.8.1 to 3.9.1 in /docs (#35442)
     add 4dbdb1811b chore(deps): update react requirement from ^19.1.1 to ^19.2.0 in /superset-frontend/plugins/legacy-plugin-chart-chord (#35429)
     add ed47ceb1e4 chore(deps-dev): update jest requirement from ^30.0.5 to ^30.2.0 in /superset-frontend/plugins/plugin-chart-handlebars (#35397)
     add 8a61cdf4f2 chore(deps-dev): update fs-extra requirement from ^11.3.0 to ^11.3.2 in /superset-frontend/packages/generator-superset (#35396)
     add 3acc9aba8b chore(deps): bump less from 4.4.1 to 4.4.2 in /docs (#35577)
     add 5a15c632ad fix(Alerts): Correct icon sizes (#35572)
     add 9f2fead651 chore(deps): update dompurify requirement from ^3.2.6 to ^3.2.7 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#35383)
     add 9a43a47e6a chore(deps-dev): update @babel/types requirement from ^7.28.0 to ^7.28.4 in /superset-frontend/plugins/plugin-chart-pivot-table (#35388)
     add c846cd187c chore(deps): update @mapbox/tiny-sdf requirement from ^2.0.6 to ^2.0.7 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#34939)
     add ff80d4f406 chore(deps-dev): update @babel/types requirement from ^7.28.0 to ^7.28.2 in /superset-frontend/plugins/plugin-chart-pivot-table (#34463)
     add 79ff093b30 chore(deps-dev): bump @babel/plugin-transform-runtime from 7.27.1 to 7.28.3 in /superset-frontend (#35576)
     add 91fbc64327 chore(deps): update dayjs requirement from ^1.11.13 to ^1.11.18 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#34965)
     add 941907ed4e chore(deps-dev): update cross-env requirement from ^10.0.0 to ^10.1.0 in /superset-frontend/packages/generator-superset (#35393)
     add 412587ad41 fix(tables): Dark mode scrollbar styles for webkit (#35338)
     add de0bd37a66 chore(deps-dev): update jest requirement from ^30.0.5 to ^30.2.0 in /superset-frontend/plugins/plugin-chart-pivot-table (#35392)
     add 17ebbdd966 fix(csv upload): Correctly casting to string numbers with floating points (e+) (#35586)
     add e437ae1f2f fix(alerts): log execution_id instead of report schedule name in query timing (#35592)
     add 3dcf85caef fix(export): replace iframe with fetch to avoid CSP frame-src violations (#35584)
     add 9918f8868e chore(deps-dev): bump @types/node from 24.7.0 to 24.7.1 in /superset-websocket (#35597)
     add 8727d321f3 chore(deps): bump github/codeql-action from 3 to 4 (#35568)
     add c38ba1daa8 fix(d3-format): call setupFormatters synchronously to apply D3 format… (#35529)
     add 9d1d396a9b fix: fix extension e2e flow (#35589)
     add 1c934b474a docs: add documentation for Arc to Superset's supported databases (#35585)
     add 97518544ee feat(dashboard): chart customization/dynamic group by in dashboards (#33831)
     add 35b5f8dcdc test(frontend): remove 3 duplicate JSX test files (#35590)
     add 9252d835b8 fix(deckgl): scatterplot fix categorical color (#35537)
     add e6bd03fe98 fix(theming): solve modal dark theme issues + styling and code improvements (#35539)
     add bd48e87eeb fix: no fs logging of extensions unless flag is set (#35612)
     add ccc0e3dbb2 fix: Log Celery task failures with a signal handler (#35595)
     add 7e06ce8eeb chore(deps-dev): bump @typescript-eslint/parser from 8.46.0 to 8.46.1 in /superset-websocket (#35631)
     add a01560cfa1 chore(deps-dev): bump typescript-eslint from 8.46.0 to 8.46.1 in /docs (#35628)
     add f68ee6ba67 chore(deps): bump swagger-ui-react from 5.29.3 to 5.29.4 in /docs (#35617)
     add 5d77ed3677 chore(deps-dev): bump @types/node from 24.7.1 to 24.7.2 in /superset-websocket (#35616)
     add d0a0d280a1 chore(deps-dev): bump ts-jest from 29.4.4 to 29.4.5 in /superset-websocket (#35615)
     add 78907d08cd chore(deps): bump caniuse-lite from 1.0.30001749 to 1.0.30001750 in /docs (#35614)
     add 09772eeda0 fix(config.py): reset HTML_SANITIZATION to True by default (#35603)
     add 51489a75ce chore: bump pretty-ms to 9.3.0 (#35667)
     add 400a8aec89 chore(deps-dev): bump typescript-eslint from 8.46.0 to 8.46.1 in /superset-websocket (#35630)
     add 4ddc3f14ed refactor(frontend): convert DatasourceEditor tests to TypeScript (#35606)
     add 4b5629d1c8 fix(theme): align "Clear local theme" option with other theme menu items (#35651)
     add 58672dfab6 fix(table-chart): fix page size label visibility and improve header control wrapping (#35648)
     add de1dd53186 fix(theme-crud): enable overwrite confirmation UI for theme imports (#35558)
     add 1617bbbe71 docs: Add Production Security Hardening Guide (#35190)
     add ca29adb0cb chore(deps): bump fuse.js from 7.0.0 to 7.1.0 in /superset-frontend (#35678)
     add 09349cb1e7 chore(deps): bump caniuse-lite from 1.0.30001750 to 1.0.30001751 in /docs (#35677)
     add dc0c055518 chore(deps-dev): bump webpack from 5.102.0 to 5.102.1 in /superset-frontend (#35675)
     add fb8fca4c64 chore(deps): bump antd from 5.27.4 to 5.27.5 in /docs (#35654)
     add 8c125d2553 feat: use  in deck.gl custom tooltip instead of SafeMarkdown (#35665)
     add f405174fcf fix(dataset): render default URL description properly in settings (#35669)
     add 92c07aaf54 chore(deps-dev): bump @playwright/test from 1.55.0 to 1.56.0 in /superset-frontend (#35676)
     add 408f84aea6 chore(deps): update dompurify requirement from ^3.2.7 to ^3.3.0 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#35632)
     add aede3bb5ba fix(auth): redirect anonymous attempts to view dashboard with next (#35345)
     add de5ca79805 chore(deps): update chalk requirement from ^5.4.1 to ^5.6.2 in /superset-frontend/packages/generator-superset (#35391)
     add 3db613dab5 chore(docs): switch to markdown headlines for available macros (#35685)
     add 9ab0a0179d fix(charts): update axis title labels to sentence case (#35694)
     add aea4375255 chore(deps): update @fontsource/fira-code requirement from ^5.2.6 to ^5.2.7 in /superset-frontend/packages/superset-ui-core (#35709)
     add aa496def53 chore(deps-dev): bump @babel/cli from 7.27.2 to 7.28.3 in /superset-frontend (#35708)
     add 311b7a72dc chore(deps-dev): bump copy-webpack-plugin from 13.0.0 to 13.0.1 in /superset-frontend (#35707)
     add e8a6fb24ae chore(deps): bump react-reverse-portal from 2.1.2 to 2.3.0 in /superset-frontend (#35706)
     add 8368ea4094 chore(deps-dev): bump eslint-plugin-prettier from 5.2.3 to 5.5.4 in /superset-frontend (#35700)
     add 925401b4e1 chore(deps-dev): bump @types/node from 24.7.2 to 24.8.1 in /superset-websocket (#35698)
     add 754201b3d0 chore(deps): bump dayjs from 1.11.13 to 1.11.18 in /superset-frontend (#35697)
     add 8e7edce616 chore(deps-dev): bump @types/node from 24.6.2 to 24.8.1 in /superset-frontend (#35705)
     add 0eeb184b6a chore(deps): bump @luma.gl/constants from 9.1.9 to 9.2.2 in /superset-frontend (#35696)
     add 0b3fe3d60c test: add comprehensive unhappy path tests for export (#35718)
     add d089a96163 fix(playwright): Download dashboard correctly (#35484)
     add 1b6d57c3f3 test(tasks): Add tests for log_task_failure signal handler (#35721)
     add c35fc71bc5 chore(deps-dev): bump @eslint/js from 9.37.0 to 9.38.0 in /docs (#35736)
     add 00d2f577df chore(deps-dev): bump eslint from 9.37.0 to 9.38.0 in /superset-websocket (#35735)
     add 24f0aed8a7 chore(deps): bump swagger-ui-react from 5.29.4 to 5.29.5 in /docs (#35734)
     add fdc03d4bf3 chore(deps): update xss requirement from ^1.0.14 to ^1.0.15 in /superset-frontend/packages/superset-ui-core (#35747)
     add 3926f5c55c chore(deps-dev): bump @babel/eslint-parser from 7.26.5 to 7.28.4 in /superset-frontend (#35746)
     add 7c946ae3db chore(deps-dev): bump @docusaurus/tsconfig from 3.9.1 to 3.9.2 in /docs (#35733)
     add ee23815aff chore(deps): bump @docusaurus/core from 3.9.1 to 3.9.2 in /docs (#35738)
     add 35c3d8dfbc chore(deps): bump @docusaurus/plugin-client-redirects from 3.9.1 to 3.9.2 in /docs (#35739)
     add fa90ba976c fix: Extension events not fired in SQL Lab tabs (#35753)
     add 4974c08f7d chore(deps): bump @docusaurus/theme-mermaid from 3.9.1 to 3.9.2 in /docs (#35741)
     add 8e31c93119 chore(deps): bump @docusaurus/preset-classic from 3.9.1 to 3.9.2 in /docs (#35744)
     add f165785003 docs: update links in CONTRIBUTING.md to point to the correct Developer Portal URLs (#35723)
     add 68d65f727f chore(deps): bump antd from 5.27.5 to 5.27.6 in /docs (#35765)
     add 6d8ceed10e chore(deps-dev): bump typescript-eslint from 8.46.1 to 8.46.2 in /docs (#35764)
     add 500ce7a02a chore(deps): bump ace-builds from 1.43.3 to 1.43.4 in /superset-frontend (#35763)
     add 26cbd71099 chore(deps-dev): bump prettier-plugin-packagejson from 2.5.8 to 2.5.19 in /superset-frontend (#35760)
     add 86583f1121 chore(deps-dev): bump @typescript-eslint/parser from 8.46.1 to 8.46.2 in /superset-websocket (#35759)
     add f02899d38d chore(deps-dev): bump @types/node from 24.8.1 to 24.9.1 in /superset-websocket (#35761)
     add 08f89690e9 chore(deps-dev): bump html-webpack-plugin from 5.6.3 to 5.6.4 in /superset-frontend (#35755)
     add b4a8acc584 chore(deps-dev): bump @babel/compat-data from 7.28.0 to 7.28.4 in /superset-frontend (#35730)
     add 58758de93d feat(reports): allow custom na values (#35481)
     add 4a3453999a chore(deps-dev): bump eslint from 9.37.0 to 9.38.0 in /docs (#35727)
     add 337da13ba7 fix: Changes ResultSet to include sqlEditorImmutableId when fetching results (#35773)
     add a463d66c80 chore(deps-dev): bump typescript-eslint from 8.46.1 to 8.46.2 in /superset-websocket (#35757)
     add 47e82b02ed chore(deps-dev): bump ts-jest from 29.4.0 to 29.4.5 in /superset-frontend (#35732)
     add fcfafebb29 fix(Themes): Local label inconsistent behaviors (#35663)
     add bad03b1e76 fix(Actions): Improper spacing (#35724)
     add 98fba1eefe fix(security): Add active property to guest user (#35454)
     add d9dcbb68b7 chore(docs): use native docusauros admonition notation (#35791)
     add 7f0c0aea94 fix(ThemeController): replace fetch with SupersetClient for proper auth (#35794)
     add 1234533c67 fix: edit dataset modal visual fixes (#35799)
     add d09421230b test(dashboard): eliminate race condition in FiltersConfigModal test (#35717)
     add 79918a7939 fix(frontend): resolve race condition in DatasetUsageTab pagination s… (#35691)
     add 5e4a80e5d0 fix(ag-grid): fix conditional formatting theme colors and module extensibility (#35605)
     add 93cb60b24e docs(db_engine_specs): restructure feature table for GitHub rendering (#35809)
     add c3b8c96db6 fix(alerts): improve Slack API rate limiting for large workspaces (#35622)
     add 7c9720e22b fix(dashboard): handle invalid thumbnail BytesIO objects gracefully (#35808)
     add cc6a5dc29a feat(mcp): PR1 - Add MCP service scaffold for Apache Superset (#35163)
     add 3d2ed363aa fix(docs): Update Arc database connector documentation (#35805)
     add 51aad52e6c fix: unpin holidays and prophet (#35771)
     add 19473af401 fix(database-modal): fix issue where commas could not be typed into DB configuration. (#35289)
     add 0bf34d4d6f fix(native-filters): prevent circular dependencies and improve dependency handling (#35317)
     add 6e60a00d69 fix(SqlLab): South pane visual changes (#35601)
     add 6704c0aaec fix(sqllab): Fix CSV export button href in SQL Lab when application root is defined (#35118)
     add bf830b2dd5 fix(theme): add fontWeightStrong to allowedAntdTokens to fix bold markdown rendering (#35821)
     add 61758c07d2 fix: update Russian translations (#35750)
     add 7a759c903b chore(deps): bump swagger-ui-react from 5.29.5 to 5.30.0 in /docs (#35865)
     add e1455057e7 feat(mcp): PR2 - Add chart listing and info tools with core infrastructure (#35835)
     add 5218b4eea2 fix(echarts): fix time shift color matching functionality (#35826)
     add 61c68f7b8f fix(reports): Add celery task execution ID to email notification logs (#35807)
     add 7733265fa2 fix(mcp): remove hardcoded admin username fallbacks (#35875)
     add 5c57c9c0b2 fix: add utc=True to pd.to_datetime for timezone-aware datetimes (#35587)
     add 514d56d1ae feat: conditional formatting improvements add flag toAllRow and  toTextColor in tables (#34762)
     add 2db19008fb test(dashboard): strengthen fontWeightStrong assertion for markdown bold (#35872)
     add 99b61143f6 feat(Chart): Save Chart State globally (#35343)
     add 48ee0821d3 feat: show total in waterfall chart (#35876)
     add 2013963e0b chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 in /superset-websocket (#35879)
     add dd857a2c7a fix: displaying cell bars in table (#35885)
     add a5eb02d178 chore(deps): bump use-immer from 0.9.0 to 0.11.0 in /superset-frontend (#35789)
     add 8ccdf3b32b feat(frontend): Replace ESLint with OXC hybrid linting architecture (#35506)
     add 5fc934d859 chore: bump shillelagh to 1.4.3 (#35895)
     add 6f50ddf710 refactor(explore): extract session ID retrieval into overridable method (#35779)
     add f6f15f58ee fix: set pandas 2.1 as requirement (#35912)
     add 6e27bee2ca refactor(explore): improve focus management in adhoc filter editor (#35801)
     add 0a95f74f11 chore: Docs and config improvements for Docker setup (#35896)
     add 30d584afd1 fix(db2): update time grain expressions for DAY to use DATE function (#35848)
     add fee4e7d8e2 feat(mcp): MCP service implementation (PRs 3-9 consolidated) (#35877)
     add d1f9c77afd chore(deps): bump caniuse-lite from 1.0.30001751 to 1.0.30001752 in /docs (#35924)
     add be3690c22b fix(explore): formatting the SQL in "View Query" pop-up doesn't format (#35898)
     add 00a6772507 chore(deps): bump swagger-ui-react from 5.30.0 to 5.30.1 in /docs (#35955)
     add 3c43ce4e06 chore(deps): bump antd from 5.27.6 to 5.28.0 in /docs (#35956)
     add 17299e469a chore(deps-dev): bump @eslint/js from 9.38.0 to 9.39.0 in /docs (#35954)
     add 405ed2e736 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /superset-websocket (#35953)
     add ae1f0bb107 chore(deps-dev): bump @types/node from 24.9.2 to 24.10.0 in /superset-websocket (#35952)
     add bae2c90bae docs: correct spelling typos in project codebase (#35935)
     add 27011d0239 fix(sqllab): align refresh buttons with select input fields (#35917)
     add 5224347c39 test(useThemeMenuItems): fix race conditions by awaiting all userEvent calls (#35918)
     add 1c1d1ddbec chore(deps): bump caniuse-lite from 1.0.30001752 to 1.0.30001753 in /docs (#35957)
     add b92b725fe2 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /docs (#35951)
     add 51b4df7a1f chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /docs (#35949)
     add 7cd04c088c chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /superset-websocket (#35948)
     add 46db8b7803 fix(dataset): sync columns checkbox not responding to clicks in virtual dataset modal (#35650)
     add 53687ae659 fix(dashboard): fix dataset search in filter config modal (#35488)
     add 0d70373d95 feat(npm): New `npm run clear-npm` script to nuke `node_modules` faster.  (#35923)
     add 7265567561 fix(DatasourceEditor): preserve calculated column order when editing sql (#35790)
     add 04231c86db fix(TimeTable): Match calculations between filtered and non filtered states (#35619)
     add a1d4dff99d feat(logs): Add is_cached as part of ChartDataRestApi.data actions (#36001)
     add 3f49938b79 fix(explore): Overwriting a chart updates the form_data_key (#35888)
     add 392b880b52 fix(view-in-sqllab): unable to open virtual dataset after discarding chart edits (#35931)
     add 32099d8f49 chore(deps): bump swagger-ui-react from 5.30.1 to 5.30.2 in /docs (#35994)
     add 1f960d5761 fix(DatabaseModal): prevent errors when pasting text into supported database select (#35916)
     add 14f20e644e fix(chart list): Facepile shows correct users when saving chart properties (#33392)
     add 84a1abd357 fix(ui): bump AntD to 5.26.0 to fix Splitter drag menu issue (#35782)
     add 3765c31163 chore(logs): Use correct log level and remove duplicates for get_query (#36023)
     add 0827ff7687 feat(build): Migrate webpack to SWC for ~70%+ faster builds (#35946)
     add af37e12de4 fix(SelectFilterPlugin): clear all clears all filters including dependent ones (#35303)
     add f5f5913a29 test: revert unrelated flaky test fix from MCP PR (#36015)
     add c11be72ead fix(UI): spacings + UI fixes (#36010)
     add 2f2128ac48 chore(deps): bump caniuse-lite from 1.0.30001753 to 1.0.30001754 in /docs (#36018)
     add 208b1f7fa3 docs: Reorganize and improve developer portal documentation (#36005)
     add 0307c71945 fix(Context-Menu): Fixing Context Menu for Table Chart with Html Content (#33791)
     add 728bc2c632 fix: Ensure that Playwright tile height is always positive (#36027)
     add 9546ee37e5 chore(superset-core): move ui to new core (#35308)
     add 258512fef2 fix(echarts): Series style hidden for line charts (#33677)
     add d2550a525b refactor(mcp): shorten tool name from get_superset_instance_info to get_instance_info (#36032)
     add 4d0fdba97a fix(webpack): webpack refresh plugin (#36041)
     add 909bd877c9 fix(filters): preserve backend metric-based sorting (#35152)
     add 3167a0dbc0 chore(mcp-service): upgrade fastmcp from 2.10.6 to 2.13.0.2 (#36014)
     add c42e3c6837 fix(reports): improve error handling for report schedule execution (#35800)
     add c9f65cf1c2 fix(date_parser): add check for time range timeshifts (#36039)
     add 63dfd95aa2 fix: Flakiness around scrolling during taking tiled screenshots with Playwright (#36051)
     add ae63f64771 style(sqllab): restore Template Parameters modal styling (#35965)
     add e915d7d1d0 chore(deps): bump min-document from 2.19.0 to 2.19.1 in /superset-frontend (#36046)
     add b85621e9a7 docs: Add custom chart plugin deployment instructions (#36028)
     add 64ca080bb8 feat(playwright): Remove Cypress auth tests in favor of Playwright auth tests (#35938)
     add 0a5144fc1d fix(tests): fix flakey tests with PropertiesModal.test.tsx, FiltersConfigModal.test.tsx and ChartList.listview.test.tsx (#36037)
     add 21d585d586 fix(explore): show validation errors in View Query modal (#35969)
     add e2e831e322 fix(permalink): exclude edit mode from dashboard permalink (#35889)
     add 9be61a1245 fix(dashboard): prevent validation error in properties modal when ope… (#36045)
     add 4376476ec4 fix: saved query preview modal not highlighting active rows (#35866)
     add d123249bd2 fix(dashboard): align filter bar elements vertically in horizontal mode (#36036)
     add 9fbfcf0ccd fix(sqllab): prevent unwanted tab switching when autocompleting table names on SQL Lab (#35992)
     add 0b535b792e feat(frontend): add dataset cache clearing utilities and integration (#35264)
     add a45c0528da fix(dashboard): dashboard filter was incorrectly showing as out of scope (#35886)
     add bb2e2a5ed6 fix: fix tabs overflow in dashboards (#35984)
     add c244e7f847 fix(mcp): simplify health_check tool and refactor system utils (#36063)
     add 008c7c6517 fix(table-chart): fix missing table header IDs (#35968)
     add 310dcd7b94 chore: :globe_with_meridians: Translations added to ES .po file (#30759)
     add 306f4c14cf fix(sql): quote column names with spaces to prevent SQLGlot parsing errors (#35553)
     add 60f29ba6fb chore(logs): Add is_cached in sync AND async results (#36102)
     add 4515d18ddd fix(navbar): Minor fixes in navbar spacings (#36091)
     add 6701d0ae0c fix: Use singlestoredb dialect for sqlglot (#36096)
     add 467b008f36 fix: save button was enabled even no changes were made to the dashboard (#35817)
     add 4a04d46118 fix(explore): re-apply filters when 'Group remaining as Others' is enabled (#35937)
     add 74a590cb76 fix(dashboard): refresh tabs as they load when dashboard is refreshed (#35265)
     add 78f9debdd4 fix(dashboard): prevent tab content cutoff and excessive whitespace in empty tabs (#35834)
     add 37d58a476c fix(chart): align legend with chart grid in List mode for Top/Bottom orientations (#36077)
     add b051f779e6 chore: bump FAB to 5.0.2 (#36086)
     add f8933c2743 style(database-modal): vertically align the button and the InfoTooltip icon (#36087)
     add 9ef87e75d5 fix(ace-editor-popover): main AntD popover closes when clicking autocomplete suggestions in Ace Editor (#35986)
     add f3e620cd0f fix: RLS in virtual datasets (#36061)
     add 001b6cb801 feat: Floating Point Formatting for Scatter Point Chart (#35915)
     add e6a5616543 fix: opacity color formating (#36101)
     add c955a5dc08 fix(histogram): add NULL handling for histogram (#35693)
     add c2baba50f9 chore: abstract models and daos into superset-core (#35259)
     add 9605a4a9cb fix(mcp-service): ensure Flask app context in auth hook and resolve Pydantic warnings (#36013)
     add 85413f2a65 fix: fix crossfilter persisting after removal (#35998)
     add dad469297c feat(mcp): add configurable branding for MCP service (#36033)
     add 962faa2196 fix: Use total count to filter datasets (#36135)
     add fb8eb2a5c3 fix(dashboard): ensure world map chart uses correct country code format in crossfilter (#35919)
     add 519990e2fb fix: pin setuptools <81 to prevent pkg_resources removal (#36104)
     add 6723a58780 perf: Fix dashboard performance issues (#36119)
     add 9bff64824b fix(navbar): some styling + components inconsistencies (#36120)
     add 282f4e5de2 feat(embedded): add setThemeMode API for dynamic theme switching (#36125)
     add fb7d0e0e3d chore: annotate important types (#36034)
     add 9d06a5888f fix(csv-upload): log detailed errors during chunk concatenation for debugging (#36108)
     add 3b226038ba fix(datasets): prevent double time filter application in virtual datasets (#35890)
     add 6fc7af5ba8 build: update Dockerfile to 3.11.14-slim-trixie (#36047)
     add 28bdec2c79 fix(tags): ensure tag creation is compatible with MySQL by avoiding Markup objects (#36075)
     add f8943c17c2 chore(deps): bump js-yaml in /superset-websocket (#36142)
     add fb325a8f24 fix(translations): Fix Russian translations for EmptyState (#34055)
     add cc1d22012c chore(deps): bump antd from 5.28.0 to 5.28.1 in /docs (#36065)
     add 225886e859 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2 to 8.46.4 in /docs (#36064)
     add d91d81b5df chore(deps-dev): bump typescript-eslint from 8.46.2 to 8.46.4 in /docs (#36066)
     add b5cac47ba7 chore(deps-dev): bump @eslint/js from 9.39.0 to 9.39.1 in /docs (#35975)
     add a9fd600c52 fix: 'save and go to dashboard' option was disabled after changing the chart type (#36122)
     add 8315804c85 fix(cache): apply dashboard filters to non-legacy visualizations  (#36109)
     add 80ec241108 feat(dashboard): "embed code" option on dashboard share tab (#33163)
     add 43e9e1ec36 fix:  role list edit modal height (#36123)
     add a268232ed6 fix(datasets): prevent viewport overflow in dataset creation page (#36166)
     add 53b9045943 chore(DatabaseModal): simplify collapsible logic for extra extension section (#36118)
     add 21f85a4145 feat(tree chart): add initial tree depth to tree chart (#35425)
     add 4582f0e8d2 fix(dashboard): ensure charts re-render when visibility state changes (#36011)
     add 66afdfd119 docs(mcp): add comprehensive architecture, security, and production deployment documentation (#36017)
     add d0bf1cca60 chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in /superset-embedded-sdk (#36172)
     add cdbd5bf4f9 chore(docs): config Kapa to use logo from the repo (#36177)
     add 69fc7f6852 chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 in /docs (#36178)
     add 9f55287672 chore(deps): bump caniuse-lite from 1.0.30001754 to 1.0.30001756 in /docs (#36179)
     add f5b79c3623 chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /docs (#35976)
     add 05d10d8e77 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2 to 8.46.3 in /superset-websocket (#35973)
     add 53207302f9 chore: bump duckdb et al. (#36171)
     add 6d359161bb fix(dashboard): adjust vertical spacing for numerical range filter to prevent overlaps (#36167)
     add 35f156a1e1 feat(streaming): Streaming CSV uploads for over 100k records for constant memory usage (#35478)
     add 92d8139136 fix(security): enable AUTH_RATE_LIMITED to work correctly (#36195)
     add e68150c3ce chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1 in /superset-websocket (#36198)
     add be0283b9f2 chore(deps): bump antd from 5.28.1 to 5.29.1 in /docs (#36180)
     add 7805666103 perf(docker): exclude unnecessary directories from Flask reloader watch (#36143)
     add 71c015c579 feat(Tabs): Rearange tabs when editing dashboard (#35156)
     add 979d385eea fix: recompile dependencies with linux and update generate dependency script (#36194)
     add 348b19cb4c fix(sqllab): validate results backend writes and enhance 410 diagnostics (#36222)
     add 02bbc7c7de chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /superset-websocket (#36217)
     add e6b258f418 chore(deps): bump http-errors from 2.0.0 to 2.0.1 in /superset-websocket/utils/client-ws-app (#36218)
     add 9d40c24a16 refactor(datasets): add comprehensive unit tests for dataset API hooks and fix api guards (#36175)
     add e7c54376e2 test(table): remove conditionals from TableChart tests  (#36149)
     add a0c29cc260 test: fix flaky MySQL integration test in test_update_v1_response (#36176)
     add e303537e0c fix: adhoc column quoting (#36215)
     add a2267d869b refactor: refactor `get_query_result` (#36057)
     add 08c1d03479 fix(screenshots): Only cache thumbnails when image generation succeeds (#36126)
     add cac6ffcd3c fix: Extra controls width for Area Chart on dashboards (#36133)
     add 0ec9082c5e feat: Datasource folders editor
     add a2d5e44f2d Handle dragging multiple items
     add aaa3d2c612 Fix jumping loop
     add ece4de0d65 Clean up
     add 56b11fbab6 Fix paths
     add c0bfb57e47 Fix dnd

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   (40a21752e5)
            \
             N -- N -- N   refs/heads/folders (c0bfb57e47)

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:
 .asf.yaml                                          |    1 +
 .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 +
 .devcontainer/README.md                            |   11 -
 .devcontainer/default/devcontainer.json            |   19 +
 .devcontainer/devcontainer-base.json               |   39 +
 .devcontainer/setup-dev.sh                         |   84 +-
 .devcontainer/start-superset.sh                    |   83 +-
 .devcontainer/with-mcp/devcontainer.json           |   29 +
 .github/CODEOWNERS                                 |   16 +-
 .github/copilot-instructions.md                    |    2 +-
 .github/dependabot.yml                             |   70 +-
 .github/workflows/bashlib.sh                       |   89 +
 .github/workflows/bump-python-package.yml          |    4 +-
 .github/workflows/cancel_duplicates.yml            |    2 +-
 .github/workflows/check-python-deps.yml            |    2 +-
 .github/workflows/check_db_migration_confict.yml   |    4 +-
 .github/workflows/claude.yml                       |    4 +-
 .github/workflows/codeql-analysis.yml              |    6 +-
 .github/workflows/dependency-review.yml            |    4 +-
 .github/workflows/docker.yml                       |    4 +-
 .github/workflows/embedded-sdk-release.yml         |    4 +-
 .github/workflows/embedded-sdk-test.yml            |    4 +-
 .github/workflows/ephemeral-env-pr-close.yml       |    4 +-
 .github/workflows/ephemeral-env.yml                |   20 +-
 .github/workflows/generate-FOSSA-report.yml        |    4 +-
 .github/workflows/github-action-validator.yml      |    4 +-
 .github/workflows/issue_creation.yml               |    2 +-
 .github/workflows/labeler.yml                      |    2 +-
 .github/workflows/latest-release-tag.yml           |    2 +-
 .github/workflows/license-check.yml                |    4 +-
 .github/workflows/no-hold-label.yml                |    2 +-
 .github/workflows/pr-lint.yml                      |    2 +-
 .github/workflows/pre-commit.yml                   |    4 +-
 .github/workflows/prefer-typescript.yml            |    2 +-
 .github/workflows/release.yml                      |    4 +-
 .github/workflows/showtime-trigger.yml             |   26 +-
 .github/workflows/superset-app-cli.yml             |    2 +-
 .github/workflows/superset-applitool-cypress.yml   |    4 +-
 .../workflows/superset-applitools-storybook.yml    |    4 +-
 .github/workflows/superset-docs-deploy.yml         |    6 +-
 .github/workflows/superset-docs-verify.yml         |   26 +-
 .github/workflows/superset-e2e.yml                 |  123 +-
 .github/workflows/superset-extensions-cli.yml      |    4 +-
 .github/workflows/superset-frontend.yml            |   16 +-
 .github/workflows/superset-helm-lint.yml           |    2 +-
 .github/workflows/superset-helm-release.yml        |    4 +-
 .../{superset-e2e.yml => superset-playwright.yml}  |   51 +-
 .../workflows/superset-python-integrationtest.yml  |    6 +-
 .github/workflows/superset-python-presto-hive.yml  |    4 +-
 .github/workflows/superset-python-unittest.yml     |    2 +-
 .github/workflows/superset-translations.yml        |    6 +-
 .github/workflows/superset-websocket.yml           |    2 +-
 .github/workflows/supersetbot.yml                  |    4 +-
 .github/workflows/tag-release.yml                  |    8 +-
 .github/workflows/tech-debt.yml                    |    4 +-
 .github/workflows/welcome-new-users.yml            |    2 +-
 .gitignore                                         |    4 +
 .pre-commit-config.yaml                            |   31 +-
 .rat-excludes                                      |    3 +
 LLMS.md => AGENTS.md                               |   36 +-
 CLAUDE.md                                          |    2 +-
 CONTRIBUTING.md                                    |   22 +-
 Dockerfile                                         |   11 +-
 GEMINI.md                                          |    2 +-
 GPT.md                                             |    2 +-
 LINTING_ARCHITECTURE.md                            |  121 +
 UPDATING.md                                        |  105 +-
 docker-compose-image-tag.yml                       |    1 +
 docker-compose-light.yml                           |    7 +-
 docker-compose.yml                                 |   10 +-
 docker/README.md                                   |   18 +-
 docker/docker-bootstrap.sh                         |   20 +-
 docker/pythonpath_dev/superset_config.py           |    2 +-
 .../{config.json => config.example.json}           |    0
 docs/DOCS_CLAUDE.md                                |  642 +++
 docs/developer_portal/api/frontend.md              |  477 --
 docs/developer_portal/architecture/overview.md     |  348 --
 docs/developer_portal/cli/overview.md              |  466 --
 docs/developer_portal/contributing/code-review.md  |  339 ++
 .../contributing/development-setup.md}             |   33 +-
 .../contributing/guidelines.md}                    |  193 +-
 docs/developer_portal/contributing/howtos.md       |  528 +++
 .../contributing/issue-reporting.md                |  418 ++
 docs/developer_portal/contributing/overview.md     |  166 +
 .../contributing/release-process.md                |  469 ++
 docs/developer_portal/contributing/resources.md    |  133 +
 .../developer_portal/contributing/submitting-pr.md |  321 ++
 docs/developer_portal/examples/index.md            |  464 --
 docs/developer_portal/extensions/architecture.md   |  253 +
 .../extensions/deploying-extension.md              |   45 +
 .../extensions/development-mode.md                 |   48 +
 .../extensions/extension-metadata.md               |   55 +
 .../extensions/extension-project-structure.md      |   78 +
 .../extensions/frontend-contribution-types.md      |   90 +
 .../extensions/interacting-with-host.md            |  129 +
 docs/developer_portal/extensions/overview.md       |   76 +
 docs/developer_portal/extensions/quick-start.md    |  397 ++
 .../extensions/security-implications.md            |   33 +
 docs/developer_portal/getting-started/index.md     |  248 -
 .../guidelines/backend-style-guidelines.md         |  318 ++
 .../guidelines/backend/dao-style-guidelines.md     |  365 ++
 .../guidelines/design-guidelines.md                |  148 +
 .../guidelines/frontend-style-guidelines.md        |   44 +
 .../frontend/component-style-guidelines.md         |  258 ++
 .../frontend/emotion-styling-guidelines.md         |  346 ++
 .../guidelines/frontend/testing-guidelines.md      |  297 ++
 docs/developer_portal/index.md                     |  188 +-
 docs/developer_portal/sidebars.js                  |   38 +-
 docs/developer_portal/testing/backend-testing.md   |   68 +
 docs/developer_portal/testing/ci-cd.md             |   70 +
 docs/developer_portal/testing/e2e-testing.md       |   80 +
 docs/developer_portal/testing/frontend-testing.md  |   61 +
 docs/developer_portal/testing/overview.md          |  164 +
 docs/docs/configuration/alerts-reports.mdx         |   20 +-
 docs/docs/configuration/configuring-superset.mdx   |  104 -
 docs/docs/configuration/databases.mdx              |   74 +-
 docs/docs/configuration/sql-templating.mdx         |   41 +-
 docs/docs/configuration/theming.mdx                |  202 +-
 docs/docs/contributing/development.mdx             |    6 +-
 docs/docs/contributing/guidelines.mdx              |    2 +-
 docs/docs/contributing/howtos.mdx                  |  108 +-
 docs/docs/contributing/pkg-resources-migration.md  |  101 +
 docs/docs/installation/docker-compose.mdx          |    2 +-
 docs/docs/security/securing_superset.mdx           |  174 +
 docs/docusaurus.config.ts                          |   30 +-
 docs/package.json                                  |   40 +-
 docs/sidebarTutorials.js                           |   77 +-
 .../ImportModal/styles.ts => docs/src/theme.d.ts   |   18 +-
 docs/src/webpack.extend.ts                         |    4 +-
 docs/static/img/superset-logo-icon-only.png        |  Bin 0 -> 118635 bytes
 docs/tsconfig.json                                 |   19 +-
 .../configuration/configuring-superset.mdx         |  104 -
 .../version-6.0.0/contributing/development.mdx     |    4 +-
 .../version-6.0.0/contributing/howtos.mdx          |    8 +-
 .../version-6.0.0/installation/docker-compose.mdx  |    2 +-
 docs/versions-config.json                          |    3 +-
 docs/yarn.lock                                     | 2392 +++++-----
 helm/superset/Chart.yaml                           |    2 +-
 helm/superset/README.md                            |    3 +-
 helm/superset/templates/_helpers.tpl               |   13 +-
 helm/superset/values.yaml                          |    2 +
 pyproject.toml                                     |   26 +-
 requirements/base.in                               |    6 +
 requirements/base.txt                              |   41 +-
 requirements/development.in                        |    2 +-
 requirements/development.txt                       |  176 +-
 scripts/{eslint.sh => check-custom-rules.sh}       |   20 +-
 scripts/eslint.sh                                  |    2 +-
 scripts/{eslint.sh => oxlint.sh}                   |   23 +-
 scripts/uv-pip-compile.sh                          |   17 +
 superset-core/README.md                            |    2 +-
 superset-core/pyproject.toml                       |    6 +-
 superset-core/src/superset_core/__init__.py        |    4 +
 superset-core/src/superset_core/api/__init__.py    |    8 -
 superset-core/src/superset_core/api/daos.py        |  262 ++
 superset-core/src/superset_core/api/models.py      |  295 ++
 superset-core/src/superset_core/api/query.py       |   51 +
 superset-core/src/superset_core/api/rest_api.py    |   72 +
 .../src/superset_core/api/types/models.py          |   90 -
 .../src/superset_core/api/types/rest_api.py        |   64 -
 superset-embedded-sdk/package-lock.json            |  438 +-
 superset-embedded-sdk/package.json                 |    1 -
 superset-embedded-sdk/release-if-necessary.js      |    5 +-
 superset-embedded-sdk/src/index.ts                 |   23 +-
 .../src/superset_extensions_cli/cli.py             |   26 +-
 .../templates/backend/src/package/__init__.py.j2   |    0
 .../templates/backend/src/package/entrypoint.py.j2 |    1 +
 .../templates/frontend/package.json.j2             |    2 +-
 .../templates/frontend/src/index.tsx.j2            |   13 +
 .../templates/frontend/tsconfig.json.j2            |   13 +
 .../templates/frontend/webpack.config.js.j2        |   67 +
 superset-extensions-cli/tests/test_cli_validate.py |    4 +-
 superset-frontend/.eslintrc.js                     |  432 +-
 superset-frontend/.eslintrc.minimal.js             |  121 +
 superset-frontend/.gitignore                       |    2 +
 superset-frontend/.storybook/preview.jsx           |    3 +-
 superset-frontend/.swcrc                           |   64 +
 superset-frontend/LINTING.md                       |  165 +
 .../cypress-base/cypress/e2e/auth/login.test.ts    |   49 -
 .../cypress/e2e/chart_list/list.test.ts            |    2 +-
 .../cypress/e2e/dashboard/drillby.test.ts          |  766 ---
 .../e2e/dashboard/horizontalFilterBar.test.ts      |   69 +-
 .../cypress/e2e/dashboard/nativeFilters.test.ts    |   51 +
 .../e2e/dashboard/shared_dashboard_functions.ts    |    1 +
 .../cypress/e2e/dashboard_list/list.test.ts        |    6 +-
 .../cypress/e2e/explore/control.test.ts            |  186 -
 superset-frontend/jest.config.js                   |    1 +
 superset-frontend/js_build.sh                      |    2 +-
 superset-frontend/oxlint.json                      |  284 ++
 superset-frontend/package-lock.json                | 4855 +++++++++++++-------
 superset-frontend/package.json                     |   99 +-
 .../generators/plugin-chart/templates/README.erb   |   13 -
 .../plugin-chart/templates/tsconfig.json           |   49 +-
 .../packages/generator-superset/package.json       |    6 +-
 .../packages/superset-core/package.json            |   40 +-
 .../packages/superset-core/src/api/core.ts         |   67 +-
 .../packages/superset-core/src/api/sqlLab.ts       |  153 +-
 .../packages/superset-core/src/index.ts            |    1 +
 .../src/ui}/components/Alert/Alert.stories.tsx     |   24 +-
 .../src/ui/components/Alert/Alert.test.tsx}        |   10 +-
 .../src/ui}/components/Alert/index.tsx             |   44 +-
 .../superset-core/src/{ => ui/components}/index.ts |    2 +-
 .../packages/superset-core/src/{ => ui}/index.ts   |    3 +-
 .../index.tsx => superset-core/src/ui/testing.tsx} |    6 +-
 .../src/ui}/theme/GlobalStyles.tsx                 |   12 +
 .../superset-core/src/ui/theme/Theme.test.tsx      |  768 ++++
 .../src => superset-core/src/ui}/theme/Theme.tsx   |   99 +-
 .../src/ui}/theme/exampleThemes.ts                 |    0
 .../src => superset-core/src/ui}/theme/index.tsx   |    6 +-
 .../src => superset-core/src/ui}/theme/types.ts    |   18 +-
 .../src/ui/theme/utils/index.ts}                   |    2 +-
 .../src/ui/theme/utils/themeUtils.test.ts          |  236 +
 .../src/ui}/theme/utils/themeUtils.ts              |   25 +-
 .../superset-core/src/ui/theme/utils/utils.test.ts |  338 ++
 .../packages/superset-core/tsconfig.json           |   21 +-
 .../superset-ui-chart-controls/package.json        |    4 +-
 .../src/components/CertifiedIconWithTooltip.tsx    |    3 +-
 .../src/components/ColumnOption.tsx                |    2 +-
 .../components/ColumnTypeLabel/ColumnTypeLabel.tsx |    4 +-
 .../src/components/ControlHeader.tsx               |    3 +-
 .../src/components/ControlSubSectionHeader.tsx     |    2 +-
 .../src/components/MetricOption.tsx                |    3 +-
 .../src/components/SQLPopover.tsx                  |   28 +-
 .../src/components/labelUtils.tsx                  |    3 +-
 .../superset-ui-chart-controls/src/constants.ts    |    9 +-
 .../superset-ui-chart-controls/src/fixtures.ts     |    3 +-
 .../src/operators/renameOperator.ts                |   14 +-
 .../src/sections/matrixify.tsx                     |   44 +-
 .../src/shared-controls/customControls.tsx         |    2 +-
 .../src/shared-controls/dndControls.tsx            |    8 +-
 .../src/shared-controls/matrixifyControls.tsx      |  161 +-
 .../src/shared-controls/sharedControls.tsx         |   26 +
 .../superset-ui-chart-controls/src/types.ts        |    6 +-
 .../src/utils/checkColumnType.ts                   |    9 +-
 .../src/utils/columnChoices.ts                     |    3 +-
 .../src/utils/getColorFormatters.ts                |   35 +-
 .../src/utils/isSortable.ts                        |    2 +-
 .../test/components/ColumnOption.test.tsx          |    3 +-
 .../test/components/ColumnTypeLabel.test.tsx       |    3 +-
 .../test/operators/aggregateOperator.test.ts       |   10 +-
 .../test/operators/renameOperator.test.ts          |  111 +-
 .../test/operators/sortOperator.test.ts            |   36 +-
 .../superset-ui-chart-controls/test/tsconfig.json  |   12 +-
 .../test/utils/checkColumnType.test.ts             |    3 +-
 .../test/utils/columnChoices.test.tsx              |    7 +-
 .../test/utils/getColorFormatters.test.ts          |  967 ++--
 .../test/utils/getTemporalColumns.test.ts          |   21 +-
 .../test/utils/isSortable.test.ts                  |    2 +-
 .../superset-ui-chart-controls/tsconfig.json       |   28 +-
 .../packages/superset-ui-core/.eslintrc            |   68 -
 .../packages/superset-ui-core/package.json         |   25 +-
 .../src/chart/components/FallbackComponent.tsx     |    2 +-
 .../Matrixify/MatrixifyGridCell.test.tsx           |    2 +-
 .../components/Matrixify/MatrixifyGridCell.tsx     |    2 +-
 .../components/Matrixify/MatrixifyGridGenerator.ts |    8 +-
 .../Matrixify/MatrixifyGridRenderer.test.tsx       |   37 +-
 .../components/Matrixify/MatrixifyGridRenderer.tsx |   12 +-
 .../src/chart/components/NoResultsComponent.tsx    |    2 +-
 .../src/chart/components/SuperChartCore.test.tsx   |   90 +
 .../src/chart/components/SuperChartCore.tsx        |   61 +-
 .../src/chart/models/ChartMetadata.ts              |    6 +
 .../src/chart/models/ChartProps.ts                 |    2 +-
 .../superset-ui-core/src/chart/types/Base.ts       |   38 +
 .../src/chart/types/matrixify.test.ts              |   34 +-
 .../superset-ui-core/src/chart/types/matrixify.ts  |   19 +-
 .../components/ActionButton/ActionButton.test.tsx  |  108 +
 .../src/components/ActionButton/index.tsx          |   75 +
 .../superset-ui-core/src/components/Alert/types.ts |   24 -
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |  252 +
 .../src/components/AsyncAceEditor/index.tsx        |  104 +-
 .../src/components/Badge/index.tsx                 |    2 +-
 .../src/components/Button/index.tsx                |    2 +-
 .../superset-ui-core/src/components/Card/index.tsx |    2 +-
 .../src/components/CertifiedBadge/index.tsx        |    3 +-
 .../src/components/Checkbox/CheckboxIcons.tsx      |    2 +-
 .../src/components/CodeEditor/index.tsx            |  106 +
 .../src/components/CodeSyntaxHighlighter/index.tsx |    2 +-
 .../src/components/Collapse/Collapse.tsx           |    2 +-
 .../components/Collapse/CollapseLabelInModal.tsx   |   12 +-
 .../components/ConfirmModal/ConfirmModal.test.tsx  |  129 +
 .../src/components/ConfirmModal/index.tsx          |   88 +
 .../src/components/CronPicker/index.tsx            |    3 +-
 .../src/components/DatePicker/index.tsx            |    2 +-
 .../src/components/DeleteModal/index.tsx           |    3 +-
 .../src/components/Divider/index.tsx               |    2 +-
 .../src/components/Dropdown/index.tsx              |    2 +-
 .../src/components/DropdownButton/index.tsx        |    2 +-
 .../DropdownContainer.stories.tsx                  |    2 +-
 .../DropdownContainer/DropdownContainer.tsx        |    3 +-
 .../src/components/DynamicEditableTitle/index.tsx  |    3 +-
 .../src/components/EditableTitle/index.tsx         |    7 +-
 .../src/components/EditableTitle/types.ts          |    1 +
 .../src/components/EmptyState/index.tsx            |    9 +-
 .../src/components/FaveStar/index.tsx              |    3 +-
 .../src/components/Flex/Flex.stories.tsx           |    2 +-
 .../src/components/Form/FormItem.tsx               |    2 +-
 .../src/components/Form/FormLabel.tsx              |    2 +-
 .../src/components/Form/LabeledErrorBoundInput.tsx |    3 +-
 .../src/components/IconButton/index.tsx            |    2 +-
 .../components/IconTooltip/IconTooltip.stories.tsx |    2 +-
 .../src/components/Icons/AntdEnhanced.tsx          |    4 +
 .../src/components/Icons/BaseIcon.tsx              |    4 +-
 .../src/components/Icons/Icons.stories.tsx         |    2 +-
 .../src/components/InfoTooltip/index.tsx           |    3 +-
 .../src/components/Label/index.tsx                 |    2 +-
 .../components/Label/reusable/DatasetTypeLabel.tsx |    3 +-
 .../components/Label/reusable/PublishedLabel.tsx   |    3 +-
 .../src/components/LastUpdated/index.tsx           |   11 +-
 .../superset-ui-core/src/components/List/index.ts  |    2 +-
 .../src/components/ListViewCard/ImageLoader.tsx    |    3 +-
 .../src/components/ListViewCard/index.tsx          |    2 +-
 .../src/components/Loading/Loading.stories.tsx     |  192 +-
 .../src/components/Loading/Loading.test.tsx        |    3 +-
 .../src/components/Loading/index.test.tsx          |  107 +
 .../src/components/Loading/index.tsx               |   80 +-
 .../src/components/Loading/types.ts                |    4 +
 .../superset-ui-core/src/components/Menu/index.tsx |    2 +-
 .../src/components/Metadata/index.tsx              |    2 +-
 .../src/components/MetadataBar/ContentConfig.tsx   |    3 +-
 .../components/MetadataBar/MetadataBar.stories.tsx |    2 +-
 .../components/MetadataBar/MetadataBar.test.tsx    |    3 +-
 .../src/components/MetadataBar/MetadataBar.tsx     |    2 +-
 .../src/components/Modal/Modal.tsx                 |    3 +-
 .../superset-ui-core/src/components/Modal/types.ts |    4 +-
 .../src/components/PageHeaderWithActions/index.tsx |    3 +-
 .../src/components/Pagination/Ellipsis.test.tsx    |   37 -
 .../src/components/Pagination/Item.test.tsx        |   47 -
 .../src/components/Pagination/Item.tsx             |   45 -
 .../src/components/Pagination/Next.test.tsx        |   37 -
 .../src/components/Pagination/Next.tsx             |   38 -
 .../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 -
 .../src/components/PopoverDropdown/index.tsx       |    2 +-
 .../src/components/PopoverSection/index.tsx        |    2 +-
 .../src/components/Progress/index.tsx}             |   12 +-
 .../src/components/ProgressBar/index.tsx           |    2 +-
 .../src/components/Radio/Radio.stories.tsx         |    2 +-
 .../src/components/RefreshLabel/index.tsx          |    2 +-
 .../src/components/Select/AsyncSelect.test.tsx     |    3 +-
 .../src/components/Select/Select.test.tsx          |   32 +
 .../src/components/Select/Select.tsx               |   49 +-
 .../src/components/Select/styles.tsx               |    3 +-
 .../src/components/Table/Table.test.tsx            |    6 +-
 .../src/components/Table/VirtualTable.tsx          |    3 +-
 .../Table/cell-renderers/ActionCell/index.tsx      |    2 +-
 .../Table/cell-renderers/NullCell/index.tsx        |    2 +-
 .../header-renderers/HeaderWithRadioGroup.tsx      |    2 +-
 .../src/components/Table/index.tsx                 |   30 +-
 .../TableCollection/TableCollection.test.tsx       |  146 +-
 .../src/components/TableCollection/index.tsx       |  170 +-
 .../src/components/TableView/TableView.test.tsx    |  212 +-
 .../src/components/TableView/TableView.tsx         |  233 +-
 .../src/components/Tabs/Tabs.test.tsx              |  377 ++
 .../superset-ui-core/src/components/Tabs/Tabs.tsx  |   25 +-
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |   34 +-
 .../src/components/ThemedAgGridReact/index.tsx     |    8 +-
 .../ThemedAgGridReact/setupAGGridModules.test.ts   |  128 +
 .../ThemedAgGridReact/setupAGGridModules.ts        |   47 +-
 .../src/components/Timer/index.tsx                 |    2 +-
 .../src/components/TruncatedList/index.tsx         |    3 +-
 .../src/components/Typography/Typography.test.tsx  |    2 +-
 .../src/components/Typography/index.tsx            |    2 +-
 .../components/WarningIconWithTooltip/index.tsx    |    2 +-
 .../src/components/assets/images/index.ts          |    4 +-
 .../src/components/assets/images/loading.svg       |  Bin 0 -> 1652 bytes
 .../superset-ui-core/src/components/index.ts       |   12 +-
 .../useTruncation/useChildElementTruncation.ts     |    2 +-
 .../packages/superset-ui-core/src/index.ts         |    1 -
 .../src/query/normalizeTimeColumn.ts               |    1 +
 .../superset-ui-core/src/query/types/Column.ts     |    7 +-
 .../superset-ui-core/src/query/types/Query.ts      |    5 +-
 .../src/query/types/QueryResponse.ts               |   11 +-
 .../packages/superset-ui-core/src/spec/index.tsx   |    2 +-
 .../superset-ui-core/src/theme/Theme.test.tsx      |  208 -
 .../superset-ui-core/src/theme/utils.test.ts       |  352 --
 .../src/theme/utils/themeUtils.test.ts             |  134 -
 .../src/time-comparison/customTimeRangeDecode.ts   |   12 +-
 .../packages/superset-ui-core/src/types/AgGrid.ts  |   82 +
 .../packages/superset-ui-core/src/types/index.ts   |    1 +
 .../packages/superset-ui-core/src/utils/dates.ts   |    3 +-
 .../superset-ui-core/src/utils/featureFlags.ts     |    2 +
 .../superset-ui-core/src/utils/html.test.tsx       |   99 +
 .../packages/superset-ui-core/src/utils/html.tsx   |   13 +-
 .../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 +
 .../src/validator/validateMaxValue.ts              |    2 +-
 .../test/chart/components/MockChartPlugins.tsx     |    8 +-
 .../test/chart/components/SuperChartCore.test.tsx  |   11 +-
 .../test/chart/models/ChartPlugin.test.tsx         |    2 +-
 .../test/chart/models/ChartProps.test.ts           |    3 +-
 .../Icons/AsyncIcon.integration.test.tsx           |    2 +-
 .../packages/superset-ui-core/test/fixtures.ts     |    3 +-
 .../test/query/normalizeTimeColumn.test.ts         |    1 +
 .../packages/superset-ui-core/test/tsconfig.json   |    8 +-
 .../packages/superset-ui-core/tsconfig.json        |   30 +-
 .../superset-ui-core/types/ace-builds.d.ts         |    2 +
 .../packages/superset-ui-core/types/assets.d.ts    |    2 +
 .../superset-ui-demo/.storybook/themeDecorator.js  |    8 -
 .../superset-ui-demo/.storybook/themeDecorator.jsx |   10 +
 .../packages/superset-ui-demo/package.json         |    3 +-
 .../shared/components/ResizableChartDemo.tsx       |    2 +-
 .../CountryMap.stories.tsx                         |    9 +-
 .../legacy-plugin-chart-map-box/MapBox.stories.tsx |    3 +-
 .../plugins/legacy-plugin-chart-map-box/data.ts    |    2 +-
 .../Path/Path.stories.tsx                          |    3 +-
 .../stories/plugins/plugin-chart-table/testData.ts |    9 +-
 .../stories/superset-ui-theme/Theme.stories.tsx    |  103 +-
 .../packages/superset-ui-switchboard/tsconfig.json |   24 +-
 superset-frontend/playwright.config.ts             |   97 +
 superset-frontend/playwright/README.md             |  225 +
 .../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 +
 .../playwright/tests/experimental/README.md        |   70 +
 .../.eslintrc => playwright/utils/urls.ts}         |   12 +-
 .../legacy-plugin-chart-calendar/package.json      |    1 +
 .../src/ReactCalendar.jsx                          |    3 +-
 .../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     |   23 +-
 .../plugins/legacy-plugin-chart-chord/package.json |    5 +-
 .../legacy-plugin-chart-chord/src/ReactChord.jsx   |    3 +-
 .../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        |   23 +-
 .../legacy-plugin-chart-country-map/package.json   |    1 +
 .../src/ReactCountryMap.jsx                        |    5 +-
 .../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  |   23 +-
 .../legacy-plugin-chart-horizon/package.json       |    1 +
 .../src/HorizonChart.jsx                           |    3 +-
 .../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      |   23 +-
 .../legacy-plugin-chart-map-box/package.json       |    1 +
 .../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      |   23 +-
 .../legacy-plugin-chart-paired-t-test/package.json |    1 +
 .../src/PairedTTest.jsx                            |    2 +-
 .../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                                  |   23 +-
 .../package.json                                   |    1 +
 .../src/ReactParallelCoordinates.jsx               |    3 +-
 .../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                                  |   28 +-
 .../legacy-plugin-chart-partition/package.json     |    1 +
 .../src/ReactPartition.jsx                         |    3 +-
 .../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    |   26 +-
 .../plugins/legacy-plugin-chart-rose/package.json  |    1 +
 .../legacy-plugin-chart-rose/src/ReactRose.jsx     |    3 +-
 .../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 |   23 +-
 .../legacy-plugin-chart-world-map/package.json     |    1 +
 .../src/ReactWorldMap.jsx                          |    3 +-
 .../legacy-plugin-chart-world-map/src/WorldMap.js  |    5 +-
 .../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    |   23 +-
 .../legacy-preset-chart-deckgl/package.json        |    7 +-
 .../src/CategoricalDeckGLContainer.tsx             |   54 +-
 .../src/DeckGLContainer.tsx                        |   26 +-
 .../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                      |    5 +-
 .../src/components/Tooltip.tsx                     |   39 +-
 .../src/layers/Arc/Arc.tsx                         |   56 +-
 .../src/layers/Arc/buildQuery.ts                   |   96 +
 .../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                        |   10 +-
 .../src/layers/Arc/transformProps.ts               |  108 +
 .../src/layers/Contour/Contour.tsx                 |   72 +-
 .../src/layers/Contour/buildQuery.ts}              |   30 +-
 .../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                    |   12 +-
 .../src/layers/Contour/transformProps.ts}          |    4 +-
 .../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                       |   34 +-
 .../src/layers/Grid/buildQuery.ts}                 |   11 +-
 .../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                       |   10 +-
 .../src/layers/Grid/transformProps.ts}             |    9 +-
 .../src/layers/Heatmap/Heatmap.tsx                 |   95 +-
 .../src/layers/Heatmap/buildQuery.ts}              |    8 +-
 .../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                    |   12 +-
 .../src/layers/Heatmap/transformProps.ts}          |    9 +-
 .../src/layers/Hex/Hex.tsx                         |   32 +-
 .../src/layers/Hex/buildQuery.ts}                  |   13 +-
 .../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                        |   10 +-
 .../src/layers/Hex/transformProps.ts}              |    9 +-
 .../src/layers/Path/Path.tsx                       |   30 +-
 .../src/layers/Path/buildQuery.ts                  |   95 +
 .../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                       |   10 +-
 .../src/layers/Path/transformProps.ts              |  166 +
 .../src/layers/Polygon/Polygon.test.tsx            |  355 ++
 .../src/layers/Polygon/Polygon.tsx                 |   76 +-
 .../src/layers/Polygon/buildQuery.ts               |  111 +
 .../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                    |   10 +-
 .../src/layers/Polygon/transformProps.ts           |  143 +
 .../src/layers/Scatter/Scatter.tsx                 |   47 +-
 .../src/layers/Scatter/buildQuery.ts               |  105 +
 .../src/layers/Scatter/controlPanel.ts             |    9 +-
 .../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                    |   10 +-
 .../src/layers/Scatter/transformProps.ts           |  116 +
 .../src/layers/Screengrid/Screengrid.tsx           |  113 +-
 .../src/layers/Screengrid/buildQuery.ts}           |    8 +-
 .../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                 |   10 +-
 .../src/layers/Screengrid/transformProps.ts}       |    9 +-
 .../src/layers/buildQueryUtils.ts                  |  142 +
 .../src/layers/common.tsx                          |   18 +-
 .../src/layers/spatialUtils.test.ts                |  604 +++
 .../src/layers/spatialUtils.ts                     |  400 ++
 .../src/layers/transformUtils.ts                   |  142 +
 .../src/utilities/HandlebarsRenderer.tsx           |  231 +
 .../src/utilities/Shared_DeckGL.tsx                |   80 +-
 .../src/utilities/TooltipTemplateControl.tsx       |   83 +
 .../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/src/utils.test.ts   |  446 +-
 .../legacy-preset-chart-deckgl/src/utils.ts        |   41 +-
 .../src/utils/crossFiltersDataMask.ts              |   25 +-
 .../legacy-preset-chart-deckgl/tsconfig.json       |   16 +-
 .../plugins/legacy-preset-chart-nvd3/package.json  |    5 +-
 .../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 +-
 .../legacy-preset-chart-nvd3/src/ReactNVD3.jsx     |    3 +-
 .../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 |   16 +-
 .../plugin-chart-ag-grid-table/package.json        |    1 +
 .../src/AgGridTable/index.tsx                      |  134 +-
 .../src/AgGridTableChart.tsx                       |   19 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |  203 +-
 .../src/controlPanel.tsx                           |    3 +-
 .../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
 .../src/images/thumbnail-dark.png                  |  Bin 0 -> 52566 bytes
 .../plugin-chart-ag-grid-table/src/index.ts        |   17 +-
 .../src/renderers/NumericCellRenderer.tsx          |    8 +-
 .../src/stateConversion.ts                         |  234 +
 .../src/styles/index.tsx                           |    2 +-
 .../src/transformProps.ts                          |  102 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |    5 +-
 .../src/utils/formatValue.ts                       |    2 +-
 .../src/utils/getCrossFilterDataMask.ts            |    2 +-
 .../src/utils/useColDefs.ts                        |    3 +-
 .../src/utils/useTableTheme.ts                     |    4 +-
 .../test/buildQuery.test.ts                        |  478 ++
 .../plugin-chart-ag-grid-table/tsconfig.json       |   30 +-
 .../plugins/plugin-chart-cartodiagram/package.json |    1 +
 .../src/CartodiagramPlugin.tsx                     |    2 +-
 .../src/components/ChartLayer.tsx                  |    2 +-
 .../src/components/ChartWrapper.tsx                |    3 +-
 .../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 +-
 .../plugins/plugin-chart-cartodiagram/src/types.ts |    7 +-
 .../src/util/chartUtil.tsx                         |    2 +-
 .../test/plugin/transformProps.test.ts             |    7 +-
 .../plugin-chart-cartodiagram/test/tsconfig.json   |   15 +-
 .../plugin-chart-cartodiagram/tsconfig.json        |   23 +-
 .../plugins/plugin-chart-echarts/package.json      |    3 +-
 .../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx |    4 +-
 .../BigNumberPeriodOverPeriod/controlPanel.ts      |    3 +-
 .../images/thumbnail-dark.png                      |  Bin 0 -> 11540 bytes
 .../BigNumber/BigNumberPeriodOverPeriod/index.ts   |    2 +
 .../BigNumberPeriodOverPeriod/transformProps.ts    |    6 +-
 .../src/BigNumber/BigNumberTotal/controlPanel.ts   |    3 +-
 .../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 +-
 .../BigNumberTotal/transformProps.test.ts          |    2 +-
 .../src/BigNumber/BigNumberTotal/transformProps.ts |    5 +-
 .../src/BigNumber/BigNumberViz.tsx                 |    3 +-
 .../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.test.ts  |    2 +-
 .../BigNumberWithTrendline/transformProps.ts       |    6 +-
 .../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/controlPanel.tsx                    |    4 +-
 .../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/Bubble/transformProps.ts                   |    6 +-
 .../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/Funnel/transformProps.ts                   |    6 +-
 .../src/Gantt/controlPanel.tsx                     |   17 +-
 .../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                    |   19 +-
 .../src/Gauge/EchartsGauge.tsx                     |    4 +-
 .../plugin-chart-echarts/src/Gauge/constants.ts    |    2 +-
 .../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/Graph/transformProps.ts                    |    6 +-
 .../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                  |   10 +-
 .../src/Histogram/controlPanel.tsx                 |    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/EchartsMixedTimeseries.tsx |   26 +-
 .../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          |   44 +-
 .../src/MixedTimeseries/types.ts                   |    1 +
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |    4 +-
 .../plugin-chart-echarts/src/Pie/controlPanel.tsx  |    3 +-
 .../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 +-
 .../plugins/plugin-chart-echarts/src/Pie/types.ts  |    1 -
 .../src/Radar/EchartsRadar.tsx                     |    4 +-
 .../src/Radar/controlPanel.tsx                     |    2 +-
 .../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/Radar/transformProps.ts                    |    6 +-
 .../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.test.tsx      |  311 ++
 .../src/Timeseries/EchartsTimeseries.tsx           |   29 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    8 +-
 .../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   |   25 +-
 .../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    |   49 +
 .../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 +-
 .../src/Timeseries/constants.ts                    |    1 +
 .../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               |   77 +-
 .../src/Timeseries/transformers.ts                 |   66 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    2 +
 .../plugin-chart-echarts/src/Tree/constants.ts     |    1 +
 .../plugin-chart-echarts/src/Tree/controlPanel.tsx |   17 +
 .../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/Tree/transformProps.ts                     |    2 +
 .../plugins/plugin-chart-echarts/src/Tree/types.ts |    1 +
 .../plugin-chart-echarts/src/Treemap/constants.ts  |    1 -
 .../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                 |   97 +-
 .../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                |   74 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |    4 +
 .../plugin-chart-echarts/src/components/Echart.tsx |   37 +-
 .../src/components/ExtraControls.tsx               |    3 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    1 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   20 +-
 .../plugins/plugin-chart-echarts/src/types.ts      |    2 +
 .../src/utils/eventHandlers.ts                     |    7 +-
 .../plugin-chart-echarts/src/utils/series.ts       |   13 +-
 .../src/utils/themeOverrides.test.ts               |  263 ++
 .../test/BigNumber/transformProps.test.ts          |    8 +-
 .../test/BoxPlot/transformProps.test.ts            |   11 +-
 .../test/Bubble/transformProps.test.ts             |  154 +-
 .../test/Funnel/transformProps.test.ts             |   96 +-
 .../test/Gantt/transformProps.test.ts              |  150 +-
 .../test/Gauge/transformProps.test.ts              |    2 +-
 .../test/Graph/transformProps.test.ts              |  159 +-
 .../test/MixedTimeseries/transformProps.test.ts    |  167 +-
 .../test/Pie/transformProps.test.ts                |    4 +-
 .../test/Radar/transformProps.test.ts              |  165 +-
 .../test/Timeseries/Bar/transformProps.test.ts     |    3 +-
 .../test/Timeseries/Scatter/controlPanel.test.ts   |  156 +
 .../test/Timeseries/Scatter/transformProps.test.ts |  183 +
 .../test/Timeseries/buildQuery.test.ts             |   59 +-
 .../test/Timeseries/transformProps.test.ts         |  148 +-
 .../test/Timeseries/transformers.test.ts           |   16 +-
 .../test/Tree/transformProps.test.ts               |    3 +-
 .../test/Treemap/transformProps.test.ts            |    3 +-
 .../test/Waterfall/transformProps.test.ts          |  189 +-
 .../plugin-chart-echarts/test/tsconfig.json        |   15 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |    4 +-
 .../test/utils/transformers.test.ts                |    2 +-
 .../plugins/plugin-chart-echarts/tsconfig.json     |   26 +-
 .../plugins/plugin-chart-handlebars/README.md      |    3 -
 .../plugins/plugin-chart-handlebars/package.json   |    3 +-
 .../plugin-chart-handlebars/src/Handlebars.tsx     |    2 +-
 .../src/components/CodeEditor/CodeEditor.tsx       |   67 +-
 .../src/components/Handlebars/HandlebarsViewer.tsx |    7 +-
 .../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
 .../src/plugin/controls/handlebarTemplate.tsx      |    3 +-
 .../src/plugin/controls/style.tsx                  |    3 +-
 .../plugin-chart-handlebars/src/plugin/index.ts    |    9 +-
 .../test/plugin/transformProps.test.ts             |    8 +-
 .../plugins/plugin-chart-handlebars/tsconfig.json  |   26 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    5 +-
 .../src/PivotTableChart.tsx                        |   40 +-
 .../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 +-
 .../src/plugin/transformProps.ts                   |    9 +-
 .../src/react-pivottable/Styles.js                 |    2 +-
 .../test/plugin/transformProps.test.ts             |    3 +-
 .../plugins/plugin-chart-pivot-table/tsconfig.json |   16 +-
 .../plugins/plugin-chart-table/package.json        |    1 +
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   73 +-
 .../DataTable/components/SearchSelectDropdown.tsx  |    2 +-
 .../src/DataTable/components/SelectPageSize.tsx    |    3 +-
 .../src/DataTable/hooks/useSticky.tsx              |   25 +
 .../plugins/plugin-chart-table/src/Styles.tsx      |    2 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  483 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |    2 +-
 .../plugins/plugin-chart-table/src/consts.ts       |    2 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   28 +-
 .../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 +-
 .../plugin-chart-table/src/transformProps.ts       |    5 +-
 .../plugins/plugin-chart-table/src/types.ts        |    2 +-
 .../plugin-chart-table/src/utils/formatValue.ts    |    2 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  395 +-
 .../plugins/plugin-chart-table/test/testData.ts    |    4 +-
 .../plugin-chart-table/test/testHelpers.tsx        |    6 +-
 .../plugins/plugin-chart-table/test/tsconfig.json  |   12 +-
 .../plugins/plugin-chart-table/tsconfig.json       |   26 +-
 .../plugins/plugin-chart-word-cloud/package.json   |    1 +
 .../src/chart/WordCloud.tsx                        |    8 +-
 .../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  |   23 +-
 superset-frontend/scripts/build.js                 |   46 +-
 superset-frontend/scripts/check-custom-rules.js    |  328 ++
 .../scripts/oxlint-metrics-uploader.js             |  245 +
 superset-frontend/spec/.eslintrc                   |   40 -
 .../spec/fixtures/mockDashboardInfo.js             |    1 -
 .../spec/fixtures/mockDashboardLayout.js           |   20 +-
 .../{mockDatasource.js => mockDatasource.ts}       |   79 +-
 superset-frontend/spec/helpers/ProviderWrapper.tsx |    2 +-
 superset-frontend/spec/helpers/setup.ts            |    6 +
 superset-frontend/spec/helpers/testing-library.tsx |    5 +-
 .../spec/javascripts/dashboard/.eslintrc           |   30 -
 superset-frontend/src/.eslintrc.json               |   11 +
 .../src/SqlLab/SqlLabGlobalStyles.tsx              |    2 +-
 superset-frontend/src/SqlLab/actions/sqlLab.js     |   26 +-
 .../src/SqlLab/actions/sqlLab.test.js              |  221 +-
 .../AceEditorWrapper/AceEditorWrapper.test.tsx     |    7 +-
 .../SqlLab/components/AceEditorWrapper/index.tsx   |   10 +-
 .../components/AceEditorWrapper/useKeywords.ts     |   11 +-
 .../src/SqlLab/components/App/App.test.tsx         |   11 +-
 .../src/SqlLab/components/App/index.tsx            |    3 +-
 .../ColumnElement/ColumnElement.test.tsx           |    9 +-
 .../src/SqlLab/components/ColumnElement/index.tsx  |    3 +-
 .../EstimateQueryCostButton.test.tsx               |   17 +-
 .../components/EstimateQueryCostButton/index.tsx   |    4 +-
 .../ExploreCtasResultsButton.test.tsx              |    7 +-
 .../ExploreResultsButton.test.tsx                  |    5 +-
 .../components/KeyboardShortcutButton/index.tsx    |    3 +-
 .../QueryAutoRefresh/QueryAutoRefresh.test.tsx     |   23 +-
 .../SqlLab/components/QueryAutoRefresh/index.tsx   |   11 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |   18 +-
 .../QueryLimitSelect/QueryLimitSelect.test.tsx     |   15 +-
 .../SqlLab/components/QueryStateLabel/index.tsx    |    3 +-
 .../components/QueryTable/QueryTable.test.tsx      |    1 +
 .../src/SqlLab/components/QueryTable/index.tsx     |    3 +-
 .../src/SqlLab/components/QueryTable/styles.ts     |    2 +-
 .../SqlLab/components/ResultSet/ResultSet.test.tsx |   94 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |  354 +-
 .../RunQueryActionButton.test.tsx                  |   16 +-
 .../components/RunQueryActionButton/index.tsx      |    3 +-
 .../SaveDatasetActionButton.test.tsx               |    1 +
 .../components/SaveDatasetActionButton/index.tsx   |    3 +-
 .../SaveDatasetModal/SaveDatasetModal.test.tsx     |   69 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |   92 +-
 .../SqlLab/components/SaveQuery/SaveQuery.test.tsx |   21 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    3 +-
 .../components/ScheduleQueryButton/index.tsx       |    3 +-
 .../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx     |    6 +-
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |    8 +-
 .../src/SqlLab/components/SouthPane/Results.tsx    |    5 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |    3 +-
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |   33 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |   15 +-
 .../SqlLab/components/SqlEditorLeftBar/index.tsx   |   33 +-
 .../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx |   18 +-
 .../SqlLab/components/SqlEditorTabHeader/index.tsx |   10 +-
 .../TabbedSqlEditors/TabbedSqlEditors.test.tsx     |    1 +
 .../SqlLab/components/TabbedSqlEditors/index.tsx   |    9 +-
 .../components/TableElement/TableElement.test.tsx  |  234 +-
 .../src/SqlLab/components/TableElement/index.tsx   |   41 +-
 .../components/TablePreview/TablePreview.test.tsx  |   15 +-
 .../src/SqlLab/components/TablePreview/index.tsx   |  115 +-
 .../TemplateParamsEditor.test.tsx                  |    9 +-
 .../components/TemplateParamsEditor/index.tsx      |   25 +-
 superset-frontend/src/SqlLab/fixtures.ts           |   14 +-
 .../middlewares/persistSqlLabStateEnhancer.js      |    2 +-
 .../src/SqlLab/reducers/getInitialState.test.ts    |   20 +-
 .../src/SqlLab/reducers/getInitialState.ts         |   20 +-
 superset-frontend/src/SqlLab/reducers/sqlLab.js    |   15 +-
 .../src/SqlLab/reducers/sqlLab.test.js             |  164 +-
 superset-frontend/src/SqlLab/types.ts              |    1 +
 .../src/SqlLab/utils/emptyQueryResults.test.ts     |    7 +-
 .../src/SqlLab/utils/newQueryTabName.test.ts       |    5 +-
 .../SqlLab/utils/reduxStateToLocalStorageHelper.ts |    1 +
 .../src/assets/images/icons/slack.svg              |  Bin 2654 -> 0 bytes
 .../components/AlteredSliceTag/utils/utils.test.ts |   47 +-
 superset-frontend/src/components/Chart/Chart.tsx   |   20 +-
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |  182 +-
 .../components/Chart/ChartErrorMessage.test.tsx    |    5 +-
 .../src/components/Chart/ChartRenderer.jsx         |    8 +-
 .../src/components/Chart/ChartRenderer.test.jsx    |   42 +-
 .../components/Chart/DisabledMenuItemTooltip.tsx   |    2 +-
 .../src/components/Chart/DrillBy/DrillByChart.tsx  |    2 +-
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  |  274 --
 .../components/Chart/DrillBy/DrillByModal.test.tsx |  214 +
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |    4 +-
 ...yMenuItems.test.tsx => DrillBySubmenu.test.tsx} |  183 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |  341 ++
 .../Chart/DrillBy/useDisplayModeToggle.tsx         |    3 +-
 .../Chart/DrillBy/useResultsTableView.tsx          |    3 +-
 .../Chart/DrillDetail/DrillDetailMenuItems.tsx     |  253 -
 .../Chart/DrillDetail/DrillDetailModal.tsx         |    3 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |    5 +-
 .../Chart/DrillDetail/DrillDetailTableControls.tsx |    5 +-
 .../src/components/Chart/DrillDetail/types.ts      |    2 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |    8 +-
 .../src/components/Chart/chartAction.js            |   13 +-
 .../src/components/Chart/chartActions.test.js      |  101 +-
 .../src/components/Chart/chartReducers.test.js     |    5 +-
 .../index.tsx}                                     |  203 +-
 .../useDrillDetailMenuItems.test.tsx}              |   94 +-
 .../src/components/CopyToClipboard/index.tsx       |    3 +-
 .../src/components/CrudThemeProvider.tsx           |   13 +-
 .../src/components/DatabaseSelector/index.tsx      |   81 +-
 .../{ImportModal => DatabaseSelector}/styles.ts    |   14 +-
 .../ChangeDatasourceModal.test.jsx                 |    2 +-
 .../index.tsx}                                     |   16 +-
 .../components/Datasource/DatasourceModal.test.jsx |  138 -
 .../DatasourceModal/DatasourceModal.test.jsx       |  309 ++
 .../DatasourceModal.useModal.test.tsx              |  110 +
 .../index.tsx}                                     |   79 +-
 .../CollectionTable}/CollectionTable.test.tsx      |    2 +-
 .../CollectionTable/index.tsx}                     |   41 +-
 .../DatasourceEditor}/DatasourceEditor.jsx         |  211 +-
 .../DashboardLinksExternal.test.tsx                |  133 +
 .../components/DashboardLinksExternal/index.tsx    |   78 +
 .../DatasetUsageTab/DatasetUsageTab.test.tsx       |  500 ++
 .../components/DatasetUsageTab/index.tsx           |  311 ++
 .../DatasourceEditor/components}/index.ts          |    5 +-
 .../components/DatasourceEditor}/index.ts          |    2 +-
 .../tests/DatasourceEditor.test.tsx}               |  104 +-
 .../tests/DatasourceEditorCurrency.test.tsx}       |   39 +-
 .../tests/DatasourceEditorRTL.test.tsx}            |   25 +-
 .../{ => components/Field}/Field.test.tsx          |    2 +-
 .../{Field.tsx => components/Field/index.tsx}      |    2 +-
 .../Fieldset/index.tsx}                            |    6 +-
 .../components/Datasource/components}/index.ts     |    7 +-
 .../components/Datasource/{index.tsx => index.ts}  |    0
 .../Datasource/{utils.js => utils/index.js}        |    0
 .../Datasource/{ => utils}/utils.test.tsx          |   13 +-
 .../ErrorMessage/BasicErrorAlert.test.tsx          |    3 +-
 .../components/ErrorMessage/BasicErrorAlert.tsx    |    8 +-
 .../ErrorMessage/CustomDocLink.test.tsx}           |   29 +-
 .../ErrorMessage/CustomDocLink.tsx}                |   18 +-
 .../ErrorMessage/DatabaseErrorMessage.test.tsx     |   57 +
 .../ErrorMessage/DatabaseErrorMessage.tsx          |   29 +-
 .../components/ErrorMessage/ErrorAlert.test.tsx    |  115 +-
 .../src/components/ErrorMessage/ErrorAlert.tsx     |    6 +-
 .../ErrorMessage/InvalidSQLErrorMessage.test.tsx   |   11 +-
 .../src/components/ErrorMessage/IssueCode.tsx      |    2 +-
 .../ErrorMessage/MarshmallowErrorMessage.test.tsx  |    1 +
 .../ErrorMessage/OAuth2RedirectMessage.test.tsx    |   13 +-
 .../src/components/FacePile/FacePile.stories.tsx   |    2 +-
 .../src/components/FacePile/FacePile.test.tsx      |   23 +-
 .../src/components/FacePile/utils.tsx              |    2 +-
 .../FilterableTable/FilterableTable.test.tsx       |   20 +-
 .../src/components/FilterableTable/index.tsx       |    1 -
 .../FlashProvider/FlashProvider.test.tsx           |   65 -
 .../src/components/FlashProvider/index.tsx         |   51 -
 .../src/components/FlashProvider/types.ts          |   20 -
 .../src/components/GridTable/Header.test.tsx       |    2 +-
 .../src/components/GridTable/Header.tsx            |    3 +-
 .../src/components/GridTable/HeaderMenu.test.tsx   |    1 +
 .../src/components/GridTable/HeaderMenu.tsx        |    3 +-
 .../src/components/GridTable/index.tsx             |    2 +-
 .../src/components/ImportModal/ErrorAlert.tsx      |    4 +-
 .../src/components/ImportModal/index.tsx           |    3 +-
 .../src/components/ImportModal/styles.ts           |    2 +-
 .../src/components/ListView/ActionsBar.tsx         |   50 +-
 .../src/components/ListView/CardCollection.tsx     |   23 +-
 .../src/components/ListView/CardSortSelect.tsx     |    3 +-
 .../src/components/ListView/CrossLinks.tsx         |   13 +-
 .../src/components/ListView/CrossLinksTooltip.tsx  |    3 +-
 .../components/ListView/DashboardCrossLinks.tsx    |   10 +-
 .../src/components/ListView/Filters/Base.ts        |    2 +-
 .../components/ListView/Filters/NumericalRange.tsx |    3 +-
 .../src/components/ListView/Filters/Search.tsx     |    3 +-
 .../src/components/ListView/Filters/index.tsx      |    2 +-
 .../src/components/ListView/ListView.test.jsx      |  265 --
 .../src/components/ListView/ListView.test.tsx      |  294 +-
 .../src/components/ListView/ListView.tsx           |   99 +-
 superset-frontend/src/components/ListView/utils.ts |   35 +-
 .../src/components/MessageToasts/Toast.tsx         |    2 +-
 .../components/MessageToasts/ToastPresenter.tsx    |    2 +-
 .../src/components/MessageToasts/reducers.test.js  |   39 +-
 .../MessageToasts/{reducers.js => reducers.ts}     |   20 +-
 .../components/Modal/CollapsibleModalSection.tsx   |    2 +-
 .../src/components/Modal/ModalFormField.tsx        |    2 +-
 .../src/components/Modal/StandardModal.tsx         |   17 +-
 .../src/components/Modal/useModalValidation.tsx    |    3 +-
 .../ModalTitleWithIcon/ModalTitleWithIcon.test.tsx |   63 +-
 .../src/components/ModalTitleWithIcon/index.tsx    |    2 +-
 .../src/components/ResizableSidebar/index.tsx      |    2 +-
 .../ResizableSidebar/useStoredSidebarWidth.test.ts |    7 +-
 .../SQLEditorWithValidation.test.tsx               |   35 +-
 .../components/SQLEditorWithValidation/index.tsx   |    3 +-
 .../StreamingExportModal.test.tsx                  |  244 +
 .../StreamingExportModal/StreamingExportModal.tsx  |  380 ++
 .../DrillDetail => StreamingExportModal}/index.ts  |    6 +-
 .../useStreamingExport.test.ts                     |  126 +
 .../StreamingExportModal/useStreamingExport.ts     |  380 ++
 .../src/components/TableSelector/index.tsx         |   24 +-
 .../src/components/Tag/Tag.stories.tsx             |    2 +-
 superset-frontend/src/components/Tag/Tag.test.tsx  |    2 +-
 superset-frontend/src/components/Tag/index.tsx     |    4 +-
 .../src/components/Tag/utils.test.tsx              |    2 +
 superset-frontend/src/components/Tag/utils.tsx     |    4 +-
 .../src/components/TagsList/TagsList.test.tsx      |    1 +
 .../src/components/TagsList/index.tsx              |    4 +-
 superset-frontend/src/components/index.ts          |    1 -
 superset-frontend/src/constants.ts                 |   14 +-
 .../{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               |  203 -
 superset-frontend/src/core/sqlLab/index.ts         |  340 ++
 superset-frontend/src/core/sqlLab/models.ts        |  235 +
 .../dashboard/actions/chartCustomizationActions.ts |  390 ++
 .../src/dashboard/actions/dashboardInfo.ts         |   78 +-
 .../src/dashboard/actions/dashboardLayout.js       |    2 +-
 .../src/dashboard/actions/dashboardLayout.test.js  |   52 +-
 .../src/dashboard/actions/dashboardState.js        |   33 +-
 .../src/dashboard/actions/dashboardState.test.js   |   47 +-
 superset-frontend/src/dashboard/actions/hydrate.js |    7 +-
 .../src/dashboard/actions/nativeFilters.ts         |   28 +
 .../src/dashboard/actions/sliceEntities.ts         |   31 +
 .../components/AddSliceCard/AddSliceCard.tsx       |    7 +-
 .../components/AnchorLink/AnchorLink.test.tsx      |    7 +-
 .../BuilderComponentPane.test.tsx                  |    9 +-
 .../components/BuilderComponentPane/index.tsx      |    9 +-
 .../src/dashboard/components/ColorSchemeSelect.tsx |    3 +-
 .../src/dashboard/components/Dashboard.jsx         |   13 +-
 .../src/dashboard/components/Dashboard.test.jsx    |   27 +-
 .../DashboardBuilder/DashboardBuilder.test.tsx     |  260 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   79 +-
 .../DashboardBuilder/DashboardContainer.test.tsx   |  389 ++
 .../DashboardBuilder/DashboardContainer.tsx        |   33 +-
 .../DashboardBuilder/DashboardWrapper.tsx          |    8 +-
 .../dashboard/components/DashboardBuilder/state.ts |   29 +-
 .../src/dashboard/components/DashboardGrid.jsx     |    6 +-
 .../dashboard/components/DashboardGrid.test.jsx    |   80 +-
 .../EmbeddedModal/EmbeddedModal.test.tsx           |   47 +-
 .../dashboard/components/EmbeddedModal/index.tsx   |  147 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |    3 +-
 .../FiltersBadge/FilterIndicator/index.tsx         |    2 +-
 .../components/FiltersBadge/FiltersBadge.test.tsx  |    2 +
 .../dashboard/components/FiltersBadge/Styles.tsx   |    2 +-
 .../dashboard/components/FiltersBadge/index.tsx    |   13 +-
 .../dashboard/components/GroupByBadge/index.tsx    |  371 ++
 .../dashboard/components/Header/Header.test.tsx    |  135 +-
 .../src/dashboard/components/Header/index.jsx      |   23 +-
 .../src/dashboard/components/Header/types.ts       |    2 +-
 .../src/dashboard/components/IconButton.tsx        |    2 +-
 .../src/dashboard/components/MissingChart.test.tsx |    5 +-
 .../OverwriteConfirm/OverwriteConfirmModal.tsx     |    3 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |  136 +-
 .../dashboard/components/PropertiesModal/index.tsx |   62 +-
 .../PropertiesModal/sections/AdvancedSection.tsx   |    3 +-
 .../sections/BasicInfoSection.test.tsx             |   15 +-
 .../PropertiesModal/sections/BasicInfoSection.tsx  |   97 +-
 .../sections/StylingSection.test.tsx               |  111 +-
 .../PropertiesModal/sections/StylingSection.tsx    |  212 +-
 .../RefreshFrequency/RefreshFrequencySelect.tsx    |    3 +-
 .../dashboard/components/RefreshIntervalModal.tsx  |    5 +-
 .../src/dashboard/components/SaveModal.tsx         |    3 +-
 .../src/dashboard/components/SliceAdder.test.tsx   |   24 +-
 .../src/dashboard/components/SliceAdder.tsx        |   62 +-
 .../src/dashboard/components/SliceHeader/index.tsx |   17 +-
 .../SliceHeaderControls.test.tsx                   |   37 +
 .../ViewResultsModalTrigger.tsx                    |    3 +-
 .../components/SliceHeaderControls/index.tsx       |   40 +-
 .../components/URLShortLinkButton/index.tsx        |   16 +-
 .../src/dashboard/components/dnd/DragDroppable.jsx |    2 +-
 .../components/dnd/DragDroppable.test.jsx          |   19 +-
 .../src/dashboard/components/dnd/DragHandle.tsx    |    2 +-
 .../components/dnd/dragDroppableConfig.js          |   85 -
 .../components/dnd/dragDroppableConfig.ts          |  188 +
 .../components/filterscope/FilterScope.test.tsx    |    2 +-
 .../components/filterscope/FilterScopeModal.tsx    |    2 +-
 .../components/filterscope/FilterScopeSelector.jsx |    3 +-
 .../filterscope/renderFilterScopeTreeNodes.jsx     |    2 +-
 .../gridComponents/{ => Chart}/Chart.jsx           |  200 +-
 .../gridComponents/{ => Chart}/Chart.test.jsx      |   32 +-
 .../components/gridComponents/Chart/index.js}      |    4 +-
 .../{ => ChartHolder}/ChartHolder.test.tsx         |   31 +-
 .../{ => ChartHolder}/ChartHolder.tsx              |    4 +-
 .../gridComponents/ChartHolder}/index.ts           |    2 +-
 .../gridComponents/{ => Column}/Column.jsx         |    3 +-
 .../gridComponents/{ => Column}/Column.test.jsx    |    2 +-
 .../components/gridComponents/Column/index.js}     |    4 +-
 .../gridComponents/{ => Divider}/Divider.jsx       |   10 +-
 .../gridComponents/{ => Divider}/Divider.test.jsx  |   11 +-
 .../components/gridComponents/Divider/index.js}    |    4 +-
 .../DynamicComponent/DynamicComponent.test.tsx     |  330 ++
 .../{ => DynamicComponent}/DynamicComponent.tsx    |   37 +-
 .../gridComponents/DynamicComponent}/index.ts      |    2 +-
 .../gridComponents/{ => Header}/Header.jsx         |    2 +-
 .../gridComponents/{ => Header}/Header.test.jsx    |   23 +-
 .../components/gridComponents/Header/index.js}     |    4 +-
 .../components/gridComponents/Markdown.test.jsx    |  337 --
 .../gridComponents/{ => Markdown}/Markdown.jsx     |   16 +-
 .../gridComponents/Markdown/Markdown.test.tsx      |  436 ++
 .../components/gridComponents/Markdown/index.js}   |    4 +-
 .../components/gridComponents/{ => Row}/Row.jsx    |   11 +-
 .../gridComponents/{ => Row}/Row.test.jsx          |    3 +-
 .../components/gridComponents/Row/index.js}        |    4 +-
 .../components/gridComponents/Tab.test.jsx         |  141 -
 .../components/gridComponents/{ => Tab}/Tab.jsx    |   54 +-
 .../gridComponents/{ => Tab}/Tab.test.tsx          |   99 +-
 .../components/gridComponents/Tab/index.js}        |    5 +-
 .../components/gridComponents/Tabs.test.jsx        |  203 -
 .../components/gridComponents/{ => Tabs}/Tabs.jsx  |  230 +-
 .../gridComponents/{ => Tabs}/Tabs.test.tsx        |   33 +-
 .../components/gridComponents/Tabs/index.js}       |    4 +-
 .../TabsRenderer/TabsRenderer.test.tsx             |  202 +
 .../gridComponents/TabsRenderer/TabsRenderer.tsx   |  258 ++
 .../gridComponents/TabsRenderer}/index.ts          |    5 +-
 .../dashboard/components/gridComponents/index.js   |   10 -
 .../new/DraggableNewComponent.test.jsx             |   11 +-
 .../gridComponents/new/DraggableNewComponent.tsx   |    5 +-
 .../components/menu/BackgroundStyleDropdown.tsx    |    3 +-
 .../src/dashboard/components/menu/HoverMenu.tsx    |    4 +-
 .../menu/ShareMenuItems/ShareMenuItems.test.tsx    |  115 +
 .../components/menu/ShareMenuItems/index.tsx       |   93 +-
 .../components/menu/WithPopoverMenu.test.jsx       |   80 +-
 .../dashboard/components/menu/WithPopoverMenu.tsx  |   78 +-
 .../ChartCustomization/ChartCustomizationForm.tsx  | 1457 ++++++
 .../ChartCustomization/ChartCustomizationModal.tsx |  700 +++
 .../ChartCustomizationTitleContainer.tsx           |  184 +
 .../ChartCustomizationTitlePane.tsx                |  124 +
 .../ChartCustomization/GroupByFilterCard.tsx       |  641 +++
 .../ChartCustomization/groupBySelectors.ts         |  262 ++
 .../selectors.ts}                                  |   39 +-
 .../nativeFilters/ChartCustomization/types.ts      |   90 +
 .../useChartCustomizationModal.tsx                 |   52 +
 .../nativeFilters/ChartCustomization/utils.ts      |   63 +
 .../nativeFilters/ConfigModal/BaseConfigModal.tsx  |  148 +
 .../nativeFilters/ConfigModal/ModalFooter.tsx      |  187 +
 .../nativeFilters/ConfigModal/SharedStyles.tsx     |  110 +
 .../FilterBar/ActionButtons/ActionButtons.test.tsx |    5 +-
 .../FilterBar/ActionButtons/index.tsx              |   45 +-
 .../FilterBar/CrossFilters/CrossFilter.tsx         |    5 +-
 .../FilterBar/CrossFilters/CrossFilterTag.tsx      |    9 +-
 .../FilterBar/CrossFilters/CrossFilterTitle.tsx    |    9 +-
 .../ScopingModal/ChartsScopingListPanel.test.tsx   |    8 +-
 .../ScopingModal/ChartsScopingListPanel.tsx        |    3 +-
 .../ScopingModal/ScopingModal.test.tsx             |   10 +-
 .../ScopingModal/ScopingModalContent.tsx           |    3 +-
 .../CrossFilters/ScopingModal/ScopingTreePanel.tsx |   12 +-
 .../FilterBar/CrossFilters/Vertical.tsx            |   13 +-
 .../FilterBar/CrossFilters/VerticalCollapse.tsx    |  116 +-
 .../FilterBar/CrossFilters/selectors.ts            |    4 +
 .../nativeFilters/FilterBar/CrossFilters/styles.ts |    2 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   31 +-
 .../FilterBarSettings/FilterBarSettings.test.tsx   |   20 +-
 .../FilterBar/FilterBarSettings/index.tsx          |   36 +-
 .../FilterBar/FilterControls/FilterControl.tsx     |   11 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |  221 +-
 .../FilterControls/FilterDivider.stories.tsx       |    2 +-
 .../FilterBar/FilterControls/FilterDivider.tsx     |    8 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   20 +-
 .../FilterBar/FilterControls/utils.ts              |   13 +
 .../FilterBar/FiltersDropdownContent/index.tsx     |    3 +-
 .../FiltersOutOfScopeCollapsible/index.tsx         |    3 +-
 .../nativeFilters/FilterBar/Header/Header.test.tsx |    4 +-
 .../nativeFilters/FilterBar/Header/index.tsx       |    5 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |   17 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |  126 +-
 .../components/nativeFilters/FilterBar/index.tsx   |  219 +-
 .../nativeFilters/FilterBar/utils.test.ts          |    4 +
 .../components/nativeFilters/FilterBar/utils.ts    |   43 +-
 .../nativeFilters/FilterCard/DependenciesRow.tsx   |    3 +-
 .../nativeFilters/FilterCard/NameRow.tsx           |    3 +-
 .../nativeFilters/FilterCard/ScopeRow.tsx          |    3 +-
 .../components/nativeFilters/FilterCard/Styles.ts  |    2 +-
 .../FilterCard/useFilterDependencies.ts            |   33 +-
 .../FiltersConfigModal/DividerConfigForm.tsx       |    3 +-
 .../FiltersConfigModal/DraggableFilter.tsx         |    2 +-
 .../FiltersConfigModal/FilterConfigurePane.tsx     |    3 +-
 .../FiltersConfigModal/FilterTitleContainer.tsx    |    3 +-
 .../FiltersConfigModal/FilterTitlePane.tsx         |    3 +-
 .../FiltersConfigForm/CollapsibleControl.test.tsx  |   19 +-
 .../FiltersConfigForm/CollapsibleControl.tsx       |    4 +-
 .../FiltersConfigForm/DatasetSelect.test.tsx       |  267 ++
 .../FiltersConfigForm/DatasetSelect.tsx            |  107 +-
 .../FiltersConfigForm/DependencyList.tsx           |   27 +-
 .../FiltersConfigForm/FilterScope/FilterScope.tsx  |    3 +-
 .../FiltersConfigForm/FilterScope/ScopingTree.tsx  |    3 +-
 .../__tests__/TreeInitialization.test.tsx          |    3 +-
 .../FilterScope/__tests__/TreeSelection.test.tsx   |    5 +-
 .../FiltersConfigForm/FilterScope/utils.test.ts    |    5 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |   14 +-
 .../FiltersConfigForm/RemovedFilter.tsx            |    3 +-
 .../FiltersConfigForm/constants.ts                 |    2 +-
 .../FiltersConfigForm/getControlItemsMap.test.tsx  |    1 +
 .../FiltersConfigForm/getControlItemsMap.tsx       |    8 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |    3 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |  166 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |  145 +-
 .../Footer/CancelConfirmationAlert.tsx             |    7 +-
 .../FiltersConfigModal/NativeFiltersModal.test.tsx |    1 +
 .../components/nativeFilters/selectors.test.ts     |   15 +-
 .../components/nativeFilters/state.test.ts         |  292 +-
 .../dashboard/components/nativeFilters/state.ts    |   29 +-
 .../components/nativeFilters/utils.test.ts         |    9 +-
 .../resizable/ResizableContainer.test.tsx          |    3 +-
 .../components/resizable/ResizableContainer.tsx    |    2 +-
 .../components/resizable/ResizableHandle.test.tsx  |    7 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   10 +-
 ...yDashboardLayout.js => emptyDashboardLayout.ts} |   39 +-
 .../src/dashboard/hooks/useDownloadScreenshot.ts   |   28 +-
 .../dashboard/reducers/dashboardFilters.test.js    |    7 +-
 .../src/dashboard/reducers/dashboardInfo.js        |   99 +
 .../src/dashboard/reducers/dashboardLayout.test.js |   23 +-
 .../src/dashboard/reducers/dashboardState.js       |   61 +-
 .../src/dashboard/reducers/dashboardState.test.js  |   42 +-
 .../src/dashboard/reducers/dashboardState.test.ts  |  158 +-
 .../dashboard/reducers/groupByCustomizations.ts    |  198 +
 .../src/dashboard/reducers/nativeFilters.test.ts   |  162 +
 .../src/dashboard/reducers/nativeFilters.ts        |   49 +-
 .../src/dashboard/reducers/sliceEntities.test.js   |    9 +-
 .../{sliceEntities.js => sliceEntities.ts}         |   35 +-
 superset-frontend/src/dashboard/styles.ts          |    2 +-
 superset-frontend/src/dashboard/types.ts           |   17 +-
 .../dashboard/types/chartState.ts}                 |   32 +-
 .../src/dashboard/util/activeDashboardFilters.js   |  126 -
 .../src/dashboard/util/activeDashboardFilters.ts   |  211 +
 ...peTreeEntry.js => buildFilterScopeTreeEntry.ts} |   32 +-
 .../src/dashboard/util/chartStateConverter.ts      |  165 +
 .../dashboard/util/charts/chartTypeLimitations.ts  |  128 +
 .../util/charts/getFormDataWithExtraFilters.ts     |  367 +-
 .../dashboard/util/charts/useAllChartIds.ts}       |   21 +-
 .../dashboard/util/componentIsResizable.test.ts    |    5 +-
 .../src/dashboard/util/dnd-reorder.test.js         |   19 +-
 ...sParent.test.js => dropOverflowsParent.test.ts} |   54 +-
 ...opOverflowsParent.js => dropOverflowsParent.ts} |   15 +-
 .../src/dashboard/util/extractUrlParams.test.ts    |    7 +-
 .../util/findFirstParentContainer.test.js          |    5 +-
 ...entContainer.js => findFirstParentContainer.ts} |    5 +-
 .../src/dashboard/util/findParentId.test.ts        |    7 +-
 .../util/findTabIndexByComponentId.test.ts         |    7 +-
 .../getChartAndLabelComponentIdFromPath.test.js    |    3 +-
 ...dsFromLayout.js => getChartIdsFromComponent.ts} |   35 +-
 ...ayout.test.js => getChartIdsFromLayout.test.ts} |   38 +-
 ...rtIdsFromLayout.js => getChartIdsFromLayout.ts} |   30 +-
 .../src/dashboard/util/getDashboardUrl.test.js     |   15 +-
 .../util/getDetailedComponentWidth.test.js         |   26 +-
 ...ath.test.js => getDirectPathToTabIndex.test.ts} |   34 +-
 ...athToTabIndex.js => getDirectPathToTabIndex.ts} |   12 +-
 .../src/dashboard/util/getDropPosition.test.js     |   40 +-
 .../util/getEffectiveExtraFilters.test.js          |    3 +-
 .../util/{getEmptyLayout.js => getEmptyLayout.ts}  |   18 +-
 .../util/getFilterConfigsFromFormdata.test.js      |    9 +-
 .../util/getFilterScopeFromNodesTree.test.js       |   22 +-
 .../util/getFormDataWithExtraFilters.test.ts       |    5 +-
 .../util/getKeyForFilterScopeTree.test.ts          |   79 +
 ...terScopeTree.js => getKeyForFilterScopeTree.ts} |    7 +-
 .../util/getLayoutComponentFromChartId.test.ts     |  105 +
 ...ChartId.js => getLayoutComponentFromChartId.ts} |    6 +-
 .../util/getLeafComponentIdFromPath.test.js        |    5 +-
 ...IdFromPath.js => getLeafComponentIdFromPath.ts} |    9 +-
 .../src/dashboard/util/getRelatedCharts.ts         |   31 +
 .../src/dashboard/util/isDashboardEmpty.test.ts    |    7 +-
 .../src/dashboard/util/isDashboardLoading.test.ts  |   49 +
 .../util/isDashboardLoading.ts}                    |   24 +-
 .../util/isInDifferentFilterScopes.test.ts         |  197 +
 ...ilterScopes.js => isInDifferentFilterScopes.ts} |   29 +-
 .../src/dashboard/util/isValidChild.test.ts        |    7 +-
 .../util/logging/childChartsDidLoad.test.ts        |  247 +
 ...childChartsDidLoad.js => childChartsDidLoad.ts} |   30 +-
 .../src/dashboard/util/newComponentFactory.test.js |    5 +-
 .../src/dashboard/util/newEntitiesFromDrop.test.js |    7 +-
 .../src/dashboard/util/permissionUtils.test.ts     |   29 +-
 .../dashboard/util/serializeFilterScopes.test.ts   |  114 +
 ...izeFilterScopes.js => serializeFilterScopes.ts} |   24 +-
 ...ldWrapChildInRow.js => shouldWrapChildInRow.ts} |   23 +-
 .../util/updateComponentParentsList.test.js        |   10 +-
 .../util/useFilterFocusHighlightStyles.test.tsx    |   11 +-
 .../util/useFilterFocusHighlightStyles.ts          |   57 +-
 superset-frontend/src/dataMask/actions.ts          |   14 +
 superset-frontend/src/dataMask/reducer.ts          |   47 +
 superset-frontend/src/database/types.ts            |    1 -
 .../src/embedded/EmbeddedContextProviders.tsx      |   40 +-
 superset-frontend/src/embedded/api.tsx             |   18 +-
 superset-frontend/src/embedded/index.tsx           |   52 +-
 superset-frontend/src/embedded/utils.test.ts       |    6 +-
 .../src/explore/actions/exploreActions.test.js     |    9 +-
 .../src/explore/actions/saveModalActions.test.ts   |    1 +
 .../src/explore/components/ChartPills.tsx          |    3 +-
 .../src/explore/components/Control.tsx             |    8 +-
 .../src/explore/components/ControlHeader.tsx       |    5 +-
 .../components/ControlPanelsContainer.test.tsx     |    1 +
 .../explore/components/ControlPanelsContainer.tsx  |  362 +-
 .../explore/components/DataTableControl/index.tsx  |    6 +-
 .../DataTableControl/useTableColumns.test.ts       |    2 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |   13 +-
 .../components/DataTableControls.tsx               |    3 +-
 .../components/ResultsPaneOnDashboard.tsx          |    3 +-
 .../DataTablesPane/components/SamplesPane.tsx      |   15 +-
 .../components/SingleQueryResultPane.tsx           |    9 +-
 .../DataTablesPane/components/useResultsPane.tsx   |   39 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    1 +
 .../test/ResultsPaneOnDashboard.test.tsx           |    1 +
 .../DataTablesPane/test/SamplesPane.test.tsx       |    1 +
 .../src/explore/components/DataTablesPane/types.ts |    7 +-
 .../DatasourcePanel/DatasourcePanel.test.tsx       |    1 +
 .../DatasourcePanelDragOption/index.tsx            |    3 +-
 .../DatasourcePanel/DatasourcePanelItem.tsx        |    9 +-
 .../components/DatasourcePanel/fixtures.tsx        |    2 +-
 .../explore/components/DatasourcePanel/index.tsx   |   14 +-
 .../src/explore/components/EmbedCodeContent.jsx    |    3 +-
 .../explore/components/EmbedCodeContent.test.jsx   |    5 +-
 .../src/explore/components/ExploreAlert.test.tsx   |  248 +
 .../src/explore/components/ExploreAlert.tsx        |   17 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    3 +
 .../components/ExploreChartHeader/index.jsx        |   14 +-
 .../ExploreChartPanel/ExploreChartPanel.test.jsx   |    3 +-
 .../explore/components/ExploreChartPanel/index.tsx |   13 +-
 .../explore/components/ExploreContainer/index.tsx  |    2 +-
 .../explore/components/ExploreContentPopover.tsx   |    2 +-
 .../components/ExploreViewContainer/index.jsx      |  133 +-
 .../components/ExportToCSVDropdown/index.tsx       |    3 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |  107 +-
 .../explore/components/PropertiesModal/index.tsx   |   45 +-
 .../explore/components/RunQueryButton/index.tsx    |    4 +-
 .../src/explore/components/SaveModal.test.jsx      |   30 +
 .../src/explore/components/SaveModal.tsx           |    9 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |    9 +-
 .../controls/AnnotationLayerControl/index.tsx      |   31 +-
 .../explore/components/controls/BoundsControl.tsx  |    3 +-
 .../components/controls/CheckboxControl.jsx        |    2 +-
 .../components/controls/CheckboxControl.test.tsx   |    5 +-
 .../controls/CollectionControl/index.jsx           |    3 +-
 .../ColorBreakpointOption.test.tsx                 |    1 +
 .../ColorBreakpointOption.tsx                      |    2 +-
 .../ColorBreakpointPopoverControl.test.tsx         |    1 +
 .../ColorBreakpointPopoverControl.tsx              |    3 +-
 .../ColorBreakpointPopoverTrigger.test.tsx         |    1 +
 .../ColorBreakpointsControl.test.tsx               |    3 +-
 .../controls/ColorBreakpointsControl/index.tsx     |    3 +-
 .../controls/ColorPickerControl.test.tsx           |    9 +-
 .../ColorSchemeControl/ColorSchemeControl.test.tsx |  200 +
 .../ColorSchemeControl/ColorSchemeLabel.tsx        |    2 +-
 .../controls/ColorSchemeControl/index.tsx          |    3 +-
 .../ColumnConfigControl/ColumnConfigControl.tsx    |    5 +-
 .../ColumnConfigControl/ColumnConfigItem.tsx       |    4 +-
 .../ColumnConfigControl/ColumnConfigPopover.tsx    |    2 +-
 .../ControlForm/ControlFormItem.tsx                |    3 +-
 .../ColumnConfigControl/ControlForm/index.tsx      |    3 +-
 .../controls/ColumnConfigControl/constants.tsx     |    3 +-
 .../controls/ColumnConfigControl/types.ts          |    7 +-
 .../components/controls/ComparisonRangeLabel.tsx   |    5 +-
 .../ConditionalFormattingControl.tsx               |    6 +-
 .../FormattingPopover.tsx                          |    2 +
 .../FormattingPopoverContent.test.tsx              |   43 +-
 .../FormattingPopoverContent.tsx                   |  101 +-
 .../controls/ConditionalFormattingControl/types.ts |   11 +-
 .../controls/ContourControl/ContourOption.tsx      |    5 +-
 .../ContourControl/ContourPopoverControl.tsx       |    3 +-
 .../components/controls/ContourControl/index.tsx   |    3 +-
 .../controls/ControlPopover/ControlPopover.tsx     |   49 +-
 .../controls/CurrencyControl/CurrencyControl.tsx   |    3 +-
 .../components/controls/CustomListItem/index.tsx   |    2 +-
 .../DatasourceControl/DatasourceControl.test.jsx   |  169 -
 .../DatasourceControl/DatasourceControl.test.tsx   |  278 ++
 .../controls/DatasourceControl/index.jsx           |   13 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |   46 +-
 .../components/DateFunctionTooltip.tsx             |    3 +-
 .../DateFilterControl/components/DateLabel.tsx     |    3 +-
 .../DateFilterControl/tests/CalendarFrame.test.tsx |   13 +-
 .../tests/DateFilterLabel.test.tsx                 |    9 -
 .../controls/DateFilterControl/tests/utils.test.ts |   20 +-
 .../components/controls/DateFilterControl/types.ts |    1 -
 .../DndColumnSelectControl/ColumnSelectPopover.tsx |  319 +-
 .../ColumnSelectPopoverTrigger.test.tsx            |  183 +
 .../ColumnSelectPopoverTrigger.tsx                 |   77 +-
 .../DndColumnMetricSelect.test.tsx                 |  344 ++
 .../DndColumnMetricSelect.tsx                      |  448 ++
 .../DndColumnSelect.test.tsx                       |  375 ++
 .../DndColumnSelectPopoverTitle.jsx                |    3 +-
 .../DndFilterSelect.test.tsx                       |    9 +-
 .../DndColumnSelectControl/DndMetricSelect.tsx     |    2 +-
 .../DndColumnSelectControl/Option.test.tsx         |    1 +
 .../controls/DndColumnSelectControl/Option.tsx     |   11 +-
 .../DndColumnSelectControl/OptionWrapper.tsx       |    5 +-
 .../controls/DndColumnSelectControl/index.ts       |   12 +
 .../controls/DndColumnSelectControl/types.ts       |    1 +
 .../FilterControl/AdhocFilter/AdhocFilter.test.js  |   29 +-
 .../AdhocFilterControl/AdhocFilterControl.test.tsx |    7 +-
 .../FilterControl/AdhocFilterControl/index.jsx     |  100 +-
 .../AdhocFilterEditPopover.test.jsx                |   17 +-
 .../FilterControl/AdhocFilterEditPopover/index.jsx |    3 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |  750 +--
 .../index.tsx                                      |   63 +-
 .../useAdvancedDataTypes.ts                        |   33 +-
 .../AdhocFilterEditPopoverSqlTabContent/index.tsx  |    7 +-
 .../controls/FilterControl/adhocFilterType.js      |   37 -
 .../controls/FilterControl/adhocFilterType.test.ts |  104 +
 .../controls/FilterControl/adhocFilterType.ts      |   64 +
 .../controls/FilterControl/columnType.js           |   24 -
 .../controls/FilterControl/columnType.test.ts      |   53 +
 .../controls/FilterControl/columnType.ts}          |   13 +-
 .../components/controls/FilterControl/types.ts     |    7 +
 .../utils/useDatePickerInAdhocFilter.tsx           |    1 -
 .../controls/LayerConfigsControl/FlatLayerTree.tsx |    3 +-
 .../LayerConfigsControl/LayerConfigsControl.tsx    |    3 +-
 .../LayerConfigsPopoverContent.tsx                 |   13 +-
 .../controls/MapViewControl/MapViewControl.tsx     |    3 +-
 .../MapViewControl/MapViewPopoverContent.tsx       |    3 +-
 .../controls/MatrixifyDimensionControl.test.tsx    |   24 -
 .../controls/MatrixifyDimensionControl.tsx         |  140 +-
 .../controls/MetricControl/AdhocMetric.test.js     |   21 +-
 .../MetricControl/AdhocMetricEditPopover/index.jsx |    9 +-
 .../MetricControl/AdhocMetricEditPopoverTitle.tsx  |    3 +-
 .../MetricControl/AggregateOption.test.tsx         |    3 +-
 .../MetricControl/FilterDefinitionOption.test.jsx  |    7 +-
 .../MetricControl/aggregateOptionType.test.ts}     |   38 +-
 .../controls/MetricControl/aggregateOptionType.ts} |    6 +-
 .../controls/MetricControl/columnType.ts}          |   13 +-
 .../controls/MetricControl/savedMetricType.test.ts |   45 +
 .../{savedMetricType.js => savedMetricType.ts}     |   10 +-
 .../components/controls/MetricControl/types.ts     |    4 +
 .../components/controls/NumberControl/index.tsx    |    2 +-
 .../components/controls/OptionControls/index.tsx   |    3 +-
 .../controls/SelectAsyncControl/index.tsx          |    2 +-
 .../explore/components/controls/SelectControl.jsx  |   11 +-
 .../components/controls/SelectControl.test.jsx     |   74 +-
 .../components/controls/TextAreaControl.jsx        |   56 +-
 .../components/controls/TextAreaControl.test.jsx   |    9 +-
 .../components/controls/TextControl/index.tsx      |    1 +
 .../components/controls/TimeOffsetControl.test.tsx |    5 +-
 .../components/controls/TimeOffsetControl.tsx      |    2 +-
 .../components/controls/TimeRangeControl/index.tsx |    5 +-
 .../controls/TimeSeriesColumnControl/index.jsx     |   24 +-
 .../explore/components/controls/ViewQuery.test.tsx |   26 +
 .../src/explore/components/controls/ViewQuery.tsx  |    6 +-
 .../components/controls/ViewQueryModal.test.tsx    |  108 +
 .../explore/components/controls/ViewQueryModal.tsx |   35 +-
 .../components/controls/ViewportControl.test.jsx   |    7 +-
 .../controls/VizTypeControl/FastVizSwitcher.tsx    |    2 +-
 .../components/controls/VizTypeControl/VizTile.tsx |    3 +-
 .../VizTypeControl/VizTypeControl.test.jsx         |  130 -
 .../VizTypeControl/VizTypeControl.test.tsx         |   85 +-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |   41 +-
 .../controls/VizTypeControl/constants.tsx          |    3 +-
 .../components/controls/VizTypeControl/index.tsx   |    9 +-
 .../ZoomConfigControl/ZoomConfigControl.tsx        |    3 +-
 .../components/controls/ZoomConfigControl/types.ts |    4 +
 .../controls/ZoomConfigControl/zoomUtil.test.ts    |   26 +-
 .../controls/ZoomConfigControl/zoomUtil.ts         |   14 +-
 .../src/explore/components/controls/index.ts       |    2 +
 .../controls/withAsyncVerification.test.tsx        |    5 +-
 .../src/explore/components/optionRenderers.tsx     |    2 +-
 .../DashboardsSubMenu.test.tsx                     |    1 +
 .../DashboardsSubMenu.tsx                          |    3 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |  130 +-
 .../src/explore/controlPanels/Separator.test.ts    |   75 +
 .../controlPanels/{Separator.js => Separator.ts}   |   23 +-
 .../src/explore/controlPanels/sections.tsx         |   47 +-
 ...rides.js => timeGrainSqlaAnimationOverrides.ts} |   17 +-
 .../src/explore/controlUtils/controlUtils.test.tsx |   38 +-
 .../explore/controlUtils/getSectionsToRender.ts    |    2 +-
 .../controlUtils/standardizedFormData.test.ts      |   89 +-
 .../explore/controlUtils/standardizedFormData.ts   |    6 +
 .../src/explore/exploreUtils/exploreUtils.test.jsx |   45 +-
 .../explore/exploreUtils/getChartDataUri.test.ts   |    5 +-
 .../src/explore/exploreUtils/index.js              |   14 +-
 .../src/explore/reducers/exploreReducer.js         |    2 +-
 superset-frontend/src/explore/store.test.jsx       |    6 +-
 superset-frontend/src/explore/types.ts             |    1 -
 .../src/extensions/ExtensionsList.tsx              |    3 +-
 .../src/extensions/ExtensionsManager.ts            |   12 +-
 .../src/extensions/ExtensionsStartup.test.tsx      |  169 +-
 .../src/extensions/ExtensionsStartup.tsx           |   17 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |   45 +-
 .../src/features/alerts/AlertReportModal.tsx       |  747 ++-
 .../features/alerts/buildErrorTooltipMessage.tsx   |    2 +-
 .../alerts/components/AlertReportCronScheduler.tsx |    3 +-
 .../features/alerts/components/AlertStatusIcon.tsx |   39 +-
 .../alerts/components/NotificationMethod.test.tsx  |   38 +-
 .../alerts/components/NotificationMethod.tsx       |    3 +-
 .../alerts/components/RecipientIcon.test.tsx       |   11 +-
 .../features/alerts/components/RecipientIcon.tsx   |    7 +-
 superset-frontend/src/features/alerts/types.ts     |   46 +-
 .../features/allEntities/AllEntitiesTable.test.tsx |    9 +-
 .../src/features/allEntities/AllEntitiesTable.tsx  |    5 +-
 .../annotationLayers/AnnotationLayerModal.tsx      |    3 +-
 .../src/features/annotations/AnnotationModal.tsx   |    3 +-
 .../src/features/charts/ChartCard.tsx              |    3 +-
 .../src/features/cssTemplates/CssTemplateModal.tsx |    5 +-
 .../src/features/dashboards/DashboardCard.test.tsx |   10 +-
 .../DatabaseConnectionForm/CommonParameters.tsx    |    3 +-
 .../DatabaseConnectionForm/EncryptedField.test.tsx |   42 +-
 .../DatabaseConnectionForm/EncryptedField.tsx      |    3 +-
 .../OAuth2ClientField.test.tsx                     |   11 +-
 .../DatabaseConnectionForm/TableCatalog.tsx        |    3 +-
 .../DatabaseModal/DatabaseConnectionForm/index.tsx |    2 +-
 .../databases/DatabaseModal/ExtraOptions.test.tsx  |   34 +-
 .../databases/DatabaseModal/ExtraOptions.tsx       |  129 +-
 .../databases/DatabaseModal/SSHTunnelForm.tsx      |    3 +-
 .../databases/DatabaseModal/SSHTunnelSwitch.tsx    |    8 +-
 .../databases/DatabaseModal/SqlAlchemyForm.tsx     |    7 +-
 .../databases/DatabaseModal/index.test.tsx         |   98 +-
 .../src/features/databases/DatabaseModal/index.tsx |   53 +-
 .../src/features/databases/DatabaseModal/styles.ts |    6 +-
 .../databases/UploadDataModel/ColumnsPreview.tsx   |    3 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |   22 +-
 .../features/databases/UploadDataModel/index.tsx   |    8 +-
 .../features/databases/UploadDataModel/styles.ts   |    2 +-
 superset-frontend/src/features/databases/types.ts  |    1 +
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |   12 +-
 .../AddDataset/DatasetPanel/DatasetPanel.tsx       |   14 +-
 .../AddDataset/DatasetPanel/MessageContent.tsx     |    3 +-
 .../EditDataset/UsageTab/UsageTab.test.tsx         |  416 --
 .../AddDataset/EditDataset/UsageTab/index.tsx      |  265 --
 .../datasets/AddDataset/EditDataset/index.tsx      |    6 +-
 .../datasets/AddDataset/Footer/Footer.test.tsx     |    1 +
 .../features/datasets/AddDataset/Footer/index.tsx  |    3 +-
 .../datasets/AddDataset/Header/Header.test.tsx     |    1 +
 .../datasets/AddDataset/LeftPanel/index.tsx        |    3 +-
 .../AddDataset/RightPanel/RightPanel.test.tsx      |    3 +-
 .../datasets/DatasetLayout/DatasetLayout.test.tsx  |   82 +-
 .../src/features/datasets/DatasetLayout/index.tsx  |    2 +-
 .../features/datasets/DatasetSelectLabel/index.tsx |    3 +-
 .../datasets/hooks/useDatasetLists.test.ts         |  392 ++
 .../src/features/datasets/hooks/useDatasetLists.ts |    3 +-
 .../DatasetMetadataBar.skipped-stories.tsx         |    3 +-
 .../datasets/metadataBar/useDatasetMetadataBar.tsx |    3 +-
 superset-frontend/src/features/datasets/styles.ts  |    5 +-
 .../src/features/home/ActivityTable.tsx            |    7 +-
 .../src/features/home/ChartTable.test.tsx          |   65 +-
 superset-frontend/src/features/home/ChartTable.tsx |   13 +-
 .../src/features/home/DashboardTable.test.tsx      |   74 +-
 .../src/features/home/DashboardTable.tsx           |   13 +-
 .../src/features/home/EmptyState.test.tsx          |    5 +-
 superset-frontend/src/features/home/EmptyState.tsx |   27 +-
 .../src/features/home/LanguagePicker.tsx           |    3 +-
 superset-frontend/src/features/home/Menu.test.tsx  |   31 +-
 superset-frontend/src/features/home/Menu.tsx       |  381 +-
 .../src/features/home/RightMenu.test.tsx           |   44 +-
 superset-frontend/src/features/home/RightMenu.tsx  |   99 +-
 .../src/features/home/SavedQueries.tsx             |    3 +-
 superset-frontend/src/features/home/SubMenu.tsx    |    9 +-
 .../src/features/home/commonMenuData.ts            |    5 +
 .../src/features/queries/QueryPreviewModal.tsx     |    3 +-
 .../features/queries/SavedQueryPreviewModal.tsx    |    3 +-
 .../src/features/queries/SyntaxHighlighterCopy.tsx |    3 +-
 .../HeaderReportDropdown/index.test.tsx            |   17 +-
 .../ReportModal/HeaderReportDropdown/index.tsx     |    3 +-
 .../reports/ReportModal/ReportModal.test.tsx       |    8 +-
 .../src/features/reports/ReportModal/index.tsx     |    9 +-
 .../src/features/reports/ReportModal/styles.tsx    |    2 +-
 .../features/rls/RowLevelSecurityModal.test.tsx    |   13 +-
 .../src/features/rls/RowLevelSecurityModal.tsx     |    3 +-
 .../src/features/roles/RoleListAddModal.test.tsx   |   11 +-
 .../features/roles/RoleListDuplicateModal.test.tsx |   11 +-
 .../src/features/roles/RoleListEditModal.test.tsx  |   21 +-
 .../src/features/roles/RoleListEditModal.tsx       |    4 +-
 .../src/features/tags/BulkTagModal.test.tsx        |    1 +
 .../src/features/tags/BulkTagModal.tsx             |    3 +-
 superset-frontend/src/features/tags/TagModal.tsx   |    3 +-
 .../src/features/themes/ThemeModal.test.tsx        |  697 ++-
 .../src/features/themes/ThemeModal.tsx             |  362 +-
 superset-frontend/src/features/themes/api.test.ts  |   21 +-
 .../src/features/themes/types.test.ts              |   20 +-
 superset-frontend/src/features/users/utils.ts      |    2 +-
 .../components/Range/RangeFilterPlugin.stories.tsx |    7 +-
 .../components/Range/RangeFilterPlugin.test.tsx    |   25 +-
 .../filters/components/Range/RangeFilterPlugin.tsx |    4 +-
 .../src/filters/components/Range/buildQuery.ts     |    7 +-
 .../components/Select/SelectFilterPlugin.test.tsx  |  297 ++
 .../components/Select/SelectFilterPlugin.tsx       |   47 +-
 .../filters/components/Select/buildQuery.test.ts   |   17 +-
 .../src/filters/components/Select/buildQuery.ts    |    2 +-
 .../filters/components/Select/transformProps.ts    |    2 +-
 .../src/filters/components/Select/types.ts         |    2 +-
 .../filters/components/Time/TimeFilterPlugin.tsx   |    7 +-
 .../TimeColumn/TimeColumnFilterPlugin.tsx          |    9 +-
 superset-frontend/src/filters/components/common.ts |    2 +-
 superset-frontend/src/filters/utils.test.ts        |   30 +-
 superset-frontend/src/filters/utils.ts             |    2 +-
 .../src/hooks/apiResources/apiResources.test.ts    |   16 +-
 .../src/hooks/apiResources/dashboards.test.ts      |    3 +-
 .../src/hooks/apiResources/datasets.test.ts        |  449 ++
 .../src/hooks/apiResources/queries.ts              |    1 +
 .../src/hooks/apiResources/schemas.test.ts         |    1 +
 .../src/hooks/apiResources/sqlEditorTabs.test.ts   |    1 +
 .../src/hooks/apiResources/tables.test.ts          |    1 +
 .../src/hooks/useBeforeUnload/index.ts             |   43 +
 .../hooks/useBeforeUnload/useBeforeUnload.test.ts  |  156 +
 .../src/hooks/useConfirmModal/index.tsx            |   78 +
 .../hooks/useConfirmModal/useConfirmModal.test.tsx |  196 +
 .../src/hooks/useDebounceValue.test.ts             |    2 +-
 superset-frontend/src/hooks/useJsonTreeTheme.ts    |    2 +-
 superset-frontend/src/hooks/useLocale.ts           |    3 +-
 .../src/hooks/useThemeMenuItems.test.tsx           |   85 +-
 superset-frontend/src/hooks/useThemeMenuItems.tsx  |   42 +-
 .../src/hooks/useUnsavedChangesPrompt/index.ts     |   29 +-
 .../useUnsavedChangesPrompt.test.tsx               |  193 +-
 .../src/middleware/asyncEvent.test.ts              |   17 +-
 superset-frontend/src/middleware/logger.test.js    |   13 +-
 superset-frontend/src/pages/ActionLog/index.tsx    |    3 +-
 .../pages/AlertReportList/AlertReportList.test.jsx |   51 +-
 .../src/pages/AlertReportList/index.tsx            |    3 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |    3 +-
 .../AnnotationLayerList.test.jsx                   |   21 +-
 .../src/pages/AnnotationList/index.tsx             |   11 +-
 superset-frontend/src/pages/Chart/Chart.test.tsx   |    2 +
 superset-frontend/src/pages/Chart/index.tsx        |    1 +
 .../src/pages/ChartCreation/ChartCreation.test.tsx |    2 +-
 .../src/pages/ChartCreation/index.tsx              |   14 +-
 .../pages/ChartList/ChartList.cardview.test.tsx    |   33 +-
 .../pages/ChartList/ChartList.listview.test.tsx    | 1498 +++---
 .../pages/ChartList/ChartList.permissions.test.tsx |   69 +-
 .../src/pages/ChartList/ChartList.test.tsx         |   42 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   15 +-
 .../pages/CssTemplateList/CssTemplateList.test.jsx |   19 +-
 .../src/pages/DashboardList/DashboardList.test.jsx |   22 +-
 .../src/pages/DashboardList/index.tsx              |   15 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |   23 +-
 .../pages/DatasetCreation/DatasetCreation.test.tsx |    3 +-
 .../src/pages/DatasetCreation/index.tsx            |    2 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |   28 +-
 .../ExecutionLogList/ExecutionLogList.test.tsx     |    9 +-
 .../src/pages/ExecutionLogList/index.tsx           |    9 +-
 .../src/pages/GroupsList/GroupsList.test.tsx       |   25 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |   18 +-
 superset-frontend/src/pages/Home/index.tsx         |    4 +-
 superset-frontend/src/pages/Login/Login.test.tsx   |    6 +-
 superset-frontend/src/pages/Login/index.tsx        |   55 +-
 .../src/pages/QueryHistoryList/index.tsx           |   12 +-
 superset-frontend/src/pages/Register/index.tsx     |    3 +-
 .../src/pages/RolesList/RolesList.test.tsx         |   27 +-
 .../RowLevelSecurityList.test.tsx                  |   33 +-
 .../pages/SavedQueryList/SavedQueryList.test.tsx   |   19 +-
 .../src/pages/SavedQueryList/index.tsx             |   15 +-
 superset-frontend/src/pages/SqlLab/index.tsx       |    3 +-
 .../src/pages/ThemeList/ThemeList.test.tsx         |  593 ++-
 .../src/pages/ThemeList/index.test.tsx             |  287 --
 superset-frontend/src/pages/ThemeList/index.tsx    |  269 +-
 .../src/pages/UserInfo/UserInfo.test.tsx           |    9 +-
 superset-frontend/src/pages/UserInfo/index.tsx     |    3 +-
 .../UserRegistrations/UserRegistrations.test.tsx   |    5 +-
 .../src/pages/UsersList/UsersList.test.tsx         |   33 +-
 superset-frontend/src/preamble.ts                  |   22 +-
 .../types.ts => setup/setupCodeOverrides.ts}       |   20 +-
 superset-frontend/src/setup/setupPlugins.ts        |    5 +
 superset-frontend/src/theme/ThemeController.ts     |  240 +-
 superset-frontend/src/theme/ThemeProvider.tsx      |   10 +-
 .../src/theme/tests/ThemeController.test.ts        |  387 +-
 .../src/theme/tests/ThemeProvider.test.tsx         |   28 +-
 superset-frontend/src/types/TagType.ts             |    2 -
 superset-frontend/src/types/bootstrapTypes.ts      |    7 +-
 superset-frontend/src/types/files.d.ts             |    3 +
 .../src/utils/DebouncedMessageQueue.test.ts        |   67 +
 ...cedMessageQueue.js => DebouncedMessageQueue.ts} |   31 +-
 superset-frontend/src/utils/cacheWrapper.test.ts   |   13 +-
 .../src/utils/cachedSupersetGet.test.ts            |  190 +
 superset-frontend/src/utils/cachedSupersetGet.ts   |   56 +
 superset-frontend/src/utils/chartRegistry.test.ts  |   12 +-
 superset-frontend/src/utils/common.test.jsx        |   18 +-
 superset-frontend/src/utils/datasourceUtils.js     |   27 -
 .../src/utils/datasourceUtils.test.ts              |  191 +
 superset-frontend/src/utils/datasourceUtils.ts     |   57 +
 .../{downloadAsImage.ts => downloadAsImage.tsx}    |   44 +-
 superset-frontend/src/utils/downloadAsPdf.ts       |    4 +
 superset-frontend/src/utils/export.test.ts         |  398 ++
 superset-frontend/src/utils/export.ts              |   92 +-
 .../src/utils/getBootstrapData.test.ts             |   13 +-
 .../getChartFormDiffs/getChartFormDiffs.test.ts    |   19 +-
 .../src/utils/getControlsForVizType.test.js        |    3 +-
 ...zType.test.js => getControlsForVizType.test.ts} |    7 +-
 .../src/utils/getControlsForVizType.ts             |   74 +
 .../src/utils/hostNamesConfig.test.ts              |   59 +
 .../{hostNamesConfig.js => hostNamesConfig.ts}     |   10 +-
 .../src/utils/localStorageHelpers.test.ts          |    5 +-
 superset-frontend/src/utils/parseCookie.test.ts    |    7 +-
 superset-frontend/src/utils/reducerUtils.test.ts   |  129 +
 superset-frontend/src/utils/reducerUtils.ts        |  107 +
 superset-frontend/src/utils/safeStringify.test.ts  |   13 +-
 superset-frontend/src/utils/testUtils.test.ts      |   17 +-
 superset-frontend/src/utils/urlUtils.test.ts       |  117 +-
 superset-frontend/src/utils/urlUtils.ts            |   22 +-
 superset-frontend/src/views/App.tsx                |    6 +-
 superset-frontend/src/views/CRUD/hooks.test.tsx    |   16 +-
 superset-frontend/src/views/CRUD/utils.tsx         |    2 +-
 .../src/views/RootContextProviders.tsx             |   42 +-
 superset-frontend/src/views/menu.tsx               |    2 +-
 superset-frontend/src/views/routes.test.tsx        |    5 +-
 superset-frontend/src/views/store.ts               |    2 +
 .../src/views/theme.bootstrap.test.ts              |   19 +-
 superset-frontend/src/views/types.ts               |    2 +-
 .../visualizations/TimeTable/TimeTable.test.tsx    |   41 +-
 .../src/visualizations/TimeTable/TimeTable.tsx     |    3 +-
 .../components/LeftCell/LeftCell.test.tsx          |    1 +
 .../components/Sparkline/Sparkline.test.tsx        |    1 +
 .../TimeTable/components/Sparkline/Sparkline.tsx   |    1 +
 .../components/SparklineCell/SparklineCell.tsx     |   23 +-
 .../components/ValueCell/ValueCell.test.tsx        |    1 +
 .../config/controlPanel/controlPanel.test.ts       |    1 +
 .../config/transformProps/transformProps.test.ts   |    3 +-
 .../src/visualizations/TimeTable/constants.ts      |   15 +-
 .../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 +
 .../TimeTable/utils/colorUtils/colorUtils.test.ts  |    1 +
 .../utils/rowProcessing/rowProcessing.test.ts      |    1 +
 .../TimeTable/utils/sortUtils/sortUtils.test.ts    |    1 +
 .../sparklineDataUtils/sparklineDataUtils.test.ts  |    1 +
 .../sparklineHelpers/sparklineHelpers.test.ts      |    6 +
 .../valueCalculations/valueCalculations.test.ts    |  165 +
 .../utils/valueCalculations/valueCalculations.ts   |   52 +-
 superset-frontend/tsconfig.base.json               |   43 -
 superset-frontend/tsconfig.json                    |  104 +-
 superset-frontend/webpack.config.js                |  208 +-
 superset-frontend/webpack.proxy-config.js          |   21 +-
 superset-websocket/package-lock.json               | 1932 +++-----
 superset-websocket/package.json                    |   24 +-
 .../utils/client-ws-app/package-lock.json          |  107 +-
 .../utils/client-ws-app/package.json               |    4 +-
 superset/app.py                                    |    4 +-
 superset/charts/client_processing.py               |   11 +-
 superset/charts/data/api.py                        |  198 +-
 superset/charts/schemas.py                         |   20 +-
 superset/cli/examples.py                           |    2 +-
 superset/cli/mcp.py                                |   44 +
 superset/commands/chart/data/get_data_command.py   |    8 +-
 .../chart/data/streaming_export_command.py         |   80 +
 superset/commands/chart/update.py                  |   27 +
 superset/commands/chart/warm_up_cache.py           |  107 +-
 superset/commands/database/test_connection.py      |    6 +-
 superset/commands/database/uploaders/base.py       |    3 +-
 superset/commands/database/uploaders/csv_reader.py |  266 +-
 .../commands/database/uploaders/excel_reader.py    |    2 +-
 superset/commands/database/validate.py             |    4 +-
 superset/commands/dataset/update.py                |   67 +-
 superset/commands/explore/form_data/create.py      |    6 +-
 superset/commands/explore/get.py                   |    6 +-
 superset/commands/report/alert.py                  |    2 +-
 superset/commands/report/execute.py                |  136 +-
 superset/commands/security/create.py               |    2 +-
 superset/commands/security/update.py               |    2 +-
 superset/commands/sql_lab/results.py               |   57 +-
 .../commands/sql_lab/streaming_export_command.py   |  142 +
 .../commands/streaming_export}/__init__.py         |    0
 superset/commands/streaming_export/base.py         |  214 +
 superset/commands/theme/seed.py                    |    9 +-
 superset/commands/theme/set_system_theme.py        |    4 +-
 superset/common/query_actions.py                   |   10 +-
 superset/common/query_context.py                   |   12 +-
 superset/common/query_context_factory.py           |   77 +
 superset/common/query_context_processor.py         |  785 +---
 superset/common/query_object.py                    |   23 +-
 superset/config.py                                 |  144 +-
 superset/connectors/sqla/models.py                 |  240 +-
 superset/core/api/core_api_injection.py            |  180 +
 superset/core/api/types/models.py                  |   72 -
 superset/custom_database_errors.py                 |   83 +
 superset/daos/base.py                              |  524 ++-
 superset/daos/chart.py                             |   15 +-
 superset/daos/dashboard.py                         |   34 +-
 superset/daos/dataset.py                           |   19 +-
 superset/daos/datasource.py                        |    2 +-
 superset/daos/theme.py                             |   42 +-
 superset/dashboards/api.py                         |   46 +-
 superset/dashboards/permalink/schemas.py           |   10 +
 superset/dashboards/permalink/types.py             |    3 +-
 superset/dashboards/schemas.py                     |    1 +
 superset/databases/schemas.py                      |    1 +
 superset/datasets/schemas.py                       |    4 +
 superset/db_engine_specs/README.md                 |  566 ++-
 superset/db_engine_specs/base.py                   |   29 +-
 superset/db_engine_specs/databricks.py             |   15 +-
 superset/db_engine_specs/db2.py                    |    6 +-
 superset/db_engine_specs/doris.py                  |    8 +-
 superset/db_engine_specs/lib.py                    |  374 +-
 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                    |   16 +-
 superset/extensions/discovery.py                   |   15 +-
 superset/extensions/local_extensions_watcher.py    |   61 +-
 superset/extensions/utils.py                       |   25 +-
 superset/initialization/__init__.py                |   32 +-
 superset/jinja_context.py                          |   12 +-
 superset/key_value/models.py                       |    4 +-
 superset/mcp_service/ARCHITECTURE.md               |  693 +++
 superset/mcp_service/CLAUDE.md                     |  523 +++
 superset/mcp_service/PRODUCTION.md                 | 1332 ++++++
 superset/mcp_service/README.md                     |  236 +
 superset/mcp_service/SECURITY.md                   |  803 ++++
 .../types/rest_api.py => mcp_service/__init__.py}  |   35 +-
 superset/mcp_service/__main__.py                   |  132 +
 superset/mcp_service/app.py                        |  385 ++
 superset/mcp_service/auth.py                       |  234 +
 superset/mcp_service/bin/superset-mcp.js           |  282 ++
 superset/mcp_service/chart/chart_utils.py          |  484 ++
 superset/mcp_service/chart/preview_utils.py        |  561 +++
 .../chart/prompts}/__init__.py                     |    6 +-
 .../chart/prompts/create_chart_guided.py           |  195 +
 .../chart/resources}/__init__.py                   |    6 +-
 .../mcp_service/chart/resources/chart_configs.py   |  362 ++
 superset/mcp_service/chart/schemas.py              | 1162 +++++
 .../chart/tool/__init__.py}                        |   35 +-
 superset/mcp_service/chart/tool/generate_chart.py  |  462 ++
 .../chart/tool/get_chart_available_filters.py}     |   39 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |  656 +++
 superset/mcp_service/chart/tool/get_chart_info.py  |   81 +
 .../mcp_service/chart/tool/get_chart_preview.py    | 2082 +++++++++
 superset/mcp_service/chart/tool/list_charts.py     |  135 +
 superset/mcp_service/chart/tool/update_chart.py    |  224 +
 .../mcp_service/chart/tool/update_chart_preview.py |  168 +
 .../chart/validation}/__init__.py                  |    9 +-
 .../chart/validation/dataset_validator.py          |  329 ++
 superset/mcp_service/chart/validation/pipeline.py  |  325 ++
 .../chart/validation/runtime/__init__.py           |  185 +
 .../validation/runtime/cardinality_validator.py    |  195 +
 .../validation/runtime/chart_type_suggester.py     |  437 ++
 .../chart/validation/runtime/format_validator.py   |  225 +
 .../chart/validation/schema_validator.py           |  307 ++
 .../api/types => mcp_service/commands}/__init__.py |    0
 .../commands/create_form_data.py}                  |   20 +-
 .../dialects => mcp_service/common}/__init__.py    |   11 +-
 superset/mcp_service/common/cache_schemas.py       |  143 +
 superset/mcp_service/common/error_schemas.py       |  110 +
 .../dashboard/prompts}/__init__.py                 |    6 +-
 .../dashboard/resources}/__init__.py               |    6 +-
 superset/mcp_service/dashboard/schemas.py          |  470 ++
 .../mcp_service/dashboard/tool}/__init__.py        |   18 +-
 .../tool/add_chart_to_existing_dashboard.py        |  282 ++
 .../dashboard/tool/generate_dashboard.py           |  241 +
 .../tool/get_dashboard_available_filters.py}       |   38 +-
 .../dashboard/tool/get_dashboard_info.py           |  101 +
 .../mcp_service/dashboard/tool/list_dashboards.py  |   99 +
 .../dataset/prompts}/__init__.py                   |    6 +-
 .../dataset/resources}/__init__.py                 |    6 +-
 superset/mcp_service/dataset/schemas.py            |  349 ++
 .../dataset/tool}/__init__.py                      |   11 +-
 .../dataset/tool/get_dataset_available_filters.py} |   38 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |  111 +
 superset/mcp_service/dataset/tool/list_datasets.py |  149 +
 .../mcp_service/explore}/__init__.py               |    2 +
 .../explore/tool}/__init__.py                      |   14 +-
 .../explore/tool/generate_explore_link.py          |  111 +
 superset/mcp_service/flask_singleton.py            |   66 +
 superset/mcp_service/index.js                      |   56 +
 superset/mcp_service/mcp_config.py                 |  203 +
 superset/mcp_service/mcp_core.py                   |  504 ++
 superset/mcp_service/middleware.py                 |  757 +++
 superset/mcp_service/package.json                  |   35 +
 .../query.py => superset/mcp_service/run_proxy.sh  |   41 +-
 .../mcp_service/screenshot/__init__.py             |   21 +-
 .../mcp_service/screenshot/pooled_screenshot.py    |  483 ++
 .../mcp_service/screenshot/webdriver_config.py     |  139 +
 superset/mcp_service/screenshot/webdriver_pool.py  |  433 ++
 superset/mcp_service/server.py                     |  120 +
 superset/mcp_service/simple_proxy.py               |   84 +
 .../mcp_service/sql_lab}/__init__.py               |    0
 superset/mcp_service/sql_lab/execute_sql_core.py   |  221 +
 superset/mcp_service/sql_lab/schemas.py            |  109 +
 superset/mcp_service/sql_lab/sql_lab_utils.py      |  243 +
 .../sql_lab/tool}/__init__.py                      |   15 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   94 +
 .../sql_lab/tool/open_sql_lab_with_context.py      |  118 +
 .../mcp_service/system}/__init__.py                |    2 +
 .../system/prompts}/__init__.py                    |    6 +-
 superset/mcp_service/system/prompts/quickstart.py  |   94 +
 .../system/resources}/__init__.py                  |    6 +-
 .../system/resources/instance_metadata.py          |  107 +
 superset/mcp_service/system/schemas.py             |  157 +
 superset/mcp_service/system/system_utils.py        |  196 +
 .../system/tool}/__init__.py                       |   11 +-
 .../mcp_service/system/tool/get_instance_info.py   |  106 +
 superset/mcp_service/system/tool/health_check.py   |   97 +
 .../dialects => mcp_service/utils}/__init__.py     |   14 +-
 superset/mcp_service/utils/cache_utils.py          |  143 +
 superset/mcp_service/utils/error_builder.py        |  369 ++
 superset/mcp_service/utils/permissions_utils.py    |  313 ++
 superset/mcp_service/utils/retry_utils.py          |  341 ++
 superset/mcp_service/utils/url_utils.py            |  128 +
 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                |  137 +-
 ...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 +-
 ...8ocx6rto6_expand_username_field_to_128_chars.py |   97 +
 superset/models/core.py                            |    7 +-
 superset/models/dashboard.py                       |    3 +-
 superset/models/dynamic_plugins.py                 |    1 +
 superset/models/helpers.py                         | 1163 ++++-
 superset/models/slice.py                           |    9 +-
 superset/models/sql_lab.py                         |   11 +-
 superset/reports/models.py                         |  114 +
 superset/reports/notifications/email.py            |   10 +-
 superset/result_set.py                             |    2 +-
 superset/security/guest_token.py                   |    1 +
 superset/security/manager.py                       |   90 +-
 superset/sql/dialects/__init__.py                  |    3 +-
 superset/sql/dialects/pinot.py                     |  172 +
 superset/sql/parse.py                              |   62 +-
 superset/sql_lab.py                                |   59 +-
 superset/sqllab/api.py                             |  117 +
 superset/sqllab/schemas.py                         |    1 -
 superset/stats_logger.py                           |   16 +-
 superset/superset_typing.py                        |  321 +-
 superset/tags/api.py                               |    6 +-
 superset/tags/filters.py                           |    4 +-
 superset/tags/models.py                            |    6 +-
 superset/tasks/cache.py                            |    6 +-
 superset/tasks/scheduler.py                        |   29 +-
 superset/tasks/slack.py                            |   21 +-
 superset/templates/head_custom_extra.html          |   25 +
 superset/templates/superset/spa.html               |   49 +-
 superset/templates/tail_js_custom_extra.html       |   25 +
 superset/themes/api.py                             |   28 +-
 superset/themes/schemas.py                         |   81 +-
 superset/themes/utils.py                           |   33 +
 superset/translations/ar/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/de/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/en/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  212 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/fr/LC_MESSAGES/messages.po   | 2050 +++++++--
 superset/translations/it/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/messages.pot                 |    8 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |    8 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |    8 +-
 superset/translations/ru/LC_MESSAGES/messages.po   | 2154 +++++----
 superset/translations/sk/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |    8 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  160 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |    8 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |    8 +-
 superset/utils/core.py                             |  180 +-
 superset/utils/date_parser.py                      |   18 +-
 superset/utils/log.py                              |   19 +-
 superset/utils/pandas.py                           |   69 +
 superset/utils/pandas_postprocessing/histogram.py  |    5 +
 superset/utils/rls.py                              |   53 +-
 superset/utils/screenshot_utils.py                 |   91 +-
 superset/utils/screenshots.py                      |   46 +-
 superset/utils/slack.py                            |   63 +-
 superset/utils/version.py                          |  115 +
 superset/utils/webdriver.py                        |  220 +-
 superset/views/auth.py                             |    7 +-
 superset/views/base.py                             |  290 +-
 superset/views/base_api.py                         |    6 +-
 superset/views/core.py                             |  136 +-
 superset/views/dashboard/views.py                  |    9 +-
 superset/views/datasource/utils.py                 |   49 +-
 superset/views/error_handling.py                   |   17 +-
 superset/views/health.py                           |   14 +-
 superset/views/sql_lab/schemas.py                  |    1 -
 superset/views/utils.py                            |   56 +-
 superset/viz.py                                    |  308 +-
 superset_text.yml                                  |    2 +-
 tests/common/logger_utils.py                       |   20 +-
 tests/conftest.py                                  |    2 +
 tests/integration_tests/base_api_tests.py          |    6 +-
 tests/integration_tests/charts/commands_tests.py   |  209 +-
 tests/integration_tests/charts/data/api_tests.py   |  117 +-
 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/dashboard_tests.py         |   74 +-
 tests/integration_tests/dashboards/api_tests.py    |   74 +
 .../dashboards/dashboard_test_utils.py             |    2 +-
 .../dashboards/security/security_rbac_tests.py     |   10 +-
 .../dashboards/superset_factory_util.py            |   18 +-
 tests/integration_tests/dynamic_plugins_tests.py   |    4 +-
 tests/integration_tests/event_logger_tests.py      |   24 +
 tests/integration_tests/fixtures/users.py          |    6 +-
 tests/integration_tests/model_tests.py             |    5 +-
 tests/integration_tests/queries/api_tests.py       |   36 +-
 tests/integration_tests/query_context_tests.py     |  124 +-
 .../commands/execute_dashboard_report_tests.py     |   54 +-
 tests/integration_tests/reports/commands_tests.py  |   18 +-
 tests/integration_tests/reports/scheduler_tests.py |   49 +-
 .../security/row_level_security_tests.py           |   99 +
 tests/integration_tests/security_tests.py          |   22 +-
 .../sql_lab/test_execute_sql_statements.py         |  124 +
 tests/integration_tests/sqla_models_tests.py       |  146 +-
 tests/integration_tests/tags/api_tests.py          |   45 +
 .../tags/mysql_compatibility_test.py               |  285 ++
 tests/integration_tests/themes/api_tests.py        |  122 +
 tests/integration_tests/viz_tests.py               |  879 +++-
 .../unit_tests/charts/commands/data}/__init__.py   |    0
 .../charts/commands/data/test_get_data_command.py  |  325 ++
 tests/unit_tests/charts/test_client_processing.py  |  135 +
 .../unit_tests/commands/chart}/__init__.py         |    0
 .../chart/streaming_export_command_test.py         |  258 ++
 .../commands/chart/warm_up_cache_test.py           |  490 ++
 .../commands/databases/csv_reader_test.py          |  647 +++
 tests/unit_tests/commands/dataset/update_test.py   |  561 ++-
 .../unit_tests/commands/explore}/__init__.py       |    0
 .../commands/explore/form_data}/__init__.py        |    0
 .../commands/explore/form_data/test_create.py      |   85 +
 tests/unit_tests/commands/report/execute_test.py   |    6 +
 .../unit_tests/commands/sql_lab}/__init__.py       |    0
 .../sql_lab/streaming_export_command_test.py       |  540 +++
 .../common/test_query_context_factory.py           |  438 ++
 .../common/test_query_context_processor.py         |  305 +-
 tests/unit_tests/common/test_time_shifts.py        |   32 +-
 tests/unit_tests/conftest.py                       |    2 +-
 tests/unit_tests/connectors/sqla/models_test.py    |  154 +-
 tests/unit_tests/dao/base_dao_test.py              |  117 +-
 tests/unit_tests/dao/key_value_test.py             |    1 +
 tests/unit_tests/daos/test_theme_dao.py            |  136 +-
 tests/unit_tests/databases/api_test.py             |   20 +-
 .../utils/test_replace_verbose_with_column.py      |   83 +
 tests/unit_tests/db_engine_specs/test_base.py      |  355 ++
 tests/unit_tests/db_engine_specs/test_db2.py       |   70 +
 tests/unit_tests/db_engine_specs/test_doris.py     |    4 +-
 tests/unit_tests/jinja_context_test.py             |   73 +
 .../unit_tests/mcp_service/chart}/__init__.py      |    0
 .../mcp_service/chart/test_chart_schemas.py        |  160 +
 .../mcp_service/chart/test_chart_utils.py          |  465 ++
 .../unit_tests/mcp_service/chart/tool}/__init__.py |    0
 .../mcp_service/chart/tool/test_generate_chart.py  |  268 ++
 .../chart/tool/test_get_chart_preview.py           |  290 ++
 .../mcp_service/chart/tool/test_list_charts.py     |  172 +
 .../mcp_service/chart/tool/test_update_chart.py    |  385 ++
 .../chart/tool/test_update_chart_preview.py        |  474 ++
 .../unit_tests/mcp_service/common}/__init__.py     |    0
 .../unit_tests/mcp_service/conftest.py             |    8 +-
 .../unit_tests/mcp_service/dashboard}/__init__.py  |    0
 .../mcp_service/dashboard/tool}/__init__.py        |    0
 .../dashboard/tool/test_dashboard_generation.py    |  450 ++
 .../dashboard/tool/test_dashboard_tools.py         |  573 +++
 .../unit_tests/mcp_service/dataset}/__init__.py    |    0
 .../mcp_service/dataset/tool}/__init__.py          |    0
 .../mcp_service/dataset/tool/test_dataset_tools.py | 1231 +++++
 .../unit_tests/mcp_service/explore}/__init__.py    |    0
 .../mcp_service/explore/tool}/__init__.py          |    0
 .../explore/tool/test_generate_explore_link.py     |  580 +++
 .../unit_tests/mcp_service/sql_lab}/__init__.py    |    0
 .../mcp_service/sql_lab/test_execute_sql_helper.py |   64 +
 .../mcp_service/sql_lab/tool}/__init__.py          |    0
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |  497 ++
 .../mcp_service/system/tool}/__init__.py           |    0
 .../mcp_service/system/tool/test_health_check.py   |   55 +
 .../mcp_service/system/tool/test_mcp_core.py       |  204 +
 tests/unit_tests/mcp_service/test_mcp_config.py    |  137 +
 .../unit_tests/mcp_service/utils}/__init__.py      |    0
 tests/unit_tests/migrations/shared/utils_test.py   |   10 +-
 tests/unit_tests/models/helpers_test.py            | 1085 +++++
 tests/unit_tests/models/slice_test.py              |    1 +
 .../models/test_time_filter_double_application.py  |  369 ++
 .../pandas_postprocessing/test_histogram.py        |   67 +
 tests/unit_tests/reports/model_test.py             |  242 +
 .../reports/notifications/email_tests.py           |    2 +
 .../reports/notifications/slack_tests.py           |    1 +
 tests/unit_tests/security/manager_test.py          |    6 +-
 tests/unit_tests/sql/dialects/pinot_tests.py       |  881 ++++
 tests/unit_tests/sql/parse_tests.py                |  103 +-
 tests/unit_tests/sql/test_hive_dialect.py          |   65 +
 .../unit_tests/sql/test_impala_dialect.py          |   13 +-
 tests/unit_tests/tags/models_test.py               |  263 ++
 tests/unit_tests/themes/test_utils.py              |   38 +
 tests/unit_tests/utils/csv_tests.py                |   54 +
 tests/unit_tests/utils/date_parser_tests.py        |   30 +-
 tests/unit_tests/utils/screenshot_test.py          |  153 +-
 tests/unit_tests/utils/test_core.py                |   40 +
 tests/unit_tests/utils/test_date_parsing.py        |  256 ++
 .../utils/test_playwright_migration_working.py     |  100 +
 .../unit_tests/utils/test_screenshot_cache_fix.py  |  410 ++
 tests/unit_tests/utils/test_screenshot_utils.py    |  256 +-
 tests/unit_tests/utils/webdriver_test.py           |  695 +++
 tests/unit_tests/views/test_base_theme_helpers.py  |  532 +++
 2165 files changed, 121796 insertions(+), 29125 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 .devcontainer/default/devcontainer.json
 create mode 100644 .devcontainer/devcontainer-base.json
 create mode 100644 .devcontainer/with-mcp/devcontainer.json
 copy .github/workflows/{superset-e2e.yml => superset-playwright.yml} (72%)
 rename LLMS.md => AGENTS.md (81%)
 create mode 100644 LINTING_ARCHITECTURE.md
 copy docker/superset-websocket/{config.json => config.example.json} (100%)
 create mode 100644 docs/DOCS_CLAUDE.md
 delete mode 100644 docs/developer_portal/api/frontend.md
 delete mode 100644 docs/developer_portal/architecture/overview.md
 delete mode 100644 docs/developer_portal/cli/overview.md
 create mode 100644 docs/developer_portal/contributing/code-review.md
 copy docs/{docs/contributing/development.mdx => developer_portal/contributing/development-setup.md} (96%)
 copy docs/{docs/contributing/guidelines.mdx => developer_portal/contributing/guidelines.md} (74%)
 create mode 100644 docs/developer_portal/contributing/howtos.md
 create mode 100644 docs/developer_portal/contributing/issue-reporting.md
 create mode 100644 docs/developer_portal/contributing/overview.md
 create mode 100644 docs/developer_portal/contributing/release-process.md
 create mode 100644 docs/developer_portal/contributing/resources.md
 create mode 100644 docs/developer_portal/contributing/submitting-pr.md
 delete mode 100644 docs/developer_portal/examples/index.md
 create mode 100644 docs/developer_portal/extensions/architecture.md
 create mode 100644 docs/developer_portal/extensions/deploying-extension.md
 create mode 100644 docs/developer_portal/extensions/development-mode.md
 create mode 100644 docs/developer_portal/extensions/extension-metadata.md
 create mode 100644 docs/developer_portal/extensions/extension-project-structure.md
 create mode 100644 docs/developer_portal/extensions/frontend-contribution-types.md
 create mode 100644 docs/developer_portal/extensions/interacting-with-host.md
 create mode 100644 docs/developer_portal/extensions/overview.md
 create mode 100644 docs/developer_portal/extensions/quick-start.md
 create mode 100644 docs/developer_portal/extensions/security-implications.md
 delete mode 100644 docs/developer_portal/getting-started/index.md
 create mode 100644 docs/developer_portal/guidelines/backend-style-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/backend/dao-style-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/design-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/frontend-style-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/frontend/component-style-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/frontend/emotion-styling-guidelines.md
 create mode 100644 docs/developer_portal/guidelines/frontend/testing-guidelines.md
 create mode 100644 docs/developer_portal/testing/backend-testing.md
 create mode 100644 docs/developer_portal/testing/ci-cd.md
 create mode 100644 docs/developer_portal/testing/e2e-testing.md
 create mode 100644 docs/developer_portal/testing/frontend-testing.md
 create mode 100644 docs/developer_portal/testing/overview.md
 create mode 100644 docs/docs/contributing/pkg-resources-migration.md
 create mode 100644 docs/docs/security/securing_superset.mdx
 copy superset-frontend/src/components/ImportModal/styles.ts => docs/src/theme.d.ts (70%)
 create mode 100644 docs/static/img/superset-logo-icon-only.png
 copy scripts/{eslint.sh => check-custom-rules.sh} (66%)
 copy scripts/{eslint.sh => oxlint.sh} (61%)
 create mode 100644 superset-core/src/superset_core/api/daos.py
 create mode 100644 superset-core/src/superset_core/api/models.py
 create mode 100644 superset-core/src/superset_core/api/query.py
 create mode 100644 superset-core/src/superset_core/api/rest_api.py
 delete mode 100644 superset-core/src/superset_core/api/types/models.py
 delete mode 100644 superset-core/src/superset_core/api/types/rest_api.py
 copy docs/static/.nojekyll => superset-extensions-cli/src/superset_extensions_cli/templates/backend/src/package/__init__.py.j2 (100%)
 create mode 100644 superset-extensions-cli/src/superset_extensions_cli/templates/backend/src/package/entrypoint.py.j2
 create mode 100644 superset-extensions-cli/src/superset_extensions_cli/templates/frontend/src/index.tsx.j2
 create mode 100644 superset-extensions-cli/src/superset_extensions_cli/templates/frontend/tsconfig.json.j2
 create mode 100644 superset-extensions-cli/src/superset_extensions_cli/templates/frontend/webpack.config.js.j2
 create mode 100644 superset-frontend/.eslintrc.minimal.js
 create mode 100644 superset-frontend/.swcrc
 create mode 100644 superset-frontend/LINTING.md
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/auth/login.test.ts
 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/oxlint.json
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/components/Alert/Alert.stories.tsx (81%)
 rename superset-frontend/{src/explore/components/controls/MetricControl/columnType.js => packages/superset-core/src/ui/components/Alert/Alert.test.tsx} (78%)
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/components/Alert/index.tsx (50%)
 copy superset-frontend/packages/superset-core/src/{ => ui/components}/index.ts (97%)
 copy superset-frontend/packages/superset-core/src/{ => ui}/index.ts (93%)
 copy superset-frontend/packages/{superset-ui-core/src/spec/index.tsx => superset-core/src/ui/testing.tsx} (88%)
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/GlobalStyles.tsx (84%)
 create mode 100644 superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/Theme.tsx (71%)
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/exampleThemes.ts (100%)
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/index.tsx (94%)
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/types.ts (94%)
 rename superset-frontend/packages/{superset-ui-core/src/theme/utils.ts => superset-core/src/ui/theme/utils/index.ts} (99%)
 create mode 100644 superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.test.ts
 rename superset-frontend/packages/{superset-ui-core/src => superset-core/src/ui}/theme/utils/themeUtils.ts (85%)
 create mode 100644 superset-frontend/packages/superset-core/src/ui/theme/utils/utils.test.ts
 delete mode 100644 superset-frontend/packages/superset-ui-core/.eslintrc
 create mode 100644 superset-frontend/packages/superset-ui-core/src/chart/components/SuperChartCore.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Alert/types.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/CodeEditor/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/ConfirmModal.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/Loading/index.test.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/Next.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/Pagination/Next.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
 copy superset-frontend/{src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts => packages/superset-ui-core/src/components/Progress/index.tsx} (80%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/setupAGGridModules.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/assets/images/loading.svg
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/theme/Theme.test.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/theme/utils.test.ts
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/types/AgGrid.ts
 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
 delete mode 100644 superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.js
 create mode 100644 superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx
 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
 create mode 100644 superset-frontend/playwright/tests/experimental/README.md
 rename superset-frontend/{packages/generator-superset/.eslintrc => playwright/utils/urls.ts} (90%)
 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/buildQuery.ts
 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/Arc/transformProps.ts
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/Ellipsis.tsx => plugins/legacy-preset-chart-deckgl/src/layers/Contour/buildQuery.ts} (64%)
 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
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images/index.ts => plugins/legacy-preset-chart-deckgl/src/layers/Contour/transformProps.ts} (89%)
 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
 copy superset-frontend/{src/explore/components/controls/FilterControl/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Grid/buildQuery.ts} (76%)
 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%)
 copy superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Grid/transformProps.ts} (79%)
 copy superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Heatmap/buildQuery.ts} (82%)
 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
 copy superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Heatmap/transformProps.ts} (79%)
 copy superset-frontend/{src/explore/components/controls/FilterControl/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Hex/buildQuery.ts} (72%)
 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
 copy superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Hex/transformProps.ts} (79%)
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/buildQuery.ts
 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/Path/transformProps.ts
 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/buildQuery.ts
 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/Polygon/transformProps.ts
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/buildQuery.ts
 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
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/transformProps.ts
 rename superset-frontend/{src/dashboard/util/isDashboardLoading.js => plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/buildQuery.ts} (82%)
 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%)
 rename superset-frontend/{packages/superset-ui-core/src/components/Pagination/types.ts => plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/transformProps.ts} (79%)
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/buildQueryUtils.ts
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.test.ts
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.ts
 create mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/transformUtils.ts
 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
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/stateConversion.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/buildQuery.test.ts
 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/EchartsTimeseries.test.tsx
 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-echarts/test/Timeseries/Scatter/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Scatter/transformProps.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
 create mode 100755 superset-frontend/scripts/check-custom-rules.js
 create mode 100644 superset-frontend/scripts/oxlint-metrics-uploader.js
 delete mode 100644 superset-frontend/spec/.eslintrc
 rename superset-frontend/spec/fixtures/{mockDatasource.js => mockDatasource.ts} (79%)
 delete mode 100644 superset-frontend/spec/javascripts/dashboard/.eslintrc
 create mode 100644 superset-frontend/src/.eslintrc.json
 delete mode 100644 superset-frontend/src/assets/images/icons/slack.svg
 delete mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByMenuItems.tsx
 rename superset-frontend/src/components/Chart/DrillBy/{DrillByMenuItems.test.tsx => DrillBySubmenu.test.tsx} (60%)
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
 delete mode 100644 superset-frontend/src/components/Chart/DrillDetail/DrillDetailMenuItems.tsx
 rename superset-frontend/src/components/Chart/{DrillDetail/useDrillDetailMenuItems.tsx => useDrillDetailMenuItems/index.tsx} (60%)
 rename superset-frontend/src/components/Chart/{DrillDetail/DrillDetailMenuItems.test.tsx => useDrillDetailMenuItems/useDrillDetailMenuItems.test.tsx} (84%)
 copy superset-frontend/src/components/{ImportModal => DatabaseSelector}/styles.ts (74%)
 rename superset-frontend/src/components/Datasource/{ => ChangeDatasourceModal}/ChangeDatasourceModal.test.jsx (98%)
 rename superset-frontend/src/components/Datasource/{ChangeDatasourceModal.tsx => ChangeDatasourceModal/index.tsx} (96%)
 delete mode 100644 superset-frontend/src/components/Datasource/DatasourceModal.test.jsx
 create mode 100644 superset-frontend/src/components/Datasource/DatasourceModal/DatasourceModal.test.jsx
 create mode 100644 superset-frontend/src/components/Datasource/DatasourceModal/DatasourceModal.useModal.test.tsx
 rename superset-frontend/src/components/Datasource/{DatasourceModal.tsx => DatasourceModal/index.tsx} (89%)
 rename superset-frontend/src/components/Datasource/{ => components/CollectionTable}/CollectionTable.test.tsx (96%)
 rename superset-frontend/src/components/Datasource/{CollectionTable.tsx => components/CollectionTable/index.tsx} (92%)
 rename superset-frontend/src/components/Datasource/{ => components/DatasourceEditor}/DatasourceEditor.jsx (91%)
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/DashboardLinksExternal.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/index.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/DatasetUsageTab.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/index.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images => src/components/Datasource/components/DatasourceEditor/components}/index.ts (85%)
 copy superset-frontend/{packages/superset-core/src => src/components/Datasource/components/DatasourceEditor}/index.ts (94%)
 rename superset-frontend/src/components/Datasource/{DatasourceEditor.test.jsx => components/DatasourceEditor/tests/DatasourceEditor.test.tsx} (71%)
 rename superset-frontend/src/components/Datasource/{DatasourceEditorCurrency.test.jsx => components/DatasourceEditor/tests/DatasourceEditorCurrency.test.tsx} (80%)
 rename superset-frontend/src/components/Datasource/{DatasourceEditorRTL.test.jsx => components/DatasourceEditor/tests/DatasourceEditorRTL.test.tsx} (78%)
 rename superset-frontend/src/components/Datasource/{ => components/Field}/Field.test.tsx (98%)
 rename superset-frontend/src/components/Datasource/{Field.tsx => components/Field/index.tsx} (97%)
 rename superset-frontend/src/components/Datasource/{Fieldset.tsx => components/Fieldset/index.tsx} (93%)
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images => src/components/Datasource/components}/index.ts (78%)
 rename superset-frontend/src/components/Datasource/{index.tsx => index.ts} (100%)
 rename superset-frontend/src/components/Datasource/{utils.js => utils/index.js} (100%)
 rename superset-frontend/src/components/Datasource/{ => utils}/utils.test.tsx (93%)
 copy superset-frontend/src/{dashboard/components/BuilderComponentPane/BuilderComponentPane.test.tsx => components/ErrorMessage/CustomDocLink.test.tsx} (58%)
 copy superset-frontend/src/{utils/cachedSupersetGet.ts => components/ErrorMessage/CustomDocLink.tsx} (69%)
 delete mode 100644 superset-frontend/src/components/FlashProvider/FlashProvider.test.tsx
 delete mode 100644 superset-frontend/src/components/FlashProvider/index.tsx
 delete mode 100644 superset-frontend/src/components/FlashProvider/types.ts
 delete mode 100644 superset-frontend/src/components/ListView/ListView.test.jsx
 rename superset-frontend/src/components/MessageToasts/{reducers.js => reducers.ts} (77%)
 create mode 100644 superset-frontend/src/components/StreamingExportModal/StreamingExportModal.test.tsx
 create mode 100644 superset-frontend/src/components/StreamingExportModal/StreamingExportModal.tsx
 copy superset-frontend/src/components/{Chart/DrillDetail => StreamingExportModal}/index.ts (80%)
 create mode 100644 superset-frontend/src/components/StreamingExportModal/useStreamingExport.test.ts
 create mode 100644 superset-frontend/src/components/StreamingExportModal/useStreamingExport.ts
 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
 create mode 100644 superset-frontend/src/dashboard/actions/chartCustomizationActions.ts
 create mode 100644 superset-frontend/src/dashboard/components/DashboardBuilder/DashboardContainer.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/GroupByBadge/index.tsx
 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/components/gridComponents/{ => Chart}/Chart.jsx (74%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Chart}/Chart.test.jsx (88%)
 copy superset-frontend/src/{types/files.d.ts => dashboard/components/gridComponents/Chart/index.js} (94%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => ChartHolder}/ChartHolder.test.tsx (91%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => ChartHolder}/ChartHolder.tsx (98%)
 copy superset-frontend/{packages/superset-core/src => src/dashboard/components/gridComponents/ChartHolder}/index.ts (95%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Column}/Column.jsx (99%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Column}/Column.test.jsx (99%)
 copy superset-frontend/src/{types/files.d.ts => dashboard/components/gridComponents/Column/index.js} (93%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Divider}/Divider.jsx (91%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Divider}/Divider.test.jsx (86%)
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images/index.ts => src/dashboard/components/gridComponents/Divider/index.js} (93%)
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/DynamicComponent/DynamicComponent.test.tsx
 rename superset-frontend/src/dashboard/components/gridComponents/{ => DynamicComponent}/DynamicComponent.tsx (83%)
 copy superset-frontend/{packages/superset-core/src => src/dashboard/components/gridComponents/DynamicComponent}/index.ts (94%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Header}/Header.jsx (99%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Header}/Header.test.jsx (84%)
 copy superset-frontend/src/{types/files.d.ts => dashboard/components/gridComponents/Header/index.js} (93%)
 delete mode 100644 superset-frontend/src/dashboard/components/gridComponents/Markdown.test.jsx
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Markdown}/Markdown.jsx (96%)
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images/index.ts => src/dashboard/components/gridComponents/Markdown/index.js} (93%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Row}/Row.jsx (98%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Row}/Row.test.jsx (98%)
 copy superset-frontend/{packages/superset-core/src/index.ts => src/dashboard/components/gridComponents/Row/index.js} (94%)
 delete mode 100644 superset-frontend/src/dashboard/components/gridComponents/Tab.test.jsx
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Tab}/Tab.jsx (86%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Tab}/Tab.test.tsx (81%)
 rename superset-frontend/src/{setup/setupExtensions.ts => dashboard/components/gridComponents/Tab/index.js} (88%)
 delete mode 100644 superset-frontend/src/dashboard/components/gridComponents/Tabs.test.jsx
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Tabs}/Tabs.jsx (77%)
 rename superset-frontend/src/dashboard/components/gridComponents/{ => Tabs}/Tabs.test.tsx (87%)
 copy superset-frontend/src/{types/files.d.ts => dashboard/components/gridComponents/Tabs/index.js} (94%)
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/assets/images => src/dashboard/components/gridComponents/TabsRenderer}/index.ts (86%)
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/GroupByFilterCard.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/groupBySelectors.ts
 copy superset-frontend/src/dashboard/components/nativeFilters/{FilterCard/useFilterDependencies.ts => ChartCustomization/selectors.ts} (51%)
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/types.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/useChartCustomizationModal.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/utils.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/ModalFooter.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.test.tsx
 rename superset-frontend/src/dashboard/fixtures/{emptyDashboardLayout.js => emptyDashboardLayout.ts} (67%)
 create mode 100644 superset-frontend/src/dashboard/reducers/groupByCustomizations.ts
 create mode 100644 superset-frontend/src/dashboard/reducers/nativeFilters.test.ts
 rename superset-frontend/src/dashboard/reducers/{sliceEntities.js => sliceEntities.ts} (80%)
 copy superset-frontend/{plugins/plugin-chart-table/test/testHelpers.tsx => src/dashboard/types/chartState.ts} (67%)
 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%)
 create mode 100644 superset-frontend/src/dashboard/util/chartStateConverter.ts
 create mode 100644 superset-frontend/src/dashboard/util/charts/chartTypeLimitations.ts
 copy superset-frontend/{plugins/plugin-chart-echarts/src/Bubble/EchartsBubble.tsx => src/dashboard/util/charts/useAllChartIds.ts} (68%)
 rename superset-frontend/src/dashboard/util/{dropOverflowsParent.test.js => dropOverflowsParent.test.ts} (71%)
 rename superset-frontend/src/dashboard/util/{dropOverflowsParent.js => dropOverflowsParent.ts} (75%)
 rename superset-frontend/src/dashboard/util/{findFirstParentContainer.js => findFirstParentContainer.ts} (89%)
 copy superset-frontend/src/dashboard/util/{getChartIdsFromLayout.js => getChartIdsFromComponent.ts} (57%)
 rename superset-frontend/src/dashboard/util/{getChartIdsFromLayout.test.js => getChartIdsFromLayout.test.ts} (62%)
 rename superset-frontend/src/dashboard/util/{getChartIdsFromLayout.js => getChartIdsFromLayout.ts} (63%)
 copy superset-frontend/src/dashboard/util/{getLeafComponentIdFromPath.test.js => getDirectPathToTabIndex.test.ts} (53%)
 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%)
 create mode 100644 superset-frontend/src/dashboard/util/isDashboardLoading.test.ts
 copy superset-frontend/src/{explore/components/controls/MetricControl/AggregateOption.test.tsx => dashboard/util/isDashboardLoading.ts} (64%)
 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/ExploreAlert.test.tsx
 delete mode 100644 superset-frontend/src/explore/components/controls/DatasourceControl/DatasourceControl.test.jsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.test.tsx
 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
 delete mode 100644 superset-frontend/src/explore/components/controls/FilterControl/columnType.js
 create mode 100644 superset-frontend/src/explore/components/controls/FilterControl/columnType.test.ts
 copy superset-frontend/src/{components/ImportModal/styles.ts => explore/components/controls/FilterControl/columnType.ts} (76%)
 copy superset-frontend/{plugins/plugin-chart-echarts/src/Treemap/constants.ts => src/explore/components/controls/MetricControl/aggregateOptionType.test.ts} (52%)
 rename superset-frontend/src/{components/Chart/DrillDetail/index.ts => explore/components/controls/MetricControl/aggregateOptionType.ts} (84%)
 copy superset-frontend/src/{components/ImportModal/styles.ts => explore/components/controls/MetricControl/columnType.ts} (76%)
 create mode 100644 superset-frontend/src/explore/components/controls/MetricControl/savedMetricType.test.ts
 rename superset-frontend/src/explore/components/controls/MetricControl/{savedMetricType.js => savedMetricType.ts} (75%)
 create mode 100644 superset-frontend/src/explore/components/controls/ViewQueryModal.test.tsx
 delete mode 100644 superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeControl.test.jsx
 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%)
 delete mode 100644 superset-frontend/src/features/datasets/AddDataset/EditDataset/UsageTab/UsageTab.test.tsx
 delete mode 100644 superset-frontend/src/features/datasets/AddDataset/EditDataset/UsageTab/index.tsx
 create mode 100644 superset-frontend/src/features/datasets/hooks/useDatasetLists.test.ts
 create mode 100644 superset-frontend/src/hooks/apiResources/datasets.test.ts
 create mode 100644 superset-frontend/src/hooks/useBeforeUnload/index.ts
 create mode 100644 superset-frontend/src/hooks/useBeforeUnload/useBeforeUnload.test.ts
 create mode 100644 superset-frontend/src/hooks/useConfirmModal/index.tsx
 create mode 100644 superset-frontend/src/hooks/useConfirmModal/useConfirmModal.test.tsx
 delete mode 100644 superset-frontend/src/pages/ThemeList/index.test.tsx
 copy superset-frontend/src/{explore/components/controls/FilterControl/types.ts => setup/setupCodeOverrides.ts} (65%)
 create mode 100644 superset-frontend/src/utils/DebouncedMessageQueue.test.ts
 rename superset-frontend/src/utils/{DebouncedMessageQueue.js => DebouncedMessageQueue.ts} (69%)
 create mode 100644 superset-frontend/src/utils/cachedSupersetGet.test.ts
 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
 rename superset-frontend/src/utils/{downloadAsImage.ts => downloadAsImage.tsx} (85%)
 create mode 100644 superset-frontend/src/utils/export.test.ts
 copy superset-frontend/src/utils/{getControlsForVizType.test.js => getControlsForVizType.test.ts} (91%)
 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/cli/mcp.py
 create mode 100644 superset/commands/chart/data/streaming_export_command.py
 create mode 100644 superset/commands/sql_lab/streaming_export_command.py
 rename {superset-core/src/superset_core/api/types => superset/commands/streaming_export}/__init__.py (100%)
 create mode 100644 superset/commands/streaming_export/base.py
 create mode 100644 superset/core/api/core_api_injection.py
 delete mode 100644 superset/core/api/types/models.py
 create mode 100644 superset/custom_database_errors.py
 create mode 100644 superset/mcp_service/ARCHITECTURE.md
 create mode 100644 superset/mcp_service/CLAUDE.md
 create mode 100644 superset/mcp_service/PRODUCTION.md
 create mode 100644 superset/mcp_service/README.md
 create mode 100644 superset/mcp_service/SECURITY.md
 copy superset/{core/api/types/rest_api.py => mcp_service/__init__.py} (56%)
 create mode 100644 superset/mcp_service/__main__.py
 create mode 100644 superset/mcp_service/app.py
 create mode 100644 superset/mcp_service/auth.py
 create mode 100755 superset/mcp_service/bin/superset-mcp.js
 create mode 100644 superset/mcp_service/chart/chart_utils.py
 create mode 100644 superset/mcp_service/chart/preview_utils.py
 copy superset/{sql/dialects => mcp_service/chart/prompts}/__init__.py (84%)
 create mode 100644 superset/mcp_service/chart/prompts/create_chart_guided.py
 copy superset/{sql/dialects => mcp_service/chart/resources}/__init__.py (84%)
 create mode 100644 superset/mcp_service/chart/resources/chart_configs.py
 create mode 100644 superset/mcp_service/chart/schemas.py
 rename superset/{core/api/types/rest_api.py => mcp_service/chart/tool/__init__.py} (57%)
 create mode 100644 superset/mcp_service/chart/tool/generate_chart.py
 copy superset/{tasks/slack.py => mcp_service/chart/tool/get_chart_available_filters.py} (51%)
 create mode 100644 superset/mcp_service/chart/tool/get_chart_data.py
 create mode 100644 superset/mcp_service/chart/tool/get_chart_info.py
 create mode 100644 superset/mcp_service/chart/tool/get_chart_preview.py
 create mode 100644 superset/mcp_service/chart/tool/list_charts.py
 create mode 100644 superset/mcp_service/chart/tool/update_chart.py
 create mode 100644 superset/mcp_service/chart/tool/update_chart_preview.py
 copy superset/{sql/dialects => mcp_service/chart/validation}/__init__.py (76%)
 create mode 100644 superset/mcp_service/chart/validation/dataset_validator.py
 create mode 100644 superset/mcp_service/chart/validation/pipeline.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/__init__.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/cardinality_validator.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/chart_type_suggester.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/format_validator.py
 create mode 100644 superset/mcp_service/chart/validation/schema_validator.py
 rename superset/{core/api/types => mcp_service/commands}/__init__.py (100%)
 copy superset/{core/api/types/query.py => mcp_service/commands/create_form_data.py} (60%)
 copy superset/{sql/dialects => mcp_service/common}/__init__.py (82%)
 create mode 100644 superset/mcp_service/common/cache_schemas.py
 create mode 100644 superset/mcp_service/common/error_schemas.py
 copy superset/{sql/dialects => mcp_service/dashboard/prompts}/__init__.py (84%)
 copy superset/{sql/dialects => mcp_service/dashboard/resources}/__init__.py (84%)
 create mode 100644 superset/mcp_service/dashboard/schemas.py
 copy {superset-core/src/superset_core/api => superset/mcp_service/dashboard/tool}/__init__.py (62%)
 create mode 100644 superset/mcp_service/dashboard/tool/add_chart_to_existing_dashboard.py
 create mode 100644 superset/mcp_service/dashboard/tool/generate_dashboard.py
 copy superset/{tasks/slack.py => mcp_service/dashboard/tool/get_dashboard_available_filters.py} (50%)
 create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_info.py
 create mode 100644 superset/mcp_service/dashboard/tool/list_dashboards.py
 copy superset/{sql/dialects => mcp_service/dataset/prompts}/__init__.py (85%)
 copy superset/{sql/dialects => mcp_service/dataset/resources}/__init__.py (84%)
 create mode 100644 superset/mcp_service/dataset/schemas.py
 copy superset/{sql/dialects => mcp_service/dataset/tool}/__init__.py (75%)
 copy superset/{tasks/slack.py => mcp_service/dataset/tool/get_dataset_available_filters.py} (51%)
 create mode 100644 superset/mcp_service/dataset/tool/get_dataset_info.py
 create mode 100644 superset/mcp_service/dataset/tool/list_datasets.py
 copy {superset-core/src/superset_core => superset/mcp_service/explore}/__init__.py (94%)
 copy superset/{sql/dialects => mcp_service/explore/tool}/__init__.py (76%)
 create mode 100644 superset/mcp_service/explore/tool/generate_explore_link.py
 create mode 100644 superset/mcp_service/flask_singleton.py
 create mode 100644 superset/mcp_service/index.js
 create mode 100644 superset/mcp_service/mcp_config.py
 create mode 100644 superset/mcp_service/mcp_core.py
 create mode 100644 superset/mcp_service/middleware.py
 create mode 100644 superset/mcp_service/package.json
 rename superset-core/src/superset_core/api/types/query.py => superset/mcp_service/run_proxy.sh (50%)
 copy superset_text.yml => superset/mcp_service/screenshot/__init__.py (63%)
 create mode 100644 superset/mcp_service/screenshot/pooled_screenshot.py
 create mode 100644 superset/mcp_service/screenshot/webdriver_config.py
 create mode 100644 superset/mcp_service/screenshot/webdriver_pool.py
 create mode 100644 superset/mcp_service/server.py
 create mode 100644 superset/mcp_service/simple_proxy.py
 copy {superset-core/src/superset_core => superset/mcp_service/sql_lab}/__init__.py (100%)
 create mode 100644 superset/mcp_service/sql_lab/execute_sql_core.py
 create mode 100644 superset/mcp_service/sql_lab/schemas.py
 create mode 100644 superset/mcp_service/sql_lab/sql_lab_utils.py
 copy superset/{sql/dialects => mcp_service/sql_lab/tool}/__init__.py (74%)
 create mode 100644 superset/mcp_service/sql_lab/tool/execute_sql.py
 create mode 100644 superset/mcp_service/sql_lab/tool/open_sql_lab_with_context.py
 copy {superset-core/src/superset_core => superset/mcp_service/system}/__init__.py (93%)
 copy superset/{sql/dialects => mcp_service/system/prompts}/__init__.py (85%)
 create mode 100644 superset/mcp_service/system/prompts/quickstart.py
 copy superset/{sql/dialects => mcp_service/system/resources}/__init__.py (84%)
 create mode 100644 superset/mcp_service/system/resources/instance_metadata.py
 create mode 100644 superset/mcp_service/system/schemas.py
 create mode 100644 superset/mcp_service/system/system_utils.py
 copy superset/{sql/dialects => mcp_service/system/tool}/__init__.py (81%)
 create mode 100644 superset/mcp_service/system/tool/get_instance_info.py
 create mode 100644 superset/mcp_service/system/tool/health_check.py
 copy superset/{sql/dialects => mcp_service/utils}/__init__.py (77%)
 create mode 100644 superset/mcp_service/utils/cache_utils.py
 create mode 100644 superset/mcp_service/utils/error_builder.py
 create mode 100644 superset/mcp_service/utils/permissions_utils.py
 create mode 100644 superset/mcp_service/utils/retry_utils.py
 create mode 100644 superset/mcp_service/utils/url_utils.py
 create mode 100644 superset/migrations/versions/2025-11-12_12-54_x2s8ocx6rto6_expand_username_field_to_128_chars.py
 create mode 100644 superset/sql/dialects/pinot.py
 create mode 100644 superset/templates/head_custom_extra.html
 create mode 100644 superset/templates/tail_js_custom_extra.html
 create mode 100644 superset/utils/pandas.py
 create mode 100644 superset/utils/version.py
 create mode 100644 tests/integration_tests/dao/base_dao_test.py
 create mode 100644 tests/integration_tests/dao/conftest.py
 create mode 100644 tests/integration_tests/tags/mysql_compatibility_test.py
 copy {superset-core/src/superset_core => tests/unit_tests/charts/commands/data}/__init__.py (100%)
 create mode 100644 tests/unit_tests/charts/commands/data/test_get_data_command.py
 copy {superset-core/src/superset_core => tests/unit_tests/commands/chart}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/chart/streaming_export_command_test.py
 create mode 100644 tests/unit_tests/commands/chart/warm_up_cache_test.py
 copy {superset-core/src/superset_core => tests/unit_tests/commands/explore}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/commands/explore/form_data}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/explore/form_data/test_create.py
 copy {superset-core/src/superset_core => tests/unit_tests/commands/sql_lab}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/sql_lab/streaming_export_command_test.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
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/chart}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_schemas.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_utils.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/chart/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_generate_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_preview.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_list_charts.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart_preview.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/common}/__init__.py (100%)
 copy superset/sql/dialects/__init__.py => tests/unit_tests/mcp_service/conftest.py (85%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dashboard}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dashboard/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_generation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_tools.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dataset}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dataset/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_dataset_tools.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/explore}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/explore/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/explore/tool/test_generate_explore_link.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/sql_lab}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/test_execute_sql_helper.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/sql_lab/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_execute_sql.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/system/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/system/tool/test_health_check.py
 create mode 100644 tests/unit_tests/mcp_service/system/tool/test_mcp_core.py
 create mode 100644 tests/unit_tests/mcp_service/test_mcp_config.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/utils}/__init__.py (100%)
 create mode 100644 tests/unit_tests/models/test_time_filter_double_application.py
 create mode 100644 tests/unit_tests/reports/model_test.py
 create mode 100644 tests/unit_tests/sql/dialects/pinot_tests.py
 create mode 100644 tests/unit_tests/sql/test_hive_dialect.py
 rename superset/core/api/types/query.py => tests/unit_tests/sql/test_impala_dialect.py (71%)
 create mode 100644 tests/unit_tests/tags/models_test.py
 create mode 100644 tests/unit_tests/utils/test_date_parsing.py
 create mode 100644 tests/unit_tests/utils/test_playwright_migration_working.py
 create mode 100644 tests/unit_tests/utils/test_screenshot_cache_fix.py
 create mode 100644 tests/unit_tests/utils/webdriver_test.py
 create mode 100644 tests/unit_tests/views/test_base_theme_helpers.py