This is an automated email from the ASF dual-hosted git repository.
enzomartellucci pushed a change to branch
enxdev/feat/enhance-database-modal-validation
in repository https://gitbox.apache.org/repos/asf/superset.git
from 7d53e4d7080 Merge branch 'master' into
enxdev/feat/enhance-database-modal-validation
add c59d0a73d47 fix: Prevent table rows from overlapping pagination in
table view (#37174)
add ae8d671fea3 fix(sql): fix sql suggestions (#37699)
add c41942a38ad chore(deps): Upgrade sqlglot from 27.15.2 to 28.10.0
(#37841)
add 76aa91f5ea2 fix(deps): pin `react-error-boundary` to 6.0.0 for React
17 peer dep constraint (#37706)
add 7ec5f1d7ecf fix(native-filters): Filters with select first value not
restored correctly from url (#37855)
add b98b34a60f5 refactor: Make extensions contribution schema consistent
(#37856)
add 6a6b9b53864 chore: Bump core packages (0.0.1rc11, 0.0.1rc4) (#37860)
add 1388a628230 fix(filters): fix filter / customization name not updating
in sidebar in real time (#37358)
add 39ac96817a8 fix(helm): Add default initContainer resources (#37637)
add 4eb8fc814a9 chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in
/superset-websocket (#37846)
add 7d4a7f113c4 chore(deps-dev): bump webpack from 5.105.0 to 5.105.1 in
/docs (#37849)
add 7e5ca83220e chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in
/superset-frontend (#37851)
add 9a79dbf4457 fix(docs): make page size selector work in database table
(#37863)
add 69c679be20a fix(explore): Don't show unsaved changes modal on new
charts (#37714)
add 74e1607010e fix(extensions): broken test (#37871)
add 88a14f2ba0d fix(FiltersBadge): world map wont show filter icon after
refresh page (#37260)
add c28729f944f chore(lint): add jest/expect-expect rule for test
assertions (#37887)
add 534fa48f1ff chore(lint): enforce stricter eslint/oxlint rules (#37883)
add d640fe42c9b chore: remove Applitools visual testing integration
(#37873)
add 98ca599eef9 perf: fix N+1 query in chart list API when thumbnail_url
is requested (#37895)
add 9089f300459 chore(lint): upgrade array creation, effect, and
TypeScript rules (#37885)
add 255a0ada814 fix(gtf): add missing user_id to task commands (#37867)
add 5f0001affc9 feat(timeseries): remove stream style for bar charts
(#37532)
add 26a2e127793 perf: fix N+1 query in Slice.datasource property (#37899)
add 00d02cb2ea1 perf(gtf): improve task base filter (#37900)
add b0be47a4ac2 fix: Unreachable drop zones within tabs in dashbboard
editor (#37904)
add b012b63e5b8 fix(native-filters): align refresh icon with default value
field (#37802)
add 981b370fe9e chore(storybook): consolidate storybook and enhance plugin
stories (#37771)
add 77148277b96 feat(charts): improve negative stacked bar label
positioning and accessibility (#37405)
add 19ec7b48a0f fix: Conditional formatting painting empty cells (#37894)
add 30ccbb2e050 chore(deps): update @types/geojson requirement from
^7946.0.10 to ^7946.0.16 in
/superset-frontend/plugins/plugin-chart-cartodiagram (#37908)
add afacca350f0 chore(deps-dev): bump oxlint from 1.42.0 to 1.46.0 in
/superset-frontend (#37917)
add 3f64c257120 fix(mcp): Add database_name as valid filter column for
list_datasets (#37865)
add 4dfece9ee54 feat(mcp): add event_logger instrumentation to MCP tools
(#37859)
add 88ce1425e2c fix(roles): optimize user fetching and resolve N+1 query
issue (#37235)
add dbf5e1f1314 feat(theme): use IBM Plex Mono for code and numerical
displays (#37366)
add 58d245c6b03 chore(deps): Update sqlachemy-utils to 0.42.0 (#36240)
add 0d5ddb36749 feat(themes): add enhanced validation and error handling
with fallback mechanisms (#37378)
add 6328e516206 test(examples): add tests for UUID threading and security
bypass (#37557)
add 142b2cc4254 test(e2e): add Playwright E2E tests for Chart List page
(#37866)
add 080f629ea21 fix(echarts): formula annotations not rendering with
dataset-level columns label (#37522)
add 0c0d915391d fix(echarts-timeseries-combined-labels): combine
annotation labels for events at same timestamp (#37164)
add e3e2bece6bc feat(owners): display email in owner selectors (#37906)
add ffd7f103207 chore(deps): bump markdown-to-jsx from 9.7.3 to 9.7.4 in
/superset-frontend (#37959)
add 75d6a95ac39 chore(deps): bump aquasecurity/trivy-action from 0.33.1 to
0.34.0 (#37958)
add 79f51e2ae7d chore(deps-dev): bump webpack from 5.105.1 to 5.105.2 in
/docs (#37953)
add 475615e1186 chore(deps): bump ioredis from 5.9.2 to 5.9.3 in
/superset-websocket (#37951)
add a65f73a5323 chore(deps): bump qs from 6.14.1 to 6.14.2 in /docs
(#37937)
add 73adff55ee8 chore(deps): Relax sqlalchemy-utils lower bound for
pydoris compatibility (#37949)
add 097f474f24b chore(deps): bump pillow from 11.3.0 to 12.1.1 (#37935)
add cbf153845ed chore(deps): bump qs from 6.14.1 to 6.14.2 in
/superset-websocket/utils/client-ws-app (#37933)
add 055fa360bb2 Merge branch 'master' into
enxdev/feat/enhance-database-modal-validation
add cac12ed2aa1 perf(database): skip redundant validation API calls on blur
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 77 +-
.github/workflows/bashlib.sh | 23 -
.github/workflows/dependency-review.yml | 6 +-
.github/workflows/docker.yml | 2 +-
.github/workflows/superset-applitool-cypress.yml | 91 -
.../workflows/superset-applitools-storybook.yml | 52 -
.github/workflows/superset-frontend.yml | 5 -
UPDATING.md | 36 +
.../extensions/contribution-types.md | 54 +-
docs/developer_portal/extensions/development.md | 14 +-
.../extensions/extension-points/sqllab.md | 54 +-
docs/developer_portal/extensions/quick-start.md | 14 +-
.../guidelines/frontend-style-guidelines.md | 2 +-
docs/docusaurus.config.ts | 1 -
docs/i18n/en/docusaurus-theme-classic/footer.json | 2 +-
docs/package.json | 3 +-
docs/src/components/databases/DatabaseIndex.tsx | 2 +-
docs/static/img/applitools.png | Bin 37046 -> 0 bytes
docs/yarn.lock | 68 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 2 +-
helm/superset/values.yaml | 30 +
pyproject.toml | 6 +-
requirements/base.txt | 4 +-
requirements/development.txt | 4 +-
superset-core/pyproject.toml | 6 +-
.../src/superset_core/extensions/types.py | 28 +-
superset-frontend/.eslintrc.js | 15 +-
superset-frontend/.storybook/main.js | 15 +-
superset-frontend/.storybook/preview.jsx | 21 +
.../shared}/ErrorMessage.tsx | 0
.../shared}/Expandable.tsx | 0
.../shared}/ResizableChartDemo.tsx | 14 +-
.../shared}/ResizablePanel.tsx | 20 +-
.../shared}/VerifyCORS.tsx | 0
.../shared/createQueryStory.tsx} | 4 +-
.../shared/dummyDatasource.ts | 0
.../Modal => .storybook/shared}/index.ts | 31 +-
superset-frontend/applitools.config.js | 27 -
.../cypress-base/applitools.config.js | 29 -
superset-frontend/cypress-base/cypress.config.ts | 120 +-
.../cypress/applitools/chartlist.test.ts | 45 -
.../cypress/applitools/dashboard.test.ts | 53 -
.../cypress/applitools/dashboardlist.test.ts | 45 -
.../cypress/applitools/explore.test.ts | 46 -
.../cypress-base/cypress/applitools/sqllab.test.ts | 32 -
.../cypress/e2e/database/modal.test.ts | 15 +-
.../cypress-base/cypress/support/e2e.ts | 1 -
superset-frontend/cypress-base/package-lock.json | 17035 +++++++------------
superset-frontend/cypress-base/package.json | 1 -
superset-frontend/cypress-base/tsconfig.json | 4 +-
superset-frontend/jest.config.js | 1 -
superset-frontend/oxlint.json | 26 +-
superset-frontend/package-lock.json | 4767 +-----
superset-frontend/package.json | 13 +-
.../packages/superset-core/package.json | 4 +-
.../superset-core/src/api/contributions.ts | 51 +-
.../superset-core/src/ui/theme/GlobalStyles.tsx | 6 +-
.../superset-core/src/ui/theme/Theme.test.tsx | 2 +-
.../packages/superset-core/src/utils/index.ts | 1 +
.../superset-core/src/utils/isBlank.test.ts | 59 +
.../superset-core/src/utils/isBlank.ts} | 16 +-
.../src/utils/getColorFormatters.ts | 13 +-
.../test/utils/getColorFormatters.test.ts | 111 +
.../packages/superset-ui-core/package.json | 2 +-
.../chart/stories}/ChartDataProvider.stories.tsx | 4 +-
.../src/chart/stories}/SuperChart.stories.tsx | 2 +-
.../src/color/stories}/ColorPalettes.stories.tsx | 0
.../src/color/stories}/RenderPalettes.tsx | 0
.../src/color/stories}/color-styles.css | 11 +-
.../AsyncAceEditor/AsyncAceEditor.test.tsx | 15 +
.../src/components/AsyncAceEditor/index.tsx | 5 +-
.../components/CachedLabel/CachedLabel.stories.tsx | 100 +
.../src/components/Label/Label.test.tsx | 5 +
.../components/ModalTrigger/ModalTrigger.test.tsx | 2 +-
.../SafeMarkdown/SafeMarkdown.stories.tsx | 249 +
.../TableCollection/TableCollection.stories.tsx | 530 +
.../src/connection/stories}/Connection.stories.tsx | 12 +-
.../src/models/ExtensibleFunction.ts | 3 +-
.../stories}/NumberFormat.stories.tsx | 0
.../src/style/stories}/Theme.stories.tsx | 0
.../time-format/stories}/TimeFormat.stories.tsx | 0
.../superset-ui-core/src/utils/html.test.tsx | 1 +
.../packages/superset-ui-core/src/utils/html.tsx | 2 +
.../chart/components/ChartDataProvider.test.tsx | 2 +-
.../test/chart/components/SuperChart.test.tsx | 2 +-
.../packages/superset-ui-demo/.babelrc.json | 18 -
.../packages/superset-ui-demo/.storybook/main.js | 55 -
.../superset-ui-demo/.storybook/preview.js | 77 -
.../superset-ui-demo/.storybook/storybook.css | 19 -
.../superset-ui-demo/.storybook/themeDecorator.jsx | 10 -
.../packages/superset-ui-demo/CHANGELOG.md | 89 -
.../packages/superset-ui-demo/README.md | 28 -
.../packages/superset-ui-demo/package.json | 84 -
.../storybook/stories/ExampleApp.stories.jsx | 90 -
.../LegacyPluginChartCalendar.stories.tsx | 53 -
.../legacy-plugin-chart-map-box/MapBox.stories.tsx | 58 -
.../Partition.stories.tsx | 52 -
.../legacy-plugin-chart-rose/Rose.stories.tsx | 45 -
.../legacy-preset-chart-deckgl/Arc/payload.js | 269 -
.../legacy-preset-chart-deckgl/Grid/payload.js | 113 -
.../legacy-preset-chart-deckgl/Hex/payload.js | 113 -
.../legacy-preset-chart-deckgl/Path/payload.js | 227 -
.../Polygon/geojsonPayload.js | 130 -
.../legacy-preset-chart-deckgl/Polygon/payload.js | 382 -
.../legacy-preset-chart-deckgl/Scatter/payload.js | 228 -
.../Screengrid/payload.js | 135 -
.../BoxPlot/NVD3BoxPlot.stories.tsx | 28 -
.../legacy-preset-chart-nvd3/BoxPlot/data.ts | 77 -
.../BoxPlot/stories/basic.tsx | 37 -
.../Bubble/NVD3Bubble.stories.tsx | 29 -
.../Bubble/stories/basic.tsx | 55 -
.../Bullet/NVD3Bullet.stories.tsx | 29 -
.../Bullet/stories/basic.tsx | 41 -
.../Compare/NVD3Compare.stories.tsx | 30 -
.../Compare/stories/basic.tsx | 48 -
.../Compare/stories/timeFormat.tsx | 249 -
.../plugin-chart-echarts/Gauge/Gauge.stories.tsx | 52 -
.../plugin-chart-echarts/Graph/Graph.stories.tsx | 54 -
.../PivotTable.stories.tsx | 74 -
.../plugins/plugin-chart-table/birthNames.json | 13354 ---------------
.../plugin-chart-word-cloud/WordCloud.stories.tsx | 188 -
.../packages/superset-ui-demo/tsconfig.json | 22 -
.../components/modals/ChartPropertiesModal.ts} | 59 +-
.../playwright/helpers/api/assertions.ts | 58 +
superset-frontend/playwright/helpers/api/chart.ts | 104 +
.../playwright/helpers/fixtures/testAssets.ts | 57 +-
.../playwright/pages/ChartListPage.ts | 132 +
.../tests/experimental/chart/chart-list.spec.ts | 307 +
.../tests/experimental/chart/chart-test-helpers.ts | 88 +
.../experimental/dataset/dataset-list.spec.ts | 51 +-
.../stories/LegacyPluginChartCalendar.stories.tsx | 123 +
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-calendar/tsconfig.json | 3 +-
.../stories}/LegacyPluginChartChord.stories.tsx | 45 +-
.../legacy-plugin-chart-chord/src/stories}/data.ts | 10 +-
.../legacy-plugin-chart-chord/tsconfig.json | 3 +-
.../src/stories}/CountryMap.stories.tsx | 29 +-
.../legacy-plugin-chart-country-map/tsconfig.json | 3 +-
.../src/stories}/Horizon.stories.tsx | 36 +-
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-horizon/tsconfig.json | 3 +-
.../src/ScatterPlotGlowOverlay.tsx | 2 +-
.../src/stories/MapBox.stories.tsx | 107 +
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-map-box/tsconfig.json | 3 +-
.../src/stories}/TTest.stories.tsx | 45 +-
.../src/stories}/data.ts | 0
.../tsconfig.json | 3 +-
.../src/stories}/ParallelCoordinates.stories.tsx | 53 +-
.../src/stories}/data.ts | 0
.../tsconfig.json | 3 +-
.../src/stories/Partition.stories.tsx | 101 +
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-partition/tsconfig.json | 3 +-
.../src/stories/Rose.stories.tsx | 95 +
.../legacy-plugin-chart-rose/src/stories}/data.ts | 0
.../plugins/legacy-plugin-chart-rose/tsconfig.json | 3 +-
.../src/stories}/WorldMap.stories.tsx | 35 +-
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-world-map/tsconfig.json | 3 +-
.../src/layers/Arc/stories}/Arc.stories.tsx | 48 +-
.../src/layers/Arc/stories/payload.ts | 80 +
.../src/layers/Grid/stories}/Grid.stories.tsx | 45 +-
.../src/layers/Grid/stories/payload.ts | 41 +
.../src/layers/Hex/stories}/Hex.stories.tsx | 45 +-
.../src/layers/Hex/stories/payload.ts | 46 +
.../src/layers/Path/stories}/Path.stories.tsx | 38 +-
.../src/layers/Path/stories/payload.ts | 26 +-
.../layers/Polygon/stories}/Polygon.stories.tsx | 174 +-
.../src/layers/Polygon/stories/geojsonPayload.ts | 77 +
.../src/layers/Polygon/stories/payload.ts} | 65 +-
.../layers/Scatter/stories}/Scatter.stories.tsx | 54 +-
.../src/layers/Scatter/stories/payload.ts | 41 +
.../Screengrid/stories/Screengrid.stories.tsx} | 36 +-
.../src/layers/Screengrid/stories/payload.ts | 44 +
.../legacy-preset-chart-deckgl/src/utils.ts | 2 +-
.../src/BoxPlot/stories/NVD3BoxPlot.stories.tsx | 81 +
.../src/BoxPlot/stories/data.ts | 78 +
.../src/Bubble/stories/NVD3Bubble.stories.tsx | 103 +
.../src/Bubble/stories}/data.ts | 0
.../src/Bullet/stories/NVD3Bullet.stories.tsx | 87 +
.../src/Bullet/stories}/data.ts | 0
.../src/Compare/stories/NVD3Compare.stories.tsx | 208 +
.../src/Compare/stories}/data.ts | 0
.../src/renderers/TextCellRenderer.tsx | 2 +
.../src/stories/AgGridTable.stories.tsx | 100 +
.../plugin-chart-ag-grid-table/src/stories/data.ts | 58 +
.../plugin-chart-ag-grid-table/tsconfig.json | 3 +-
.../plugins/plugin-chart-cartodiagram/package.json | 2 +-
.../src/stories/Cartodiagram.stories.tsx | 208 +
.../plugin-chart-cartodiagram/src/stories/data.ts | 206 +
.../plugin-chart-cartodiagram/tsconfig.json | 3 +-
.../stories}/BigNumberTotal.stories.tsx | 56 +-
.../src/BigNumber/BigNumberTotal/stories}/data.ts | 0
.../stories}/BigNumber.stories.tsx | 76 +-
.../BigNumberWithTrendline/stories}/data.ts | 0
.../src/BoxPlot/stories}/BoxPlot.stories.tsx | 19 +-
.../src/BoxPlot/stories}/data.ts | 0
.../src/Bubble/stories}/BubbleChart.stories.tsx | 43 +-
.../src/Bubble/stories}/data.ts | 0
.../src/Funnel/stories}/Funnel.stories.tsx | 43 +-
.../src/Funnel/stories}/constants.ts | 0
.../src/Gauge/stories/Gauge.stories.tsx | 118 +
.../src/Gauge/stories}/data.ts | 0
.../src/Graph/stories/Graph.stories.tsx | 138 +
.../src/Graph/stories}/data.ts | 0
.../stories}/MixedSeries.stories.tsx | 149 +-
.../src/MixedTimeseries/stories}/negativeData.ts | 0
.../src/MixedTimeseries/transformProps.ts | 2 +-
.../src/Pie/stories}/Pie.stories.tsx | 141 +-
.../plugin-chart-echarts/src/Pie/stories}/data.ts | 0
.../src/Radar/stories}/Radar.stories.tsx | 63 +-
.../src/Radar/stories}/data.ts | 0
.../src/Sunburst/stories}/Sunburst.stories.tsx | 23 +-
.../src/Sunburst/stories}/data.ts | 0
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 21 +-
.../stories}/AreaSeries/AreaSeries.stories.tsx | 67 +-
.../src/Timeseries/stories}/AreaSeries/data.ts | 0
.../src/Timeseries/stories}/Timeseries.stories.tsx | 96 +-
.../src/Timeseries/stories}/confbandData.ts | 0
.../src/Timeseries/stories}/data.ts | 0
.../src/Timeseries/stories}/negativeNumData.ts | 0
.../src/Timeseries/stories}/stackWithNulls.ts | 0
.../src/Timeseries/transformProps.ts | 3 +-
.../src/Timeseries/transformers.ts | 303 +-
.../src/Tree/stories}/Tree.stories.tsx | 163 +-
.../plugin-chart-echarts/src/Tree/stories}/data.ts | 0
.../src/Treemap/stories}/Treemap.stories.tsx | 27 +-
.../src/Treemap/stories}/data.ts | 0
.../src/Waterfall/stories}/Waterfall.stories.tsx | 38 +-
.../src/Waterfall/stories}/data.ts | 0
.../plugins/plugin-chart-echarts/src/constants.ts | 8 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 21 +-
.../test/MixedTimeseries/transformProps.test.ts | 273 +-
.../test/Timeseries/Bar/controlPanel.test.ts | 344 +-
.../test/Timeseries/transformProps.test.ts | 710 +-
.../test/Timeseries/transformers.test.ts | 97 +-
.../plugins/plugin-chart-echarts/test/helpers.ts | 110 +
.../test/utils/transformers.test.ts | 249 +-
.../plugins/plugin-chart-echarts/tsconfig.json | 3 +-
.../src/stories/Handlebars.stories.tsx | 268 +
.../plugin-chart-handlebars/src/stories/data.ts | 129 +
.../plugins/plugin-chart-handlebars/tsconfig.json | 3 +-
.../src/react-pivottable/utilities.ts | 4 +-
.../src/stories/PivotTable.stories.tsx | 119 +
.../src/stories}/testData.ts | 0
.../src/DataTable/components/Pagination.tsx | 10 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 4 +-
.../src/stories}/Table.stories.tsx | 43 +-
.../plugin-chart-table/src/stories/birthNames.json | 25 +
.../plugin-chart-table/src/stories}/testData.ts | 0
.../plugin-chart-table/test/TableChart.test.tsx | 4 +-
.../plugins/plugin-chart-table/tsconfig.json | 3 +-
.../src/stories/WordCloud.stories.tsx | 90 +
.../plugin-chart-word-cloud/src/stories}/data.ts | 0
.../plugins/plugin-chart-word-cloud/tsconfig.json | 3 +-
superset-frontend/scripts/check-custom-rules.js | 2 -
.../scripts/check-storybook-coverage.js | 221 +
superset-frontend/spec/fixtures/mockStore.js | 11 +
.../src/SqlLab/components/App/index.tsx | 8 +-
.../SqlLab/components/AppLayout/AppLayout.test.tsx | 5 +-
.../src/SqlLab/components/AppLayout/index.tsx | 6 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 4 +-
.../src/SqlLab/components/ResultSet/index.tsx | 5 +-
.../src/SqlLab/components/SouthPane/index.tsx | 6 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 2 +
.../SqlLab/components/SqlEditorTopBar/index.tsx | 4 +-
.../src/SqlLab/components/StatusBar/index.tsx | 6 +-
.../SqlLab/components/TableExploreTree/index.tsx | 4 +-
superset-frontend/src/SqlLab/contributions.ts | 41 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +-
.../src/SqlLab/reducers/sqlLab.test.ts | 3 +
.../src/SqlLab/utils/emptyQueryResults.test.ts | 6 +-
.../Chart/DrillBy/useResultsTableView.test.ts | 48 +
.../Chart/DrillBy/useResultsTableView.tsx | 5 +-
.../DatasourceEditor/DatasourceEditor.tsx | 38 +-
.../src/components/FacePile/FacePile.stories.tsx | 2 +-
.../src/components/FacePile/FacePile.test.tsx | 2 +-
.../src/components/FacePile/utils.tsx | 4 +-
.../src/components/ListView/CardCollection.tsx | 6 +-
.../src/components/ListView/Filters/Select.tsx | 13 +-
.../src/components/ListView/Filters/index.tsx | 2 +
superset-frontend/src/components/ListView/types.ts | 8 +-
.../src/components/RowCountLabel/index.tsx | 2 +-
.../ViewListExtension/ViewListExtension.test.tsx | 27 +-
.../DashboardBuilder/DashboardBuilder.tsx | 5 -
.../components/FiltersBadge/FiltersBadge.test.tsx | 4 +-
.../PropertiesModal/hooks/useAccessOptions.ts | 32 +-
.../dashboard/components/PropertiesModal/index.tsx | 17 +-
.../PropertiesModal/sections/AccessSection.tsx | 22 +-
.../gridComponents/Column/Column.test.tsx | 10 +
.../components/gridComponents/Column/Column.tsx | 6 +
.../gridComponents/Markdown/Markdown.test.tsx | 8 +
.../components/gridComponents/Row/Row.test.tsx | 2 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 183 +-
.../FilterBar/FilterControls/FilterControls.tsx | 14 +-
.../components/nativeFilters/FilterBar/index.tsx | 12 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 13 +-
.../FiltersConfigModal/FilterConfigPane.test.tsx | 10 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 4 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 39 +
.../FiltersConfigModal/FiltersConfigModal.tsx | 18 +-
.../components/nativeFilters/selectors.test.ts | 425 +-
.../components/nativeFilters/selectors.ts | 60 +-
.../components/SingleQueryResultPane.tsx | 5 +-
.../src/explore/components/DataTablesPane/types.ts | 1 +
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 143 +
.../components/ExploreChartHeader/index.tsx | 12 +-
.../explore/components/PropertiesModal/index.tsx | 50 +-
.../ColumnSelectPopover.test.tsx | 71 +
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 4 +-
.../AdhocFilterEditPopoverSqlTabContent/index.tsx | 4 +-
.../src/extensions/ExtensionsManager.test.ts | 36 +-
.../src/extensions/ExtensionsManager.ts | 31 +-
.../src/features/alerts/AlertReportModal.tsx | 46 +-
superset-frontend/src/features/alerts/types.ts | 4 +-
.../databases/DatabaseModal/index.test.tsx | 40 +-
.../src/features/databases/DatabaseModal/index.tsx | 15 +-
.../UploadDataModel/UploadDataModal.test.tsx | 6 +-
.../OwnerSelectLabel/OwnerSelectLabel.test.tsx} | 33 +-
.../owners/OwnerSelectLabel/index.tsx} | 71 +-
.../src/features/roles/RoleListEditModal.test.tsx | 37 +
.../src/features/roles/RoleListEditModal.tsx | 12 +-
.../src/features/themes/ThemeModal.test.tsx | 174 +-
.../src/features/themes/ThemeModal.tsx | 65 +-
.../components/Select/SelectFilterPlugin.test.tsx | 118 +
.../components/Select/SelectFilterPlugin.tsx | 5 -
.../src/pages/AlertReportList/index.tsx | 11 +-
.../AnnotationLayerList.test.tsx | 2 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 4 +-
superset-frontend/src/pages/ChartList/index.tsx | 6 +-
.../pages/CssTemplateList/CssTemplateList.test.tsx | 2 +-
.../src/pages/DashboardList/index.tsx | 6 +-
superset-frontend/src/pages/DatasetList/index.tsx | 6 +-
.../ExecutionLogList/ExecutionLogList.test.tsx | 2 +-
.../src/pages/ExecutionLogList/index.tsx | 12 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
.../src/pages/RolesList/RolesList.test.tsx | 6 +-
.../pages/SavedQueryList/SavedQueryList.test.tsx | 2 +-
.../UserRegistrations/UserRegistrations.test.tsx | 2 +-
.../src/pages/UsersList/UsersList.test.tsx | 4 +-
superset-frontend/src/theme/ThemeController.ts | 147 +-
.../src/theme/hooks/useThemeValidation.test.ts | 133 +
.../src/theme/hooks/useThemeValidation.ts | 155 +
.../src/theme/tests/ThemeController.test.ts | 196 +
.../src/theme/utils/antdTokenNames.test.ts | 108 +
.../src/theme/utils/antdTokenNames.ts | 115 +
.../theme/utils/themeStructureValidation.test.ts | 346 +
.../src/theme/utils/themeStructureValidation.ts | 191 +
superset-frontend/src/types/Owner.ts | 1 +
superset-frontend/src/views/CRUD/utils.tsx | 83 +-
superset-frontend/tsconfig.json | 2 +
superset-frontend/webpack.config.js | 15 +-
superset-websocket/package-lock.json | 28 +-
superset-websocket/package.json | 4 +-
.../utils/client-ws-app/package-lock.json | 12 +-
superset/charts/api.py | 1 +
superset/charts/schemas.py | 1 +
superset/commands/tasks/submit.py | 3 +-
superset/common/query_context_processor.py | 12 +
superset/config.py | 2 +-
superset/daos/dataset.py | 41 +-
superset/dashboards/api.py | 1 +
superset/datasets/schemas.py | 1 +
superset/mcp_service/chart/tool/generate_chart.py | 270 +-
superset/mcp_service/chart/tool/get_chart_data.py | 80 +-
superset/mcp_service/chart/tool/get_chart_info.py | 20 +-
.../mcp_service/chart/tool/get_chart_preview.py | 149 +-
superset/mcp_service/chart/tool/list_charts.py | 27 +-
superset/mcp_service/chart/tool/update_chart.py | 83 +-
.../mcp_service/chart/tool/update_chart_preview.py | 23 +-
.../tool/add_chart_to_existing_dashboard.py | 135 +-
.../dashboard/tool/generate_dashboard.py | 99 +-
.../dashboard/tool/get_dashboard_info.py | 20 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 25 +-
superset/mcp_service/dataset/schemas.py | 1 +
.../mcp_service/dataset/tool/get_dataset_info.py | 20 +-
superset/mcp_service/dataset/tool/list_datasets.py | 28 +-
.../explore/tool/generate_explore_link.py | 20 +-
superset/mcp_service/middleware.py | 118 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 44 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 6 +-
.../mcp_service/system/tool/get_instance_info.py | 4 +-
superset/mcp_service/system/tool/get_schema.py | 6 +-
superset/mcp_service/system/tool/health_check.py | 8 +-
superset/models/dashboard.py | 32 +-
superset/models/slice.py | 25 +-
superset/reports/api.py | 7 +
superset/security/api.py | 10 +-
superset/sql/dialects/pinot.py | 2 +
superset/sql/parse.py | 10 +-
superset/static/service-worker.js | 1492 +-
superset/tasks/decorators.py | 2 -
superset/tasks/filters.py | 91 +-
superset/thumbnails/digest.py | 2 +-
tests/integration_tests/charts/api_tests.py | 1 +
tests/integration_tests/model_tests.py | 2 +-
tests/integration_tests/reports/api_tests.py | 20 +-
tests/integration_tests/security/api_tests.py | 111 +-
.../tasks/commands/test_cancel.py | 60 +-
.../tasks/commands/test_submit.py | 13 +-
.../tasks/test_subscription_visibility.py | 224 +
.../integration_tests/tasks/test_sync_join_wait.py | 7 +-
.../commands/importers/v1/examples_test.py | 133 +-
.../common/test_query_context_processor.py | 68 +
.../databases/commands/importers/v1/import_test.py | 33 +
.../api => tests/unit_tests/examples}/__init__.py | 0
tests/unit_tests/examples/data_loading_test.py | 204 +
tests/unit_tests/examples/generic_loader_test.py | 233 +
tests/unit_tests/examples/utils_test.py | 206 +
tests/unit_tests/extensions/test_types.py | 11 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 46 +
.../mcp_service/test_middleware_logging.py | 207 +
tests/unit_tests/sql/parse_tests.py | 17 +
tests/unit_tests/thumbnails/test_digest.py | 7 +-
416 files changed, 21840 insertions(+), 35144 deletions(-)
delete mode 100644 .github/workflows/superset-applitool-cypress.yml
delete mode 100644 .github/workflows/superset-applitools-storybook.yml
delete mode 100644 docs/static/img/applitools.png
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components =>
.storybook/shared}/ErrorMessage.tsx (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components =>
.storybook/shared}/Expandable.tsx (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components =>
.storybook/shared}/ResizableChartDemo.tsx (91%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components =>
.storybook/shared}/ResizablePanel.tsx (81%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components =>
.storybook/shared}/VerifyCORS.tsx (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/shared/components/createQuery.story.tsx
=> .storybook/shared/createQueryStory.tsx} (98%)
rename superset-frontend/{packages/superset-ui-demo/storybook =>
.storybook}/shared/dummyDatasource.ts (100%)
copy superset-frontend/{src/components/Modal => .storybook/shared}/index.ts
(61%)
delete mode 100644 superset-frontend/applitools.config.js
delete mode 100644 superset-frontend/cypress-base/applitools.config.js
delete mode 100644
superset-frontend/cypress-base/cypress/applitools/chartlist.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/applitools/dashboard.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/applitools/dashboardlist.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/applitools/explore.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/applitools/sqllab.test.ts
create mode 100644
superset-frontend/packages/superset-core/src/utils/isBlank.test.ts
copy superset-frontend/{src/dashboard/util/componentIsResizable.ts =>
packages/superset-core/src/utils/isBlank.ts} (74%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-chart
=> superset-ui-core/src/chart/stories}/ChartDataProvider.stories.tsx (96%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-chart
=> superset-ui-core/src/chart/stories}/SuperChart.stories.tsx (98%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-color
=> superset-ui-core/src/color/stories}/ColorPalettes.stories.tsx (100%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-color
=> superset-ui-core/src/color/stories}/RenderPalettes.tsx (100%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-color
=> superset-ui-core/src/color/stories}/color-styles.css (87%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/CachedLabel/CachedLabel.stories.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown/SafeMarkdown.stories.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/TableCollection/TableCollection.stories.tsx
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-connection
=> superset-ui-core/src/connection/stories}/Connection.stories.tsx (92%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-number-format
=> superset-ui-core/src/number-format/stories}/NumberFormat.stories.tsx (100%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-theme
=> superset-ui-core/src/style/stories}/Theme.stories.tsx (100%)
rename
superset-frontend/packages/{superset-ui-demo/storybook/stories/superset-ui-time-format
=> superset-ui-core/src/time-format/stories}/TimeFormat.stories.tsx (100%)
delete mode 100644 superset-frontend/packages/superset-ui-demo/.babelrc.json
delete mode 100644
superset-frontend/packages/superset-ui-demo/.storybook/main.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/.storybook/preview.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/.storybook/storybook.css
delete mode 100644
superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx
delete mode 100644 superset-frontend/packages/superset-ui-demo/CHANGELOG.md
delete mode 100644 superset-frontend/packages/superset-ui-demo/README.md
delete mode 100644 superset-frontend/packages/superset-ui-demo/package.json
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/ExampleApp.stories.jsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-calendar/LegacyPluginChartCalendar.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/MapBox.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-partition/Partition.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-rose/Rose.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Arc/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Grid/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Hex/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Polygon/geojsonPayload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Polygon/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Scatter/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Screengrid/payload.js
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/BoxPlot/NVD3BoxPlot.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/BoxPlot/data.ts
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/BoxPlot/stories/basic.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bubble/NVD3Bubble.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bubble/stories/basic.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bullet/NVD3Bullet.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bullet/stories/basic.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Compare/NVD3Compare.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Compare/stories/basic.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Compare/stories/timeFormat.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Gauge/Gauge.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Graph/Graph.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-pivot-table/PivotTable.stories.tsx
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/birthNames.json
delete mode 100644
superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud/WordCloud.stories.tsx
delete mode 100644 superset-frontend/packages/superset-ui-demo/tsconfig.json
copy superset-frontend/{src/features/rls/types.ts =>
playwright/components/modals/ChartPropertiesModal.ts} (50%)
create mode 100644 superset-frontend/playwright/helpers/api/chart.ts
create mode 100644 superset-frontend/playwright/pages/ChartListPage.ts
create mode 100644
superset-frontend/playwright/tests/experimental/chart/chart-list.spec.ts
create mode 100644
superset-frontend/playwright/tests/experimental/chart/chart-test-helpers.ts
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-calendar/src/stories/LegacyPluginChartCalendar.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-calendar
=> plugins/legacy-plugin-chart-calendar/src/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-chord
=>
plugins/legacy-plugin-chart-chord/src/stories}/LegacyPluginChartChord.stories.tsx
(59%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-chord
=> plugins/legacy-plugin-chart-chord/src/stories}/data.ts (89%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map
=> plugins/legacy-plugin-chart-country-map/src/stories}/CountryMap.stories.tsx
(88%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-horizon
=> plugins/legacy-plugin-chart-horizon/src/stories}/Horizon.stories.tsx (63%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-horizon
=> plugins/legacy-plugin-chart-horizon/src/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-map-box/src/stories/MapBox.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box
=> plugins/legacy-plugin-chart-map-box/src/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-paired-t-test
=> plugins/legacy-plugin-chart-paired-t-test/src/stories}/TTest.stories.tsx
(55%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-paired-t-test
=> plugins/legacy-plugin-chart-paired-t-test/src/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-parallel-coordinates
=>
plugins/legacy-plugin-chart-parallel-coordinates/src/stories}/ParallelCoordinates.stories.tsx
(56%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-parallel-coordinates
=> plugins/legacy-plugin-chart-parallel-coordinates/src/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-partition/src/stories/Partition.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-partition
=> plugins/legacy-plugin-chart-partition/src/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-rose/src/stories/Rose.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-rose
=> plugins/legacy-plugin-chart-rose/src/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-world-map
=> plugins/legacy-plugin-chart-world-map/src/stories}/WorldMap.stories.tsx
(65%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-world-map
=> plugins/legacy-plugin-chart-world-map/src/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Arc
=> plugins/legacy-preset-chart-deckgl/src/layers/Arc/stories}/Arc.stories.tsx
(72%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Arc/stories/payload.ts
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Grid
=>
plugins/legacy-preset-chart-deckgl/src/layers/Grid/stories}/Grid.stories.tsx
(70%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Grid/stories/payload.ts
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Hex
=> plugins/legacy-preset-chart-deckgl/src/layers/Hex/stories}/Hex.stories.tsx
(70%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Hex/stories/payload.ts
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path
=>
plugins/legacy-preset-chart-deckgl/src/layers/Path/stories}/Path.stories.tsx
(76%)
copy docs/babel.config.js =>
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/stories/payload.ts
(71%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Polygon
=>
plugins/legacy-preset-chart-deckgl/src/layers/Polygon/stories}/Polygon.stories.tsx
(65%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/stories/geojsonPayload.ts
copy
superset-frontend/{packages/superset-ui-core/src/components/Table/cell-renderers/NumericCell/NumericCell.stories.tsx
=> plugins/legacy-preset-chart-deckgl/src/layers/Polygon/stories/payload.ts}
(52%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Scatter
=>
plugins/legacy-preset-chart-deckgl/src/layers/Scatter/stories}/Scatter.stories.tsx
(67%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/stories/payload.ts
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Screengrid/Stories.tsx
=>
plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/stories/Screengrid.stories.tsx}
(75%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/stories/payload.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/stories/NVD3BoxPlot.stories.tsx
create mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/BoxPlot/stories/data.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bubble/stories/NVD3Bubble.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bubble
=> plugins/legacy-preset-chart-nvd3/src/Bubble/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/Bullet/stories/NVD3Bullet.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Bullet
=> plugins/legacy-preset-chart-nvd3/src/Bullet/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/Compare/stories/NVD3Compare.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/Compare
=> plugins/legacy-preset-chart-nvd3/src/Compare/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/stories/AgGridTable.stories.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/stories/data.ts
create mode 100644
superset-frontend/plugins/plugin-chart-cartodiagram/src/stories/Cartodiagram.stories.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-cartodiagram/src/stories/data.ts
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-big-number/BigNumberTotal
=>
plugins/plugin-chart-echarts/src/BigNumber/BigNumberTotal/stories}/BigNumberTotal.stories.tsx
(57%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-big-number/BigNumberTotal
=> plugins/plugin-chart-echarts/src/BigNumber/BigNumberTotal/stories}/data.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-big-number/BigNumber
=>
plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/stories}/BigNumber.stories.tsx
(63%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-big-number/BigNumber
=>
plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/stories}/data.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/BoxPlot
=> plugins/plugin-chart-echarts/src/BoxPlot/stories}/BoxPlot.stories.tsx (88%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/BoxPlot
=> plugins/plugin-chart-echarts/src/BoxPlot/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Bubble
=> plugins/plugin-chart-echarts/src/Bubble/stories}/BubbleChart.stories.tsx
(90%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Bubble
=> plugins/plugin-chart-echarts/src/Bubble/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Funnel
=> plugins/plugin-chart-echarts/src/Funnel/stories}/Funnel.stories.tsx (84%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Funnel
=> plugins/plugin-chart-echarts/src/Funnel/stories}/constants.ts (100%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/Gauge/stories/Gauge.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Gauge
=> plugins/plugin-chart-echarts/src/Gauge/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/Graph/stories/Graph.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Graph
=> plugins/plugin-chart-echarts/src/Graph/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/MixedSeries
=>
plugins/plugin-chart-echarts/src/MixedTimeseries/stories}/MixedSeries.stories.tsx
(77%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/MixedSeries
=> plugins/plugin-chart-echarts/src/MixedTimeseries/stories}/negativeData.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Pie
=> plugins/plugin-chart-echarts/src/Pie/stories}/Pie.stories.tsx (77%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Pie
=> plugins/plugin-chart-echarts/src/Pie/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Radar
=> plugins/plugin-chart-echarts/src/Radar/stories}/Radar.stories.tsx (59%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Radar
=> plugins/plugin-chart-echarts/src/Radar/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Sunburst
=> plugins/plugin-chart-echarts/src/Sunburst/stories}/Sunburst.stories.tsx
(86%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Sunburst
=> plugins/plugin-chart-echarts/src/Sunburst/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts
=>
plugins/plugin-chart-echarts/src/Timeseries/stories}/AreaSeries/AreaSeries.stories.tsx
(85%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/AreaSeries/data.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Timeseries
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/Timeseries.stories.tsx
(84%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Timeseries
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/confbandData.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Timeseries
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Timeseries
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/negativeNumData.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Timeseries
=> plugins/plugin-chart-echarts/src/Timeseries/stories}/stackWithNulls.ts
(100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Tree
=> plugins/plugin-chart-echarts/src/Tree/stories}/Tree.stories.tsx (50%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Tree
=> plugins/plugin-chart-echarts/src/Tree/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap
=> plugins/plugin-chart-echarts/src/Treemap/stories}/Treemap.stories.tsx (85%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Treemap
=> plugins/plugin-chart-echarts/src/Treemap/stories}/data.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Waterfall
=> plugins/plugin-chart-echarts/src/Waterfall/stories}/Waterfall.stories.tsx
(68%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Waterfall
=> plugins/plugin-chart-echarts/src/Waterfall/stories}/data.ts (100%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/helpers.ts
create mode 100644
superset-frontend/plugins/plugin-chart-handlebars/src/stories/Handlebars.stories.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-handlebars/src/stories/data.ts
create mode 100644
superset-frontend/plugins/plugin-chart-pivot-table/src/stories/PivotTable.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-pivot-table
=> plugins/plugin-chart-pivot-table/src/stories}/testData.ts (100%)
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table
=> plugins/plugin-chart-table/src/stories}/Table.stories.tsx (90%)
create mode 100644
superset-frontend/plugins/plugin-chart-table/src/stories/birthNames.json
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table
=> plugins/plugin-chart-table/src/stories}/testData.ts (100%)
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/src/stories/WordCloud.stories.tsx
rename
superset-frontend/{packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-word-cloud
=> plugins/plugin-chart-word-cloud/src/stories}/data.ts (100%)
create mode 100644 superset-frontend/scripts/check-storybook-coverage.js
copy superset-frontend/src/{components/ErrorMessage/IssueCode.test.tsx =>
features/owners/OwnerSelectLabel/OwnerSelectLabel.test.tsx} (54%)
copy superset-frontend/src/{explore/components/optionRenderers.tsx =>
features/owners/OwnerSelectLabel/index.tsx} (50%)
create mode 100644 superset-frontend/src/theme/hooks/useThemeValidation.test.ts
create mode 100644 superset-frontend/src/theme/hooks/useThemeValidation.ts
create mode 100644 superset-frontend/src/theme/utils/antdTokenNames.test.ts
create mode 100644 superset-frontend/src/theme/utils/antdTokenNames.ts
create mode 100644
superset-frontend/src/theme/utils/themeStructureValidation.test.ts
create mode 100644
superset-frontend/src/theme/utils/themeStructureValidation.ts
create mode 100644
tests/integration_tests/tasks/test_subscription_visibility.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/examples}/__init__.py (100%)
create mode 100644 tests/unit_tests/examples/data_loading_test.py
create mode 100644 tests/unit_tests/examples/generic_loader_test.py
create mode 100644 tests/unit_tests/examples/utils_test.py
create mode 100644 tests/unit_tests/mcp_service/test_middleware_logging.py