You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by di...@apache.org on 2025/07/29 13:34:46 UTC

(superset) branch msyavuz/fix/console-errors updated (f8e4dd4acb -> 98203d7c04)

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

diegopucci pushed a change to branch msyavuz/fix/console-errors
in repository https://gitbox.apache.org/repos/asf/superset.git


    from f8e4dd4acb fix: Move menu to items prop for dashboard and explore
     add b280ab9e1f fix: adding and removing tags does not work in control panel properties modal (#34147)
     add 67b21c45df feat(filter panel): hide filter panel on all dashboard by default. (#32870)
     add 31a15c5162 fix(DrillBy): make drill by work with multi metric charts (#34171)
     add 42d9a78777 feat(theming): Introduce bootstrap-driven Superset theme configurations (#34144)
     add 8a8248b575 docs(development): Fix typo in the documentation (#34163)
     add fe9eef9198 feat: removing dup logic in sqla/models.py and models/helpers.py (#34177)
     add 0dc48e9b41 fix(sqllab): pass DB id instead of name (#33955)
     add 83b6f672ff fix(databricks): string escaper (#34180)
     add 000d353ef3 fix(sqllab): database ID (#34181)
     add 16f4516903 chore(Oracle): Update oracle column length to 128 (#34179)
     add e8926f177d feat(i18n): add Catalan (ca) translations (#33953)
     add f756cee01b fix(theming): Remove leftover antd5 prefix (#34188)
     add 94d47113ea feat(snowflake): Support Snowflake private keys w/o passphrase (#34156)
     add 96cb6030c8 fix(explore): Display missing dataset for denied access (#34129)
     add d6eb6e08d0 style(helm): Minor reformatting of helm chart templates (#33736)
     add 58bd3bfcf0 fix(chart): update geographical info for latvia (#33450)
     add 1958df6b83 fix: dataset endpoint `/rowlevelsecurity/related/tables` doesn't apply filters as expected (#34192)
     add bbb2279644 fix(theming): Superset theme configurations correctly applying to charts (#34218)
     add 88ee90c579 chore: Updates files related to 4.1.3 release (#34217)
     add dc41c45bec feat(pivot-table-chart): Download as pivoted excel (#33569)
     add 5912fad745 fix(dashboard): Fix subitem selection on dashboard download menu (#33933)
     add 2db8f809ba fix: proper handling of boolean filters with snowflake (#34199)
     add da6947d295 feat(deckgl): add support for OpenStreetMap as our new default and make "tile-providers" more configurable FIX (#34204)
     add 0c5da6cb5d fix(theming): World map tooltip color (#34229)
     add 29d2fac485 fix(Chart): Calculate chart height correctly (#34224)
     add a0a49f9300 feat: add Claude Code GitHub Action integration (#34231)
     add 4fe11869fc chore(deps): bump on-headers and compression in /superset-frontend (#34216)
     add 2c453035e4 chore(deps): bump on-headers and morgan in /superset-websocket/utils/client-ws-app (#34215)
     add b24aca0304 fix: bug when updating dashboard (#34193)
     add aff847b3af fix: database model Collapse state  (#34126)
     add 4518f6999c chore(deps): bump form-data from 4.0.1 to 4.0.4 in /superset-frontend (#34265)
     add 6e02603098 chore(deps): bump form-data from 4.0.0 to 4.0.4 in /docs (#34263)
     add 7e67deead7 chore(deps-dev): bump form-data from 4.0.0 to 4.0.4 in /superset-embedded-sdk (#34262)
     add fe1fddde05 feat(docs): migrate ESLint to v9 (#34207)
     add f4f516c64c fix: Missing ownState and isCached props in Chart.jsx (#34259)
     add 229d92590a fix: Matching errorType on superset api error with SupersetError (#34261)
     add 09c4afc894 feat: introduce comprehensive LLM context guides for AI-powered development (#34194)
     add 2c81eb6c39 feat(docker): do not include chromium (headless browser) by default in Dockerfile (#34258)
     add 77f66e7434 fix: build issues on master with 'npm run dev' (#34272)
     add 1df5e59fdf fix(theming): Theming visual fixes (#34253)
     add c444eed63e chore(docker): use editable mode in docker images (#34146)
     add 9c6271136d fix(theming): Visual regressions p2 (#34279)
     add 11324607d0 fix: Bulk select is not respecting the TAGGING_SYSTEM feature flag (#34282)
     add 710c277681 style(Button): Vertically align icons across all buttons (#34067)
     add 32f8f33a4f fix(deckgl): fix deck.gl color breakpoints Control (#34244)
     add 77ffe65773 chore(deps): bump axios from 1.10.0 to 1.11.0 in /docs (#34285)
     add 9099b0f00d fix: fix the pre-commit hook for tsc (#34275)
     add 43775e9373 fix(sqllab_export): manually encode CSV output to support utf-8-sig (#34235)
     add 800c1639ec chore(deps-dev): bump prettier from 3.5.3 to 3.6.2 in /superset-frontend (#33997)
     add 9b88527883 chore: remove supposedly dev dep `html-webpack-plugin` from lockfile (#34288)
     add 1e5a4e9bdc fix: Saved queries list break if one query can't be parsed (#34289)
     add 7a1c056374 fix(charting): correctly categorize numeric columns with NULL values (#34213)
     add da55a6c94a fix(chart-download): ensure full table or handlebar chart is captured in image export (#34233)
     add c99843b13a fix: Hide View in SQL Lab for users without access (#34293)
     add ab59b7e9b0 feat: make `SupersetClient` retry on 502-504 (#34290)
     add efa8cb6fa4 chore: improve sqlglot parsing (#34270)
     add 3f8472ca7b chore: move some rules from ruff -> pylint (#34292)
     add 30e5684006 fix: address numerous long-standing console errors (python & web) (#34299)
     add 89bf77b5c9 fix(theming): Fix visual regressions from theming P7 (#34237)
     add 3177131d52 feat: re-order CRUD list view action buttons (#34294)
     add b794b192d1 fix: return 422 on invalid SQL (#34303)
     add 8df5860826 chore: bump sqlglot to latest version (27.3.0) (#34302)
     add 7f44992c4b fix: enhance disallowed SQL functions list for improved security (#33084)
     add 9c771fb2ba fix: preserve correct column order when table layout is changed with time comparison enabled (#34300)
     add c25b4221f8 fix(npm): more reliable execution of `npm run update-maps` (#34305)
     add 8783579aa8 fix(cartodiagram): add missing locales for rendering echarts (#34268)
     add 5f11f9097a fix: Charts list is displaying empty dataset names when there's no schema (#34315)
     add e741a3167f feat: add a theme CRUD page to manage themes (#34182)
     add 1be2287b3a feat(timeseries): enhance 'Series Limit' to support grouping the long tail (#34308)
     add c49789167b style(chart): restyle table pagination (#34311)
     add 1a4e2173f5 fix(NavBar): Add brand text back (#34318)
     add 913e068113 style(FastVizSwitcher): Adjust padding for FastVizSwitcher selector (#34317)
     add 604d72cc98 feat: introducing a docker-compose-light.yml for lighter development (#34324)
     add 22b3cc0480 chore: bump BigQuery dialect to 1.15.0 (#34371)
     add dc0c389488 docs(development): fix 2 typos in the dockerfile (#34341)
     add f554848c9f fix(PivotTable): Render html in cells if allowRenderHtml is true (#34351)
     add ff76ab647f build(deps): update `ag-grid` to non-breaking major v34 (#34326)
     add bb572983cd feat(theming): Align embedded sdk with theme configs (#34273)
     add 914ce9aa4f feat: read column metadata (#34359)
     add 122bb68e5a fix: subquery alias in RLS (#34374)
     add 98203d7c04 merge

No new revisions were added by this update.

Summary of changes:
 .cursor/rules/dev-standard.mdc                     |  125 +
 .github/ISSUE_TEMPLATE/bug-report.yml              |    2 +-
 .github/copilot-instructions.md                    |    1 +
 .github/workflows/claude.yml                       |   82 +
 .github/workflows/superset-python-unittest.yml     |    2 +-
 .gitignore                                         |    4 +
 .pre-commit-config.yaml                            |   17 +-
 .rat-excludes                                      |    8 +
 CHANGELOG/4.1.3.md                                 |   58 +
 CLAUDE.md                                          |    1 +
 Dockerfile                                         |    8 +-
 GEMINI.md                                          |    1 +
 GPT.md                                             |    1 +
 LLMS.md                                            |  191 +
 UPDATING.md                                        |    5 +-
 docker-compose-image-tag.yml                       |    3 +
 docker-compose-light.yml                           |  157 +
 docker-compose-non-dev.yml                         |    3 +
 docker-compose.yml                                 |    3 +
 docker/.env                                        |    6 +-
 docker/pythonpath_dev/.gitignore                   |    1 +
 docker/pythonpath_dev/superset_config.py           |    2 +-
 .../pythonpath_dev/superset_config_docker_light.py |   37 +-
 docs/.eslintrc.js                                  |   47 -
 docs/docs/configuration/map-tiles.mdx              |   78 +
 docs/docs/configuration/theming.mdx                |   89 +-
 docs/docs/contributing/development.mdx             |   44 +-
 docs/docs/installation/docker-compose.mdx          |   34 +-
 {superset-websocket => docs}/eslint.config.js      |   47 +-
 docs/package.json                                  |   16 +-
 docs/src/pages/index.tsx                           |    2 +-
 docs/src/theme/Root.js                             |   20 +-
 docs/yarn.lock                                     |  488 +-
 helm/superset/Chart.yaml                           |    2 +-
 helm/superset/README.md                            |    2 +-
 helm/superset/templates/init-job.yaml              |   10 +-
 helm/superset/templates/pdb-beat.yaml              |   10 +-
 helm/superset/templates/pdb-flower.yaml            |   10 +-
 helm/superset/templates/pdb-worker.yaml            |   10 +-
 helm/superset/templates/pdb-ws.yaml                |   10 +-
 helm/superset/templates/pdb.yaml                   |   10 +-
 pyproject.toml                                     |   20 +-
 requirements/base.txt                              |    2 +-
 requirements/development.txt                       |    4 +-
 scripts/check-type.js                              |  101 +-
 superset-embedded-sdk/package-lock.json            |  360 +-
 .../cypress/e2e/dashboard/drillby.test.ts          |    6 +-
 .../e2e/dashboard/horizontalFilterBar.test.ts      |    1 +
 superset-frontend/jest.config.js                   |    2 +-
 superset-frontend/package-lock.json                | 1446 ++-
 superset-frontend/package.json                     |   14 +-
 .../src/components/ControlHeader.tsx               |   17 +-
 .../src/components/Select.tsx                      |    4 +-
 .../src/sections/echartsTimeSeriesQuery.tsx        |    2 +-
 .../src/shared-controls/sharedControls.tsx         |   14 +
 .../superset-ui-chart-controls/src/types.ts        |    1 +
 .../src/components/AsyncAceEditor/index.tsx        |    9 +-
 .../AsyncAceEditor/useJsonValidation.test.ts       |   75 +
 .../components/AsyncAceEditor/useJsonValidation.ts |   82 +
 .../src/components/Button/index.tsx                |   11 +-
 .../src/components/CodeSyntaxHighlighter/index.tsx |   11 +-
 .../components/Collapse/CollapseLabelInModal.tsx   |   58 +-
 .../src/components/ConfirmStatusChange/index.tsx   |    1 +
 .../src/components/DeleteModal/index.tsx           |   11 +-
 .../src/components/DeleteModal/types.ts            |    1 +
 .../src/components/EmptyState/index.tsx            |    4 +-
 .../src/components/EmptyState/types.ts             |    2 +
 .../src/components/Icons/BaseIcon.tsx              |    8 +-
 .../src/components/InfoTooltip/index.tsx           |    4 +-
 .../src/components/Label/index.tsx                 |    4 +-
 .../src/components/LastUpdated/index.tsx           |   21 +-
 .../src/components/Modal/FormModal.tsx             |    2 +
 .../src/components/Modal/Modal.stories.tsx         |    2 +-
 .../src/components/Modal/Modal.tsx                 |   11 +-
 .../superset-ui-core/src/components/Modal/types.ts |    3 +-
 .../src/components/ModalTrigger/index.tsx          |    1 +
 .../src/components/PopoverDropdown/index.tsx       |    2 +-
 .../src/components/Radio/index.tsx                 |   14 +-
 .../TelemetryPixel/TelemetryPixel.test.tsx         |    2 +-
 .../src/components/TelemetryPixel/index.tsx        |    3 +-
 .../src/components/ThemeEditor/index.tsx           |  150 -
 .../src/components/ThemeSelect/index.tsx           |   79 -
 .../components/ThemeSubMenu/ThemeSubMenu.test.tsx  |  273 +
 .../src/components/ThemeSubMenu/index.tsx          |  170 +
 .../src/components/Typography/index.tsx            |    1 +
 .../src/components/UnsavedChangesModal/index.tsx   |  162 +-
 .../superset-ui-core/src/components/index.ts       |    3 +
 .../superset-ui-core/src/connection/constants.ts   |    2 +-
 .../superset-ui-core/src/query/buildQueryObject.ts |    2 +
 .../superset-ui-core/src/theme/Theme.test.tsx      |   39 +-
 .../packages/superset-ui-core/src/theme/Theme.tsx  |   70 +-
 .../superset-ui-core/src/theme/exampleThemes.ts    |   10 +-
 .../packages/superset-ui-core/src/theme/index.tsx  |   41 +-
 .../packages/superset-ui-core/src/theme/types.ts   |   74 +-
 .../superset-ui-core/src/theme/utils.test.ts       |  105 +-
 .../packages/superset-ui-core/src/theme/utils.ts   |   61 +-
 .../src/theme/utils/themeUtils.test.ts             |  134 +
 .../superset-ui-core/src/theme/utils/themeUtils.ts |  113 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    4 +-
 .../src/validator/validateMapboxStylesUrl.ts       |   23 +-
 .../test/validator/validateMapboxStylesUrl.test.ts |    7 +-
 .../scripts/Country Map GeoJSON Generator.ipynb    |  Bin 10916999 -> 2319015 bytes
 .../src/countries/latvia.geojson                   |  Bin 305206 -> 11637199 bytes
 .../src/ReactWorldMap.jsx                          |    4 +
 .../legacy-plugin-chart-world-map/src/WorldMap.js  |    2 +-
 .../legacy-preset-chart-deckgl/package.json        |   15 +-
 .../src/DeckGLContainer.tsx                        |   34 +-
 .../src/layers/Hex/controlPanel.ts                 |    6 +-
 .../src/utilities/Shared_DeckGL.tsx                |   36 +-
 .../src/utilities/utils.ts                         |    2 +-
 .../legacy-preset-chart-deckgl/src/utils.ts        |   45 +
 .../plugin-chart-ag-grid-table/package.json        |    4 +-
 .../src/AgGridTable/index.tsx                      |   75 +-
 .../plugin-chart-ag-grid-table/src/consts.ts       |    4 -
 .../plugins/plugin-chart-ag-grid-table/src/i18n.ts |   66 -
 .../plugins/plugin-chart-cartodiagram/package.json |    2 +
 .../src/components/ChartLayer.tsx                  |    8 +
 .../src/components/ChartWrapper.tsx                |   21 +-
 .../src/components/OlChartMap.tsx                  |    5 +
 .../plugins/plugin-chart-cartodiagram/src/types.ts |    2 +
 .../src/util/chartUtil.tsx                         |    2 +
 .../test/components/chartLayer.test.ts             |    2 +
 .../src/BigNumber/BigNumberViz.tsx                 |  382 +-
 .../src/Sankey/transformProps.ts                   |    4 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |   10 +-
 .../src/Tree/transformProps.ts                     |    4 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |   85 +-
 .../test/MixedTimeseries/buildQuery.test.ts        |    2 +
 .../src/react-pivottable/TableRenderers.jsx        |   14 +-
 .../plugins/plugin-chart-table/src/Styles.tsx      |    9 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    6 +-
 .../plugins/plugin-chart-table/src/consts.ts       |    5 +-
 .../plugins/plugin-chart-table/src/i18n.ts         |   66 -
 .../SqlLab/components/SaveDatasetModal/index.tsx   |   24 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |   12 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |    3 +-
 .../src/SqlLab/components/TableElement/index.tsx   |    4 +-
 .../assets/images/icons/big_number_chart_tile.svg  |  Bin 1321 -> 1380 bytes
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |    1 +
 .../Chart/DrillDetail/DrillDetailModal.tsx         |    1 +
 .../components/Chart/MenuItemWithTruncation.tsx    |    2 +-
 .../src/components/Chart/chartAction.js            |    6 +-
 .../src/components/CrudThemeProvider.tsx           |   76 +
 .../DatabaseSelector/DatabaseSelector.test.tsx     |    2 +-
 .../src/components/DatabaseSelector/index.tsx      |    7 +-
 .../Datasource/ChangeDatasourceModal.tsx           |    1 +
 .../src/components/Datasource/DatasourceEditor.jsx |   65 +-
 .../components/ErrorMessage/BasicErrorAlert.tsx    |    9 +-
 .../src/components/ErrorMessage/ErrorAlert.tsx     |    1 +
 .../ErrorMessage/ErrorMessageWithStackTrace.tsx    |    3 +-
 .../src/components/ImportModal/index.tsx           |    5 +-
 .../src/components/ListView/Filters/Search.tsx     |    8 +-
 .../src/components/MessageToasts/Toast.tsx         |    1 -
 .../ModalTitleWithIcon/ModalTitleWithIcon.test.tsx |   60 +
 .../src/components/ModalTitleWithIcon/index.tsx    |   62 +
 superset-frontend/src/components/Tag/TagType.ts    |    7 +
 superset-frontend/src/components/Tag/index.tsx     |    3 +-
 superset-frontend/src/constants.ts                 |    7 +-
 .../src/dashboard/actions/dashboardInfo.ts         |   46 +
 .../src/dashboard/actions/dashboardState.js        |    5 +
 .../components/CssEditor/CssEditor.test.tsx        |   38 +-
 .../src/dashboard/components/CssEditor/index.tsx   |  224 +-
 .../DashboardBuilder/DashboardBuilder.test.tsx     |   46 +
 .../dashboard/components/DashboardBuilder/state.ts |    3 +
 .../dashboard/components/EmbeddedModal/index.tsx   |    9 +-
 .../dashboard/components/Header/Header.test.tsx    |    6 +-
 .../src/dashboard/components/Header/index.jsx      |    6 +
 .../src/dashboard/components/Header/types.ts       |    4 +
 .../Header/useHeaderActionsDropdownMenu.tsx        |   18 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |    4 +-
 .../dashboard/components/PropertiesModal/index.tsx |   23 +-
 .../components/RefreshIntervalModal.test.tsx       |   14 +-
 .../src/dashboard/components/SaveModal.tsx         |  280 +-
 .../src/dashboard/components/SliceHeader/index.tsx |    3 +
 .../SliceHeaderControls.test.tsx                   |   15 +
 .../components/SliceHeaderControls/index.tsx       |   10 +
 .../dashboard/components/gridComponents/Chart.jsx  |   41 +-
 .../dashboard/components/gridComponents/Tabs.jsx   |    1 -
 .../menu/DownloadMenuItems/DownloadAsImage.tsx     |    2 +
 .../menu/DownloadMenuItems/DownloadAsPdf.tsx       |    2 +
 .../FilterBar/ActionButtons/index.tsx              |   20 +-
 .../CrossFilters/ScopingModal/ScopingModal.tsx     |    4 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   29 +-
 .../src/dashboard/reducers/dashboardInfo.js        |    7 +
 superset-frontend/src/dashboard/styles.ts          |   14 +-
 superset-frontend/src/dashboard/types.ts           |    7 +
 .../EmbeddedContextProviders.tsx}                  |   41 +-
 superset-frontend/src/embedded/index.tsx           |   40 +-
 .../src/explore/components/ControlHeader.tsx       |    1 +
 .../explore/components/ControlPanelsContainer.tsx  |    1 +
 .../DatasourcePanel/DatasourcePanelItem.tsx        |    3 +-
 .../src/explore/components/EmbedCodeContent.jsx    |    2 +-
 .../explore/components/PropertiesModal/index.tsx   |   23 +-
 .../src/explore/components/SaveModal.tsx           |    7 +-
 .../ColorBreakpointPopoverControl.tsx              |    2 +-
 .../DatasourceControl/DatasourceControl.test.tsx   |   27 +
 .../controls/DatasourceControl/index.jsx           |   93 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |   23 +-
 .../DndColumnSelectControl/ColumnSelectPopover.tsx |    7 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |    5 +-
 .../explore/components/controls/ViewQuery.test.tsx |   38 +-
 .../src/explore/components/controls/ViewQuery.tsx  |   10 +-
 .../controls/VizTypeControl/FastVizSwitcher.tsx    |   13 +-
 .../components/controls/VizTypeControl/VizTile.tsx |    3 +-
 .../controls/VizTypeControl/constants.tsx          |    2 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |   21 +
 .../src/explore/controlPanels/sections.tsx         |    3 +-
 superset-frontend/src/explore/fixtures.tsx         |    4 +-
 superset-frontend/src/explore/types.ts             |    2 +-
 .../src/features/alerts/AlertReportModal.tsx       |   20 +-
 .../annotationLayers/AnnotationLayerModal.tsx      |   41 +-
 .../src/features/annotations/AnnotationModal.tsx   |   39 +-
 .../src/features/cssTemplates/CssTemplateModal.tsx |   37 +-
 .../databases/DatabaseModal/ExtraOptions.test.tsx  |   28 +
 .../databases/DatabaseModal/ExtraOptions.tsx       |   40 +-
 .../databases/DatabaseModal/SSHTunnelForm.tsx      |    2 +-
 .../src/features/databases/DatabaseModal/index.tsx |   53 +-
 .../src/features/databases/DatabaseModal/styles.ts |    3 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |   66 +-
 .../features/databases/UploadDataModel/index.tsx   |   42 +-
 .../features/databases/UploadDataModel/styles.ts   |    2 +-
 .../features/datasets/DuplicateDatasetModal.tsx    |   11 +-
 .../src/features/groups/GroupListModal.tsx         |   11 +-
 superset-frontend/src/features/home/ChartTable.tsx |   18 +-
 .../src/features/home/DashboardTable.tsx           |   17 +-
 superset-frontend/src/features/home/Menu.test.tsx  |   39 +
 superset-frontend/src/features/home/Menu.tsx       |    9 +-
 superset-frontend/src/features/home/RightMenu.tsx  |   51 +-
 .../src/features/home/SavedQueries.tsx             |    5 +-
 .../src/features/rls/RowLevelSecurityModal.tsx     |   28 +-
 .../src/features/roles/RoleListAddModal.tsx        |   12 +-
 .../src/features/roles/RoleListDuplicateModal.tsx  |   11 +-
 .../src/features/roles/RoleListEditModal.tsx       |   10 +-
 .../src/features/tags/BulkTagModal.tsx             |    4 +-
 superset-frontend/src/features/tags/TagModal.tsx   |   10 +-
 superset-frontend/src/features/tags/tags.ts        |    7 +-
 .../src/features/themes/ThemeModal.test.tsx        |  286 +
 .../src/features/themes/ThemeModal.tsx             |  414 +
 .../src/features/{cssTemplates => themes}/types.ts |    8 +-
 .../src/features/users/UserListModal.tsx           |    9 +-
 .../filters/components/Range/RangeFilterPlugin.tsx |    2 +-
 superset-frontend/src/pages/ActionLog/index.tsx    |    8 +-
 .../src/pages/AlertReportList/index.tsx            |   36 +-
 .../src/pages/AnnotationLayerList/index.tsx        |   32 +-
 .../src/pages/AnnotationList/index.tsx             |    8 +-
 superset-frontend/src/pages/Chart/Chart.test.tsx   |   89 +
 superset-frontend/src/pages/Chart/index.tsx        |  112 +-
 .../src/pages/ChartList/ChartList.test.jsx         |   90 +
 superset-frontend/src/pages/ChartList/index.tsx    |   52 +-
 .../src/pages/CssTemplateList/index.tsx            |   18 +-
 .../src/pages/DashboardList/index.tsx              |   47 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |   16 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |   40 +-
 superset-frontend/src/pages/GroupsList/index.tsx   |   33 +-
 superset-frontend/src/pages/Home/index.tsx         |    1 +
 superset-frontend/src/pages/Login/index.tsx        |    2 +-
 superset-frontend/src/pages/Register/index.tsx     |    2 +-
 superset-frontend/src/pages/RolesList/index.tsx    |    8 +-
 .../src/pages/RowLevelSecurityList/index.tsx       |   26 +-
 .../src/pages/SavedQueryList/index.tsx             |   47 +-
 superset-frontend/src/pages/Tags/index.tsx         |   15 +-
 .../src/pages/ThemeList/ThemeList.test.tsx         |  201 +
 superset-frontend/src/pages/ThemeList/index.tsx    |  524 ++
 superset-frontend/src/pages/UserInfo/index.tsx     |    5 +-
 superset-frontend/src/pages/UsersList/index.tsx    |    8 +-
 superset-frontend/src/setup/setupClient.ts         |   32 +
 superset-frontend/src/theme/ThemeController.ts     |  874 ++
 superset-frontend/src/theme/ThemeController.tsx    |  246 -
 superset-frontend/src/theme/ThemeProvider.tsx      |   88 +-
 .../src/theme/tests/ThemeController.test.ts        | 1351 +++
 .../src/theme/tests/ThemeProvider.test.tsx         |  238 +
 superset-frontend/src/types/Dashboard.ts           |    5 +
 superset-frontend/src/types/bootstrapTypes.ts      |   51 +-
 superset-frontend/src/utils/downloadAsImage.ts     |  273 +-
 .../utils/downloadAsPivotExcel.ts}                 |   14 +-
 superset-frontend/src/views/CRUD/types.ts          |    3 +-
 .../src/views/RootContextProviders.tsx             |   11 +-
 superset-frontend/src/views/routes.tsx             |    8 +
 superset-frontend/webpack.config.js                |   13 +
 .../utils/client-ws-app/package-lock.json          |   30 +-
 .../utils/client-ws-app/package.json               |    2 +-
 .../advanced_data_type/plugins/internet_address.py |   16 +-
 .../advanced_data_type/plugins/internet_port.py    |   16 +-
 superset/app.py                                    |   21 +-
 superset/charts/schemas.py                         |    8 +
 superset/commands/dataset/create.py                |   11 +-
 superset/commands/sql_lab/export.py                |    4 +-
 .../theme}/__init__.py                             |    0
 superset/commands/theme/delete.py                  |  116 +
 .../commands/{security => theme}/exceptions.py     |   18 +-
 superset/commands/theme/export.py                  |   75 +
 superset/commands/theme/import_themes.py           |   85 +
 .../theme/importers}/__init__.py                   |    0
 .../{chart => theme}/importers/dispatcher.py       |   11 +-
 superset/commands/theme/seed.py                    |  108 +
 .../ssh_tunnel/delete.py => theme/update.py}       |   42 +-
 superset/common/query_context_processor.py         |    4 +-
 superset/common/query_object.py                    |    3 +
 superset/common/utils/time_range_utils.py          |    2 +-
 superset/config.py                                 |  208 +-
 superset/connectors/sqla/models.py                 |  173 +-
 superset/connectors/sqla/utils.py                  |    8 +-
 superset/daos/{security.py => theme.py}            |   14 +-
 superset/dashboards/api.py                         |    1 +
 superset/dashboards/schemas.py                     |   13 +
 superset/db_engine_specs/__init__.py               |    2 +-
 superset/db_engine_specs/base.py                   |   78 +-
 superset/db_engine_specs/databricks.py             |   52 +-
 superset/db_engine_specs/oracle.py                 |    2 +-
 superset/db_engine_specs/snowflake.py              |    7 +-
 superset/examples/bart_lines.py                    |    2 +-
 superset/examples/birth_names.py                   |    2 +-
 superset/examples/deck.py                          |   14 +-
 superset/examples/long_lat.py                      |    6 +-
 superset/examples/misc_dashboard.py                |    2 +-
 superset/examples/multiformat_time_series.py       |    2 +-
 superset/examples/supported_charts_dashboard.py    |    2 +-
 superset/explore/api.py                            |    6 +
 superset/extensions/pylint.py                      |   37 -
 superset/initialization/__init__.py                |   22 +
 superset/jinja_context.py                          |    8 +-
 .../shared/migrate_viz/query_functions.py          |    2 +-
 ...2_convert_metric_currencies_from_str_to_json.py |    2 +-
 ...=> 2025-07-15_16-40_3fd555e76e3d_theme_crud.py} |   66 +-
 ...d1fb11291f2_add_theme_id_to_dashboard_model.py} |   42 +-
 superset/models/core.py                            |   12 +
 superset/models/dashboard.py                       |    3 +
 superset/models/helpers.py                         |  200 +-
 superset/models/sql_lab.py                         |    4 +-
 superset/row_level_security/api.py                 |    2 +
 superset/security/manager.py                       |    1 +
 superset/sql/parse.py                              |   59 +-
 .../{advanced_data_type => themes}/__init__.py     |    0
 superset/themes/api.py                             |  534 ++
 superset/{css_templates => themes}/filters.py      |   10 +-
 superset/themes/schemas.py                         |   88 +
 superset/themes/types.py                           |   67 +
 superset/themes/utils.py                           |  115 +
 .../{pt_BR => ca}/LC_MESSAGES/messages.po          | 9756 +++++++++-----------
 superset/utils/core.py                             |  110 +-
 superset/utils/webdriver.py                        |   14 +-
 superset/views/base.py                             |   64 +-
 superset/views/filters.py                          |   19 +
 superset/views/{css_templates.py => themes.py}     |    7 +-
 superset/views/utils.py                            |    5 +
 tests/integration_tests/base_tests.py              |   17 +-
 tests/integration_tests/dashboards/api_tests.py    |   33 +-
 .../integration_tests/dashboards/commands_tests.py |    4 +-
 .../dashboards/test_theme_integration.py           |  361 +
 tests/integration_tests/datasets/api_tests.py      |   30 +
 .../db_engine_specs/base_engine_spec_tests.py      |    6 +-
 .../fixtures/dashboard_with_tabs.py                |    2 +-
 .../security/row_level_security_tests.py           |   24 +
 tests/integration_tests/sql_lab/api_tests.py       |   31 +-
 tests/integration_tests/sql_lab/commands_tests.py  |    8 +-
 .../sql_lab/permalink/api_tests.py                 |    2 +-
 tests/integration_tests/sqla_models_tests.py       |    8 +-
 .../integration_tests/themes}/__init__.py          |    0
 .../integration_tests/themes/api_endpoints_test.py |  322 +
 tests/integration_tests/themes/api_tests.py        |  398 +
 .../databases/importers/v1/command_test.py         |    2 +-
 tests/unit_tests/commands/dataset/test_create.py   |  170 +
 tests/unit_tests/commands/report/execute_test.py   |    2 +-
 .../common/test_query_context_processor.py         |    8 +-
 tests/unit_tests/connectors/sqla/models_test.py    |  318 +
 tests/unit_tests/connectors/sqla/test_utils.py     |  123 +
 tests/unit_tests/db_engine_specs/test_base.py      |  118 +-
 tests/unit_tests/db_engine_specs/test_oracle.py    |    2 +-
 tests/unit_tests/db_engine_specs/test_snowflake.py |   42 +
 .../unit_tests/migrations/shared/catalogs_test.py  |    2 +-
 tests/unit_tests/models/helpers_test.py            |  150 +
 tests/unit_tests/models/sql_lab_test.py            |   45 +-
 tests/unit_tests/queries/query_object_test.py      |    1 +
 tests/unit_tests/security/manager_test.py          |    2 +-
 tests/unit_tests/sql/parse_tests.py                |   28 +-
 tests/unit_tests/sql_lab_test.py                   |    6 +-
 .../unit_tests/themes}/__init__.py                 |    0
 tests/unit_tests/themes/api_test.py                |  119 +
 tests/unit_tests/themes/commands_test.py           |  229 +
 tests/unit_tests/themes/dao_test.py                |   56 +
 tests/unit_tests/themes/model_test.py              |   53 +
 tests/unit_tests/themes/test_utils.py              |   93 +
 tests/unit_tests/utils/map_type_tests.py           |   86 +
 383 files changed, 20742 insertions(+), 8586 deletions(-)
 create mode 100644 .cursor/rules/dev-standard.mdc
 create mode 120000 .github/copilot-instructions.md
 create mode 100644 .github/workflows/claude.yml
 create mode 100644 CHANGELOG/4.1.3.md
 create mode 120000 CLAUDE.md
 create mode 120000 GEMINI.md
 create mode 120000 GPT.md
 create mode 100644 LLMS.md
 create mode 100644 docker-compose-light.yml
 copy superset/migrations/versions/2020-08-08_18-10_f2672aa8350a_add_slack_to_alerts.py => docker/pythonpath_dev/superset_config_docker_light.py (53%)
 delete mode 100644 docs/.eslintrc.js
 create mode 100644 docs/docs/configuration/map-tiles.mdx
 copy {superset-websocket => docs}/eslint.config.js (60%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/useJsonValidation.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/useJsonValidation.ts
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemeEditor/index.tsx
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemeSelect/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemeSubMenu/ThemeSubMenu.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemeSubMenu/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/i18n.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-table/src/i18n.ts
 create mode 100644 superset-frontend/src/components/CrudThemeProvider.tsx
 create mode 100644 superset-frontend/src/components/ModalTitleWithIcon/ModalTitleWithIcon.test.tsx
 create mode 100644 superset-frontend/src/components/ModalTitleWithIcon/index.tsx
 copy superset-frontend/src/{views/RootContextProviders.tsx => embedded/EmbeddedContextProviders.tsx} (73%)
 create mode 100644 superset-frontend/src/features/themes/ThemeModal.test.tsx
 create mode 100644 superset-frontend/src/features/themes/ThemeModal.tsx
 copy superset-frontend/src/features/{cssTemplates => themes}/types.ts (89%)
 create mode 100644 superset-frontend/src/pages/ThemeList/ThemeList.test.tsx
 create mode 100644 superset-frontend/src/pages/ThemeList/index.tsx
 create mode 100644 superset-frontend/src/theme/ThemeController.ts
 delete mode 100644 superset-frontend/src/theme/ThemeController.tsx
 create mode 100644 superset-frontend/src/theme/tests/ThemeController.test.ts
 create mode 100644 superset-frontend/src/theme/tests/ThemeProvider.test.tsx
 copy superset-frontend/{packages/superset-ui-core/src/validator/validateMaxValue.ts => src/utils/downloadAsPivotExcel.ts} (74%)
 copy superset/{advanced_data_type => commands/theme}/__init__.py (100%)
 create mode 100644 superset/commands/theme/delete.py
 copy superset/commands/{security => theme}/exceptions.py (71%)
 create mode 100644 superset/commands/theme/export.py
 create mode 100644 superset/commands/theme/import_themes.py
 copy superset/{advanced_data_type => commands/theme/importers}/__init__.py (100%)
 copy superset/commands/{chart => theme}/importers/dispatcher.py (90%)
 create mode 100644 superset/commands/theme/seed.py
 copy superset/commands/{database/ssh_tunnel/delete.py => theme/update.py} (54%)
 copy superset/daos/{security.py => theme.py} (69%)
 copy superset/migrations/versions/{2022-03-04_09-59_6766938c6065_add_key_value_store.py => 2025-07-15_16-40_3fd555e76e3d_theme_crud.py} (54%)
 copy superset/migrations/versions/{2024-05-01_10-52_58d051681a3b_add_catalog_perm_to_tables.py => 2025-07-15_18-41_cd1fb11291f2_add_theme_id_to_dashboard_model.py} (55%)
 copy superset/{advanced_data_type => themes}/__init__.py (100%)
 create mode 100644 superset/themes/api.py
 copy superset/{css_templates => themes}/filters.py (80%)
 create mode 100644 superset/themes/schemas.py
 create mode 100644 superset/themes/types.py
 create mode 100644 superset/themes/utils.py
 copy superset/translations/{pt_BR => ca}/LC_MESSAGES/messages.po (50%)
 copy superset/views/{css_templates.py => themes.py} (89%)
 create mode 100644 tests/integration_tests/dashboards/test_theme_integration.py
 copy {superset/advanced_data_type => tests/integration_tests/themes}/__init__.py (100%)
 create mode 100644 tests/integration_tests/themes/api_endpoints_test.py
 create mode 100644 tests/integration_tests/themes/api_tests.py
 create mode 100644 tests/unit_tests/commands/dataset/test_create.py
 create mode 100644 tests/unit_tests/connectors/sqla/test_utils.py
 copy {superset/advanced_data_type => tests/unit_tests/themes}/__init__.py (100%)
 create mode 100644 tests/unit_tests/themes/api_test.py
 create mode 100644 tests/unit_tests/themes/commands_test.py
 create mode 100644 tests/unit_tests/themes/dao_test.py
 create mode 100644 tests/unit_tests/themes/model_test.py
 create mode 100644 tests/unit_tests/themes/test_utils.py
 create mode 100644 tests/unit_tests/utils/map_type_tests.py