This is an automated email from the ASF dual-hosted git repository.
jli pushed a change to branch fix-dynamic-search-dataset
in repository https://gitbox.apache.org/repos/asf/superset.git
from 3a661fcf9a5 fix(roles): normalize cache keys and improve test coverage
add 983b633972f feat(bar-chart): add option to color bars by primary axis
when no dimensions are set (#37531)
add ef4b1d674be feat(docs): add filterable UI Components table and improve
build performance (#38253)
add 7815afb24d2 fix(charts): improve minor gridline visibility in dark
themes (#38371)
add 51ac758b801 fix(tags): expire tag relationship after deleting all
tagged objects (#38163)
add 80a29cd6fed chore(deps-dev): bump terser-webpack-plugin from 5.3.16 to
5.3.17 in /superset-frontend (#38386)
add 35d0aad854a feat(explore): Add Echarts option editor (#37868)
add 69732d9dca6 fix(superset-ui-core): achieve 100% coverage for npm run
core:cover (#38397)
add 832fee3ff8c refactor(mcp): move superset_core MCP module from mcp to
api/mcp (#38394)
add 19f949276ce refactor(config): SIGNAL_CACHE_CONFIG →
DISTRIBUTED_COORDINATION_CONFIG (#38395)
add aff6e260891 build(deps): replace monolithic `googleapis` with
lightweight `@googleapis/sheet` sub-package (#38124)
add 3d5694ee0f1 chore: regular `npm audit fix` (#38248)
add 3b656f9cc2f fix(dashboard): restore filterState prop for cross-filter
functionality (#38349)
add c25adbc3953 test(DashboardList): migrate Cypress E2E tests to RTL
(#38368)
add e2ebc135e4a test(playwright): add dashboard list E2E tests (#38377)
add 27d54f84213 fix(build/backend): migrate to deps-free `pygeohash` with
pre-built wheels at runtime (#37524)
add 796c206ee7b fix(charts): apply resample before rolling window in
post-processing pipeline (#37987)
add 63e7ee70bff fix(echarts): adaptive formatting labels (#38017)
add 8c9efe5659f feat: support for import/export masked_encrypted_extra
(backend) (#38077)
add dc995328a86 chore(deps): bump cryptography from 44.0.3 to 46.0.5
(#37912)
add 8f28a8734a1 chore(deps): bump flask from 2.3.3 to 3.1.3 (#38168)
add 1bfd41df0ca chore(deps): bump aquasecurity/trivy-action from 0.34.1 to
0.34.2 (#38352)
add 88241d3e710 chore(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in
/superset-frontend (#38353)
add a79dcbbb66d chore(deps): update d3-cloud requirement from ^1.2.8 to
^1.2.9 in /superset-frontend/plugins/plugin-chart-word-cloud (#38381)
add 939e4194c61 fix(alerts): fix error toast when editing report with
saved tab selection (#38198)
add 0d5827ac428 chore(extensions): unified contribution api and automatic
prefixing (#38412)
add 5a2a72cf31a chore(deps): bump svgo from 3.3.2 to 3.3.3 in /docs
(#38422)
add fdf19db5e6a chore(deps): bump svgo from 3.3.2 to 3.3.3 in
/superset-frontend (#38421)
add 4dfb0e66cb6 chore(deps-dev): bump webpack from 5.105.3 to 5.105.4 in
/superset-frontend (#38385)
add 880cab58c33 fix(bug): Error when adding a filter using custom sql
(#38246)
add 20cc3345d89 chore(playwright): Using warning for timeouts (#38441)
add a2c23a2a58f chore(deps-dev): bump css-minimizer-webpack-plugin from
7.0.4 to 8.0.0 in /superset-frontend (#38434)
add f6f734f0d16 chore(deps): bump google-auth-library from 10.5.0 to
10.6.1 in /superset-frontend (#38436)
add a513406239f feat!: upgrade project's Node version to v22 (#37223)
add f0416eff78e fix(dashboard): fix multiple drag-and-drop and edit mode
issues (#37891)
add 0dbd4c5b909 docs(mcp): add MCP server deployment and authentication
guide (#38415)
add 5f0efd2be9d test: fix CI OOM crashes in DatasourceControl test and
flaky FileHandleer test (#38430)
add 357e35dc628 refactor(core): reorganize superset-core packages into
feature-based structure (#38448)
add 6c359733e1d fix(frontend): preserve absolute and protocol-relative
URLs in ensureAppRoot (#38316)
add e5a73e8e848 Merge remote-tracking branch 'origin/master' into
fix-dynamic-search-dataset
No new revisions were added by this update.
Summary of changes:
.github/workflows/docker.yml | 2 +-
UPDATING.md | 8 +-
docs/.gitignore | 8 +-
docs/.nvmrc | 2 +-
docs/admin_docs/configuration/cache.mdx | 16 +-
docs/babel.config.js | 32 -
docs/developer_docs/api.mdx | 36 +-
.../developer_docs/extensions/components/alert.mdx | 6 +-
.../developer_docs/extensions/components/index.mdx | 8 +-
.../extensions/contribution-types.md | 51 +-
docs/developer_docs/extensions/dependencies.md | 6 +-
docs/developer_docs/extensions/development.md | 72 +-
docs/developer_docs/extensions/mcp-server.md | 679 +++++++++
docs/developer_docs/extensions/mcp.md | 6 +-
docs/developer_docs/extensions/overview.md | 6 +-
docs/developer_docs/extensions/quick-start.md | 44 +-
docs/developer_docs/extensions/tasks.md | 14 +-
docs/developer_docs/sidebars.js | 1 +
docs/docusaurus.config.ts | 28 +
docs/package.json | 11 +-
docs/scripts/generate-database-docs.mjs | 8 +-
docs/scripts/generate-extension-components.mjs | 676 ---------
docs/scripts/generate-if-changed.mjs | 307 ++++
docs/scripts/generate-superset-components.mjs | 241 +++-
docs/sidebarTutorials.js | 11 -
docs/src/components/databases/DatabaseIndex.tsx | 1 +
.../components/ui-components/ComponentIndex.tsx | 262 ++++
.../src/components/ui-components/index.ts | 3 +-
.../src/components/ui-components}/types.ts | 43 +-
docs/src/data/databases.json | 12 +-
docs/src/shims/superset-ui-core.ts | 57 +
docs/src/types/apache-superset-core/index.d.ts | 4 +-
docs/src/webpack.extend.ts | 15 +-
docs/tsconfig.json | 5 +-
docs/yarn.lock | 713 ++++++++--
pyproject.toml | 8 +-
requirements/base.txt | 4 +-
requirements/development.txt | 8 +-
superset-core/README.md | 4 +-
superset-core/src/superset_core/api/rest_api.py | 72 -
.../src/superset_core/{api => common}/__init__.py | 0
.../src/superset_core/{api => common}/daos.py | 82 +-
.../src/superset_core/{api => common}/models.py | 192 +--
superset-core/src/superset_core/mcp/__init__.py | 145 --
.../mcp/{__init__.py => decorators.py} | 2 +-
.../src/superset_core/{api => queries}/__init__.py | 0
superset-core/src/superset_core/queries/daos.py | 63 +
superset-core/src/superset_core/queries/models.py | 79 ++
.../src/superset_core/{api => queries}/query.py | 4 +-
.../src/superset_core/{api => queries}/types.py | 0
.../superset_core/{api => rest_api}/__init__.py | 0
.../src/superset_core/rest_api/api.py | 21 +-
.../src/superset_core/rest_api/decorators.py | 103 ++
.../src/superset_core/{api => tasks}/__init__.py | 0
superset-core/src/superset_core/tasks/daos.py | 76 +
.../src/superset_core/tasks/decorators.py | 152 ++
superset-core/src/superset_core/tasks/models.py | 169 +++
.../superset_core/{api/tasks.py => tasks/types.py} | 128 +-
superset-embedded-sdk/.nvmrc | 2 +-
superset-frontend/.nvmrc | 2 +-
superset-frontend/.storybook/preview.jsx | 2 +-
.../.storybook/shared/ResizableChartDemo.tsx | 2 +-
.../.storybook/shared/ResizablePanel.tsx | 2 +-
superset-frontend/.storybook/shared/VerifyCORS.tsx | 2 +-
.../cypress/e2e/dashboard_list/filter.test.ts | 47 -
.../cypress/e2e/dashboard_list/list.test.ts | 279 ----
superset-frontend/package-lock.json | 1470 ++++++++------------
superset-frontend/package.json | 15 +-
.../packages/superset-core/package.json | 62 +
.../packages/superset-core/src/api/index.ts | 44 -
.../authentication.ts => authentication/index.ts} | 0
.../src/{api/commands.ts => commands/index.ts} | 2 +-
.../src/{api/core.ts => common/index.ts} | 0
.../{ui => }/components/Alert/Alert.stories.tsx | 0
.../src/{ui => }/components/Alert/Alert.test.tsx | 0
.../src/{ui => }/components/Alert/index.tsx | 0
.../superset-core/src/{ui => }/components/index.ts | 0
.../contributions.ts => contributions/index.ts} | 8 +-
.../src/{api/editors.ts => editors/index.ts} | 26 +-
.../src/{api/extensions.ts => extensions/index.ts} | 2 +-
.../packages/superset-core/src/index.ts | 16 +-
.../src/{api/menus.ts => menus/index.ts} | 2 +-
.../src/{api/sqlLab.ts => sqlLab/index.ts} | 4 +-
.../superset-core/src/{ui => }/testing.tsx | 0
.../src/{ui => }/theme/GlobalStyles.tsx | 0
.../src/{ui => }/theme/Theme.test.tsx | 0
.../superset-core/src/{ui => }/theme/Theme.tsx | 0
.../src/{ui => }/theme/exampleThemes.ts | 0
.../superset-core/src/{ui => }/theme/index.tsx | 0
.../superset-core/src/{ui => }/theme/types.ts | 0
.../src/{ui => }/theme/utils/index.ts | 0
.../src/{ui => }/theme/utils/themeUtils.test.ts | 0
.../src/{ui => }/theme/utils/themeUtils.ts | 0
.../src/{ui => }/theme/utils/utils.test.ts | 0
.../src/{ui => }/translation/README.md | 0
.../src/{ui => }/translation/Translator.ts | 2 +-
.../{ui => }/translation/TranslatorSingleton.ts | 0
.../src/{ui => }/translation/index.ts | 0
.../src/{ui => }/translation/types/index.ts | 0
.../src/{ui => }/translation/types/jed.ts | 0
.../packages/superset-core/src/ui/index.ts | 21 -
.../src/{spec => }/utils/logging.test.ts | 4 +-
.../src/{api/views.ts => views/index.ts} | 2 +-
.../src/components/CertifiedIconWithTooltip.tsx | 4 +-
.../src/components/ColumnOption.tsx | 2 +-
.../components/ColumnTypeLabel/ColumnTypeLabel.tsx | 6 +-
.../src/components/ControlHeader.tsx | 4 +-
.../src/components/ControlSubSectionHeader.tsx | 2 +-
.../src/components/MetricOption.tsx | 2 +-
.../src/components/SQLPopover.tsx | 4 +-
.../src/components/labelUtils.tsx | 4 +-
.../superset-ui-chart-controls/src/constants.ts | 4 +-
.../superset-ui-chart-controls/src/fixtures.ts | 2 +-
.../src/sections/advancedAnalytics.tsx | 2 +-
.../src/sections/annotationsAndLayers.tsx | 2 +-
.../src/sections/chartTitle.tsx | 2 +-
.../src/sections/echartsTimeSeriesQuery.tsx | 2 +-
.../src/sections/forecastInterval.tsx | 2 +-
.../src/sections/matrixify.tsx | 2 +-
.../src/sections/sections.tsx | 2 +-
.../src/sections/timeComparison.tsx | 2 +-
.../components/RadioButtonControl.tsx | 2 +-
.../src/shared-controls/customControls.tsx | 4 +-
.../src/shared-controls/dndControls.tsx | 4 +-
.../src/shared-controls/matrixifyControls.tsx | 2 +-
.../src/shared-controls/mixins.tsx | 2 +-
.../src/shared-controls/sharedControls.tsx | 17 +-
.../superset-ui-chart-controls/src/types.ts | 3 +-
.../src/utils/D3Formatting.ts | 2 +-
.../src/utils/checkColumnType.ts | 2 +-
.../src/utils/columnChoices.ts | 2 +-
.../src/utils/getColorFormatters.ts | 2 +-
.../src/utils/isSortable.ts | 2 +-
.../src/utils/metricColumnFilter.test.ts | 8 +
.../test/components/ColumnOption.test.tsx | 2 +-
.../test/components/ColumnTypeLabel.test.tsx | 2 +-
.../test/shared-controls/customControls.test.tsx | 2 +-
.../test/utils/checkColumnType.test.ts | 2 +-
.../test/utils/columnChoices.test.tsx | 2 +-
.../test/utils/getColorFormatters.test.ts | 43 +-
.../test/utils/getTemporalColumns.test.ts | 2 +-
.../test/utils/isSortable.test.ts | 2 +-
.../src/chart/components/FallbackComponent.tsx | 4 +-
.../Matrixify/MatrixifyGridCell.test.tsx | 2 +-
.../components/Matrixify/MatrixifyGridCell.tsx | 4 +-
.../Matrixify/MatrixifyGridGenerator.test.ts | 120 ++
.../components/Matrixify/MatrixifyGridGenerator.ts | 8 +-
.../Matrixify/MatrixifyGridRenderer.test.tsx | 4 +-
.../components/Matrixify/MatrixifyGridRenderer.tsx | 2 +-
.../src/chart/components/NoResultsComponent.tsx | 3 +-
.../src/chart/components/StatefulChart.tsx | 2 +-
.../src/chart/components/SuperChartCore.tsx | 2 +-
.../src/chart/models/ChartProps.ts | 2 +-
.../types/matrixify.mocks.test.ts} | 12 +-
.../src/chart/types/matrixify.test.ts | 82 ++
.../superset-ui-core/src/chart/types/matrixify.ts | 36 +-
.../src/components/ActionButton/index.tsx | 2 +-
.../src/components/AsyncAceEditor/index.tsx | 8 +-
.../AsyncAceEditor/useJsonValidation.test.ts | 25 +
.../src/components/Badge/index.tsx | 2 +-
.../src/components/Button/index.tsx | 2 +-
.../src/components/CachedLabel/TooltipContent.tsx | 2 +-
.../src/components/CachedLabel/index.tsx | 2 +-
.../superset-ui-core/src/components/Card/index.tsx | 2 +-
.../CertifiedBadge/CertifiedBadge.stories.tsx | 2 +-
.../src/components/CertifiedBadge/index.tsx | 4 +-
.../src/components/Checkbox/CheckboxIcons.tsx | 2 +-
.../src/components/CodeSyntaxHighlighter/index.tsx | 2 +-
.../src/components/Collapse/Collapse.tsx | 2 +-
.../components/Collapse/CollapseLabelInModal.tsx | 2 +-
.../components/ConfirmModal/ConfirmModal.test.tsx | 2 +-
.../src/components/ConfirmModal/index.tsx | 4 +-
.../src/components/CronPicker/index.tsx | 4 +-
.../src/components/DatePicker/index.tsx | 2 +-
.../src/components/DeleteModal/index.tsx | 4 +-
.../src/components/Divider/index.tsx | 2 +-
.../src/components/Dropdown/index.tsx | 2 +-
.../src/components/DropdownButton/index.tsx | 2 +-
.../DropdownContainer.stories.tsx | 2 +-
.../DropdownContainer/DropdownContainer.tsx | 4 +-
.../src/components/DynamicEditableTitle/index.tsx | 4 +-
.../src/components/EditableTitle/index.tsx | 4 +-
.../src/components/EmptyState/index.tsx | 4 +-
.../src/components/FaveStar/index.tsx | 4 +-
.../src/components/Flex/Flex.stories.tsx | 2 +-
.../src/components/Form/FormItem.tsx | 2 +-
.../src/components/Form/FormLabel.tsx | 2 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 4 +-
.../src/components/IconButton/index.tsx | 2 +-
.../components/IconTooltip/IconTooltip.stories.tsx | 2 +-
.../src/components/Icons/BaseIcon.tsx | 2 +-
.../src/components/Icons/Icons.stories.tsx | 2 +-
.../src/components/InfoTooltip/index.tsx | 4 +-
.../src/components/Label/index.tsx | 2 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 4 +-
.../components/Label/reusable/PublishedLabel.tsx | 4 +-
.../src/components/LastUpdated/index.tsx | 4 +-
.../src/components/List/List.test.tsx | 10 +
.../superset-ui-core/src/components/List/index.ts | 2 +-
.../src/components/ListViewCard/ImageLoader.tsx | 4 +-
.../src/components/ListViewCard/index.tsx | 2 +-
.../src/components/Loading/index.test.tsx | 2 +-
.../src/components/Loading/index.tsx | 4 +-
.../superset-ui-core/src/components/Menu/index.tsx | 2 +-
.../src/components/Metadata/index.tsx | 2 +-
.../src/components/MetadataBar/ContentConfig.tsx | 4 +-
.../components/MetadataBar/MetadataBar.stories.tsx | 2 +-
.../components/MetadataBar/MetadataBar.test.tsx | 2 +-
.../src/components/MetadataBar/MetadataBar.tsx | 2 +-
.../src/components/Modal/FormModal.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 4 +-
.../src/components/PageHeaderWithActions/index.tsx | 4 +-
.../src/components/PopoverDropdown/index.tsx | 2 +-
.../src/components/PopoverSection/index.tsx | 2 +-
.../src/components/ProgressBar/index.tsx | 2 +-
.../src/components/Radio/Radio.stories.tsx | 2 +-
.../src/components/RefreshLabel/index.tsx | 2 +-
.../src/components/Select/AsyncSelect.tsx | 2 +-
.../src/components/Select/Select.tsx | 2 +-
.../src/components/Select/constants.test.ts | 49 +
.../src/components/Select/constants.ts | 2 +-
.../src/components/Select/styles.tsx | 2 +-
.../src/components/Select/utils.tsx | 2 +-
.../src/components/Table/VirtualTable.tsx | 2 +-
.../Table/cell-renderers/ActionCell/index.tsx | 2 +-
.../Table/cell-renderers/NullCell/index.tsx | 2 +-
.../Table/cell-renderers/NumericCell/index.tsx | 2 +-
.../header-renderers/HeaderWithRadioGroup.tsx | 2 +-
.../src/components/Table/index.tsx | 6 +-
.../Table/utils/InteractiveTableUtils.test.ts | 574 ++++++++
.../src/components/TableCollection/index.tsx | 2 +-
.../src/components/TableView/TableView.tsx | 2 +-
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 2 +-
.../ThemedAgGridReact/ThemedAgGridReact.test.tsx | 8 +-
.../src/components/ThemedAgGridReact/index.tsx | 2 +-
.../src/components/Timer/index.tsx | 2 +-
.../src/components/TimezoneSelector/index.tsx | 2 +-
.../src/components/TruncatedList/index.tsx | 4 +-
.../src/components/Typography/index.tsx | 2 +-
.../src/components/UnsavedChangesModal/index.tsx | 2 +-
.../components/WarningIconWithTooltip/index.tsx | 2 +-
.../superset-ui-core/src/components/constants.ts | 2 +-
.../superset-ui-core/src/components/index.ts | 1 +
.../src/query/extractQueryFields.ts | 2 +-
.../src/query/getClientErrorObject.ts | 2 +-
.../superset-ui-core/src/query/types/Column.ts | 2 +-
.../superset-ui-core/src/query/types/Query.ts | 2 +-
.../src/query/types/QueryResponse.ts | 2 +-
.../packages/superset-ui-core/src/spec/index.tsx | 2 +-
.../src/style/stories/Theme.stories.tsx | 2 +-
.../src/types/react-syntax-highlighter.d.ts | 7 -
.../superset-ui-core/src/utils/featureFlags.ts | 2 +-
.../src/utils/rankedSearchCompare.test.ts | 20 +
.../packages/superset-ui-core/src/utils/tooltip.ts | 2 +-
.../index.ts => utils/withLabel.test.ts} | 24 +-
.../src/validator/legacyValidateInteger.ts | 2 +-
.../src/validator/legacyValidateNumber.ts | 2 +-
.../src/validator/validateInteger.ts | 2 +-
.../src/validator/validateMapboxStylesUrl.ts | 2 +-
.../src/validator/validateMaxValue.ts | 2 +-
.../src/validator/validateNonEmpty.ts | 2 +-
.../src/validator/validateNumber.ts | 2 +-
.../src/validator/validateServerPagination.ts | 2 +-
.../validator/validateTimeComparisonRangeValues.ts | 2 +-
.../test/chart/clients/ChartClient.test.ts | 2 +-
.../test/chart/components/MockChartPlugins.tsx | 2 +-
.../test/chart/components/SuperChartCore.test.tsx | 2 +-
.../test/chart/models/ChartPlugin.test.tsx | 2 +-
.../test/chart/models/ChartProps.test.ts | 2 +-
.../Icons/AsyncIcon.integration.test.tsx | 2 +-
.../test/connection/SupersetClient.test.ts | 6 +
.../test/connection/SupersetClientClass.test.ts | 33 +
.../test/currency-format/CurrencyFormatter.test.ts | 78 ++
.../test/currency-format/utils.test.ts | 193 +++
.../packages/superset-ui-core/test/fixtures.ts | 2 +-
.../test/query/extractQueryFields.test.ts | 2 +-
.../test/query/types/Column.test.ts | 14 +
.../test/query/types/Dashboard.test.ts | 33 +
.../test/utils/featureFlag.test.ts | 4 +-
.../superset-ui-core/test/validator/setup.ts | 2 +-
.../playwright/helpers/api/dashboard.ts | 170 +++
.../playwright/helpers/fixtures/testAssets.ts | 24 +-
.../{ChartListPage.ts => DashboardListPage.ts} | 67 +-
.../experimental/dashboard/dashboard-list.spec.ts | 403 ++++++
.../dashboard-test-helpers.ts} | 47 +-
.../legacy-plugin-chart-calendar/src/Calendar.ts | 3 +-
.../src/ReactCalendar.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-calendar/src/index.ts | 2 +-
.../src/vendor/cal-heatmap.ts | 2 +-
.../legacy-plugin-chart-chord/src/ReactChord.tsx | 2 +-
.../legacy-plugin-chart-chord/src/controlPanel.ts | 2 +-
.../plugins/legacy-plugin-chart-chord/src/index.ts | 2 +-
.../src/ReactCountryMap.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-country-map/src/index.ts | 2 +-
.../src/stories/CountryMap.stories.tsx | 2 +-
.../src/HorizonChart.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-horizon/src/index.ts | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-map-box/src/index.ts | 2 +-
.../src/stories/MapBox.stories.tsx | 2 +-
.../src/stories/data.ts | 2 +-
.../src/PairedTTest.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-paired-t-test/src/index.ts | 2 +-
.../src/ReactParallelCoordinates.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../src/index.ts | 2 +-
.../src/ReactPartition.tsx | 2 +-
.../src/controlPanel.tsx | 2 +-
.../legacy-plugin-chart-partition/src/index.ts | 2 +-
.../legacy-plugin-chart-rose/src/ReactRose.tsx | 2 +-
.../legacy-plugin-chart-rose/src/controlPanel.tsx | 2 +-
.../plugins/legacy-plugin-chart-rose/src/index.ts | 2 +-
.../src/ReactWorldMap.tsx | 2 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-world-map/src/index.ts | 2 +-
.../src/DeckGLContainer.tsx | 2 +-
.../src/Multi/Multi.test.tsx | 2 +-
.../legacy-preset-chart-deckgl/src/Multi/Multi.tsx | 2 +-
.../src/Multi/controlPanel.ts | 2 +-
.../legacy-preset-chart-deckgl/src/Multi/index.ts | 2 +-
.../src/components/Legend.tsx | 2 +-
.../src/components/Tooltip.tsx | 2 +-
.../src/layers/Arc/controlPanel.ts | 2 +-
.../src/layers/Arc/index.ts | 2 +-
.../src/layers/Contour/Contour.tsx | 2 +-
.../src/layers/Contour/controlPanel.ts | 2 +-
.../src/layers/Contour/index.ts | 2 +-
.../src/layers/Geojson/controlPanel.ts | 2 +-
.../src/layers/Geojson/index.ts | 2 +-
.../src/layers/Grid/controlPanel.ts | 2 +-
.../src/layers/Grid/index.ts | 2 +-
.../src/layers/Heatmap/Heatmap.tsx | 2 +-
.../src/layers/Heatmap/controlPanel.ts | 2 +-
.../src/layers/Heatmap/index.ts | 2 +-
.../src/layers/Hex/controlPanel.ts | 2 +-
.../src/layers/Hex/index.ts | 2 +-
.../src/layers/Path/controlPanel.ts | 2 +-
.../src/layers/Path/index.ts | 2 +-
.../src/layers/Path/stories/Path.stories.tsx | 2 +-
.../src/layers/Polygon/Polygon.test.tsx | 2 +-
.../src/layers/Polygon/Polygon.tsx | 2 +-
.../src/layers/Polygon/controlPanel.ts | 2 +-
.../src/layers/Polygon/index.ts | 2 +-
.../src/layers/Scatter/Scatter.tsx | 2 +-
.../src/layers/Scatter/controlPanel.ts | 2 +-
.../src/layers/Scatter/index.ts | 2 +-
.../src/layers/Screengrid/Screengrid.tsx | 4 +-
.../src/layers/Screengrid/controlPanel.ts | 2 +-
.../src/layers/Screengrid/index.ts | 2 +-
.../src/layers/spatialUtils.test.ts | 2 +-
.../src/utilities/HandlebarsRenderer.tsx | 4 +-
.../src/utilities/Shared_DeckGL.tsx | 2 +-
.../src/utilities/TooltipTemplateControl.tsx | 4 +-
.../src/utilities/TooltipTemplateEditor.tsx | 2 +-
.../src/utilities/sharedDndControls.tsx | 2 +-
.../src/utilities/tooltipUtils.tsx | 2 +-
.../src/Bubble/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bubble/index.ts | 2 +-
.../src/Bullet/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bullet/index.ts | 2 +-
.../src/Compare/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Compare/index.ts | 2 +-
.../legacy-preset-chart-nvd3/src/NVD3Controls.tsx | 2 +-
.../legacy-preset-chart-nvd3/src/NVD3Vis.ts | 2 +-
.../legacy-preset-chart-nvd3/src/ReactNVD3.tsx | 2 +-
.../src/TimePivot/controlPanel.ts | 2 +-
.../src/TimePivot/index.ts | 2 +-
.../src/vendor/superset/AnnotationTypes.ts | 2 +-
.../src/AgGridTable/components/CustomHeader.tsx | 2 +-
.../src/AgGridTable/components/Pagination.tsx | 2 +-
.../components/TimeComparisonVisibility.tsx | 2 +-
.../src/AgGridTable/index.tsx | 2 +-
.../src/AgGridTableChart.tsx | 4 +-
.../src/controlPanel.tsx | 4 +-
.../plugin-chart-ag-grid-table/src/index.ts | 2 +-
.../src/renderers/NumericCellRenderer.tsx | 6 +-
.../src/renderers/TextCellRenderer.tsx | 2 +-
.../plugin-chart-ag-grid-table/src/stories/data.ts | 2 +-
.../src/styles/index.tsx | 2 +-
.../src/transformProps.ts | 4 +-
.../src/utils/formatValue.ts | 2 +-
.../src/utils/useColDefs.ts | 2 +-
.../src/utils/useTableTheme.ts | 2 +-
.../test/controlPanel.test.tsx | 2 +-
.../test/utils/useColDefs.test.ts | 2 +-
.../src/CartodiagramPlugin.tsx | 2 +-
.../src/components/ChartLayer.tsx | 2 +-
.../src/components/ChartWrapper.tsx | 2 +-
.../src/plugin/controlPanel.ts | 2 +-
.../plugin-chart-cartodiagram/src/plugin/index.ts | 2 +-
.../plugins/plugin-chart-cartodiagram/src/types.ts | 2 +-
.../src/util/chartUtil.tsx | 2 +-
.../src/util/controlPanelUtil.tsx | 2 +-
.../test/plugin/transformProps.test.ts | 2 +-
.../plugins/plugin-chart-echarts/package.json | 4 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 4 +-
.../BigNumberPeriodOverPeriod/controlPanel.ts | 4 +-
.../BigNumber/BigNumberPeriodOverPeriod/index.ts | 2 +-
.../src/BigNumber/BigNumberTotal/controlPanel.ts | 4 +-
.../src/BigNumber/BigNumberTotal/index.ts | 2 +-
.../BigNumberTotal/transformProps.test.ts | 2 +-
.../src/BigNumber/BigNumberTotal/transformProps.ts | 2 +-
.../src/BigNumber/BigNumberViz.tsx | 4 +-
.../BigNumberWithTrendline/buildQuery.test.ts | 4 +-
.../BigNumber/BigNumberWithTrendline/buildQuery.ts | 2 +-
.../BigNumberWithTrendline/controlPanel.tsx | 2 +-
.../src/BigNumber/BigNumberWithTrendline/index.ts | 2 +-
.../BigNumberWithTrendline/transformProps.test.ts | 2 +-
.../BigNumberWithTrendline/transformProps.ts | 4 +-
.../src/BigNumber/sharedControls.ts | 2 +-
.../src/BoxPlot/controlPanel.ts | 2 +-
.../plugin-chart-echarts/src/BoxPlot/index.ts | 2 +-
.../src/Bubble/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Bubble/index.ts | 2 +-
.../src/Funnel/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Funnel/index.ts | 2 +-
.../src/Gantt/EchartsGantt.tsx | 2 +-
.../src/Gantt/controlPanel.tsx | 4 +-
.../plugin-chart-echarts/src/Gantt/index.ts | 2 +-
.../src/Gantt/transformProps.ts | 4 +-
.../plugin-chart-echarts/src/Gauge/constants.ts | 2 +-
.../src/Gauge/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Gauge/index.ts | 2 +-
.../src/Graph/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Graph/index.ts | 2 +-
.../src/Heatmap/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Heatmap/index.ts | 2 +-
.../src/Heatmap/transformProps.ts | 4 +-
.../src/Histogram/controlPanel.tsx | 4 +-
.../plugin-chart-echarts/src/Histogram/index.ts | 2 +-
.../src/MixedTimeseries/buildQuery.ts | 2 +-
.../src/MixedTimeseries/controlPanel.tsx | 3 +-
.../src/MixedTimeseries/index.ts | 2 +-
.../src/MixedTimeseries/transformProps.ts | 22 +-
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-echarts/src/Pie/index.ts | 2 +-
.../plugin-chart-echarts/src/Pie/transformProps.ts | 2 +-
.../src/Radar/controlPanel.tsx | 4 +-
.../plugin-chart-echarts/src/Radar/index.ts | 2 +-
.../src/Sankey/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Sankey/index.ts | 2 +-
.../src/Sunburst/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Sunburst/index.ts | 2 +-
.../src/Sunburst/transformProps.ts | 2 +-
.../src/Timeseries/Area/controlPanel.tsx | 3 +-
.../src/Timeseries/Area/index.ts | 2 +-
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 5 +-
.../src/Timeseries/Regular/Bar/index.ts | 2 +-
.../src/Timeseries/Regular/Line/controlPanel.tsx | 3 +-
.../src/Timeseries/Regular/Line/index.ts | 2 +-
.../Timeseries/Regular/Scatter/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/Scatter/index.ts | 2 +-
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 3 +-
.../src/Timeseries/Regular/SmoothLine/index.ts | 2 +-
.../src/Timeseries/Step/controlPanel.tsx | 2 +-
.../src/Timeseries/Step/index.ts | 2 +-
.../src/Timeseries/buildQuery.ts | 6 +-
.../src/Timeseries/constants.ts | 2 +-
.../plugin-chart-echarts/src/Timeseries/index.ts | 2 +-
.../src/Timeseries/transformProps.ts | 152 +-
.../src/Timeseries/transformers.ts | 51 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 1 +
.../plugin-chart-echarts/src/Tree/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-echarts/src/Tree/index.ts | 2 +-
.../src/Treemap/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Treemap/index.ts | 2 +-
.../src/Waterfall/constants.ts | 2 +-
.../src/Waterfall/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Waterfall/index.ts | 2 +-
.../src/Waterfall/transformProps.ts | 2 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 8 +-
.../src/components/ExtraControls.tsx | 2 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 2 +-
.../plugins/plugin-chart-echarts/src/controls.tsx | 30 +-
.../plugins/plugin-chart-echarts/src/index.ts | 3 +
.../src/utils/eChartOptionsSchema.ts | 827 +++++++++++
.../plugin-chart-echarts/src/utils/formatters.ts | 91 +-
.../src/utils/mergeCustomEChartOptions.test.ts | 163 +++
.../src/utils/mergeCustomEChartOptions.ts | 79 ++
.../src/utils/safeEChartOptionsParser.test.ts | 525 +++++++
.../src/utils/safeEChartOptionsParser.ts | 477 +++++++
.../plugin-chart-echarts/src/utils/series.ts | 4 +-
.../test/BigNumber/transformProps.test.ts | 2 +-
.../test/BoxPlot/transformProps.test.ts | 2 +-
.../test/Bubble/transformProps.test.ts | 2 +-
.../test/Funnel/transformProps.test.ts | 2 +-
.../test/Gantt/transformProps.test.ts | 2 +-
.../test/Gauge/transformProps.test.ts | 2 +-
.../test/Graph/transformProps.test.ts | 2 +-
.../test/Heatmap/transformProps.test.ts | 2 +-
.../test/MixedTimeseries/transformProps.test.ts | 2 +-
.../test/Pie/transformProps.test.ts | 2 +-
.../test/Radar/transformProps.test.ts | 2 +-
.../test/Timeseries/Bar/transformProps.test.ts | 285 +++-
.../test/Timeseries/Scatter/transformProps.test.ts | 12 +-
.../test/Timeseries/transformProps.test.ts | 6 +-
.../test/Timeseries/transformers.test.ts | 4 +-
.../test/Tree/transformProps.test.ts | 2 +-
.../test/Treemap/transformProps.test.ts | 2 +-
.../test/Waterfall/transformProps.test.ts | 2 +-
.../plugins/plugin-chart-echarts/test/helpers.ts | 2 +-
.../test/utils/formatters.test.ts | 174 ++-
.../plugin-chart-echarts/test/utils/series.test.ts | 4 +-
.../test/utils/transformers.test.ts | 2 +-
.../plugin-chart-handlebars/src/Handlebars.tsx | 2 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 4 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../src/plugin/controls/columns.tsx | 2 +-
.../src/plugin/controls/handlebarTemplate.tsx | 4 +-
.../src/plugin/controls/includeTime.ts | 2 +-
.../src/plugin/controls/metrics.tsx | 2 +-
.../src/plugin/controls/orderBy.tsx | 2 +-
.../src/plugin/controls/queryMode.tsx | 2 +-
.../src/plugin/controls/shared.ts | 2 +-
.../src/plugin/controls/style.tsx | 4 +-
.../plugin-chart-handlebars/src/plugin/index.ts | 2 +-
.../test/plugin/transformProps.test.ts | 2 +-
.../src/PivotTableChart.tsx | 4 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../plugin-chart-pivot-table/src/plugin/index.ts | 2 +-
.../src/plugin/transformProps.ts | 2 +-
.../src/react-pivottable/Styles.ts | 2 +-
.../src/react-pivottable/TableRenderers.tsx | 2 +-
.../src/react-pivottable/utilities.ts | 2 +-
.../test/plugin/transformProps.test.ts | 2 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 2 +-
.../src/DataTable/components/GlobalFilter.tsx | 2 +-
.../DataTable/components/SearchSelectDropdown.tsx | 2 +-
.../src/DataTable/components/SelectPageSize.tsx | 4 +-
.../src/DataTable/hooks/useSticky.tsx | 2 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 7 +-
.../plugins/plugin-chart-table/src/consts.ts | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 4 +-
.../plugins/plugin-chart-table/src/index.ts | 2 +-
.../plugin-chart-table/src/stories/testData.ts | 2 +-
.../plugin-chart-table/src/transformProps.ts | 4 +-
.../plugin-chart-table/src/utils/formatValue.ts | 2 +-
.../plugin-chart-table/test/TableChart.test.tsx | 2 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 2 +-
.../plugins/plugin-chart-table/test/testData.ts | 4 +-
.../plugin-chart-table/test/testHelpers.tsx | 2 +-
.../test/utils/formatValue.test.ts | 2 +-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../src/chart/WordCloud.tsx | 2 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../ColorSchemeControl/ColorSchemeLabel.tsx | 2 +-
.../plugin/controls/ColorSchemeControl/index.tsx | 4 +-
.../src/plugin/controls/RotationControl.tsx | 2 +-
.../plugin-chart-word-cloud/src/plugin/index.ts | 2 +-
.../scripts/eslint-metrics-uploader.js | 144 --
.../scripts/oxlint-metrics-uploader.js | 7 +-
superset-frontend/spec/helpers/ProviderWrapper.tsx | 2 +-
superset-frontend/spec/helpers/shim.tsx | 2 +-
superset-frontend/spec/helpers/testing-library.tsx | 2 +-
.../src/SqlLab/SqlLabGlobalStyles.tsx | 2 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 2 +-
.../src/SqlLab/components/App/index.tsx | 4 +-
.../src/SqlLab/components/AppLayout/index.tsx | 2 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 4 +-
.../EditorAutoSync/EditorAutoSync.test.tsx | 6 +-
.../src/SqlLab/components/EditorAutoSync/index.tsx | 2 +-
.../src/SqlLab/components/EditorWrapper/index.tsx | 2 +-
.../components/EditorWrapper/useAnnotations.ts | 2 +-
.../SqlLab/components/EditorWrapper/useKeywords.ts | 2 +-
.../components/EstimateQueryCostButton/index.tsx | 5 +-
.../components/ExploreCtasResultsButton/index.tsx | 2 +-
.../components/ExploreResultsButton/index.tsx | 2 +-
.../src/SqlLab/components/HighlightedSql/index.tsx | 2 +-
.../components/KeyboardShortcutButton/index.tsx | 4 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 4 +-
.../SqlLab/components/QueryLimitSelect/index.tsx | 2 +-
.../SqlLab/components/QueryStateLabel/index.tsx | 2 +-
.../src/SqlLab/components/QueryStatusBar/index.tsx | 3 +-
.../src/SqlLab/components/QueryTable/index.tsx | 4 +-
.../src/SqlLab/components/QueryTable/styles.ts | 2 +-
.../src/SqlLab/components/ResultSet/index.tsx | 7 +-
.../components/RunQueryActionButton/index.tsx | 4 +-
.../components/SaveDatasetActionButton/index.tsx | 2 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 4 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 4 +-
.../components/ScheduleQueryButton/index.tsx | 4 +-
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 4 +-
.../src/SqlLab/components/SouthPane/Results.tsx | 5 +-
.../src/SqlLab/components/SouthPane/index.tsx | 4 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 5 +-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 4 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 9 +-
.../SqlLab/components/SqlEditorTopBar/index.tsx | 2 +-
.../src/SqlLab/components/StatusBar/index.tsx | 2 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 4 +-
.../src/SqlLab/components/TableElement/index.tsx | 4 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 3 +-
.../SqlLab/components/TableExploreTree/index.tsx | 3 +-
.../components/TableExploreTree/useTreeData.ts | 2 +-
.../src/SqlLab/components/TablePreview/index.tsx | 5 +-
.../components/TemplateParamsEditor/index.tsx | 4 +-
superset-frontend/src/SqlLab/constants.ts | 2 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +-
.../src/SqlLab/reducers/getInitialState.ts | 2 +-
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 2 +-
.../src/SqlLab/utils/newQueryTabName.ts | 2 +-
.../DeckglLayerVisibilityCustomizationPlugin.tsx | 4 +-
.../components/DeckglLayerVisibility/index.ts | 2 +-
.../DynamicGroupBy/DynamicGroupByPlugin.tsx | 2 +-
.../components/DynamicGroupBy/controlPanel.ts | 2 +-
.../components/DynamicGroupBy/index.ts | 2 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 4 +-
.../components/TimeColumn/controlPanel.ts | 2 +-
.../components/TimeColumn/index.ts | 2 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 2 +-
.../components/TimeGrain/controlPanel.ts | 2 +-
.../components/TimeGrain/index.ts | 2 +-
.../src/chartCustomizations/components/common.ts | 2 +-
.../src/components/AlteredSliceTag/index.tsx | 2 +-
.../src/components/AuditInfo/index.tsx | 2 +-
superset-frontend/src/components/Chart/Chart.tsx | 7 +-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 4 +-
.../src/components/Chart/ChartRenderer.tsx | 4 +-
.../components/Chart/DisabledMenuItemTooltip.tsx | 2 +-
.../src/components/Chart/DrillBy/DrillByChart.tsx | 2 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 5 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 4 +-
.../Chart/DrillBy/useDisplayModeToggle.tsx | 4 +-
.../Chart/DrillBy/useResultsTableView.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailModal.tsx | 4 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 6 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 4 +-
.../src/components/Chart/DrillDetail/types.ts | 2 +-
.../components/Chart/MenuItemWithTruncation.tsx | 2 +-
.../src/components/Chart/chartAction.ts | 2 +-
.../src/components/Chart/chartReducer.ts | 2 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 4 +-
.../src/components/CopyToClipboard/index.tsx | 4 +-
.../src/components/CrudThemeProvider.tsx | 2 +-
.../src/components/DatabaseSelector/index.tsx | 4 +-
.../src/components/DatabaseSelector/styles.ts | 2 +-
.../Datasource/ChangeDatasourceModal/index.tsx | 5 +-
.../Datasource/DatasourceModal/index.tsx | 5 +-
.../Datasource/FoldersEditor/TreeItem.styles.ts | 2 +-
.../Datasource/FoldersEditor/TreeItem.tsx | 5 +-
.../components/DragOverlayContent.tsx | 2 +-
.../components/FoldersToolbarComponent.tsx | 2 +-
.../FoldersEditor/components/ResetConfirmModal.tsx | 2 +-
.../Datasource/FoldersEditor/folderOperations.ts | 2 +-
.../Datasource/FoldersEditor/folderValidation.ts | 2 +-
.../FoldersEditor/hooks/useDragHandlers.ts | 2 +-
.../FoldersEditor/hooks/useItemHeights.ts | 2 +-
.../components/Datasource/FoldersEditor/styles.tsx | 2 +-
.../components/CollectionTable/index.tsx | 4 +-
.../DatasourceEditor/DatasourceEditor.tsx | 10 +-
.../components/DashboardLinksExternal/index.tsx | 2 +-
.../components/DatasetUsageTab/index.tsx | 4 +-
.../tests/DatasourceEditorCurrency.test.tsx | 2 +-
.../Datasource/components/Field/index.tsx | 2 +-
.../Datasource/components/Fieldset/index.tsx | 2 +-
.../src/components/Datasource/utils/index.ts | 2 +-
.../src/components/Datasource/utils/utils.test.tsx | 2 +-
.../src/components/DynamicPlugins/index.tsx | 2 +-
.../src/components/ErrorBoundary/index.tsx | 2 +-
.../ErrorMessage/BasicErrorAlert.test.tsx | 2 +-
.../components/ErrorMessage/BasicErrorAlert.tsx | 6 +-
.../ErrorMessage/DatabaseErrorMessage.tsx | 4 +-
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 2 +-
.../src/components/ErrorMessage/ErrorAlert.tsx | 5 +-
.../ErrorMessage/ErrorMessageWithStackTrace.tsx | 2 +-
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 2 +-
.../ErrorMessage/InvalidSQLErrorMessage.tsx | 2 +-
.../src/components/ErrorMessage/IssueCode.tsx | 4 +-
.../ErrorMessage/MarshmallowErrorMessage.tsx | 2 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 2 +-
.../ErrorMessage/ParameterErrorMessage.tsx | 4 +-
.../ErrorMessage/TimeoutErrorMessage.tsx | 4 +-
.../src/components/FilterableTable/utils.tsx | 2 +-
.../src/components/GridTable/Header.tsx | 4 +-
.../src/components/GridTable/HeaderMenu.tsx | 4 +-
.../src/components/GridTable/index.tsx | 2 +-
.../src/components/ImportModal/ErrorAlert.tsx | 5 +-
.../components/ImportModal/ImportErrorAlert.tsx | 2 +-
.../src/components/ImportModal/index.tsx | 4 +-
.../src/components/ImportModal/styles.ts | 2 +-
.../src/components/JsonModal/index.tsx | 2 +-
.../src/components/LastQueriedLabel/index.tsx | 4 +-
.../src/components/ListView/ActionsBar.tsx | 2 +-
.../src/components/ListView/CardCollection.tsx | 2 +-
.../src/components/ListView/CardSortSelect.tsx | 4 +-
.../src/components/ListView/CrossLinks.tsx | 2 +-
.../src/components/ListView/CrossLinksTooltip.tsx | 4 +-
.../src/components/ListView/Filters/Base.ts | 2 +-
.../src/components/ListView/Filters/DateRange.tsx | 2 +-
.../components/ListView/Filters/NumericalRange.tsx | 4 +-
.../src/components/ListView/Filters/Search.tsx | 4 +-
.../src/components/ListView/Filters/Select.tsx | 2 +-
.../src/components/ListView/Filters/index.tsx | 2 +-
.../src/components/ListView/ListView.tsx | 5 +-
.../src/components/MessageToasts/Toast.tsx | 9 +-
.../components/MessageToasts/ToastPresenter.tsx | 2 +-
.../components/Modal/CollapsibleModalSection.tsx | 2 +-
.../src/components/Modal/ModalFormField.tsx | 2 +-
.../src/components/Modal/StandardModal.tsx | 4 +-
.../src/components/Modal/useModalValidation.tsx | 4 +-
.../src/components/ModalTitleWithIcon/index.tsx | 2 +-
.../src/components/PanelToolbar/index.tsx | 2 +-
.../src/components/ResizableSidebar/index.tsx | 2 +-
.../src/components/RowCountLabel/index.tsx | 2 +-
.../components/SQLEditorWithValidation/index.tsx | 4 +-
.../StreamingExportModal/StreamingExportModal.tsx | 4 +-
.../src/components/TableSelector/index.tsx | 4 +-
superset-frontend/src/components/Tag/index.tsx | 2 +-
superset-frontend/src/components/Tag/utils.tsx | 2 +-
.../src/components/TagsList/index.tsx | 2 +-
superset-frontend/src/core/commands/index.ts | 2 +-
.../src/core/editors/AceEditorProvider.test.tsx | 2 +-
.../src/core/editors/AceEditorProvider.tsx | 7 +
superset-frontend/src/core/editors/EditorHost.tsx | 2 +-
superset-frontend/src/core/index.ts | 2 +-
superset-frontend/src/core/models.ts | 2 +-
superset-frontend/src/core/sqlLab/models.ts | 5 +-
superset-frontend/src/core/utils.ts | 2 +-
.../dashboard/actions/chartCustomizationActions.ts | 2 +-
.../src/dashboard/actions/dashboardInfo.ts | 2 +-
.../src/dashboard/actions/dashboardLayout.ts | 2 +-
.../src/dashboard/actions/dashboardState.ts | 4 +-
.../src/dashboard/actions/sliceEntities.ts | 2 +-
.../components/AddSliceCard/AddSliceCard.tsx | 4 +-
.../src/dashboard/components/AnchorLink/index.tsx | 2 +-
.../components/AutoRefreshIndicator/index.tsx | 3 +-
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 2 +-
.../AutoRefreshStatus/StatusTooltipContent.tsx | 2 +-
.../components/BuilderComponentPane/index.tsx | 4 +-
.../components/ColorSchemeControlWrapper.tsx | 2 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 4 +-
.../components/CustomizationsBadge/index.tsx | 4 +-
.../src/dashboard/components/Dashboard.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.tsx | 22 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../src/dashboard/components/DashboardGrid.tsx | 3 +-
.../dashboard/components/EmbeddedModal/index.tsx | 5 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 4 +-
.../FiltersBadge/FilterIndicator/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/Styles.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 4 +-
.../src/dashboard/components/Header/index.tsx | 3 +-
.../components/Header/useDashboardMetadataBar.tsx | 2 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 2 +-
.../src/dashboard/components/IconButton.tsx | 2 +-
.../src/dashboard/components/MissingChart.tsx | 2 +-
.../OverwriteConfirm/OverwriteConfirmModal.tsx | 4 +-
.../PropertiesModal/PropertiesModal.test.tsx | 2 +-
.../dashboard/components/PropertiesModal/index.tsx | 2 +-
.../PropertiesModal/sections/AccessSection.tsx | 2 +-
.../PropertiesModal/sections/AdvancedSection.tsx | 4 +-
.../PropertiesModal/sections/BasicInfoSection.tsx | 2 +-
.../sections/CertificationSection.tsx | 2 +-
.../PropertiesModal/sections/RefreshSection.tsx | 2 +-
.../PropertiesModal/sections/StylingSection.tsx | 5 +-
.../dashboard/components/PublishedStatus/index.tsx | 2 +-
.../dashboard/components/RefreshButton/index.tsx | 3 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 4 +-
.../dashboard/components/RefreshIntervalModal.tsx | 4 +-
.../src/dashboard/components/SaveModal.tsx | 4 +-
.../src/dashboard/components/SliceAdder.tsx | 4 +-
.../src/dashboard/components/SliceHeader/index.tsx | 9 +-
.../ViewResultsModalTrigger.tsx | 4 +-
.../components/SliceHeaderControls/index.tsx | 4 +-
.../components/URLShortLinkButton/index.tsx | 4 +-
.../src/dashboard/components/dnd/DragDroppable.tsx | 11 +-
.../src/dashboard/components/dnd/DragHandle.tsx | 2 +-
.../components/filterscope/FilterScope.test.tsx | 2 +-
.../components/filterscope/FilterScopeModal.tsx | 2 +-
.../components/filterscope/FilterScopeSelector.tsx | 3 +-
.../filterscope/renderFilterScopeTreeNodes.tsx | 2 +-
.../dashboard/components/filterscope/treeIcons.tsx | 2 +-
.../components/gridComponents/Chart/Chart.test.tsx | 30 +
.../components/gridComponents/Chart/Chart.tsx | 4 +-
.../gridComponents/ChartHolder/ChartHolder.tsx | 2 +-
.../components/gridComponents/Column/Column.tsx | 5 +-
.../components/gridComponents/Divider/Divider.tsx | 2 +-
.../DynamicComponent/DynamicComponent.tsx | 2 +-
.../components/gridComponents/Header/Header.tsx | 2 +-
.../gridComponents/Markdown/Markdown.test.tsx | 26 +-
.../gridComponents/Markdown/Markdown.tsx | 3 +-
.../components/gridComponents/Row/Row.tsx | 29 +-
.../components/gridComponents/Tab/Tab.tsx | 3 +-
.../components/gridComponents/Tabs/Tabs.tsx | 3 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 2 +-
.../gridComponents/new/DraggableNewComponent.tsx | 2 +-
.../components/gridComponents/new/NewColumn.tsx | 2 +-
.../components/gridComponents/new/NewDivider.tsx | 2 +-
.../components/gridComponents/new/NewHeader.tsx | 2 +-
.../components/gridComponents/new/NewMarkdown.tsx | 2 +-
.../components/gridComponents/new/NewRow.tsx | 2 +-
.../components/gridComponents/new/NewTabs.tsx | 2 +-
.../components/menu/BackgroundStyleDropdown.tsx | 4 +-
.../components/menu/DownloadMenuItems/index.tsx | 3 +-
.../src/dashboard/components/menu/HoverMenu.tsx | 2 +-
.../components/menu/MarkdownModeDropdown.tsx | 2 +-
.../components/menu/ShareMenuItems/index.tsx | 3 +-
.../dashboard/components/menu/WithPopoverMenu.tsx | 17 +-
.../nativeFilters/ConfigModal/ModalFooter.tsx | 5 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 2 +-
.../FilterBar/ActionButtons/index.tsx | 4 +-
.../FilterBar/CrossFilters/CrossFilter.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilterTag.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 4 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 4 +-
.../CrossFilters/ScopingModal/ScopingModal.tsx | 2 +-
.../ScopingModal/ScopingModalContent.tsx | 2 +-
.../CrossFilters/ScopingModal/ScopingTreePanel.tsx | 5 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 4 +-
.../nativeFilters/FilterBar/CrossFilters/styles.ts | 2 +-
.../CustomizationsOutOfScopeCollapsible/index.tsx | 4 +-
.../FilterBar/FilterBarSettings/index.tsx | 4 +-
.../FilterControls/FilterControlShared.tsx | 2 +-
.../FilterBar/FilterControls/FilterControls.tsx | 9 +-
.../FilterControls/FilterDivider.stories.tsx | 2 +-
.../FilterBar/FilterControls/FilterDivider.tsx | 2 +-
.../FilterBar/FilterControls/FilterValue.tsx | 4 +-
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 9 +-
.../FilterBar/FiltersDropdownContent/index.tsx | 2 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 4 +-
.../nativeFilters/FilterBar/Header/index.tsx | 4 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 4 +-
.../nativeFilters/FilterBar/Vertical.tsx | 4 +-
.../components/nativeFilters/FilterBar/index.tsx | 2 +-
.../nativeFilters/FilterBar/keyValue.tsx | 2 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 4 +-
.../nativeFilters/FilterCard/NameRow.tsx | 2 +-
.../nativeFilters/FilterCard/ScopeRow.tsx | 4 +-
.../components/nativeFilters/FilterCard/Styles.ts | 2 +-
.../nativeFilters/FilterCard/TypeRow.tsx | 2 +-
.../nativeFilters/FilterCard/useFilterScope.ts | 2 +-
.../ConfigModalContent/ConfigModalContent.tsx | 2 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 4 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 4 +-
.../FiltersConfigModal/DraggableFilter.tsx | 4 +-
.../FiltersConfigModal/FilterConfigurePane.tsx | 2 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 4 +-
.../FiltersConfigModal/FilterTitlePane.tsx | 4 +-
.../FiltersConfigForm/CollapsibleControl.tsx | 2 +-
.../FiltersConfigForm/ColumnSelect.tsx | 2 +-
.../FiltersConfigForm/DatasetSelect.tsx | 2 +-
.../FiltersConfigForm/DefaultValue.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 4 +-
.../FiltersConfigForm/FilterScope/FilterScope.tsx | 2 +-
.../FiltersConfigForm/FilterScope/ScopingTree.tsx | 2 +-
.../FiltersConfigForm/FilterScope/state.ts | 2 +-
.../FiltersConfigForm/FilterScope/utils.ts | 4 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 6 +-
.../FiltersConfigForm/RemovedFilter.tsx | 4 +-
.../FiltersConfigForm/constants.ts | 2 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 4 +-
.../FiltersConfigModal/FiltersConfigForm/state.ts | 2 +-
.../FiltersConfigForm/utils.test.ts | 2 +-
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 2 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 4 +-
.../Footer/CancelConfirmationAlert.tsx | 4 +-
.../FiltersConfigModal/Footer/Footer.tsx | 2 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 4 +-
.../FiltersConfigModal/ItemTitlePane.tsx | 2 +-
.../FiltersConfigModal/NewItemDropdown.tsx | 4 +-
.../hooks/useFilterOperations.ts | 2 +-
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 2 +-
.../nativeFilters/FiltersConfigModal/utils.ts | 2 +-
.../dashboard/components/nativeFilters/utils.ts | 2 +-
.../components/resizable/ResizableContainer.tsx | 2 +-
.../src/dashboard/containers/DashboardPage.tsx | 4 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 4 +-
.../src/dashboard/reducers/sliceEntities.ts | 2 +-
superset-frontend/src/dashboard/styles.ts | 2 +-
superset-frontend/src/dashboard/types.ts | 2 +-
.../src/dashboard/util/backgroundStyleOptions.ts | 2 +-
.../src/dashboard/util/getFilterFieldNodesTree.ts | 2 +-
.../src/dashboard/util/getFilterScopeNodesTree.ts | 2 +-
.../src/dashboard/util/getSliceHeaderTooltip.tsx | 2 +-
.../src/dashboard/util/headerStyleOptions.ts | 2 +-
.../src/dashboard/util/newComponentFactory.ts | 2 +-
.../dashboard/util/updateComponentParentsList.ts | 2 +-
.../util/useFilterFocusHighlightStyles.ts | 2 +-
.../src/embedded/EmbeddedContextProviders.tsx | 2 +-
superset-frontend/src/embedded/index.tsx | 9 +-
superset-frontend/src/embedded/utils.ts | 2 +-
.../src/explore/actions/exploreActions.ts | 2 +-
.../src/explore/actions/saveModalActions.ts | 2 +-
.../src/explore/components/ChartPills.tsx | 2 +-
.../src/explore/components/Control.tsx | 2 +-
.../src/explore/components/ControlHeader.tsx | 4 +-
.../components/ControlPanelsContainer.test.tsx | 2 +-
.../explore/components/ControlPanelsContainer.tsx | 9 +-
.../explore/components/DataTableControl/index.tsx | 6 +-
.../DataTableControl/useTableColumns.test.ts | 2 +-
.../components/DataTablesPane/DataTablesPane.tsx | 4 +-
.../components/DataTableControls.tsx | 4 +-
.../components/ResultsPaneOnDashboard.tsx | 4 +-
.../DataTablesPane/components/SamplesPane.tsx | 6 +-
.../components/SingleQueryResultPane.tsx | 2 +-
.../DataTablesPane/components/useResultsPane.tsx | 4 +-
.../src/explore/components/DataTablesPane/types.ts | 2 +-
.../DatasourcePanelDragOption/index.tsx | 2 +-
.../DatasourcePanel/DatasourcePanelItem.tsx | 4 +-
.../components/DatasourcePanel/fixtures.tsx | 2 +-
.../explore/components/DatasourcePanel/index.tsx | 5 +-
.../DatasourcePanel/transformDatasourceFolders.ts | 2 +-
.../src/explore/components/EmbedCodeContent.tsx | 3 +-
.../src/explore/components/ExploreAlert.tsx | 2 +-
.../components/ExploreChartHeader/index.tsx | 5 +-
.../ExploreChartHeader/useExploreMetadataBar.tsx | 4 +-
.../explore/components/ExploreChartPanel/index.tsx | 5 +-
.../explore/components/ExploreContainer/index.tsx | 2 +-
.../explore/components/ExploreContentPopover.tsx | 2 +-
.../components/ExploreViewContainer/index.tsx | 5 +-
.../components/ExportToCSVDropdown/index.tsx | 4 +-
.../explore/components/PropertiesModal/index.tsx | 2 +-
.../explore/components/RunQueryButton/index.tsx | 4 +-
.../src/explore/components/SaveModal.tsx | 7 +-
.../AnnotationLayerControl/AnnotationLayer.tsx | 4 +-
.../AnnotationLayerControl/AnnotationTypes.ts | 2 +-
.../controls/AnnotationLayerControl/index.tsx | 4 +-
.../explore/components/controls/BoundsControl.tsx | 4 +-
.../components/controls/CheckboxControl.tsx | 2 +-
.../controls/CollectionControl/index.tsx | 4 +-
.../ColorBreakpointOption.tsx | 2 +-
.../ColorBreakpointPopoverControl.tsx | 4 +-
.../controls/ColorBreakpointsControl/index.tsx | 4 +-
.../ColorSchemeControl/ColorSchemeLabel.tsx | 2 +-
.../controls/ColorSchemeControl/index.tsx | 4 +-
.../ColumnConfigControl/ColumnConfigControl.tsx | 6 +-
.../ColumnConfigControl/ColumnConfigItem.tsx | 2 +-
.../ColumnConfigControl/ColumnConfigPopover.tsx | 2 +-
.../ControlForm/ControlFormItem.tsx | 2 +-
.../ColumnConfigControl/ControlForm/index.tsx | 2 +-
.../controls/ColumnConfigControl/constants.tsx | 4 +-
.../controls/ColumnConfigControl/types.ts | 2 +-
.../components/controls/ComparisonRangeLabel.tsx | 4 +-
.../ConditionalFormattingControl.tsx | 4 +-
.../FormattingPopoverContent.test.tsx | 2 +-
.../FormattingPopoverContent.tsx | 6 +-
.../ConditionalFormattingControl/constants.ts | 2 +-
.../controls/ConditionalFormattingControl/types.ts | 2 +-
.../controls/ContourControl/ContourOption.tsx | 4 +-
.../ContourControl/ContourPopoverControl.tsx | 4 +-
.../components/controls/ContourControl/index.tsx | 4 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 4 +-
.../components/controls/CustomListItem/index.tsx | 2 +-
.../DatasourceControl/DatasourceControl.test.tsx | 268 +---
.../controls/DatasourceControl/index.tsx | 4 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 9 +-
.../DateFilterControl/components/AdvancedFrame.tsx | 2 +-
.../DateFilterControl/components/CalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CommonFrame.tsx | 2 +-
.../components/CurrentCalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CustomFrame.tsx | 2 +-
.../components/DateFunctionTooltip.tsx | 4 +-
.../DateFilterControl/components/DateLabel.tsx | 4 +-
.../controls/DateFilterControl/utils/constants.ts | 2 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 5 +-
.../ColumnSelectPopoverTrigger.tsx | 2 +-
.../DndAdhocFilterOption.tsx | 2 +-
.../DndColumnMetricSelect.tsx | 4 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 4 +-
.../DndColumnSelectPopoverTitle.tsx | 4 +-
.../DndFilterSelect.test.tsx | 2 +-
.../DndColumnSelectControl/DndFilterSelect.tsx | 3 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 6 +-
.../DndColumnSelectControl/DndSelectLabel.tsx | 2 +-
.../controls/DndColumnSelectControl/Option.tsx | 4 +-
.../DndColumnSelectControl/OptionWrapper.tsx | 2 +-
.../DndColumnSelectControl/useResizeButton.tsx | 2 +-
.../DndColumnSelectControl/utils/optionSelector.ts | 2 +-
.../FilterControl/AdhocFilterControl/index.tsx | 6 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 6 +-
.../index.tsx | 4 +-
.../useAdvancedDataTypes.ts | 2 +-
.../AdhocFilterEditPopoverSqlTabContent.test.tsx | 84 +-
.../AdhocFilterEditPopoverSqlTabContent/index.tsx | 12 +-
.../utils/useDatePickerInAdhocFilter.tsx | 2 +-
.../controls/FixedOrMetricControl/index.tsx | 2 +-
.../components/controls/JSEditorControl.test.tsx | 125 ++
.../components/controls/JSEditorControl.tsx | 105 ++
.../controls/LayerConfigsControl/FlatLayerTree.tsx | 4 +-
.../LayerConfigsControl/LayerConfigsControl.tsx | 4 +-
.../LayerConfigsPopoverContent.tsx | 4 +-
.../controls/MapViewControl/ExtentTag.tsx | 2 +-
.../controls/MapViewControl/MapViewControl.tsx | 4 +-
.../MapViewControl/MapViewPopoverContent.tsx | 4 +-
.../controls/MatrixifyDimensionControl.tsx | 2 +-
.../MetricControl/AdhocMetricEditPopover/index.tsx | 25 +-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 4 +-
.../MetricControl/AdhocMetricPopoverTrigger.tsx | 2 +-
.../controls/MetricControl/MetricsControl.tsx | 2 +-
.../components/controls/NumberControl/index.tsx | 2 +-
.../components/controls/OptionControls/index.tsx | 4 +-
.../controls/SelectAsyncControl/index.tsx | 2 +-
.../explore/components/controls/SelectControl.tsx | 4 +-
.../explore/components/controls/SpatialControl.tsx | 2 +-
.../components/controls/TextAreaControl.tsx | 4 +-
.../controls/TimeSeriesColumnControl/index.tsx | 4 +-
.../src/explore/components/controls/ViewQuery.tsx | 4 +-
.../explore/components/controls/ViewQueryModal.tsx | 5 +-
.../components/controls/ViewQueryModalFooter.tsx | 2 +-
.../components/controls/ViewportControl.tsx | 2 +-
.../controls/VizTypeControl/FastVizSwitcher.tsx | 4 +-
.../components/controls/VizTypeControl/VizTile.tsx | 4 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 4 +-
.../controls/VizTypeControl/constants.tsx | 2 +-
.../components/controls/VizTypeControl/index.tsx | 4 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 4 +-
.../ZoomConfigControl/ZoomConfigsChart.tsx | 2 +-
.../src/explore/components/controls/index.ts | 2 +
.../components/controls/withAsyncVerification.tsx | 2 +-
.../src/explore/components/optionRenderers.tsx | 2 +-
.../DashboardsSubMenu.tsx | 4 +-
.../useExploreAdditionalActionsMenu/index.tsx | 3 +-
superset-frontend/src/explore/constants.ts | 2 +-
.../src/explore/controlPanels/Separator.ts | 2 +-
.../src/explore/controlPanels/sections.tsx | 2 +-
.../src/explore/controlUtils/controlUtils.test.tsx | 2 +-
.../src/explore/controlUtils/getColumnKeywords.tsx | 2 +-
superset-frontend/src/explore/controls.tsx | 2 +-
superset-frontend/src/explore/fixtures.tsx | 2 +-
.../src/extensions/ExtensionPlaceholder.tsx | 2 +-
.../src/extensions/ExtensionsList.tsx | 2 +-
.../src/extensions/ExtensionsLoader.test.ts | 4 +-
.../src/extensions/ExtensionsLoader.ts | 4 +-
.../src/extensions/ExtensionsStartup.test.tsx | 2 +-
.../src/extensions/ExtensionsStartup.tsx | 9 +-
.../src/features/alerts/AlertReportModal.test.tsx | 467 ++++++-
.../src/features/alerts/AlertReportModal.tsx | 49 +-
.../features/alerts/buildErrorTooltipMessage.tsx | 2 +-
.../alerts/components/AlertReportCronScheduler.tsx | 4 +-
.../features/alerts/components/AlertStatusIcon.tsx | 4 +-
.../alerts/components/NotificationMethod.tsx | 4 +-
.../features/alerts/components/RecipientIcon.tsx | 2 +-
superset-frontend/src/features/alerts/types.ts | 7 +
.../src/features/allEntities/AllEntitiesTable.tsx | 4 +-
.../annotationLayers/AnnotationLayerModal.tsx | 4 +-
.../src/features/annotations/AnnotationModal.tsx | 4 +-
.../src/features/charts/ChartCard.tsx | 4 +-
.../src/features/cssTemplates/CssTemplateModal.tsx | 4 +-
.../src/features/dashboards/DashboardCard.tsx | 2 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 4 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 4 +-
.../DatabaseConnectionForm/OAuth2ClientField.tsx | 2 +-
.../DatabaseConnectionForm/TableCatalog.tsx | 4 +-
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +-
.../DatabaseModal/DatabaseConnectionForm/index.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.test.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 4 +-
.../databases/DatabaseModal/ModalHeader.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 4 +-
.../databases/DatabaseModal/SSHTunnelSwitch.tsx | 4 +-
.../databases/DatabaseModal/SqlAlchemyForm.tsx | 4 +-
.../src/features/databases/DatabaseModal/index.tsx | 5 +-
.../src/features/databases/DatabaseModal/styles.ts | 2 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 4 +-
.../features/databases/UploadDataModel/index.tsx | 4 +-
.../features/databases/UploadDataModel/styles.ts | 2 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 5 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 4 +-
.../datasets/AddDataset/DatasetPanel/index.tsx | 4 +-
.../datasets/AddDataset/EditDataset/index.tsx | 4 +-
.../features/datasets/AddDataset/Footer/index.tsx | 4 +-
.../features/datasets/AddDataset/Header/index.tsx | 2 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 4 +-
.../datasets/AddDataset/RightPanel/index.tsx | 2 +-
.../src/features/datasets/DatasetLayout/index.tsx | 2 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 4 +-
.../datasets/DuplicateDatasetModal.test.tsx | 2 +-
.../features/datasets/DuplicateDatasetModal.tsx | 2 +-
.../src/features/datasets/constants.ts | 2 +-
.../src/features/datasets/hooks/useDatasetLists.ts | 4 +-
.../datasets/hooks/useGetDatasetRelatedCounts.ts | 4 +-
.../DatasetMetadataBar.skipped-stories.tsx | 2 +-
.../datasets/metadataBar/useDatasetMetadataBar.tsx | 4 +-
superset-frontend/src/features/datasets/styles.ts | 2 +-
.../src/features/groups/GroupListModal.tsx | 2 +-
superset-frontend/src/features/groups/utils.ts | 2 +-
.../src/features/home/ActivityTable.tsx | 4 +-
superset-frontend/src/features/home/ChartTable.tsx | 2 +-
.../src/features/home/DashboardTable.tsx | 2 +-
superset-frontend/src/features/home/EmptyState.tsx | 4 +-
.../src/features/home/LanguagePicker.tsx | 4 +-
superset-frontend/src/features/home/Menu.test.tsx | 115 +-
superset-frontend/src/features/home/Menu.tsx | 2 +-
superset-frontend/src/features/home/RightMenu.tsx | 9 +-
.../src/features/home/SavedQueries.tsx | 4 +-
superset-frontend/src/features/home/SubMenu.tsx | 9 +-
.../src/features/home/commonMenuData.ts | 2 +-
.../src/features/owners/OwnerSelectLabel/index.tsx | 2 +-
.../src/features/queries/QueryPreviewModal.tsx | 4 +-
.../features/queries/SavedQueryPreviewModal.tsx | 4 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 4 +-
.../ReportModal/HeaderReportDropdown/index.tsx | 4 +-
.../src/features/reports/ReportModal/actions.ts | 2 +-
.../src/features/reports/ReportModal/index.tsx | 5 +-
.../src/features/reports/ReportModal/styles.tsx | 2 +-
.../src/features/rls/RowLevelSecurityModal.tsx | 4 +-
superset-frontend/src/features/rls/constants.ts | 2 +-
.../src/features/roles/RoleFormItems.tsx | 2 +-
.../src/features/roles/RoleListAddModal.tsx | 2 +-
.../src/features/roles/RoleListDuplicateModal.tsx | 2 +-
.../src/features/roles/RoleListEditModal.tsx | 2 +-
superset-frontend/src/features/roles/utils.ts | 2 +-
.../src/features/tags/BulkTagModal.tsx | 4 +-
superset-frontend/src/features/tags/TagCard.tsx | 2 +-
superset-frontend/src/features/tags/TagModal.tsx | 4 +-
.../src/features/tasks/TaskPayloadPopover.tsx | 2 +-
.../src/features/tasks/TaskStackTracePopover.tsx | 4 +-
.../src/features/tasks/TaskStatusIcon.tsx | 3 +-
.../src/features/themes/ThemeModal.tsx | 5 +-
.../src/features/userInfo/UserInfoModal.tsx | 2 +-
.../src/features/users/UserListModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 2 +-
.../components/Range/RangeFilterPlugin.stories.tsx | 2 +-
.../components/Range/RangeFilterPlugin.test.tsx | 2 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 4 +-
.../src/filters/components/Range/buildQuery.ts | 2 +-
.../src/filters/components/Range/controlPanel.ts | 2 +-
.../src/filters/components/Range/index.ts | 2 +-
.../components/Select/SelectFilterPlugin.tsx | 8 +-
.../filters/components/Select/buildQuery.test.ts | 2 +-
.../src/filters/components/Select/buildQuery.ts | 2 +-
.../src/filters/components/Select/controlPanel.ts | 2 +-
.../src/filters/components/Select/index.ts | 2 +-
.../filters/components/Select/transformProps.ts | 2 +-
.../src/filters/components/Select/types.ts | 2 +-
.../filters/components/Time/TimeFilterPlugin.tsx | 2 +-
.../src/filters/components/Time/controlPanel.ts | 2 +-
.../src/filters/components/Time/index.ts | 2 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 4 +-
.../filters/components/TimeColumn/controlPanel.ts | 2 +-
.../src/filters/components/TimeColumn/index.ts | 2 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 4 +-
.../filters/components/TimeGrain/controlPanel.ts | 2 +-
.../src/filters/components/TimeGrain/index.ts | 2 +-
superset-frontend/src/filters/components/common.ts | 2 +-
superset-frontend/src/filters/utils.test.ts | 2 +-
superset-frontend/src/filters/utils.ts | 2 +-
.../src/hooks/apiResources/datasets.ts | 2 +-
.../hooks/useConfirmModal/useConfirmModal.test.tsx | 2 +-
superset-frontend/src/hooks/useJsonTreeTheme.ts | 2 +-
.../src/hooks/useThemeMenuItems.test.tsx | 2 +-
superset-frontend/src/hooks/useThemeMenuItems.tsx | 4 +-
.../src/hooks/useUnsavedChangesPrompt/index.ts | 2 +-
superset-frontend/src/middleware/asyncEvent.ts | 2 +-
superset-frontend/src/pages/ActionLog/index.tsx | 4 +-
.../src/pages/AlertReportList/index.tsx | 4 +-
superset-frontend/src/pages/AllEntities/index.tsx | 4 +-
.../src/pages/AnnotationLayerList/index.tsx | 2 +-
.../src/pages/AnnotationList/index.tsx | 4 +-
superset-frontend/src/pages/Chart/index.tsx | 2 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 2 +-
.../src/pages/ChartCreation/index.tsx | 4 +-
superset-frontend/src/pages/ChartList/index.tsx | 5 +-
.../src/pages/CssTemplateList/index.tsx | 2 +-
.../DashboardList/DashboardList.behavior.test.tsx | 394 ++++++
.../DashboardList/DashboardList.cardview.test.tsx | 417 ++++++
.../DashboardList/DashboardList.listview.test.tsx | 402 ++++++
.../DashboardList.permissions.test.tsx | 340 +++++
.../src/pages/DashboardList/DashboardList.test.tsx | 391 +++---
.../DashboardList/DashboardList.testHelpers.tsx | 360 +++++
.../src/pages/DashboardList/index.tsx | 4 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 4 +-
superset-frontend/src/pages/DatasetList/index.tsx | 4 +-
.../src/pages/ExecutionLogList/index.tsx | 4 +-
.../src/pages/FileHandler/index.test.tsx | 22 +-
superset-frontend/src/pages/FileHandler/index.tsx | 2 +-
superset-frontend/src/pages/GroupsList/index.tsx | 2 +-
superset-frontend/src/pages/Home/index.tsx | 4 +-
superset-frontend/src/pages/Login/index.tsx | 4 +-
.../src/pages/QueryHistoryList/index.tsx | 4 +-
superset-frontend/src/pages/Register/index.tsx | 4 +-
superset-frontend/src/pages/RolesList/index.tsx | 2 +-
.../src/pages/RowLevelSecurityList/index.tsx | 2 +-
.../src/pages/SavedQueryList/index.tsx | 4 +-
superset-frontend/src/pages/SqlLab/index.tsx | 2 +-
superset-frontend/src/pages/Tags/index.tsx | 2 +-
superset-frontend/src/pages/TaskList/index.tsx | 3 +-
superset-frontend/src/pages/ThemeList/index.tsx | 5 +-
superset-frontend/src/pages/UserInfo/index.tsx | 4 +-
.../src/pages/UserRegistrations/index.tsx | 2 +-
superset-frontend/src/pages/UsersList/index.tsx | 2 +-
superset-frontend/src/preamble.ts | 4 +-
superset-frontend/src/setup/setupClient.ts | 2 +-
superset-frontend/src/theme/ThemeController.ts | 4 +-
superset-frontend/src/theme/ThemeProvider.tsx | 2 +-
.../src/theme/hooks/useThemeValidation.ts | 2 +-
.../src/theme/tests/ThemeController.test.ts | 2 +-
.../src/theme/tests/ThemeProvider.test.tsx | 2 +-
.../theme/utils/themeStructureValidation.test.ts | 2 +-
.../src/theme/utils/themeStructureValidation.ts | 2 +-
superset-frontend/src/types/bootstrapTypes.ts | 9 +-
superset-frontend/src/utils/downloadAsImage.tsx | 4 +-
superset-frontend/src/utils/downloadAsPdf.ts | 4 +-
superset-frontend/src/utils/export.test.ts | 4 +-
superset-frontend/src/utils/export.ts | 2 +-
superset-frontend/src/utils/fetchOptions.ts | 2 +-
.../utils/getChartRequiredFieldsMissingMessage.ts | 2 +-
superset-frontend/src/utils/pathUtils.test.ts | 71 +
superset-frontend/src/utils/pathUtils.ts | 37 +-
superset-frontend/src/views/App.tsx | 2 +-
superset-frontend/src/views/CRUD/hooks.ts | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 5 +-
superset-frontend/src/views/index.tsx | 2 +-
superset-frontend/src/views/menu.tsx | 3 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 4 +-
.../components/SparklineCell/SparklineCell.tsx | 2 +-
.../TimeTable/config/controlPanel/controlPanel.ts | 2 +-
.../config/transformProps/transformProps.test.ts | 2 +-
.../src/visualizations/TimeTable/constants.ts | 2 +-
.../src/visualizations/TimeTable/index.ts | 2 +-
.../ExampleComponent/ExampleComponent.tsx | 2 +-
superset-websocket/utils/client-ws-app/.nvmrc | 2 +-
superset/commands/database/export.py | 9 +
superset/commands/database/importers/v1/utils.py | 26 +-
superset/commands/distributed_lock/acquire.py | 2 +-
superset/commands/distributed_lock/base.py | 6 +-
superset/commands/distributed_lock/release.py | 2 +-
superset/commands/importers/v1/__init__.py | 4 +
superset/commands/importers/v1/assets.py | 4 +
superset/commands/importers/v1/utils.py | 19 +
superset/commands/tasks/cancel.py | 2 +-
superset/commands/tasks/internal_update.py | 2 +-
superset/commands/tasks/prune.py | 2 +-
superset/commands/tasks/submit.py | 2 +-
superset/commands/tasks/update.py | 2 +-
superset/config.py | 20 +-
superset/connectors/sqla/models.py | 2 +-
superset/core/api/core_api_injection.py | 159 ++-
superset/core/mcp/core_mcp_injection.py | 74 +-
superset/daos/base.py | 4 +-
superset/daos/tag.py | 7 +
superset/daos/tasks.py | 2 +-
superset/databases/api.py | 14 +
superset/databases/schemas.py | 62 +
superset/distributed_lock/__init__.py | 2 +-
superset/extensions/context.py | 90 ++
superset/extensions/contributions.py | 94 ++
superset/importexport/api.py | 13 +
superset/initialization/__init__.py | 5 +-
superset/key_value/models.py | 2 +-
superset/mcp_service/CLAUDE.md | 16 +-
superset/mcp_service/app.py | 2 +-
.../chart/prompts/create_chart_guided.py | 2 +-
superset/mcp_service/chart/tool/generate_chart.py | 2 +-
superset/mcp_service/chart/tool/get_chart_data.py | 2 +-
superset/mcp_service/chart/tool/get_chart_info.py | 2 +-
.../mcp_service/chart/tool/get_chart_preview.py | 2 +-
superset/mcp_service/chart/tool/list_charts.py | 2 +-
superset/mcp_service/chart/tool/update_chart.py | 2 +-
.../mcp_service/chart/tool/update_chart_preview.py | 2 +-
.../tool/add_chart_to_existing_dashboard.py | 2 +-
.../dashboard/tool/generate_dashboard.py | 2 +-
.../dashboard/tool/get_dashboard_info.py | 2 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 2 +-
.../mcp_service/dataset/tool/get_dataset_info.py | 2 +-
superset/mcp_service/dataset/tool/list_datasets.py | 2 +-
.../explore/tool/generate_explore_link.py | 2 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 9 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 2 +-
superset/mcp_service/system/prompts/quickstart.py | 2 +-
.../mcp_service/system/tool/get_instance_info.py | 2 +-
superset/mcp_service/system/tool/get_schema.py | 2 +-
superset/mcp_service/system/tool/health_check.py | 2 +-
superset/models/core.py | 4 +-
superset/models/dashboard.py | 2 +-
superset/models/slice.py | 2 +-
superset/models/sql_lab.py | 5 +-
superset/models/task_subscribers.py | 2 +-
superset/models/tasks.py | 4 +-
superset/sql/execution/executor.py | 24 +-
superset/tags/models.py | 2 +-
superset/tasks/constants.py | 2 +-
superset/tasks/context.py | 2 +-
superset/tasks/decorators.py | 17 +-
superset/tasks/locks.py | 4 +-
superset/tasks/manager.py | 10 +-
superset/tasks/scheduler.py | 2 +-
superset/tasks/utils.py | 2 +-
superset/utils/cache_manager.py | 34 +-
superset/utils/json.py | 43 +
superset/utils/pandas_postprocessing/geography.py | 6 +-
superset/utils/webdriver.py | 2 +-
superset/viz.py | 24 +-
tests/integration_tests/databases/api_tests.py | 91 ++
tests/integration_tests/fixtures/importexport.py | 26 +
tests/integration_tests/tasks/api_tests.py | 4 +-
.../tasks/commands/test_cancel.py | 2 +-
.../tasks/commands/test_internal_update.py | 2 +-
.../integration_tests/tasks/commands/test_prune.py | 2 +-
.../tasks/commands/test_submit.py | 2 +-
.../tasks/commands/test_update.py | 2 +-
.../integration_tests/tasks/test_event_handlers.py | 2 +-
.../tasks/test_subscription_visibility.py | 2 +-
.../integration_tests/tasks/test_sync_join_wait.py | 6 +-
tests/integration_tests/tasks/test_throttling.py | 2 +-
tests/integration_tests/tasks/test_timeout.py | 2 +-
tests/unit_tests/dao/base_dao_test.py | 2 +-
tests/unit_tests/daos/test_tasks.py | 2 +-
tests/unit_tests/databases/api_test.py | 70 +
.../databases/commands/importers/v1/import_test.py | 123 ++
tests/unit_tests/databases/schema_tests.py | 106 ++
tests/unit_tests/importexport/api_test.py | 52 +
.../mcp_service/sql_lab/tool/test_execute_sql.py | 2 +-
tests/unit_tests/sql/execution/test_executor.py | 19 +-
tests/unit_tests/tags/commands/update_test.py | 60 +
tests/unit_tests/tasks/test_decorators.py | 2 +-
tests/unit_tests/tasks/test_handlers.py | 6 +-
tests/unit_tests/tasks/test_manager.py | 34 +-
tests/unit_tests/tasks/test_timeout.py | 34 +-
tests/unit_tests/tasks/test_utils.py | 2 +-
tests/unit_tests/utils/json_tests.py | 139 ++
1316 files changed, 15016 insertions(+), 5316 deletions(-)
delete mode 100644 docs/babel.config.js
create mode 100644 docs/developer_docs/extensions/mcp-server.md
delete mode 100644 docs/scripts/generate-extension-components.mjs
create mode 100644 docs/scripts/generate-if-changed.mjs
create mode 100644 docs/src/components/ui-components/ComponentIndex.tsx
copy superset-frontend/packages/superset-ui-core/src/ui-overrides/index.tsx =>
docs/src/components/ui-components/index.ts (92%)
copy {superset-frontend/src/explore/components/controls/VizTypeControl =>
docs/src/components/ui-components}/types.ts (57%)
create mode 100644 docs/src/shims/superset-ui-core.ts
delete mode 100644 superset-core/src/superset_core/api/rest_api.py
copy superset-core/src/superset_core/{api => common}/__init__.py (100%)
rename superset-core/src/superset_core/{api => common}/daos.py (72%)
rename superset-core/src/superset_core/{api => common}/models.py (62%)
copy superset-core/src/superset_core/mcp/{__init__.py => decorators.py} (99%)
copy superset-core/src/superset_core/{api => queries}/__init__.py (100%)
create mode 100644 superset-core/src/superset_core/queries/daos.py
create mode 100644 superset-core/src/superset_core/queries/models.py
rename superset-core/src/superset_core/{api => queries}/query.py (93%)
rename superset-core/src/superset_core/{api => queries}/types.py (100%)
copy superset-core/src/superset_core/{api => rest_api}/__init__.py (100%)
copy superset/migrations/versions/2016-09-19_17-22_b347b202819b_.py =>
superset-core/src/superset_core/rest_api/api.py (72%)
create mode 100644 superset-core/src/superset_core/rest_api/decorators.py
rename superset-core/src/superset_core/{api => tasks}/__init__.py (100%)
create mode 100644 superset-core/src/superset_core/tasks/daos.py
create mode 100644 superset-core/src/superset_core/tasks/decorators.py
create mode 100644 superset-core/src/superset_core/tasks/models.py
rename superset-core/src/superset_core/{api/tasks.py => tasks/types.py} (62%)
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/filter.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts
delete mode 100644 superset-frontend/packages/superset-core/src/api/index.ts
rename superset-frontend/packages/superset-core/src/{api/authentication.ts =>
authentication/index.ts} (100%)
rename superset-frontend/packages/superset-core/src/{api/commands.ts =>
commands/index.ts} (98%)
rename superset-frontend/packages/superset-core/src/{api/core.ts =>
common/index.ts} (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/components/Alert/Alert.stories.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/components/Alert/Alert.test.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/components/Alert/index.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/components/index.ts (100%)
rename superset-frontend/packages/superset-core/src/{api/contributions.ts =>
contributions/index.ts} (94%)
rename superset-frontend/packages/superset-core/src/{api/editors.ts =>
editors/index.ts} (96%)
rename superset-frontend/packages/superset-core/src/{api/extensions.ts =>
extensions/index.ts} (98%)
rename superset-frontend/packages/superset-core/src/{api/menus.ts =>
menus/index.ts} (98%)
rename superset-frontend/packages/superset-core/src/{api/sqlLab.ts =>
sqlLab/index.ts} (99%)
rename superset-frontend/packages/superset-core/src/{ui => }/testing.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/GlobalStyles.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/Theme.test.tsx (100%)
rename superset-frontend/packages/superset-core/src/{ui => }/theme/Theme.tsx
(100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/exampleThemes.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui => }/theme/index.tsx
(100%)
rename superset-frontend/packages/superset-core/src/{ui => }/theme/types.ts
(100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/utils/index.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/utils/themeUtils.test.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/utils/themeUtils.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/theme/utils/utils.test.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/README.md (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/Translator.ts (98%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/TranslatorSingleton.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/index.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/types/index.ts (100%)
rename superset-frontend/packages/superset-core/src/{ui =>
}/translation/types/jed.ts (100%)
delete mode 100644 superset-frontend/packages/superset-core/src/ui/index.ts
rename superset-frontend/packages/superset-core/src/{spec =>
}/utils/logging.test.ts (94%)
rename superset-frontend/packages/superset-core/src/{api/views.ts =>
views/index.ts} (98%)
copy
superset-frontend/packages/superset-ui-core/src/{components/EmptyState/Empty.test.tsx
=> chart/types/matrixify.mocks.test.ts} (72%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Select/constants.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Table/utils/InteractiveTableUtils.test.ts
copy
superset-frontend/packages/superset-ui-core/src/{color/colorSchemes/index.ts =>
utils/withLabel.test.ts} (53%)
create mode 100644 superset-frontend/playwright/helpers/api/dashboard.ts
copy superset-frontend/playwright/pages/{ChartListPage.ts =>
DashboardListPage.ts} (56%)
create mode 100644
superset-frontend/playwright/tests/experimental/dashboard/dashboard-list.spec.ts
copy
superset-frontend/playwright/tests/experimental/{dataset/dataset-test-helpers.ts
=> dashboard/dashboard-test-helpers.ts} (53%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/eChartOptionsSchema.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
delete mode 100644 superset-frontend/scripts/eslint-metrics-uploader.js
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.behavior.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.cardview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.listview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.permissions.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.testHelpers.tsx
create mode 100644 superset/extensions/context.py
create mode 100644 superset/extensions/contributions.py