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

(superset) branch fix-echart-save-issue updated (9fcf6d8134d -> f1b8940f5e7)

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

jli pushed a change to branch fix-echart-save-issue
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 9fcf6d8134d Merge branch 'master' into fix-echart-save-issue
     add f832f9b0d5e fix(Timeseries): dedup x axis labels (#38733)
     add 6bcc8bf2b25 chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /superset-frontend/cypress-base (#38862)
     add 38e82e40845 chore(deps): bump yaml from 1.10.2 to 1.10.3 in /superset-frontend/cypress-base (#38856)
     add a5d2324e216 fix(sqllab): invalid treeview folder expansion (#38897)
     add dbc25dc5557 fix(ci): resolve failed CodeCov upload for backend tests (#38885)
     add d1903afc694 fix(mcp): remove @parse_request decorator for cleaner tool schemas (#38918)
     add aa1a69555b3 fix(mcp): prevent GRID_ID injection into ROOT_ID on tabbed dashboards (#38890)
     add 89f7e5e7bae fix(mcp): validate dataset exists in generate_explore_link before generating URL (#38951)
     add 41d401a879e fix(select): ensure filter dropdown matches input field width (#38886)
     add d331a043a3a fix(mcp): prevent PendingRollbackError from poisoned sessions after SSL drops (#38934)
     add 15bab227bb0 feat(mcp): support saved metrics from datasets in chart generation (#38955)
     add 38fdfb4ca2e fix(mcp): prevent stale g.user from causing user impersonation across tool calls (#38747)
     add 2c9cf0bd558 fix(mcp): enforce MAX_PAGE_SIZE limit on list tools to prevent oversized responses (#38959)
     add e0a0a225426 fix(charts): add X Axis Number Format control for numeric X-axis columns (#38809)
     add f1cd1ae7100 fix(pivot-table): safely cast numeric strings to numbers for date formatting (#38953)
     add 11f2140c37e fix(AlteredSliceTag): not display undefined filter value for chart change record (#38883)
     add b49e8999748 chore(deps-dev): bump typescript-eslint from 8.57.2 to 8.58.0 in /docs (#38968)
     add b1474aaa60d docs: Fix misleading links in UPDATING.md (#38947)
     add ecbf396d4a0 chore(deps): bump path-to-regexp from 8.2.0 to 8.4.0 in /superset-websocket/utils/client-ws-app (#38935)
     add 944944c49e8 chore(deps): bump antd from 6.3.4 to 6.3.5 in /docs (#38967)
     add e6f1209318b chore(deps): bump aws-actions/amazon-ecr-login from 2.0.2 to 2.1.1 (#38944)
     add f0b20dc4459 fix(echarts): adapt y-axis ticks and padding for compact timeseries charts (#38673)
     add 42457208512 feat(mcp): add Big Number chart type support to MCP service (#38403)
     add c37a3ec292d fix(mcp): add TEMPORAL_RANGE filter for temporal x-axis in generate_chart (#38978)
     add daefedebcda fix(mcp): batch fix for execute_sql crashes, null timestamps, and deck.gl errors (#38977)
     add f6cd8066aba fix(bubble): Fix Bubble chart axis label rotation (#38917)
     add 7d26e33346f chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-websocket (#38861)
     add a741ddc03ce chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-embedded-sdk (#38864)
     add 3abcfb797a9 chore(deps-dev): bump open-cli from 8.0.0 to 9.0.0 in /superset-frontend (#38875)
     add 55aa36fef84 docs(developer): add celery to testing section for alerts&reports (#38888)
     add 53b1d1097cf fix(presto): Fix presto timestamp (#26467)
     add e4021fb6e7b fix(sec): resolve 50+ Dependabot alerts + bump `core-js` (#38939)
     add 08a4ad662aa chore(deps): bump brace-expansion from 1.1.11 to 1.1.13 in /superset-frontend/cypress-base (#38919)
     add 4036b784ed5 chore(deps): bump serialize-javascript and terser-webpack-plugin in /superset-embedded-sdk (#38920)
     add 6ea9f2ade94 chore(mcp): clarify saved metrics vs columns in MCP instructions (#38981)
     add f85efe61397 chore(build): remove eslint-plugin-file-progress usage + correct newlines for `npm run check:custom-rules` (#38938)
     add 4fae5758d5c chore(deps): bump baseline-browser-mapping from 2.10.11 to 2.10.12 in /docs (#38942)
     add d4d22909cb4 fix(dashboard): live CSS preview in PropertiesModal (#38960)
     add 8559786cc29 fix(mixed-timeseries): apply same axis formatting options as timeseries charts (#38979)
     add 1e2d0faa55d fix(dashboard): dashboard filters not inherited in charts in Safari sometimes due to race condition (#38851)
     add 64bd03bd703 chore(deps): bump caniuse-lite from 1.0.30001781 to 1.0.30001782 in /docs (#38941)
     add 872632aca05 chore(deps): bump fs-extra from 11.3.2 to 11.3.4 in /superset-frontend (#38437)
     add 7ce371080cf chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-websocket (#38462)
     add bd982696285 chore(deps): bump hot-shots from 14.1.1 to 14.2.0 in /superset-websocket (#38663)
     add 070be3de8b2 chore(deps-dev): bump webpack-bundle-analyzer from 5.2.0 to 5.3.0 in /superset-frontend (#38940)
     add 424f99efdfa chore(deps): bump anthropics/claude-code-action from 1.0.80 to 1.0.82 (#38946)
     add 51ec61c6758 chore(deps-dev): bump eslint from 10.0.2 to 10.0.3 in /superset-websocket (#38500)
     add 6b6e3803d13 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.56.1 to 8.57.0 in /superset-websocket (#38540)
     add a67ca052d6a chore(deps-dev): bump babel-loader from 10.0.0 to 10.1.0 in /superset-frontend (#38505)
     add 4ee391e0d7e docs(db): Update crate.py with new Homepage URL (#39002)
     add 8ed75787cb3 chore(deps-dev): bump jsdom from 28.1.0 to 29.0.1 in /superset-frontend (#38999)
     add d30c5b4eeed chore(deps): bump caniuse-lite from 1.0.30001782 to 1.0.30001784 in /docs (#38998)
     add 64c8d652e1e chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-websocket (#38995)
     add 94d8735d4b2 fix(query): pass datasource table to template processor for schema-aware Jinja rendering (#38984)
     add aa976793276 chore(deps): update @deck.gl/aggregation-layers requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38148)
     add 6adc816805d chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#38438)
     add 5f99d613a00 chore(deps): bump markdown-to-jsx from 9.7.6 to 9.7.8 in /superset-frontend (#38507)
     add 190f1a59c53 fix(mcp): fix dashboard owners Pydantic crash and preserve chart preview filters (#38987)
     add 4423134739e chore(deps): bump ioredis from 5.10.0 to 5.10.1 in /superset-websocket (#38993)
     add 1bb41a6e609 chore(deps): bump anthropics/claude-code-action from 1.0.82 to 1.0.83 (#39001)
     add 0bae05d4a93 fix(mcp): handle table chart raw mode in query builders and sanitize dashboard titles (#38990)
     add 38f0dc74f7c fix(dataset-editor): improve modal layout and fix Settings tab horizontal scroll (#39009)
     add 022342839aa fix(echarts): fix stacked horizontal bar chart clipping and duplicate x-axis labels (#39012)
     add ff3b8d8398e fix(ace-editor): fix cursor misalignment in markdown editor (#38928)
     add ec6640b1885 chore(deps-dev): update fs-extra requirement from ^11.3.3 to ^11.3.4 in /superset-frontend/packages/generator-superset (#38383)
     add 1d0e836a299 chore(deps): update @deck.gl/extensions requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38149)
     add 00eb86d03fb chore(deps-dev): bump @swc/plugin-emotion from 14.6.0 to 14.7.0 in /superset-frontend (#38333)
     add 7acb0c6d052 chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-frontend (#38510)
     add 1aac6c94741 chore(deps): update @deck.gl/react requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38150)
     add fdd08d3b701 chore(deps): bump ws from 8.19.0 to 8.20.0 in /superset-websocket (#38994)
     add 26f4a5acadb chore(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 (#38815)
     add 5cc286e383e chore(deps-dev): bump @playwright/test from 1.58.2 to 1.59.1 in /superset-frontend (#39057)
     add 59f92f979a5 chore(deps-dev): bump eslint-plugin-testing-library from 7.16.1 to 7.16.2 in /superset-frontend (#39056)
     add 985d7b6a792 chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-frontend (#39055)
     add 87f0540acd7 chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-frontend (#39049)
     add bdb0030cf87 chore(deps-dev): bump @swc/core from 1.15.18 to 1.15.21 in /superset-frontend (#39045)
     add 3802acb1e03 chore(deps-dev): bump jest-html-reporter from 4.3.0 to 4.4.0 in /superset-frontend (#39053)
     add c372f5980c1 chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend (#39043)
     add 25eea295f6c fix(reports): log exception traceback in _get_csv_data (#39069)
     add 135e0f80996 fix(mcp): Created dashboard should be in draft state by default (#39011)
     add f0fcdcc76a8 chore: package bumps (#39014)
     add 9e27d682f69 test(alerts/reports): close backend and frontend test coverage gaps (#38591)
     add 5662ecab154 chore(tests): promote Playwright experimental tests to stable (#38924)
     add 23ac4cb3a42 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39051)
     add 08d1ddd9fbd chore(deps-dev): bump mini-css-extract-plugin from 2.10.1 to 2.10.2 in /superset-frontend (#39054)
     add b4cb815ebfd chore(deps): bump anthropics/claude-code-action from 1.0.83 to 1.0.85 (#39037)
     add c51132f8242 chore(deps): bump aws-actions/amazon-ecr-login from 2.1.1 to 2.1.2 (#39042)
     add f2ff24d811f chore(deps): bump @ant-design/icons from 5.6.1 to 6.1.1 in /superset-frontend (#39050)
     add 0330fdeb00e chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-websocket (#39029)
     add 0452d1515a3 chore(deps-dev): bump @babel/preset-env from 7.29.0 to 7.29.2 in /superset-frontend (#39028)
     add ace5f9d8c20 chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend/cypress-base (#39027)
     add a9ced5c8815 chore(deps): bump lodash-es from 4.17.23 to 4.18.1 in /superset-frontend (#39026)
     add 7e0c634c3a7 chore(deps-dev): bump typescript-eslint from 8.56.1 to 8.58.0 in /superset-websocket (#38997)
     add 3239f058c81 chore(deps-dev): bump baseline-browser-mapping from 2.10.10 to 2.10.13 in /superset-frontend (#39044)
     add c5bce756f0c chore(deps): bump yeoman-generator from 7.5.1 to 8.1.2 in /superset-frontend (#38671)
     add 851bbeea485 fix(mcp): improve execute_sql response-too-large error to suggest limit parameter (#39003)
     add c7d175b8420 fix(dashboard): remove opacity on filter dropdown (#39074)
     add b3a402d9365 fix(mcp): handle stale SSL connections, heatmap duplicate labels, and session rollback (#39015)
     add 613e6d6cde4 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39093)
     add e424b550362 chore(deps-dev): bump babel-loader from 10.1.0 to 10.1.1 in /superset-frontend (#39090)
     add 7a64483e6bf chore(deps-dev): bump @swc/plugin-emotion from 14.7.0 to 14.8.0 in /superset-frontend (#39088)
     add 6b029997d92 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39087)
     add 8195574345e chore(deps): bump anthropics/claude-code-action from 1.0.85 to 1.0.87 (#39083)
     add e5ae626433f chore(deps): bump dawidd6/action-download-artifact from 19 to 20 (#39081)
     add d796543f5a0 chore(deps): update @deck.gl/react requirement from ~9.2.9 to ~9.2.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#39033)
     add 12eb40db011 fix(SQL Lab): handle columns without names (#38986)
     add a3dfbd7bffa fix(deps): revert simple-zstd from 2.1.0 back to 1.4.2 (#39139)
     add a62be684a05 feat(mcp): add database connection listing and info tools (#39111)
     add 7c79b9ab618 fix(migrations): check pre-existing foreign keys on create util (#39099)
     add e56f8cc4fb1 fix(security_manager): custom auth_view issue (#39098)
     add 7380a59ab8a fix(mcp): fix form_data null, dataset URL, ASCII preview, and chart rename (#39109)
     add 92747246fc7 fix(mcp): remove JWT ValueError g.user fallback in auth layer (#39106)
     add 83ad1eca26b fix(mcp): add dynamic response truncation for oversized info tool responses (#39107)
     add 7be2acb2f3c fix(mcp): add description and certification fields to default list tool columns (#39017)
     add b05764d070d feat: Add currencies controls in country map (#39016)
     add bf9aff19b54 fix(mcp): compress chart config schemas to reduce search_tools token usage (#39018)
     add 027de6339ba chore(deps-dev): bump jsdom from 29.0.1 to 29.0.2 in /superset-frontend (#39155)
     add 8e811de5643 chore(deps): bump hot-shots from 14.2.0 to 14.3.1 in /superset-websocket (#39147)
     add 5f9fc31ae23 feat(mcp): add get_chart_type_schema tool for on-demand schema discovery (#39142)
     add 5ccfc530b26 chore(deps): bump geolib from 3.3.4 to 3.3.14 in /superset-frontend (#39092)
     add 3db92021c76 chore(deps-dev): bump eslint from 10.1.0 to 10.2.0 in /superset-websocket (#39123)
     add 97508811933 chore(deps-dev): bump @types/node from 25.5.0 to 25.5.2 in /superset-websocket (#39125)
     add 96fa2cbd2b9 chore(deps): update @deck.gl/aggregation-layers requirement from ~9.2.9 to ~9.2.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#39126)
     add d159edc9a69 chore(deps-dev): bump @swc/core from 1.15.21 to 1.15.24 in /superset-frontend (#39127)
     add a626d064156 chore(deps): bump caniuse-lite from 1.0.30001784 to 1.0.30001786 in /docs (#39128)
     add 7e452df1cc6 chore(deps): bump anthropics/claude-code-action from 1.0.87 to 1.0.89 (#39132)
     add 2bd41316367 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39134)
     add 5106afb07f3 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39145)
     add 6ba90968701 fix(explore): handle boolean false values correctly in control rendering (#39172)
     add 4f695e1b4d2 fix(filterReports): _generate_native_filter() crashes on null/empty filterValues (#38954)
     add 3a3a6536b7e fix(explore): Unnecessary scroll bars appearing on charts in Explore (#39160)
     add 587fe4af632 fix(reports): propagate PlaywrightTimeout so execution transitions to ERROR state (#39176)
     add 140f0001f21 fix(sqllab): demote "Save as new" button from primary to secondary (#39179)
     add a64609f4f39 fix(explore): add left-indentation to control panel hierarchy (#39177)
     add 36de05fe366 fix(plugin-chart-handlebars): improve CSS sanitization tooltip and hide when not needed (#39180)
     add ed659958f31 fix(sqllab): use monospace font for SQL in database error messages (#39181)
     add 62302ad8c3a perf(webpack): reduce watch mode memory usage and fix docker-compose-light env (#39183)
     add 4c2dd634643 fix(sqllab): Update style for code viewer container (#39075)
     add 2e80f2a473a fix: add template_processor so Jinja gets rendered before SQLGlot parse (#39207)
     add d5017e60c34 fix(sqllab): fix table navigator schema list, pin/unpin UX, copy actions, icons, and toolbar colors (#39173)
     add b8b2bdedf9b fix(ace-editor): style bracket matching to blend with theme (#39182)
     add 63cceb6a799 refactor(plugins): replace react-icons with antd icons, remove 83MB dependency (#39184)
     add d63308ca372 fix(frontend): fix loading spinner positioning in Save modal and filters panel (#39205)
     add 4e0890ee1fb feat(api): Add filter_dashboard_id parameter to apply dashboard filters to chart/data endpoint (#38638)
     add 1bde6f3bfda fix(mcp): resolve null fields in list_datasets, list_databases, and save_sql_query (#39206)
     add bad5a35fce0 fix(explore): constrain Edit Dataset modal height to prevent footer cutoff (#39211)
     add d915e4f3ff7 fix(tags): fix Bulk tag modal dropdown clipping and stale tag cache (#39210)
     add c49641538d5 feat: modernize deck.gl and map plugins with MapLibre/Mapbox dual renderer (#38035)
     add 5263abdc60e fix(AlertsReports): untie filters from alerts reports tabs flag (#38722)
     add 6649f35a0d6 fix(reports): escape SQL LIKE wildcards in find_by_extra_metadata (#38738)
     add 5815665cc62 feat: role/user CRUD events and login/logout tracking in the action log (#39121)
     add 68067d7f44f fix(mcp): handle OAuth-authenticated databases in execute_sql (#39166)
     add c7955a38ef7 fix: Drill to Detail for Embedded (#39214)
     add f49310b8ff8 fix(sql-lab): apply access check in SqlExecutionResultsCommand (#38952)
     add e17cf3c8086 fix(mcp): wire up compact schema serialization for search_tools results (#39229)
     add 680cef0ee07 fix(mcp): strip json_metadata and position_json from get_dashboard_info response (#39101)
     add e39dd1afce3 fix: implement native browser fullscreen for dashboard charts (#38819)
     add 8bcc90c7664 fix(dashboard): Vertical filter bar gradient is extending past the filter bar area (#39204)
     add aba7e6dae46 fix(table): cross-filtering breaks after renaming column labels via Custom SQL (#38858)
     add b1d69f5b398 docs(api): add Theme API endpoints to OpenAPI spec (#37943)
     add f632d2474b3 chore(deps-dev): bump webpack from 5.105.4 to 5.106.0 in /superset-frontend (#39268)
     add 4583ef93a47 chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-frontend (#39263)
     add 1ad76e847e7 chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-websocket (#39260)
     add b65396ccd4e chore(deps-dev): bump @types/node from 25.5.2 to 25.6.0 in /superset-websocket (#39262)
     add f1cf274751d chore(deps): bump axios from 1.13.5 to 1.15.0 in /docs (#39259)
     add 2ff50667e77 chore(deps): bump axios from 1.13.5 to 1.15.0 in /superset-frontend (#39258)
     add 69c8eef78e9 fix(ag-grid): jpeg export of ag-grid tables (#38781)
     add e9911fbac4a fix(echarts): prevent tooltip crash during dashboard auto-refresh (#39277)
     add 450701ecec3 fix(SqlLab): improve SQL diff modal — responsive width, padding, tabs, and copy button (#39246)
     add 0aa8cace1b6 fix(dataset-editor): fix SQL expression editor extra spaces and height expansion (#39248)
     add 98146251c4f fix(tests): improve ShareMenuItems test isolation to fix intermittent suite failure (#39280)
     add 7a243d329ef fix(dashboard): allow filter list to scroll in filter config modal sidebar (#39203)
     add eea3557f612 fix(dashboard): hide "Filters out of scope" section when empty (#39201)
     add de40b58e105 fix(tests): fix async teardown leak in FiltersConfigModal.test.tsx (#39281)
     add fa1f12a0b5f fix(explore): replace TableView with virtualized GridTable, add row limit controls, restore sample filters (#39212)
     add de98fdc37ba test(heatmap): restore buildQuery coverage on master (#39329)
     add c971ea3ec64 fix(heatmap): skip orderby for value-based axis sorts (#39290)
     add da371217ef6 fix: revert and restore server-side sorting for value axis sorts (#39331)
     add 1462ac92823 fix(dashboard): Ensure screenshot downloads always generate fresh images/pdfs (#38880)
     add 0f417f00408 fix(dashboard): preserve dynamic group by column order (#39333)
     add 66a9e2e16ed fix(explore): Prevent error toast when navigating away from Explore page (#39065)
     add 5138aa2c114 fix(select): select all button cutoff (#39005)
     add c2a35e2eeae fix(popup): Dropdown popup width doesn't match input width when tags collapse in oneLine mode (#39136)
     add 499e27ea54e fix(native-filter): infinite filter loading by deps (#39175)
     add f836c3eccd5 chore(deps-dev): bump typescript-eslint from 8.58.0 to 8.58.2 in /superset-websocket (#39337)
     add fa97d0357f3 chore(deps-dev): bump globals from 17.4.0 to 17.5.0 in /superset-websocket (#39310)
     add 6287a07912d chore(deps): bump anthropics/claude-code-action from 1.0.89 to 1.0.93 (#39318)
     add 002d8ad1e41 chore(deps-dev): bump @types/node from 25.5.0 to 25.6.0 in /superset-frontend (#39265)
     add 3e25f02da98 test(sqllab): migrate Cypress E2E tests to Playwright (#39071)
     add 86575e129b7 fix(native-filters): prevent infinite recursion in filter scope tree traversal (#39355)
     add ffcc6e8b635 fix(MCP): fix MCP logs (#39159)
     add 411f7698964 feat(filters): Adding empty state for filter modal (#38909)
     add b76080e2917 feat(security): add granular export controls - Phase 2 + 3 (#38581)
     add 4b88fc57b46 chore(deps-dev): bump prettier from 3.8.2 to 3.8.3 in /superset-websocket (#39358)
     add 8d9b5bd479a chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docs (#39352)
     add ddcb9be9a77 fix(sqllab): show schema refresh icon only on hover (#39367)
     add 84f7b4a9731 fix: `do_ping` takes a connection, not engine (#39013)
     add 724f1484b92 chore(mcp): update CLAUDE.md to reflect current codebase patterns (#39348)
     add b2bd2329bc9 chore(deps-dev): bump wait-on from 9.0.4 to 9.0.5 in /superset-frontend (#39322)
     add a6156676c82 chore(deps): bump fuse.js from 7.1.0 to 7.3.0 in /superset-frontend (#39146)
     add 5661fc91285 chore(deps): bump anthropics/claude-code-action from 1.0.93 to 1.0.96 + temporarily stop Dependabot PR for claude-code-action due to high release frequency but low usage(#39360)
     add 0d91f5e9823 chore(deps): bump markdown-to-jsx from 9.7.13 to 9.7.15 in /superset-frontend (#39217)
     add 18d6feb4994 feat(mcp): add create_virtual_dataset tool to save SQL queries as datasets (#39279)
     add 44e77fdf2b7 fix(explore): dispatch onChange immediately on NumberControl stepper arrow clicks (#39220)
     add c2d96e0dce1 fix(table): fix cross-filter not clearing on second click in Interactive Table (#39253)
     add c3a0f2749b5 fix(dashboard): apply dynamic groupby display controls to scoped charts (#39356)
     add 8471e823426 fix(css-templates): add missing height to CSS editor in CssTemplateModal (#39221)
     add b3e88db87e4 fix(table): use column label instead of SQL expression for orderby in downloads (#39332)
     add 998b9e387b4 fix(ListView): empty state not filling available width (#39387)
     add b11d4f3ef09 fix(i18n): typo in fr language (#36982)
     add 388596e4fe1 chore(deps): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /docs (#39148)
     add 45d5501aa7f fix(documentation): FAQ grammar for SQL query wording (#38923)
     add c1a1f2e7e77 docs: add Hifadih Business & Technology to In the Wild (#38824)
     add eaccb2e471b fix(EmptyState): prevent SVG cropping in empty state images (#37287)
     add e0dcb2908db chore(deps): bump swagger-ui-react from 5.32.1 to 5.32.4 in /docs (#39377)
     add e542e9f8403 chore(deps): bump actions/cache from 5.0.4 to 5.0.5 (#39368)
     add f4a6ea0fde3 chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#39267)
     add e11a50bedfc chore(deps): bump @docusaurus/faster from 3.9.2 to 3.10.0 in /docs (#39195)
     add 61c45e3dd87 chore(deps-dev): bump @docusaurus/module-type-aliases from 3.9.2 to 3.10.0 in /docs (#39194)
     add 76a209663d5 chore(deps-dev): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /superset-frontend (#39150)
     add 05227e8a804 chore(deps): bump caniuse-lite from 1.0.30001786 to 1.0.30001788 in /docs (#39376)
     add 84af6c9f297 chore(deps-dev): bump @docusaurus/tsconfig from 3.9.2 to 3.10.0 in /docs (#39189)
     add 838ee870d02 fix(mcp): update instructions to use correct request wrapper and identifier params (#39392)
     add e7b9fb277eb fix(mcp): always push fresh app context per tool call to prevent g.user race (#39385)
     add f1b8940f5e7 Merge branch 'master' into fix-echart-save-issue

No new revisions were added by this update.

Summary of changes:
 .github/dependabot.yml                             |    4 +
 .github/workflows/check_db_migration_confict.yml   |    2 +-
 .github/workflows/claude.yml                       |    4 +-
 .github/workflows/ephemeral-env-pr-close.yml       |    4 +-
 .github/workflows/ephemeral-env.yml                |   16 +-
 .github/workflows/no-hold-label.yml                |    2 +-
 .github/workflows/pre-commit.yml                   |    2 +-
 .github/workflows/release.yml                      |    4 +-
 .github/workflows/showtime-trigger.yml             |    2 +-
 .github/workflows/superset-docs-deploy.yml         |    4 +-
 .github/workflows/superset-docs-verify.yml         |    2 +-
 .github/workflows/superset-helm-lint.yml           |    2 +-
 .github/workflows/superset-helm-release.yml        |    4 +-
 .../workflows/superset-python-integrationtest.yml  |   15 +-
 .github/workflows/superset-python-presto-hive.yml  |   10 +-
 .github/workflows/superset-python-unittest.yml     |    5 +-
 .github/workflows/supersetbot.yml                  |    2 +-
 RESOURCES/INTHEWILD.yaml                           |    5 +
 UPDATING.md                                        |   18 +-
 docker-compose-light.yml                           |    9 +
 docker/docker-bootstrap.sh                         |    2 +-
 docs/developer_docs/api.mdx                        |   34 +-
 docs/developer_docs/testing/backend-testing.md     |  103 +
 docs/docs/faq.mdx                                  |    2 +-
 docs/docs/security/granular-export-controls.mdx    |   78 +
 docs/package.json                                  |   16 +-
 docs/scripts/fix-openapi-spec.py                   |   25 +
 docs/static/img/logos/hifadih.png                  |  Bin 0 -> 18383 bytes
 docs/static/resources/openapi.json                 | 8663 ++++++++++++++------
 docs/versioned_docs/version-6.0.0/faq.mdx          |    2 +-
 docs/yarn.lock                                     | 1121 +--
 pyproject.toml                                     |    3 +-
 requirements/base.txt                              |   14 +-
 requirements/development.txt                       |   14 +-
 superset-embedded-sdk/package-lock.json            |   88 +-
 superset-frontend/.eslintrc.js                     |    1 -
 .../cypress/e2e/chart_list/list.test.ts            |  171 -
 .../cypress/e2e/dataset/dataset_list.test.ts       |   42 -
 .../cypress-base/cypress/e2e/explore/utils.ts      |   33 +-
 .../e2e/sqllab/_skip.sourcePanel.index.test.js     |   73 -
 .../cypress-base/cypress/e2e/sqllab/query.test.ts  |  192 -
 .../cypress/e2e/sqllab/sqllab.helper.js            |   41 -
 .../cypress-base/cypress/e2e/sqllab/tabs.test.ts   |  113 -
 .../cypress-base/cypress/utils/index.ts            |   22 -
 .../cypress-base/cypress/utils/urls.ts             |    5 -
 superset-frontend/cypress-base/package-lock.json   |   48 +-
 superset-frontend/package-lock.json                | 3343 ++++----
 superset-frontend/package.json                     |   51 +-
 .../packages/generator-superset/package.json       |    6 +-
 .../packages/superset-core/package.json            |    4 +-
 .../superset-ui-chart-controls/package.json        |    4 +-
 .../src/components/ControlSubSectionHeader.tsx     |    4 +
 .../packages/superset-ui-core/package.json         |   26 +-
 .../superset-ui-core/src/chart/types/VizType.ts    |    1 +
 .../src/components/AsyncAceEditor/index.tsx        |   15 +
 .../src/components/AsyncEsmComponent/index.tsx     |   22 +-
 .../CodeSyntaxHighlighter/index.test.tsx           |   42 +-
 .../src/components/CodeSyntaxHighlighter/index.tsx |  107 +-
 .../components/EmptyState/svgs/empty-dashboard.svg |  Bin 1631 -> 3078 bytes
 .../src/components/EmptyState/svgs/empty.svg       |  Bin 1944 -> 2690 bytes
 .../src/components/EmptyState/svgs/star-circle.svg |  Bin 2051 -> 2661 bytes
 .../src/components/Icons/AntdEnhanced.tsx          |    2 +
 .../src/components/Select/Select.test.tsx          |  106 +-
 .../src/components/Select/Select.tsx               |   29 +-
 .../src/components/Select/styles.tsx               |   10 +-
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |   45 +-
 .../src/components/ThemedAgGridReact/index.tsx     |   50 +-
 .../superset-ui-core/src/components/index.ts       |    1 +
 .../superset-ui-core}/src/utils/copy.ts            |    5 +-
 .../packages/superset-ui-core/src/utils/index.ts   |    1 +
 superset-frontend/playwright.config.ts             |   17 +
 .../playwright/components/core/AgGrid.ts           |   85 +
 .../components/core/EditableTabs.ts}               |   49 +-
 .../playwright/components/core/Modal.ts            |    4 +-
 .../components/core/Popover.ts}                    |   58 +-
 .../playwright/components/core/Select.ts           |    3 +-
 .../playwright/components/core/Tabs.ts             |   55 +-
 .../playwright/components/core/index.ts            |    3 +
 .../components/modals/EditDatasetModal.ts          |    7 +-
 .../components/modals/SaveDatasetModal.ts}         |   33 +-
 .../components/modals/SaveQueryModal.ts}           |   30 +-
 .../playwright/components/modals/index.ts          |    5 +
 .../playwright/helpers/api/assertions.ts           |   16 +
 .../helpers/api/savedQuery.ts}                     |   38 +-
 .../playwright/helpers/fixtures/testAssets.ts      |   25 +-
 superset-frontend/playwright/pages/AuthPage.ts     |    4 +-
 .../playwright/pages/ChartListPage.ts              |   39 +-
 superset-frontend/playwright/pages/SqlLabPage.ts   |  371 +
 .../playwright/tests/auth/login.spec.ts            |   37 +-
 .../{experimental => }/chart/chart-list.spec.ts    |   73 +-
 .../{experimental => }/chart/chart-test-helpers.ts |    6 +-
 .../dashboard/dashboard-list.spec.ts               |   21 +-
 .../dashboard/dashboard-test-helpers.ts            |    4 +-
 .../{experimental => }/dashboard/export.spec.ts    |    6 +-
 .../{experimental => }/dashboard/theme.spec.ts     |   12 +-
 .../dataset/create-dataset.spec.ts                 |   20 +-
 .../dataset/dataset-list.spec.ts                   |   57 +-
 .../dataset/dataset-test-helpers.ts                |    4 +-
 .../playwright/tests/sqllab/sqllab.spec.ts         |  315 +
 superset-frontend/playwright/utils/constants.ts    |   16 +
 superset-frontend/playwright/utils/urls.ts         |    1 +
 .../src/CountryMap.ts                              |    9 +-
 .../src/controlPanel.ts                            |    1 +
 .../src/transformProps.ts                          |   28 +-
 .../test/CountryMap.test.tsx                       |    3 +
 .../legacy-plugin-chart-map-box/CHANGELOG.md       |   55 -
 .../plugins/legacy-plugin-chart-map-box/README.md  |   52 -
 .../legacy-plugin-chart-map-box/src/MapBox.tsx     |  243 -
 .../src/ScatterPlotGlowOverlay.tsx                 |  425 -
 .../src/stories/MapBox.stories.tsx                 |  107 -
 .../src/transformProps.ts                          |  162 -
 .../test/MapBox.test.tsx                           |  381 -
 .../legacy-plugin-chart-map-box/test/tsconfig.json |    9 -
 .../test/utils/roundDecimal.test.ts                |   28 -
 .../legacy-plugin-chart-map-box/tsconfig.json      |   25 -
 .../types/external.d.ts                            |  101 -
 .../legacy-preset-chart-deckgl/CHANGELOG.md        |   89 -
 .../plugins/legacy-preset-chart-deckgl/README.md   |   57 -
 .../test/utils/colors.test.ts                      |   25 -
 .../test/utils/getPointsFromPolygon.test.ts        |   56 -
 .../legacy-preset-chart-deckgl/types/external.d.ts |   71 -
 .../plugins/legacy-preset-chart-nvd3/package.json  |    2 +-
 .../plugin-chart-ag-grid-table/package.json        |    4 +-
 .../src/AgGridTable/index.tsx                      |   41 +-
 .../src/AgGridTableChart.tsx                       |   89 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |   11 +-
 .../src/utils/getCellClass.ts                      |    4 -
 .../src/utils/getCrossFilterDataMask.ts            |   49 +
 .../src/utils/reconcileColumnState.test.ts         |   86 +
 .../src/utils/reconcileColumnState.ts              |   83 +
 .../test/buildQuery.test.ts                        |   21 +-
 .../plugins/plugin-chart-cartodiagram/package.json |    6 +-
 .../plugins/plugin-chart-echarts/package.json      |    2 +-
 .../src/Bubble/transformProps.ts                   |    6 +-
 .../src/MixedTimeseries/transformProps.ts          |   31 +-
 .../src/Timeseries/Area/controlPanel.tsx           |   27 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |   34 +-
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |   27 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |   60 +-
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |   27 +
 .../src/Timeseries/Step/controlPanel.tsx           |   27 +
 .../src/Timeseries/transformProps.ts               |  112 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |   18 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    5 +
 .../plugin-chart-echarts/src/utils/tooltip.ts      |    3 +-
 .../test/Heatmap/buildQuery.test.ts                |   95 +-
 .../test/Timeseries/Area/controlPanel.test.ts      |  115 +
 .../test/Timeseries/Bar/controlPanel.test.ts       |   74 +
 .../test/Timeseries/Bar/transformProps.test.ts     |   92 +
 .../test/Timeseries/Line/controlPanel.test.ts      |  115 +
 .../test/Timeseries/Scatter/controlPanel.test.ts   |   54 +-
 .../Timeseries/SmoothLine/controlPanel.test.ts     |  101 +
 .../test/Timeseries/Step/controlPanel.test.ts      |  115 +
 .../test/Timeseries/transformProps.test.ts         |  136 +
 .../plugins/plugin-chart-handlebars/package.json   |    2 +-
 .../src/plugin/controls/style.tsx                  |   19 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    5 +-
 .../src/PivotTableChart.tsx                        |   48 +-
 .../src/react-pivottable/TableRenderers.tsx        |   24 +-
 .../test/react-pivottable/tableRenders.test.tsx    |   96 +
 .../package.json                                   |   19 +-
 .../src/MapLibre.css}                              |    2 +-
 .../src/MapLibre.tsx                               |  216 +
 .../src/buildQuery.ts                              |   90 +
 .../src/components/CanvasOverlay.tsx               |  121 +
 .../src/components/ScatterPlotOverlay.tsx          |  400 +
 .../src/controlPanel.ts                            |  126 +-
 .../src/images/MapBox-dark.jpg                     |  Bin
 .../src/images/MapBox.jpg                          |  Bin
 .../src/images/MapBox2-dark.jpg                    |  Bin
 .../src/images/MapBox2.jpg                         |  Bin
 .../src/images/thumbnail-dark.png                  |  Bin
 .../src/images/thumbnail.png                       |  Bin
 .../src/images/thumbnailLarge.png                  |  Bin
 .../src/index.ts                                   |   11 +-
 .../src/stories/PointClusterMap.stories.tsx        |  176 +
 .../src/stories/data.ts                            |    0
 .../src/transformProps.ts                          |  292 +
 .../src/utils/geo.ts                               |    0
 .../src/utils/luminanceFromRGB.ts                  |    0
 .../src/utils/mapbox.ts}                           |   18 +-
 .../src/utils/roundDecimal.ts                      |    0
 .../test/MapLibre.test.tsx                         |  262 +
 .../test/ScatterPlotOverlay.test.tsx}              |   88 +-
 .../test/controlPanel.test.ts                      |    0
 .../test/transformProps.test.ts                    |   88 +-
 .../tsconfig.json                                  |    5 -
 .../types/external.d.ts                            |    2 +-
 .../plugins/plugin-chart-table/package.json        |    5 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   41 +-
 .../plugin-chart-table/src/transformProps.ts       |   16 +
 .../plugins/plugin-chart-table/src/types.ts        |    4 +
 .../plugin-chart-table/test/TableChart.test.tsx    |  334 +
 .../plugins/plugin-chart-word-cloud/package.json   |    2 +-
 .../package.json                                   |   33 +-
 .../src/CategoricalDeckGLContainer.tsx             |   17 +-
 .../src/DeckGLContainer.tsx                        |  138 +-
 .../src/Multi/Multi.test.tsx                       |    2 +-
 .../src/Multi/Multi.tsx                            |   14 +-
 .../src/Multi/controlPanel.test.ts                 |    0
 .../src/Multi/controlPanel.ts                      |   10 +-
 .../src/Multi/images/example-dark.png              |  Bin
 .../src/Multi/images/example.png                   |  Bin
 .../src/Multi/images/thumbnail-dark.png            |  Bin
 .../src/Multi/images/thumbnail.png                 |  Bin
 .../src/Multi/images/thumbnailLarge.png            |  Bin
 .../src/Multi/index.ts                             |    0
 .../src/TooltipRow.tsx                             |    0
 .../src/components/DeckGLOverlayMapLibre.tsx}      |   18 +-
 .../src/components/DeckGLOverlayMapbox.tsx}        |   18 +-
 .../src/components/Legend.tsx                      |   10 +-
 .../src/components/Tooltip.tsx                     |    8 +-
 .../src/factory.tsx                                |   15 +-
 .../src/index.ts                                   |    0
 .../src/layers/Arc/Arc.tsx                         |    0
 .../src/layers/Arc/buildQuery.ts                   |    0
 .../src/layers/Arc/controlPanel.ts                 |    9 +-
 .../src/layers/Arc/images/example-dark.png         |  Bin
 .../src/layers/Arc/images/example.png              |  Bin
 .../src/layers/Arc/images/thumbnail-dark.png       |  Bin
 .../src/layers/Arc/images/thumbnail.png            |  Bin
 .../src/layers/Arc/images/thumbnailLarge.png       |  Bin
 .../src/layers/Arc/index.ts                        |    0
 .../src/layers/Arc/stories/Arc.stories.tsx         |    7 +-
 .../src/layers/Arc/stories/payload.ts              |    0
 .../src/layers/Arc/transformProps.ts               |    0
 .../src/layers/Contour/Contour.tsx                 |    0
 .../src/layers/Contour/buildQuery.ts               |    0
 .../src/layers/Contour/controlPanel.ts             |    4 +
 .../src/layers/Contour/getSafeCellSize.test.ts     |    0
 .../src/layers/Contour/getSafeCellSize.ts          |    0
 .../src/layers/Contour/images/example-dark.png     |  Bin
 .../src/layers/Contour/images/example.png          |  Bin
 .../src/layers/Contour/images/thumbnail-dark.png   |  Bin
 .../src/layers/Contour/images/thumbnail.png        |  Bin
 .../src/layers/Contour/images/thumbnailLarge.png   |  Bin
 .../src/layers/Contour/index.ts                    |    0
 .../src/layers/Contour/transformProps.ts           |    0
 .../src/layers/Geojson/Geojson.test.ts             |    5 +-
 .../src/layers/Geojson/Geojson.tsx                 |   16 +-
 .../src/layers/Geojson/buildQuery.ts               |   86 +
 .../src/layers/Geojson/controlPanel.ts             |    9 +-
 .../src/layers/Geojson/images/example-dark.png     |  Bin
 .../src/layers/Geojson/images/example.png          |  Bin
 .../src/layers/Geojson/images/thumbnail-dark.png   |  Bin
 .../src/layers/Geojson/images/thumbnail.png        |  Bin
 .../src/layers/Geojson/images/thumbnailLarge.png   |  Bin
 .../src/layers/Geojson/index.ts                    |    5 +-
 .../src/layers/Geojson/transformProps.ts           |   50 +
 .../src/layers/Grid/Grid.tsx                       |    0
 .../src/layers/Grid/buildQuery.ts                  |    0
 .../src/layers/Grid/controlPanel.ts                |    4 +
 .../src/layers/Grid/images/example-dark.png        |  Bin
 .../src/layers/Grid/images/example.png             |  Bin
 .../src/layers/Grid/images/thumbnail-dark.png      |  Bin
 .../src/layers/Grid/images/thumbnail.png           |  Bin
 .../src/layers/Grid/images/thumbnailLarge.png      |  Bin
 .../src/layers/Grid/index.ts                       |    0
 .../src/layers/Grid/stories/Grid.stories.tsx       |    7 +-
 .../src/layers/Grid/stories/payload.ts             |    0
 .../src/layers/Grid/transformProps.ts              |    0
 .../src/layers/Heatmap/Heatmap.tsx                 |    8 +-
 .../src/layers/Heatmap/buildQuery.ts               |    0
 .../src/layers/Heatmap/controlPanel.ts             |    4 +
 .../src/layers/Heatmap/images/example-dark.png     |  Bin
 .../src/layers/Heatmap/images/example.png          |  Bin
 .../src/layers/Heatmap/images/thumbnail-dark.png   |  Bin
 .../src/layers/Heatmap/images/thumbnail.png        |  Bin
 .../src/layers/Heatmap/images/thumbnailLarge.png   |  Bin
 .../src/layers/Heatmap/index.ts                    |    0
 .../src/layers/Heatmap/transformProps.ts           |    0
 .../src/layers/Hex/Hex.tsx                         |    0
 .../src/layers/Hex/buildQuery.ts                   |    0
 .../src/layers/Hex/controlPanel.ts                 |    4 +
 .../src/layers/Hex/images/example-dark.png         |  Bin
 .../src/layers/Hex/images/example.png              |  Bin
 .../src/layers/Hex/images/thumbnail-dark.png       |  Bin
 .../src/layers/Hex/images/thumbnail.png            |  Bin
 .../src/layers/Hex/images/thumbnailLarge.png       |  Bin
 .../src/layers/Hex/index.ts                        |    0
 .../src/layers/Hex/stories/Hex.stories.tsx         |    7 +-
 .../src/layers/Hex/stories/payload.ts              |    0
 .../src/layers/Hex/transformProps.ts               |    0
 .../src/layers/Path/Path.test.tsx                  |    0
 .../src/layers/Path/Path.tsx                       |    2 +-
 .../src/layers/Path/buildQuery.ts                  |    0
 .../src/layers/Path/controlPanel.ts                |    4 +
 .../src/layers/Path/images/example-dark.png        |  Bin
 .../src/layers/Path/images/example.png             |  Bin
 .../src/layers/Path/images/thumbnail-dark.png      |  Bin
 .../src/layers/Path/images/thumbnail.png           |  Bin
 .../src/layers/Path/images/thumbnailLarge.png      |  Bin
 .../src/layers/Path/index.ts                       |    0
 .../src/layers/Path/stories/Path.stories.tsx       |    7 +-
 .../src/layers/Path/stories/payload.ts             |    0
 .../src/layers/Path/transformProps.ts              |    0
 .../src/layers/Polygon/Polygon.test.tsx            |    2 +-
 .../src/layers/Polygon/Polygon.tsx                 |    3 +-
 .../src/layers/Polygon/buildQuery.test.ts          |    0
 .../src/layers/Polygon/buildQuery.ts               |    0
 .../src/layers/Polygon/controlPanel.ts             |   10 +-
 .../src/layers/Polygon/images/example-dark.png     |  Bin
 .../src/layers/Polygon/images/example.png          |  Bin
 .../src/layers/Polygon/images/thumbnail-dark.png   |  Bin
 .../src/layers/Polygon/images/thumbnail.png        |  Bin
 .../src/layers/Polygon/images/thumbnailLarge.png   |  Bin
 .../src/layers/Polygon/index.ts                    |    0
 .../src/layers/Polygon/stories/Polygon.stories.tsx |   10 +-
 .../src/layers/Polygon/stories/geojsonPayload.ts   |    0
 .../src/layers/Polygon/stories/payload.ts          |    0
 .../src/layers/Polygon/transformProps.test.ts      |    0
 .../src/layers/Polygon/transformProps.ts           |    0
 .../src/layers/Scatter/Scatter.tsx                 |    0
 .../src/layers/Scatter/buildQuery.test.ts          |    0
 .../src/layers/Scatter/buildQuery.ts               |    0
 .../src/layers/Scatter/controlPanel.ts             |    9 +-
 .../src/layers/Scatter/images/example-dark.png     |  Bin
 .../src/layers/Scatter/images/example.png          |  Bin
 .../src/layers/Scatter/images/thumbnail-dark.png   |  Bin
 .../src/layers/Scatter/images/thumbnail.png        |  Bin
 .../src/layers/Scatter/images/thumbnailLarge.png   |  Bin
 .../src/layers/Scatter/index.ts                    |    0
 .../src/layers/Scatter/stories/Scatter.stories.tsx |    7 +-
 .../src/layers/Scatter/stories/payload.ts          |    0
 .../src/layers/Scatter/transformProps.test.ts      |    0
 .../src/layers/Scatter/transformProps.ts           |    0
 .../src/layers/Screengrid/Screengrid.tsx           |    9 +-
 .../src/layers/Screengrid/buildQuery.ts            |    0
 .../src/layers/Screengrid/controlPanel.ts          |    9 +-
 .../src/layers/Screengrid/images/example-dark.png  |  Bin
 .../src/layers/Screengrid/images/example.png       |  Bin
 .../layers/Screengrid/images/thumbnail-dark.png    |  Bin
 .../src/layers/Screengrid/images/thumbnail.png     |  Bin
 .../layers/Screengrid/images/thumbnailLarge.png    |  Bin
 .../src/layers/Screengrid/index.ts                 |    0
 .../Screengrid/stories/Screengrid.stories.tsx      |    8 +-
 .../src/layers/Screengrid/stories/payload.ts       |    0
 .../src/layers/Screengrid/transformProps.ts        |    0
 .../src/layers/buildQueryUtils.ts                  |    0
 .../src/layers/common.test.ts                      |    0
 .../src/layers/common.tsx                          |    0
 .../src/layers/index.ts                            |    0
 .../src/layers/spatialUtils.test.ts                |    2 +-
 .../src/layers/spatialUtils.ts                     |   26 +-
 .../src/layers/transformUtils.test.ts              |    0
 .../src/layers/transformUtils.ts                   |    0
 .../src/layers/utils/metricUtils.test.ts           |    0
 .../src/layers/utils/metricUtils.ts                |    0
 .../src/preset.ts                                  |    0
 .../src/transformProps.ts                          |    0
 .../src/types.ts                                   |    0
 .../src/utilities/HandlebarsRenderer.tsx           |    0
 .../src/utilities/Shared_DeckGL.tsx                |   71 +-
 .../src/utilities/TooltipTemplateControl.tsx       |    0
 .../src/utilities/TooltipTemplateEditor.tsx        |    0
 .../src/utilities/controlRegistry.tsx              |    0
 .../src/utilities/controls.ts                      |    0
 .../src/utilities/multiValueUtils.ts               |    0
 .../src/utilities/sharedDndControls.tsx            |    0
 .../src/utilities/tooltipUtils.tsx                 |    0
 .../src/utilities/utils.ts                         |    0
 .../src/utils.test.ts                              |    0
 .../src/utils.ts                                   |   45 -
 .../src/utils/colors.ts                            |    0
 .../src/utils/computeBoundsFromPoints.ts           |    0
 .../src/utils/crossFiltersDataMask.test.ts         |    0
 .../src/utils/crossFiltersDataMask.ts              |    0
 .../src/utils/explore.ts                           |    0
 .../src/utils/fitViewport.ts                       |    0
 .../src/utils/geo.ts                               |    0
 .../src/utils/getPointsFromPolygon.ts              |    0
 .../preset-chart-deckgl/src/utils/mapbox.ts}       |   18 +-
 .../src/utils/safeStringify.ts                     |    0
 .../src/utils/sandbox.ts                           |    0
 .../preset-chart-deckgl}/tsconfig.json             |   13 +-
 .../types/external.d.ts                            |    2 +-
 superset-frontend/scripts/check-custom-rules.js    |    6 +-
 .../src/SqlLab/components/ColumnElement/index.tsx  |   12 +-
 .../components/EditorWrapper/useKeywords.test.ts   |   27 +-
 .../SqlLab/components/EditorWrapper/useKeywords.ts |  108 +-
 .../HighlightedSql/HighlightedSql.test.tsx         |   37 +-
 .../src/SqlLab/components/HighlightedSql/index.tsx |   68 +-
 .../SqlLab/components/QueryLimitSelect/index.tsx   |    2 +-
 .../SqlLab/components/ResultSet/ResultSet.test.tsx |  223 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |   86 +-
 .../components/SaveDatasetActionButton/index.tsx   |    4 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    2 +-
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |    2 +-
 .../SqlEditorLeftBar/SqlEditorLeftBar.test.tsx     |    2 +-
 .../TableExploreTree/TableExploreTree.test.tsx     |   88 +-
 .../TableExploreTree/TreeNodeRenderer.tsx          |  194 +-
 .../SqlLab/components/TableExploreTree/index.tsx   |  143 +-
 .../components/TableExploreTree/useTreeData.ts     |   82 +-
 superset-frontend/src/SqlLab/fixtures.ts           |    2 +-
 .../src/components/AlteredSliceTag/utils/index.ts  |    2 +-
 .../components/AlteredSliceTag/utils/utils.test.ts |   27 +
 .../components/Chart/DrillBy/DrillByModal.test.tsx |   44 +-
 .../Chart/DrillBy/DrillBySubmenu.test.tsx          |    6 +-
 .../Chart/DrillBy/useResultsTableView.test.ts      |   75 +-
 .../Chart/DrillBy/useResultsTableView.tsx          |   25 +-
 .../CopyToClipboard/CopyToClipboard.test.tsx       |   24 +
 .../src/components/CopyToClipboard/index.tsx       |   20 +-
 .../src/components/CopyToClipboard/types.ts        |    1 +
 .../DatabaseSelector/DatabaseSelector.test.tsx     |    6 +-
 .../src/components/DatabaseSelector/index.tsx      |   21 +-
 .../Datasource/DatasourceModal/index.tsx           |   15 +-
 .../components/Datasource/FoldersEditor/styles.tsx |    1 -
 .../DatasourceEditor/DatasourceEditor.tsx          |   74 +-
 .../ErrorMessage/DatabaseErrorMessage.tsx          |    1 +
 .../src/components/ErrorMessage/ErrorAlert.tsx     |   12 +-
 .../src/components/ErrorMessage/types.ts           |    1 +
 .../src/components/ListView/ListView.tsx           |    1 +
 .../src/components/PanelToolbar/index.tsx          |    4 +-
 .../TableSelector/TableSelector.test.tsx           |    2 +-
 superset-frontend/src/components/Tag/utils.tsx     |   11 +-
 superset-frontend/src/core/sqlLab/sqlLab.test.ts   |   25 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   51 +-
 .../DashboardBuilder/DashboardContainer.test.tsx   |  291 +-
 .../DashboardBuilder/DashboardContainer.tsx        |   43 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |    2 +-
 .../Header/useHeaderActionsDropdownMenu.tsx        |    3 +
 .../dashboard/components/PropertiesModal/index.tsx |   56 +-
 .../src/dashboard/components/SliceHeader/index.tsx |    4 +
 .../SliceHeaderControls.test.tsx                   |   73 +-
 .../components/SliceHeaderControls/Styles.tsx      |   71 +
 .../components/SliceHeaderControls/index.tsx       |   89 +-
 .../components/gridComponents/Chart/Chart.tsx      |   12 +-
 .../gridComponents/ChartHolder/ChartHolder.tsx     |  109 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |  112 +-
 .../components/menu/DownloadMenuItems/index.tsx    |   29 +-
 .../menu/ShareMenuItems/ShareMenuItems.test.tsx    |   34 +-
 .../nativeFilters/ConfigModal/SharedStyles.tsx     |    1 +
 .../FilterBar/ActionButtons/ActionButtons.test.tsx |   28 -
 .../FilterBar/ActionButtons/index.tsx              |   11 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   17 +-
 .../FilterBar/FilterBarSettings/index.tsx          |    2 +-
 .../FilterControls/FilterControls.test.tsx         |   13 +
 .../FilterBar/FilterControls/FilterControls.tsx    |    7 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   35 +-
 .../FiltersDropdownContent.test.tsx                |   71 +
 .../FilterBar/FiltersDropdownContent/index.tsx     |    2 +-
 .../FiltersOutOfScopeCollapsible/index.tsx         |    1 -
 .../nativeFilters/FilterBar/Vertical.tsx           |   11 +-
 .../components/nativeFilters/FilterBar/index.tsx   |    2 -
 .../ConfigModalContent/ConfigModalContent.tsx      |   25 +-
 .../ConfigModalSidebar/ConfigModalSidebar.tsx      |  122 +-
 .../FiltersConfigForm/FilterScope/utils.test.ts    |   76 +-
 .../FiltersConfigForm/FilterScope/utils.ts         |   12 +
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |  143 +-
 .../dashboard/hooks/useDownloadScreenshot.test.ts  |   73 +
 .../src/dashboard/hooks/useDownloadScreenshot.ts   |    3 +-
 .../util/charts/getFormDataWithExtraFilters.ts     |   35 +-
 .../util/getFormDataWithExtraFilters.test.ts       |  578 +-
 .../src/explore/actions/hydrateExplore.ts          |    4 +-
 .../components/ControlPanelsContainer.test.tsx     |  113 +
 .../explore/components/ControlPanelsContainer.tsx  |   27 +-
 .../CopyToClipboardButton.test.tsx                 |   28 +
 .../explore/components/DataTableControl/index.tsx  |   11 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    1 +
 .../components/DataTableControls.tsx               |   46 +-
 .../DataTablesPane/components/SamplesPane.tsx      |  118 +-
 .../components/SingleQueryResultPane.tsx           |   89 +-
 .../components/useGridResultTable.tsx              |  123 +
 .../DataTablesPane/components/useResultsPane.tsx   |   39 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |   61 +-
 .../test/ResultsPaneOnDashboard.test.tsx           |   15 +-
 .../DataTablesPane/test/SamplesPane.test.tsx       |   27 +-
 .../components/DataTablesPane/test/fixture.tsx     |    4 +
 .../src/explore/components/DataTablesPane/types.ts |   12 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    6 +-
 .../explore/components/ExploreChartPanel/index.tsx |    5 +-
 .../useResizeDetectorByObserver.ts                 |    5 +-
 .../src/explore/components/SaveModal.tsx           |   19 +-
 .../ConditionalFormattingControl.test.tsx          |   83 +
 .../ConditionalFormattingControl.tsx               |    5 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   20 +
 .../index.tsx                                      |    5 +-
 .../controls/NumberControl/NumberControl.test.tsx  |   15 +
 .../components/controls/NumberControl/index.tsx    |    6 +
 .../components/controls/TextAreaControl.tsx        |    7 +-
 .../VizTypeControl/VizTypeControl.test.tsx         |    2 +-
 .../useExploreAdditionalActionsMenu/index.tsx      |   57 +-
 .../exploreUtils/getSimpleSQLExpression.test.ts    |   12 +
 .../src/explore/exploreUtils/index.ts              |    3 +-
 .../src/features/alerts/AlertReportModal.test.tsx  | 1487 +++-
 .../src/features/alerts/AlertReportModal.tsx       |    8 +-
 .../components/AlertReportCronScheduler.test.tsx   |  125 +
 .../alerts/components/NumberInput.test.tsx         |   67 +
 .../src/features/cssTemplates/CssTemplateModal.tsx |    1 +
 .../AddDataset/LeftPanel/LeftPanel.test.tsx        |    8 +-
 .../src/features/queries/QueryPreviewModal.tsx     |   13 +-
 .../features/queries/SavedQueryPreviewModal.tsx    |   13 +-
 .../src/features/queries/SyntaxHighlighterCopy.tsx |    6 +-
 .../reports/ReportModal/ReportModal.test.tsx       |  350 +-
 .../features/reports/ReportModal/actions.test.ts   |  178 +
 .../src/features/reports/ReportModal/actions.ts    |    6 +-
 .../features/reports/ReportModal/reducer.test.ts   |  214 +
 .../src/features/tags/BulkTagModal.tsx             |    3 +-
 superset-frontend/src/features/tags/TagModal.tsx   |    3 +
 superset-frontend/src/hooks/usePermissions.ts      |   26 +-
 .../pages/AlertReportList/AlertReportList.test.tsx |  656 +-
 .../src/pages/AlertReportList/index.tsx            |   10 +-
 superset-frontend/src/pages/Chart/Chart.test.tsx   |   93 +
 superset-frontend/src/pages/Chart/index.tsx        |   46 +-
 .../src/pages/FileHandler/index.test.tsx           |    3 +-
 superset-frontend/src/utils/copy.ts                |   84 +-
 .../src/utils/downloadAsImage.test.ts              |  685 ++
 superset-frontend/src/utils/downloadAsImage.tsx    |  187 +-
 superset-frontend/src/utils/urlUtils.test.ts       |   44 +
 superset-frontend/src/utils/urlUtils.ts            |   19 +-
 .../src/visualizations/presets/MainPreset.ts       |    6 +-
 superset-frontend/tsconfig.json                    |    4 +-
 superset-frontend/webpack.config.js                |   33 +-
 superset-websocket/package-lock.json               |  978 +--
 superset-websocket/package.json                    |   22 +-
 .../utils/client-ws-app/package-lock.json          |   18 +-
 superset/charts/api.py                             |   29 +-
 superset/charts/data/api.py                        |  104 +-
 superset/charts/data/dashboard_filter_context.py   |  306 +
 superset/charts/schemas.py                         |   45 +
 superset/commands/database/utils.py                |    3 +-
 superset/commands/report/execute.py                |   26 +-
 superset/commands/sql_lab/results.py               |   18 +-
 superset/common/query_object.py                    |    4 +-
 superset/config.py                                 |   18 +-
 superset/daos/base.py                              |   16 +-
 superset/daos/report.py                            |    2 +-
 superset/dashboards/api.py                         |   12 +-
 superset/databases/utils.py                        |    1 +
 superset/datasets/api.py                           |    2 +-
 superset/db_engine_specs/base.py                   |   13 +-
 superset/db_engine_specs/crate.py                  |    2 +-
 superset/db_engine_specs/presto.py                 |   13 +
 superset/mcp_service/CLAUDE.md                     |  762 +-
 superset/mcp_service/SECURITY.md                   |    9 +-
 superset/mcp_service/__main__.py                   |   32 +
 superset/mcp_service/app.py                        |  121 +-
 superset/mcp_service/auth.py                       |  418 +-
 superset/mcp_service/chart/chart_utils.py          |  148 +-
 superset/mcp_service/chart/preview_utils.py        |   18 +-
 superset/mcp_service/chart/schemas.py              |  291 +-
 superset/mcp_service/chart/tool/__init__.py        |    2 +
 superset/mcp_service/chart/tool/generate_chart.py  |   96 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   64 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |    2 -
 .../mcp_service/chart/tool/get_chart_preview.py    |   53 +-
 .../chart/tool/get_chart_type_schema.py            |  174 +
 superset/mcp_service/chart/tool/list_charts.py     |    6 +-
 superset/mcp_service/chart/tool/update_chart.py    |  187 +-
 .../mcp_service/chart/tool/update_chart_preview.py |   67 +-
 .../chart/validation/dataset_validator.py          |  101 +-
 superset/mcp_service/chart/validation/pipeline.py  |   17 +-
 .../chart/validation/schema_validator.py           |   89 +
 superset/mcp_service/common/schema_discovery.py    |  151 +-
 superset/mcp_service/constants.py                  |    9 +
 superset/mcp_service/dashboard/schemas.py          |  260 +-
 .../tool/add_chart_to_existing_dashboard.py        |   43 +-
 .../dashboard/tool/generate_dashboard.py           |   34 +-
 .../dashboard/tool/get_dashboard_info.py           |    2 -
 .../mcp_service/dashboard/tool/list_dashboards.py  |    6 +-
 .../mcp_service/database}/__init__.py              |    0
 superset/mcp_service/database/schemas.py           |  364 +
 .../{dataset => database}/tool/__init__.py         |    8 +-
 .../tool/get_database_info.py}                     |   89 +-
 .../tool/list_databases.py}                        |  106 +-
 superset/mcp_service/dataset/schemas.py            |  126 +-
 superset/mcp_service/dataset/tool/__init__.py      |    2 +
 .../dataset/tool/create_virtual_dataset.py         |  137 +
 .../mcp_service/dataset/tool/get_dataset_info.py   |    7 +-
 superset/mcp_service/dataset/tool/list_datasets.py |   11 +-
 .../explore/tool/generate_explore_link.py          |   56 +-
 superset/mcp_service/mcp_config.py                 |   41 +-
 superset/mcp_service/mcp_core.py                   |   59 +-
 superset/mcp_service/middleware.py                 |   97 +-
 superset/mcp_service/server.py                     |  166 +-
 superset/mcp_service/sql_lab/schemas.py            |   36 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   57 +-
 .../sql_lab/tool/open_sql_lab_with_context.py      |   13 +-
 .../mcp_service/sql_lab/tool/save_sql_query.py     |    4 -
 .../mcp_service/system/tool/get_instance_info.py   |  108 +-
 superset/mcp_service/system/tool/get_schema.py     |   35 +-
 superset/mcp_service/utils/oauth2_utils.py         |   47 +
 superset/mcp_service/utils/permissions_utils.py    |    4 -
 superset/mcp_service/utils/response_utils.py       |  152 +
 superset/mcp_service/utils/token_utils.py          |  217 +-
 superset/migrations/shared/utils.py                |   27 +-
 ...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py |  172 +
 superset/models/helpers.py                         |    6 +-
 superset/reports/models.py                         |   22 +-
 superset/result_set.py                             |   43 +-
 superset/security/manager.py                       |  204 +-
 superset/sql/execution/executor.py                 |    6 +
 superset/sqllab/api.py                             |   21 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |   87 +-
 superset/utils/log.py                              |    9 +-
 superset/utils/oauth2.py                           |   29 +-
 superset/utils/webdriver.py                        |    3 +-
 superset/views/datasource/schemas.py               |    2 +-
 superset/views/datasource/utils.py                 |    7 +-
 superset/views/datasource/views.py                 |    8 +-
 superset/viz.py                                    |   23 +
 tests/integration_tests/charts/data/api_tests.py   |  215 +
 tests/integration_tests/datasource_tests.py        |   23 +-
 tests/integration_tests/event_logger_tests.py      |   61 +
 ...ce6bd21901ab_migrate_deckgl_and_mapbox__test.py |  187 +
 .../security/guest_token_security_tests.py         |  100 +-
 tests/integration_tests/security_tests.py          |   23 +-
 tests/integration_tests/sql_lab/commands_tests.py  |   33 +-
 .../integration_tests/test_granular_export_api.py  |  275 +
 .../charts/test_dashboard_filter_context.py        |  525 ++
 tests/unit_tests/commands/databases/utils_test.py  |    6 +-
 tests/unit_tests/commands/report/create_test.py    |  222 +
 tests/unit_tests/commands/report/execute_test.py   |  777 +-
 tests/unit_tests/commands/report/update_test.py    |   73 +-
 tests/unit_tests/daos/test_report_dao.py           |   92 +
 tests/unit_tests/datasets/api_tests.py             |   48 +
 tests/unit_tests/db_engine_specs/test_base.py      |    2 +-
 tests/unit_tests/db_engine_specs/test_presto.py    |    6 +-
 .../mcp_service/chart/test_big_number_chart.py     |  524 ++
 .../mcp_service/chart/test_chart_schemas.py        |  102 +
 .../mcp_service/chart/test_chart_utils.py          |  222 +-
 .../mcp_service/chart/tool/test_generate_chart.py  |   37 +-
 .../chart/tool/test_get_chart_type_schema.py       |   86 +
 .../mcp_service/chart/tool/test_list_charts.py     |   25 +-
 .../mcp_service/chart/tool/test_update_chart.py    |  330 +-
 .../chart/tool/test_update_chart_preview.py        |   60 +-
 .../validation/test_column_name_normalization.py   |   50 +
 .../dashboard/test_dashboard_schemas.py            |  224 +-
 .../dashboard/tool/test_dashboard_generation.py    |  386 +-
 .../dashboard/tool/test_dashboard_tools.py         |   22 +-
 .../unit_tests/mcp_service/database}/__init__.py   |    0
 .../mcp_service/database/tool}/__init__.py         |    0
 .../database/tool/test_database_tools.py           |  206 +
 .../mcp_service/dataset/tool/test_dataset_tools.py |  381 +-
 .../explore/tool/test_generate_explore_link.py     |   81 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   85 +-
 .../sql_lab/tool/test_save_sql_query.py            |   29 +-
 .../mcp_service/system/tool/test_get_schema.py     |   41 +-
 tests/unit_tests/mcp_service/test_auth_api_key.py  |   17 +-
 .../mcp_service/test_auth_user_resolution.py       |  456 ++
 .../mcp_service/test_g_user_race_condition.py      |  164 +
 tests/unit_tests/mcp_service/test_middleware.py    |  100 +
 .../mcp_service/test_middleware_logging.py         |  157 +
 .../mcp_service/test_tool_search_transform.py      |  340 +
 .../mcp_service/utils/test_token_utils.py          |  283 +-
 tests/unit_tests/reports/api_test.py               |   52 +
 tests/unit_tests/reports/dao_test.py               |   91 +
 tests/unit_tests/reports/filters_test.py           |   64 +
 tests/unit_tests/reports/model_test.py             |  372 +-
 .../reports/notifications/slack_tests.py           |   54 +
 tests/unit_tests/reports/schemas_test.py           |  183 +-
 tests/unit_tests/result_set_test.py                |   59 +
 tests/unit_tests/security/api_test.py              |    2 +-
 tests/unit_tests/security/audit_log_test.py        |  251 +
 tests/unit_tests/sql/execution/test_executor.py    |   72 +
 tests/unit_tests/utils/oauth2_tests.py             |   64 +
 tests/unit_tests/utils/webdriver_test.py           |   35 +-
 657 files changed, 36100 insertions(+), 11945 deletions(-)
 create mode 100644 docs/docs/security/granular-export-controls.mdx
 create mode 100644 docs/static/img/logos/hifadih.png
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dataset/dataset_list.test.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/_skip.sourcePanel.index.test.js
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/query.test.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/sqllab.helper.js
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/tabs.test.ts
 copy superset-frontend/{ => packages/superset-ui-core}/src/utils/copy.ts (95%)
 create mode 100644 superset-frontend/playwright/components/core/AgGrid.ts
 copy superset-frontend/{src/components/ListView/DashboardCrossLinks.tsx => playwright/components/core/EditableTabs.ts} (51%)
 copy superset-frontend/{packages/superset-ui-core/src/time-format/types.ts => playwright/components/core/Popover.ts} (50%)
 copy superset-frontend/{spec/helpers/Cache.ts => playwright/components/modals/SaveDatasetModal.ts} (57%)
 copy superset-frontend/{spec/helpers/IntersectionObserver.ts => playwright/components/modals/SaveQueryModal.ts} (59%)
 copy superset-frontend/{src/types/SqlExpression.ts => playwright/helpers/api/savedQuery.ts} (54%)
 create mode 100644 superset-frontend/playwright/pages/SqlLabPage.ts
 rename superset-frontend/playwright/tests/{experimental => }/chart/chart-list.spec.ts (79%)
 rename superset-frontend/playwright/tests/{experimental => }/chart/chart-test-helpers.ts (92%)
 rename superset-frontend/playwright/tests/{experimental => }/dashboard/dashboard-list.spec.ts (95%)
 rename superset-frontend/playwright/tests/{experimental => }/dashboard/dashboard-test-helpers.ts (93%)
 rename superset-frontend/playwright/tests/{experimental => }/dashboard/export.spec.ts (94%)
 rename superset-frontend/playwright/tests/{experimental => }/dashboard/theme.spec.ts (93%)
 rename superset-frontend/playwright/tests/{experimental => }/dataset/create-dataset.spec.ts (91%)
 rename superset-frontend/playwright/tests/{experimental => }/dataset/dataset-list.spec.ts (92%)
 rename superset-frontend/playwright/tests/{experimental => }/dataset/dataset-test-helpers.ts (93%)
 create mode 100644 superset-frontend/playwright/tests/sqllab/sqllab.spec.ts
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/CHANGELOG.md
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/README.md
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/MapBox.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/stories/MapBox.stories.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/transformProps.ts
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/MapBox.test.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/tsconfig.json
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/utils/roundDecimal.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/tsconfig.json
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/types/external.d.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/CHANGELOG.md
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/README.md
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/colors.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/getPointsFromPolygon.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/types/external.d.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/reconcileColumnState.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/reconcileColumnState.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Area/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Line/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/SmoothLine/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Step/controlPanel.test.ts
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/package.json (65%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box/src/MapBox.css => plugin-chart-point-cluster-map/src/MapLibre.css} (96%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/MapLibre.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/buildQuery.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/CanvasOverlay.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/ScatterPlotOverlay.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/controlPanel.ts (73%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox-dark.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2-dark.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/index.ts (88%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/stories/PointClusterMap.stories.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/stories/data.ts (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/transformProps.ts
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/geo.ts (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/luminanceFromRGB.ts (100%)
 copy superset-frontend/{src/types/ChartSource.ts => plugins/plugin-chart-point-cluster-map/src/utils/mapbox.ts} (63%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/roundDecimal.ts (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/test/MapLibre.test.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box/test/ScatterPlotGlowOverlay.test.tsx => plugin-chart-point-cluster-map/test/ScatterPlotOverlay.test.tsx} (92%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/controlPanel.test.ts (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/transformProps.test.ts (75%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => plugin-chart-point-cluster-map}/tsconfig.json (58%)
 copy superset-frontend/plugins/{legacy-plugin-chart-calendar => plugin-chart-point-cluster-map}/types/external.d.ts (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/package.json (71%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/CategoricalDeckGLContainer.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/DeckGLContainer.tsx (64%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.test.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.tsx (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.ts (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/TooltipRow.tsx (100%)
 copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.tsx} (70%)
 copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapbox.tsx} (70%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Legend.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Tooltip.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/factory.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/Arc.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/Arc.stories.tsx (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/Contour.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.test.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.tsx (97%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/buildQuery.ts
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/controlPanel.ts (98%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/index.ts (94%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/transformProps.ts
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/Grid.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/Grid.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/Heatmap.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/controlPanel.ts (98%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/Hex.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/Hex.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.test.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/Path.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.test.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/Polygon.stories.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/geojsonPayload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/Scatter.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/Scatter.stories.tsx (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/Screengrid.tsx (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/controlPanel.ts (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/Screengrid.stories.tsx (91%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/buildQueryUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.test.ts (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.ts (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/preset.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/types.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/HandlebarsRenderer.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/Shared_DeckGL.tsx (90%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateControl.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateEditor.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controlRegistry.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controls.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/multiValueUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/sharedDndControls.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/tooltipUtils.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/utils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.ts (86%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/colors.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/computeBoundsFromPoints.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/explore.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/fitViewport.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/geo.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/getPointsFromPolygon.ts (100%)
 copy superset-frontend/{src/types/ChartSource.ts => plugins/preset-chart-deckgl/src/utils/mapbox.ts} (63%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/safeStringify.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/sandbox.ts (100%)
 copy superset-frontend/{packages/generator-superset/generators/plugin-chart/templates => plugins/preset-chart-deckgl}/tsconfig.json (59%)
 copy superset-frontend/plugins/{legacy-plugin-chart-calendar => preset-chart-deckgl}/types/external.d.ts (99%)
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeaderControls/Styles.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/FiltersDropdownContent.test.tsx
 create mode 100644 superset-frontend/src/dashboard/hooks/useDownloadScreenshot.test.ts
 create mode 100644 superset-frontend/src/explore/components/DataTablesPane/components/useGridResultTable.tsx
 mode change 100644 => 100755 superset-frontend/src/explore/components/SaveModal.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.test.tsx
 create mode 100644 superset-frontend/src/features/alerts/components/AlertReportCronScheduler.test.tsx
 create mode 100644 superset-frontend/src/features/alerts/components/NumberInput.test.tsx
 create mode 100644 superset-frontend/src/features/reports/ReportModal/actions.test.ts
 create mode 100644 superset-frontend/src/features/reports/ReportModal/reducer.test.ts
 create mode 100644 superset-frontend/src/utils/downloadAsImage.test.ts
 create mode 100644 superset/charts/data/dashboard_filter_context.py
 create mode 100644 superset/mcp_service/chart/tool/get_chart_type_schema.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/database}/__init__.py (100%)
 create mode 100644 superset/mcp_service/database/schemas.py
 copy superset/mcp_service/{dataset => database}/tool/__init__.py (85%)
 copy superset/mcp_service/{dataset/tool/get_dataset_info.py => database/tool/get_database_info.py} (50%)
 copy superset/mcp_service/{dataset/tool/list_datasets.py => database/tool/list_databases.py} (55%)
 create mode 100644 superset/mcp_service/dataset/tool/create_virtual_dataset.py
 create mode 100644 superset/mcp_service/utils/oauth2_utils.py
 create mode 100644 superset/mcp_service/utils/response_utils.py
 create mode 100644 superset/migrations/versions/2026-03-02_00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py
 create mode 100644 tests/integration_tests/migrations/ce6bd21901ab_migrate_deckgl_and_mapbox__test.py
 create mode 100644 tests/integration_tests/test_granular_export_api.py
 create mode 100644 tests/unit_tests/charts/test_dashboard_filter_context.py
 create mode 100644 tests/unit_tests/commands/report/create_test.py
 create mode 100644 tests/unit_tests/daos/test_report_dao.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_big_number_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_type_schema.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/database}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/database/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/database/tool/test_database_tools.py
 create mode 100644 tests/unit_tests/mcp_service/test_auth_user_resolution.py
 create mode 100644 tests/unit_tests/mcp_service/test_g_user_race_condition.py
 create mode 100644 tests/unit_tests/reports/api_test.py
 create mode 100644 tests/unit_tests/reports/dao_test.py
 create mode 100644 tests/unit_tests/reports/filters_test.py
 create mode 100644 tests/unit_tests/security/audit_log_test.py