This is an automated email from the ASF dual-hosted git repository.
enzomartellucci pushed a change to branch enxdev/fix/dashboard-edit-mode
in repository https://gitbox.apache.org/repos/asf/superset.git
from 422bba62294 fix test
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 440602ef344 fix(utils): datetime_to_epoch function is fixed to
timezone aware epoch (#37979)
add 5300f65a74e chore(deps): bump qs from 6.14.1 to 6.14.2 in
/superset-frontend (#37936)
add d748ed19ced chore(deps): bump hot-shots from 13.2.0 to 14.0.0 in
/superset-websocket (#37993)
add 232b34d9443 chore(deps-dev): bump webpack-sources from 3.3.3 to 3.3.4
in /superset-frontend (#38004)
add eee3af57759 chore(deps-dev): bump oxlint from 1.46.0 to 1.47.0 in
/superset-frontend (#38005)
add 982e2c1ef7f chore(deps-dev): bump webpack from 5.105.0 to 5.105.2 in
/superset-frontend (#38003)
add c873225308e chore(deps-dev): bump jsdom from 28.0.0 to 28.1.0 in
/superset-frontend (#37997)
add d47a7105dfa chore(deps): bump caniuse-lite from 1.0.30001769 to
1.0.30001770 in /docs (#37994)
add 2c9f0c1c2a8 chore(deps-dev): bump wait-on from 9.0.3 to 9.0.4 in
/superset-frontend (#37999)
add 22ac5e02b60 fix(deckgl): remove dataset field from Deck.gl Layer
Visibility Display controls (#37611)
add 8853ff19d48 chore(websocket): migrate external uuid usage with Node's
native UUID generator (#37101)
add 7b21979fa3b fix(charts): Force refresh uses async mode when GAQ is
enabled (#37845)
add 3e3c9686de8 perf(dashboard): Batch RLS filter lookups for dashboard
digest computation (#37941)
add 84f1ee44093 feat: added conditional formatting enhancements string to
pivot table (#35863)
add 604d49f5579 chore(deps): bump datamaps from 0.5.9 to 0.5.10 in
/superset-frontend (#37913)
add 9566e8a9c6a chore(deps-dev): bump
eslint-plugin-react-you-might-not-need-an-effect from 0.8.5 to 0.9.1 in
/superset-frontend (#38000)
add 5cd829f13c8 fix(mcp): handle more chart types in get_chart_data
fallback query construction (#37969)
add f7218e7a192 feat(mcp): expose current user identity in
get_instance_info and add created_by_fk filter (#37967)
add aec1f6edce9 fix(mcp): use last data-bearing statement in execute_sql
response (#37968)
add 5a777c0f45f feat(matrixify): add single metric constraint (#37169)
add 746e266e901 chore(deps): bump swagger-ui-react from 5.31.0 to 5.31.1
in /docs (#38023)
add b0f9a73f63d chore(deps-dev): bump typescript-eslint from 8.54.0 to
8.56.0 in /superset-websocket (#38020)
add 5efc7ea5a51 chore(deps-dev): bump typescript-eslint from 8.55.0 to
8.56.0 in /docs (#38024)
add 868e719c60e chore(deps-dev): bump oxlint from 1.47.0 to 1.48.0 in
/superset-frontend (#38055)
add 65c460c9d26 chore(deps-dev): bump @swc/plugin-emotion from 14.5.0 to
14.6.0 in /superset-frontend (#38053)
add cd4cd537260 chore(deps-dev): bump css-loader from 7.1.3 to 7.1.4 in
/superset-frontend (#38050)
add 090eab099c0 chore(deps): bump storybook from 8.6.15 to 8.6.16 in /docs
(#38043)
add a30492f55e1 fix(plugin/cal-heatmap): properly color tooltip's text for
both dark/light theme (#38010)
add 9131739f98b fix(home): null check for possibly undefined filtered
other table data due to insufficient permission (#37983)
add 7b56fc1714c fix(docs): correct DB module filename for editing + update
DB metadata file (#37990)
add 0d2c8fd3737 chore(deps): bump @storybook/core from 8.6.15 to 8.6.16 in
/docs (#38046)
add 21481eef4fc chore(deps): bump the storybook group in /docs with 9
updates (#38067)
add 29f499528ff chore(deps-dev): bump eslint-plugin-testing-library from
7.15.4 to 7.16.0 in /superset-frontend (#38066)
add af3e0882331 build(deps): resolve GHSA-36jr-mh4h-2g58 by upgrading
d3-color to 3.1.0 (#37981)
add 11a36ff4887 chore(deps-dev): bump the storybook group across 1
directory with 11 updates (#38068)
add 9ec56f5f02b fix: Include app_root in next param (#37942)
add 33441ccf3db feat: add formatting column and formatting object to
conditional formating table (#35897)
add f54bbdc06b3 chore(deps): bump dawidd6/action-download-artifact from 14
to 15 (#38060)
add de079a7b199 feat(deps)!: bump postgresql from 16 to 17 (#37782)
add 6b80135aa28 chore(lint): enforce more strict eslint/oxlint rules
(batch 2) (#37884)
add c175346808a fix(table-charts): Prevent time grain from altering Raw
Records in Tables + Interactive Tables (#37561)
add 0b77ace1109 chore: fix lint issue with `no-unsafe-optional-chaining`
rule (#38103)
add f5a5a804e23 perf(dashboard): skip thumbnail_url computing on single
dashboard endpoint (#38015)
add b7a3224f040 feat: Larger folder drag area in folders editor (#38102)
add e12140beb65 fix: Warning toast copy in folders editor (#38099)
add 86c8fa5cd7b fix: Badge count in folders editor (#38100)
add f049d3e34aa fix: Search in folders editor with verbose names (#38101)
add 1f76944c2b1 fix: Add editors to ContributionConfig and additional
properties to EditorKeyword (#38098)
add 5cc8ae5427d chore(deps): bump ol from 7.5.2 to 10.8.0 in
/superset-frontend (#37961)
add 6a61baf5be8 fix(alerts): show friendly filter names in report edit
modal (#38054)
add 3868821dc81 fix(webpack): skip building service worker in dev (#38106)
add 5278deaf635 fix(metrics): normalize legacy currency strings (#37455)
add f4acce5727f fix(table): preserve time grain aggregation when temporal
column casing changes (#37893)
add 88f0e322e32 chore(deps): bump baseline-browser-mapping from 2.9.19 to
2.10.0 in /docs (#38113)
add 58d8aa01f82 chore(deps): bump react-intersection-observer from 10.0.2
to 10.0.3 in /superset-frontend (#38114)
add 69653dfd08b chore(deps-dev): bump baseline-browser-mapping from 2.9.19
to 2.10.0 in /superset-frontend (#38116)
add 1ecff6fe5c1 fix(thumbnails): stabilize digest by sorting datasources
and charts (#38079)
add 9f8b212ccc7 feat(mcp): add LIKE, ILIKE, IN, NOT IN filter operators to
MCP chart tools (#38071)
add 79372465757 fix(button): use colorLink token for link-style buttons
(#38121)
add e30a9caba51 fix(dataset-modal): fix folders tab scrollbar by
establishing proper flex chain (#38123)
add 6fdaa8e9b36 fix(crud): reorder table actions + improve react
memoization + improve hooks (#37897)
add 1a77e171799 fix(chart-customizations): support migration of dynamic
group by (#37176)
add 6f34ba7d4a9 fix(table-chart): support orderby adhoc columns with
server-side pagination (#37521)
add 2d44f52ad16 fix(encryption): resolve SECRET_KEY lazily to fix silent
re-encrypt-secrets failures (#37982)
add 44d6b6a5139 fix(table): preserve line breaks in cell content modal
(#37036)
add cff854b06e3 chore(deps-dev): bump oxlint from 1.48.0 to 1.49.0 in
/superset-frontend (#38115)
add b290f712452 fix(explore): prevent theme object from being passed to
ReactAce in TextAreaControl (#38117)
add b565128fe76 fix(charts): improve error display for failed charts in
dashboards (#37939)
add 577b965a601 chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 in
/superset-frontend (#38132)
add 3d6644864d4 build(deps): migrate to lighter and modern `react-icons`
(#38125)
add 987b6a6f041 chore(deps): bump swagger-ui-react from 5.31.1 to 5.31.2
in /docs (#38140)
add 5e6524954c8 chore(deps): pin react-icons to 5.4.0 in
/superset-frontend (#38144)
add 82fce8d7de8 chore(deps-dev): bump @types/node from 25.2.3 to 25.3.0 in
/superset-frontend (#38143)
add 5bee32ea93d chore(deps): bump aquasecurity/trivy-action from 0.34.0 to
0.34.1 (#38138)
add 6424194c874 chore(deps): bump underscore from 1.13.7 to 1.13.8 in
/superset-frontend (#38142)
add 159fb5d6f4a chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 in
/superset-frontend/cypress-base (#38131)
add a87a006aaeb ci: declare explicit permissions in maintenance workflows
(#38159)
add 672a3805876 chore(frontend): enable additional oxlint rules for better
code hygiene (#38145)
add 3f64ad3da5e fix(i18n): wrap untranslated frontend strings and add i18n
lint rule (#37776)
add 2a3567d2f11 fix(mcp): Remove unsupported thumbnail/preview URLs and
internal fields from MCP schemas (#38109)
add cbb80f04627 refactor(extensions): simplify registerEditorProvider API
(#38127)
add 6f3a200c190 chore(deps-dev): bump @types/lodash from 4.17.23 to
4.17.24 in /superset-websocket (#38179)
add 131a97b6579 fix(handlebars): add missing currencyformatter.js
dependency (#38173)
add 50cc1b93d22 fix(security): fix Guest Token API 422 error by disabling
JWT sub claim verification (#38177)
add 6e94a6c21af fix(mcp): fix dashboard chart placement with proper COLUMN
layout and tab support (#37970)
add 40f609fdce2 fix(extensions): enforce correct naming conventions
(#38167)
add 228b5984096 feat: Labels for encrypted fields (#38075)
add c4eb7de6de8 fix(excel): remove unwanted index column from Excel
exports (#38176)
add e06427d1efe feat(embedded): add feature flag to disable logout button
in embedded contexts (#37537)
add 8f070169a59 perf(datasource): add pagination to datasource editor
tables to prevent browser freeze (#37555)
add 8a74424545a fix(types): add explicit types for extendedDayjs plugin
methods (#37923)
add 615f13419cb fix(jest): ignore storybook-static and package __mocks__
directories (#37946)
add 8eb30468884 fix(docs): guard window reference in logging.ts for SSR
compatibility (#38201)
add b8459c15b86 chore(deps-dev): bump @typescript-eslint/parser from
8.56.0 to 8.56.1 in /docs (#38211)
add f60432e34cf fix: Allow non-owners to fave/unfave charts (#38095)
add fca8a495611 feat: auto refresh dashboard (#37459)
add 974bee14c3e fix(extensions): make LOCAL_EXTENSIONS loading resilient
to individual failures (#38217)
add 7b04d251d60 fix(build): restore automatic .d.ts generation in dev mode
(#38202)
add 35c135852e8 feat(extensions): add mandatory publisher field to
extension metadata (#38200)
add 0d66accc377 chore(build): prevent opening Dependabot PRs for `@rjsf/*`
deps due to React 18 constraint (#37976)
add 97b8585fe5d chore(deps-dev): bump typescript-eslint from 8.56.0 to
8.56.1 in /docs (#38209)
add aa475734ef9 chore(deps-dev): bump eslint from 9.39.2 to 10.0.2 in
/superset-websocket (#38204)
add e4a7cd30c34 fix(GAQ): don't use async queries when cache timeout is -1
(#38089)
add 76a2559b2b8 fix(ci): revert "chore(deps): bump
JustinBeckwith/linkinator-action from 2.3 to 2.4" (#38164)
add 4809903bb80 chore(deps): bump markdown-to-jsx from 9.7.4 to 9.7.6 in
/superset-frontend (#38225)
add 9e4a88dfa2b chore(deps): bump antd from 6.3.0 to 6.3.1 in /docs
(#38221)
add 01c1b2eb8f0 chore(deps-dev): bump @types/lodash from 4.17.23 to
4.17.24 in /superset-frontend (#38224)
add 5eb35a47957 fix(reports): validate database field on PUT report
schedule (#38084)
add 1cd35bb1029 feat(mcp): dynamic feature availability via menus and
feature flags (#37964)
add 30849079318 feat(mcp): support unsaved state in Explore and Dashboard
tools (#37183)
add a1312a86e88 fix(mcp): normalize column names to fix time series filter
prompt issue (#37187)
add b543358d2f5 chore(deps-dev): bump @swc/core from 1.15.11 to 1.15.13 in
/superset-frontend (#38237)
add 1b605c4ddad chore(deps): bump fs-extra from 11.3.2 to 11.3.3 in
/superset-frontend (#38234)
add 79b2647481b chore(deps): bump @swc/core from 1.15.11 to 1.15.13 in
/docs (#38207)
add 37a46370181 chore(deps-dev): bump typescript-eslint from 8.56.0 to
8.56.1 in /superset-websocket (#38203)
add 438a9274206 chore(deps-dev): bump oxlint from 1.49.0 to 1.50.0 in
/superset-frontend (#38240)
add c54b21ef988 fix(mcp): add eager loading to get_info tools to prevent
N+1 query timeouts (#38129)
add cc1128a404a feat(mcp): add response size guard to prevent oversized
responses (#37200)
add eef4d95c229 fix(mcp): add dataset validation for chart tools (#37185)
add abf0b7cf4b8 fix(mcp): use broad Exception in outermost tool-level
handlers (#38254)
add 26053a8b5d3 fix(alert-modal): show the add filter button on firefox
(#38093)
add 2b6c745444b fix(ci): use OIDC auth token for successful Codecov upload
(#38218)
add f04705f46c8 Merge branch 'master' into enxdev/fix/dashboard-edit-mode
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 100 +-
.github/workflows/bashlib.sh | 23 -
.github/workflows/dependency-review.yml | 6 +-
.github/workflows/docker.yml | 2 +-
.github/workflows/no-hold-label.yml | 3 +
.github/workflows/pre-commit.yml | 3 +
.github/workflows/superset-app-cli.yml | 2 +-
.github/workflows/superset-applitool-cypress.yml | 91 -
.../workflows/superset-applitools-storybook.yml | 52 -
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 4 +-
.github/workflows/superset-e2e.yml | 4 +-
.github/workflows/superset-frontend.yml | 28 +-
.github/workflows/superset-playwright.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.github/workflows/superset-python-presto-hive.yml | 4 +-
.github/workflows/tech-debt.yml | 3 +
UPDATING.md | 36 +
docker-compose-image-tag.yml | 2 +-
docker-compose-light.yml | 2 +-
docker-compose-non-dev.yml | 2 +-
docker-compose.yml | 2 +-
docs/.nvmrc | 2 +-
docs/developer_portal/extensions/development.md | 44 +-
.../extensions/extension-points/editors.md | 8 +-
docs/developer_portal/extensions/quick-start.md | 73 +-
.../guidelines/frontend-style-guidelines.md | 2 +-
docs/docs/configuration/configuring-superset.mdx | 8 +-
docs/docs/configuration/networking-settings.mdx | 18 +
docs/docusaurus.config.ts | 1 -
docs/i18n/en/docusaurus-theme-classic/footer.json | 2 +-
docs/package.json | 35 +-
docs/src/components/databases/DatabasePage.tsx | 8 +-
docs/src/data/databases.json | 170 +-
docs/static/feature-flags.json | 8 +
docs/static/img/applitools.png | Bin 37046 -> 0 bytes
docs/yarn.lock | 1010 +-
helm/superset/Chart.lock | 6 +-
helm/superset/Chart.yaml | 4 +-
helm/superset/README.md | 4 +-
pyproject.toml | 4 +-
requirements/base.txt | 2 +-
requirements/development.txt | 2 +-
superset-core/pyproject.toml | 2 +-
.../src/superset_core/extensions/constants.py | 35 +-
.../src/superset_core/extensions/types.py | 35 +-
.../src/superset_extensions_cli/cli.py | 177 +-
.../src/superset_extensions_cli/exceptions.py | 6 +-
.../templates/backend/pyproject.toml.j2 | 2 +-
.../templates/backend/src/package/entrypoint.py.j2 | 2 +-
.../templates/extension.json.j2 | 11 +-
.../templates/frontend/package.json.j2 | 2 +-
.../templates/frontend/webpack.config.js.j2 | 4 +-
.../src/superset_extensions_cli/types.py | 49 +
.../src/superset_extensions_cli/utils.py | 340 +
superset-extensions-cli/tests/conftest.py | 39 +-
superset-extensions-cli/tests/test_cli_build.py | 85 +-
superset-extensions-cli/tests/test_cli_bundle.py | 19 +-
superset-extensions-cli/tests/test_cli_dev.py | 29 +-
superset-extensions-cli/tests/test_cli_init.py | 195 +-
.../tests/test_name_transformations.py | 502 +
superset-extensions-cli/tests/test_templates.py | 127 +-
superset-frontend/.eslintrc.js | 33 +-
superset-frontend/.eslintrc.minimal.js | 5 +-
superset-frontend/.storybook/main.js | 17 +-
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-base/cypress/support/e2e.ts | 1 -
superset-frontend/cypress-base/package-lock.json | 17079 +++++++------------
superset-frontend/cypress-base/package.json | 1 -
superset-frontend/cypress-base/tsconfig.json | 4 +-
superset-frontend/jest.config.js | 8 +-
superset-frontend/oxlint.json | 55 +-
superset-frontend/package-lock.json | 7499 ++------
superset-frontend/package.json | 62 +-
.../plugin-chart/templates/package-lock.erb | 18 -
.../packages/superset-core/package.json | 4 +-
.../packages/superset-core/src/api/editors.ts | 18 +-
.../src/ui/components/Alert/index.tsx | 3 +-
.../superset-core/src/ui/theme/GlobalStyles.tsx | 6 +-
.../superset-core/src/ui/theme/Theme.test.tsx | 2 +-
.../packages/superset-core/src/ui/theme/types.ts | 1 +
.../superset-core/src/ui/theme/utils/themeUtils.ts | 18 +-
.../packages/superset-core/src/utils/index.ts | 1 +
.../superset-core/src/utils/isBlank.test.ts | 59 +
.../superset-core/src/utils/isBlank.ts} | 16 +-
.../packages/superset-core/src/utils/logging.ts | 3 +-
.../superset-ui-chart-controls/package.json | 1 -
.../components/RadioButtonControl.tsx | 103 +-
.../src/shared-controls/matrixifyControls.tsx | 33 +-
.../src/shared-controls/mixins.tsx | 4 +-
.../src/shared-controls/sharedControls.tsx | 14 +-
.../superset-ui-chart-controls/src/types.ts | 11 +
.../src/utils/getColorFormatters.ts | 15 +-
.../components/RadioButtonControl.test.tsx | 420 +
.../test/utils/getColorFormatters.test.ts | 111 +
.../packages/superset-ui-core/package.json | 4 +-
.../components/Matrixify/MatrixifyGridCell.tsx | 3 +-
.../src/chart/components/StatefulChart.tsx | 3 +-
.../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 +-
.../src/components/Button/Button.stories.tsx | 2 +-
.../src/components/Button/index.tsx | 42 +-
.../components/CachedLabel/CachedLabel.stories.tsx | 100 +
.../src/components/Icons/AntdEnhanced.tsx | 10 +-
.../src/components/Label/Label.test.tsx | 5 +
.../src/components/Layout/Layout.test.tsx | 8 +-
.../src/components/Loading/index.tsx | 9 +-
.../src/components/MetadataBar/ContentConfig.tsx | 2 +-
.../src/components/MetadataBar/MetadataBar.tsx | 4 +-
.../src/components/Modal/Modal.tsx | 2 +-
.../components/ModalTrigger/ModalTrigger.test.tsx | 2 +-
.../SafeMarkdown/SafeMarkdown.stories.tsx | 249 +
.../TableCollection/TableCollection.stories.tsx | 530 +
.../src/connection/callApi/callApi.ts | 10 +-
.../src/connection/stories}/Connection.stories.tsx | 12 +-
.../src/models/ExtensibleFunction.ts | 3 +-
.../stories}/NumberFormat.stories.tsx | 0
.../superset-ui-core/src/query/types/Dashboard.ts | 29 +
.../src/style/stories}/Theme.stories.tsx | 0
.../time-format/stories}/TimeFormat.stories.tsx | 0
.../packages/superset-ui-core/src/utils/dates.ts | 40 +-
.../superset-ui-core/src/utils/featureFlags.ts | 1 +
.../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 +-
.../test/connection/callApi/callApi.test.ts | 15 +
.../test/utils/getSelectedText.test.ts | 3 +-
.../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 +-
.../src/ReactCalendar.tsx | 2 +-
.../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 +-
.../legacy-plugin-chart-horizon/package.json | 2 +-
.../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/TTestTable.tsx | 2 +-
.../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 +-
.../plugins/legacy-plugin-chart-rose/src/Rose.ts | 2 +-
.../src/stories/Rose.stories.tsx | 95 +
.../legacy-plugin-chart-rose/src/stories}/data.ts | 0
.../plugins/legacy-plugin-chart-rose/tsconfig.json | 3 +-
.../legacy-plugin-chart-world-map/package.json | 2 +-
.../src/stories}/WorldMap.stories.tsx | 35 +-
.../src/stories}/data.ts | 0
.../legacy-plugin-chart-world-map/tsconfig.json | 3 +-
.../legacy-preset-chart-deckgl/package.json | 6 +-
.../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
.../plugin-chart-ag-grid-table/package.json | 1 -
.../src/AgGridTable/components/CustomPopover.tsx | 20 +-
.../src/AgGridTable/index.tsx | 4 +-
.../src/AgGridTableChart.tsx | 18 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 2 +-
.../src/controlPanel.tsx | 48 +-
.../src/renderers/TextCellRenderer.tsx | 2 +
.../src/stories/AgGridTable.stories.tsx | 100 +
.../plugin-chart-ag-grid-table/src/stories/data.ts | 58 +
.../src/transformProps.ts | 175 +-
.../src/utils/agGridFilterConverter.ts | 82 +-
.../test/AgGridTableChart.test.tsx | 359 +
.../plugin-chart-ag-grid-table/tsconfig.json | 3 +-
.../plugins/plugin-chart-cartodiagram/package.json | 4 +-
.../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
.../plugin-chart-echarts/src/BigNumber/types.ts | 1 +
.../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
.../plugin-chart-echarts/src/Graph/buildQuery.ts | 21 +-
.../src/Graph/stories/Graph.stories.tsx | 138 +
.../src/Graph/stories}/data.ts | 0
.../plugin-chart-echarts/src/Heatmap/Heatmap.tsx | 3 +-
.../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
.../plugin-chart-echarts/src/Sankey/buildQuery.ts | 19 +-
.../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 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 1 +
.../plugin-chart-echarts/src/Tree/buildQuery.ts | 15 +-
.../src/Tree/stories}/Tree.stories.tsx | 163 +-
.../plugin-chart-echarts/src/Tree/stories}/data.ts | 0
.../src/Tree/transformProps.ts | 10 +-
.../src/Treemap/EchartsTreemap.tsx | 2 +-
.../plugin-chart-echarts/src/Treemap/buildQuery.ts | 16 +-
.../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
.../plugin-chart-echarts/src/components/Echart.tsx | 30 +-
.../src/components/ExtraControls.tsx | 7 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 8 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 21 +-
.../plugins/plugin-chart-echarts/src/types.ts | 1 +
.../src/utils/orderby.test.ts} | 19 +-
.../plugin-chart-echarts/src/utils/orderby.ts | 51 +
.../plugin-chart-echarts/src/utils/series.ts | 6 +-
.../test/BigNumber/transformProps.test.ts | 16 +-
.../test/Graph/buildQuery.test.ts | 2 +
.../test/MixedTimeseries/transformProps.test.ts | 273 +-
.../test/Timeseries/Bar/controlPanel.test.ts | 344 +-
.../test/Timeseries/transformProps.test.ts | 726 +-
.../test/Timeseries/transformers.test.ts | 97 +-
.../test/Tree/buildQuery.test.ts | 33 +-
.../plugins/plugin-chart-echarts/test/helpers.ts | 110 +
.../plugin-chart-echarts/test/utils/series.test.ts | 2 +-
.../test/utils/transformers.test.ts | 249 +-
.../plugins/plugin-chart-echarts/tsconfig.json | 3 +-
.../plugins/plugin-chart-handlebars/package.json | 3 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 2 +-
.../src/stories/Handlebars.stories.tsx | 268 +
.../plugin-chart-handlebars/src/stories/data.ts | 129 +
.../plugins/plugin-chart-handlebars/tsconfig.json | 3 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../src/plugin/controlPanel.tsx | 14 +-
.../src/react-pivottable/TableRenderers.tsx | 75 +-
.../src/react-pivottable/utilities.ts | 4 +-
.../src/stories/PivotTable.stories.tsx | 119 +
.../src/stories}/testData.ts | 0
.../test/plugin/transformProps.test.ts | 489 +-
.../plugins/plugin-chart-table/package.json | 2 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 4 +-
.../src/DataTable/components/GlobalFilter.tsx | 5 +-
.../src/DataTable/components/Pagination.tsx | 10 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 84 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 85 +-
.../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/src/transformProps.ts | 212 +-
.../plugin-chart-table/test/TableChart.test.tsx | 69 +-
.../test/controlPanel.test.ts | 0
.../plugins/plugin-chart-table/tsconfig.json | 3 +-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../src/plugin/buildQuery.ts | 17 +-
.../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 | 368 +-
.../scripts/check-storybook-coverage.js | 221 +
superset-frontend/spec/fixtures/mockStore.js | 11 +
.../src/SqlLab/components/App/index.tsx | 8 +-
.../components/EditorWrapper/useKeywords.test.ts | 4 +-
.../SqlLab/components/EditorWrapper/useKeywords.ts | 2 +-
.../src/SqlLab/components/ResultSet/index.tsx | 1 +
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 2 +
.../src/SqlLab/components/TablePreview/index.tsx | 6 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +-
.../src/SqlLab/reducers/getInitialState.ts | 3 +-
.../src/SqlLab/reducers/sqlLab.test.ts | 3 +
.../src/SqlLab/utils/emptyQueryResults.test.ts | 6 +-
.../components/DeckglLayerVisibility/index.ts | 1 +
.../src/components/Chart/Chart.test.tsx | 88 +
superset-frontend/src/components/Chart/Chart.tsx | 22 +-
.../src/components/Chart/ChartRenderer.test.tsx | 70 +-
.../src/components/Chart/ChartRenderer.tsx | 18 +-
.../src/components/Chart/chartAction.ts | 24 +-
.../src/components/Chart/chartReducer.ts | 8 +
.../src/components/Chart/chartReducers.test.ts | 30 +-
.../src/components/DatabaseSelector/index.tsx | 4 +-
.../Datasource/DatasourceModal/index.tsx | 24 +-
.../Datasource/FoldersEditor/TreeItem.styles.ts | 15 +-
.../Datasource/FoldersEditor/TreeItem.tsx | 5 +-
.../Datasource/FoldersEditor/constants.ts | 3 +
.../FoldersEditor/folderOperations.test.ts | 37 +
.../Datasource/FoldersEditor/folderOperations.ts | 8 +-
.../FoldersEditor/hooks/useDragHandlers.ts | 4 +-
.../components/Datasource/FoldersEditor/styles.tsx | 2 +-
.../Datasource/FoldersEditor/treeUtils.test.ts | 59 +
.../Datasource/FoldersEditor/treeUtils.ts | 19 +
.../components/CollectionTable/index.tsx | 57 +-
.../DatasourceEditor/DatasourceEditor.tsx | 461 +-
.../DatasetUsageTab/DatasetUsageTab.test.tsx | 143 +
.../components/DatasetUsageTab/index.tsx | 71 +-
.../tests/DatasourceEditor.test.tsx | 242 +
.../src/components/Datasource/types.ts | 11 +
.../src/components/ErrorMessage/IssueCode.tsx | 3 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 13 +-
.../src/components/FacePile/FacePile.stories.tsx | 2 +-
.../src/components/FacePile/FacePile.test.tsx | 2 +-
.../src/components/FacePile/utils.tsx | 4 +-
.../src/components/GridTable/Header.tsx | 5 +-
.../src/components/JsonModal/index.tsx | 30 +-
.../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 +-
superset-frontend/src/components/ListView/utils.ts | 5 +-
.../src/components/MessageToasts/Toast.tsx | 3 +-
.../src/components/MessageToasts/reducers.ts | 2 +-
.../src/components/RowCountLabel/index.tsx | 2 +-
.../src/core/editors/AceEditorProvider.tsx | 2 +
superset-frontend/src/core/editors/index.ts | 24 +-
.../src/dashboard/actions/autoRefresh.ts | 124 +
.../src/dashboard/actions/dashboardState.test.ts | 164 +
.../src/dashboard/actions/dashboardState.ts | 63 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 10 +-
.../components/AutoRefreshIndicator/index.tsx | 169 +
.../AutoRefreshStatus/StatusIndicatorDot.test.tsx | 114 +
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 168 +
.../StatusTooltipContent.test.tsx | 180 +
.../AutoRefreshStatus/StatusTooltipContent.tsx | 178 +
.../DashboardBuilder/DashboardBuilder.tsx | 5 -
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../components/FiltersBadge/FiltersBadge.test.tsx | 253 +-
.../dashboard/components/FiltersBadge/index.tsx | 27 +-
.../dashboard/components/Header/Header.test.tsx | 128 +-
.../src/dashboard/components/Header/index.tsx | 383 +-
.../src/dashboard/components/Header/types.ts | 26 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 13 +-
.../components/Header/useHeaderAutoRefresh.ts | 410 +
.../PropertiesModal/hooks/useAccessOptions.ts | 32 +-
.../dashboard/components/PropertiesModal/index.tsx | 35 +-
.../PropertiesModal/sections/AccessSection.tsx | 22 +-
.../PropertiesModal/sections/RefreshSection.tsx | 2 +-
.../dashboard/components/RefreshButton/index.tsx | 81 +
.../{index.ts => RefreshFrequencySelect.test.tsx} | 25 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 67 +-
.../dashboard/components/RefreshIntervalModal.tsx | 81 +-
.../components/SliceHeaderControls/index.tsx | 2 +-
.../components/URLShortLinkButton/index.tsx | 2 +-
.../components/gridComponents/Chart/Chart.tsx | 5 +-
.../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 +-
.../components/gridComponents/Tab/Tab.test.tsx | 2 +
.../components/gridComponents/Tab/Tab.tsx | 17 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 183 +-
.../FilterBarSettings/FilterBarSettings.test.tsx | 20 +-
.../FilterBar/FilterBarSettings/index.tsx | 4 +-
.../FilterBar/FilterControls/FilterControls.tsx | 20 +-
.../components/nativeFilters/FilterBar/index.tsx | 12 +-
.../components/nativeFilters/FilterBar/state.ts | 14 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 4 +-
.../FiltersConfigModal/DraggableFilter.tsx | 3 +-
.../FiltersConfigModal/FilterConfigPane.test.tsx | 12 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 2 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 6 +-
.../nativeFilters/FiltersConfigModal/utils.ts | 7 +-
.../components/nativeFilters/selectors.test.ts | 425 +-
.../components/nativeFilters/selectors.ts | 60 +-
.../dashboard/components/nativeFilters/state.ts | 53 +-
.../src/dashboard/containers/DashboardPage.tsx | 15 +-
.../dashboard/contexts/AutoRefreshContext.test.tsx | 137 +
.../src/dashboard/contexts/AutoRefreshContext.tsx | 101 +
.../hooks/useAutoRefreshTabPause.test.tsx | 378 +
.../src/dashboard/hooks/useAutoRefreshTabPause.ts | 146 +
.../src/dashboard/hooks/useCurrentTime.test.ts | 182 +
.../src/dashboard/hooks/useCurrentTime.ts | 67 +
.../dashboard/hooks/useRealTimeDashboard.test.ts | 175 +
.../src/dashboard/hooks/useRealTimeDashboard.ts | 245 +
.../src/dashboard/hooks/useTabVisibility.test.ts | 175 +
.../src/dashboard/hooks/useTabVisibility.ts | 102 +
.../dashboard/reducers/autoRefreshReducer.test.ts | 246 +
.../src/dashboard/reducers/dashboardState.ts | 81 +
superset-frontend/src/dashboard/types.ts | 16 +-
.../src/dashboard/types/autoRefresh.ts | 64 +
.../src/dashboard/util/getOverwriteItems.ts | 2 +-
.../src/dashboard/util/isValidChild.test.ts | 2 +-
.../util/migrateChartCustomization.test.ts | 490 +
.../dashboard/util/migrateChartCustomization.ts | 155 +
superset-frontend/src/dataMask/reducer.ts | 14 +-
.../src/explore/components/EmbedCodeContent.tsx | 2 +-
.../explore/components/PropertiesModal/index.tsx | 52 +-
.../src/explore/components/SaveModal.tsx | 4 +-
.../AnnotationLayerControl/AnnotationLayer.tsx | 4 +-
.../controls/AnnotationLayerControl/index.tsx | 2 +-
.../CollectionControl/CollectionControl.test.tsx | 2 +-
.../controls/CollectionControl/index.tsx | 2 +-
.../ConditionalFormattingControl.tsx | 5 +-
.../FormattingPopover.tsx | 4 +-
.../FormattingPopoverContent.test.tsx | 137 +-
.../FormattingPopoverContent.tsx | 264 +-
.../ConditionalFormattingControl/constants.ts | 72 +
.../controls/ConditionalFormattingControl/types.ts | 25 +-
.../CurrencyControl/CurrencyControl.test.tsx | 29 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 39 +-
.../ColumnSelectPopover.test.tsx | 4 +-
.../ColumnSelectPopoverTrigger.tsx | 20 +-
.../DndColumnSelectControl/useResizeButton.tsx | 4 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 2 +-
.../controls/MetricControl/AdhocMetric.ts | 54 +-
.../MetricControl/AdhocMetricEditPopover/index.tsx | 2 +-
.../controls/SelectAsyncControl/index.tsx | 2 +-
.../explore/components/controls/SelectControl.tsx | 2 +-
.../components/controls/TextAreaControl.tsx | 59 +-
.../controls/VizTypeControl/FastVizSwitcher.tsx | 3 +-
.../VizTypeControl/VizTypeControl.test.tsx | 4 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 4 +-
.../controlUtils/getColumnKeywords.test.tsx | 2 +-
.../src/explore/controlUtils/getColumnKeywords.tsx | 2 +-
.../src/extensions/ExtensionsManager.ts | 4 +-
.../src/features/alerts/AlertReportModal.test.tsx | 284 +-
.../src/features/alerts/AlertReportModal.tsx | 124 +-
superset-frontend/src/features/alerts/types.ts | 4 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 8 +-
.../DatabaseConnectionForm/OAuth2ClientField.tsx | 13 +-
.../DatabaseConnectionForm/ValidatedInputField.tsx | 6 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 8 +-
.../src/features/databases/DatabaseModal/index.tsx | 25 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 2 +-
.../UploadDataModel/UploadDataModal.test.tsx | 6 +-
.../features/databases/UploadDataModel/index.tsx | 9 +-
.../datasets/AddDataset/RightPanel/index.tsx | 4 +-
.../src/features/home/DashboardTable.tsx | 4 +-
.../src/features/home/RightMenu.test.tsx | 83 +
superset-frontend/src/features/home/RightMenu.tsx | 33 +-
.../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 +-
.../src/features/userInfo/UserInfoModal.tsx | 2 +-
.../src/features/users/UserListModal.tsx | 2 +-
.../src/hooks/apiResources/dashboards.test.ts | 23 +-
.../src/hooks/apiResources/dashboards.ts | 35 +-
.../src/pages/AlertReportList/index.tsx | 11 +-
.../AnnotationLayerList.test.tsx | 2 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 4 +-
.../pages/ChartList/ChartList.listview.test.tsx | 4 -
superset-frontend/src/pages/ChartList/index.tsx | 222 +-
.../pages/CssTemplateList/CssTemplateList.test.tsx | 2 +-
.../src/pages/DashboardList/index.tsx | 141 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 227 +-
superset-frontend/src/pages/DatasetList/index.tsx | 147 +-
.../ExecutionLogList/ExecutionLogList.test.tsx | 2 +-
.../src/pages/ExecutionLogList/index.tsx | 12 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
superset-frontend/src/pages/Register/index.tsx | 8 +-
.../src/pages/RolesList/RolesList.test.tsx | 6 +-
.../src/pages/RowLevelSecurityList/index.tsx | 80 +-
.../pages/SavedQueryList/SavedQueryList.test.tsx | 2 +-
.../src/pages/SavedQueryList/index.tsx | 14 +-
superset-frontend/src/pages/ThemeList/index.tsx | 18 +-
superset-frontend/src/pages/UserInfo/index.tsx | 36 +-
.../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/hooks.test.tsx | 889 +-
superset-frontend/src/views/CRUD/hooks.ts | 137 +-
superset-frontend/src/views/CRUD/types.ts | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 143 +-
superset-frontend/tsconfig.json | 2 +
superset-frontend/webpack.config.js | 40 +-
superset-websocket/package-lock.json | 2003 +--
superset-websocket/package.json | 13 +-
superset-websocket/src/index.ts | 4 +-
.../utils/client-ws-app/package-lock.json | 12 +-
superset-websocket/utils/loadtest.js | 4 +-
superset/charts/api.py | 1 +
superset/charts/data/api.py | 39 +-
superset/charts/schemas.py | 1 +
superset/commands/chart/fave.py | 8 -
superset/commands/chart/unfave.py | 8 -
superset/commands/report/exceptions.py | 12 +
superset/commands/report/update.py | 18 +-
superset/commands/tasks/submit.py | 3 +-
superset/common/query_context_processor.py | 16 +-
superset/config.py | 14 +-
superset/connectors/sqla/models.py | 3 +-
superset/daos/base.py | 11 +-
superset/daos/database.py | 6 +-
superset/daos/dataset.py | 41 +-
superset/dashboards/api.py | 29 +-
superset/datasets/schemas.py | 23 +-
superset/db_engine_specs/base.py | 29 +-
superset/db_engine_specs/bigquery.py | 4 +-
superset/db_engine_specs/gsheets.py | 11 +-
superset/db_engine_specs/mysql.py | 4 +-
superset/db_engine_specs/postgres.py | 4 +-
superset/db_engine_specs/redshift.py | 4 +-
superset/db_engine_specs/snowflake.py | 4 +-
superset/db_engine_specs/ydb.py | 5 +-
superset/extensions/api.py | 35 +-
superset/extensions/utils.py | 61 +-
superset/mcp_service/CLAUDE.md | 37 +
superset/mcp_service/app.py | 20 +-
superset/mcp_service/chart/chart_utils.py | 125 +-
superset/mcp_service/chart/schemas.py | 130 +-
superset/mcp_service/chart/tool/generate_chart.py | 303 +-
superset/mcp_service/chart/tool/get_chart_data.py | 333 +-
superset/mcp_service/chart/tool/get_chart_info.py | 119 +-
.../mcp_service/chart/tool/get_chart_preview.py | 227 +-
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 +-
.../chart/validation/dataset_validator.py | 153 +-
superset/mcp_service/chart/validation/pipeline.py | 86 +-
.../mcp_service}/constants.py | 6 +-
.../create_form_data.py => dashboard/constants.py} | 23 +-
superset/mcp_service/dashboard/schemas.py | 56 +-
.../tool/add_chart_to_existing_dashboard.py | 281 +-
.../dashboard/tool/generate_dashboard.py | 141 +-
.../dashboard/tool/get_dashboard_info.py | 134 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 25 +-
superset/mcp_service/dataset/schemas.py | 1 +
.../mcp_service/dataset/tool/get_dataset_info.py | 32 +-
superset/mcp_service/dataset/tool/list_datasets.py | 28 +-
.../explore/tool/generate_explore_link.py | 33 +-
superset/mcp_service/mcp_config.py | 49 +
superset/mcp_service/mcp_core.py | 24 +-
superset/mcp_service/middleware.py | 288 +-
superset/mcp_service/server.py | 12 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 67 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 6 +-
superset/mcp_service/system/schemas.py | 29 +
superset/mcp_service/system/system_utils.py | 29 +
.../mcp_service/system/tool/get_instance_info.py | 22 +-
superset/mcp_service/system/tool/get_schema.py | 6 +-
superset/mcp_service/system/tool/health_check.py | 8 +-
superset/mcp_service/utils/schema_utils.py | 6 +-
superset/mcp_service/utils/token_utils.py | 424 +
superset/models/dashboard.py | 32 +-
superset/models/helpers.py | 15 +
superset/models/slice.py | 25 +-
superset/models/sql_types/__init__.py | 7 +
superset/models/sql_types/base.py | 106 +
superset/reports/api.py | 7 +
superset/reports/schemas.py | 2 +-
superset/security/api.py | 10 +-
superset/security/manager.py | 123 +-
superset/tasks/decorators.py | 2 -
superset/tasks/filters.py | 91 +-
superset/thumbnails/digest.py | 15 +-
superset/translations/ar/LC_MESSAGES/messages.po | 3274 +++-
superset/translations/ca/LC_MESSAGES/messages.po | 5178 ++++--
superset/translations/de/LC_MESSAGES/messages.po | 3272 +++-
superset/translations/en/LC_MESSAGES/messages.po | 2621 ++-
superset/translations/es/LC_MESSAGES/messages.po | 5661 ++++--
superset/translations/fa/LC_MESSAGES/messages.po | 3266 +++-
superset/translations/fr/LC_MESSAGES/messages.po | 1540 +-
superset/translations/it/LC_MESSAGES/messages.po | 3155 +++-
superset/translations/ja/LC_MESSAGES/messages.po | 3245 +++-
superset/translations/ko/LC_MESSAGES/messages.po | 3105 +++-
superset/translations/messages.pot | 2615 ++-
superset/translations/mi/LC_MESSAGES/messages.po | 6248 ++++---
superset/translations/nl/LC_MESSAGES/messages.po | 3280 +++-
superset/translations/pl/LC_MESSAGES/messages.po | 3303 +++-
superset/translations/pt/LC_MESSAGES/messages.po | 3188 +++-
.../translations/pt_BR/LC_MESSAGES/messages.po | 3291 +++-
superset/translations/ru/LC_MESSAGES/messages.po | 4670 ++---
superset/translations/sk/LC_MESSAGES/messages.po | 2829 ++-
superset/translations/sl/LC_MESSAGES/messages.po | 3254 +++-
superset/translations/tr/LC_MESSAGES/messages.po | 3077 +++-
superset/translations/uk/LC_MESSAGES/messages.po | 3296 +++-
superset/translations/zh/LC_MESSAGES/messages.po | 3252 +++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 3255 +++-
superset/utils/dates.py | 2 +-
superset/utils/encrypt.py | 2 +-
superset/views/utils.py | 4 +-
tests/integration_tests/charts/api_tests.py | 1 +
tests/integration_tests/charts/commands_tests.py | 17 +-
tests/integration_tests/charts/data/api_tests.py | 42 +
tests/integration_tests/dashboards/api_tests.py | 81 +
tests/integration_tests/datasets/api_tests.py | 2 +-
tests/integration_tests/model_tests.py | 2 +-
tests/integration_tests/reports/api_tests.py | 314 +-
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 +-
.../test_subdirectory_deployments.py | 56 +
tests/integration_tests/utils/encrypt_tests.py | 76 +-
.../commands/importers/v1/examples_test.py | 133 +-
.../unit_tests/commands/report}/__init__.py | 0
tests/unit_tests/commands/report/update_test.py | 254 +
.../common/test_query_context_processor.py | 72 +-
tests/unit_tests/dashboards/api_test.py | 99 +
.../databases/commands/importers/v1/import_test.py | 33 +
tests/unit_tests/datasets/schema_tests.py | 56 +
tests/unit_tests/db_engine_specs/test_base.py | 45 +
tests/unit_tests/db_engine_specs/test_gsheets.py | 20 +
.../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 | 119 +-
.../mcp_service/chart/test_chart_utils.py | 268 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 437 +-
.../chart/tool/test_get_chart_preview.py | 1 -
.../mcp_service/chart/tool/test_list_charts.py | 4 +-
.../validation/test_column_name_normalization.py | 681 +
.../dashboard/tool/test_dashboard_generation.py | 399 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 46 +
.../explore/tool/test_generate_explore_link.py | 149 +
.../mcp_service/sql_lab/tool/test_execute_sql.py | 138 +-
.../mcp_service/system/test_system_utils.py | 60 +
.../system/tool/test_get_current_user.py | 365 +
.../mcp_service/system/tool/test_get_schema.py | 8 +-
.../mcp_service/system/tool/test_mcp_core.py | 4 +-
tests/unit_tests/mcp_service/test_mcp_config.py | 9 +
tests/unit_tests/mcp_service/test_middleware.py | 343 +
.../mcp_service/test_middleware_logging.py | 207 +
.../mcp_service/utils/test_schema_utils.py | 11 +
.../mcp_service/utils/test_token_utils.py | 358 +
tests/unit_tests/models/helpers_test.py | 40 +
.../unit_tests/models/sql_types}/__init__.py | 0
.../models/sql_types/currency_type_test.py | 129 +
tests/unit_tests/security/manager_test.py | 210 +
tests/unit_tests/thumbnails/test_digest.py | 115 +-
tests/unit_tests/utils/json_tests.py | 6 +
744 files changed, 106737 insertions(+), 56998 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
copy superset/mcp_service/__init__.py =>
superset-core/src/superset_core/extensions/constants.py (53%)
copy superset/sql/execution/__init__.py =>
superset-extensions-cli/src/superset_extensions_cli/exceptions.py (88%)
create mode 100644 superset-extensions-cli/src/superset_extensions_cli/types.py
create mode 100644 superset-extensions-cli/tests/test_name_transformations.py
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%)
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/test/shared-controls/components/RadioButtonControl.test.tsx
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-ag-grid-table/test/AgGridTableChart.test.tsx
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%)
copy superset-frontend/{src/explore/exploreUtils/getLegacyEndpointType.test.ts
=> plugins/plugin-chart-echarts/src/utils/orderby.test.ts} (65%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/orderby.ts
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%)
copy superset-frontend/plugins/{plugin-chart-ag-grid-table =>
plugin-chart-table}/test/controlPanel.test.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
create mode 100644 superset-frontend/src/components/Chart/Chart.test.tsx
create mode 100644 superset-frontend/src/dashboard/actions/autoRefresh.ts
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshIndicator/index.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusTooltipContent.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusTooltipContent.tsx
create mode 100644
superset-frontend/src/dashboard/components/Header/useHeaderAutoRefresh.ts
create mode 100644
superset-frontend/src/dashboard/components/RefreshButton/index.tsx
copy superset-frontend/src/dashboard/components/RefreshFrequency/{index.ts =>
RefreshFrequencySelect.test.tsx} (58%)
create mode 100644
superset-frontend/src/dashboard/contexts/AutoRefreshContext.test.tsx
create mode 100644
superset-frontend/src/dashboard/contexts/AutoRefreshContext.tsx
create mode 100644
superset-frontend/src/dashboard/hooks/useAutoRefreshTabPause.test.tsx
create mode 100644
superset-frontend/src/dashboard/hooks/useAutoRefreshTabPause.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useCurrentTime.test.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useCurrentTime.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useRealTimeDashboard.test.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useRealTimeDashboard.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useTabVisibility.test.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useTabVisibility.ts
create mode 100644
superset-frontend/src/dashboard/reducers/autoRefreshReducer.test.ts
create mode 100644 superset-frontend/src/dashboard/types/autoRefresh.ts
create mode 100644
superset-frontend/src/dashboard/util/migrateChartCustomization.test.ts
create mode 100644
superset-frontend/src/dashboard/util/migrateChartCustomization.ts
create mode 100644
superset-frontend/src/explore/components/controls/ConditionalFormattingControl/constants.ts
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
copy {superset-extensions-cli/src/superset_extensions_cli =>
superset/mcp_service}/constants.py (78%)
copy superset/mcp_service/{commands/create_form_data.py =>
dashboard/constants.py} (61%)
create mode 100644 superset/mcp_service/utils/token_utils.py
create mode 100644 superset/models/sql_types/base.py
create mode 100644
tests/integration_tests/tasks/test_subscription_visibility.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/commands/report}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/report/update_test.py
create mode 100644 tests/unit_tests/dashboards/api_test.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/chart/validation/test_column_name_normalization.py
create mode 100644 tests/unit_tests/mcp_service/system/test_system_utils.py
create mode 100644
tests/unit_tests/mcp_service/system/tool/test_get_current_user.py
create mode 100644 tests/unit_tests/mcp_service/test_middleware.py
create mode 100644 tests/unit_tests/mcp_service/test_middleware_logging.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_token_utils.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/models/sql_types}/__init__.py (100%)
create mode 100644 tests/unit_tests/models/sql_types/currency_type_test.py