You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2025/11/07 16:53:13 UTC
(superset) branch master updated: chore(superset-core): move ui to new core (#35308)
This is an automated email from the ASF dual-hosted git repository.
michaelsmolina pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 9546ee37e5 chore(superset-core): move ui to new core (#35308)
9546ee37e5 is described below
commit 9546ee37e55e8beb9621b544f5c7dc6d208b3392
Author: Mehmet Salih Yavuz <sa...@proton.me>
AuthorDate: Fri Nov 7 19:53:06 2025 +0300
chore(superset-core): move ui to new core (#35308)
---
superset-frontend/.storybook/preview.jsx | 3 +-
superset-frontend/package-lock.json | 31 +
.../packages/superset-core/package.json | 28 +-
.../packages/superset-core/src/index.ts | 1 +
.../src/ui}/components/Alert/Alert.stories.tsx | 24 +-
.../src/ui/components/Alert/Alert.test.tsx} | 14 +-
.../src/ui}/components/Alert/index.tsx | 44 +-
.../src/ui/components/index.ts} | 7 +-
.../packages/superset-core/src/{ => ui}/index.ts | 3 +-
.../index.tsx => superset-core/src/ui/testing.tsx} | 6 +-
.../src/ui}/theme/GlobalStyles.tsx | 0
.../superset-core/src/ui/theme/Theme.test.tsx | 768 ++++++++++++++++++++
.../src => superset-core/src/ui}/theme/Theme.tsx | 0
.../src/ui}/theme/exampleThemes.ts | 0
.../src => superset-core/src/ui}/theme/index.tsx | 1 +
.../src => superset-core/src/ui}/theme/types.ts | 0
.../src/ui/theme/utils/index.ts} | 2 +-
.../src/ui/theme/utils/themeUtils.test.ts | 236 ++++++
.../src/ui}/theme/utils/themeUtils.ts | 2 +-
.../superset-core/src/ui/theme/utils/utils.test.ts | 338 +++++++++
.../src/components/CertifiedIconWithTooltip.tsx | 3 +-
.../src/components/ColumnOption.tsx | 2 +-
.../components/ColumnTypeLabel/ColumnTypeLabel.tsx | 3 +-
.../src/components/ControlHeader.tsx | 3 +-
.../src/components/ControlSubSectionHeader.tsx | 2 +-
.../src/components/MetricOption.tsx | 3 +-
.../src/components/SQLPopover.tsx | 3 +-
.../src/components/labelUtils.tsx | 3 +-
.../src/chart/components/FallbackComponent.tsx | 2 +-
.../Matrixify/MatrixifyGridCell.test.tsx | 2 +-
.../components/Matrixify/MatrixifyGridCell.tsx | 2 +-
.../Matrixify/MatrixifyGridRenderer.test.tsx | 4 +-
.../components/Matrixify/MatrixifyGridRenderer.tsx | 2 +-
.../src/chart/components/NoResultsComponent.tsx | 2 +-
.../src/chart/models/ChartProps.ts | 2 +-
.../src/components/ActionButton/index.tsx | 2 +-
.../src/components/AsyncAceEditor/index.tsx | 2 +-
.../src/components/Badge/index.tsx | 2 +-
.../src/components/Button/index.tsx | 2 +-
.../superset-ui-core/src/components/Card/index.tsx | 2 +-
.../src/components/CertifiedBadge/index.tsx | 3 +-
.../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 | 3 +-
.../src/components/CronPicker/index.tsx | 3 +-
.../src/components/DatePicker/index.tsx | 2 +-
.../src/components/DeleteModal/index.tsx | 3 +-
.../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 | 3 +-
.../src/components/DynamicEditableTitle/index.tsx | 3 +-
.../src/components/EditableTitle/index.tsx | 3 +-
.../src/components/EmptyState/index.tsx | 3 +-
.../src/components/FaveStar/index.tsx | 3 +-
.../src/components/Flex/Flex.stories.tsx | 2 +-
.../src/components/Form/FormItem.tsx | 2 +-
.../src/components/Form/FormLabel.tsx | 2 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 3 +-
.../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 | 3 +-
.../src/components/Label/index.tsx | 2 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 3 +-
.../components/Label/reusable/PublishedLabel.tsx | 3 +-
.../src/components/LastUpdated/index.tsx | 3 +-
.../superset-ui-core/src/components/List/index.ts | 2 +-
.../src/components/ListViewCard/ImageLoader.tsx | 3 +-
.../src/components/ListViewCard/index.tsx | 2 +-
.../src/components/Loading/index.test.tsx | 2 +-
.../src/components/Loading/index.tsx | 2 +-
.../superset-ui-core/src/components/Menu/index.tsx | 2 +-
.../src/components/Metadata/index.tsx | 2 +-
.../src/components/MetadataBar/ContentConfig.tsx | 3 +-
.../components/MetadataBar/MetadataBar.stories.tsx | 2 +-
.../components/MetadataBar/MetadataBar.test.tsx | 3 +-
.../src/components/MetadataBar/MetadataBar.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 3 +-
.../src/components/PageHeaderWithActions/index.tsx | 3 +-
.../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/styles.tsx | 2 +-
.../src/components/Table/VirtualTable.tsx | 3 +-
.../Table/cell-renderers/ActionCell/index.tsx | 2 +-
.../Table/cell-renderers/NullCell/index.tsx | 2 +-
.../header-renderers/HeaderWithRadioGroup.tsx | 2 +-
.../src/components/Table/index.tsx | 3 +-
.../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 | 3 +-
.../src/components/Timer/index.tsx | 2 +-
.../src/components/TruncatedList/index.tsx | 3 +-
.../src/components/Typography/index.tsx | 2 +-
.../components/WarningIconWithTooltip/index.tsx | 2 +-
.../superset-ui-core/src/components/index.ts | 1 -
.../packages/superset-ui-core/src/index.ts | 1 -
.../packages/superset-ui-core/src/spec/index.tsx | 2 +-
.../superset-ui-core/src/theme/Theme.test.tsx | 788 ---------------------
.../superset-ui-core/src/theme/utils.test.ts | 352 ---------
.../src/theme/utils/themeUtils.test.ts | 246 -------
.../test/chart/components/MockChartPlugins.tsx | 8 +-
.../test/chart/components/SuperChartCore.test.tsx | 3 +-
.../test/chart/models/ChartPlugin.test.tsx | 2 +-
.../test/chart/models/ChartProps.test.ts | 3 +-
.../Icons/AsyncIcon.integration.test.tsx | 2 +-
.../packages/superset-ui-core/tsconfig.json | 17 +-
.../superset-ui-demo/.storybook/themeDecorator.jsx | 2 +-
.../packages/superset-ui-demo/package.json | 1 +
.../shared/components/ResizableChartDemo.tsx | 2 +-
.../CountryMap.stories.tsx | 9 +-
.../legacy-plugin-chart-map-box/MapBox.stories.tsx | 3 +-
.../plugins/legacy-plugin-chart-map-box/data.ts | 2 +-
.../Path/Path.stories.tsx | 3 +-
.../stories/superset-ui-theme/Theme.stories.tsx | 2 +-
.../legacy-plugin-chart-calendar/package.json | 1 +
.../src/ReactCalendar.jsx | 3 +-
.../plugins/legacy-plugin-chart-chord/package.json | 3 +-
.../legacy-plugin-chart-chord/src/ReactChord.jsx | 3 +-
.../legacy-plugin-chart-country-map/package.json | 1 +
.../src/ReactCountryMap.jsx | 3 +-
.../legacy-plugin-chart-horizon/package.json | 1 +
.../src/HorizonChart.jsx | 3 +-
.../legacy-plugin-chart-map-box/package.json | 1 +
.../legacy-plugin-chart-paired-t-test/package.json | 1 +
.../src/PairedTTest.jsx | 2 +-
.../package.json | 1 +
.../src/ReactParallelCoordinates.jsx | 3 +-
.../legacy-plugin-chart-partition/package.json | 1 +
.../src/ReactPartition.jsx | 3 +-
.../plugins/legacy-plugin-chart-rose/package.json | 1 +
.../legacy-plugin-chart-rose/src/ReactRose.jsx | 3 +-
.../legacy-plugin-chart-world-map/package.json | 1 +
.../src/ReactWorldMap.jsx | 3 +-
.../legacy-preset-chart-deckgl/package.json | 1 +
.../src/DeckGLContainer.tsx | 3 +-
.../src/components/Legend.tsx | 3 +-
.../src/components/Tooltip.tsx | 3 +-
.../src/layers/Polygon/Polygon.test.tsx | 2 +-
.../src/layers/Screengrid/Screengrid.tsx | 2 +-
.../src/layers/spatialUtils.test.ts | 2 +-
.../src/utilities/HandlebarsRenderer.tsx | 3 +-
.../src/utilities/TooltipTemplateControl.tsx | 3 +-
.../src/utilities/TooltipTemplateEditor.tsx | 2 +-
.../plugins/legacy-preset-chart-nvd3/package.json | 1 +
.../legacy-preset-chart-nvd3/src/ReactNVD3.jsx | 3 +-
.../src/renderers/NumericCellRenderer.tsx | 2 +-
.../src/styles/index.tsx | 2 +-
.../src/utils/useTableTheme.ts | 2 +-
.../plugins/plugin-chart-cartodiagram/package.json | 1 +
.../src/CartodiagramPlugin.tsx | 2 +-
.../src/components/ChartLayer.tsx | 2 +-
.../src/components/ChartWrapper.tsx | 3 +-
.../plugins/plugin-chart-cartodiagram/src/types.ts | 7 +-
.../src/util/chartUtil.tsx | 2 +-
.../test/plugin/transformProps.test.ts | 7 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 4 +-
.../src/BigNumber/BigNumberViz.tsx | 3 +-
.../plugin-chart-echarts/src/Gauge/constants.ts | 2 +-
.../src/Timeseries/transformers.ts | 3 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 3 +-
.../src/components/ExtraControls.tsx | 3 +-
.../plugin-chart-echarts/src/utils/series.ts | 2 +-
.../test/BigNumber/transformProps.test.ts | 8 +-
.../test/BoxPlot/transformProps.test.ts | 3 +-
.../test/Bubble/transformProps.test.ts | 2 +-
.../test/Funnel/transformProps.test.ts | 7 +-
.../test/Gantt/transformProps.test.ts | 3 +-
.../test/Gauge/transformProps.test.ts | 2 +-
.../test/Graph/transformProps.test.ts | 3 +-
.../test/MixedTimeseries/transformProps.test.ts | 3 +-
.../test/Pie/transformProps.test.ts | 2 +-
.../test/Radar/transformProps.test.ts | 3 +-
.../test/Timeseries/Bar/transformProps.test.ts | 3 +-
.../test/Timeseries/transformProps.test.ts | 2 +-
.../test/Tree/transformProps.test.ts | 3 +-
.../test/Treemap/transformProps.test.ts | 3 +-
.../test/Waterfall/transformProps.test.ts | 3 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 2 +-
.../test/utils/transformers.test.ts | 2 +-
.../plugins/plugin-chart-handlebars/package.json | 1 +
.../plugin-chart-handlebars/src/Handlebars.tsx | 2 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 3 +-
.../src/plugin/controls/handlebarTemplate.tsx | 3 +-
.../src/plugin/controls/style.tsx | 3 +-
.../test/plugin/transformProps.test.ts | 8 +-
.../src/PivotTableChart.tsx | 3 +-
.../src/react-pivottable/Styles.js | 2 +-
.../test/plugin/transformProps.test.ts | 3 +-
.../DataTable/components/SearchSelectDropdown.tsx | 2 +-
.../src/DataTable/components/SelectPageSize.tsx | 3 +-
.../src/DataTable/hooks/useSticky.tsx | 2 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 5 +-
.../plugins/plugin-chart-table/test/testData.ts | 2 +-
.../plugin-chart-table/test/testHelpers.tsx | 6 +-
.../plugins/plugin-chart-word-cloud/package.json | 1 +
.../src/chart/WordCloud.tsx | 8 +-
superset-frontend/spec/helpers/ProviderWrapper.tsx | 2 +-
superset-frontend/spec/helpers/testing-library.tsx | 5 +-
.../src/SqlLab/SqlLabGlobalStyles.tsx | 2 +-
.../SqlLab/components/AceEditorWrapper/index.tsx | 3 +-
.../src/SqlLab/components/App/index.tsx | 3 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 3 +-
.../components/EstimateQueryCostButton/index.tsx | 4 +-
.../components/KeyboardShortcutButton/index.tsx | 3 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 10 +-
.../SqlLab/components/QueryStateLabel/index.tsx | 3 +-
.../src/SqlLab/components/QueryTable/index.tsx | 3 +-
.../src/SqlLab/components/QueryTable/styles.ts | 2 +-
.../src/SqlLab/components/ResultSet/index.tsx | 5 +-
.../components/RunQueryActionButton/index.tsx | 3 +-
.../components/SaveDatasetActionButton/index.tsx | 3 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 2 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 3 +-
.../components/ScheduleQueryButton/index.tsx | 3 +-
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 8 +-
.../src/SqlLab/components/SouthPane/Results.tsx | 5 +-
.../src/SqlLab/components/SouthPane/index.tsx | 3 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 5 +-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 3 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 10 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 9 +-
.../src/SqlLab/components/TableElement/index.tsx | 3 +-
.../src/SqlLab/components/TablePreview/index.tsx | 11 +-
.../components/TemplateParamsEditor/index.tsx | 3 +-
superset-frontend/src/components/Chart/Chart.tsx | 2 +-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 2 +-
.../components/Chart/DisabledMenuItemTooltip.tsx | 2 +-
.../src/components/Chart/DrillBy/DrillByChart.tsx | 2 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 4 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 3 +-
.../Chart/DrillBy/useDisplayModeToggle.tsx | 3 +-
.../Chart/DrillBy/useResultsTableView.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailModal.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 3 +-
.../components/Chart/MenuItemWithTruncation.tsx | 8 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 3 +-
.../src/components/CopyToClipboard/index.tsx | 3 +-
.../src/components/CrudThemeProvider.tsx | 2 +-
.../src/components/DatabaseSelector/index.tsx | 3 +-
.../src/components/DatabaseSelector/styles.ts | 2 +-
.../Datasource/ChangeDatasourceModal/index.tsx | 10 +-
.../Datasource/DatasourceModal/index.tsx | 5 +-
.../components/CollectionTable/index.tsx | 3 +-
.../DatasourceEditor/DatasourceEditor.jsx | 12 +-
.../components/DashboardLinksExternal/index.tsx | 2 +-
.../components/DatasetUsageTab/index.tsx | 3 +-
.../Datasource/components/Field/index.tsx | 2 +-
.../Datasource/components/Fieldset/index.tsx | 2 +-
.../ErrorMessage/BasicErrorAlert.test.tsx | 3 +-
.../components/ErrorMessage/BasicErrorAlert.tsx | 8 +-
.../src/components/ErrorMessage/ErrorAlert.tsx | 4 +-
.../src/components/ErrorMessage/IssueCode.tsx | 2 +-
.../src/components/GridTable/Header.tsx | 3 +-
.../src/components/GridTable/HeaderMenu.tsx | 3 +-
.../src/components/GridTable/index.tsx | 2 +-
.../src/components/ImportModal/ErrorAlert.tsx | 4 +-
.../src/components/ImportModal/index.tsx | 3 +-
.../src/components/ImportModal/styles.ts | 2 +-
.../src/components/ListView/ActionsBar.tsx | 2 +-
.../src/components/ListView/CardCollection.tsx | 2 +-
.../src/components/ListView/CardSortSelect.tsx | 3 +-
.../src/components/ListView/CrossLinks.tsx | 3 +-
.../src/components/ListView/CrossLinksTooltip.tsx | 3 +-
.../src/components/ListView/Filters/Base.ts | 2 +-
.../components/ListView/Filters/NumericalRange.tsx | 3 +-
.../src/components/ListView/Filters/Search.tsx | 3 +-
.../src/components/ListView/Filters/index.tsx | 2 +-
.../src/components/ListView/ListView.tsx | 4 +-
.../src/components/MessageToasts/Toast.tsx | 2 +-
.../components/MessageToasts/ToastPresenter.tsx | 2 +-
.../components/Modal/CollapsibleModalSection.tsx | 2 +-
.../src/components/Modal/ModalFormField.tsx | 2 +-
.../src/components/Modal/StandardModal.tsx | 3 +-
.../src/components/Modal/useModalValidation.tsx | 3 +-
.../src/components/ModalTitleWithIcon/index.tsx | 2 +-
.../src/components/ResizableSidebar/index.tsx | 2 +-
.../components/SQLEditorWithValidation/index.tsx | 3 +-
.../src/components/TableSelector/index.tsx | 2 +-
superset-frontend/src/components/Tag/index.tsx | 2 +-
.../src/components/TagsList/index.tsx | 2 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../components/BuilderComponentPane/index.tsx | 3 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 3 +-
.../DashboardBuilder/DashboardBuilder.tsx | 11 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../src/dashboard/components/DashboardGrid.jsx | 3 +-
.../dashboard/components/EmbeddedModal/index.tsx | 4 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 3 +-
.../FiltersBadge/FilterIndicator/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/Styles.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 2 +-
.../dashboard/components/GroupByBadge/index.tsx | 3 +-
.../src/dashboard/components/Header/index.jsx | 3 +-
.../src/dashboard/components/IconButton.tsx | 2 +-
.../OverwriteConfirm/OverwriteConfirmModal.tsx | 3 +-
.../PropertiesModal/sections/AdvancedSection.tsx | 3 +-
.../PropertiesModal/sections/StylingSection.tsx | 4 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 3 +-
.../dashboard/components/RefreshIntervalModal.tsx | 5 +-
.../src/dashboard/components/SaveModal.tsx | 3 +-
.../src/dashboard/components/SliceAdder.tsx | 3 +-
.../src/dashboard/components/SliceHeader/index.tsx | 11 +-
.../ViewResultsModalTrigger.tsx | 3 +-
.../components/SliceHeaderControls/index.tsx | 4 +-
.../components/URLShortLinkButton/index.tsx | 3 +-
.../src/dashboard/components/dnd/DragDroppable.jsx | 2 +-
.../src/dashboard/components/dnd/DragHandle.tsx | 2 +-
.../components/filterscope/FilterScope.test.tsx | 2 +-
.../components/filterscope/FilterScopeModal.tsx | 2 +-
.../components/filterscope/FilterScopeSelector.jsx | 3 +-
.../filterscope/renderFilterScopeTreeNodes.jsx | 2 +-
.../components/gridComponents/Chart/Chart.jsx | 3 +-
.../gridComponents/ChartHolder/ChartHolder.tsx | 2 +-
.../components/gridComponents/Column/Column.jsx | 3 +-
.../components/gridComponents/Divider/Divider.jsx | 2 +-
.../components/gridComponents/Header/Header.jsx | 2 +-
.../gridComponents/Markdown/Markdown.jsx | 3 +-
.../gridComponents/Markdown/Markdown.test.tsx | 2 +-
.../components/gridComponents/Row/Row.jsx | 9 +-
.../components/gridComponents/Tab/Tab.jsx | 3 +-
.../components/gridComponents/Tabs/Tabs.jsx | 3 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 2 +-
.../gridComponents/new/DraggableNewComponent.tsx | 2 +-
.../components/menu/BackgroundStyleDropdown.tsx | 3 +-
.../src/dashboard/components/menu/HoverMenu.tsx | 2 +-
.../dashboard/components/menu/WithPopoverMenu.tsx | 3 +-
.../ChartCustomization/ChartCustomizationForm.tsx | 3 +-
.../ChartCustomization/ChartCustomizationModal.tsx | 3 +-
.../ChartCustomizationTitleContainer.tsx | 3 +-
.../ChartCustomizationTitlePane.tsx | 3 +-
.../ChartCustomization/GroupByFilterCard.tsx | 10 +-
.../nativeFilters/ConfigModal/ModalFooter.tsx | 4 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 2 +-
.../FilterBar/ActionButtons/index.tsx | 4 +-
.../FilterBar/CrossFilters/CrossFilter.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilterTag.tsx | 9 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 9 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 3 +-
.../ScopingModal/ScopingModalContent.tsx | 3 +-
.../CrossFilters/ScopingModal/ScopingTreePanel.tsx | 12 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 3 +-
.../nativeFilters/FilterBar/CrossFilters/styles.ts | 2 +-
.../FilterBar/FilterBarSettings/index.tsx | 3 +-
.../FilterBar/FilterControls/FilterControl.tsx | 3 +-
.../FilterBar/FilterControls/FilterControls.tsx | 5 +-
.../FilterControls/FilterDivider.stories.tsx | 2 +-
.../FilterBar/FilterControls/FilterDivider.tsx | 8 +-
.../FilterBar/FilterControls/FilterValue.tsx | 2 +-
.../FilterBar/FiltersDropdownContent/index.tsx | 3 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 3 +-
.../nativeFilters/FilterBar/Header/index.tsx | 3 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 3 +-
.../nativeFilters/FilterBar/Vertical.tsx | 4 +-
.../components/nativeFilters/FilterBar/index.tsx | 2 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 3 +-
.../nativeFilters/FilterCard/NameRow.tsx | 3 +-
.../nativeFilters/FilterCard/ScopeRow.tsx | 3 +-
.../components/nativeFilters/FilterCard/Styles.ts | 2 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 3 +-
.../FiltersConfigModal/DraggableFilter.tsx | 2 +-
.../FiltersConfigModal/FilterConfigurePane.tsx | 3 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 3 +-
.../FiltersConfigModal/FilterTitlePane.tsx | 3 +-
.../FiltersConfigForm/CollapsibleControl.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 3 +-
.../FiltersConfigForm/FilterScope/FilterScope.tsx | 3 +-
.../FiltersConfigForm/FilterScope/ScopingTree.tsx | 3 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 4 +-
.../FiltersConfigForm/RemovedFilter.tsx | 3 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 8 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 11 +-
.../Footer/CancelConfirmationAlert.tsx | 7 +-
.../components/resizable/ResizableContainer.tsx | 2 +-
.../src/dashboard/containers/DashboardPage.tsx | 3 +-
superset-frontend/src/dashboard/styles.ts | 2 +-
.../util/useFilterFocusHighlightStyles.ts | 3 +-
.../src/embedded/EmbeddedContextProviders.tsx | 2 +-
superset-frontend/src/embedded/index.tsx | 8 +-
.../src/explore/components/ChartPills.tsx | 3 +-
.../src/explore/components/Control.tsx | 8 +-
.../src/explore/components/ControlHeader.tsx | 3 +-
.../explore/components/ControlPanelsContainer.tsx | 5 +-
.../explore/components/DataTableControl/index.tsx | 4 +-
.../components/DataTablesPane/DataTablesPane.tsx | 3 +-
.../components/DataTableControls.tsx | 2 +-
.../components/ResultsPaneOnDashboard.tsx | 3 +-
.../DataTablesPane/components/SamplesPane.tsx | 3 +-
.../DataTablesPane/components/useResultsPane.tsx | 2 +-
.../DatasourcePanelDragOption/index.tsx | 3 +-
.../DatasourcePanel/DatasourcePanelItem.tsx | 9 +-
.../explore/components/DatasourcePanel/index.tsx | 13 +-
.../src/explore/components/EmbedCodeContent.jsx | 3 +-
.../src/explore/components/ExploreAlert.tsx | 2 +-
.../components/ExploreChartHeader/index.jsx | 3 +-
.../explore/components/ExploreChartPanel/index.tsx | 5 +-
.../explore/components/ExploreContainer/index.tsx | 2 +-
.../explore/components/ExploreContentPopover.tsx | 2 +-
.../components/ExploreViewContainer/index.jsx | 4 +-
.../components/ExportToCSVDropdown/index.tsx | 3 +-
.../explore/components/RunQueryButton/index.tsx | 3 +-
.../src/explore/components/SaveModal.tsx | 4 +-
.../AnnotationLayerControl/AnnotationLayer.jsx | 3 +-
.../controls/AnnotationLayerControl/index.tsx | 3 +-
.../explore/components/controls/BoundsControl.tsx | 3 +-
.../components/controls/CheckboxControl.jsx | 2 +-
.../controls/CollectionControl/index.jsx | 3 +-
.../ColorBreakpointOption.tsx | 2 +-
.../ColorBreakpointPopoverControl.tsx | 3 +-
.../controls/ColorBreakpointsControl/index.tsx | 3 +-
.../ColorSchemeControl/ColorSchemeLabel.tsx | 2 +-
.../controls/ColorSchemeControl/index.tsx | 3 +-
.../ColumnConfigControl/ColumnConfigControl.tsx | 3 +-
.../ColumnConfigControl/ColumnConfigItem.tsx | 2 +-
.../ControlForm/ControlFormItem.tsx | 3 +-
.../ColumnConfigControl/ControlForm/index.tsx | 3 +-
.../components/controls/ComparisonRangeLabel.tsx | 2 +-
.../ConditionalFormattingControl.tsx | 3 +-
.../FormattingPopoverContent.tsx | 3 +-
.../controls/ContourControl/ContourOption.tsx | 3 +-
.../ContourControl/ContourPopoverControl.tsx | 3 +-
.../components/controls/ContourControl/index.tsx | 3 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 3 +-
.../components/controls/CustomListItem/index.tsx | 2 +-
.../controls/DatasourceControl/index.jsx | 10 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 5 +-
.../components/DateFunctionTooltip.tsx | 3 +-
.../DateFilterControl/components/DateLabel.tsx | 3 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 4 +-
.../DndColumnSelectPopoverTitle.jsx | 3 +-
.../controls/DndColumnSelectControl/Option.tsx | 3 +-
.../DndColumnSelectControl/OptionWrapper.tsx | 3 +-
.../FilterControl/AdhocFilterControl/index.jsx | 9 +-
.../FilterControl/AdhocFilterEditPopover/index.jsx | 3 +-
.../index.tsx | 4 +-
.../AdhocFilterEditPopoverSqlTabContent/index.tsx | 3 +-
.../controls/LayerConfigsControl/FlatLayerTree.tsx | 3 +-
.../LayerConfigsControl/LayerConfigsControl.tsx | 3 +-
.../LayerConfigsPopoverContent.tsx | 3 +-
.../controls/MapViewControl/MapViewControl.tsx | 3 +-
.../MapViewControl/MapViewPopoverContent.tsx | 3 +-
.../MetricControl/AdhocMetricEditPopover/index.jsx | 9 +-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 3 +-
.../components/controls/NumberControl/index.tsx | 2 +-
.../components/controls/OptionControls/index.tsx | 3 +-
.../explore/components/controls/SelectControl.jsx | 3 +-
.../components/controls/TextAreaControl.jsx | 3 +-
.../controls/TimeSeriesColumnControl/index.jsx | 3 +-
.../src/explore/components/controls/ViewQuery.tsx | 3 +-
.../explore/components/controls/ViewQueryModal.tsx | 2 +-
.../controls/VizTypeControl/FastVizSwitcher.tsx | 2 +-
.../components/controls/VizTypeControl/VizTile.tsx | 3 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 10 +-
.../controls/VizTypeControl/constants.tsx | 3 +-
.../components/controls/VizTypeControl/index.tsx | 9 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 3 +-
.../src/explore/components/optionRenderers.tsx | 2 +-
.../DashboardsSubMenu.tsx | 3 +-
.../useExploreAdditionalActionsMenu/index.jsx | 11 +-
.../src/extensions/ExtensionsList.tsx | 3 +-
.../src/features/alerts/AlertReportModal.tsx | 5 +-
.../features/alerts/buildErrorTooltipMessage.tsx | 2 +-
.../alerts/components/AlertReportCronScheduler.tsx | 3 +-
.../features/alerts/components/AlertStatusIcon.tsx | 3 +-
.../alerts/components/NotificationMethod.tsx | 3 +-
.../features/alerts/components/RecipientIcon.tsx | 2 +-
.../src/features/allEntities/AllEntitiesTable.tsx | 3 +-
.../annotationLayers/AnnotationLayerModal.tsx | 3 +-
.../src/features/annotations/AnnotationModal.tsx | 3 +-
.../src/features/charts/ChartCard.tsx | 3 +-
.../src/features/cssTemplates/CssTemplateModal.tsx | 3 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 3 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 3 +-
.../DatabaseConnectionForm/TableCatalog.tsx | 3 +-
.../DatabaseModal/DatabaseConnectionForm/index.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 3 +-
.../databases/DatabaseModal/SSHTunnelSwitch.tsx | 8 +-
.../databases/DatabaseModal/SqlAlchemyForm.tsx | 3 +-
.../src/features/databases/DatabaseModal/index.tsx | 9 +-
.../src/features/databases/DatabaseModal/styles.ts | 2 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 3 +-
.../features/databases/UploadDataModel/index.tsx | 8 +-
.../features/databases/UploadDataModel/styles.ts | 2 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 5 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 3 +-
.../datasets/AddDataset/EditDataset/index.tsx | 3 +-
.../features/datasets/AddDataset/Footer/index.tsx | 3 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 3 +-
.../src/features/datasets/DatasetLayout/index.tsx | 2 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 3 +-
.../DatasetMetadataBar.skipped-stories.tsx | 3 +-
.../datasets/metadataBar/useDatasetMetadataBar.tsx | 3 +-
superset-frontend/src/features/datasets/styles.ts | 2 +-
.../src/features/home/ActivityTable.tsx | 3 +-
superset-frontend/src/features/home/EmptyState.tsx | 3 +-
.../src/features/home/LanguagePicker.tsx | 3 +-
superset-frontend/src/features/home/Menu.tsx | 2 +-
superset-frontend/src/features/home/RightMenu.tsx | 11 +-
.../src/features/home/SavedQueries.tsx | 3 +-
superset-frontend/src/features/home/SubMenu.tsx | 3 +-
.../src/features/queries/QueryPreviewModal.tsx | 3 +-
.../features/queries/SavedQueryPreviewModal.tsx | 3 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 3 +-
.../ReportModal/HeaderReportDropdown/index.tsx | 3 +-
.../src/features/reports/ReportModal/index.tsx | 9 +-
.../src/features/reports/ReportModal/styles.tsx | 2 +-
.../src/features/rls/RowLevelSecurityModal.tsx | 3 +-
.../src/features/tags/BulkTagModal.tsx | 3 +-
superset-frontend/src/features/tags/TagModal.tsx | 3 +-
.../src/features/themes/ThemeModal.tsx | 4 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 4 +-
.../components/Select/SelectFilterPlugin.tsx | 2 +-
.../filters/components/Time/TimeFilterPlugin.tsx | 7 +-
superset-frontend/src/filters/components/common.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 | 3 +-
superset-frontend/src/pages/ActionLog/index.tsx | 3 +-
.../src/pages/AlertReportList/index.tsx | 3 +-
superset-frontend/src/pages/AllEntities/index.tsx | 3 +-
.../src/pages/AnnotationList/index.tsx | 9 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 2 +-
.../src/pages/ChartCreation/index.tsx | 9 +-
superset-frontend/src/pages/ChartList/index.tsx | 2 +-
.../src/pages/DashboardList/index.tsx | 2 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 8 +-
superset-frontend/src/pages/DatasetList/index.tsx | 10 +-
.../src/pages/ExecutionLogList/index.tsx | 3 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
superset-frontend/src/pages/Login/index.tsx | 3 +-
.../src/pages/QueryHistoryList/index.tsx | 10 +-
superset-frontend/src/pages/Register/index.tsx | 3 +-
.../src/pages/SavedQueryList/index.tsx | 2 +-
superset-frontend/src/pages/SqlLab/index.tsx | 3 +-
superset-frontend/src/pages/ThemeList/index.tsx | 6 +-
superset-frontend/src/pages/UserInfo/index.tsx | 3 +-
superset-frontend/src/theme/ThemeController.ts | 8 +-
superset-frontend/src/theme/ThemeProvider.tsx | 3 +-
.../src/theme/tests/ThemeController.test.ts | 3 +-
.../src/theme/tests/ThemeProvider.test.tsx | 6 +-
superset-frontend/src/types/bootstrapTypes.ts | 4 +-
superset-frontend/src/utils/downloadAsImage.tsx | 3 +-
superset-frontend/src/views/App.tsx | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 2 +-
superset-frontend/src/views/menu.tsx | 2 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 3 +-
.../components/SparklineCell/SparklineCell.tsx | 3 +-
.../config/transformProps/transformProps.test.ts | 2 +-
.../src/visualizations/TimeTable/constants.ts | 2 +-
563 files changed, 2331 insertions(+), 2346 deletions(-)
diff --git a/superset-frontend/.storybook/preview.jsx b/superset-frontend/.storybook/preview.jsx
index 3d407191c7..a254029088 100644
--- a/superset-frontend/.storybook/preview.jsx
+++ b/superset-frontend/.storybook/preview.jsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { withJsx } from '@mihkeleidast/storybook-addon-source';
-import { themeObject, css, exampleThemes } from '@superset-ui/core';
+import { exampleThemes } from '@superset-ui/core';
+import { themeObject, css } from '@apache-superset/core/ui';
import { combineReducers, createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index 720162eca0..5c41f4afbf 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -5324,6 +5324,15 @@
"fast-deep-equal": "^3.1.3"
}
},
+ "node_modules/@fontsource/fira-code": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.2.7.tgz",
+ "integrity": "sha512-tnB9NNund9TwIym8/7DMJe573nlPEQb+fKUV5GL8TBYXjIhDvL0D7mgmNVNQUPhXp+R7RylQeiBdkA4EbOHPGQ==",
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
+ }
+ },
"node_modules/@fontsource/inter": {
"version": "5.2.6",
"resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.6.tgz",
@@ -61918,12 +61927,27 @@
"name": "@apache-superset/core",
"version": "0.0.1-rc5",
"license": "ISC",
+ "dependencies": {
+ "@emotion/cache": "^11.4.0",
+ "@emotion/react": "^11.14.0",
+ "@emotion/styled": "^11.14.1",
+ "@fontsource/fira-code": "^5.2.6",
+ "@fontsource/inter": "^5.2.6",
+ "lodash": "^4.17.21"
+ },
"devDependencies": {
"@babel/cli": "^7.28.3",
"@babel/core": "^7.28.3",
"@babel/preset-env": "^7.26.9",
"@babel/preset-react": "^7.26.3",
"@babel/preset-typescript": "^7.26.0",
+ "@emotion/styled": "^11.14.1",
+ "@testing-library/dom": "^8.20.1",
+ "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/react": "^12.1.5",
+ "@testing-library/react-hooks": "^8.0.1",
+ "@testing-library/user-event": "^12.8.3",
+ "@types/lodash": "^4.17.20",
"@types/react": "^17.0.83",
"install": "^0.13.0",
"npm": "^11.1.0",
@@ -61934,6 +61958,13 @@
"react": "^17.0.2"
}
},
+ "packages/superset-core/node_modules/@types/lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==",
+ "dev": true,
+ "license": "MIT"
+ },
"packages/superset-core/node_modules/npm": {
"version": "11.5.2",
"resolved": "https://registry.npmjs.org/npm/-/npm-11.5.2.tgz",
diff --git a/superset-frontend/packages/superset-core/package.json b/superset-frontend/packages/superset-core/package.json
index a744927835..9eb41d3731 100644
--- a/superset-frontend/packages/superset-core/package.json
+++ b/superset-frontend/packages/superset-core/package.json
@@ -16,14 +16,34 @@
"@babel/preset-env": "^7.26.9",
"@babel/preset-react": "^7.26.3",
"@babel/preset-typescript": "^7.26.0",
- "@types/react": "^17.0.83",
"install": "^0.13.0",
"npm": "^11.1.0",
- "typescript": "^5.0.0"
+ "typescript": "^5.0.0",
+ "@emotion/styled": "^11.14.1",
+ "@types/lodash": "^4.17.20",
+ "@testing-library/dom": "^8.20.1",
+ "@testing-library/jest-dom": "*",
+ "@testing-library/react": "^12.1.5",
+ "@testing-library/react-hooks": "*",
+ "@testing-library/user-event": "*",
+ "@types/react": "*",
+ "@types/react-loadable": "*",
+ "@types/react-window": "^1.8.8",
+ "@types/tinycolor2": "*"
},
"peerDependencies": {
- "antd": "^5.26.0",
- "react": "^17.0.2"
+ "@emotion/cache": "^11.4.0",
+ "@emotion/react": "^11.4.1",
+ "@emotion/styled": "^11.14.1",
+ "nanoid": "^5.0.9",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "react-loadable": "^5.5.0",
+ "tinycolor2": "*",
+ "@fontsource/fira-code": "^5.2.6",
+ "@fontsource/inter": "^5.2.6",
+ "lodash": "^4.17.21",
+ "antd": "^5.26.0"
},
"scripts": {
"build": "babel src --out-dir lib --extensions \".ts,.tsx\" && tsc --emitDeclarationOnly",
diff --git a/superset-frontend/packages/superset-core/src/index.ts b/superset-frontend/packages/superset-core/src/index.ts
index 74c1aea3d6..e570f52292 100644
--- a/superset-frontend/packages/superset-core/src/index.ts
+++ b/superset-frontend/packages/superset-core/src/index.ts
@@ -17,3 +17,4 @@
* under the License.
*/
export * from './api';
+export * from './ui';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Alert/Alert.stories.tsx b/superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.stories.tsx
similarity index 81%
rename from superset-frontend/packages/superset-ui-core/src/components/Alert/Alert.stories.tsx
rename to superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.stories.tsx
index 97241e1058..7ccf6737a4 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Alert/Alert.stories.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.stories.tsx
@@ -16,8 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { Alert } from '.';
-import type { AlertProps } from './types';
+import { Alert, type AlertProps } from '.';
type AlertType = Required<Pick<AlertProps, 'type'>>;
type AlertTypeValue = AlertType['type'];
@@ -54,25 +53,10 @@ export const AlertGallery = () => (
</>
);
-export const InteractiveAlert = (args: AlertProps) => (
- <>
- <Alert {...args} />
- <div
- style={{
- marginTop: args.roomBelow ? '40px' : '0px',
- border: '1px dashed gray',
- padding: '10px',
- textAlign: 'center',
- }}
- >
- Content below the Alert to test the `roomBelow` property
- </div>
- </>
-);
+export const InteractiveAlert = (args: AlertProps) => <Alert {...args} />;
InteractiveAlert.args = {
closable: true,
- roomBelow: false,
type: 'info',
message: 'This is a sample alert message.',
description: 'Sample description for additional context.',
@@ -94,8 +78,4 @@ InteractiveAlert.argTypes = {
control: { type: 'boolean' },
description: 'Whether to display an icon in the Alert.',
},
- roomBelow: {
- control: { type: 'boolean' },
- description: 'Adds margin below the Alert for layout spacing.',
- },
};
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts b/superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.test.tsx
similarity index 78%
copy from superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts
copy to superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.test.tsx
index 0eee141c10..cb0e8092f7 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts
+++ b/superset-frontend/packages/superset-core/src/ui/components/Alert/Alert.test.tsx
@@ -17,12 +17,10 @@
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { render } from '../../testing';
+import { Alert } from '.';
-export const ellipsisCss = css`
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- display: inline-block;
- vertical-align: middle;
-`;
+test('renders Alert with default props', async () => {
+ const { container } = render(<Alert />);
+ expect(container).toHaveTextContent('Default message');
+});
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Alert/index.tsx b/superset-frontend/packages/superset-core/src/ui/components/Alert/index.tsx
similarity index 50%
rename from superset-frontend/packages/superset-ui-core/src/components/Alert/index.tsx
rename to superset-frontend/packages/superset-core/src/ui/components/Alert/index.tsx
index 512f83b22d..c79f998027 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Alert/index.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/components/Alert/index.tsx
@@ -17,8 +17,47 @@
* under the License.
*/
import { Alert as AntdAlert } from 'antd';
-import type { AlertProps } from './types';
+import type { PropsWithChildren } from 'react';
+import type { AlertProps as AntdAlertProps } from 'antd/es/alert';
+/**
+ * Props for the Alert component, extending Ant Design's AlertProps
+ * with support for children instead of the message prop.
+ */
+export type AlertProps = PropsWithChildren<Omit<AntdAlertProps, 'children'>>;
+
+/**
+ * Alert component for displaying important messages to users.
+ *
+ * Wraps Ant Design's Alert component with sensible defaults and improved accessibility.
+ * Supports four severity levels: success, info, warning, and error.
+ *
+ * @param props - Alert configuration props
+ *
+ * @example
+ * // Basic usage with default info type
+ * <Alert>This is an informational message</Alert>
+ *
+ * @example
+ * // Error alert with description
+ * <Alert type="error" description="Please try again later">
+ * Operation failed
+ * </Alert>
+ *
+ * @example
+ * // Success alert without close button or icon
+ * <Alert type="success" closable={false} showIcon={false}>
+ * Settings saved successfully
+ * </Alert>
+ *
+ * @example
+ * // Warning alert with custom close handler
+ * <Alert type="warning" onClose={() => console.log('Alert closed')}>
+ * Your session will expire in 5 minutes
+ * </Alert>
+ *
+ * @returns Rendered Alert component with proper ARIA attributes
+ */
export const Alert = (props: AlertProps) => {
const {
type = 'info',
@@ -28,7 +67,6 @@ export const Alert = (props: AlertProps) => {
children,
...rest
} = props;
-
return (
<AntdAlert
role="alert"
@@ -42,5 +80,3 @@ export const Alert = (props: AlertProps) => {
/>
);
};
-
-export type { AlertProps };
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Alert/types.ts b/superset-frontend/packages/superset-core/src/ui/components/index.ts
similarity index 78%
rename from superset-frontend/packages/superset-ui-core/src/components/Alert/types.ts
rename to superset-frontend/packages/superset-core/src/ui/components/index.ts
index 37bf8751be..a03f267226 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Alert/types.ts
+++ b/superset-frontend/packages/superset-core/src/ui/components/index.ts
@@ -16,9 +16,4 @@
* specific language governing permissions and limitations
* under the License.
*/
-import type { PropsWithChildren } from 'react';
-import type { AlertProps as AntdAlertProps } from 'antd/es/alert';
-
-export type AlertProps = PropsWithChildren<
- Omit<AntdAlertProps, 'children'> & { roomBelow?: boolean }
->;
+export * from './Alert';
diff --git a/superset-frontend/packages/superset-core/src/index.ts b/superset-frontend/packages/superset-core/src/ui/index.ts
similarity index 93%
copy from superset-frontend/packages/superset-core/src/index.ts
copy to superset-frontend/packages/superset-core/src/ui/index.ts
index 74c1aea3d6..82cb0634d5 100644
--- a/superset-frontend/packages/superset-core/src/index.ts
+++ b/superset-frontend/packages/superset-core/src/ui/index.ts
@@ -16,4 +16,5 @@
* specific language governing permissions and limitations
* under the License.
*/
-export * from './api';
+export * from './theme';
+export * from './components';
diff --git a/superset-frontend/packages/superset-ui-core/src/spec/index.tsx b/superset-frontend/packages/superset-core/src/ui/testing.tsx
similarity index 88%
copy from superset-frontend/packages/superset-ui-core/src/spec/index.tsx
copy to superset-frontend/packages/superset-core/src/ui/testing.tsx
index 13e280b47b..e68186343c 100644
--- a/superset-frontend/packages/superset-ui-core/src/spec/index.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/testing.tsx
@@ -20,10 +20,10 @@ import userEvent from '@testing-library/user-event';
import { ReactElement } from 'react';
import { render, RenderOptions } from '@testing-library/react';
import '@testing-library/jest-dom';
-import { themeObject } from '@superset-ui/core';
+import { themeObject } from './theme';
// Define the wrapper component outside
-const AllTheProviders = ({ children }: { children: React.ReactNode }) => (
+const Providers = ({ children }: { children: React.ReactNode }) => (
<themeObject.SupersetThemeProvider>
{children}
</themeObject.SupersetThemeProvider>
@@ -33,7 +33,7 @@ const AllTheProviders = ({ children }: { children: React.ReactNode }) => (
const customRender = (
ui: ReactElement,
options?: Omit<RenderOptions, 'wrapper'>,
-) => render(ui, { wrapper: AllTheProviders, ...options });
+) => render(ui, { wrapper: Providers, ...options });
export {
createEvent,
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/GlobalStyles.tsx b/superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx
similarity index 100%
rename from superset-frontend/packages/superset-ui-core/src/theme/GlobalStyles.tsx
rename to superset-frontend/packages/superset-core/src/ui/theme/GlobalStyles.tsx
diff --git a/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx b/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
new file mode 100644
index 0000000000..e9b1612f15
--- /dev/null
+++ b/superset-frontend/packages/superset-core/src/ui/theme/Theme.test.tsx
@@ -0,0 +1,768 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { theme as antdThemeImport } from 'antd';
+import { Theme } from './Theme';
+import { AnyThemeConfig, ThemeAlgorithm } from './types';
+
+// Mock emotion's cache to avoid actual DOM operations
+jest.mock('@emotion/cache', () => ({
+ __esModule: true,
+ default: jest.fn().mockReturnValue({}),
+}));
+
+beforeEach(() => {
+ jest.clearAllMocks();
+});
+
+test('Theme.json serializes the theme configuration to a JSON string', () => {
+ const theme = Theme.fromConfig({
+ token: {
+ colorPrimary: '#ff0000',
+ },
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+
+ const jsonString = theme.json();
+ const parsedJson = JSON.parse(jsonString);
+
+ expect(parsedJson.token?.colorPrimary).toBe('#ff0000');
+ expect(parsedJson.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.fromConfig creates a theme with Ant Design defaults when no config is provided', () => {
+ const theme = Theme.fromConfig();
+
+ // Verify Ant Design default tokens are set
+ expect(theme.theme.colorPrimary).toBeDefined();
+ expect(theme.theme.fontFamily).toBeDefined();
+
+ // Verify the theme is initialized with semantic color tokens
+ expect(theme.theme.colorText).toBeDefined();
+ expect(theme.theme.colorBgBase).toBeDefined();
+});
+
+test('Theme.fromConfig creates a theme with custom tokens when provided', () => {
+ const customConfig: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff0000',
+ fontFamily: 'CustomFont, sans-serif',
+ },
+ };
+
+ const theme = Theme.fromConfig(customConfig);
+
+ // Verify custom primary color is set
+ expect(theme.theme.colorPrimary).toBe('#ff0000');
+
+ // Verify custom font family is set
+ expect(theme.theme.fontFamily).toBe('CustomFont, sans-serif');
+
+ // Unspecified values will use Ant Design defaults
+ expect(theme.theme.colorError).toBeDefined();
+});
+
+test('Theme.fromConfig creates a theme with dark mode when dark algorithm is specified', () => {
+ const darkConfig: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(darkConfig);
+
+ // Verify dark mode by using the serialized config from the public method
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.setConfig updates theme with a new configuration', () => {
+ const theme = Theme.fromConfig();
+ const initialPrimaryColor = theme.theme.colorPrimary;
+
+ // Update with new config
+ theme.setConfig({
+ token: {
+ colorPrimary: '#0000ff',
+ },
+ });
+
+ // Verify the theme was updated
+ expect(theme.theme.colorPrimary).toBe('#0000ff');
+ expect(theme.theme.colorPrimary).not.toBe(initialPrimaryColor);
+});
+
+test('Theme.setConfig preserves default tokens when updating with partial config', () => {
+ const theme = Theme.fromConfig();
+ const initialErrorColor = theme.theme.colorError;
+
+ // Update with new config that doesn't specify error color
+ theme.setConfig({
+ token: {
+ colorPrimary: '#0000ff',
+ },
+ });
+
+ // Verify the error color is preserved
+ expect(theme.theme.colorError).toBe(initialErrorColor);
+});
+
+test('Theme.setConfig correctly applies algorithm changes', () => {
+ const theme = Theme.fromConfig();
+
+ // Change to dark mode via config
+ theme.setConfig({
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+
+ // Verify the algorithm was updated
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.toggleDarkMode switches to dark algorithm when toggling dark mode on', () => {
+ const theme = Theme.fromConfig();
+
+ // Toggle dark mode on
+ theme.toggleDarkMode(true);
+
+ // Verify dark algorithm is used
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.toggleDarkMode switches to default algorithm when toggling dark mode off', () => {
+ // Start with dark theme
+ const theme = Theme.fromConfig({
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+
+ // Toggle dark mode off
+ theme.toggleDarkMode(false);
+
+ // Verify default algorithm is used
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+});
+
+test('Theme.toggleDarkMode preserves other algorithms when toggling dark mode', () => {
+ // Start with compact and dark algorithms
+ const theme = Theme.fromConfig({
+ algorithm: [
+ antdThemeImport.compactAlgorithm,
+ antdThemeImport.darkAlgorithm,
+ ],
+ });
+
+ // Toggle dark mode off
+ theme.toggleDarkMode(false);
+
+ // Verify default algorithm replaces dark but compact is preserved
+ const serialized = theme.toSerializedConfig();
+
+ expect(Array.isArray(serialized.algorithm)).toBe(true);
+ expect(serialized.algorithm).toContain(ThemeAlgorithm.DEFAULT);
+ expect(serialized.algorithm).toContain(ThemeAlgorithm.COMPACT);
+ expect(serialized.algorithm).not.toContain(ThemeAlgorithm.DARK);
+});
+
+test('Theme.toSerializedConfig serializes theme config correctly', () => {
+ const theme = Theme.fromConfig({
+ token: {
+ colorPrimary: '#ff0000',
+ },
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+
+ const serialized = theme.toSerializedConfig();
+
+ expect(serialized.token?.colorPrimary).toBe('#ff0000');
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.fromConfig with baseTheme applies base theme tokens under the main config', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff0000',
+ colorError: '#00ff00',
+ fontFamily: 'BaseFont',
+ },
+ };
+
+ const userConfig: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#0000ff',
+ },
+ };
+
+ const theme = Theme.fromConfig(userConfig, baseTheme);
+
+ // User config overrides base theme
+ expect(theme.theme.colorPrimary).toBe('#0000ff');
+
+ // Base theme tokens are preserved when not overridden
+ expect(theme.theme.colorError).toBe('#00ff00');
+ expect(theme.theme.fontFamily).toBe('BaseFont');
+});
+
+test('Theme.fromConfig with baseTheme applies base theme when no user config is provided', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff0000',
+ fontFamily: 'TestFont',
+ },
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(undefined, baseTheme);
+
+ // Color may be transformed by dark algorithm, check fontFamily instead
+ expect(theme.theme.fontFamily).toBe('TestFont');
+
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.fromConfig with baseTheme handles empty config with base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff0000',
+ },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const emptyConfig: AnyThemeConfig = {};
+
+ const theme = Theme.fromConfig(emptyConfig, baseTheme);
+
+ // Base theme tokens should be applied
+ expect(theme.theme.colorPrimary).toBe('#ff0000');
+
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+});
+
+test('Theme.fromConfig with baseTheme merges algorithms correctly with base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.compactAlgorithm,
+ };
+
+ const userConfig: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(userConfig, baseTheme);
+
+ // User algorithm should override base algorithm
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme.fromConfig with baseTheme merges component overrides with base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ components: {
+ Button: {
+ colorPrimary: '#basebutton',
+ },
+ Input: {
+ colorBorder: '#baseinput',
+ },
+ },
+ };
+
+ const userConfig: AnyThemeConfig = {
+ components: {
+ Button: {
+ colorPrimary: '#userbutton',
+ },
+ },
+ };
+
+ const theme = Theme.fromConfig(userConfig, baseTheme);
+ const serialized = theme.toSerializedConfig();
+
+ // User component config overrides base
+ expect(serialized.components?.Button?.colorPrimary).toBe('#userbutton');
+
+ // Base component config preserved when not overridden
+ expect(serialized.components?.Input?.colorBorder).toBe('#baseinput');
+});
+
+test('Theme.fromConfig with baseTheme handles undefined config and undefined base theme', () => {
+ const theme = Theme.fromConfig(undefined, undefined);
+
+ // Should get Ant Design defaults
+ expect(theme.theme.colorPrimary).toBeDefined();
+ expect(theme.theme.fontFamily).toBeDefined();
+});
+
+test('Theme.fromConfig with baseTheme preserves custom tokens in base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff0000',
+ // Custom superset-specific tokens
+ brandLogoAlt: 'CustomLogo',
+ menuHoverBackgroundColor: '#00ff00',
+ } as Record<string, any>,
+ };
+
+ const theme = Theme.fromConfig({}, baseTheme);
+
+ // Standard token
+ expect(theme.theme.colorPrimary).toBe('#ff0000');
+
+ // Custom tokens should be preserved
+ expect((theme.theme as any).brandLogoAlt).toBe('CustomLogo');
+ expect((theme.theme as any).menuHoverBackgroundColor).toBe('#00ff00');
+});
+
+test('Theme edge cases correctly applies base theme tokens in dark mode', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#1890ff',
+ fontFamily: 'TestFont',
+ },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const baseThemeDark: AnyThemeConfig = {
+ ...baseTheme,
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ // Simulate light mode with base theme
+ const lightTheme = Theme.fromConfig({}, baseTheme);
+ expect(lightTheme.theme.colorPrimary).toBe('#1890ff');
+ expect(lightTheme.theme.fontFamily).toBe('TestFont');
+
+ // Simulate dark mode with base theme dark
+ const darkTheme = Theme.fromConfig({}, baseThemeDark);
+ // Dark algorithm transforms colors, but fontFamily should be preserved
+ expect(darkTheme.theme.fontFamily).toBe('TestFont');
+
+ // Verify the algorithm is different
+ const lightSerialized = lightTheme.toSerializedConfig();
+ const darkSerialized = darkTheme.toSerializedConfig();
+ expect(lightSerialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+ expect(darkSerialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme edge cases handles switching from custom theme back to base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#1890ff',
+ },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ // First apply custom theme
+ const customConfig: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#52c41a',
+ },
+ };
+ const themeWithCustom = Theme.fromConfig(customConfig, baseTheme);
+ expect(themeWithCustom.theme.colorPrimary).toBe('#52c41a');
+
+ // Then switch back to empty config (simulating removal of custom theme)
+ const themeWithEmpty = Theme.fromConfig({}, baseTheme);
+ expect(themeWithEmpty.theme.colorPrimary).toBe('#1890ff');
+
+ // Verify they produce different outputs
+ expect(themeWithCustom.theme.colorPrimary).not.toBe(
+ themeWithEmpty.theme.colorPrimary,
+ );
+});
+
+test('Theme edge cases handles algorithm-only config with base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ fontFamily: 'TestFont',
+ borderRadius: 8,
+ },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ // Config that only specifies algorithm (common for THEME_DARK)
+ const algorithmOnlyConfig: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(algorithmOnlyConfig, baseTheme);
+
+ // Should have base theme tokens
+ expect(theme.theme.fontFamily).toBe('TestFont');
+ expect(theme.theme.borderRadius).toBe(8);
+
+ // Should have user's algorithm
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme base theme integration merges base theme tokens with empty user theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ colorError: '#e04355',
+ fontFamily: 'Inter, Helvetica',
+ },
+ };
+
+ const userTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+
+ expect(theme.theme.colorPrimary).toBe('#2893B3');
+ expect(theme.theme.colorError).toBe('#e04355');
+ expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
+
+ // Should have user's algorithm
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+});
+
+test('Theme base theme integration allows user theme to override specific base theme tokens', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ colorError: '#e04355',
+ fontFamily: 'Inter, Helvetica',
+ borderRadius: 4,
+ },
+ };
+
+ const userTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.defaultAlgorithm,
+ token: {
+ colorPrimary: '#123456', // Override primary color
+ // Leave other tokens from base
+ },
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+
+ // User override should win
+ expect(theme.theme.colorPrimary).toBe('#123456');
+
+ // Base theme tokens should be preserved
+ expect(theme.theme.colorError).toBe('#e04355');
+ expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
+ expect(theme.theme.borderRadius).toBe(4);
+});
+
+test('Theme base theme integration handles base theme with dark algorithm correctly', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ fontFamily: 'Inter, Helvetica',
+ },
+ };
+
+ const baseThemeDark: AnyThemeConfig = {
+ ...baseTheme,
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const userDarkTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(userDarkTheme, baseThemeDark);
+
+ // Should have base tokens
+ expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
+
+ // Should be in dark mode
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme base theme integration works with real-world Superset base theme configuration', () => {
+ // Simulate actual Superset base theme (THEME_DEFAULT/THEME_DARK from config)
+ const supersetBaseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ colorError: '#e04355',
+ colorWarning: '#fcc700',
+ colorSuccess: '#5ac189',
+ colorInfo: '#66bcfe',
+ fontFamily: "'Inter', Helvetica, Arial",
+ fontFamilyCode: "'Fira Code', 'Courier New', monospace",
+ },
+ };
+
+ // Simulate THEME_DEFAULT from config
+ const themeDefault: AnyThemeConfig = {
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ // Simulate THEME_DARK from config
+ const themeDark: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ // Test light mode
+ const lightTheme = Theme.fromConfig(themeDefault, supersetBaseTheme);
+ expect(lightTheme.theme.colorPrimary).toBe('#2893B3');
+ expect(lightTheme.theme.fontFamily).toBe("'Inter', Helvetica, Arial");
+
+ // Test dark mode
+ const darkTheme = Theme.fromConfig(themeDark, {
+ ...supersetBaseTheme,
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+ expect(darkTheme.theme.fontFamily).toBe("'Inter', Helvetica, Arial");
+
+ const darkSerialized = darkTheme.toSerializedConfig();
+ expect(darkSerialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme base theme integration handles component overrides in base theme', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ },
+ components: {
+ Button: {
+ primaryColor: '#custom-button',
+ borderRadius: 8,
+ },
+ },
+ };
+
+ const userTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+
+ // Should preserve component overrides
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.components?.Button?.primaryColor).toBe('#custom-button');
+ expect(serialized.components?.Button?.borderRadius).toBe(8);
+});
+
+test('Theme base theme integration properly handles algorithm property override', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const userTheme: AnyThemeConfig = {
+ algorithm: antdThemeImport.darkAlgorithm,
+ token: {
+ borderRadius: 8,
+ },
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+ const serialized = theme.toSerializedConfig();
+
+ // User algorithm should override base algorithm
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+
+ // Both base and user tokens should be merged
+ expect(serialized.token?.colorPrimary).toBeTruthy();
+ expect(serialized.token?.borderRadius).toBe(8);
+});
+
+test('Theme base theme integration handles cssVar, hashed and inherit properties correctly', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ },
+ cssVar: true,
+ hashed: false,
+ };
+
+ const userTheme: AnyThemeConfig = {
+ token: {
+ borderRadius: 8,
+ },
+ inherit: true,
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+ const serialized = theme.toSerializedConfig();
+
+ // User properties override/add to base
+ expect(serialized.inherit).toBe(true);
+ expect(serialized.cssVar).toBe(true);
+ expect(serialized.hashed).toBe(false);
+
+ // Tokens are still merged
+ expect(serialized.token?.colorPrimary).toBeTruthy();
+ expect(serialized.token?.borderRadius).toBe(8);
+});
+
+test('Theme base theme integration merges nested component styles correctly', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ fontFamily: 'BaseFont',
+ },
+ components: {
+ Button: {
+ colorPrimary: '#basebutton',
+ fontSize: 14,
+ },
+ Input: {
+ colorBorder: '#baseinput',
+ },
+ },
+ };
+
+ const userTheme: AnyThemeConfig = {
+ token: {
+ borderRadius: 8,
+ },
+ components: {
+ Button: {
+ fontSize: 16, // Override Button fontSize
+ },
+ Select: {
+ colorBorder: '#userselect', // Add new component
+ },
+ },
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+ const serialized = theme.toSerializedConfig();
+
+ // Tokens should be merged
+ // Note: components present may affect color transformation
+ expect(serialized.token?.colorPrimary).toBeTruthy();
+ expect(serialized.token?.borderRadius).toBe(8);
+ expect(serialized.token?.fontFamily).toBe('BaseFont');
+
+ // Components should be merged (shallow merge per component)
+ expect(serialized.components?.Button?.colorPrimary).toBe('#basebutton');
+ expect(serialized.components?.Button?.fontSize).toBe(16); // User override
+ expect(serialized.components?.Input?.colorBorder).toBe('#baseinput');
+ expect(serialized.components?.Select?.colorBorder).toBe('#userselect');
+});
+
+test('Theme base theme integration setConfig replaces theme config entirely (does not preserve base theme)', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ fontFamily: 'Inter',
+ },
+ };
+
+ const theme = Theme.fromConfig({}, baseTheme);
+
+ expect(theme.theme.colorPrimary).toBe('#2893B3');
+ expect(theme.theme.fontFamily).toBe('Inter');
+
+ // Update config (simulating theme change)
+ theme.setConfig({
+ token: {
+ colorPrimary: '#654321',
+ },
+ algorithm: antdThemeImport.darkAlgorithm,
+ });
+
+ // setConfig replaces the entire config, so base theme is NOT preserved
+ // This is expected behavior - setConfig is for complete replacement
+ expect(theme.theme.colorPrimary).toBeTruthy();
+ // fontFamily reverts to Ant Design default since base theme is not reapplied
+ expect(theme.theme.fontFamily).not.toBe('Inter');
+});
+
+test('Theme base theme integration minimal theme preserves ALL base theme tokens except overridden ones', () => {
+ // Simulate a comprehensive base theme with many tokens
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ colorError: '#e04355',
+ colorWarning: '#fcc700',
+ colorSuccess: '#5ac189',
+ colorInfo: '#66bcfe',
+ fontFamily: 'Inter, Helvetica',
+ fontSize: 14,
+ borderRadius: 4,
+ lineWidth: 1,
+ controlHeight: 32,
+ // Custom Superset tokens
+ brandLogoAlt: 'CustomLogo',
+ menuHoverBackgroundColor: '#eeeeee',
+ } as Record<string, any>,
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ // Minimal theme that only overrides primary color and algorithm
+ const minimalTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#ff05dd', // Only override this
+ },
+ algorithm: antdThemeImport.darkAlgorithm, // Change to dark
+ };
+
+ const theme = Theme.fromConfig(minimalTheme, baseTheme);
+
+ // User's override should apply
+ expect(theme.theme.colorPrimary).toBe('#ff05dd');
+
+ // ALL base theme tokens should be preserved
+ expect(theme.theme.colorError).toBe('#e04355');
+ expect(theme.theme.colorWarning).toBe('#fcc700');
+ expect(theme.theme.colorSuccess).toBe('#5ac189');
+ expect(theme.theme.colorInfo).toBe('#66bcfe');
+ expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
+ expect(theme.theme.fontSize).toBe(14);
+ expect(theme.theme.borderRadius).toBe(4);
+ expect(theme.theme.lineWidth).toBe(1);
+ expect(theme.theme.controlHeight).toBe(32);
+
+ // Custom tokens should also be preserved
+ expect((theme.theme as any).brandLogoAlt).toBe('CustomLogo');
+ expect((theme.theme as any).menuHoverBackgroundColor).toBe('#eeeeee');
+
+ // Algorithm should be updated
+ const serialized = theme.toSerializedConfig();
+ expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('Theme base theme integration arrays in themes are replaced entirely, not merged by index', () => {
+ const baseTheme: AnyThemeConfig = {
+ token: {
+ colorPrimary: '#2893B3',
+ },
+ algorithm: [
+ antdThemeImport.compactAlgorithm,
+ antdThemeImport.defaultAlgorithm,
+ ],
+ };
+
+ const userTheme: AnyThemeConfig = {
+ algorithm: [antdThemeImport.darkAlgorithm], // Replace with single item array
+ };
+
+ const theme = Theme.fromConfig(userTheme, baseTheme);
+ const serialized = theme.toSerializedConfig();
+
+ // User's array should completely replace base array
+ expect(Array.isArray(serialized.algorithm)).toBe(true);
+ expect(serialized.algorithm).toHaveLength(1);
+ expect(serialized.algorithm).toContain(ThemeAlgorithm.DARK);
+ expect(serialized.algorithm).not.toContain(ThemeAlgorithm.COMPACT);
+ expect(serialized.algorithm).not.toContain(ThemeAlgorithm.DEFAULT);
+});
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/Theme.tsx b/superset-frontend/packages/superset-core/src/ui/theme/Theme.tsx
similarity index 100%
rename from superset-frontend/packages/superset-ui-core/src/theme/Theme.tsx
rename to superset-frontend/packages/superset-core/src/ui/theme/Theme.tsx
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/exampleThemes.ts b/superset-frontend/packages/superset-core/src/ui/theme/exampleThemes.ts
similarity index 100%
rename from superset-frontend/packages/superset-ui-core/src/theme/exampleThemes.ts
rename to superset-frontend/packages/superset-core/src/ui/theme/exampleThemes.ts
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/index.tsx b/superset-frontend/packages/superset-core/src/ui/theme/index.tsx
similarity index 99%
rename from superset-frontend/packages/superset-ui-core/src/theme/index.tsx
rename to superset-frontend/packages/superset-core/src/ui/theme/index.tsx
index a2bcf24976..c1dca94359 100644
--- a/superset-frontend/packages/superset-ui-core/src/theme/index.tsx
+++ b/superset-frontend/packages/superset-core/src/ui/theme/index.tsx
@@ -87,3 +87,4 @@ export type {
// Export theme utility functions
export * from './utils/themeUtils';
+export * from './utils';
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/types.ts b/superset-frontend/packages/superset-core/src/ui/theme/types.ts
similarity index 100%
rename from superset-frontend/packages/superset-ui-core/src/theme/types.ts
rename to superset-frontend/packages/superset-core/src/ui/theme/types.ts
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/utils.ts b/superset-frontend/packages/superset-core/src/ui/theme/utils/index.ts
similarity index 99%
rename from superset-frontend/packages/superset-ui-core/src/theme/utils.ts
rename to superset-frontend/packages/superset-core/src/ui/theme/utils/index.ts
index b8ce580ea7..f5a8555567 100644
--- a/superset-frontend/packages/superset-ui-core/src/theme/utils.ts
+++ b/superset-frontend/packages/superset-core/src/ui/theme/utils/index.ts
@@ -24,7 +24,7 @@ import {
type SystemColors,
type SupersetTheme,
ThemeAlgorithm,
-} from './types';
+} from '../types';
/**
* Check if a theme config is serializable by detecting string-based algorithm
diff --git a/superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.test.ts b/superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.test.ts
new file mode 100644
index 0000000000..76b8922668
--- /dev/null
+++ b/superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.test.ts
@@ -0,0 +1,236 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { theme as antdTheme } from 'antd';
+import {
+ getFontSize,
+ getColorVariants,
+ isThemeDark,
+ isThemeConfigDark,
+} from './themeUtils';
+import { Theme } from '../Theme';
+import { ThemeAlgorithm } from '../types';
+
+// Mock emotion's cache to avoid actual DOM operations
+jest.mock('@emotion/cache', () => ({
+ __esModule: true,
+ default: jest.fn().mockReturnValue({}),
+}));
+
+let lightTheme: Theme;
+let darkTheme: Theme;
+
+beforeEach(() => {
+ jest.clearAllMocks();
+
+ // Create actual theme instances for testing
+ lightTheme = Theme.fromConfig({
+ token: {
+ colorPrimary: '#1890ff',
+ fontSizeXS: '8',
+ fontSize: '14',
+ fontSizeLG: '16',
+ },
+ });
+
+ darkTheme = Theme.fromConfig({
+ algorithm: ThemeAlgorithm.DARK,
+ token: {
+ colorPrimary: '#1890ff',
+ fontSizeXS: '8',
+ fontSize: '14',
+ fontSizeLG: '16',
+ },
+ });
+});
+
+test('getFontSize returns correct font size for given key', () => {
+ expect(getFontSize(lightTheme.theme, 'xs')).toBe('8');
+ expect(getFontSize(lightTheme.theme, 'm')).toBe('14');
+ expect(getFontSize(lightTheme.theme, 'l')).toBe('16');
+});
+
+test('getFontSize defaults to medium font size when no key is provided', () => {
+ expect(getFontSize(lightTheme.theme)).toBe('14');
+});
+
+test('getFontSize uses antd default when specific size not overridden', () => {
+ // Create theme with minimal config - antd will provide defaults
+ const minimalTheme = Theme.fromConfig({
+ token: { fontSize: '14' },
+ });
+
+ expect(getFontSize(minimalTheme.theme, 'xs')).toBe('14');
+ expect(getFontSize(minimalTheme.theme, 'm')).toBe('14');
+});
+
+test('isThemeDark returns false for light theme', () => {
+ expect(isThemeDark(lightTheme.theme)).toBe(false);
+});
+
+test('isThemeDark returns true for dark theme', () => {
+ expect(isThemeDark(darkTheme.theme)).toBe(true);
+});
+
+test('getColorVariants returns correct variants for primary color', () => {
+ const variants = getColorVariants(lightTheme.theme, 'primary');
+
+ expect(variants.text).toBeDefined();
+ expect(variants.bg).toBeDefined();
+ expect(variants.border).toBeDefined();
+ expect(variants.active).toBeDefined();
+});
+
+test('getColorVariants returns grayscale variants for default color in light theme', () => {
+ const variants = getColorVariants(lightTheme.theme, 'default');
+
+ expect(variants.active).toBe('#222');
+ expect(variants.textActive).toBe('#444');
+ expect(variants.text).toBe('#555');
+ expect(variants.bg).toBe('#F4F4F4');
+});
+
+test('getColorVariants returns inverted grayscale variants for default color in dark theme', () => {
+ const variants = getColorVariants(darkTheme.theme, 'default');
+
+ // In dark theme, colors should be inverted
+ expect(variants.active).toBe('#dddddd'); // Inverted #222
+ expect(variants.textActive).toBe('#bbbbbb'); // Inverted #444
+ expect(variants.text).toBe('#aaaaaa'); // Inverted #555
+});
+
+test('getColorVariants returns same variants for grayscale color as default', () => {
+ const defaultVariants = getColorVariants(lightTheme.theme, 'default');
+ const grayscaleVariants = getColorVariants(lightTheme.theme, 'grayscale');
+
+ expect(defaultVariants).toEqual(grayscaleVariants);
+});
+
+test('getColorVariants handles missing color tokens gracefully', () => {
+ const variants = getColorVariants(lightTheme.theme, 'nonexistent');
+
+ // Should return undefined for missing tokens
+ expect(variants.active).toBeUndefined();
+ expect(variants.text).toBeUndefined();
+ expect(variants.bg).toBeUndefined();
+});
+
+test('isThemeConfigDark returns true for config with dark algorithm', () => {
+ const config = {
+ algorithm: antdTheme.darkAlgorithm,
+ };
+ expect(isThemeConfigDark(config)).toBe(true);
+});
+
+test('isThemeConfigDark returns true for config with dark algorithm in array', () => {
+ const config = {
+ algorithm: [antdTheme.darkAlgorithm, antdTheme.compactAlgorithm],
+ };
+ expect(isThemeConfigDark(config)).toBe(true);
+});
+
+test('isThemeConfigDark returns false for config without dark algorithm', () => {
+ const config = {
+ algorithm: antdTheme.defaultAlgorithm,
+ };
+ expect(isThemeConfigDark(config)).toBe(false);
+});
+
+test('isThemeConfigDark returns false for config with no algorithm', () => {
+ const config = {
+ token: {
+ colorPrimary: '#1890ff',
+ },
+ };
+ expect(isThemeConfigDark(config)).toBe(false);
+});
+
+test('isThemeConfigDark detects manually-created dark theme without dark algorithm', () => {
+ // This is the edge case: dark colors without dark algorithm
+ const config = {
+ token: {
+ colorBgContainer: '#1a1a1a', // Dark background
+ colorBgBase: '#0a0a0a', // Dark base
+ colorText: '#ffffff', // Light text
+ },
+ };
+ expect(isThemeConfigDark(config)).toBe(true);
+});
+
+test('isThemeConfigDark does not false-positive on light theme with custom colors', () => {
+ const config = {
+ token: {
+ colorBgContainer: '#ffffff', // Light background
+ colorBgBase: '#f5f5f5', // Light base
+ colorText: '#000000', // Dark text
+ },
+ };
+ expect(isThemeConfigDark(config)).toBe(false);
+});
+
+test('isThemeConfigDark handles partial color tokens gracefully', () => {
+ // With actual theme computation, a dark colorBgContainer results in a dark theme
+ const config = {
+ token: {
+ colorBgContainer: '#1a1a1a', // Dark background
+ // Missing other color tokens
+ },
+ };
+ expect(isThemeConfigDark(config)).toBe(true);
+});
+
+test('isThemeConfigDark respects colorBgContainer as the primary indicator', () => {
+ // The computed theme uses colorBgContainer as the main background
+ const darkConfig = {
+ token: {
+ colorBgContainer: '#1a1a1a', // Dark background
+ colorText: '#000000', // Dark text (unusual but doesn't override)
+ },
+ };
+ expect(isThemeConfigDark(darkConfig)).toBe(true);
+
+ const lightConfig = {
+ token: {
+ colorBgContainer: '#ffffff', // Light background
+ colorText: '#ffffff', // Light text (unusual but doesn't override)
+ },
+ };
+ expect(isThemeConfigDark(lightConfig)).toBe(false);
+});
+
+test('isThemeConfigDark handles non-string color tokens gracefully', () => {
+ const config = {
+ token: {
+ colorBgContainer: undefined,
+ colorText: null,
+ colorBgBase: 123, // Invalid type
+ },
+ };
+ expect(isThemeConfigDark(config)).toBe(false);
+});
+
+test('isThemeConfigDark returns false for empty config', () => {
+ expect(isThemeConfigDark({})).toBe(false);
+});
+
+test('isThemeConfigDark returns false for config with empty token object', () => {
+ const config = {
+ token: {},
+ };
+ expect(isThemeConfigDark(config)).toBe(false);
+});
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.ts b/superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.ts
similarity index 98%
rename from superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.ts
rename to superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.ts
index a896a7b5fa..041f9a7284 100644
--- a/superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.ts
+++ b/superset-frontend/packages/superset-core/src/ui/theme/utils/themeUtils.ts
@@ -25,7 +25,7 @@ import type {
ColorVariants,
AnyThemeConfig,
} from '../types';
-import { normalizeThemeConfig } from '../utils';
+import { normalizeThemeConfig } from '.';
const fontSizeMap: Record<FontSizeKey, keyof SupersetTheme> = {
xs: 'fontSizeXS',
diff --git a/superset-frontend/packages/superset-core/src/ui/theme/utils/utils.test.ts b/superset-frontend/packages/superset-core/src/ui/theme/utils/utils.test.ts
new file mode 100644
index 0000000000..20603d81a1
--- /dev/null
+++ b/superset-frontend/packages/superset-core/src/ui/theme/utils/utils.test.ts
@@ -0,0 +1,338 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { theme as antdThemeImport } from 'antd';
+import {
+ isSerializableConfig,
+ deserializeThemeConfig,
+ serializeThemeConfig,
+ normalizeThemeConfig,
+ getAntdConfig,
+ getSystemColors,
+} from '.';
+import {
+ type AnyThemeConfig,
+ type SerializableThemeConfig,
+ type AntdThemeConfig,
+ ThemeAlgorithm,
+} from '../types';
+
+test('isSerializableConfig returns true when algorithm is undefined', () => {
+ const config: AnyThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ };
+
+ expect(isSerializableConfig(config)).toBe(true);
+});
+
+test('isSerializableConfig returns true when algorithm is a string', () => {
+ const config: AnyThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.DARK,
+ };
+
+ expect(isSerializableConfig(config)).toBe(true);
+});
+
+test('isSerializableConfig returns true when algorithm is an array of strings', () => {
+ const config: AnyThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: [ThemeAlgorithm.DARK, ThemeAlgorithm.COMPACT],
+ };
+
+ expect(isSerializableConfig(config)).toBe(true);
+});
+
+test('isSerializableConfig returns false when algorithm is a function', () => {
+ const config: AnyThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ expect(isSerializableConfig(config)).toBe(false);
+});
+
+test('isSerializableConfig returns false when algorithm is an array containing a function', () => {
+ const config: AnyThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: [
+ antdThemeImport.darkAlgorithm,
+ antdThemeImport.compactAlgorithm,
+ ],
+ };
+
+ expect(isSerializableConfig(config)).toBe(false);
+});
+
+test('deserializeThemeConfig converts string algorithm to function reference', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.DARK,
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
+});
+
+test('deserializeThemeConfig converts array of string algorithms to function references', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: [ThemeAlgorithm.DARK, ThemeAlgorithm.COMPACT],
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(Array.isArray(result.algorithm)).toBe(true);
+ expect(result.algorithm).toContain(antdThemeImport.darkAlgorithm);
+ expect(result.algorithm).toContain(antdThemeImport.compactAlgorithm);
+});
+
+test('deserializeThemeConfig preserves other configuration properties', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.DARK,
+ hashed: true,
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(result.token).toEqual({ colorPrimary: '#ff0000' });
+ expect(result.hashed).toBe(true);
+});
+
+test('deserializeThemeConfig handles undefined algorithm', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
+});
+
+test('deserializeThemeConfig converts default algorithm string to function reference', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.DEFAULT,
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
+});
+
+test('deserializeThemeConfig converts compact algorithm string to function reference', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.COMPACT,
+ };
+
+ const result = deserializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(antdThemeImport.compactAlgorithm);
+});
+
+test('serializeThemeConfig converts function algorithm to string', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(ThemeAlgorithm.DARK);
+});
+
+test('serializeThemeConfig converts array of function algorithms to strings', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: [
+ antdThemeImport.darkAlgorithm,
+ antdThemeImport.compactAlgorithm,
+ ],
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(Array.isArray(result.algorithm)).toBe(true);
+ expect(result.algorithm).toContain(ThemeAlgorithm.DARK);
+ expect(result.algorithm).toContain(ThemeAlgorithm.COMPACT);
+});
+
+test('serializeThemeConfig preserves other configuration properties', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.darkAlgorithm,
+ hashed: true,
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.token).toEqual({ colorPrimary: '#ff0000' });
+ expect(result.hashed).toBe(true);
+});
+
+test('serializeThemeConfig handles undefined algorithm', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.algorithm).toBeUndefined();
+});
+
+test('serializeThemeConfig defaults to "default" for unknown algorithms', () => {
+ const unknownAlgorithm = () => ({});
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ // @ts-ignore
+ algorithm: unknownAlgorithm,
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+});
+
+test('serializeThemeConfig converts default algorithm function to string', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.defaultAlgorithm,
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(ThemeAlgorithm.DEFAULT);
+});
+
+test('serializeThemeConfig converts compact algorithm function to string', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.compactAlgorithm,
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(result.algorithm).toBe(ThemeAlgorithm.COMPACT);
+});
+
+test('serializeThemeConfig defaults each unknown algorithm in array to "default"', () => {
+ const unknownAlgorithm = () => ({});
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ // @ts-ignore
+ algorithm: [antdThemeImport.darkAlgorithm, unknownAlgorithm],
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(Array.isArray(result.algorithm)).toBe(true);
+ expect(result.algorithm).toEqual([
+ ThemeAlgorithm.DARK,
+ ThemeAlgorithm.DEFAULT,
+ ]);
+});
+
+test('serializeThemeConfig handles mixed known and unknown algorithms in array', () => {
+ const unknownAlgorithm1 = () => ({});
+ const unknownAlgorithm2 = () => ({});
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: [
+ antdThemeImport.darkAlgorithm,
+ // @ts-ignore
+ unknownAlgorithm1,
+ antdThemeImport.compactAlgorithm,
+ // @ts-ignore
+ unknownAlgorithm2,
+ ],
+ };
+
+ const result = serializeThemeConfig(config);
+
+ expect(Array.isArray(result.algorithm)).toBe(true);
+ expect(result.algorithm).toEqual([
+ ThemeAlgorithm.DARK,
+ ThemeAlgorithm.DEFAULT,
+ ThemeAlgorithm.COMPACT,
+ ThemeAlgorithm.DEFAULT,
+ ]);
+});
+
+test('normalizeThemeConfig returns the same config for non-serializable configs', () => {
+ const config: AntdThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: antdThemeImport.darkAlgorithm,
+ };
+
+ const result = normalizeThemeConfig(config);
+
+ expect(result).toBe(config);
+});
+
+test('normalizeThemeConfig deserializes serializable configs', () => {
+ const config: SerializableThemeConfig = {
+ token: { colorPrimary: '#ff0000' },
+ algorithm: ThemeAlgorithm.DARK,
+ };
+
+ const result = normalizeThemeConfig(config);
+
+ expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
+});
+
+test('getAntdConfig returns config with default algorithm for light mode', () => {
+ const seed = { colorPrimary: '#ff0000' };
+
+ const result = getAntdConfig(seed, false);
+
+ expect(result.token).toBe(seed);
+ expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
+});
+
+test('getAntdConfig returns config with dark algorithm for dark mode', () => {
+ const seed = { colorPrimary: '#ff0000' };
+
+ const result = getAntdConfig(seed, true);
+
+ expect(result.token).toBe(seed);
+ expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
+});
+
+test('getSystemColors extracts system colors from tokens', () => {
+ const tokens = {
+ colorPrimary: '#primary',
+ colorError: '#error',
+ colorWarning: '#warning',
+ colorSuccess: '#success',
+ colorInfo: '#info',
+ otherToken: 'ignore-me',
+ };
+
+ const result = getSystemColors(tokens);
+
+ expect(result).toEqual({
+ colorPrimary: '#primary',
+ colorError: '#error',
+ colorWarning: '#warning',
+ colorSuccess: '#success',
+ colorInfo: '#info',
+ });
+});
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
index 18cedfbca9..55ddae91e9 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { kebabCase } from 'lodash';
-import { t, useTheme, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme, styled } from '@apache-superset/core/ui';
import { Tooltip } from '@superset-ui/core/components';
interface CertifiedIconWithTooltipProps {
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx
index 763bf0a7d1..1fc55b7b09 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnOption.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { useState, ReactNode, useLayoutEffect, RefObject } from 'react';
-import { css, styled, SupersetTheme } from '@superset-ui/core';
+import { css, styled, SupersetTheme } from '@apache-superset/core/ui';
import {
SafeMarkdown,
Tooltip,
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx
index 93c967a2ca..94984be488 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx
@@ -18,7 +18,8 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import {
ClockCircleOutlined,
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlHeader.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlHeader.tsx
index 2779c01aa6..d725dcb9ef 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlHeader.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlHeader.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { t, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { InfoTooltip, Tooltip, Icons } from '@superset-ui/core/components';
type ValidationError = string;
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx
index 39d6a3b6a5..456faf6ba0 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/ControlSubSectionHeader.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
export const ControlSubSectionHeader = styled.div`
${({ theme }) => css`
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx
index e33c3b73e0..bf24d1279f 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/MetricOption.tsx
@@ -18,7 +18,8 @@
*/
import { useState, ReactNode, useLayoutEffect, RefObject } from 'react';
-import { css, styled, Metric, SupersetTheme } from '@superset-ui/core';
+import { Metric } from '@superset-ui/core';
+import { css, styled, SupersetTheme } from '@apache-superset/core/ui';
import {
SafeMarkdown,
Typography,
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/SQLPopover.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/SQLPopover.tsx
index 42d88901c7..09cbc38772 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/SQLPopover.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/SQLPopover.tsx
@@ -22,7 +22,8 @@ import {
SQLEditor,
} from '@superset-ui/core/components';
import { CalculatorOutlined } from '@ant-design/icons';
-import { css, styled, useTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
const StyledCalculatorIcon = styled(CalculatorOutlined)`
${({ theme }) => css`
diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx
index 6d371afcc4..edf1705338 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode, RefObject } from 'react';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { ColumnMeta, Metric } from '@superset-ui/chart-controls';
const TooltipSectionWrapper = styled.div`
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/FallbackComponent.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/FallbackComponent.tsx
index 9f704f3c36..ece0f3879f 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/FallbackComponent.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/FallbackComponent.tsx
@@ -18,7 +18,7 @@
*/
import { t } from '@superset-ui/core';
-import { SupersetTheme } from '../..';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { FallbackPropsWithDimension } from './SuperChart';
export type Props = FallbackPropsWithDimension;
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.test.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.test.tsx
index 08205c0b9b..1528680cb4 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.test.tsx
@@ -19,7 +19,7 @@
import { render, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
-import { ThemeProvider, supersetTheme } from '../../..';
+import { ThemeProvider, supersetTheme } from '@apache-superset/core/ui';
import MatrixifyGridCell from './MatrixifyGridCell';
import { MatrixifyGridCell as MatrixifyGridCellType } from '../../types/matrixify';
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.tsx
index 838460d2c3..4232b10291 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridCell.tsx
@@ -18,7 +18,7 @@
*/
import { memo, useMemo } from 'react';
-import { styled, useTheme } from '../../../theme';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { MatrixifyGridCell as GridCellData } from '../../types/matrixify';
import StatefulChart from '../StatefulChart';
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.test.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.test.tsx
index d56bf8f692..1ba393f122 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.test.tsx
@@ -19,10 +19,10 @@
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
-import { ThemeProvider } from '@superset-ui/core';
+import { ThemeProvider } from '@apache-superset/core/ui';
+import { supersetTheme } from '@apache-superset/core';
import MatrixifyGridRenderer from './MatrixifyGridRenderer';
import { generateMatrixifyGrid } from './MatrixifyGridGenerator';
-import { supersetTheme } from '../../../theme';
// Mock the MatrixifyGridGenerator
jest.mock('./MatrixifyGridGenerator', () => ({
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.tsx
index 58939477ee..6d6e53b903 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/MatrixifyGridRenderer.tsx
@@ -18,7 +18,7 @@
*/
import { useMemo } from 'react';
-import { styled } from '../../../theme';
+import { styled } from '@apache-superset/core/ui';
import { MatrixifyFormData } from '../../types/matrixify';
import { generateMatrixifyGrid } from './MatrixifyGridGenerator';
import MatrixifyGridCell from './MatrixifyGridCell';
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx b/superset-frontend/packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx
index 3bcb3e3a89..63c33638c4 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx
@@ -18,7 +18,7 @@
*/
import { CSSProperties } from 'react';
-import { css, styled } from '../../theme';
+import { css, styled } from '@apache-superset/core/ui';
import { t } from '../../translation';
const MESSAGE_STYLES: CSSProperties = { maxWidth: 800 };
diff --git a/superset-frontend/packages/superset-ui-core/src/chart/models/ChartProps.ts b/superset-frontend/packages/superset-ui-core/src/chart/models/ChartProps.ts
index c9bc2bea66..77727e471f 100644
--- a/superset-frontend/packages/superset-ui-core/src/chart/models/ChartProps.ts
+++ b/superset-frontend/packages/superset-ui-core/src/chart/models/ChartProps.ts
@@ -19,6 +19,7 @@
import { RefObject } from 'react';
import { createSelector, lruMemoize } from 'reselect';
+import { supersetTheme, SupersetTheme } from '@apache-superset/core/ui';
import {
AppSection,
Behavior,
@@ -34,7 +35,6 @@ import {
SetDataMaskHook,
} from '../types/Base';
import { QueryData, DataRecordFilters } from '..';
-import { supersetTheme, SupersetTheme } from '../../theme';
// TODO: more specific typing for these fields of ChartProps
type AnnotationData = PlainObject;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx
index 38ccdda399..4d2d19c01c 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx
@@ -23,7 +23,7 @@ import {
type TooltipPlacement,
type IconType,
} from '@superset-ui/core/components';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
export interface ActionProps {
label: string;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
index bdd9df8104..7609ab7527 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/index.tsx
@@ -31,7 +31,7 @@ import {
AsyncEsmComponent,
PlaceholderProps,
} from '@superset-ui/core/components/AsyncEsmComponent';
-import { useTheme, css } from '@superset-ui/core';
+import { useTheme, css } from '@apache-superset/core/ui';
import { Global } from '@emotion/react';
export { getTooltipHTML } from './Tooltip';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Badge/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Badge/index.tsx
index b20a05e822..adf0011627 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Badge/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Badge/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Badge as AntdBadge } from 'antd';
import type { BadgeProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Button/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Button/index.tsx
index e4bf6a0c30..6d90ef2fd0 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Button/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Button/index.tsx
@@ -19,7 +19,7 @@
import { Children, ReactElement, Fragment } from 'react';
import cx from 'classnames';
import { Button as AntdButton } from 'antd';
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Tooltip } from '../Tooltip';
import type {
ButtonColorType,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Card/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Card/index.tsx
index cc2242ca53..5a34f1a488 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Card/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Card/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { Card as AntdCard } from 'antd';
import type { CardProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/CertifiedBadge/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/CertifiedBadge/index.tsx
index 4eff6bf4d5..03413e906d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/CertifiedBadge/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/CertifiedBadge/index.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '../Tooltip';
import type { CertifiedBadgeProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Checkbox/CheckboxIcons.tsx b/superset-frontend/packages/superset-ui-core/src/components/Checkbox/CheckboxIcons.tsx
index d6c7e2a7fb..77dd457397 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Checkbox/CheckboxIcons.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Checkbox/CheckboxIcons.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
export const CheckboxChecked = () => {
const theme = useTheme();
diff --git a/superset-frontend/packages/superset-ui-core/src/components/CodeSyntaxHighlighter/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/CodeSyntaxHighlighter/index.tsx
index 9235a3e9e1..0ca6f6c590 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/CodeSyntaxHighlighter/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/CodeSyntaxHighlighter/index.tsx
@@ -20,7 +20,7 @@ import { useEffect, useState } from 'react';
import SyntaxHighlighterBase from 'react-syntax-highlighter/dist/cjs/light';
import github from 'react-syntax-highlighter/dist/cjs/styles/hljs/github';
import tomorrow from 'react-syntax-highlighter/dist/cjs/styles/hljs/tomorrow-night';
-import { useTheme, isThemeDark } from '@superset-ui/core';
+import { isThemeDark, useTheme } from '@apache-superset/core/ui';
export type SupportedLanguage = 'sql' | 'htmlbars' | 'markdown' | 'json';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.tsx b/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.tsx
index 9d82370788..bcb00f7abc 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Collapse/Collapse.tsx
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Collapse as AntdCollapse } from 'antd';
import type { CollapseProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Collapse/CollapseLabelInModal.tsx b/superset-frontend/packages/superset-ui-core/src/components/Collapse/CollapseLabelInModal.tsx
index 6d605a639b..d0a5d39cd3 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Collapse/CollapseLabelInModal.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Collapse/CollapseLabelInModal.tsx
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme, css } from '@superset-ui/core';
+import { useTheme, css } from '@apache-superset/core/ui';
import { Typography } from '@superset-ui/core/components/Typography';
import { Icons } from '@superset-ui/core/components';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/ConfirmModal.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/ConfirmModal.test.tsx
index 9a153a0899..65df48b140 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/ConfirmModal.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/ConfirmModal.test.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { render, screen, userEvent } from '@superset-ui/core/spec';
-import { ThemeProvider, supersetTheme } from '@superset-ui/core';
+import { ThemeProvider, supersetTheme } from '@apache-superset/core/ui';
import { ConfirmModal } from '.';
const defaultProps = {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/index.tsx
index ee26403ee5..51fb11395b 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ConfirmModal/index.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
+import { t } from '@superset-ui/core';
import { Icons, Modal, Typography, Button } from '@superset-ui/core/components';
import type { FC, ReactElement, ReactNode } from 'react';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx
index 71f4545eba..15df60cb25 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/CronPicker/index.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import ReactCronPicker from 'react-js-cron';
import type { Locale, CronProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DatePicker/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DatePicker/index.tsx
index efcdad155c..e26c614043 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DatePicker/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DatePicker/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { DatePicker as AntdDatePicker } from 'antd';
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import type { DatePickerProps, RangePickerProps } from './types';
export const DatePicker = (props: DatePickerProps) => (
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DeleteModal/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DeleteModal/index.tsx
index 9bbe0213d0..2c5efd2f87 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DeleteModal/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DeleteModal/index.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { useState, useRef, useEffect, ChangeEvent } from 'react';
import { FormLabel } from '../Form';
import { Input, InputRef } from '../Input';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Divider/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Divider/index.tsx
index 74b5b85f73..c8e6a85b26 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Divider/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Divider/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Divider as AntdDivider } from 'antd';
import type { DividerProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Dropdown/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Dropdown/index.tsx
index 11741bed6f..19ef2d74bf 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Dropdown/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Dropdown/index.tsx
@@ -19,7 +19,7 @@
import { ReactElement, cloneElement } from 'react';
import { Dropdown as AntdDropdown, DropdownProps } from 'antd';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import {
IconOrientation,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
index 7ad8d3867c..e3ac5aa9b6 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownButton/index.tsx
@@ -18,7 +18,7 @@
*/
import { Dropdown } from 'antd';
import { kebabCase } from 'lodash';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Tooltip } from '../Tooltip';
import type { DropdownButtonProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
index ad99b6b00f..7a92df392d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.stories.tsx
@@ -18,7 +18,7 @@
*/
import { useRef, useCallback, useState } from 'react';
import { isEqual } from 'lodash';
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Button } from '../Button';
import { Select } from '../Select';
import type { DropdownContainerProps, DropdownRef } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx
index 7429abc8d1..475a58d9fe 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DropdownContainer/DropdownContainer.tsx
@@ -30,7 +30,8 @@ import {
} from 'react';
import { Global } from '@emotion/react';
-import { css, t, useTheme, usePrevious } from '@superset-ui/core';
+import { t, usePrevious } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { useResizeDetector } from 'react-resize-detector';
import { Badge, Icons, Button, Tooltip, Popover } from '..';
import { DropdownContainerProps, DropdownItem, DropdownRef } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
index dff597f3fa..7a6ac61669 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/index.tsx
@@ -25,7 +25,8 @@ import {
useLayoutEffect,
useState,
} from 'react';
-import { css, SupersetTheme, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import { useResizeDetector } from 'react-resize-detector';
import { Tooltip } from '../Tooltip';
import { Input } from '../Input';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx
index 04888923be..a73c935de3 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/EditableTitle/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { useEffect, useState, useRef } from 'react';
import cx from 'classnames';
import { Tooltip } from '../Tooltip';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
index c8251be11a..3d8d3d43a7 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/EmptyState/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode, SyntheticEvent } from 'react';
-import { styled, css, SupersetTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, SupersetTheme } from '@apache-superset/core/ui';
// Importing svg images
import FilterResultsImage from './svgs/filter-results.svg';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/FaveStar/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/FaveStar/index.tsx
index 24aba3d5c0..b3c3e37946 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/FaveStar/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/FaveStar/index.tsx
@@ -19,7 +19,8 @@
import { useCallback, useEffect, MouseEvent } from 'react';
-import { css, t, styled, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '../Tooltip';
import type { FaveStarProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Flex/Flex.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/Flex/Flex.stories.tsx
index d666ee920d..553a6603b7 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Flex/Flex.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Flex/Flex.stories.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Flex } from '.';
import type { FlexProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Form/FormItem.tsx b/superset-frontend/packages/superset-ui-core/src/components/Form/FormItem.tsx
index 31e8b740a6..77f59d9046 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Form/FormItem.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Form/FormItem.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { Form } from 'antd';
-import { styled } from '../../theme';
+import { styled } from '@apache-superset/core/ui';
export const FormItem = styled(Form.Item)`
${({ theme }) => `
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Form/FormLabel.tsx b/superset-frontend/packages/superset-ui-core/src/components/Form/FormLabel.tsx
index f6b3fcbdfd..209312ae65 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Form/FormLabel.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Form/FormLabel.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
export type FormLabelProps = {
children: ReactNode;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Form/LabeledErrorBoundInput.tsx b/superset-frontend/packages/superset-ui-core/src/components/Form/LabeledErrorBoundInput.tsx
index b768c764cc..b8f1dc1ef4 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Form/LabeledErrorBoundInput.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Form/LabeledErrorBoundInput.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Button, Icons, InfoTooltip, Tooltip, Flex } from '..';
import { Input } from '../Input';
import { FormLabel } from './FormLabel';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/IconButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/IconButton/index.tsx
index b8b8a66f3b..e2cef0ae68 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/IconButton/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/IconButton/index.tsx
@@ -18,7 +18,7 @@
*/
// eslint-disable-next-line
-import { SupersetTheme, css } from '@superset-ui/core';
+import { SupersetTheme, css } from '@apache-superset/core/ui';
import { Typography } from '../Typography';
import { Icons } from '../Icons';
import { Card } from '../Card';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx
index b350c8c24a..d254c8c4cc 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { Icons } from '@superset-ui/core/components/Icons';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { IconTooltip } from '.';
import type { IconTooltipProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Icons/BaseIcon.tsx b/superset-frontend/packages/superset-ui-core/src/components/Icons/BaseIcon.tsx
index 18250f454b..99374dfcc7 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Icons/BaseIcon.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Icons/BaseIcon.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css, useTheme, getFontSize } from '../..';
+import { css, useTheme, getFontSize } from '@apache-superset/core/ui';
import { AntdIconType, BaseIconProps, CustomIconType, IconType } from './types';
const genAriaLabel = (fileName: string) => {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Icons/Icons.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/Icons/Icons.stories.tsx
index b008f77606..061c2609c6 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Icons/Icons.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Icons/Icons.stories.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { useState } from 'react';
-import { styled, supersetTheme } from '@superset-ui/core';
+import { styled, supersetTheme } from '@apache-superset/core/ui';
import { Input } from '../Input';
import { Icons, IconNameType } from '.';
import type { IconType } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
index 9f8dd61790..b2268c22e2 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/InfoTooltip/index.tsx
@@ -19,7 +19,8 @@
import { KeyboardEvent, useMemo } from 'react';
import { SerializedStyles, CSSObject } from '@emotion/react';
import { kebabCase } from 'lodash';
-import { css, t, useTheme, getFontSize } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, useTheme, getFontSize } from '@apache-superset/core/ui';
import {
CloseCircleOutlined,
InfoCircleOutlined,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx
index 6c37e1d637..6b311e8808 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Label/index.tsx
@@ -18,7 +18,7 @@
*/
import { Tag } from '@superset-ui/core/components/Tag';
import { css } from '@emotion/react';
-import { useTheme, getColorVariants } from '@superset-ui/core';
+import { useTheme, getColorVariants } from '@apache-superset/core/ui';
import { DatasetTypeLabel } from './reusable/DatasetTypeLabel';
import { PublishedLabel } from './reusable/PublishedLabel';
import type { LabelProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/DatasetTypeLabel.tsx b/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/DatasetTypeLabel.tsx
index a7d96921f6..eb3866aa73 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/DatasetTypeLabel.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/DatasetTypeLabel.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { Icons } from '@superset-ui/core/components/Icons';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Label } from '..';
// Define the prop types for DatasetTypeLabel
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/PublishedLabel.tsx b/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/PublishedLabel.tsx
index ffe9fed531..ecb0977f1d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/PublishedLabel.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Label/reusable/PublishedLabel.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { Icons } from '@superset-ui/core/components/Icons';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Label } from '..';
// Define props for the PublishedLabel component
diff --git a/superset-frontend/packages/superset-ui-core/src/components/LastUpdated/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/LastUpdated/index.tsx
index 555378ca12..b989b1ad66 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/LastUpdated/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/LastUpdated/index.tsx
@@ -18,7 +18,8 @@
*/
import { useEffect, useState, FunctionComponent } from 'react';
-import { t, styled, css, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { Dayjs } from 'dayjs';
import { extendedDayjs } from '../../utils/dates';
import 'dayjs/plugin/updateLocale';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/List/index.ts b/superset-frontend/packages/superset-ui-core/src/components/List/index.ts
index 7eaccbb8c5..1927d288f7 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/List/index.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/List/index.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { List as AntdList } from 'antd';
import type { ListProps, ListItemProps, ListItemMetaProps } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/ImageLoader.tsx b/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/ImageLoader.tsx
index 94919dd054..8052041487 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/ImageLoader.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/ImageLoader.tsx
@@ -18,7 +18,8 @@
*/
import { useEffect, useState, DetailedHTMLProps, HTMLAttributes } from 'react';
-import { styled, logging } from '@superset-ui/core';
+import { logging } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
export type BackgroundPosition = 'top' | 'bottom';
interface ImageContainerProps {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/index.tsx
index 197659535f..098aeb210f 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ListViewCard/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { FC } from 'react';
-import { styled, useTheme, css } from '@superset-ui/core';
+import { styled, useTheme, css } from '@apache-superset/core/ui';
import { Skeleton } from '../Skeleton';
import { Card } from '../Card';
import { CertifiedBadge } from '../CertifiedBadge';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Loading/index.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/Loading/index.test.tsx
index 6b0449a442..e43a59bed6 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Loading/index.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Loading/index.test.tsx
@@ -18,7 +18,7 @@
*/
import { render, screen } from '@superset-ui/core/spec';
-import * as themeModule from '../../theme';
+import * as themeModule from '@apache-superset/core/ui/theme';
import { Loading } from '.';
// Mock the loading SVG import since it's a file stub in tests
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Loading/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Loading/index.tsx
index d37e39a522..9202867294 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Loading/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Loading/index.tsx
@@ -18,7 +18,7 @@
*/
import cls from 'classnames';
-import { styled, useTheme } from '../../theme';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { Loading as LoaderSvg } from '../assets';
import type { LoadingProps, SizeOption } from './types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Menu/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Menu/index.tsx
index f37bc8dd95..9bdbcd34f6 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Menu/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Menu/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { ReactElement } from 'react';
import { Menu as AntdMenu } from 'antd';
import { MenuProps as AntdMenuProps } from 'antd/es/menu';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Metadata/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Metadata/index.tsx
index 06ef917074..e4328578e8 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Metadata/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Metadata/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
const MetadataWrapper = styled.div`
display: flex;
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentConfig.tsx b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentConfig.tsx
index 3216ceab80..6a88d81136 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentConfig.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/ContentConfig.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ensureIsArray, styled, t } from '@superset-ui/core';
+import { ensureIsArray, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { ContentType, MetadataType } from '.';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.stories.tsx
index 5da711270d..8f7d0d700d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.stories.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { useResizeDetector } from 'react-resize-detector';
import MetadataBar, { MetadataBarProps, MetadataType } from '.';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.test.tsx
index 778df92a27..1a42c264ff 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.test.tsx
@@ -18,7 +18,8 @@
*/
import { render, screen, userEvent, within } from '@superset-ui/core/spec';
import * as resizeDetector from 'react-resize-detector';
-import { supersetTheme, hexToRgb } from '@superset-ui/core';
+import { hexToRgb } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import MetadataBar, {
MIN_NUMBER_ITEMS,
MAX_NUMBER_ITEMS,
diff --git a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
index e09e8ba56a..3f0f0e3a07 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/MetadataBar/MetadataBar.tsx
@@ -19,7 +19,7 @@
import { useCallback, useEffect, useRef, useState } from 'react';
import { useResizeDetector } from 'react-resize-detector';
import { uniqWith } from 'lodash';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Tooltip } from '../Tooltip';
import { TooltipPlacement } from '../Tooltip/types';
import { ContentType } from './ContentType';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
index 4b63a098c5..1788dc95b2 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.tsx
@@ -18,7 +18,8 @@
*/
import { isValidElement, cloneElement, useMemo, useRef, useState } from 'react';
import { isNil } from 'lodash';
-import { css, styled, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { Modal as AntdModal, ModalProps as AntdModalProps } from 'antd';
import { Resizable } from 're-resizable';
import Draggable, {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
index 07b608aa8e..cd523ea6ea 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode, ReactElement } from 'react';
-import { css, SupersetTheme, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import type { DropdownProps } from '../Dropdown/types';
import type { TooltipPlacement } from '../Tooltip/types';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/PopoverDropdown/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/PopoverDropdown/index.tsx
index a6ea94b77b..927e38399f 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/PopoverDropdown/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/PopoverDropdown/index.tsx
@@ -18,7 +18,7 @@
*/
import { Key } from 'react';
import cx from 'classnames';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Dropdown } from '../Dropdown';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/PopoverSection/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/PopoverSection/index.tsx
index 488778905e..200705247d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/PopoverSection/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/PopoverSection/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { MouseEventHandler, ReactNode } from 'react';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '../Tooltip';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ProgressBar/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ProgressBar/index.tsx
index 34ed3bcb26..b08caada3f 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ProgressBar/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ProgressBar/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Progress as AntdProgress } from 'antd';
import { ProgressProps } from 'antd/es/progress/progress';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Radio/Radio.stories.tsx b/superset-frontend/packages/superset-ui-core/src/components/Radio/Radio.stories.tsx
index 65ba411f1c..c0453ed038 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Radio/Radio.stories.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Radio/Radio.stories.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Space } from '../Space';
import { Radio, type RadioProps, type RadioGroupWrapperProps } from '.';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/RefreshLabel/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/RefreshLabel/index.tsx
index f7a89c5bc3..0489fad65d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/RefreshLabel/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/RefreshLabel/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { MouseEventHandler, forwardRef } from 'react';
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import type { IconType } from '@superset-ui/core/components/Icons/types';
import { Tooltip } from '../Tooltip';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Select/styles.tsx b/superset-frontend/packages/superset-ui-core/src/components/Select/styles.tsx
index 0f83fd8d60..8eaa5d1eef 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Select/styles.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Select/styles.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Select } from 'antd';
import { Icons } from '@superset-ui/core/components/Icons';
import { Spin } from '../Spin';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Table/VirtualTable.tsx b/superset-frontend/packages/superset-ui-core/src/components/Table/VirtualTable.tsx
index cdaee0f35e..bbf94a1c47 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Table/VirtualTable.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Table/VirtualTable.tsx
@@ -26,7 +26,8 @@ import classNames from 'classnames';
import { useResizeDetector } from 'react-resize-detector';
import { useEffect, useRef, useState, useCallback, CSSProperties } from 'react';
import { VariableSizeGrid as Grid } from 'react-window';
-import { useTheme, styled, safeHtmlSpan } from '@superset-ui/core';
+import { safeHtmlSpan } from '@superset-ui/core';
+import { useTheme, styled } from '@apache-superset/core/ui';
import { TableSize, ETableAction } from './index';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/ActionCell/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/ActionCell/index.tsx
index b1017f6df8..e14852255d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/ActionCell/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/ActionCell/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { useState, useEffect } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { MenuDotsDropdown } from '../../../Dropdown';
import { IconOrientation } from '../../../Dropdown/types';
import { Menu, MenuProps } from '../../../Menu';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/index.tsx
index a9ef5d640b..1e30e9f352 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '../../../..';
+import { styled } from '@apache-superset/core/ui';
import { Constants } from '../../..';
const GrayCell = styled.span`
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx b/superset-frontend/packages/superset-ui-core/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
index 4b48f2bf46..80c1cb7d4c 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Table/header-renderers/HeaderWithRadioGroup.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { useState } from 'react';
-import { css, useTheme } from '../../..';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Icons, Radio, Popover } from '../..';
export interface HeaderWithRadioGroupProps {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Table/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Table/index.tsx
index 1e2782be27..ce6b01d1ec 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Table/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Table/index.tsx
@@ -21,7 +21,8 @@ import { useState, useEffect, useRef, Key, FC } from 'react';
import { Table as AntTable } from 'antd';
import { ColumnsType, TableProps as AntTableProps } from 'antd/es/table';
import { PaginationProps } from 'antd/es/pagination';
-import { t, useTheme, logging, styled } from '@superset-ui/core';
+import { t, logging } from '@superset-ui/core';
+import { useTheme, styled } from '@apache-superset/core/ui';
import { Loading } from '@superset-ui/core/components';
import { RowSelectionType } from 'antd/es/table/interface';
import InteractiveTableUtils from './utils/InteractiveTableUtils';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/TableCollection/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/TableCollection/index.tsx
index ef0e58a6ea..e52de1450f 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/TableCollection/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/TableCollection/index.tsx
@@ -25,7 +25,7 @@ import {
TableBodyPropGetter,
TablePropGetter,
} from 'react-table';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Table, TableSize } from '@superset-ui/core/components/Table';
import { TableRowSelection, SorterResult } from 'antd/es/table/interface';
import { mapColumns, mapRows } from './utils';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx b/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
index a3d87f7a16..4544013b34 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/TableView/TableView.tsx
@@ -18,7 +18,7 @@
*/
import { memo, useEffect, useRef, useMemo, useCallback } from 'react';
import { isEqual } from 'lodash';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { useFilters, usePagination, useSortBy, useTable } from 'react-table';
import { Empty } from '@superset-ui/core/components';
import TableCollection from '@superset-ui/core/components/TableCollection';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx b/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
index edc50623f7..2d99a0593b 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Tabs/Tabs.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled, useTheme } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
// eslint-disable-next-line no-restricted-imports
import { Tabs as AntdTabs, TabsProps as AntdTabsProps } from 'antd';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/ThemedAgGridReact.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/ThemedAgGridReact.test.tsx
index e534f920e5..21622b6d79 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/ThemedAgGridReact.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/ThemedAgGridReact.test.tsx
@@ -19,13 +19,13 @@
import { render, screen } from '@superset-ui/core/spec';
import { AgGridReact } from 'ag-grid-react';
import { createRef } from 'react';
-import { ThemeProvider, supersetTheme } from '../../theme';
+import { ThemeProvider, supersetTheme } from '@apache-superset/core';
+import * as themeUtils from '@apache-superset/core/ui/theme/utils/themeUtils';
import { ThemedAgGridReact } from './index';
-import * as themeUtils from '../../theme/utils/themeUtils';
// Mock useThemeMode hook
-jest.mock('../../theme/utils/themeUtils', () => ({
- ...jest.requireActual('../../theme/utils/themeUtils'),
+jest.mock('@apache-superset/core/ui/theme/utils/themeUtils', () => ({
+ ...jest.requireActual('@apache-superset/core/ui/theme/utils/themeUtils'),
useThemeMode: jest.fn(() => false), // Default to light mode
}));
diff --git a/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/index.tsx
index b6eb12f934..7767fbaf03 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/index.tsx
@@ -24,8 +24,7 @@ import {
colorSchemeDark,
colorSchemeLight,
} from 'ag-grid-community';
-import { useTheme } from '../../theme';
-import { useThemeMode } from '../../theme/utils/themeUtils';
+import { useTheme, useThemeMode } from '@apache-superset/core/ui';
// Note: With ag-grid v34's new theming API, CSS files are injected automatically
// Do NOT import 'ag-grid-community/styles/ag-grid.css' or theme CSS files
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Timer/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Timer/index.tsx
index 0eaa8e456b..f9d9a42ed4 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Timer/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Timer/index.tsx
@@ -17,8 +17,8 @@
* under the License.
*/
import { useEffect, useRef, useState } from 'react';
+import { useTheme } from '@apache-superset/core/ui';
import { now, fDuration } from '../../utils/dates';
-import { useTheme } from '../..';
import { Label, Icons, type LabelType } from '..';
export interface TimerProps {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/TruncatedList/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/TruncatedList/index.tsx
index 3d4251aeb8..22622ff975 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/TruncatedList/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/TruncatedList/index.tsx
@@ -19,7 +19,8 @@
import { ReactNode, Key, useMemo } from 'react';
-import { styled, t, useTruncation } from '@superset-ui/core';
+import { t, useTruncation } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Tooltip } from '@superset-ui/core/components';
export type TruncatedListProps<ListItemType> = {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/Typography/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Typography/index.tsx
index 47fd0f90e3..7b5a1bfe45 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/Typography/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/Typography/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Typography as AntdTypography } from 'antd';
export type { TitleProps } from 'antd/es/typography/Title';
diff --git a/superset-frontend/packages/superset-ui-core/src/components/WarningIconWithTooltip/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/WarningIconWithTooltip/index.tsx
index 607eed6f7c..cb90977e03 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/WarningIconWithTooltip/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/WarningIconWithTooltip/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Icons, type IconType, SafeMarkdown, Tooltip } from '..';
export interface WarningIconWithTooltipProps {
diff --git a/superset-frontend/packages/superset-ui-core/src/components/index.ts b/superset-frontend/packages/superset-ui-core/src/components/index.ts
index 55829c0b1c..64c0a6db1d 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/index.ts
+++ b/superset-frontend/packages/superset-ui-core/src/components/index.ts
@@ -28,7 +28,6 @@ export {
ConfirmStatusChange,
type ConfirmStatusChangeProps,
} from './ConfirmStatusChange';
-export { Alert, type AlertProps } from './Alert';
export { CertifiedBadge } from './CertifiedBadge';
export * from './Icons';
export * from './Timer';
diff --git a/superset-frontend/packages/superset-ui-core/src/index.ts b/superset-frontend/packages/superset-ui-core/src/index.ts
index ceb5d08c90..5c0e70e31f 100644
--- a/superset-frontend/packages/superset-ui-core/src/index.ts
+++ b/superset-frontend/packages/superset-ui-core/src/index.ts
@@ -28,7 +28,6 @@ export * from './number-format';
export * from './time-format';
export * from './dimension';
export * from './color';
-export * from './theme';
export * from './validator';
export * from './chart';
export * from './chart-composition';
diff --git a/superset-frontend/packages/superset-ui-core/src/spec/index.tsx b/superset-frontend/packages/superset-ui-core/src/spec/index.tsx
index 13e280b47b..34d0d7a03d 100644
--- a/superset-frontend/packages/superset-ui-core/src/spec/index.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/spec/index.tsx
@@ -20,7 +20,7 @@ import userEvent from '@testing-library/user-event';
import { ReactElement } from 'react';
import { render, RenderOptions } from '@testing-library/react';
import '@testing-library/jest-dom';
-import { themeObject } from '@superset-ui/core';
+import { themeObject } from '@apache-superset/core/ui';
// Define the wrapper component outside
const AllTheProviders = ({ children }: { children: React.ReactNode }) => (
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/Theme.test.tsx b/superset-frontend/packages/superset-ui-core/src/theme/Theme.test.tsx
deleted file mode 100644
index 7b16e59289..0000000000
--- a/superset-frontend/packages/superset-ui-core/src/theme/Theme.test.tsx
+++ /dev/null
@@ -1,788 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { theme as antdThemeImport } from 'antd';
-import { Theme } from './Theme';
-import { AnyThemeConfig, ThemeAlgorithm } from './types';
-
-// Mock emotion's cache to avoid actual DOM operations
-jest.mock('@emotion/cache', () => ({
- __esModule: true,
- default: jest.fn().mockReturnValue({}),
-}));
-
-describe('Theme', () => {
- beforeEach(() => {
- jest.clearAllMocks();
- });
-
- describe('json', () => {
- it('serializes the theme configuration to a JSON string', () => {
- const theme = Theme.fromConfig({
- token: {
- colorPrimary: '#ff0000',
- },
- algorithm: antdThemeImport.darkAlgorithm,
- });
-
- const jsonString = theme.json();
- const parsedJson = JSON.parse(jsonString);
-
- expect(parsedJson.token?.colorPrimary).toBe('#ff0000');
- expect(parsedJson.algorithm).toBe(ThemeAlgorithm.DARK);
- });
- });
-
- describe('fromConfig', () => {
- it('creates a theme with Ant Design defaults when no config is provided', () => {
- const theme = Theme.fromConfig();
-
- // Verify Ant Design default tokens are set
- expect(theme.theme.colorPrimary).toBeDefined();
- expect(theme.theme.fontFamily).toBeDefined();
-
- // Verify the theme is initialized with semantic color tokens
- expect(theme.theme.colorText).toBeDefined();
- expect(theme.theme.colorBgBase).toBeDefined();
- });
-
- it('creates a theme with custom tokens when provided', () => {
- const customConfig: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff0000',
- fontFamily: 'CustomFont, sans-serif',
- },
- };
-
- const theme = Theme.fromConfig(customConfig);
-
- // Verify custom primary color is set
- expect(theme.theme.colorPrimary).toBe('#ff0000');
-
- // Verify custom font family is set
- expect(theme.theme.fontFamily).toBe('CustomFont, sans-serif');
-
- // Unspecified values will use Ant Design defaults
- expect(theme.theme.colorError).toBeDefined();
- });
-
- it('creates a theme with dark mode when dark algorithm is specified', () => {
- const darkConfig: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const theme = Theme.fromConfig(darkConfig);
-
- // Verify dark mode by using the serialized config from the public method
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
- });
-
- describe('setConfig', () => {
- it('updates theme with a new configuration', () => {
- const theme = Theme.fromConfig();
- const initialPrimaryColor = theme.theme.colorPrimary;
-
- // Update with new config
- theme.setConfig({
- token: {
- colorPrimary: '#0000ff',
- },
- });
-
- // Verify the theme was updated
- expect(theme.theme.colorPrimary).toBe('#0000ff');
- expect(theme.theme.colorPrimary).not.toBe(initialPrimaryColor);
- });
-
- it('preserves default tokens when updating with partial config', () => {
- const theme = Theme.fromConfig();
- const initialErrorColor = theme.theme.colorError;
-
- // Update with new config that doesn't specify error color
- theme.setConfig({
- token: {
- colorPrimary: '#0000ff',
- },
- });
-
- // Verify the error color is preserved
- expect(theme.theme.colorError).toBe(initialErrorColor);
- });
-
- it('correctly applies algorithm changes', () => {
- const theme = Theme.fromConfig();
-
- // Change to dark mode via config
- theme.setConfig({
- algorithm: antdThemeImport.darkAlgorithm,
- });
-
- // Verify the algorithm was updated
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
- });
-
- describe('toggleDarkMode', () => {
- it('switches to dark algorithm when toggling dark mode on', () => {
- const theme = Theme.fromConfig();
-
- // Toggle dark mode on
- theme.toggleDarkMode(true);
-
- // Verify dark algorithm is used
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('switches to default algorithm when toggling dark mode off', () => {
- // Start with dark theme
- const theme = Theme.fromConfig({
- algorithm: antdThemeImport.darkAlgorithm,
- });
-
- // Toggle dark mode off
- theme.toggleDarkMode(false);
-
- // Verify default algorithm is used
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- });
-
- it('preserves other algorithms when toggling dark mode', () => {
- // Start with compact and dark algorithms
- const theme = Theme.fromConfig({
- algorithm: [
- antdThemeImport.compactAlgorithm,
- antdThemeImport.darkAlgorithm,
- ],
- });
-
- // Toggle dark mode off
- theme.toggleDarkMode(false);
-
- // Verify default algorithm replaces dark but compact is preserved
- const serialized = theme.toSerializedConfig();
-
- expect(Array.isArray(serialized.algorithm)).toBe(true);
- expect(serialized.algorithm).toContain(ThemeAlgorithm.DEFAULT);
- expect(serialized.algorithm).toContain(ThemeAlgorithm.COMPACT);
- expect(serialized.algorithm).not.toContain(ThemeAlgorithm.DARK);
- });
- });
-
- describe('toSerializedConfig', () => {
- it('serializes theme config correctly', () => {
- const theme = Theme.fromConfig({
- token: {
- colorPrimary: '#ff0000',
- },
- algorithm: antdThemeImport.darkAlgorithm,
- });
-
- const serialized = theme.toSerializedConfig();
-
- expect(serialized.token?.colorPrimary).toBe('#ff0000');
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
- });
-
- describe('fromConfig with baseTheme', () => {
- it('applies base theme tokens under the main config', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff0000',
- colorError: '#00ff00',
- fontFamily: 'BaseFont',
- },
- };
-
- const userConfig: AnyThemeConfig = {
- token: {
- colorPrimary: '#0000ff',
- },
- };
-
- const theme = Theme.fromConfig(userConfig, baseTheme);
-
- // User config overrides base theme
- expect(theme.theme.colorPrimary).toBe('#0000ff');
-
- // Base theme tokens are preserved when not overridden
- expect(theme.theme.colorError).toBe('#00ff00');
- expect(theme.theme.fontFamily).toBe('BaseFont');
- });
-
- it('applies base theme when no user config is provided', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff0000',
- fontFamily: 'TestFont',
- },
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const theme = Theme.fromConfig(undefined, baseTheme);
-
- // Color may be transformed by dark algorithm, check fontFamily instead
- expect(theme.theme.fontFamily).toBe('TestFont');
-
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('handles empty config with base theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff0000',
- },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const emptyConfig: AnyThemeConfig = {};
-
- const theme = Theme.fromConfig(emptyConfig, baseTheme);
-
- // Base theme tokens should be applied
- expect(theme.theme.colorPrimary).toBe('#ff0000');
-
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- });
-
- it('merges algorithms correctly with base theme', () => {
- const baseTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.compactAlgorithm,
- };
-
- const userConfig: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const theme = Theme.fromConfig(userConfig, baseTheme);
-
- // User algorithm should override base algorithm
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('merges component overrides with base theme', () => {
- const baseTheme: AnyThemeConfig = {
- components: {
- Button: {
- colorPrimary: '#basebutton',
- },
- Input: {
- colorBorder: '#baseinput',
- },
- },
- };
-
- const userConfig: AnyThemeConfig = {
- components: {
- Button: {
- colorPrimary: '#userbutton',
- },
- },
- };
-
- const theme = Theme.fromConfig(userConfig, baseTheme);
- const serialized = theme.toSerializedConfig();
-
- // User component config overrides base
- expect(serialized.components?.Button?.colorPrimary).toBe('#userbutton');
-
- // Base component config preserved when not overridden
- expect(serialized.components?.Input?.colorBorder).toBe('#baseinput');
- });
-
- it('handles undefined config and undefined base theme', () => {
- const theme = Theme.fromConfig(undefined, undefined);
-
- // Should get Ant Design defaults
- expect(theme.theme.colorPrimary).toBeDefined();
- expect(theme.theme.fontFamily).toBeDefined();
- });
-
- it('preserves custom tokens in base theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff0000',
- // Custom superset-specific tokens
- brandLogoAlt: 'CustomLogo',
- menuHoverBackgroundColor: '#00ff00',
- } as Record<string, any>,
- };
-
- const theme = Theme.fromConfig({}, baseTheme);
-
- // Standard token
- expect(theme.theme.colorPrimary).toBe('#ff0000');
-
- // Custom tokens should be preserved
- expect((theme.theme as any).brandLogoAlt).toBe('CustomLogo');
- expect((theme.theme as any).menuHoverBackgroundColor).toBe('#00ff00');
- });
- });
-
- describe('edge cases with base theme and dark mode', () => {
- it('correctly applies base theme tokens in dark mode', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#1890ff',
- fontFamily: 'TestFont',
- },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const baseThemeDark: AnyThemeConfig = {
- ...baseTheme,
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- // Simulate light mode with base theme
- const lightTheme = Theme.fromConfig({}, baseTheme);
- expect(lightTheme.theme.colorPrimary).toBe('#1890ff');
- expect(lightTheme.theme.fontFamily).toBe('TestFont');
-
- // Simulate dark mode with base theme dark
- const darkTheme = Theme.fromConfig({}, baseThemeDark);
- // Dark algorithm transforms colors, but fontFamily should be preserved
- expect(darkTheme.theme.fontFamily).toBe('TestFont');
-
- // Verify the algorithm is different
- const lightSerialized = lightTheme.toSerializedConfig();
- const darkSerialized = darkTheme.toSerializedConfig();
- expect(lightSerialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- expect(darkSerialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('handles switching from custom theme back to base theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#1890ff',
- },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- // First apply custom theme
- const customConfig: AnyThemeConfig = {
- token: {
- colorPrimary: '#52c41a',
- },
- };
- const themeWithCustom = Theme.fromConfig(customConfig, baseTheme);
- expect(themeWithCustom.theme.colorPrimary).toBe('#52c41a');
-
- // Then switch back to empty config (simulating removal of custom theme)
- const themeWithEmpty = Theme.fromConfig({}, baseTheme);
- expect(themeWithEmpty.theme.colorPrimary).toBe('#1890ff');
-
- // Verify they produce different outputs
- expect(themeWithCustom.theme.colorPrimary).not.toBe(
- themeWithEmpty.theme.colorPrimary,
- );
- });
-
- it('handles algorithm-only config with base theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- fontFamily: 'TestFont',
- borderRadius: 8,
- },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- // Config that only specifies algorithm (common for THEME_DARK)
- const algorithmOnlyConfig: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const theme = Theme.fromConfig(algorithmOnlyConfig, baseTheme);
-
- // Should have base theme tokens
- expect(theme.theme.fontFamily).toBe('TestFont');
- expect(theme.theme.borderRadius).toBe(8);
-
- // Should have user's algorithm
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
- });
-
- describe('base theme integration tests', () => {
- it('merges base theme tokens with empty user theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- colorError: '#e04355',
- fontFamily: 'Inter, Helvetica',
- },
- };
-
- const userTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
-
- expect(theme.theme.colorPrimary).toBe('#2893B3');
- expect(theme.theme.colorError).toBe('#e04355');
- expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
-
- // Should have user's algorithm
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- });
-
- it('allows user theme to override specific base theme tokens', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- colorError: '#e04355',
- fontFamily: 'Inter, Helvetica',
- borderRadius: 4,
- },
- };
-
- const userTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.defaultAlgorithm,
- token: {
- colorPrimary: '#123456', // Override primary color
- // Leave other tokens from base
- },
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
-
- // User override should win
- expect(theme.theme.colorPrimary).toBe('#123456');
-
- // Base theme tokens should be preserved
- expect(theme.theme.colorError).toBe('#e04355');
- expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
- expect(theme.theme.borderRadius).toBe(4);
- });
-
- it('handles base theme with dark algorithm correctly', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- fontFamily: 'Inter, Helvetica',
- },
- };
-
- const baseThemeDark: AnyThemeConfig = {
- ...baseTheme,
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const userDarkTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const theme = Theme.fromConfig(userDarkTheme, baseThemeDark);
-
- // Should have base tokens
- expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
-
- // Should be in dark mode
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('works with real-world Superset base theme configuration', () => {
- // Simulate actual Superset base theme (THEME_DEFAULT/THEME_DARK from config)
- const supersetBaseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- colorError: '#e04355',
- colorWarning: '#fcc700',
- colorSuccess: '#5ac189',
- colorInfo: '#66bcfe',
- fontFamily: "'Inter', Helvetica, Arial",
- fontFamilyCode: "'Fira Code', 'Courier New', monospace",
- },
- };
-
- // Simulate THEME_DEFAULT from config
- const themeDefault: AnyThemeConfig = {
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- // Simulate THEME_DARK from config
- const themeDark: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- // Test light mode
- const lightTheme = Theme.fromConfig(themeDefault, supersetBaseTheme);
- expect(lightTheme.theme.colorPrimary).toBe('#2893B3');
- expect(lightTheme.theme.fontFamily).toBe("'Inter', Helvetica, Arial");
-
- // Test dark mode
- const darkTheme = Theme.fromConfig(themeDark, {
- ...supersetBaseTheme,
- algorithm: antdThemeImport.darkAlgorithm,
- });
- expect(darkTheme.theme.fontFamily).toBe("'Inter', Helvetica, Arial");
-
- const darkSerialized = darkTheme.toSerializedConfig();
- expect(darkSerialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('handles component overrides in base theme', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- },
- components: {
- Button: {
- primaryColor: '#custom-button',
- borderRadius: 8,
- },
- },
- };
-
- const userTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
-
- // Should preserve component overrides
- const serialized = theme.toSerializedConfig();
- expect(serialized.components?.Button?.primaryColor).toBe(
- '#custom-button',
- );
- expect(serialized.components?.Button?.borderRadius).toBe(8);
- });
-
- it('properly handles algorithm property override', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const userTheme: AnyThemeConfig = {
- algorithm: antdThemeImport.darkAlgorithm,
- token: {
- borderRadius: 8,
- },
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
- const serialized = theme.toSerializedConfig();
-
- // User algorithm should override base algorithm
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
-
- // Both base and user tokens should be merged
- expect(serialized.token?.colorPrimary).toBeTruthy();
- expect(serialized.token?.borderRadius).toBe(8);
- });
-
- it('handles cssVar, hashed and inherit properties correctly', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- },
- cssVar: true,
- hashed: false,
- };
-
- const userTheme: AnyThemeConfig = {
- token: {
- borderRadius: 8,
- },
- inherit: true,
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
- const serialized = theme.toSerializedConfig();
-
- // User properties override/add to base
- expect(serialized.inherit).toBe(true);
- expect(serialized.cssVar).toBe(true);
- expect(serialized.hashed).toBe(false);
-
- // Tokens are still merged
- expect(serialized.token?.colorPrimary).toBeTruthy();
- expect(serialized.token?.borderRadius).toBe(8);
- });
-
- it('merges nested component styles correctly', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- fontFamily: 'BaseFont',
- },
- components: {
- Button: {
- colorPrimary: '#basebutton',
- fontSize: 14,
- },
- Input: {
- colorBorder: '#baseinput',
- },
- },
- };
-
- const userTheme: AnyThemeConfig = {
- token: {
- borderRadius: 8,
- },
- components: {
- Button: {
- fontSize: 16, // Override Button fontSize
- },
- Select: {
- colorBorder: '#userselect', // Add new component
- },
- },
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
- const serialized = theme.toSerializedConfig();
-
- // Tokens should be merged
- // Note: components present may affect color transformation
- expect(serialized.token?.colorPrimary).toBeTruthy();
- expect(serialized.token?.borderRadius).toBe(8);
- expect(serialized.token?.fontFamily).toBe('BaseFont');
-
- // Components should be merged (shallow merge per component)
- expect(serialized.components?.Button?.colorPrimary).toBe('#basebutton');
- expect(serialized.components?.Button?.fontSize).toBe(16); // User override
- expect(serialized.components?.Input?.colorBorder).toBe('#baseinput');
- expect(serialized.components?.Select?.colorBorder).toBe('#userselect');
- });
-
- it('setConfig replaces theme config entirely (does not preserve base theme)', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- fontFamily: 'Inter',
- },
- };
-
- const theme = Theme.fromConfig({}, baseTheme);
-
- expect(theme.theme.colorPrimary).toBe('#2893B3');
- expect(theme.theme.fontFamily).toBe('Inter');
-
- // Update config (simulating theme change)
- theme.setConfig({
- token: {
- colorPrimary: '#654321',
- },
- algorithm: antdThemeImport.darkAlgorithm,
- });
-
- // setConfig replaces the entire config, so base theme is NOT preserved
- // This is expected behavior - setConfig is for complete replacement
- expect(theme.theme.colorPrimary).toBeTruthy();
- // fontFamily reverts to Ant Design default since base theme is not reapplied
- expect(theme.theme.fontFamily).not.toBe('Inter');
- });
-
- it('minimal theme preserves ALL base theme tokens except overridden ones', () => {
- // Simulate a comprehensive base theme with many tokens
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- colorError: '#e04355',
- colorWarning: '#fcc700',
- colorSuccess: '#5ac189',
- colorInfo: '#66bcfe',
- fontFamily: 'Inter, Helvetica',
- fontSize: 14,
- borderRadius: 4,
- lineWidth: 1,
- controlHeight: 32,
- // Custom Superset tokens
- brandLogoAlt: 'CustomLogo',
- menuHoverBackgroundColor: '#eeeeee',
- } as Record<string, any>,
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- // Minimal theme that only overrides primary color and algorithm
- const minimalTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#ff05dd', // Only override this
- },
- algorithm: antdThemeImport.darkAlgorithm, // Change to dark
- };
-
- const theme = Theme.fromConfig(minimalTheme, baseTheme);
-
- // User's override should apply
- expect(theme.theme.colorPrimary).toBe('#ff05dd');
-
- // ALL base theme tokens should be preserved
- expect(theme.theme.colorError).toBe('#e04355');
- expect(theme.theme.colorWarning).toBe('#fcc700');
- expect(theme.theme.colorSuccess).toBe('#5ac189');
- expect(theme.theme.colorInfo).toBe('#66bcfe');
- expect(theme.theme.fontFamily).toBe('Inter, Helvetica');
- expect(theme.theme.fontSize).toBe(14);
- expect(theme.theme.borderRadius).toBe(4);
- expect(theme.theme.lineWidth).toBe(1);
- expect(theme.theme.controlHeight).toBe(32);
-
- // Custom tokens should also be preserved
- expect((theme.theme as any).brandLogoAlt).toBe('CustomLogo');
- expect((theme.theme as any).menuHoverBackgroundColor).toBe('#eeeeee');
-
- // Algorithm should be updated
- const serialized = theme.toSerializedConfig();
- expect(serialized.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('arrays in themes are replaced entirely, not merged by index', () => {
- const baseTheme: AnyThemeConfig = {
- token: {
- colorPrimary: '#2893B3',
- },
- algorithm: [
- antdThemeImport.compactAlgorithm,
- antdThemeImport.defaultAlgorithm,
- ],
- };
-
- const userTheme: AnyThemeConfig = {
- algorithm: [antdThemeImport.darkAlgorithm], // Replace with single item array
- };
-
- const theme = Theme.fromConfig(userTheme, baseTheme);
- const serialized = theme.toSerializedConfig();
-
- // User's array should completely replace base array
- expect(Array.isArray(serialized.algorithm)).toBe(true);
- expect(serialized.algorithm).toHaveLength(1);
- expect(serialized.algorithm).toContain(ThemeAlgorithm.DARK);
- expect(serialized.algorithm).not.toContain(ThemeAlgorithm.COMPACT);
- expect(serialized.algorithm).not.toContain(ThemeAlgorithm.DEFAULT);
- });
- });
-});
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/utils.test.ts b/superset-frontend/packages/superset-ui-core/src/theme/utils.test.ts
deleted file mode 100644
index dc9e1b938b..0000000000
--- a/superset-frontend/packages/superset-ui-core/src/theme/utils.test.ts
+++ /dev/null
@@ -1,352 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { theme as antdThemeImport } from 'antd';
-import {
- isSerializableConfig,
- deserializeThemeConfig,
- serializeThemeConfig,
- normalizeThemeConfig,
- getAntdConfig,
- getSystemColors,
-} from './utils';
-import {
- type AnyThemeConfig,
- type SerializableThemeConfig,
- type AntdThemeConfig,
- ThemeAlgorithm,
-} from './types';
-
-describe('Theme utilities', () => {
- describe('isSerializableConfig', () => {
- it('returns true when algorithm is undefined', () => {
- const config: AnyThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- };
-
- expect(isSerializableConfig(config)).toBe(true);
- });
-
- it('returns true when algorithm is a string', () => {
- const config: AnyThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.DARK,
- };
-
- expect(isSerializableConfig(config)).toBe(true);
- });
-
- it('returns true when algorithm is an array of strings', () => {
- const config: AnyThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: [ThemeAlgorithm.DARK, ThemeAlgorithm.COMPACT],
- };
-
- expect(isSerializableConfig(config)).toBe(true);
- });
-
- it('returns false when algorithm is a function', () => {
- const config: AnyThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- expect(isSerializableConfig(config)).toBe(false);
- });
-
- it('returns false when algorithm is an array containing a function', () => {
- const config: AnyThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: [
- antdThemeImport.darkAlgorithm,
- antdThemeImport.compactAlgorithm,
- ],
- };
-
- expect(isSerializableConfig(config)).toBe(false);
- });
- });
-
- describe('deserializeThemeConfig', () => {
- it('converts string algorithm to function reference', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.DARK,
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
- });
-
- it('converts array of string algorithms to function references', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: [ThemeAlgorithm.DARK, ThemeAlgorithm.COMPACT],
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(Array.isArray(result.algorithm)).toBe(true);
- expect(result.algorithm).toContain(antdThemeImport.darkAlgorithm);
- expect(result.algorithm).toContain(antdThemeImport.compactAlgorithm);
- });
-
- it('preserves other configuration properties', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.DARK,
- hashed: true,
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(result.token).toEqual({ colorPrimary: '#ff0000' });
- expect(result.hashed).toBe(true);
- });
-
- it('handles undefined algorithm', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
- });
-
- it('converts default algorithm string to function reference', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.DEFAULT,
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
- });
-
- it('converts compact algorithm string to function reference', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.COMPACT,
- };
-
- const result = deserializeThemeConfig(config);
-
- expect(result.algorithm).toBe(antdThemeImport.compactAlgorithm);
- });
- });
-
- describe('serializeThemeConfig', () => {
- it('converts function algorithm to string', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.algorithm).toBe(ThemeAlgorithm.DARK);
- });
-
- it('converts array of function algorithms to strings', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: [
- antdThemeImport.darkAlgorithm,
- antdThemeImport.compactAlgorithm,
- ],
- };
-
- const result = serializeThemeConfig(config);
-
- expect(Array.isArray(result.algorithm)).toBe(true);
- expect(result.algorithm).toContain(ThemeAlgorithm.DARK);
- expect(result.algorithm).toContain(ThemeAlgorithm.COMPACT);
- });
-
- it('preserves other configuration properties', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.darkAlgorithm,
- hashed: true,
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.token).toEqual({ colorPrimary: '#ff0000' });
- expect(result.hashed).toBe(true);
- });
-
- it('handles undefined algorithm', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.algorithm).toBeUndefined();
- });
-
- it('defaults to "default" for unknown algorithms', () => {
- const unknownAlgorithm = () => ({});
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- // @ts-ignore
- algorithm: unknownAlgorithm,
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- });
-
- it('converts default algorithm function to string', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.defaultAlgorithm,
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.algorithm).toBe(ThemeAlgorithm.DEFAULT);
- });
-
- it('converts compact algorithm function to string', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.compactAlgorithm,
- };
-
- const result = serializeThemeConfig(config);
-
- expect(result.algorithm).toBe(ThemeAlgorithm.COMPACT);
- });
-
- it('defaults each unknown algorithm in array to "default"', () => {
- const unknownAlgorithm = () => ({});
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- // @ts-ignore
- algorithm: [antdThemeImport.darkAlgorithm, unknownAlgorithm],
- };
-
- const result = serializeThemeConfig(config);
-
- expect(Array.isArray(result.algorithm)).toBe(true);
- expect(result.algorithm).toEqual([
- ThemeAlgorithm.DARK,
- ThemeAlgorithm.DEFAULT,
- ]);
- });
-
- it('handles mixed known and unknown algorithms in array', () => {
- const unknownAlgorithm1 = () => ({});
- const unknownAlgorithm2 = () => ({});
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: [
- antdThemeImport.darkAlgorithm,
- // @ts-ignore
- unknownAlgorithm1,
- antdThemeImport.compactAlgorithm,
- // @ts-ignore
- unknownAlgorithm2,
- ],
- };
-
- const result = serializeThemeConfig(config);
-
- expect(Array.isArray(result.algorithm)).toBe(true);
- expect(result.algorithm).toEqual([
- ThemeAlgorithm.DARK,
- ThemeAlgorithm.DEFAULT,
- ThemeAlgorithm.COMPACT,
- ThemeAlgorithm.DEFAULT,
- ]);
- });
- });
-
- describe('normalizeThemeConfig', () => {
- it('returns the same config for non-serializable configs', () => {
- const config: AntdThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: antdThemeImport.darkAlgorithm,
- };
-
- const result = normalizeThemeConfig(config);
-
- expect(result).toBe(config);
- });
-
- it('deserializes serializable configs', () => {
- const config: SerializableThemeConfig = {
- token: { colorPrimary: '#ff0000' },
- algorithm: ThemeAlgorithm.DARK,
- };
-
- const result = normalizeThemeConfig(config);
-
- expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
- });
- });
-
- describe('getAntdConfig', () => {
- it('returns config with default algorithm for light mode', () => {
- const seed = { colorPrimary: '#ff0000' };
-
- const result = getAntdConfig(seed, false);
-
- expect(result.token).toBe(seed);
- expect(result.algorithm).toBe(antdThemeImport.defaultAlgorithm);
- });
-
- it('returns config with dark algorithm for dark mode', () => {
- const seed = { colorPrimary: '#ff0000' };
-
- const result = getAntdConfig(seed, true);
-
- expect(result.token).toBe(seed);
- expect(result.algorithm).toBe(antdThemeImport.darkAlgorithm);
- });
- });
-
- describe('getSystemColors', () => {
- it('extracts system colors from tokens', () => {
- const tokens = {
- colorPrimary: '#primary',
- colorError: '#error',
- colorWarning: '#warning',
- colorSuccess: '#success',
- colorInfo: '#info',
- otherToken: 'ignore-me',
- };
-
- const result = getSystemColors(tokens);
-
- expect(result).toEqual({
- colorPrimary: '#primary',
- colorError: '#error',
- colorWarning: '#warning',
- colorSuccess: '#success',
- colorInfo: '#info',
- });
- });
- });
-});
diff --git a/superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts b/superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts
deleted file mode 100644
index da48a93c79..0000000000
--- a/superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import { theme as antdTheme } from 'antd';
-import {
- getFontSize,
- getColorVariants,
- isThemeDark,
- isThemeConfigDark,
-} from './themeUtils';
-import { Theme } from '../Theme';
-import { ThemeAlgorithm } from '../types';
-
-// Mock emotion's cache to avoid actual DOM operations
-jest.mock('@emotion/cache', () => ({
- __esModule: true,
- default: jest.fn().mockReturnValue({}),
-}));
-
-describe('themeUtils', () => {
- let lightTheme: Theme;
- let darkTheme: Theme;
-
- beforeEach(() => {
- jest.clearAllMocks();
-
- // Create actual theme instances for testing
- lightTheme = Theme.fromConfig({
- token: {
- colorPrimary: '#1890ff',
- fontSizeXS: '8',
- fontSize: '14',
- fontSizeLG: '16',
- },
- });
-
- darkTheme = Theme.fromConfig({
- algorithm: ThemeAlgorithm.DARK,
- token: {
- colorPrimary: '#1890ff',
- fontSizeXS: '8',
- fontSize: '14',
- fontSizeLG: '16',
- },
- });
- });
-
- describe('getFontSize', () => {
- it('returns correct font size for given key', () => {
- expect(getFontSize(lightTheme.theme, 'xs')).toBe('8');
- expect(getFontSize(lightTheme.theme, 'm')).toBe('14');
- expect(getFontSize(lightTheme.theme, 'l')).toBe('16');
- });
-
- it('defaults to medium font size when no key is provided', () => {
- expect(getFontSize(lightTheme.theme)).toBe('14');
- });
-
- it('uses antd default when specific size not overridden', () => {
- // Create theme with minimal config - antd will provide defaults
- const minimalTheme = Theme.fromConfig({
- token: { fontSize: '14' },
- });
-
- expect(getFontSize(minimalTheme.theme, 'xs')).toBe('14');
- expect(getFontSize(minimalTheme.theme, 'm')).toBe('14');
- });
- });
-
- describe('isThemeDark', () => {
- it('returns false for light theme', () => {
- expect(isThemeDark(lightTheme.theme)).toBe(false);
- });
-
- it('returns true for dark theme', () => {
- expect(isThemeDark(darkTheme.theme)).toBe(true);
- });
- });
-
- describe('getColorVariants', () => {
- it('returns correct variants for primary color', () => {
- const variants = getColorVariants(lightTheme.theme, 'primary');
-
- expect(variants.text).toBeDefined();
- expect(variants.bg).toBeDefined();
- expect(variants.border).toBeDefined();
- expect(variants.active).toBeDefined();
- });
-
- it('returns grayscale variants for default color in light theme', () => {
- const variants = getColorVariants(lightTheme.theme, 'default');
-
- expect(variants.active).toBe('#222');
- expect(variants.textActive).toBe('#444');
- expect(variants.text).toBe('#555');
- expect(variants.bg).toBe('#F4F4F4');
- });
-
- it('returns inverted grayscale variants for default color in dark theme', () => {
- const variants = getColorVariants(darkTheme.theme, 'default');
-
- // In dark theme, colors should be inverted
- expect(variants.active).toBe('#dddddd'); // Inverted #222
- expect(variants.textActive).toBe('#bbbbbb'); // Inverted #444
- expect(variants.text).toBe('#aaaaaa'); // Inverted #555
- });
-
- it('returns same variants for grayscale color as default', () => {
- const defaultVariants = getColorVariants(lightTheme.theme, 'default');
- const grayscaleVariants = getColorVariants(lightTheme.theme, 'grayscale');
-
- expect(defaultVariants).toEqual(grayscaleVariants);
- });
-
- it('handles missing color tokens gracefully', () => {
- const variants = getColorVariants(lightTheme.theme, 'nonexistent');
-
- // Should return undefined for missing tokens
- expect(variants.active).toBeUndefined();
- expect(variants.text).toBeUndefined();
- expect(variants.bg).toBeUndefined();
- });
- });
-
- describe('isThemeConfigDark', () => {
- it('returns true for config with dark algorithm', () => {
- const config = {
- algorithm: antdTheme.darkAlgorithm,
- };
- expect(isThemeConfigDark(config)).toBe(true);
- });
-
- it('returns true for config with dark algorithm in array', () => {
- const config = {
- algorithm: [antdTheme.darkAlgorithm, antdTheme.compactAlgorithm],
- };
- expect(isThemeConfigDark(config)).toBe(true);
- });
-
- it('returns false for config without dark algorithm', () => {
- const config = {
- algorithm: antdTheme.defaultAlgorithm,
- };
- expect(isThemeConfigDark(config)).toBe(false);
- });
-
- it('returns false for config with no algorithm', () => {
- const config = {
- token: {
- colorPrimary: '#1890ff',
- },
- };
- expect(isThemeConfigDark(config)).toBe(false);
- });
-
- it('detects manually-created dark theme without dark algorithm', () => {
- // This is the edge case: dark colors without dark algorithm
- const config = {
- token: {
- colorBgContainer: '#1a1a1a', // Dark background
- colorBgBase: '#0a0a0a', // Dark base
- colorText: '#ffffff', // Light text
- },
- };
- expect(isThemeConfigDark(config)).toBe(true);
- });
-
- it('does not false-positive on light theme with custom colors', () => {
- const config = {
- token: {
- colorBgContainer: '#ffffff', // Light background
- colorBgBase: '#f5f5f5', // Light base
- colorText: '#000000', // Dark text
- },
- };
- expect(isThemeConfigDark(config)).toBe(false);
- });
-
- it('handles partial color tokens gracefully', () => {
- // With actual theme computation, a dark colorBgContainer results in a dark theme
- const config = {
- token: {
- colorBgContainer: '#1a1a1a', // Dark background
- // Missing other color tokens
- },
- };
- expect(isThemeConfigDark(config)).toBe(true);
- });
-
- it('respects colorBgContainer as the primary indicator', () => {
- // The computed theme uses colorBgContainer as the main background
- const darkConfig = {
- token: {
- colorBgContainer: '#1a1a1a', // Dark background
- colorText: '#000000', // Dark text (unusual but doesn't override)
- },
- };
- expect(isThemeConfigDark(darkConfig)).toBe(true);
-
- const lightConfig = {
- token: {
- colorBgContainer: '#ffffff', // Light background
- colorText: '#ffffff', // Light text (unusual but doesn't override)
- },
- };
- expect(isThemeConfigDark(lightConfig)).toBe(false);
- });
-
- it('handles non-string color tokens gracefully', () => {
- const config = {
- token: {
- colorBgContainer: undefined,
- colorText: null,
- colorBgBase: 123, // Invalid type
- },
- };
- expect(isThemeConfigDark(config)).toBe(false);
- });
-
- it('returns false for empty config', () => {
- expect(isThemeConfigDark({})).toBe(false);
- });
-
- it('returns false for config with empty token object', () => {
- const config = {
- token: {},
- };
- expect(isThemeConfigDark(config)).toBe(false);
- });
- });
-});
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/components/MockChartPlugins.tsx b/superset-frontend/packages/superset-ui-core/test/chart/components/MockChartPlugins.tsx
index 768fed2d0b..d89d7d5387 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/components/MockChartPlugins.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/chart/components/MockChartPlugins.tsx
@@ -18,12 +18,8 @@
*/
/* eslint-disable max-classes-per-file */
-import {
- QueryFormData,
- ChartMetadata,
- ChartPlugin,
- useTheme,
-} from '@superset-ui/core';
+import { QueryFormData, ChartMetadata, ChartPlugin } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
const DIMENSION_STYLE = {
fontSize: 36,
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/components/SuperChartCore.test.tsx b/superset-frontend/packages/superset-ui-core/test/chart/components/SuperChartCore.test.tsx
index c026099d13..201a5fccdf 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/components/SuperChartCore.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/chart/components/SuperChartCore.test.tsx
@@ -19,7 +19,8 @@
import '@testing-library/jest-dom';
import mockConsole, { RestoreConsole } from 'jest-mock-console';
-import { ChartProps, supersetTheme } from '@superset-ui/core';
+import { ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { render, screen, waitFor } from '@superset-ui/core/spec';
import SuperChartCore from '../../../src/chart/components/SuperChartCore';
import {
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/models/ChartPlugin.test.tsx b/superset-frontend/packages/superset-ui-core/test/chart/models/ChartPlugin.test.tsx
index 8e1210b64e..7805322ea7 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/models/ChartPlugin.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/chart/models/ChartPlugin.test.tsx
@@ -30,9 +30,9 @@ import {
getChartControlPanelRegistry,
QueryFormData,
DatasourceType,
- supersetTheme,
VizType,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
describe('ChartPlugin', () => {
const FakeChart = () => <span>test</span>;
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/models/ChartProps.test.ts b/superset-frontend/packages/superset-ui-core/test/chart/models/ChartProps.test.ts
index a487b797a3..c9301b56f6 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/models/ChartProps.test.ts
+++ b/superset-frontend/packages/superset-ui-core/test/chart/models/ChartProps.test.ts
@@ -17,7 +17,8 @@
* under the License.
*/
-import { Behavior, ChartProps, supersetTheme } from '@superset-ui/core';
+import { Behavior, ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
const RAW_FORM_DATA = {
some_field: 1,
diff --git a/superset-frontend/packages/superset-ui-core/test/components/Icons/AsyncIcon.integration.test.tsx b/superset-frontend/packages/superset-ui-core/test/components/Icons/AsyncIcon.integration.test.tsx
index 8ecd9f8b47..2651f730b5 100644
--- a/superset-frontend/packages/superset-ui-core/test/components/Icons/AsyncIcon.integration.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/components/Icons/AsyncIcon.integration.test.tsx
@@ -19,7 +19,7 @@
import '@testing-library/jest-dom';
import { render, fireEvent } from '@testing-library/react';
-import { SupersetTheme, ThemeProvider } from '@superset-ui/core';
+import { SupersetTheme, ThemeProvider } from '@apache-superset/core/ui';
// CRITICAL: Don't import from the mocked path - import directly to avoid global mocks
import AsyncIcon from '../../../src/components/Icons/AsyncIcon';
diff --git a/superset-frontend/packages/superset-ui-core/tsconfig.json b/superset-frontend/packages/superset-ui-core/tsconfig.json
index 559e100825..c3cf99b320 100644
--- a/superset-frontend/packages/superset-ui-core/tsconfig.json
+++ b/superset-frontend/packages/superset-ui-core/tsconfig.json
@@ -4,14 +4,23 @@
// Path Resolution: Override baseUrl to maintain correct path mappings from parent config
// (e.g., "@apache-superset/core" -> "./packages/superset-core/src")
"baseUrl": "../..",
-
// Directory Overrides: Parent config paths are relative to frontend root,
// but packages need paths relative to their own directory
"outDir": "lib",
"rootDir": "src",
"declarationDir": "lib"
},
- "include": ["src/**/*", "types/**/*"],
- "exclude": ["src/**/*.test.*", "src/**/*.stories.*"],
- "references": [{ "path": "../superset-core" }]
+ "include": [
+ "src/**/*",
+ "types/**/*"
+ ],
+ "exclude": [
+ "src/**/*.test.*",
+ "src/**/*.stories.*"
+ ],
+ "references": [
+ {
+ "path": "../superset-core"
+ }
+ ]
}
diff --git a/superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx b/superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx
index 60851f55d0..c456e2b38c 100644
--- a/superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx
+++ b/superset-frontend/packages/superset-ui-demo/.storybook/themeDecorator.jsx
@@ -1,5 +1,5 @@
// themeDecorator.js
-import { supersetTheme, ThemeProvider } from '@superset-ui/core';
+import { supersetTheme, ThemeProvider } from '@apache-superset/core/ui';
const ThemeDecorator = Story => (
<ThemeProvider theme={supersetTheme}>
diff --git a/superset-frontend/packages/superset-ui-demo/package.json b/superset-frontend/packages/superset-ui-demo/package.json
index 934e9b84de..736d6ee3e8 100644
--- a/superset-frontend/packages/superset-ui-demo/package.json
+++ b/superset-frontend/packages/superset-ui-demo/package.json
@@ -65,6 +65,7 @@
"peerDependencies": {
"@encodable/color": "=1.1.1",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"@superset-ui/legacy-plugin-chart-calendar": "*",
"@superset-ui/legacy-plugin-chart-chord": "*",
"@superset-ui/legacy-plugin-chart-country-map": "*",
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/shared/components/ResizableChartDemo.tsx b/superset-frontend/packages/superset-ui-demo/storybook/shared/components/ResizableChartDemo.tsx
index 24d3327703..4c33e9bbb5 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/shared/components/ResizableChartDemo.tsx
+++ b/superset-frontend/packages/superset-ui-demo/storybook/shared/components/ResizableChartDemo.tsx
@@ -18,7 +18,7 @@
*/
import { useState, ReactNode, SyntheticEvent } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import type { Decorator } from '@storybook/react';
import { ResizeCallbackData } from 'react-resizable';
import ResizablePanel, { Size } from './ResizablePanel';
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map/CountryMap.stories.tsx b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map/CountryMap.stories.tsx
index 31f26840db..38b2b009df 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map/CountryMap.stories.tsx
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map/CountryMap.stories.tsx
@@ -18,13 +18,8 @@
*/
import { useEffect, useState } from 'react';
-import {
- JsonObject,
- seed,
- SuperChart,
- SequentialD3,
- useTheme,
-} from '@superset-ui/core';
+import { JsonObject, seed, SuperChart, SequentialD3 } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import CountryMapChartPlugin, {
countries,
} from '@superset-ui/legacy-plugin-chart-country-map';
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/MapBox.stories.tsx b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/MapBox.stories.tsx
index 7a1fb7a19a..120ba16600 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/MapBox.stories.tsx
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/MapBox.stories.tsx
@@ -18,7 +18,8 @@
*/
/* eslint-disable no-magic-numbers */
-import { SuperChart, useTheme } from '@superset-ui/core';
+import { SuperChart } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import MapBoxChartPlugin from '@superset-ui/legacy-plugin-chart-map-box';
import { generateData } from './data';
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/data.ts b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/data.ts
index b138443942..589fcc69e3 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/data.ts
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-map-box/data.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
/* eslint-disable sort-keys, no-magic-numbers */
export const generateData = (theme: SupersetTheme) => ({
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path/Path.stories.tsx b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path/Path.stories.tsx
index 79a089c94b..20456eea04 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path/Path.stories.tsx
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-deckgl/Path/Path.stories.tsx
@@ -19,7 +19,8 @@
/* eslint-disable sort-keys */
/* eslint-disable no-magic-numbers */
-import { SuperChart, useTheme } from '@superset-ui/core';
+import { SuperChart } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { PathChartPlugin } from '@superset-ui/legacy-preset-chart-deckgl';
import { payload } from './payload';
import dummyDatasource from '../../../../shared/dummyDatasource';
diff --git a/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-theme/Theme.stories.tsx b/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-theme/Theme.stories.tsx
index ce3f6d4111..71b0a8d9f9 100644
--- a/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-theme/Theme.stories.tsx
+++ b/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-theme/Theme.stories.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { supersetTheme } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
const colorTypes = ['primary', 'error', 'warning', 'success', 'info'];
diff --git a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
index f4107ccfa0..5e6c092f9a 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-calendar/package.json
@@ -32,6 +32,7 @@
"@emotion/react": "^11.4.1",
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
},
"publishConfig": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-calendar/src/ReactCalendar.jsx b/superset-frontend/plugins/legacy-plugin-chart-calendar/src/ReactCalendar.jsx
index 7c6f684e66..f028b94b11 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-calendar/src/ReactCalendar.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-calendar/src/ReactCalendar.jsx
@@ -17,7 +17,8 @@
* under the License.
*/
import PropTypes from 'prop-types';
-import { reactify, styled, css, useTheme } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { Global } from '@emotion/react';
import Component from './Calendar';
diff --git a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
index 64cbc61bc4..3db9620bb1 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-chord/package.json
@@ -35,6 +35,7 @@
},
"peerDependencies": {
"@superset-ui/chart-controls": "*",
- "@superset-ui/core": "*"
+ "@superset-ui/core": "*",
+ "@apache-superset/core": "*"
}
}
diff --git a/superset-frontend/plugins/legacy-plugin-chart-chord/src/ReactChord.jsx b/superset-frontend/plugins/legacy-plugin-chart-chord/src/ReactChord.jsx
index d413a79537..fbefe58e3f 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-chord/src/ReactChord.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-chord/src/ReactChord.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { reactify, styled } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import PropTypes from 'prop-types';
import Component from './Chord';
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
index 6f3385ae04..a061318194 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/package.json
@@ -33,6 +33,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
}
}
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/ReactCountryMap.jsx b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/ReactCountryMap.jsx
index 9d8413b427..7a8ade2a64 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/ReactCountryMap.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/ReactCountryMap.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { reactify, styled } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import Component from './CountryMap';
const ReactComponent = reactify(Component);
diff --git a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
index 22eb16060f..6e5033e4f0 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-horizon/package.json
@@ -30,6 +30,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
},
"publishConfig": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx b/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx
index e78dafd509..d3ebde9bd5 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx
@@ -20,7 +20,8 @@
import { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { extent as d3Extent } from 'd3-array';
-import { ensureIsArray, styled } from '@superset-ui/core';
+import { ensureIsArray } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import HorizonRow, { DEFAULT_COLORS } from './HorizonRow';
const propTypes = {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json b/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json
index 0765e7596b..90b77fece5 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-map-box/package.json
@@ -34,6 +34,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"mapbox-gl": "*",
"react": "^17.0.2"
},
diff --git a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
index a01e4b934f..3272f943d6 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/package.json
@@ -30,6 +30,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
},
"publishConfig": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx
index 8d71604391..e3c4812a60 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx
@@ -19,7 +19,7 @@
/* eslint-disable react/no-array-index-key */
import PropTypes from 'prop-types';
import { PureComponent } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import TTestTable, { dataPropType } from './TTestTable';
const propTypes = {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
index 4101769139..42900f5382 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/package.json
@@ -35,6 +35,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
}
}
diff --git a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/ReactParallelCoordinates.jsx b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/ReactParallelCoordinates.jsx
index f6e4ba890f..7bd02eed42 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/ReactParallelCoordinates.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/ReactParallelCoordinates.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, reactify, addAlpha } from '@superset-ui/core';
+import { reactify, addAlpha } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import PropTypes from 'prop-types';
import Component from './ParallelCoordinates';
diff --git a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
index 74ffd71610..ce7d12ebf9 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-partition/package.json
@@ -30,6 +30,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"@testing-library/jest-dom": "*",
"@testing-library/react": "^12.1.5",
"react": "^17.0.2",
diff --git a/superset-frontend/plugins/legacy-plugin-chart-partition/src/ReactPartition.jsx b/superset-frontend/plugins/legacy-plugin-chart-partition/src/ReactPartition.jsx
index c55d00b4a9..77a15ffe5a 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-partition/src/ReactPartition.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-partition/src/ReactPartition.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { reactify, styled } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import Component from './Partition';
const ReactComponent = reactify(Component);
diff --git a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
index ce007a118e..c6607a3795 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-rose/package.json
@@ -31,6 +31,7 @@
"@emotion/react": "^11.4.1",
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
},
"publishConfig": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-rose/src/ReactRose.jsx b/superset-frontend/plugins/legacy-plugin-chart-rose/src/ReactRose.jsx
index 2a9a1fc590..824897d26e 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-rose/src/ReactRose.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-rose/src/ReactRose.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { reactify, styled, css } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Global } from '@emotion/react';
import Component from './Rose';
diff --git a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
index 251a165cd0..a8662064e8 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
+++ b/superset-frontend/plugins/legacy-plugin-chart-world-map/package.json
@@ -38,6 +38,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
}
}
diff --git a/superset-frontend/plugins/legacy-plugin-chart-world-map/src/ReactWorldMap.jsx b/superset-frontend/plugins/legacy-plugin-chart-world-map/src/ReactWorldMap.jsx
index 6343e59fb5..ef972bb039 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-world-map/src/ReactWorldMap.jsx
+++ b/superset-frontend/plugins/legacy-plugin-chart-world-map/src/ReactWorldMap.jsx
@@ -17,7 +17,8 @@
* under the License.
*/
import PropTypes from 'prop-types';
-import { styled, reactify, useTheme } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import WorldMap from './WorldMap';
const ReactWorldMap = reactify(WorldMap);
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json b/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json
index ae1995892b..022a70a096 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/package.json
@@ -62,6 +62,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"mapbox-gl": "*",
"react": "^17.0.2",
"react-dom": "^17.0.2",
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx
index ad1ed4953a..7a929d506f 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx
@@ -36,7 +36,8 @@ import { isEqual } from 'lodash';
import { StaticMap } from 'react-map-gl';
import DeckGL from '@deck.gl/react';
import type { Layer } from '@deck.gl/core';
-import { JsonObject, JsonValue, styled, usePrevious } from '@superset-ui/core';
+import { JsonObject, JsonValue, usePrevious } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import Tooltip, { TooltipProps } from './components/Tooltip';
import 'mapbox-gl/dist/mapbox-gl.css';
import { Viewport } from './utils/fitViewport';
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.tsx
index 07c979e421..05e048a599 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.tsx
@@ -20,7 +20,8 @@
* under the License.
*/
import { memo } from 'react';
-import { formatNumber, styled } from '@superset-ui/core';
+import { formatNumber } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Color } from '@deck.gl/core';
const StyledLegend = styled.div`
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Tooltip.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Tooltip.tsx
index 670e44e81d..a73c16e2b9 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Tooltip.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Tooltip.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
-import { styled, safeHtmlSpan } from '@superset-ui/core';
+import { safeHtmlSpan } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { ReactNode } from 'react';
export type TooltipProps = {
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.test.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.test.tsx
index 23512663b6..a4de1e8f81 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.test.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.test.tsx
@@ -20,7 +20,7 @@
import { render, screen } from '@testing-library/react';
// eslint-disable-next-line import/no-extraneous-dependencies
import '@testing-library/jest-dom';
-import { supersetTheme, ThemeProvider } from '@superset-ui/core';
+import { supersetTheme, ThemeProvider } from '@apache-superset/core/ui';
import DeckGLPolygon, { getPoints } from './Polygon';
import { COLOR_SCHEME_TYPES } from '../../utilities/utils';
import * as utils from '../../utils';
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.tsx
index bbade67044..c2facd8024 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.tsx
@@ -22,10 +22,10 @@ import { Color } from '@deck.gl/core';
import {
JsonObject,
QueryFormData,
- styled,
CategoricalColorNamespace,
t,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
COLOR_SCHEME_TYPES,
ColorSchemeType,
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.test.ts b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.test.ts
index fbe222f78f..f996cb2271 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.test.ts
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/spatialUtils.test.ts
@@ -20,8 +20,8 @@ import {
ChartProps,
DatasourceType,
QueryObjectFilterClause,
- SupersetTheme,
} from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { decode } from 'ngeohash';
import {
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
index 3466107ed3..805ed68267 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/HandlebarsRenderer.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useEffect, useState, memo, useMemo } from 'react';
-import { styled, t, sanitizeHtml } from '@superset-ui/core';
+import { t, sanitizeHtml } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
import Handlebars from 'handlebars';
import { isPlainObject } from 'lodash';
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
index 163f078179..dd3e39040f 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateControl.tsx
@@ -19,7 +19,8 @@
import { useCallback } from 'react';
import { debounce } from 'lodash';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { InfoTooltip, Constants } from '@superset-ui/core/components';
import { ControlHeader } from '@superset-ui/chart-controls';
import { TooltipTemplateEditor } from './TooltipTemplateEditor';
diff --git a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateEditor.tsx b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateEditor.tsx
index f7a1a166f1..32ea0a2613 100644
--- a/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateEditor.tsx
+++ b/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/TooltipTemplateEditor.tsx
@@ -18,7 +18,7 @@
*/
import { useCallback, useEffect, useState } from 'react';
-import { styled, css, useThemeMode } from '@superset-ui/core';
+import { styled, css, useThemeMode } from '@apache-superset/core/ui';
import { CodeEditor } from '@superset-ui/core/components';
const EditorContainer = styled.div`
diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
index d3662d34d7..4387a4b29b 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/package.json
@@ -42,6 +42,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"react": "^17.0.2"
}
}
diff --git a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx
index c7111e393c..d1f5e64edc 100644
--- a/superset-frontend/plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx
+++ b/superset-frontend/plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { reactify, styled } from '@superset-ui/core';
+import { reactify } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import PropTypes from 'prop-types';
import Component from './NVD3Vis';
import { hideTooltips, removeTooltip } from './utils';
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/NumericCellRenderer.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/NumericCellRenderer.tsx
index d30f0a2fe2..cd1f8564bf 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/NumericCellRenderer.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/NumericCellRenderer.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, useTheme } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { CustomCellRendererProps } from '@superset-ui/core/components/ThemedAgGridReact';
import { BasicColorFormatterType, InputColumn } from '../types';
import { useIsDark } from '../utils/useTableTheme';
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/styles/index.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/styles/index.tsx
index c67829cb5e..4d7f4f3c8e 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/styles/index.tsx
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/styles/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Select } from '@superset-ui/core/components';
/* Components for AgGridTable */
diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
index 136ce00a1e..f37bcf4dc5 100644
--- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
+++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import {
colorSchemeDark,
colorSchemeLight,
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
index fdba9a9a54..3fde837abf 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/package.json
@@ -38,6 +38,7 @@
"@reduxjs/toolkit": "*",
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"@types/react-redux": "*",
"geostyler": "^14.1.3",
"geostyler-data": "^1.0.0",
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/CartodiagramPlugin.tsx b/superset-frontend/plugins/plugin-chart-cartodiagram/src/CartodiagramPlugin.tsx
index 0fc8719171..15d7ca53e5 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/CartodiagramPlugin.tsx
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/CartodiagramPlugin.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { createRef, useState } from 'react';
-import { styled, useTheme } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import OlMap from 'ol/Map';
import {
CartodiagramPluginProps,
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartLayer.tsx b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartLayer.tsx
index 875ef5c4c0..33e3573f97 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartLayer.tsx
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartLayer.tsx
@@ -20,7 +20,7 @@ import Layer from 'ol/layer/Layer';
import { FrameState } from 'ol/Map';
import { apply as applyTransform } from 'ol/transform';
import ReactDOM from 'react-dom';
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { ChartConfig, ChartLayerOptions, ChartSizeValues } from '../types';
import { createChartComponent } from '../util/chartUtil';
import { getProjectedCoordinateFromPointGeoJson } from '../util/geometryUtil';
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartWrapper.tsx b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartWrapper.tsx
index e4d087dcca..bcdcbec4fc 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartWrapper.tsx
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/components/ChartWrapper.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { configureStore } from '@reduxjs/toolkit';
-import { getChartComponentRegistry, ThemeProvider } from '@superset-ui/core';
+import { getChartComponentRegistry } from '@superset-ui/core';
+import { ThemeProvider } from '@apache-superset/core/ui';
import { FC, useEffect, useState } from 'react';
import { Provider as ReduxProvider } from 'react-redux';
import { ChartWrapperProps } from '../types';
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/types.ts b/superset-frontend/plugins/plugin-chart-cartodiagram/src/types.ts
index 62db443c88..3e5528f86e 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/types.ts
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/types.ts
@@ -16,11 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- DataRecord,
- SupersetTheme,
- TimeseriesDataRecord,
-} from '@superset-ui/core';
+import { DataRecord, TimeseriesDataRecord } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { RenderFunction } from 'ol/layer/Layer';
import { Extent } from 'ol/extent';
import Source from 'ol/source/Source';
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/chartUtil.tsx b/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/chartUtil.tsx
index ecdef6c6e2..9932b9bab9 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/chartUtil.tsx
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/src/util/chartUtil.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { ChartConfig, ChartConfigFeature } from '../types';
import ChartWrapper from '../components/ChartWrapper';
diff --git a/superset-frontend/plugins/plugin-chart-cartodiagram/test/plugin/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-cartodiagram/test/plugin/transformProps.test.ts
index 98cfc4977e..ce3575c67a 100644
--- a/superset-frontend/plugins/plugin-chart-cartodiagram/test/plugin/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-cartodiagram/test/plugin/transformProps.test.ts
@@ -16,11 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- ChartProps,
- getChartTransformPropsRegistry,
- supersetTheme,
-} from '@superset-ui/core';
+import { ChartProps, getChartTransformPropsRegistry } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { LayerConf, MapViewConfigs, ZoomConfigs } from '../../src/types';
import transformProps from '../../src/plugin/transformProps';
import {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
index 8df356fdfd..22bc336402 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx
@@ -18,14 +18,12 @@
*/
import { useEffect, useMemo, useState } from 'react';
import {
- css,
ensureIsArray,
fetchTimeRange,
getTimeOffset,
- styled,
t,
- useTheme,
} from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { Tooltip } from '@superset-ui/core/components';
import { DEFAULT_DATE_PATTERN } from '@superset-ui/chart-controls';
import { isEmpty } from 'lodash';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.tsx
index a07ea02f75..9d2b14efe0 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.tsx
@@ -24,10 +24,9 @@ import {
SMART_DATE_VERBOSE_ID,
computeMaxFontSize,
BRAND_COLOR,
- styled,
BinaryQueryObjectFilterClause,
- useTheme,
} from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import Echart from '../components/Echart';
import { BigNumberVizProps } from './types';
import { EventHandlers } from '../types';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/constants.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/constants.ts
index 597e0ff9b1..5e7a23545f 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/constants.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Gauge/constants.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { SupersetTheme } from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import type { GaugeSeriesOption } from 'echarts/charts';
export const defaultGaugeSeriesOption = (
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
index a5e4d8b1b5..33e8fc446e 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
@@ -25,13 +25,12 @@ import {
FilterState,
FormulaAnnotationLayer,
IntervalAnnotationLayer,
- isThemeDark,
LegendState,
- SupersetTheme,
TimeseriesAnnotationLayer,
TimeseriesDataRecord,
ValueFormatter,
} from '@superset-ui/core';
+import { SupersetTheme, isThemeDark } from '@apache-superset/core/ui';
import type {
CallbackDataParams,
DefaultStatesMixin,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/components/Echart.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/components/Echart.tsx
index c91dafe3b4..c62f5535a3 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/components/Echart.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/components/Echart.tsx
@@ -29,7 +29,8 @@ import {
} from 'react';
import { useSelector } from 'react-redux';
-import { styled, useTheme, mergeReplaceArrays } from '@superset-ui/core';
+import { mergeReplaceArrays } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { use, init, EChartsType, registerLocale } from 'echarts/core';
import {
SankeyChart,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/components/ExtraControls.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/components/ExtraControls.tsx
index d3492a657c..2e997b8558 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/components/ExtraControls.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/components/ExtraControls.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect, useMemo, useCallback } from 'react';
-import { HandlerFunction, JsonValue, styled } from '@superset-ui/core';
+import { HandlerFunction, JsonValue } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
RadioButtonOption,
sharedControlComponents,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
index 5788977c58..68ff394e1b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
@@ -28,10 +28,10 @@ import {
normalizeTimestamp,
NumberFormats,
NumberFormatter,
- SupersetTheme,
TimeFormatter,
ValueFormatter,
} from '@superset-ui/core';
+import { SupersetTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { SortSeriesType, LegendPaddingType } from '@superset-ui/chart-controls';
import { format } from 'echarts/core';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/transformProps.test.ts
index 0b54271afd..93ecf5df3d 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/transformProps.test.ts
@@ -16,12 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- DatasourceType,
- supersetTheme,
- TimeGranularity,
- VizType,
-} from '@superset-ui/core';
+import { DatasourceType, TimeGranularity, VizType } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps from '../../src/BigNumber/BigNumberWithTrendline/transformProps';
import {
BigNumberDatum,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/BoxPlot/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/BoxPlot/transformProps.test.ts
index db814cc109..95f997d397 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/BoxPlot/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/BoxPlot/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, SqlaFormData, supersetTheme } from '@superset-ui/core';
+import { ChartProps, SqlaFormData } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { EchartsBoxPlotChartProps } from '../../src/BoxPlot/types';
import transformProps from '../../src/BoxPlot/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Bubble/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Bubble/transformProps.test.ts
index 9433948bfa..8ff8306d4c 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Bubble/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Bubble/transformProps.test.ts
@@ -21,8 +21,8 @@ import {
ChartPropsConfig,
getNumberFormatter,
SqlaFormData,
- supersetTheme,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { EchartsBubbleChartProps } from '../../src/Bubble/types';
import transformProps, { formatTooltip } from '../../src/Bubble/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Funnel/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Funnel/transformProps.test.ts
index 9e6a5a10b7..4e3990230a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Funnel/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Funnel/transformProps.test.ts
@@ -16,11 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- ChartProps,
- getNumberFormatter,
- supersetTheme,
-} from '@superset-ui/core';
+import { ChartProps, getNumberFormatter } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps, { parseParams } from '../../src/Funnel/transformProps';
import {
EchartsFunnelChartProps,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Gantt/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Gantt/transformProps.test.ts
index e6626bd53c..cbda465210 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Gantt/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Gantt/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { AxisType, ChartProps, supersetTheme } from '@superset-ui/core';
+import { AxisType, ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import {
LegendOrientation,
LegendType,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Gauge/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Gauge/transformProps.test.ts
index a07977af66..78298ef72b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Gauge/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Gauge/transformProps.test.ts
@@ -20,9 +20,9 @@ import {
CategoricalColorNamespace,
ChartProps,
SqlaFormData,
- supersetTheme,
VizType,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps, {
getIntervalBoundsAndColors,
} from '../../src/Gauge/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Graph/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Graph/transformProps.test.ts
index 5c3937342c..e7c8b3ada9 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Graph/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Graph/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, SqlaFormData, supersetTheme } from '@superset-ui/core';
+import { ChartProps, SqlaFormData } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps from '../../src/Graph/transformProps';
import { DEFAULT_GRAPH_SERIES_OPTION } from '../../src/Graph/constants';
import { EchartsGraphChartProps } from '../../src/Graph/types';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/transformProps.test.ts
index 2ececa1a87..ece226e319 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, supersetTheme, VizType } from '@superset-ui/core';
+import { ChartProps, VizType } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import {
LegendOrientation,
LegendType,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Pie/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Pie/transformProps.test.ts
index 9a0017114b..26de27dd35 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Pie/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Pie/transformProps.test.ts
@@ -20,8 +20,8 @@ import {
ChartProps,
getNumberFormatter,
SqlaFormData,
- supersetTheme,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import type { PieSeriesOption } from 'echarts/charts';
import type {
LabelFormatterCallback,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Radar/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Radar/transformProps.test.ts
index 8cf43c9317..cc7ba86f9b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Radar/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Radar/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, supersetTheme } from '@superset-ui/core';
+import { ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { RadarSeriesOption } from 'echarts/charts';
import transformProps from '../../src/Radar/transformProps';
import {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Bar/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Bar/transformProps.test.ts
index d32f35ff58..425759ca17 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Bar/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Bar/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, SqlaFormData, supersetTheme } from '@superset-ui/core';
+import { ChartProps, SqlaFormData } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { EchartsTimeseriesChartProps } from '../../../src/types';
import transformProps from '../../../src/Timeseries/transformProps';
import { DEFAULT_FORM_DATA } from '../../../src/Timeseries/constants';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
index 01f71c0b09..42ecb1803d 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts
@@ -25,9 +25,9 @@ import {
FormulaAnnotationLayer,
IntervalAnnotationLayer,
SqlaFormData,
- supersetTheme,
TimeseriesAnnotationLayer,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { EchartsTimeseriesChartProps } from '../../src/types';
import transformProps from '../../src/Timeseries/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Tree/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Tree/transformProps.test.ts
index 6a56c997c2..e878dcf6b7 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Tree/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Tree/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, supersetTheme } from '@superset-ui/core';
+import { ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps from '../../src/Tree/transformProps';
import { EchartsTreeChartProps } from '../../src/Tree/types';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts
index f18caea686..d076f5a8a7 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Treemap/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, supersetTheme } from '@superset-ui/core';
+import { ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { EchartsTreemapChartProps } from '../../src/Treemap/types';
import transformProps from '../../src/Treemap/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts
index 98906752f6..271bb746b6 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { ChartProps, supersetTheme } from '@superset-ui/core';
+import { ChartProps } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import {
EchartsWaterfallChartProps,
WaterfallChartTransformedProps,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
index 28ce567b06..57704662f5 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
@@ -22,8 +22,8 @@ import {
DataRecord,
getNumberFormatter,
getTimeFormatter,
- supersetTheme as theme,
} from '@superset-ui/core';
+import { supersetTheme as theme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import {
calculateLowerLogTick,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/utils/transformers.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/utils/transformers.test.ts
index 0a07650f8d..7e2008753c 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/utils/transformers.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/utils/transformers.test.ts
@@ -27,10 +27,10 @@ import {
EventAnnotationLayer,
FormulaAnnotationLayer,
IntervalAnnotationLayer,
- supersetTheme,
TimeseriesAnnotationLayer,
TimeseriesDataRecord,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { OrientationType } from '../../src';
import {
transformEventAnnotation,
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/package.json b/superset-frontend/plugins/plugin-chart-handlebars/package.json
index e7cd057db5..901b468447 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/package.json
+++ b/superset-frontend/plugins/plugin-chart-handlebars/package.json
@@ -32,6 +32,7 @@
},
"peerDependencies": {
"@superset-ui/chart-controls": "*",
+ "@apache-superset/core": "*",
"@superset-ui/core": "*",
"ace-builds": "^1.4.14",
"handlebars": "^4.7.8",
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/Handlebars.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/Handlebars.tsx
index 2e7e27ae1e..82c1c069af 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/Handlebars.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/Handlebars.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { createRef } from 'react';
import { HandlebarsViewer } from './components/Handlebars/HandlebarsViewer';
import { HandlebarsProps, HandlebarsStylesProps } from './types';
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
index a1e9c66189..771fbb95a7 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/components/Handlebars/HandlebarsViewer.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { SafeMarkdown } from '@superset-ui/core/components';
import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
import Handlebars from 'handlebars';
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/handlebarTemplate.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/handlebarTemplate.tsx
index e09f7f5aba..8e810e4c26 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/handlebarTemplate.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/handlebarTemplate.tsx
@@ -21,7 +21,8 @@ import {
CustomControlConfig,
sharedControls,
} from '@superset-ui/chart-controls';
-import { t, validateNonEmpty, useTheme } from '@superset-ui/core';
+import { t, validateNonEmpty } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { InfoTooltip, SafeMarkdown } from '@superset-ui/core/components';
import { CodeEditor } from '../../components/CodeEditor/CodeEditor';
import { ControlHeader } from '../../components/ControlHeader/controlHeader';
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/style.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/style.tsx
index b69b2ea042..e2aade89af 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/style.tsx
+++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/style.tsx
@@ -21,7 +21,8 @@ import {
CustomControlConfig,
sharedControls,
} from '@superset-ui/chart-controls';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { InfoTooltip } from '@superset-ui/core/components';
import { CodeEditor } from '../../components/CodeEditor/CodeEditor';
import { ControlHeader } from '../../components/ControlHeader/controlHeader';
diff --git a/superset-frontend/plugins/plugin-chart-handlebars/test/plugin/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-handlebars/test/plugin/transformProps.test.ts
index d6ab2a60dc..4c0c1fe852 100644
--- a/superset-frontend/plugins/plugin-chart-handlebars/test/plugin/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-handlebars/test/plugin/transformProps.test.ts
@@ -16,12 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- ChartProps,
- QueryFormData,
- supersetTheme,
- VizType,
-} from '@superset-ui/core';
+import { ChartProps, QueryFormData, VizType } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { HandlebarsQueryFormData } from '../../src/types';
import transformProps from '../../src/plugin/transformProps';
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx b/superset-frontend/plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx
index 454badec2c..a08f96a8ad 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx
@@ -31,10 +31,9 @@ import {
isFeatureEnabled,
isPhysicalColumn,
NumberFormatter,
- styled,
t,
- useTheme,
} from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { aggregatorTemplates, PivotTable, sortAs } from './react-pivottable';
import {
FilterType,
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/Styles.js b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/Styles.js
index 86dd63f4f6..327104c6b2 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/Styles.js
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/Styles.js
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
export const Styles = styled.div`
${({ theme, isDashboardEditMode }) => css`
diff --git a/superset-frontend/plugins/plugin-chart-pivot-table/test/plugin/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-pivot-table/test/plugin/transformProps.test.ts
index c639140abe..9327dcffe8 100644
--- a/superset-frontend/plugins/plugin-chart-pivot-table/test/plugin/transformProps.test.ts
+++ b/superset-frontend/plugins/plugin-chart-pivot-table/test/plugin/transformProps.test.ts
@@ -17,7 +17,8 @@
* under the License.
*/
-import { ChartProps, QueryFormData, supersetTheme } from '@superset-ui/core';
+import { ChartProps, QueryFormData } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import transformProps from '../../src/plugin/transformProps';
import { MetricsLayoutEnum } from '../../src/types';
diff --git a/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SearchSelectDropdown.tsx b/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SearchSelectDropdown.tsx
index d4cc33e618..54b69b6018 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SearchSelectDropdown.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SearchSelectDropdown.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
/* eslint-disable import/no-extraneous-dependencies */
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { RawAntdSelect } from '@superset-ui/core/components';
import { SearchOption } from '../../types';
diff --git a/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx b/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx
index a3323c2e20..0434a6c22e 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { memo } from 'react';
-import { css, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { formatSelectOptions } from '@superset-ui/chart-controls';
import { RawAntdSelect } from '@superset-ui/core/components';
diff --git a/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx b/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx
index df8849c482..75097569fb 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx
@@ -30,7 +30,7 @@ import {
UIEventHandler,
} from 'react';
import { TableInstance, Hooks } from 'react-table';
-import { useTheme, css } from '@superset-ui/core';
+import { useTheme, css } from '@apache-superset/core/ui';
import getScrollBarSize from '../utils/getScrollBarSize';
import needScrollBar from '../utils/needScrollBar';
import useMountedMemo from '../utils/useMountedMemo';
diff --git a/superset-frontend/plugins/plugin-chart-table/src/Styles.tsx b/superset-frontend/plugins/plugin-chart-table/src/Styles.tsx
index 14b3e4f2d2..4d7a61af6f 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/Styles.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/Styles.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
export default styled.div`
${({ theme }) => css`
diff --git a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
index 784e33de28..40091834d0 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/TableChart.tsx
@@ -46,14 +46,11 @@ import {
getSelectedText,
getTimeFormatterForGranularity,
BinaryQueryObjectFilterClause,
- styled,
- css,
t,
tn,
- useTheme,
- SupersetTheme,
extractTextFromHTML,
} from '@superset-ui/core';
+import { styled, css, useTheme, SupersetTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import {
Input,
diff --git a/superset-frontend/plugins/plugin-chart-table/test/testData.ts b/superset-frontend/plugins/plugin-chart-table/test/testData.ts
index 752b045ba4..02d88e021e 100644
--- a/superset-frontend/plugins/plugin-chart-table/test/testData.ts
+++ b/superset-frontend/plugins/plugin-chart-table/test/testData.ts
@@ -21,10 +21,10 @@ import {
ChartProps,
DatasourceType,
QueryMode,
- supersetTheme,
ComparisonType,
VizType,
} from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { TableChartProps, TableChartFormData } from '../src/types';
diff --git a/superset-frontend/plugins/plugin-chart-table/test/testHelpers.tsx b/superset-frontend/plugins/plugin-chart-table/test/testHelpers.tsx
index 95ee707abb..ebb0db9bd7 100644
--- a/superset-frontend/plugins/plugin-chart-table/test/testHelpers.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/test/testHelpers.tsx
@@ -17,11 +17,11 @@
* under the License.
*/
import {
- EmotionCacheProvider,
- createEmotionCache,
supersetTheme,
ThemeProvider,
-} from '@superset-ui/core';
+ EmotionCacheProvider,
+ createEmotionCache,
+} from '@apache-superset/core/ui';
const emotionCache = createEmotionCache({
key: 'test',
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/package.json b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
index 6a97030799..65a95696b6 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/package.json
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/package.json
@@ -37,6 +37,7 @@
"peerDependencies": {
"@superset-ui/chart-controls": "*",
"@superset-ui/core": "*",
+ "@apache-superset/core": "*",
"@types/lodash": "*",
"@types/react": "*",
"react": "^17.0.2"
diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
index 11b2fe2179..5818b3e7bc 100644
--- a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
+++ b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
@@ -24,12 +24,8 @@ import {
DeriveEncoding,
Encoder,
} from 'encodable';
-import {
- SupersetTheme,
- withTheme,
- seed,
- CategoricalColorNamespace,
-} from '@superset-ui/core';
+import { seed, CategoricalColorNamespace } from '@superset-ui/core';
+import { SupersetTheme, withTheme } from '@apache-superset/core/ui';
import { isEqual } from 'lodash';
const seedRandom = seed('superset-ui');
diff --git a/superset-frontend/spec/helpers/ProviderWrapper.tsx b/superset-frontend/spec/helpers/ProviderWrapper.tsx
index 144d75401a..d8d63cf3de 100644
--- a/superset-frontend/spec/helpers/ProviderWrapper.tsx
+++ b/superset-frontend/spec/helpers/ProviderWrapper.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { ThemeProvider } from '@superset-ui/core';
+import { ThemeProvider } from '@apache-superset/core/ui';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import { QueryParamProvider } from 'use-query-params';
diff --git a/superset-frontend/spec/helpers/testing-library.tsx b/superset-frontend/spec/helpers/testing-library.tsx
index ea14a8e17b..f7fbf44b20 100644
--- a/superset-frontend/spec/helpers/testing-library.tsx
+++ b/superset-frontend/spec/helpers/testing-library.tsx
@@ -28,10 +28,9 @@ import {
} from '@testing-library/react';
import {
ThemeProvider,
- // eslint-disable-next-line no-restricted-imports
- supersetTheme,
themeObject,
-} from '@superset-ui/core';
+ supersetTheme,
+} from '@apache-superset/core/ui';
import { SupersetThemeProvider } from 'src/theme/ThemeProvider';
import { ThemeController } from 'src/theme/ThemeController';
import { BrowserRouter } from 'react-router-dom';
diff --git a/superset-frontend/src/SqlLab/SqlLabGlobalStyles.tsx b/superset-frontend/src/SqlLab/SqlLabGlobalStyles.tsx
index 5fa75de1bf..648067cbab 100644
--- a/superset-frontend/src/SqlLab/SqlLabGlobalStyles.tsx
+++ b/superset-frontend/src/SqlLab/SqlLabGlobalStyles.tsx
@@ -18,7 +18,7 @@
*/
import { Global } from '@emotion/react';
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
export const SqlLabGlobalStyles = () => (
<Global
diff --git a/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
index 5d814cf565..bd01735f75 100644
--- a/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
+++ b/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx
@@ -19,7 +19,8 @@
import { useState, useEffect, useRef } from 'react';
import type { IAceEditor } from 'react-ace/lib/types';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
-import { css, usePrevious, useTheme } from '@superset-ui/core';
+import { usePrevious } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Global } from '@emotion/react';
import { SQL_EDITOR_LEFTBAR_WIDTH } from 'src/SqlLab/constants';
diff --git a/superset-frontend/src/SqlLab/components/App/index.tsx b/superset-frontend/src/SqlLab/components/App/index.tsx
index 643768570b..b0d197577a 100644
--- a/superset-frontend/src/SqlLab/components/App/index.tsx
+++ b/superset-frontend/src/SqlLab/components/App/index.tsx
@@ -20,7 +20,8 @@ import { PureComponent } from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import Mousetrap from 'mousetrap';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { throttle } from 'lodash';
import {
LOCALSTORAGE_MAX_USAGE_KB,
diff --git a/superset-frontend/src/SqlLab/components/ColumnElement/index.tsx b/superset-frontend/src/SqlLab/components/ColumnElement/index.tsx
index 6150c6e3a7..6a22a39fc0 100644
--- a/superset-frontend/src/SqlLab/components/ColumnElement/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ColumnElement/index.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode } from 'react';
import { ClassNames } from '@emotion/react';
-import { styled, useTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { Flex, Tooltip } from '@superset-ui/core/components';
const StyledTooltip = (props: any) => {
diff --git a/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.tsx b/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.tsx
index 88fca28e97..242cd3dfa6 100644
--- a/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.tsx
+++ b/superset-frontend/src/SqlLab/components/EstimateQueryCostButton/index.tsx
@@ -18,10 +18,10 @@
*/
import { useMemo } from 'react';
import { useSelector } from 'react-redux';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, Alert } from '@apache-superset/core/ui';
import {
- Alert,
Button,
Loading,
ModalTrigger,
diff --git a/superset-frontend/src/SqlLab/components/KeyboardShortcutButton/index.tsx b/superset-frontend/src/SqlLab/components/KeyboardShortcutButton/index.tsx
index e9749a5618..b17d8e15de 100644
--- a/superset-frontend/src/SqlLab/components/KeyboardShortcutButton/index.tsx
+++ b/superset-frontend/src/SqlLab/components/KeyboardShortcutButton/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FC } from 'react';
-import { styled, t, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { ModalTrigger } from '@superset-ui/core/components';
import { detectOS } from 'src/utils/common';
diff --git a/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
index 0ae67caa36..9e1c46c955 100644
--- a/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryHistory/index.tsx
@@ -21,14 +21,8 @@ import { shallowEqual, useSelector } from 'react-redux';
import { useInView } from 'react-intersection-observer';
import { omit } from 'lodash';
import { EmptyState, Skeleton } from '@superset-ui/core/components';
-import {
- t,
- styled,
- css,
- FeatureFlag,
- isFeatureEnabled,
- useTheme,
-} from '@superset-ui/core';
+import { t, FeatureFlag, isFeatureEnabled } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import QueryTable from 'src/SqlLab/components/QueryTable';
import { SqlLabRootState } from 'src/SqlLab/types';
import { useEditorQueriesQuery } from 'src/hooks/apiResources/queries';
diff --git a/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx b/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
index 5d2625dbc7..1a56ce9b46 100644
--- a/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryStateLabel/index.tsx
@@ -18,7 +18,8 @@
*/
import { Label } from '@superset-ui/core/components';
import { STATE_TYPE_MAP, STATE_TYPE_MAP_LOCALIZED } from 'src/SqlLab/constants';
-import { styled, Query } from '@superset-ui/core';
+import { Query } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
interface QueryStateLabelProps {
query: Pick<Query, 'state'>;
diff --git a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
index 38333ab88e..a0b03e9ccc 100644
--- a/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
+++ b/superset-frontend/src/SqlLab/components/QueryTable/index.tsx
@@ -27,7 +27,8 @@ import {
TableView,
} from '@superset-ui/core/components';
import ProgressBar from '@superset-ui/core/components/ProgressBar';
-import { t, useTheme, QueryResponse } from '@superset-ui/core';
+import { t, QueryResponse } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { useDispatch, useSelector } from 'react-redux';
import {
diff --git a/superset-frontend/src/SqlLab/components/QueryTable/styles.ts b/superset-frontend/src/SqlLab/components/QueryTable/styles.ts
index 198733de44..bf6623af3f 100644
--- a/superset-frontend/src/SqlLab/components/QueryTable/styles.ts
+++ b/superset-frontend/src/SqlLab/components/QueryTable/styles.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { IconTooltip } from '@superset-ui/core/components';
export const StaticPosition = css`
diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
index 7132defd92..3297aa7b94 100644
--- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx
@@ -30,7 +30,6 @@ import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { useHistory } from 'react-router-dom';
import { pick } from 'lodash';
import {
- Alert,
Button,
ButtonGroup,
Tooltip,
@@ -47,16 +46,14 @@ import {
import { nanoid } from 'nanoid';
import {
QueryState,
- styled,
t,
tn,
- useTheme,
usePrevious,
- css,
getNumberFormatter,
getExtensionsRegistry,
ErrorTypeEnum,
} from '@superset-ui/core';
+import { styled, useTheme, css, Alert } from '@apache-superset/core/ui';
import {
ISaveableDatasource,
ISimpleColumn,
diff --git a/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx b/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx
index cc1103699b..5b86830e9f 100644
--- a/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx
+++ b/superset-frontend/src/SqlLab/components/RunQueryActionButton/index.tsx
@@ -18,7 +18,8 @@
*/
import { useMemo, FC, ReactElement } from 'react';
-import { t, styled, useTheme, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme, SupersetTheme } from '@apache-superset/core/ui';
import { Button, DropdownButton } from '@superset-ui/core/components';
import { IconType, Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx
index d65e1f90a7..ada65239f8 100644
--- a/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveDatasetActionButton/index.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Button, DropdownButton } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
index 9a8d98ef86..721b908187 100644
--- a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx
@@ -31,7 +31,6 @@ import {
Flex,
} from '@superset-ui/core/components';
import {
- styled,
t,
SupersetClient,
JsonResponse,
@@ -43,6 +42,7 @@ import {
isFeatureEnabled,
getClientErrorObject,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { extendedDayjs as dayjs } from '@superset-ui/core/utils/dates';
import { useSelector, useDispatch } from 'react-redux';
import rison from 'rison';
diff --git a/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx b/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx
index 7d45bd351e..bdaa4fa340 100644
--- a/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SaveQuery/index.tsx
@@ -18,7 +18,8 @@
*/
import { useState, useEffect, useMemo, ChangeEvent } from 'react';
import type { DatabaseObject } from 'src/features/databases/types';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
Input,
Button,
diff --git a/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx b/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx
index 7c68662cf6..48c0a51a25 100644
--- a/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx
@@ -21,7 +21,8 @@ import { FunctionComponent, useState, useRef, ChangeEvent } from 'react';
import SchemaForm, { FormProps } from '@rjsf/core';
import { FormValidation } from '@rjsf/utils';
import validator from '@rjsf/validator-ajv8';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { parseDate } from 'chrono-node';
import {
ModalTrigger,
diff --git a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
index 7249d5909f..97f25e67a9 100644
--- a/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
+++ b/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/index.tsx
@@ -16,12 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- t,
- getClientErrorObject,
- SupersetClient,
- css,
-} from '@superset-ui/core';
+import { t, getClientErrorObject, SupersetClient } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Button } from '@superset-ui/core/components';
import { CopyToClipboard } from 'src/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/SqlLab/components/SouthPane/Results.tsx b/superset-frontend/src/SqlLab/components/SouthPane/Results.tsx
index e64dd74be8..d7a2b0c44f 100644
--- a/superset-frontend/src/SqlLab/components/SouthPane/Results.tsx
+++ b/superset-frontend/src/SqlLab/components/SouthPane/Results.tsx
@@ -18,8 +18,9 @@
*/
import { FC } from 'react';
import { shallowEqual, useSelector } from 'react-redux';
-import { Alert, EmptyState } from '@superset-ui/core/components';
-import { FeatureFlag, styled, t, isFeatureEnabled } from '@superset-ui/core';
+import { EmptyState } from '@superset-ui/core/components';
+import { FeatureFlag, t, isFeatureEnabled } from '@superset-ui/core';
+import { styled, Alert } from '@apache-superset/core/ui';
import { SqlLabRootState } from 'src/SqlLab/types';
import ResultSet from '../ResultSet';
diff --git a/superset-frontend/src/SqlLab/components/SouthPane/index.tsx b/superset-frontend/src/SqlLab/components/SouthPane/index.tsx
index 27567be6ac..0747c5b86a 100644
--- a/superset-frontend/src/SqlLab/components/SouthPane/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SouthPane/index.tsx
@@ -20,7 +20,8 @@ import { createRef, useCallback, useMemo } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { nanoid } from 'nanoid';
import Tabs from '@superset-ui/core/components/Tabs';
-import { css, styled, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { removeTables, setActiveSouthPaneTab } from 'src/SqlLab/actions/sqlLab';
diff --git a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
index 4585ed09cd..9c3795e29c 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor/index.tsx
@@ -33,16 +33,14 @@ import useEffectEvent from 'src/hooks/useEffectEvent';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import AutoSizer from 'react-virtualized-auto-sizer';
import {
- css,
FeatureFlag,
isFeatureEnabled,
- styled,
t,
- useTheme,
getExtensionsRegistry,
QueryResponse,
Query,
} from '@superset-ui/core';
+import { css, styled, useTheme, Alert } from '@apache-superset/core/ui';
import type {
QueryEditor,
SqlLabRootState,
@@ -52,7 +50,6 @@ import type { DatabaseObject } from 'src/features/databases/types';
import { debounce, isEmpty, noop } from 'lodash';
import Mousetrap from 'mousetrap';
import {
- Alert,
Button,
Dropdown,
EmptyState,
diff --git a/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.tsx
index a6667270ec..3223236371 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.tsx
@@ -34,7 +34,8 @@ import {
} from 'src/SqlLab/actions/sqlLab';
import { Button, EmptyState, Icons } from '@superset-ui/core/components';
import { type DatabaseObject } from 'src/components';
-import { t, styled, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { TableSelectorMultiple } from 'src/components/TableSelector';
import useQueryEditor from 'src/SqlLab/hooks/useQueryEditor';
import {
diff --git a/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx b/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx
index e78977d1ac..84b46884e8 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditorTabHeader/index.tsx
@@ -22,14 +22,8 @@ import { bindActionCreators } from 'redux';
import { useSelector, useDispatch, shallowEqual } from 'react-redux';
import { MenuDotsDropdown } from '@superset-ui/core/components';
import { Menu, MenuItemType } from '@superset-ui/core/components/Menu';
-import {
- styled,
- css,
- t,
- QueryState,
- SupersetTheme,
- useTheme,
-} from '@superset-ui/core';
+import { t, QueryState } from '@superset-ui/core';
+import { styled, css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import {
removeQueryEditor,
removeAllOtherQueryEditors,
diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
index 91f6c5960e..9fa47a93fd 100644
--- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.tsx
@@ -22,13 +22,8 @@ import { EditableTabs } from '@superset-ui/core/components/Tabs';
import { connect } from 'react-redux';
import URI from 'urijs';
import type { QueryEditor, SqlLabRootState } from 'src/SqlLab/types';
-import {
- FeatureFlag,
- styled,
- t,
- isFeatureEnabled,
- css,
-} from '@superset-ui/core';
+import { FeatureFlag, t, isFeatureEnabled } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Logger } from 'src/logger/LogUtils';
import { EmptyState, Tooltip } from '@superset-ui/core/components';
import { detectOS } from 'src/utils/common';
diff --git a/superset-frontend/src/SqlLab/components/TableElement/index.tsx b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
index 309c74d8b9..251c3cb7dc 100644
--- a/superset-frontend/src/SqlLab/components/TableElement/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TableElement/index.tsx
@@ -31,7 +31,8 @@ import {
type CollapseProps,
} from '@superset-ui/core/components';
import { CopyToClipboard } from 'src/components';
-import { t, styled, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { debounce } from 'lodash';
import {
diff --git a/superset-frontend/src/SqlLab/components/TablePreview/index.tsx b/superset-frontend/src/SqlLab/components/TablePreview/index.tsx
index 2cad2baea6..d52b140690 100644
--- a/superset-frontend/src/SqlLab/components/TablePreview/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TablePreview/index.tsx
@@ -19,17 +19,10 @@
import { type FC, useCallback, useMemo, useRef, useState } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { nanoid } from 'nanoid';
-import {
- ClientErrorObject,
- css,
- getExtensionsRegistry,
- styled,
- t,
- useTheme,
-} from '@superset-ui/core';
+import { ClientErrorObject, getExtensionsRegistry, t } from '@superset-ui/core';
+import { css, styled, Alert, useTheme } from '@apache-superset/core/ui';
import {
SafeMarkdown,
- Alert,
Breadcrumb,
Card,
Skeleton,
diff --git a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
index e10e0c78e4..03717f4104 100644
--- a/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
+++ b/superset-frontend/src/SqlLab/components/TemplateParamsEditor/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect } from 'react';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { debounce } from 'lodash';
import {
Badge,
diff --git a/superset-frontend/src/components/Chart/Chart.tsx b/superset-frontend/src/components/Chart/Chart.tsx
index 02808d465f..12522b5314 100644
--- a/superset-frontend/src/components/Chart/Chart.tsx
+++ b/superset-frontend/src/components/Chart/Chart.tsx
@@ -23,13 +23,13 @@ import {
isFeatureEnabled,
logging,
QueryFormData,
- styled,
t,
SqlaFormData,
ClientErrorObject,
type JsonObject,
type AgGridChartState,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import type { ChartState, Datasource, ChartStatus } from 'src/explore/types';
import { PLACEHOLDER_DATASOURCE } from 'src/dashboard/constants';
import { EmptyState, Loading } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/components/Chart/ChartContextMenu/ChartContextMenu.tsx b/superset-frontend/src/components/Chart/ChartContextMenu/ChartContextMenu.tsx
index 2606a1cba7..172f5c6068 100644
--- a/superset-frontend/src/components/Chart/ChartContextMenu/ChartContextMenu.tsx
+++ b/superset-frontend/src/components/Chart/ChartContextMenu/ChartContextMenu.tsx
@@ -40,8 +40,8 @@ import {
isFeatureEnabled,
QueryFormData,
t,
- useTheme,
} from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { RootState } from 'src/dashboard/types';
import { MenuItem } from '@superset-ui/core/components/Menu';
import { usePermissions } from 'src/hooks/usePermissions';
diff --git a/superset-frontend/src/components/Chart/DisabledMenuItemTooltip.tsx b/superset-frontend/src/components/Chart/DisabledMenuItemTooltip.tsx
index b74ccb7e17..8e47d36ddc 100644
--- a/superset-frontend/src/components/Chart/DisabledMenuItemTooltip.tsx
+++ b/superset-frontend/src/components/Chart/DisabledMenuItemTooltip.tsx
@@ -18,7 +18,7 @@
*/
import { ReactNode } from 'react';
-import { css, SupersetTheme } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByChart.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByChart.tsx
index 389f137388..6463948827 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillByChart.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillByChart.tsx
@@ -21,9 +21,9 @@ import {
BaseFormData,
QueryData,
SuperChart,
- css,
ContextMenuFilters,
} from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Dataset } from '../types';
interface DrillByChartProps {
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
index f118d34c7d..eec8fd8ce5 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillByModal.tsx
@@ -23,19 +23,17 @@ import {
BaseFormData,
Column,
QueryData,
- css,
ensureIsArray,
isDefined,
t,
- useTheme,
ContextMenuFilters,
AdhocFilter,
} from '@superset-ui/core';
+import { css, useTheme, Alert } from '@apache-superset/core/ui';
import { useDispatch, useSelector } from 'react-redux';
import { Link } from 'react-router-dom';
import {
Button,
- Alert,
Modal,
Loading,
Breadcrumb,
diff --git a/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx b/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
index 08c23001db..642fb42ab3 100644
--- a/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/DrillBySubmenu.tsx
@@ -31,12 +31,11 @@ import {
Behavior,
Column,
ContextMenuFilters,
- css,
ensureIsArray,
getChartMetadataRegistry,
t,
- useTheme,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import {
Constants,
Input,
diff --git a/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx b/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
index e8fb13e016..38c38ca2d0 100644
--- a/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/useDisplayModeToggle.tsx
@@ -18,7 +18,8 @@
*/
import { useMemo, useState } from 'react';
-import { css, SupersetTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import { Radio } from '@superset-ui/core/components/Radio';
import { DrillByType } from '../types';
diff --git a/superset-frontend/src/components/Chart/DrillBy/useResultsTableView.tsx b/superset-frontend/src/components/Chart/DrillBy/useResultsTableView.tsx
index bda96d35aa..7b2b85052c 100644
--- a/superset-frontend/src/components/Chart/DrillBy/useResultsTableView.tsx
+++ b/superset-frontend/src/components/Chart/DrillBy/useResultsTableView.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled, isDefined, QueryData, t } from '@superset-ui/core';
+import { isDefined, QueryData, t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { SingleQueryResultPane } from 'src/explore/components/DataTablesPane/components/SingleQueryResultPane';
import Tabs from '@superset-ui/core/components/Tabs';
diff --git a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailModal.tsx b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailModal.tsx
index 6f627fc6c6..faea69a624 100644
--- a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailModal.tsx
+++ b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailModal.tsx
@@ -21,11 +21,10 @@ import { useCallback, useContext, useMemo } from 'react';
import { useHistory } from 'react-router-dom';
import {
BinaryQueryObjectFilterClause,
- css,
QueryFormData,
t,
- useTheme,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Button, Modal } from '@superset-ui/core/components';
import { useSelector } from 'react-redux';
import { DashboardPageIdContext } from 'src/dashboard/containers/DashboardPage';
diff --git a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
index 94d63afa1e..bcc05abb30 100644
--- a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
+++ b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
@@ -28,13 +28,12 @@ import {
import { useSelector } from 'react-redux';
import {
BinaryQueryObjectFilterClause,
- css,
ensureIsArray,
JsonObject,
QueryFormData,
t,
- useTheme,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { useResizeDetector } from 'react-resize-detector';
import BooleanCell from '@superset-ui/core/components/Table/cell-renderers/BooleanCell';
diff --git a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailTableControls.tsx b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailTableControls.tsx
index ef2e06148a..0e0f0f9346 100644
--- a/superset-frontend/src/components/Chart/DrillDetail/DrillDetailTableControls.tsx
+++ b/superset-frontend/src/components/Chart/DrillDetail/DrillDetailTableControls.tsx
@@ -21,11 +21,10 @@ import { useCallback, useMemo } from 'react';
import { Tag } from 'src/components/Tag';
import {
BinaryQueryObjectFilterClause,
- css,
isAdhocColumn,
t,
- useTheme,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import RowCountLabel from 'src/components/RowCountLabel';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/components/Chart/MenuItemWithTruncation.tsx b/superset-frontend/src/components/Chart/MenuItemWithTruncation.tsx
index d766ee780b..45fb77ad2d 100644
--- a/superset-frontend/src/components/Chart/MenuItemWithTruncation.tsx
+++ b/superset-frontend/src/components/Chart/MenuItemWithTruncation.tsx
@@ -18,12 +18,8 @@
*/
import { ReactNode, CSSProperties, useCallback } from 'react';
-import {
- css,
- truncationCSS,
- useCSSTextTruncation,
- useTheme,
-} from '@superset-ui/core';
+import { truncationCSS, useCSSTextTruncation } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Menu, type ItemType } from '@superset-ui/core/components/Menu';
import { Flex, Tooltip } from '@superset-ui/core/components';
import { MenuItemProps } from 'antd';
diff --git a/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx b/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
index e8c47054dc..02988969e9 100644
--- a/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
+++ b/superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
@@ -28,14 +28,13 @@ import { isEmpty } from 'lodash';
import {
Behavior,
BinaryQueryObjectFilterClause,
- css,
extractQueryFields,
getChartMetadataRegistry,
QueryFormData,
removeHTMLTags,
- styled,
t,
} from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { useSelector } from 'react-redux';
import { type ItemType } from '@superset-ui/core/components/Menu';
import { RootState } from 'src/dashboard/types';
diff --git a/superset-frontend/src/components/CopyToClipboard/index.tsx b/superset-frontend/src/components/CopyToClipboard/index.tsx
index d790fd05a8..d822fee9f8 100644
--- a/superset-frontend/src/components/CopyToClipboard/index.tsx
+++ b/superset-frontend/src/components/CopyToClipboard/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { Component, cloneElement, ReactElement } from 'react';
-import { t, css, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import copyTextToClipboard from 'src/utils/copy';
import { Tooltip } from '@superset-ui/core/components';
import withToasts from '../MessageToasts/withToasts';
diff --git a/superset-frontend/src/components/CrudThemeProvider.tsx b/superset-frontend/src/components/CrudThemeProvider.tsx
index eafebf0f82..4ecc1c68ce 100644
--- a/superset-frontend/src/components/CrudThemeProvider.tsx
+++ b/superset-frontend/src/components/CrudThemeProvider.tsx
@@ -18,7 +18,7 @@
*/
import { ReactNode, useEffect, useState } from 'react';
import { useThemeContext } from 'src/theme/ThemeProvider';
-import { Theme } from '@superset-ui/core';
+import { Theme } from '@apache-superset/core/ui';
import { Loading } from '@superset-ui/core/components';
interface CrudThemeProviderProps {
diff --git a/superset-frontend/src/components/DatabaseSelector/index.tsx b/superset-frontend/src/components/DatabaseSelector/index.tsx
index ccb1e1a22e..6fc50b3e55 100644
--- a/superset-frontend/src/components/DatabaseSelector/index.tsx
+++ b/superset-frontend/src/components/DatabaseSelector/index.tsx
@@ -24,7 +24,8 @@ import {
useRef,
useCallback,
} from 'react';
-import { styled, SupersetClient, SupersetError, t } from '@superset-ui/core';
+import { SupersetClient, SupersetError, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import rison from 'rison';
import RefreshLabel from '@superset-ui/core/components/RefreshLabel';
import { useToasts } from 'src/components/MessageToasts/withToasts';
diff --git a/superset-frontend/src/components/DatabaseSelector/styles.ts b/superset-frontend/src/components/DatabaseSelector/styles.ts
index db1ca766ca..5b6b576aa1 100644
--- a/superset-frontend/src/components/DatabaseSelector/styles.ts
+++ b/superset-frontend/src/components/DatabaseSelector/styles.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { FormLabel } from '@superset-ui/core/components';
export const StyledFormLabel = styled(FormLabel)`
diff --git a/superset-frontend/src/components/Datasource/ChangeDatasourceModal/index.tsx b/superset-frontend/src/components/Datasource/ChangeDatasourceModal/index.tsx
index 8ec8d560b6..3f95a756ad 100644
--- a/superset-frontend/src/components/Datasource/ChangeDatasourceModal/index.tsx
+++ b/superset-frontend/src/components/Datasource/ChangeDatasourceModal/index.tsx
@@ -25,14 +25,9 @@ import {
ChangeEvent,
} from 'react';
+import { SupersetClient, t, getClientErrorObject } from '@superset-ui/core';
+import { styled, Alert } from '@apache-superset/core/ui';
import {
- SupersetClient,
- t,
- styled,
- getClientErrorObject,
-} from '@superset-ui/core';
-import {
- Alert,
Button,
Constants,
EmptyWrapperType,
@@ -285,7 +280,6 @@ const ChangeDatasourceModal: FunctionComponent<ChangeDatasourceModalProps> = ({
{!confirmChange && (
<>
<Alert
- roomBelow
type="warning"
css={theme => ({ marginBottom: theme.sizeUnit * 4 })}
message={
diff --git a/superset-frontend/src/components/Datasource/DatasourceModal/index.tsx b/superset-frontend/src/components/Datasource/DatasourceModal/index.tsx
index 598aca2484..32fcf6f977 100644
--- a/superset-frontend/src/components/Datasource/DatasourceModal/index.tsx
+++ b/superset-frontend/src/components/Datasource/DatasourceModal/index.tsx
@@ -19,18 +19,15 @@
import { FunctionComponent, useState, useEffect, useCallback } from 'react';
import { useSelector } from 'react-redux';
import {
- styled,
SupersetClient,
getClientErrorObject,
t,
SupersetError,
- useTheme,
- css,
} from '@superset-ui/core';
+import { styled, useTheme, css, Alert } from '@apache-superset/core/ui';
import {
Icons,
- Alert,
Button,
Checkbox,
Modal,
diff --git a/superset-frontend/src/components/Datasource/components/CollectionTable/index.tsx b/superset-frontend/src/components/Datasource/components/CollectionTable/index.tsx
index 01887b3add..2f010b02a3 100644
--- a/superset-frontend/src/components/Datasource/components/CollectionTable/index.tsx
+++ b/superset-frontend/src/components/Datasource/components/CollectionTable/index.tsx
@@ -18,7 +18,8 @@
*/
import { PureComponent, ReactNode } from 'react';
import { nanoid } from 'nanoid';
-import { t, styled, css, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, SupersetTheme } from '@apache-superset/core/ui';
import { Icons, Button, InfoTooltip } from '@superset-ui/core/components';
import { FilterValue } from 'react-table';
import Table, {
diff --git a/superset-frontend/src/components/Datasource/components/DatasourceEditor/DatasourceEditor.jsx b/superset-frontend/src/components/Datasource/components/DatasourceEditor/DatasourceEditor.jsx
index 22ede5c41d..d5a9b26dcc 100644
--- a/superset-frontend/src/components/Datasource/components/DatasourceEditor/DatasourceEditor.jsx
+++ b/superset-frontend/src/components/Datasource/components/DatasourceEditor/DatasourceEditor.jsx
@@ -22,19 +22,22 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { Radio } from '@superset-ui/core/components/Radio';
import {
- css,
isFeatureEnabled,
getCurrencySymbol,
ensureIsArray,
FeatureFlag,
- styled,
SupersetClient,
- themeObject,
t,
- withTheme,
getClientErrorObject,
getExtensionsRegistry,
} from '@superset-ui/core';
+import {
+ css,
+ styled,
+ themeObject,
+ Alert,
+ withTheme,
+} from '@apache-superset/core/ui';
import Tabs from '@superset-ui/core/components/Tabs';
import WarningIconWithTooltip from '@superset-ui/core/components/WarningIconWithTooltip';
import TableSelector from 'src/components/TableSelector';
@@ -45,7 +48,6 @@ import SpatialControl from 'src/explore/components/controls/SpatialControl';
import withToasts from 'src/components/MessageToasts/withToasts';
import CurrencyControl from 'src/explore/components/controls/CurrencyControl';
import {
- Alert,
AsyncSelect,
Badge,
Button,
diff --git a/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/index.tsx b/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/index.tsx
index 48a1b6e044..5f6e4d1548 100644
--- a/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/index.tsx
+++ b/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DashboardLinksExternal/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { GenericLink } from 'src/components';
const DashboardLinksWrapper = styled.span`
diff --git a/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/index.tsx b/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/index.tsx
index a3a1244895..ee8cff11a8 100644
--- a/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/index.tsx
+++ b/superset-frontend/src/components/Datasource/components/DatasourceEditor/components/DatasetUsageTab/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect, useMemo, useCallback, useRef } from 'react';
-import { styled, t, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { CertifiedBadge, InfoTooltip } from '@superset-ui/core/components';
import Table, {
TableSize,
diff --git a/superset-frontend/src/components/Datasource/components/Field/index.tsx b/superset-frontend/src/components/Datasource/components/Field/index.tsx
index c663d50ae8..9af9e55c55 100644
--- a/superset-frontend/src/components/Datasource/components/Field/index.tsx
+++ b/superset-frontend/src/components/Datasource/components/Field/index.tsx
@@ -18,7 +18,7 @@
*/
import { useCallback, ReactNode, ReactElement, cloneElement } from 'react';
-import { css, SupersetTheme, useTheme } from '@superset-ui/core';
+import { css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import {
Icons,
Tooltip,
diff --git a/superset-frontend/src/components/Datasource/components/Fieldset/index.tsx b/superset-frontend/src/components/Datasource/components/Fieldset/index.tsx
index 44ac4be0b9..50cd747c95 100644
--- a/superset-frontend/src/components/Datasource/components/Fieldset/index.tsx
+++ b/superset-frontend/src/components/Datasource/components/Fieldset/index.tsx
@@ -18,7 +18,7 @@
*/
import { ReactNode, useCallback } from 'react';
import { Divider, Form, Typography } from '@superset-ui/core/components';
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { recurseReactClone } from '../../utils';
import Field from '../Field';
diff --git a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx
index 17048e1e53..804612b891 100644
--- a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx
+++ b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.test.tsx
@@ -18,7 +18,8 @@
*/
import { render, screen } from 'spec/helpers/testing-library';
-import { ErrorLevel, supersetTheme } from '@superset-ui/core';
+import { ErrorLevel } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { BasicErrorAlert } from './BasicErrorAlert';
jest.mock(
diff --git a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx
index c8454e3998..92ce75e080 100644
--- a/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx
+++ b/superset-frontend/src/components/ErrorMessage/BasicErrorAlert.tsx
@@ -16,12 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import {
- ErrorLevel,
- styled,
- useTheme,
- getColorVariants,
-} from '@superset-ui/core';
+import { ErrorLevel } from '@superset-ui/core';
+import { styled, useTheme, getColorVariants } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components';
const StyledContent = styled.div`
diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
index 6a99b63ccb..f907d4837f 100644
--- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
+++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx
@@ -17,9 +17,9 @@
* under the License.
*/
import { useState } from 'react';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme, Alert } from '@apache-superset/core/ui';
import {
- Alert,
Icons,
Modal,
Tooltip,
diff --git a/superset-frontend/src/components/ErrorMessage/IssueCode.tsx b/superset-frontend/src/components/ErrorMessage/IssueCode.tsx
index f964f0907d..cdb68e2941 100644
--- a/superset-frontend/src/components/ErrorMessage/IssueCode.tsx
+++ b/superset-frontend/src/components/ErrorMessage/IssueCode.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { Icons } from '@superset-ui/core/components';
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
interface IssueCodeProps {
code: number;
diff --git a/superset-frontend/src/components/GridTable/Header.tsx b/superset-frontend/src/components/GridTable/Header.tsx
index 456a7ddb22..afbb7e6d2e 100644
--- a/superset-frontend/src/components/GridTable/Header.tsx
+++ b/superset-frontend/src/components/GridTable/Header.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useCallback, useEffect, useRef, useState } from 'react';
-import { styled, useTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import type { Column, GridApi } from 'ag-grid-community';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/components/GridTable/HeaderMenu.tsx b/superset-frontend/src/components/GridTable/HeaderMenu.tsx
index 3149fa2738..c9425ef3de 100644
--- a/superset-frontend/src/components/GridTable/HeaderMenu.tsx
+++ b/superset-frontend/src/components/GridTable/HeaderMenu.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useCallback } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import type { Column, ColumnPinnedType, GridApi } from 'ag-grid-community';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/components/GridTable/index.tsx b/superset-frontend/src/components/GridTable/index.tsx
index e8b260f28f..2860847df6 100644
--- a/superset-frontend/src/components/GridTable/index.tsx
+++ b/superset-frontend/src/components/GridTable/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { useCallback, useMemo } from 'react';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { ThemedAgGridReact } from '@superset-ui/core/components';
import type { Column, GridOptions } from 'ag-grid-community';
import type { AgGridReactProps } from 'ag-grid-react';
diff --git a/superset-frontend/src/components/ImportModal/ErrorAlert.tsx b/superset-frontend/src/components/ImportModal/ErrorAlert.tsx
index 0d81b818e9..a7eecee14c 100644
--- a/superset-frontend/src/components/ImportModal/ErrorAlert.tsx
+++ b/superset-frontend/src/components/ImportModal/ErrorAlert.tsx
@@ -18,10 +18,10 @@
*/
import { FunctionComponent } from 'react';
-import { t, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { SupersetTheme, Alert } from '@apache-superset/core/ui';
import { getDatabaseDocumentationLinks } from 'src/views/CRUD/hooks';
-import { Alert } from '@superset-ui/core/components';
import { antdWarningAlertStyles } from './styles';
const supersetTextDocs = getDatabaseDocumentationLinks();
diff --git a/superset-frontend/src/components/ImportModal/index.tsx b/superset-frontend/src/components/ImportModal/index.tsx
index ae6e4447cf..6418d40b6a 100644
--- a/superset-frontend/src/components/ImportModal/index.tsx
+++ b/superset-frontend/src/components/ImportModal/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FunctionComponent, useEffect, useState, ChangeEvent } from 'react';
-import { styled, t, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { useImportResource } from 'src/views/CRUD/hooks';
import {
Upload,
diff --git a/superset-frontend/src/components/ImportModal/styles.ts b/superset-frontend/src/components/ImportModal/styles.ts
index 07d22b080f..99b660512d 100644
--- a/superset-frontend/src/components/ImportModal/styles.ts
+++ b/superset-frontend/src/components/ImportModal/styles.ts
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css, SupersetTheme } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
export const antdWarningAlertStyles = (theme: SupersetTheme) => css`
margin: ${theme.sizeUnit * 4}px 0;
diff --git a/superset-frontend/src/components/ListView/ActionsBar.tsx b/superset-frontend/src/components/ListView/ActionsBar.tsx
index 40959e8f36..8d798eb81f 100644
--- a/superset-frontend/src/components/ListView/ActionsBar.tsx
+++ b/superset-frontend/src/components/ListView/ActionsBar.tsx
@@ -36,7 +36,7 @@
* under the License.
*/
import { ReactElement } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
IconNameType,
Icons,
diff --git a/superset-frontend/src/components/ListView/CardCollection.tsx b/superset-frontend/src/components/ListView/CardCollection.tsx
index 14e22efa0a..7fe7d4505e 100644
--- a/superset-frontend/src/components/ListView/CardCollection.tsx
+++ b/superset-frontend/src/components/ListView/CardCollection.tsx
@@ -18,7 +18,7 @@
*/
import { ReactNode, MouseEvent as ReactMouseEvent } from 'react';
import { TableInstance, Row, UseRowSelectRowProps } from 'react-table';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import cx from 'classnames';
interface CardCollectionProps {
diff --git a/superset-frontend/src/components/ListView/CardSortSelect.tsx b/superset-frontend/src/components/ListView/CardSortSelect.tsx
index 9be9b7cc1b..2dfb6c5044 100644
--- a/superset-frontend/src/components/ListView/CardSortSelect.tsx
+++ b/superset-frontend/src/components/ListView/CardSortSelect.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useMemo } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { FormLabel, Select } from '@superset-ui/core/components';
import { SELECT_WIDTH } from './utils';
import { CardSortSelectOption, SortColumn } from './types';
diff --git a/superset-frontend/src/components/ListView/CrossLinks.tsx b/superset-frontend/src/components/ListView/CrossLinks.tsx
index c78d6a8b18..05c5cee227 100644
--- a/superset-frontend/src/components/ListView/CrossLinks.tsx
+++ b/superset-frontend/src/components/ListView/CrossLinks.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { memo, useMemo } from 'react';
-import { styled, useTruncation } from '@superset-ui/core';
+import { useTruncation } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Link } from 'react-router-dom';
import CrossLinksTooltip from './CrossLinksTooltip';
diff --git a/superset-frontend/src/components/ListView/CrossLinksTooltip.tsx b/superset-frontend/src/components/ListView/CrossLinksTooltip.tsx
index ffde1da90c..069f9c5638 100644
--- a/superset-frontend/src/components/ListView/CrossLinksTooltip.tsx
+++ b/superset-frontend/src/components/ListView/CrossLinksTooltip.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Link } from 'react-router-dom';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/components/ListView/Filters/Base.ts b/superset-frontend/src/components/ListView/Filters/Base.ts
index 3c8c32521a..7f5fd9d05e 100644
--- a/superset-frontend/src/components/ListView/Filters/Base.ts
+++ b/superset-frontend/src/components/ListView/Filters/Base.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Flex } from '@superset-ui/core/components';
interface FilterContainerProps {
diff --git a/superset-frontend/src/components/ListView/Filters/NumericalRange.tsx b/superset-frontend/src/components/ListView/Filters/NumericalRange.tsx
index 3023fd896d..40cc0b961a 100644
--- a/superset-frontend/src/components/ListView/Filters/NumericalRange.tsx
+++ b/superset-frontend/src/components/ListView/Filters/NumericalRange.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, forwardRef, useImperativeHandle, RefObject } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { InputNumber } from '@superset-ui/core/components/Input';
import { FormLabel } from '@superset-ui/core/components/Form';
import type { BaseFilter, FilterHandler } from './types';
diff --git a/superset-frontend/src/components/ListView/Filters/Search.tsx b/superset-frontend/src/components/ListView/Filters/Search.tsx
index cad88f9740..25df6632d0 100644
--- a/superset-frontend/src/components/ListView/Filters/Search.tsx
+++ b/superset-frontend/src/components/ListView/Filters/Search.tsx
@@ -24,7 +24,8 @@ import {
ChangeEvent,
} from 'react';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import {
Input,
InfoTooltip,
diff --git a/superset-frontend/src/components/ListView/Filters/index.tsx b/superset-frontend/src/components/ListView/Filters/index.tsx
index 391f2cba2e..abac7d54e1 100644
--- a/superset-frontend/src/components/ListView/Filters/index.tsx
+++ b/superset-frontend/src/components/ListView/Filters/index.tsx
@@ -24,7 +24,7 @@ import {
RefObject,
} from 'react';
-import { withTheme } from '@superset-ui/core';
+import { withTheme } from '@apache-superset/core/ui';
import type {
ListViewFilterValue as FilterValue,
diff --git a/superset-frontend/src/components/ListView/ListView.tsx b/superset-frontend/src/components/ListView/ListView.tsx
index 100ac94377..80d4951680 100644
--- a/superset-frontend/src/components/ListView/ListView.tsx
+++ b/superset-frontend/src/components/ListView/ListView.tsx
@@ -16,13 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, Alert } from '@apache-superset/core/ui';
import { useCallback, useEffect, useRef, useState, ReactNode } from 'react';
import cx from 'classnames';
import TableCollection from '@superset-ui/core/components/TableCollection';
import BulkTagModal from 'src/features/tags/BulkTagModal';
import {
- Alert,
Button,
Checkbox,
Icons,
diff --git a/superset-frontend/src/components/MessageToasts/Toast.tsx b/superset-frontend/src/components/MessageToasts/Toast.tsx
index a187abf2fb..6370b7002a 100644
--- a/superset-frontend/src/components/MessageToasts/Toast.tsx
+++ b/superset-frontend/src/components/MessageToasts/Toast.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css, SupersetTheme, useTheme } from '@superset-ui/core';
+import { styled, css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import cx from 'classnames';
import { Interweave } from 'interweave';
import { useCallback, useEffect, useRef, useState } from 'react';
diff --git a/superset-frontend/src/components/MessageToasts/ToastPresenter.tsx b/superset-frontend/src/components/MessageToasts/ToastPresenter.tsx
index 1de0e15978..3fba4dcb5b 100644
--- a/superset-frontend/src/components/MessageToasts/ToastPresenter.tsx
+++ b/superset-frontend/src/components/MessageToasts/ToastPresenter.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { ToastMeta } from 'src/components/MessageToasts/types';
import Toast from './Toast';
diff --git a/superset-frontend/src/components/Modal/CollapsibleModalSection.tsx b/superset-frontend/src/components/Modal/CollapsibleModalSection.tsx
index a18131c245..a83114ba94 100644
--- a/superset-frontend/src/components/Modal/CollapsibleModalSection.tsx
+++ b/superset-frontend/src/components/Modal/CollapsibleModalSection.tsx
@@ -18,7 +18,7 @@
*/
import { ReactNode } from 'react';
import { Collapse, CollapseLabelInModal } from '@superset-ui/core/components';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
interface CollapsibleModalSectionProps {
sectionKey: string;
diff --git a/superset-frontend/src/components/Modal/ModalFormField.tsx b/superset-frontend/src/components/Modal/ModalFormField.tsx
index db2293a4e5..14e71e245e 100644
--- a/superset-frontend/src/components/Modal/ModalFormField.tsx
+++ b/superset-frontend/src/components/Modal/ModalFormField.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { InfoTooltip } from '@superset-ui/core/components';
interface ModalFormFieldProps {
diff --git a/superset-frontend/src/components/Modal/StandardModal.tsx b/superset-frontend/src/components/Modal/StandardModal.tsx
index 49e0d31433..dd60ee97d3 100644
--- a/superset-frontend/src/components/Modal/StandardModal.tsx
+++ b/superset-frontend/src/components/Modal/StandardModal.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Modal, Loading, Flex } from '@superset-ui/core/components';
import { ModalTitleWithIcon } from 'src/components/ModalTitleWithIcon';
diff --git a/superset-frontend/src/components/Modal/useModalValidation.tsx b/superset-frontend/src/components/Modal/useModalValidation.tsx
index 0197574af0..5d62901bfb 100644
--- a/superset-frontend/src/components/Modal/useModalValidation.tsx
+++ b/superset-frontend/src/components/Modal/useModalValidation.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useCallback, useMemo, ReactNode } from 'react';
-import { css, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { List } from '@superset-ui/core/components';
export interface SectionValidationObject {
diff --git a/superset-frontend/src/components/ModalTitleWithIcon/index.tsx b/superset-frontend/src/components/ModalTitleWithIcon/index.tsx
index 085ae5990c..037e24159a 100644
--- a/superset-frontend/src/components/ModalTitleWithIcon/index.tsx
+++ b/superset-frontend/src/components/ModalTitleWithIcon/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { isValidElement, cloneElement } from 'react';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Typography, Icons, TitleProps } from '@superset-ui/core/components';
import type { IconType } from '@superset-ui/core/components/Icons/types';
diff --git a/superset-frontend/src/components/ResizableSidebar/index.tsx b/superset-frontend/src/components/ResizableSidebar/index.tsx
index f19bae62b9..500283a436 100644
--- a/superset-frontend/src/components/ResizableSidebar/index.tsx
+++ b/superset-frontend/src/components/ResizableSidebar/index.tsx
@@ -18,7 +18,7 @@
*/
import { FC, ReactNode } from 'react';
import { Resizable } from 're-resizable';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import useStoredSidebarWidth from './useStoredSidebarWidth';
const ResizableWrapper = styled.div`
diff --git a/superset-frontend/src/components/SQLEditorWithValidation/index.tsx b/superset-frontend/src/components/SQLEditorWithValidation/index.tsx
index 912e91d25f..9885370e7f 100644
--- a/superset-frontend/src/components/SQLEditorWithValidation/index.tsx
+++ b/superset-frontend/src/components/SQLEditorWithValidation/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useCallback, useState, useEffect, forwardRef } from 'react';
-import { styled, t, SupersetClient } from '@superset-ui/core';
+import { t, SupersetClient } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
SQLEditor,
Button,
diff --git a/superset-frontend/src/components/TableSelector/index.tsx b/superset-frontend/src/components/TableSelector/index.tsx
index d3057d1a72..f9e0482b8f 100644
--- a/superset-frontend/src/components/TableSelector/index.tsx
+++ b/superset-frontend/src/components/TableSelector/index.tsx
@@ -26,11 +26,11 @@ import {
import type { SelectValue } from '@superset-ui/core/components';
import {
- styled,
t,
getClientErrorMessage,
getClientErrorObject,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { CertifiedBadge, Select } from '@superset-ui/core/components';
import { DatabaseSelector } from 'src/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/components/Tag/index.tsx b/superset-frontend/src/components/Tag/index.tsx
index 308a5ff6e0..385338e5fc 100644
--- a/superset-frontend/src/components/Tag/index.tsx
+++ b/superset-frontend/src/components/Tag/index.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Link } from 'react-router-dom';
import type { TagType } from 'src/types/TagType';
import { Tag as AntdTag } from '@superset-ui/core/components/Tag';
diff --git a/superset-frontend/src/components/TagsList/index.tsx b/superset-frontend/src/components/TagsList/index.tsx
index a83861f26b..4cc3c9e39a 100644
--- a/superset-frontend/src/components/TagsList/index.tsx
+++ b/superset-frontend/src/components/TagsList/index.tsx
@@ -18,7 +18,7 @@
*/
import { useMemo, useState } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import type { TagType } from 'src/types/TagType';
import { Tag } from 'src/components/Tag';
diff --git a/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx b/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
index c913424e6d..a677e1a64e 100644
--- a/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
+++ b/superset-frontend/src/dashboard/components/AddSliceCard/AddSliceCard.tsx
@@ -29,7 +29,8 @@ import {
FC,
} from 'react';
-import { t, isFeatureEnabled, FeatureFlag, css } from '@superset-ui/core';
+import { t, isFeatureEnabled, FeatureFlag } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Tooltip, ImageLoader } from '@superset-ui/core/components';
import { GenericLink, usePluginContext } from 'src/components';
import { assetUrl } from 'src/utils/assetUrl';
diff --git a/superset-frontend/src/dashboard/components/BuilderComponentPane/index.tsx b/superset-frontend/src/dashboard/components/BuilderComponentPane/index.tsx
index d61bde28b3..be5ecd076e 100644
--- a/superset-frontend/src/dashboard/components/BuilderComponentPane/index.tsx
+++ b/superset-frontend/src/dashboard/components/BuilderComponentPane/index.tsx
@@ -19,7 +19,8 @@
/* eslint-env browser */
import tinycolor from 'tinycolor2';
import Tabs from '@superset-ui/core/components/Tabs';
-import { t, css, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import SliceAdder from 'src/dashboard/containers/SliceAdder';
import dashboardComponents from 'src/visualizations/presets/dashboardComponents';
import NewColumn from '../gridComponents/new/NewColumn';
diff --git a/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx b/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
index f5e2ff2966..357957a916 100644
--- a/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
+++ b/superset-frontend/src/dashboard/components/ColorSchemeSelect.tsx
@@ -18,14 +18,13 @@
*/
import { ReactNode, useMemo } from 'react';
import {
- css,
ColorScheme,
ColorSchemeGroup,
t,
- useTheme,
getCategoricalSchemeRegistry,
CategoricalScheme,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { sortBy } from 'lodash';
import { Select, Tooltip } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
index 880d5c7fbe..f4a75bb405 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardBuilder.tsx
@@ -19,15 +19,8 @@
/* eslint-env browser */
import cx from 'classnames';
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
-import {
- addAlpha,
- css,
- JsonObject,
- styled,
- t,
- useTheme,
- useElementOnScreen,
-} from '@superset-ui/core';
+import { addAlpha, JsonObject, t, useElementOnScreen } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { useDispatch, useSelector } from 'react-redux';
import { EmptyState, Loading } from '@superset-ui/core/components';
import { ErrorBoundary, BasicErrorAlert } from 'src/components';
diff --git a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
index f73fe36e9a..ec423b7bb0 100644
--- a/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
+++ b/superset-frontend/src/dashboard/components/DashboardBuilder/DashboardWrapper.tsx
@@ -18,7 +18,7 @@
*/
import { FC, PropsWithChildren, useEffect, useState } from 'react';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Constants } from '@superset-ui/core/components';
import { RootState } from 'src/dashboard/types';
import { useSelector } from 'react-redux';
diff --git a/superset-frontend/src/dashboard/components/DashboardGrid.jsx b/superset-frontend/src/dashboard/components/DashboardGrid.jsx
index 0f4997d24e..a344ab5d0b 100644
--- a/superset-frontend/src/dashboard/components/DashboardGrid.jsx
+++ b/superset-frontend/src/dashboard/components/DashboardGrid.jsx
@@ -20,7 +20,8 @@ import { PureComponent, Fragment } from 'react';
import { withTheme } from '@emotion/react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
-import { addAlpha, css, styled, t } from '@superset-ui/core';
+import { addAlpha, t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { EmptyState } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
import { navigateTo } from 'src/utils/navigationUtils';
diff --git a/superset-frontend/src/dashboard/components/EmbeddedModal/index.tsx b/superset-frontend/src/dashboard/components/EmbeddedModal/index.tsx
index 1ad5fec6ad..c9c88ded8a 100644
--- a/superset-frontend/src/dashboard/components/EmbeddedModal/index.tsx
+++ b/superset-frontend/src/dashboard/components/EmbeddedModal/index.tsx
@@ -19,12 +19,11 @@
import { useCallback, useEffect, useState } from 'react';
import {
makeApi,
- styled,
SupersetApiError,
t,
- css,
getExtensionsRegistry,
} from '@superset-ui/core';
+import { styled, css, Alert } from '@apache-superset/core/ui';
import {
Button,
FormItem,
@@ -33,7 +32,6 @@ import {
Modal,
Loading,
Form,
- Alert,
Space,
} from '@superset-ui/core/components';
import { useToasts } from 'src/components/MessageToasts/withToasts';
diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/index.tsx
index 18081ca2cb..efaca53d51 100644
--- a/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/index.tsx
+++ b/superset-frontend/src/dashboard/components/FiltersBadge/DetailsPanel/index.tsx
@@ -19,7 +19,8 @@
import { RefObject, useEffect, useRef, KeyboardEvent } from 'react';
import { useSelector } from 'react-redux';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { List, Popover } from '@superset-ui/core/components';
import {
FiltersContainer,
diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/index.tsx
index 37ab2ef559..374de9630a 100644
--- a/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/index.tsx
+++ b/superset-frontend/src/dashboard/components/FiltersBadge/FilterIndicator/index.tsx
@@ -18,7 +18,7 @@
*/
import { forwardRef } from 'react';
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { getFilterValueForDisplay } from 'src/dashboard/components/nativeFilters/utils';
import {
diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx
index 9c67f1f7f8..cff149e428 100644
--- a/superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx
+++ b/superset-frontend/src/dashboard/components/FiltersBadge/Styles.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
export const Pill = styled.div`
${({ theme }) => css`
diff --git a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
index f9d845e094..aad6024033 100644
--- a/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
+++ b/superset-frontend/src/dashboard/components/FiltersBadge/index.tsx
@@ -33,10 +33,10 @@ import {
DataMaskStateWithId,
Filters,
JsonObject,
- styled,
t,
usePrevious,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { setDirectPathToChild } from 'src/dashboard/actions/dashboardState';
import { useChartLayoutItems } from 'src/dashboard/util/useChartLayoutItems';
diff --git a/superset-frontend/src/dashboard/components/GroupByBadge/index.tsx b/superset-frontend/src/dashboard/components/GroupByBadge/index.tsx
index 6c21d033ae..8c1af0aeca 100644
--- a/superset-frontend/src/dashboard/components/GroupByBadge/index.tsx
+++ b/superset-frontend/src/dashboard/components/GroupByBadge/index.tsx
@@ -18,7 +18,8 @@
*/
import { memo, useMemo, useState, useRef } from 'react';
import { useSelector } from 'react-redux';
-import { styled, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { Icons, Badge, Tooltip, Tag } from '@superset-ui/core/components';
import { getFilterValueForDisplay } from '../nativeFilters/utils';
import { ChartCustomizationItem } from '../nativeFilters/ChartCustomization/types';
diff --git a/superset-frontend/src/dashboard/components/Header/index.jsx b/superset-frontend/src/dashboard/components/Header/index.jsx
index 1a4f3b43bf..17f37440b5 100644
--- a/superset-frontend/src/dashboard/components/Header/index.jsx
+++ b/superset-frontend/src/dashboard/components/Header/index.jsx
@@ -20,13 +20,12 @@
import { extendedDayjs } from '@superset-ui/core/utils/dates';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import {
- styled,
- css,
isFeatureEnabled,
FeatureFlag,
t,
getExtensionsRegistry,
} from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Global } from '@emotion/react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/superset-frontend/src/dashboard/components/IconButton.tsx b/superset-frontend/src/dashboard/components/IconButton.tsx
index 9e5b9c96e4..df1298097c 100644
--- a/superset-frontend/src/dashboard/components/IconButton.tsx
+++ b/superset-frontend/src/dashboard/components/IconButton.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { MouseEventHandler } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
interface IconButtonProps {
icon: JSX.Element;
diff --git a/superset-frontend/src/dashboard/components/OverwriteConfirm/OverwriteConfirmModal.tsx b/superset-frontend/src/dashboard/components/OverwriteConfirm/OverwriteConfirmModal.tsx
index 77f6e2d3cc..42d88d6643 100644
--- a/superset-frontend/src/dashboard/components/OverwriteConfirm/OverwriteConfirmModal.tsx
+++ b/superset-frontend/src/dashboard/components/OverwriteConfirm/OverwriteConfirmModal.tsx
@@ -27,7 +27,8 @@ import {
saveDashboardRequest,
setOverrideConfirm,
} from 'src/dashboard/actions/dashboardState';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { SAVE_TYPE_OVERWRITE_CONFIRMED } from 'src/dashboard/util/constants';
const STICKY_HEADER_TOP = 16;
diff --git a/superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx b/superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
index 499cf27de3..970d584cde 100644
--- a/superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
+++ b/superset-frontend/src/dashboard/components/PropertiesModal/sections/AdvancedSection.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { JsonEditor } from '@superset-ui/core/components';
import { ModalFormField } from 'src/components/Modal';
import { ValidationObject } from 'src/components/Modal/useModalValidation';
diff --git a/superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx b/superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
index 1931fc692b..95e16def76 100644
--- a/superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
+++ b/superset-frontend/src/dashboard/components/PropertiesModal/sections/StylingSection.tsx
@@ -19,12 +19,12 @@
import { useCallback, useEffect, useState } from 'react';
import {
t,
- styled,
SupersetClient,
isFeatureEnabled,
FeatureFlag,
} from '@superset-ui/core';
-import { CssEditor, Select, Alert } from '@superset-ui/core/components';
+import { styled, Alert } from '@apache-superset/core/ui';
+import { CssEditor, Select } from '@superset-ui/core/components';
import rison from 'rison';
import ColorSchemeSelect from 'src/dashboard/components/ColorSchemeSelect';
import { ModalFormField } from 'src/components/Modal';
diff --git a/superset-frontend/src/dashboard/components/RefreshFrequency/RefreshFrequencySelect.tsx b/superset-frontend/src/dashboard/components/RefreshFrequency/RefreshFrequencySelect.tsx
index 5f0352a075..6accfe1006 100644
--- a/superset-frontend/src/dashboard/components/RefreshFrequency/RefreshFrequencySelect.tsx
+++ b/superset-frontend/src/dashboard/components/RefreshFrequency/RefreshFrequencySelect.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState } from 'react';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Radio, Input } from '@superset-ui/core/components';
// Minimum safe refresh interval to prevent server overload
diff --git a/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx b/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx
index c4573768d5..0478246bec 100644
--- a/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx
+++ b/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx
@@ -17,8 +17,9 @@
* under the License.
*/
import { useState } from 'react';
-import { t, styled } from '@superset-ui/core';
-import { Alert, Form } from '@superset-ui/core/components';
+import { t } from '@superset-ui/core';
+import { styled, Alert } from '@apache-superset/core/ui';
+import { Form } from '@superset-ui/core/components';
import { StandardModal } from 'src/components/Modal';
import {
RefreshFrequencySelect,
diff --git a/superset-frontend/src/dashboard/components/SaveModal.tsx b/superset-frontend/src/dashboard/components/SaveModal.tsx
index 99bad3e48f..a449b3bf10 100644
--- a/superset-frontend/src/dashboard/components/SaveModal.tsx
+++ b/superset-frontend/src/dashboard/components/SaveModal.tsx
@@ -27,7 +27,8 @@ import {
Divider,
Flex,
} from '@superset-ui/core/components';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import {
ModalTrigger,
diff --git a/superset-frontend/src/dashboard/components/SliceAdder.tsx b/superset-frontend/src/dashboard/components/SliceAdder.tsx
index 8a53da645f..650521b0ba 100644
--- a/superset-frontend/src/dashboard/components/SliceAdder.tsx
+++ b/superset-frontend/src/dashboard/components/SliceAdder.tsx
@@ -22,7 +22,8 @@ import AutoSizer from 'react-virtualized-auto-sizer';
import { FixedSizeList as List } from 'react-window';
// @ts-ignore
import { createFilter } from 'react-search-input';
-import { t, styled, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import {
Button,
Checkbox,
diff --git a/superset-frontend/src/dashboard/components/SliceHeader/index.tsx b/superset-frontend/src/dashboard/components/SliceHeader/index.tsx
index f79529f080..b9c0293534 100644
--- a/superset-frontend/src/dashboard/components/SliceHeader/index.tsx
+++ b/superset-frontend/src/dashboard/components/SliceHeader/index.tsx
@@ -24,15 +24,8 @@ import {
useRef,
useState,
} from 'react';
-import {
- css,
- getExtensionsRegistry,
- QueryData,
- styled,
- SupersetTheme,
- t,
- useTheme,
-} from '@superset-ui/core';
+import { getExtensionsRegistry, QueryData, t } from '@superset-ui/core';
+import { css, styled, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import { useUiConfig } from 'src/components/UiConfigContext';
import { isEmbedded } from 'src/dashboard/util/isEmbedded';
import { Tooltip, EditableTitle, Icons } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/ViewResultsModalTrigger.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/ViewResultsModalTrigger.tsx
index 61e6364a7e..849522e7e1 100644
--- a/superset-frontend/src/dashboard/components/SliceHeaderControls/ViewResultsModalTrigger.tsx
+++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/ViewResultsModalTrigger.tsx
@@ -18,7 +18,8 @@
*/
import { ReactChild, RefObject, useCallback } from 'react';
import { useHistory } from 'react-router-dom';
-import { css, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Button, ModalTrigger } from '@superset-ui/core/components';
export const ViewResultsModalTrigger = ({
diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
index 5844730edb..aaa9b9ceb7 100644
--- a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
+++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx
@@ -29,17 +29,15 @@ import { RouteComponentProps, useHistory } from 'react-router-dom';
import { extendedDayjs } from '@superset-ui/core/utils/dates';
import {
Behavior,
- css,
isFeatureEnabled,
FeatureFlag,
- useTheme,
getChartMetadataRegistry,
- styled,
t,
VizType,
BinaryQueryObjectFilterClause,
QueryFormData,
} from '@superset-ui/core';
+import { css, useTheme, styled } from '@apache-superset/core/ui';
import { useSelector } from 'react-redux';
import { Menu, MenuItem } from '@superset-ui/core/components/Menu';
import {
diff --git a/superset-frontend/src/dashboard/components/URLShortLinkButton/index.tsx b/superset-frontend/src/dashboard/components/URLShortLinkButton/index.tsx
index e6c798f673..152a514a4d 100644
--- a/superset-frontend/src/dashboard/components/URLShortLinkButton/index.tsx
+++ b/superset-frontend/src/dashboard/components/URLShortLinkButton/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState } from 'react';
-import { getClientErrorObject, t, useTheme } from '@superset-ui/core';
+import { getClientErrorObject, t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import {
Button,
Icons,
diff --git a/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx b/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx
index 8581c69c25..460f38c6b9 100644
--- a/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx
+++ b/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx
@@ -22,7 +22,7 @@ import PropTypes from 'prop-types';
import { TAB_TYPE } from 'src/dashboard/util/componentTypes';
import { DragSource, DropTarget } from 'react-dnd';
import cx from 'classnames';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { componentShape } from '../../util/propShapes';
import { dragConfig, dropConfig } from './dragDroppableConfig';
diff --git a/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx b/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
index f12d173f95..caa947d902 100644
--- a/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
+++ b/superset-frontend/src/dashboard/components/dnd/DragHandle.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { LegacyRef } from 'react';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
interface DragHandleProps {
diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterScope.test.tsx b/superset-frontend/src/dashboard/components/filterscope/FilterScope.test.tsx
index 7261fbfa01..a06364dbe4 100644
--- a/superset-frontend/src/dashboard/components/filterscope/FilterScope.test.tsx
+++ b/superset-frontend/src/dashboard/components/filterscope/FilterScope.test.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { supersetTheme } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import {
cleanup,
render,
diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx
index 0695bb125f..428daf4ec3 100644
--- a/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx
+++ b/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { createRef, PureComponent } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
ModalTrigger,
ModalTriggerRef,
diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx
index 7f1e6022f9..14b9c21185 100644
--- a/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx
+++ b/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx
@@ -20,7 +20,8 @@ import { PureComponent } from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
import { Button, Input } from '@superset-ui/core/components';
-import { css, t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import buildFilterScopeTreeEntry from 'src/dashboard/util/buildFilterScopeTreeEntry';
import getFilterScopeNodesTree from 'src/dashboard/util/getFilterScopeNodesTree';
diff --git a/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx b/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
index bb52ef2440..da7ce57f2f 100644
--- a/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
+++ b/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx
@@ -17,7 +17,7 @@
* under the License.
*/
import cx from 'classnames';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { CHART_TYPE } from 'src/dashboard/util/componentTypes';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.jsx b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.jsx
index f30bcfa4e9..353ae00772 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Chart/Chart.jsx
@@ -19,7 +19,8 @@
import cx from 'classnames';
import { useCallback, useEffect, useRef, useMemo, useState, memo } from 'react';
import PropTypes from 'prop-types';
-import { styled, t, logging } from '@superset-ui/core';
+import { t, logging } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { debounce } from 'lodash';
import { useHistory } from 'react-router-dom';
import { bindActionCreators } from 'redux';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/ChartHolder/ChartHolder.tsx b/superset-frontend/src/dashboard/components/gridComponents/ChartHolder/ChartHolder.tsx
index 2d975f9945..7d68c8ceae 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/ChartHolder/ChartHolder.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/ChartHolder/ChartHolder.tsx
@@ -21,7 +21,7 @@ import { useState, useMemo, useCallback, useEffect, memo } from 'react';
import { ResizeCallback, ResizeStartCallback } from 're-resizable';
import cx from 'classnames';
import { useSelector } from 'react-redux';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { LayoutItem, RootState } from 'src/dashboard/types';
import AnchorLink from 'src/dashboard/components/AnchorLink';
import Chart from 'src/dashboard/components/gridComponents/Chart';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Column/Column.jsx b/superset-frontend/src/dashboard/components/gridComponents/Column/Column.jsx
index 62112fed5f..acdd5cbb3e 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Column/Column.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Column/Column.jsx
@@ -19,7 +19,8 @@
import { Fragment, useCallback, useState, useMemo, memo } from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import DashboardComponent from 'src/dashboard/containers/DashboardComponent';
import DeleteComponentButton from 'src/dashboard/components/DeleteComponentButton';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Divider/Divider.jsx b/superset-frontend/src/dashboard/components/gridComponents/Divider/Divider.jsx
index 3247cf794d..7ee829f676 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Divider/Divider.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Divider/Divider.jsx
@@ -18,7 +18,7 @@
*/
import { PureComponent } from 'react';
import PropTypes from 'prop-types';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Draggable } from '../../dnd/DragDroppable';
import HoverMenu from '../../menu/HoverMenu';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Header/Header.jsx b/superset-frontend/src/dashboard/components/gridComponents/Header/Header.jsx
index b9e7e71a6c..37ddae5e34 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Header/Header.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Header/Header.jsx
@@ -19,7 +19,7 @@
import { PureComponent } from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import PopoverDropdown from '@superset-ui/core/components/PopoverDropdown';
import { EditableTitle } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx b/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
index c8de3aa722..87628dfde6 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.jsx
@@ -21,7 +21,8 @@ import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import cx from 'classnames';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { SafeMarkdown, MarkdownEditor } from '@superset-ui/core/components';
import { Logger, LOG_ACTIONS_RENDER_CHART } from 'src/logger/LogUtils';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx b/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
index 5f298b192d..14fc956d88 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
@@ -25,7 +25,7 @@ import {
userEvent,
RenderResult,
} from 'spec/helpers/testing-library';
-import { supersetTheme } from '@superset-ui/core';
+import { supersetTheme } from '@apache-superset/core/ui';
import { mockStore } from 'spec/fixtures/mockStore';
import { dashboardLayout as mockLayout } from 'spec/fixtures/mockDashboardLayout';
import MarkdownConnected from './Markdown';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Row/Row.jsx b/superset-frontend/src/dashboard/components/gridComponents/Row/Row.jsx
index 917cdfc965..ce361c2982 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Row/Row.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Row/Row.jsx
@@ -27,13 +27,8 @@ import {
} from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
-import {
- css,
- FeatureFlag,
- isFeatureEnabled,
- styled,
- t,
-} from '@superset-ui/core';
+import { FeatureFlag, isFeatureEnabled, t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Icons, Constants } from '@superset-ui/core/components';
import {
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.jsx b/superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.jsx
index 900d658cca..87011ae4c7 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.jsx
@@ -20,7 +20,8 @@ import { Fragment, useCallback, memo } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useDispatch, useSelector } from 'react-redux';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { EditableTitle, EmptyState } from '@superset-ui/core/components';
import { setEditMode } from 'src/dashboard/actions/dashboardState';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/Tabs/Tabs.jsx b/superset-frontend/src/dashboard/components/gridComponents/Tabs/Tabs.jsx
index c59b38609c..665977e9c8 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Tabs/Tabs.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Tabs/Tabs.jsx
@@ -18,7 +18,8 @@
*/
import { useCallback, useEffect, useMemo, useState, memo } from 'react';
import PropTypes from 'prop-types';
-import { t, usePrevious, useTheme, styled } from '@superset-ui/core';
+import { t, usePrevious } from '@superset-ui/core';
+import { useTheme, styled } from '@apache-superset/core/ui';
import { useSelector } from 'react-redux';
import { Icons } from '@superset-ui/core/components/Icons';
import { LOG_ACTIONS_SELECT_DASHBOARD_TAB } from 'src/logger/LogUtils';
diff --git a/superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.tsx b/superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.tsx
index 52e34638f7..b1bb5a48e7 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/TabsRenderer.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { memo, ReactElement, RefObject } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
LineEditableTabs,
TabsProps as AntdTabsProps,
diff --git a/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.tsx b/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.tsx
index 3ceda79442..542de90040 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.tsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.tsx
@@ -18,7 +18,7 @@
*/
import { PureComponent } from 'react';
import cx from 'classnames';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { DragDroppable } from 'src/dashboard/components/dnd/DragDroppable';
import type { ConnectDragSource } from 'react-dnd';
import { NEW_COMPONENTS_SOURCE_ID } from 'src/dashboard/util/constants';
diff --git a/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx b/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx
index eb00e072a5..ed032b3986 100644
--- a/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx
+++ b/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx
@@ -18,7 +18,8 @@
*/
import { PureComponent } from 'react';
import cx from 'classnames';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import backgroundStyleOptions from 'src/dashboard/util/backgroundStyleOptions';
import PopoverDropdown, {
diff --git a/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx b/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx
index b34917b4e2..4ee784fd2b 100644
--- a/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx
+++ b/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx
@@ -19,7 +19,7 @@
*/
import { RefObject, ReactNode, PureComponent } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import cx from 'classnames';
interface HoverMenuProps {
diff --git a/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx b/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
index 3b8ba9215e..4644bc3a7d 100644
--- a/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
+++ b/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode, CSSProperties, PureComponent } from 'react';
import cx from 'classnames';
-import { addAlpha, css, styled } from '@superset-ui/core';
+import { addAlpha } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
type ShouldFocusContainer = HTMLDivElement & {
contains: (event_target: EventTarget & HTMLElement) => boolean;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx
index 2b621d5a8b..ffd13db908 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx
@@ -26,7 +26,8 @@ import {
ReactNode,
} from 'react';
import { useSelector } from 'react-redux';
-import { t, styled, css, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { debounce } from 'lodash';
import { DatasourcesState, ChartsState, RootState } from 'src/dashboard/types';
import {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx
index 7ac0ab075d..fc19e7ffdf 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect, useMemo, useCallback, memo } from 'react';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { useSelector } from 'react-redux';
import { isEmpty, isEqual, sortBy, debounce } from 'lodash';
import { Form } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx
index bb8dba204f..ca6e0bf673 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FC, forwardRef, MouseEvent } from 'react';
-import { styled, t, css, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { Icons, Flex } from '@superset-ui/core/components';
import { ChartCustomizationItem } from './types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx
index a5eabae154..cd6488a58b 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FC, useRef } from 'react';
-import { styled, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { Button, Icons } from '@superset-ui/core/components';
import ChartCustomizationTitleContainer from './ChartCustomizationTitleContainer';
import { ChartCustomizationItem } from './types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/GroupByFilterCard.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/GroupByFilterCard.tsx
index 10ea7c74be..e465a5eb78 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/GroupByFilterCard.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/GroupByFilterCard.tsx
@@ -17,14 +17,8 @@
* under the License.
*/
import { FC, useCallback, useEffect, useMemo, useState } from 'react';
-import {
- styled,
- t,
- css,
- DataMaskStateWithId,
- useTheme,
- useTruncation,
-} from '@superset-ui/core';
+import { t, DataMaskStateWithId, useTruncation } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import {
Typography,
Select,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/ModalFooter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/ModalFooter.tsx
index 350e9591dd..a1baa96c1b 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/ModalFooter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/ModalFooter.tsx
@@ -20,11 +20,11 @@ import { FC, ReactNode } from 'react';
import {
Button,
type OnClickHandler,
- Alert,
Icons,
Flex,
} from '@superset-ui/core/components';
-import { t, useTheme, styled, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css, useTheme, Alert } from '@apache-superset/core/ui';
import { BaseExpandButtonWrapper } from './SharedStyles';
const StyledAlert = styled(Alert)`
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.tsx b/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.tsx
index 2d79551a14..84a0181fe5 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Form, StyledModal } from '@superset-ui/core/components';
const MODAL_MARGIN = 16;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
index 6b28aa72f2..7d2db7dec6 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/ActionButtons/index.tsx
@@ -18,14 +18,12 @@
*/
import { useMemo } from 'react';
import {
- css,
DataMaskState,
DataMaskStateWithId,
t,
isDefined,
- SupersetTheme,
- styled,
} from '@superset-ui/core';
+import { css, SupersetTheme, styled } from '@apache-superset/core/ui';
import { Button } from '@superset-ui/core/components';
import { OPEN_FILTER_BAR_WIDTH } from 'src/dashboard/constants';
import tinycolor from 'tinycolor2';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
index 0620f3a647..dfc40e11b8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilter.tsx
@@ -18,7 +18,7 @@
*/
import { useCallback } from 'react';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { CrossFilterIndicator } from 'src/dashboard/components/nativeFilters/selectors';
import { useDispatch } from 'react-redux';
import { setDirectPathToChild } from 'src/dashboard/actions/dashboardState';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
index d8745dd22b..eb81cd13b8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTag.tsx
@@ -17,13 +17,8 @@
* under the License.
*/
-import {
- styled,
- css,
- useTheme,
- getColumnLabel,
- useCSSTextTruncation,
-} from '@superset-ui/core';
+import { getColumnLabel, useCSSTextTruncation } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { CrossFilterIndicator } from 'src/dashboard/components/nativeFilters/selectors';
import { Tag } from 'src/components/Tag';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
index 7cf1954565..429c36e9ac 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/CrossFilterTitle.tsx
@@ -17,13 +17,8 @@
* under the License.
*/
-import {
- t,
- css,
- styled,
- useTheme,
- useCSSTextTruncation,
-} from '@superset-ui/core';
+import { t, useCSSTextTruncation } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { Tooltip } from '@superset-ui/core/components';
import { FilterBarOrientation } from 'src/dashboard/types';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ChartsScopingListPanel.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ChartsScopingListPanel.tsx
index da1da7e843..a58f3c2888 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ChartsScopingListPanel.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ChartsScopingListPanel.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode, useMemo } from 'react';
-import { css, styled, t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import {
ChartConfiguration,
DashboardLayout,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingModalContent.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingModalContent.tsx
index d2e56685fc..374a35690a 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingModalContent.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingModalContent.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, NativeFilterScope, styled, useTheme } from '@superset-ui/core';
+import { NativeFilterScope } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { ChartConfiguration } from 'src/dashboard/types';
import { ScopingTreePanel } from './ScopingTreePanel';
import { ChartsScopingListPanel } from './ChartsScopingListPanel';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx
index 9af2fbae2c..34ac3c0661 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/ScopingModal/ScopingTreePanel.tsx
@@ -18,15 +18,9 @@
*/
import { useMemo } from 'react';
import { useSelector } from 'react-redux';
-import {
- css,
- isDefined,
- NativeFilterScope,
- styled,
- t,
- useTheme,
-} from '@superset-ui/core';
-import { Select, Tooltip, Alert } from '@superset-ui/core/components';
+import { isDefined, NativeFilterScope, t } from '@superset-ui/core';
+import { css, styled, useTheme, Alert } from '@apache-superset/core/ui';
+import { Select, Tooltip } from '@superset-ui/core/components';
import { noOp } from 'src/utils/common';
import ScopingTree from 'src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree';
import {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.tsx
index 76f1a8c5ac..938a56c760 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/VerticalCollapse.tsx
@@ -18,7 +18,8 @@
*/
import { useMemo, useState, useCallback } from 'react';
-import { t, css, useTheme, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, useTheme, SupersetTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { FilterBarOrientation } from 'src/dashboard/types';
import CrossFilter from './CrossFilter';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts
index 0eee141c10..ccd7e2c5f4 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/CrossFilters/styles.ts
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
export const ellipsisCss = css`
white-space: nowrap;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx
index 8e8aa61000..1262e5bcd7 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBarSettings/index.tsx
@@ -19,7 +19,8 @@
import { useCallback, useMemo, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
-import { styled, t, useTheme, css } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme, css } from '@apache-superset/core/ui';
import { MenuProps } from '@superset-ui/core/components/Menu';
import { FilterBarOrientation, RootState } from 'src/dashboard/types';
import {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx
index 99a94c88d2..0e1af5ade9 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.tsx
@@ -22,7 +22,8 @@ import {
InPortal,
OutPortal,
} from 'react-reverse-portal';
-import { styled, SupersetTheme, truncationCSS } from '@superset-ui/core';
+import { truncationCSS } from '@superset-ui/core';
+import { styled, SupersetTheme } from '@apache-superset/core/ui';
import {
FormItem as StyledFormItem,
Form,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
index 0aab10a862..6c2d391c49 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
@@ -31,13 +31,10 @@ import {
DataMaskStateWithId,
Filter,
Divider,
- css,
- SupersetTheme,
t,
isNativeFilterWithDataMask,
- useTheme,
- styled,
} from '@superset-ui/core';
+import { css, SupersetTheme, useTheme, styled } from '@apache-superset/core/ui';
import {
createHtmlPortalNode,
InPortal,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.stories.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.stories.tsx
index 2c4c92d889..f80a74f046 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.stories.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.stories.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { FilterBarOrientation } from 'src/dashboard/types';
import FilterDivider from './FilterDivider';
import { FilterDividerProps } from './types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.tsx
index 2201794f0d..52ac346264 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterDivider.tsx
@@ -17,12 +17,8 @@
* under the License.
*/
-import {
- css,
- useTheme,
- useCSSTextTruncation,
- truncationCSS,
-} from '@superset-ui/core';
+import { useCSSTextTruncation, truncationCSS } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '@superset-ui/core/components';
import { FilterBarOrientation } from 'src/dashboard/types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
index 4e0d3a45fd..b08ded73cd 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.tsx
@@ -35,12 +35,12 @@ import {
getChartMetadataRegistry,
JsonObject,
QueryFormData,
- styled,
SuperChart,
t,
ClientErrorObject,
getClientErrorObject,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { useDispatch, useSelector } from 'react-redux';
import { isEqual, isEqualWith } from 'lodash';
import { getChartDataRequest } from 'src/components/Chart/chartAction';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/index.tsx
index b52f7dfb0f..c09e4d7783 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/index.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode } from 'react';
-import { css, Divider, Filter, SupersetTheme } from '@superset-ui/core';
+import { Divider, Filter } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import { FilterBarOrientation } from 'src/dashboard/types';
import { FiltersOutOfScopeCollapsible } from '../FiltersOutOfScopeCollapsible';
import { CrossFilterIndicator } from '../../selectors';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersOutOfScopeCollapsible/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersOutOfScopeCollapsible/index.tsx
index a0d6dccc9c..b8eb7da9b5 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersOutOfScopeCollapsible/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersOutOfScopeCollapsible/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { ReactNode } from 'react';
-import { css, Divider, Filter, SupersetTheme, t } from '@superset-ui/core';
+import { Divider, Filter, t } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import { Collapse } from '@superset-ui/core/components';
export interface FiltersOutOfScopeCollapsibleProps {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx
index dfee04a1b0..47c192d655 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Header/index.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
/* eslint-disable no-param-reassign */
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { memo, FC } from 'react';
import { Icons } from '@superset-ui/core/components/Icons';
import { Button } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Horizontal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Horizontal.tsx
index 469bc29d70..3af13459fb 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Horizontal.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Horizontal.tsx
@@ -18,7 +18,8 @@
*/
import { FC, memo, useMemo } from 'react';
-import { DataMaskStateWithId, styled, t } from '@superset-ui/core';
+import { DataMaskStateWithId, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Loading } from '@superset-ui/core/components';
import { RootState } from 'src/dashboard/types';
import { useChartLayoutItems } from 'src/dashboard/util/useChartLayoutItems';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
index af8961c813..76adfdfb4e 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/Vertical.tsx
@@ -31,8 +31,10 @@ import {
} from 'react';
import { useSelector } from 'react-redux';
import cx from 'classnames';
-import { styled, t, useTheme, DataMaskStateWithId } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { RootState } from 'src/dashboard/types';
+import { DataMaskStateWithId } from '@superset-ui/core';
import { Icons } from '@superset-ui/core/components/Icons';
import { EmptyState, Loading } from '@superset-ui/core/components';
import { useChartLayoutItems } from 'src/dashboard/util/useChartLayoutItems';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
index 121090a89e..74d90cbb99 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/index.tsx
@@ -36,8 +36,8 @@ import {
DataMask,
isNativeFilter,
usePrevious,
- styled,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Constants } from '@superset-ui/core/components';
import { useHistory } from 'react-router-dom';
import { updateDataMask } from 'src/dataMask/actions';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx
index 53c4d893a1..70c8f23ffe 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/DependenciesRow.tsx
@@ -18,7 +18,8 @@
*/
import { memo, useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
-import { css, t, useTheme, useTruncation } from '@superset-ui/core';
+import { t, useTruncation } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { setDirectPathToChild } from 'src/dashboard/actions/dashboardState';
import { List } from '@superset-ui/core/components/List';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx
index 7f16a57a24..08a2e684c8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/NameRow.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useSelector } from 'react-redux';
-import { css, SupersetTheme, useTheme, useTruncation } from '@superset-ui/core';
+import { useTruncation } from '@superset-ui/core';
+import { css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { useFilterConfigModal } from 'src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink/useFilterConfigModal';
import { RootState } from 'src/dashboard/types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/ScopeRow.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/ScopeRow.tsx
index e816f50013..95326b186f 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/ScopeRow.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/ScopeRow.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { memo, useMemo } from 'react';
-import { t, useTruncation, css } from '@superset-ui/core';
+import { t, useTruncation } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { List } from '@superset-ui/core/components/List';
import { useFilterScope } from './useFilterScope';
import { Row, RowLabel, RowTruncationCount, RowValue } from './Styles';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/Styles.ts b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/Styles.ts
index c949f8e7c0..618937dbbe 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/Styles.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FilterCard/Styles.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
export const Row = styled.div`
${({ theme }) => css`
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx
index 84a2ba8d61..62bc0f8f9e 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DividerConfigForm.tsx
@@ -18,7 +18,8 @@
*/
import { FC } from 'react';
import { FormItem, Input } from '@superset-ui/core/components';
-import { NativeFilterType, styled, t } from '@superset-ui/core';
+import { NativeFilterType, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
interface Props {
componentId: string;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
index 117e5545c2..c311d37296 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { useRef, FC } from 'react';
import {
DragSourceMonitor,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx
index b17c36634b..74567b95f7 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterConfigurePane.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FC, ReactNode } from 'react';
-import { NativeFilterType, styled } from '@superset-ui/core';
+import { NativeFilterType } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import FilterTitlePane from './FilterTitlePane';
import { FilterRemoval } from './types';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx
index ab4bff10c8..2932a5e745 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitleContainer.tsx
@@ -18,7 +18,8 @@
*/
import { forwardRef, ReactNode } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { FilterRemoval } from './types';
import DraggableFilter from './DraggableFilter';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
index f78bcfbc64..3c49ededff 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FilterTitlePane.tsx
@@ -18,7 +18,8 @@
*/
import { useRef, FC } from 'react';
-import { NativeFilterType, styled, t, useTheme } from '@superset-ui/core';
+import { NativeFilterType, t } from '@superset-ui/core';
+import { styled, useTheme } from '@apache-superset/core/ui';
import { Button } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/CollapsibleControl.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/CollapsibleControl.tsx
index cecba58bdd..e96203fea4 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/CollapsibleControl.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/CollapsibleControl.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { ReactNode, useEffect, useState } from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Checkbox, InfoTooltip } from '@superset-ui/core/components';
interface CollapsibleControlProps {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DependencyList.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DependencyList.tsx
index 4dc368881b..347809f747 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DependencyList.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DependencyList.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Select } from '@superset-ui/core/components';
import { CollapsibleControl } from './CollapsibleControl';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx
index a8f6d7c793..3423fd4632 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/FilterScope.tsx
@@ -18,7 +18,8 @@
*/
import { FC, useCallback, useEffect, useMemo, useState } from 'react';
-import { NativeFilterScope, styled } from '@superset-ui/core';
+import { NativeFilterScope } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { FormItem } from '@superset-ui/core/components';
import ScopingTree from './ScopingTree';
import { getDefaultScopeValue } from './utils';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx
index 72aa515e09..019c2da8cb 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/ScopingTree.tsx
@@ -18,7 +18,8 @@
*/
import { FC, useMemo, useState, memo } from 'react';
-import { NativeFilterScope, styled, css } from '@superset-ui/core';
+import { NativeFilterScope } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import Tree from '@superset-ui/core/components/Tree';
import { DASHBOARD_ROOT_ID } from 'src/dashboard/util/constants';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
index 20f0e83138..2c740d771e 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
@@ -29,15 +29,13 @@ import {
getChartMetadataRegistry,
JsonResponse,
NativeFilterType,
- styled,
SupersetApiError,
t,
ClientErrorObject,
getClientErrorObject,
- useTheme,
- css,
getExtensionsRegistry,
} from '@superset-ui/core';
+import { styled, useTheme, css } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { debounce, isEqual } from 'lodash';
import {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/RemovedFilter.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/RemovedFilter.tsx
index 499b571e0c..680d09f009 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/RemovedFilter.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/RemovedFilter.tsx
@@ -18,7 +18,8 @@
*/
import { Button, type OnClickHandler } from '@superset-ui/core/components';
import { FC } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
const RemovedContent = styled.div`
display: flex;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx
index 640b795f9a..441ae95902 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/getControlItemsMap.tsx
@@ -25,12 +25,8 @@ import {
Tooltip,
type FormInstance,
} from '@superset-ui/core/components';
-import {
- Filter,
- getChartControlPanelRegistry,
- styled,
- t,
-} from '@superset-ui/core';
+import { Filter, getChartControlPanelRegistry, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
doesColumnMatchFilterType,
getControlItems,
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
index 68a151eca8..85a4b6c2d9 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
@@ -18,15 +18,8 @@
*/
import { memo, useEffect, useCallback, useMemo, useState, useRef } from 'react';
import { uniq, isEqual, sortBy, debounce, isEmpty } from 'lodash';
-import {
- Filter,
- NativeFilterType,
- Divider,
- styled,
- t,
- css,
- useTheme,
-} from '@superset-ui/core';
+import { Filter, NativeFilterType, Divider, t } from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { useDispatch } from 'react-redux';
import { Constants, Form, Icons } from '@superset-ui/core/components';
import { ErrorBoundary } from 'src/components';
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/Footer/CancelConfirmationAlert.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/Footer/CancelConfirmationAlert.tsx
index b11457105c..5ed3b2302f 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/Footer/CancelConfirmationAlert.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/Footer/CancelConfirmationAlert.tsx
@@ -18,11 +18,8 @@
*/
import { ReactNode } from 'react';
import { t } from '@superset-ui/core';
-import {
- Alert,
- Button,
- type OnClickHandler,
-} from '@superset-ui/core/components';
+import { Button, type OnClickHandler } from '@superset-ui/core/components';
+import { Alert } from '@apache-superset/core/ui';
export interface ConfirmationAlertProps {
title: string;
diff --git a/superset-frontend/src/dashboard/components/resizable/ResizableContainer.tsx b/superset-frontend/src/dashboard/components/resizable/ResizableContainer.tsx
index f4d48cf208..43f8369028 100644
--- a/superset-frontend/src/dashboard/components/resizable/ResizableContainer.tsx
+++ b/superset-frontend/src/dashboard/components/resizable/ResizableContainer.tsx
@@ -19,7 +19,7 @@
import { useState, useCallback, useMemo } from 'react';
import { ResizeCallback, ResizeStartCallback, Resizable } from 're-resizable';
import cx from 'classnames';
-import { css, styled } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import {
RightResizeHandle,
diff --git a/superset-frontend/src/dashboard/containers/DashboardPage.tsx b/superset-frontend/src/dashboard/containers/DashboardPage.tsx
index e9e8b65afe..92e4714a25 100644
--- a/superset-frontend/src/dashboard/containers/DashboardPage.tsx
+++ b/superset-frontend/src/dashboard/containers/DashboardPage.tsx
@@ -19,7 +19,8 @@
import { createContext, lazy, FC, useEffect, useMemo, useRef } from 'react';
import { Global } from '@emotion/react';
import { useHistory } from 'react-router-dom';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { useDispatch, useSelector } from 'react-redux';
import { createSelector } from '@reduxjs/toolkit';
import { useToasts } from 'src/components/MessageToasts/withToasts';
diff --git a/superset-frontend/src/dashboard/styles.ts b/superset-frontend/src/dashboard/styles.ts
index 68000ebada..e281094a3b 100644
--- a/superset-frontend/src/dashboard/styles.ts
+++ b/superset-frontend/src/dashboard/styles.ts
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { css, SupersetTheme } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
export const headerStyles = (theme: SupersetTheme) => css`
body {
diff --git a/superset-frontend/src/dashboard/util/useFilterFocusHighlightStyles.ts b/superset-frontend/src/dashboard/util/useFilterFocusHighlightStyles.ts
index 9487f86dea..551e013666 100644
--- a/superset-frontend/src/dashboard/util/useFilterFocusHighlightStyles.ts
+++ b/superset-frontend/src/dashboard/util/useFilterFocusHighlightStyles.ts
@@ -17,8 +17,9 @@
* under the License.
*/
import { useMemo } from 'react';
+import { Filter } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { useSelector } from 'react-redux';
-import { useTheme, Filter } from '@superset-ui/core';
import { RootState } from 'src/dashboard/types';
import { selectChartCustomizationItems } from 'src/dashboard/components/nativeFilters/ChartCustomization/selectors';
import {
diff --git a/superset-frontend/src/embedded/EmbeddedContextProviders.tsx b/superset-frontend/src/embedded/EmbeddedContextProviders.tsx
index 34d1070e86..c7b2b48ae8 100644
--- a/superset-frontend/src/embedded/EmbeddedContextProviders.tsx
+++ b/superset-frontend/src/embedded/EmbeddedContextProviders.tsx
@@ -26,7 +26,7 @@ import { DynamicPluginProvider } from 'src/components';
import { EmbeddedUiConfigProvider } from 'src/components/UiConfigContext';
import { SupersetThemeProvider } from 'src/theme/ThemeProvider';
import { ThemeController } from 'src/theme/ThemeController';
-import type { ThemeStorage } from '@superset-ui/core';
+import type { ThemeStorage } from '@apache-superset/core/ui';
import { store } from 'src/views/store';
/**
diff --git a/superset-frontend/src/embedded/index.tsx b/superset-frontend/src/embedded/index.tsx
index cc56b84db5..794cca051d 100644
--- a/superset-frontend/src/embedded/index.tsx
+++ b/superset-frontend/src/embedded/index.tsx
@@ -21,12 +21,8 @@ import 'src/public-path';
import { lazy, Suspense } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Route } from 'react-router-dom';
-import {
- type SupersetThemeConfig,
- makeApi,
- t,
- logging,
-} from '@superset-ui/core';
+import { makeApi, t, logging } from '@superset-ui/core';
+import { type SupersetThemeConfig } from '@apache-superset/core/ui';
import Switchboard from '@superset-ui/switchboard';
import getBootstrapData, { applicationRoot } from 'src/utils/getBootstrapData';
import setupClient from 'src/setup/setupClient';
diff --git a/superset-frontend/src/explore/components/ChartPills.tsx b/superset-frontend/src/explore/components/ChartPills.tsx
index cabbc4c561..42b337cfd7 100644
--- a/superset-frontend/src/explore/components/ChartPills.tsx
+++ b/superset-frontend/src/explore/components/ChartPills.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { forwardRef, RefObject } from 'react';
-import { css, QueryData, SupersetTheme } from '@superset-ui/core';
+import { QueryData } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import {
CachedLabel,
type LabelType,
diff --git a/superset-frontend/src/explore/components/Control.tsx b/superset-frontend/src/explore/components/Control.tsx
index 08947d52e9..f6eed7623f 100644
--- a/superset-frontend/src/explore/components/Control.tsx
+++ b/superset-frontend/src/explore/components/Control.tsx
@@ -22,12 +22,8 @@ import {
ControlType,
ControlComponentProps as BaseControlComponentProps,
} from '@superset-ui/chart-controls';
-import {
- styled,
- JsonValue,
- QueryFormData,
- usePrevious,
-} from '@superset-ui/core';
+import { JsonValue, QueryFormData, usePrevious } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { ErrorBoundary } from 'src/components';
import { ExploreActions } from 'src/explore/actions/exploreActions';
import controlMap from './controls';
diff --git a/superset-frontend/src/explore/components/ControlHeader.tsx b/superset-frontend/src/explore/components/ControlHeader.tsx
index 5de910e5d1..a240107084 100644
--- a/superset-frontend/src/explore/components/ControlHeader.tsx
+++ b/superset-frontend/src/explore/components/ControlHeader.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { FC, ReactNode } from 'react';
-import { t, css, useTheme, SupersetTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, useTheme, SupersetTheme } from '@apache-superset/core/ui';
import { FormLabel, InfoTooltip, Tooltip } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
index 2a0502a176..6526201ac8 100644
--- a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
+++ b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
@@ -30,13 +30,9 @@ import {
import {
ensureIsArray,
t,
- styled,
getChartControlPanelRegistry,
QueryFormData,
DatasourceType,
- css,
- SupersetTheme,
- useTheme,
isDefined,
JsonValue,
NO_TIME_RANGE,
@@ -44,6 +40,7 @@ import {
isFeatureEnabled,
FeatureFlag,
} from '@superset-ui/core';
+import { styled, css, SupersetTheme, useTheme } from '@apache-superset/core/ui';
import {
ControlPanelSectionConfig,
ControlState,
diff --git a/superset-frontend/src/explore/components/DataTableControl/index.tsx b/superset-frontend/src/explore/components/DataTableControl/index.tsx
index ae83ac2160..3c6cc551d0 100644
--- a/superset-frontend/src/explore/components/DataTableControl/index.tsx
+++ b/superset-frontend/src/explore/components/DataTableControl/index.tsx
@@ -18,14 +18,12 @@
*/
import { useMemo, useState, useEffect, useRef, RefObject } from 'react';
import {
- css,
getTimeFormatter,
safeHtmlSpan,
- styled,
t,
TimeFormats,
- useTheme,
} from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { Column } from 'react-table';
import { debounce } from 'lodash';
diff --git a/superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx b/superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
index df9c21d9e1..517d519f69 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useCallback, useEffect, useMemo, useState, MouseEvent } from 'react';
-import { isFeatureEnabled, FeatureFlag, styled, t } from '@superset-ui/core';
+import { isFeatureEnabled, FeatureFlag, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import Tabs from '@superset-ui/core/components/Tabs';
import {
diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
index f5e952ee30..30a03769b8 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/components/DataTableControls.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import { useMemo } from 'react';
import { zip } from 'lodash';
diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/ResultsPaneOnDashboard.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/ResultsPaneOnDashboard.tsx
index 57dadb3a7b..66895941a9 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/components/ResultsPaneOnDashboard.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/components/ResultsPaneOnDashboard.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import Tabs from '@superset-ui/core/components/Tabs';
import { ResultTypes, ResultsPaneProps } from '../types';
import { useResultsPane } from './useResultsPane';
diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
index 6b54c6709a..d442860eb2 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, useEffect, useMemo, useCallback } from 'react';
-import { ensureIsArray, styled, t } from '@superset-ui/core';
+import { ensureIsArray, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import {
TableView,
TableSize,
diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
index cf7bc09699..6afc1babeb 100644
--- a/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
+++ b/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
@@ -20,11 +20,11 @@ import { useState, useEffect, ReactElement, useCallback } from 'react';
import {
ensureIsArray,
- styled,
t,
getChartMetadataRegistry,
getClientErrorObject,
} from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { EmptyState, Loading } from '@superset-ui/core/components';
import { getChartDataRequest } from 'src/components/Chart/chartAction';
import { ResultsPaneProps, QueryResultInterface } from '../types';
diff --git a/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelDragOption/index.tsx b/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelDragOption/index.tsx
index bb8aa83cfc..7540b23551 100644
--- a/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelDragOption/index.tsx
+++ b/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelDragOption/index.tsx
@@ -18,7 +18,8 @@
*/
import { RefObject } from 'react';
import { useDrag } from 'react-dnd';
-import { css, Metric, styled, useTheme } from '@superset-ui/core';
+import { Metric } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { ColumnMeta } from '@superset-ui/chart-controls';
import { DndItemType } from 'src/explore/components/DndItemType';
import {
diff --git a/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.tsx b/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.tsx
index 7ee6908d5d..8740fbf0d0 100644
--- a/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.tsx
+++ b/superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanelItem.tsx
@@ -18,13 +18,8 @@
*/
import { CSSProperties, ReactNode, useCallback } from 'react';
-import {
- css,
- styled,
- t,
- useCSSTextTruncation,
- useTheme,
-} from '@superset-ui/core';
+import { t, useCSSTextTruncation } from '@superset-ui/core';
+import { css, styled, useTheme } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Tooltip } from '@superset-ui/core/components/Tooltip';
diff --git a/superset-frontend/src/explore/components/DatasourcePanel/index.tsx b/superset-frontend/src/explore/components/DatasourcePanel/index.tsx
index 7f71633c3c..ad56f01626 100644
--- a/superset-frontend/src/explore/components/DatasourcePanel/index.tsx
+++ b/superset-frontend/src/explore/components/DatasourcePanel/index.tsx
@@ -17,21 +17,14 @@
* under the License.
*/
import { useContext, useMemo, useState } from 'react';
-import {
- css,
- DatasourceType,
- Metric,
- QueryFormData,
- styled,
- t,
- useTheme,
-} from '@superset-ui/core';
+import { DatasourceType, Metric, QueryFormData, t } from '@superset-ui/core';
+import { css, styled, useTheme, Alert } from '@apache-superset/core/ui';
import { ControlConfig } from '@superset-ui/chart-controls';
import AutoSizer from 'react-virtualized-auto-sizer';
import { matchSorter, rankings } from 'match-sorter';
-import { Alert, Constants, Input } from '@superset-ui/core/components';
+import { Constants, Input } from '@superset-ui/core/components';
import { SaveDatasetModal } from 'src/SqlLab/components/SaveDatasetModal';
import { getDatasourceAsSaveableDataset } from 'src/utils/datasourceUtils';
import { ExploreActions } from 'src/explore/actions/exploreActions';
diff --git a/superset-frontend/src/explore/components/EmbedCodeContent.jsx b/superset-frontend/src/explore/components/EmbedCodeContent.jsx
index 05350ce153..1625f3b76e 100644
--- a/superset-frontend/src/explore/components/EmbedCodeContent.jsx
+++ b/superset-frontend/src/explore/components/EmbedCodeContent.jsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useCallback, useEffect, useMemo, useState } from 'react';
-import { css, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { Input, Space, Typography } from '@superset-ui/core/components';
import { CopyToClipboard } from 'src/components';
import { URL_PARAMS } from 'src/constants';
diff --git a/superset-frontend/src/explore/components/ExploreAlert.tsx b/superset-frontend/src/explore/components/ExploreAlert.tsx
index 8af4bef9d7..6afbb05619 100644
--- a/superset-frontend/src/explore/components/ExploreAlert.tsx
+++ b/superset-frontend/src/explore/components/ExploreAlert.tsx
@@ -20,7 +20,7 @@
import { forwardRef, RefObject, MouseEvent } from 'react';
import { Button } from '@superset-ui/core/components';
import { ErrorAlert } from 'src/components';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
interface ControlPanelAlertProps {
title: string;
diff --git a/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx b/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx
index 18b24bfc6d..2bd18b35ac 100644
--- a/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx
+++ b/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx
@@ -27,7 +27,8 @@ import {
UnsavedChangesModal,
} from '@superset-ui/core/components';
import { AlteredSliceTag } from 'src/components';
-import { css, logging, SupersetClient, t } from '@superset-ui/core';
+import { logging, SupersetClient, t } from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import { chartPropShape } from 'src/dashboard/util/propShapes';
import { Icons } from '@superset-ui/core/components/Icons';
import PropertiesModal from 'src/explore/components/PropertiesModal';
diff --git a/superset-frontend/src/explore/components/ExploreChartPanel/index.tsx b/superset-frontend/src/explore/components/ExploreChartPanel/index.tsx
index b1710f1a2b..ab11f2a5bf 100644
--- a/superset-frontend/src/explore/components/ExploreChartPanel/index.tsx
+++ b/superset-frontend/src/explore/components/ExploreChartPanel/index.tsx
@@ -19,27 +19,24 @@
import { useState, useEffect, useCallback, useMemo, ReactNode } from 'react';
import Split from 'react-split';
import {
- css,
DatasourceType,
ensureIsArray,
isFeatureEnabled,
FeatureFlag,
getChartMetadataRegistry,
- styled,
SupersetClient,
t,
- useTheme,
QueryFormData,
JsonObject,
getExtensionsRegistry,
} from '@superset-ui/core';
+import { css, styled, useTheme, Alert } from '@apache-superset/core/ui';
import ChartContainer from 'src/components/Chart/ChartContainer';
import {
getItem,
setItem,
LocalStorageKeys,
} from 'src/utils/localStorageHelpers';
-import { Alert } from '@superset-ui/core/components';
import { SaveDatasetModal } from 'src/SqlLab/components/SaveDatasetModal';
import { getDatasourceAsSaveableDataset } from 'src/utils/datasourceUtils';
import { buildV1ChartDataPayload } from 'src/explore/exploreUtils';
diff --git a/superset-frontend/src/explore/components/ExploreContainer/index.tsx b/superset-frontend/src/explore/components/ExploreContainer/index.tsx
index b5c324e370..5cf714ea74 100644
--- a/superset-frontend/src/explore/components/ExploreContainer/index.tsx
+++ b/superset-frontend/src/explore/components/ExploreContainer/index.tsx
@@ -25,7 +25,7 @@ import {
useReducer,
} from 'react';
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { useDragDropManager } from 'react-dnd';
import { DatasourcePanelDndItem } from '../DatasourcePanel/types';
diff --git a/superset-frontend/src/explore/components/ExploreContentPopover.tsx b/superset-frontend/src/explore/components/ExploreContentPopover.tsx
index bbf9e0c1a3..3a006601cc 100644
--- a/superset-frontend/src/explore/components/ExploreContentPopover.tsx
+++ b/superset-frontend/src/explore/components/ExploreContentPopover.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
export const ExplorePopoverContent = styled.div`
.edit-popover-resize {
diff --git a/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx b/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx
index 42aea64623..c437286277 100644
--- a/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx
+++ b/superset-frontend/src/explore/components/ExploreViewContainer/index.jsx
@@ -22,16 +22,14 @@ import PropTypes from 'prop-types';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import {
- styled,
t,
- css,
- useTheme,
logging,
useChangeEffect,
useComponentDidMount,
usePrevious,
isMatrixifyEnabled,
} from '@superset-ui/core';
+import { styled, css, useTheme } from '@apache-superset/core/ui';
import { debounce, isEqual, isObjectLike, omit, pick } from 'lodash';
import { Resizable } from 're-resizable';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx b/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx
index 71be72fc35..b07d8e6c50 100644
--- a/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx
+++ b/superset-frontend/src/explore/components/ExportToCSVDropdown/index.tsx
@@ -18,7 +18,8 @@
*/
import { ReactChild, useCallback, Key } from 'react';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
import { Dropdown } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/explore/components/RunQueryButton/index.tsx b/superset-frontend/src/explore/components/RunQueryButton/index.tsx
index d8b3c4c3e5..eb1b4e8218 100644
--- a/superset-frontend/src/explore/components/RunQueryButton/index.tsx
+++ b/superset-frontend/src/explore/components/RunQueryButton/index.tsx
@@ -18,7 +18,8 @@
*/
import { ReactNode } from 'react';
-import { t, useTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Button } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
diff --git a/superset-frontend/src/explore/components/SaveModal.tsx b/superset-frontend/src/explore/components/SaveModal.tsx
index ac3572f288..759241224d 100644
--- a/superset-frontend/src/explore/components/SaveModal.tsx
+++ b/superset-frontend/src/explore/components/SaveModal.tsx
@@ -24,7 +24,6 @@ import { connect } from 'react-redux';
import { withRouter, RouteComponentProps } from 'react-router-dom';
import {
InfoTooltip,
- Alert,
Button,
AsyncSelect,
Form,
@@ -35,14 +34,13 @@ import {
Divider,
} from '@superset-ui/core/components';
import {
- css,
DatasourceType,
isDefined,
logging,
- styled,
SupersetClient,
t,
} from '@superset-ui/core';
+import { css, styled, Alert } from '@apache-superset/core/ui';
import { Radio } from '@superset-ui/core/components/Radio';
import { canUserEditDashboard } from 'src/dashboard/util/permissionUtils';
import { setSaveChartModalVisibility } from 'src/explore/actions/saveModalActions';
diff --git a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx
index 0d095cd74b..f520267d13 100644
--- a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx
+++ b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx
@@ -32,11 +32,10 @@ import {
getChartMetadataRegistry,
validateNonEmpty,
isValidExpression,
- styled,
getColumnLabel,
- withTheme,
VizType,
} from '@superset-ui/core';
+import { styled, withTheme } from '@apache-superset/core/ui';
import SelectControl from 'src/explore/components/controls/SelectControl';
import TextControl from 'src/explore/components/controls/TextControl';
import CheckboxControl from 'src/explore/components/controls/CheckboxControl';
diff --git a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
index 6a39f78214..b4670fd3ce 100644
--- a/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.tsx
@@ -23,10 +23,9 @@ import {
JsonObject,
Payload,
QueryFormData,
- SupersetTheme,
t,
- withTheme,
} from '@superset-ui/core';
+import { SupersetTheme, withTheme } from '@apache-superset/core/ui';
import {
AsyncEsmComponent,
List,
diff --git a/superset-frontend/src/explore/components/controls/BoundsControl.tsx b/superset-frontend/src/explore/components/controls/BoundsControl.tsx
index b7621733f9..3cda5ebb87 100644
--- a/superset-frontend/src/explore/components/controls/BoundsControl.tsx
+++ b/superset-frontend/src/explore/components/controls/BoundsControl.tsx
@@ -18,7 +18,8 @@
*/
import { useEffect, useRef, useState } from 'react';
import { InputNumber } from '@superset-ui/core/components';
-import { t, styled } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { debounce } from 'lodash';
import ControlHeader from 'src/explore/components/ControlHeader';
diff --git a/superset-frontend/src/explore/components/controls/CheckboxControl.jsx b/superset-frontend/src/explore/components/controls/CheckboxControl.jsx
index a991c73e2b..dd551dd996 100644
--- a/superset-frontend/src/explore/components/controls/CheckboxControl.jsx
+++ b/superset-frontend/src/explore/components/controls/CheckboxControl.jsx
@@ -18,7 +18,7 @@
*/
import { Component } from 'react';
import PropTypes from 'prop-types';
-import { styled, css } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Checkbox } from '@superset-ui/core/components';
import ControlHeader from '../ControlHeader';
diff --git a/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx b/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx
index 2dfb69551d..04d91a8dde 100644
--- a/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx
+++ b/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx
@@ -20,7 +20,8 @@ import { Component } from 'react';
import PropTypes from 'prop-types';
import { IconTooltip, List } from '@superset-ui/core/components';
import { nanoid } from 'nanoid';
-import { t, withTheme } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { withTheme } from '@apache-superset/core/ui';
import {
SortableContainer,
SortableHandle,
diff --git a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointOption.tsx b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointOption.tsx
index b280248cfa..afe467dda9 100644
--- a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointOption.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointOption.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { styled } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { ColorBreakpointOptionProps } from './types';
import ColorBreakpointPopoverTrigger from './ColorBreakpointPopoverTrigger';
import { DragContainer } from '../OptionControls';
diff --git a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverControl.tsx b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverControl.tsx
index 6abd319dcb..9c20732858 100644
--- a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverControl.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverControl.tsx
@@ -18,7 +18,8 @@
*/
import { useState, useMemo } from 'react';
import { Button, Row, Col, InputNumber } from '@superset-ui/core/components';
-import { styled, t, validateNumber } from '@superset-ui/core';
+import { t, validateNumber } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import ControlHeader from '../../ControlHeader';
import ColorPickerControl from '../ColorPickerControl';
import {
diff --git a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/index.tsx b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/index.tsx
index a33ee21f50..f3bb1e13ad 100644
--- a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/index.tsx
@@ -18,7 +18,8 @@
*/
import { useState, useEffect } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import DndSelectLabel from 'src/explore/components/controls/DndColumnSelectControl/DndSelectLabel';
import ColorBreakpointOption from './ColorBreakpointOption';
import { ColorBreakpointType, ColorBreakpointsControlProps } from './types';
diff --git a/superset-frontend/src/explore/components/controls/ColorSchemeControl/ColorSchemeLabel.tsx b/superset-frontend/src/explore/components/controls/ColorSchemeControl/ColorSchemeLabel.tsx
index 55b439e24f..46538f8181 100644
--- a/superset-frontend/src/explore/components/controls/ColorSchemeControl/ColorSchemeLabel.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorSchemeControl/ColorSchemeLabel.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
-import { css, SupersetTheme } from '@superset-ui/core';
+import { css, SupersetTheme } from '@apache-superset/core/ui';
import { useRef, useState } from 'react';
import { Tooltip } from '@superset-ui/core/components';
diff --git a/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx b/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
index 1cede6ba4d..f5e6b8c187 100644
--- a/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.tsx
@@ -19,15 +19,14 @@
import { useMemo, ReactNode } from 'react';
import {
- css,
ColorScheme,
ColorSchemeGroup,
SequentialScheme,
t,
- useTheme,
getLabelsColorMap,
CategoricalColorNamespace,
} from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { sortBy } from 'lodash';
import ControlHeader from 'src/explore/components/ControlHeader';
import {
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx
index bed610a093..1086e6f05f 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useMemo, useState } from 'react';
-import { useTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import {
COLUMN_NAME_ALIASES,
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigItem.tsx b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigItem.tsx
index f71d1584d8..fac850c5cf 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigItem.tsx
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigItem.tsx
@@ -17,7 +17,7 @@
* under the License.
*/
import { memo } from 'react';
-import { css, useTheme } from '@superset-ui/core';
+import { css, useTheme } from '@apache-superset/core/ui';
import { Popover } from '@superset-ui/core/components';
import { Icons } from '@superset-ui/core/components/Icons';
import { ColumnTypeLabel } from '@superset-ui/chart-controls';
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlFormItem.tsx b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlFormItem.tsx
index 7a2308a72c..f6a150cf01 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlFormItem.tsx
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlFormItem.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useState, FunctionComponentElement, ChangeEvent } from 'react';
-import { JsonValue, useTheme } from '@superset-ui/core';
+import { JsonValue } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { ControlFormItemComponents } from './controls';
import ControlHeader, { ControlHeaderProps } from '../../../ControlHeader';
import { ControlFormItemDefaultSpec } from '../types';
diff --git a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
index 9ae7b37b66..f8d60b375c 100644
--- a/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/index.tsx
@@ -22,7 +22,8 @@ import {
FunctionComponentElement,
useMemo,
} from 'react';
-import { JsonObject, JsonValue, useTheme } from '@superset-ui/core';
+import { JsonObject, JsonValue } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Constants } from '@superset-ui/core/components';
import { debounce } from 'lodash';
import { ControlFormItemNode } from './ControlFormItem';
diff --git a/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx b/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
index 4d79fda76c..9dd45d18fd 100644
--- a/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
+++ b/superset-frontend/src/explore/components/controls/ComparisonRangeLabel.tsx
@@ -22,7 +22,6 @@ import { useSelector } from 'react-redux';
import { isEmpty, isEqual, noop } from 'lodash';
import {
BinaryAdhocFilter,
- css,
ensureIsArray,
fetchTimeRange,
getTimeOffset,
@@ -30,6 +29,7 @@ import {
SimpleAdhocFilter,
t,
} from '@superset-ui/core';
+import { css } from '@apache-superset/core/ui';
import ControlHeader, {
ControlHeaderProps,
} from 'src/explore/components/ControlHeader';
diff --git a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
index a9c0fe15f6..ebfcabd26d 100644
--- a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
+++ b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useEffect, useState } from 'react';
-import { styled, css, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { Comparator } from '@superset-ui/chart-controls';
import { Icons } from '@superset-ui/core/components/Icons';
import ControlHeader from 'src/explore/components/ControlHeader';
diff --git a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx
index 0401f315a5..aa63c778a1 100644
--- a/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx
+++ b/superset-frontend/src/explore/components/controls/ConditionalFormattingControl/FormattingPopoverContent.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
import { useMemo, useState, useEffect } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { GenericDataType } from '@apache-superset/core/api/core';
import {
Comparator,
diff --git a/superset-frontend/src/explore/components/controls/ContourControl/ContourOption.tsx b/superset-frontend/src/explore/components/controls/ContourControl/ContourOption.tsx
index d0c8437d78..002cc629cc 100644
--- a/superset-frontend/src/explore/components/controls/ContourControl/ContourOption.tsx
+++ b/superset-frontend/src/explore/components/controls/ContourControl/ContourOption.tsx
@@ -17,7 +17,8 @@
* under the License.
*/
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import { ContourOptionProps } from './types';
import ContourPopoverTrigger from './ContourPopoverTrigger';
import OptionWrapper from '../DndColumnSelectControl/OptionWrapper';
diff --git a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.tsx b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.tsx
index 4b4632d278..03f7097a64 100644
--- a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.tsx
+++ b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.tsx
@@ -19,7 +19,8 @@
import { useState, useEffect } from 'react';
import { Button, Row, Col } from '@superset-ui/core/components';
import Tabs from '@superset-ui/core/components/Tabs';
-import { legacyValidateInteger, styled, t } from '@superset-ui/core';
+import { legacyValidateInteger, t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import ControlHeader from '../../ControlHeader';
import TextControl from '../TextControl';
import ColorPickerControl from '../ColorPickerControl';
diff --git a/superset-frontend/src/explore/components/controls/ContourControl/index.tsx b/superset-frontend/src/explore/components/controls/ContourControl/index.tsx
index 2e372b98a4..6e5d5f8c26 100644
--- a/superset-frontend/src/explore/components/controls/ContourControl/index.tsx
+++ b/superset-frontend/src/explore/components/controls/ContourControl/index.tsx
@@ -18,7 +18,8 @@
*/
import { useState, useEffect } from 'react';
-import { styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { styled } from '@apache-superset/core/ui';
import DndSelectLabel from 'src/explore/components/controls/DndColumnSelectControl/DndSelectLabel';
import ContourPopoverTrigger from './ContourPopoverTrigger';
import ContourOption from './ContourOption';
diff --git a/superset-frontend/src/explore/components/controls/CurrencyControl/CurrencyControl.tsx b/superset-frontend/src/explore/components/controls/CurrencyControl/CurrencyControl.tsx
index 2829be3686..9b80777e22 100644
--- a/superset-frontend/src/explore/components/controls/CurrencyControl/CurrencyControl.tsx
+++ b/superset-frontend/src/explore/components/controls/CurrencyControl/CurrencyControl.tsx
@@ -19,13 +19,12 @@
import { useMemo } from 'react';
import { useSelector } from 'react-redux';
import {
- css,
Currency,
ensureIsArray,
getCurrencySymbol,
- styled,
t,
} from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { CSSObject } from '@emotion/react';
import { Select, type SelectProps } from '@superset-ui/core/components';
import { ViewState } from 'src/views/types';
diff --git a/superset-frontend/src/explore/components/controls/CustomListItem/index.tsx b/superset-frontend/src/explore/components/controls/CustomListItem/index.tsx
index ba0fe7abcb..a3c824aadb 100644
--- a/superset-frontend/src/explore/components/controls/CustomListItem/index.tsx
+++ b/superset-frontend/src/explore/components/controls/CustomListItem/index.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { List, type ListItemProps } from '@superset-ui/core/components';
export interface CustomListItemProps extends ListItemProps {
diff --git a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
index 9a48cbe138..ed582b088e 100644
--- a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
+++ b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
@@ -20,14 +20,8 @@
import { PureComponent } from 'react';
import PropTypes from 'prop-types';
-import {
- css,
- DatasourceType,
- SupersetClient,
- styled,
- t,
- withTheme,
-} from '@superset-ui/core';
+import { DatasourceType, SupersetClient, t } from '@superset-ui/core';
+import { css, styled, withTheme } from '@apache-superset/core/ui';
import { getTemporalColumns } from '@superset-ui/chart-controls';
import { getUrlParam } from 'src/utils/urlUtils';
import {
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
index 9229c42453..cb47f906d2 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
@@ -18,15 +18,12 @@
*/
import { ReactNode, useState, useEffect, useMemo } from 'react';
import {
- css,
- styled,
t,
- useTheme,
NO_TIME_RANGE,
- SupersetTheme,
useCSSTextTruncation,
fetchTimeRange,
} from '@superset-ui/core';
+import { css, styled, useTheme, SupersetTheme } from '@apache-superset/core/ui';
import {
Button,
Constants,
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateFunctionTooltip.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateFunctionTooltip.tsx
index 02c7e9009a..8e69cc0d2c 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateFunctionTooltip.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateFunctionTooltip.tsx
@@ -16,7 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useTheme, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { useTheme } from '@apache-superset/core/ui';
import { Tooltip } from '@superset-ui/core/components';
import { ClassNames } from '@emotion/react';
diff --git a/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateLabel.tsx b/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateLabel.tsx
index 67d076e60e..338c3e0648 100644
--- a/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateLabel.tsx
+++ b/superset-frontend/src/explore/components/controls/DateFilterControl/components/DateLabel.tsx
@@ -19,7 +19,8 @@
import { forwardRef, MouseEvent, ReactNode, RefObject } from 'react';
-import { css, styled, t } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
+import { css, styled } from '@apache-superset/core/ui';
import { Icons } from '@superset-ui/core/components/Icons';
export type DateLabelProps = {
diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
index 2d8b19812e..175b057213 100644
--- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
+++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx
@@ -31,13 +31,11 @@ import {
AdhocColumn,
isAdhocColumn,
t,
- styled,
- css,
DatasourceType,
Metric,
QueryFormMetric,
- // useTheme,
} from '@superset-ui/core';
+import { styled, css } from '@apache-superset/core/ui';
import { ColumnMeta, isSavedExpression } from '@superset-ui/chart-controls';
import Tabs from '@superset-ui/core/components/Tabs';
import {
... 1903 lines suppressed ...