Maxime Beauchemin
bce6ca1ae0
refactor: eliminate all static theme dependencies and enable true dynamic theming
...
This comprehensive architectural transformation removes all static theme imports
(supersetTheme, themeObject) across the entire codebase, replacing them with
proper dynamic theme access patterns that support real-time theme switching.
## What Changed
**Static Exports Eliminated:**
- Removed `supersetTheme` and `themeObject` exports from core theme module
- Eliminated static theme dependencies across 47 files
- Updated ESLint rules to reflect removed exports
**Dynamic Theme Architecture:**
- Functional components: Use `useTheme()` hook for reactive theme access
- Class components: Use `withTheme()` HOC for theme injection
- Transform functions: Access `theme` from chartProps parameter
- Test infrastructure: Use `Theme.fromConfig()` for isolated testing
- Singleton pattern: `DEFAULT_THEME` for efficient fallbacks
**Test Architecture Cleanup:**
- Removed unnecessary theme setup from 30+ test files
- Eliminated legacy `dynamicTheme` cruft from logic tests
- Simplified theme assertions to focus on behavior vs implementation details
- Maintained theme testing only where legitimately needed
**Core Infrastructure:**
- ThemeController uses dynamic theme creation instead of static imports
- ChartProps uses singleton DEFAULT_THEME for efficient fallbacks
- Theme providers only at app root and isolated contexts (tests, storybook)
## Why This Was Needed
The previous architecture had static theme imports that:
- Always returned light theme values regardless of current theme mode
- Broke dark mode compatibility in visualizations (fixed in previous commit)
- Created performance overhead with redundant theme instance creation
- Prevented real-time theme switching across components
- Led to inconsistent theme access patterns
## Benefits
- ✅ Perfect dark mode support - no static dependencies to break theming
- ✅ True dynamic theming - all components react to theme changes
- ✅ Clean architecture - minimal providers, consistent patterns
- ✅ Better performance - singleton pattern eliminates waste
- ✅ Future-proof - ready for theme customization and user preferences
- ✅ Developer experience - clear patterns for every context
This transformation enables the next generation of Superset theming with
complete dynamic theme support and perfect dark mode compatibility.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-16 10:57:36 -07:00
Maxime Beauchemin
05c6a1bf20
fix(viz): resolve dark mode compatibility issues in BigNumber and Heatmap ( #35151 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-16 10:21:47 -07:00
Elizabeth Thompson
7d0a472d1e
feat: Add comprehensive dark mode support for chart thumbnails and examples ( #35111 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-15 13:53:44 -07:00
Maxime Beauchemin
c2534f9155
feat: Add ECharts options overrides to theme system ( #34876 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-15 13:52:38 -07:00
Gabriel Torres Ruiz
7fd5a7668b
fix(charts): fix legend theming and hollow symbols in dark mode ( #35123 )
2025-09-12 23:33:29 +03:00
SBIN2010
454ed1883f
feat(BoxPlot): add chart data zoom ( #35097 )
2025-09-11 21:29:02 +03:00
Priyanshu Kumar
b42060c880
fix(pie): fixes pie chart other click error ( #35086 )
2025-09-11 14:19:52 +03:00
Devanjan Banerjee
eb4351af83
feat(Timeseries & MixedTimeseries): Force selected timegrain on timeseries intervals when the x-axis is of timestamp type ( #34595 )
2025-09-10 20:27:23 -07:00
SBIN2010
5a3182ce21
fix: mixed timeseries chart add legend margin ( #35036 )
2025-09-05 14:44:14 -07:00
SBIN2010
9424538bb1
feat: add sort legend to legend section ( #34911 )
2025-09-04 16:41:47 -07:00
SBIN2010
031fb4b5a8
fix: display legend mixed timeseries chart ( #35005 )
2025-09-04 16:39:57 -07:00
Evan Rusackas
682cdcc3e0
fix(echarts): Display NULL values in categorical x-axis for bar charts ( #34761 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-02 12:16:37 -07:00
SBIN2010
dc7a8844eb
feat(pie): add sort legend ( #34323 )
2025-08-29 12:19:14 -07:00
Kamil Gabryjelski
547f297171
fix(echarts): Series labels hard to read in dark mode ( #34815 )
2025-08-25 14:03:00 +02:00
SBIN2010
852adaa6cc
feat: conditional formatting improvements in tables ( #34330 )
2025-08-18 15:13:16 -07:00
Maxime Beauchemin
1f482b42eb
feat: completely migrate from DeprecatedThemeColors to Antd semantic tokens ( #34732 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-18 14:04:26 -07:00
Michael S. Molina
fc95c4fc89
fix: Timeseries annotation layers ( #34709 )
2025-08-15 12:59:30 -03:00
Kamil Gabryjelski
f6353bd1e8
fix: Bar chart crash when switching from Big Number ( #34671 )
2025-08-14 15:24:23 +02:00
SBIN2010
38e15196f2
fix(Heatmap): addin x axis label rotation ( #34239 )
2025-08-07 12:27:35 -07:00
JUST.in DO IT
3e12d97e8e
fix(echart): broken aggregator due to bigint value ( #34580 )
2025-08-06 15:22:04 -03:00
yousoph
4a556f4ac4
fix: update copy text for better capitalization and abbreviation standards ( #34508 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-05 14:40:52 -07:00
JUST.in DO IT
1a7a381bd5
fix(echart): initial chart animation ( #34516 )
2025-08-02 08:41:53 -03:00
Evan Rusackas
6a83b6fd87
fix(pie chart): Total now positioned correctly with all Legend positions, and respects theming ( #34435 )
2025-08-01 12:00:23 -07:00
Evan Rusackas
659cd33749
fix(echarts): resolve bar chart X-axis time formatting stuck on adaptive ( #34436 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-01 09:55:20 -07:00
yousoph
70394e79ef
feat: Add configurable query identifiers for Mixed Timeseries charts ( #34406 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 12:16:12 -07:00
Michael Gerber
f168dd69a8
fix(sunburst): Fix sunburst chart cross-filter logic ( #31495 )
2025-07-30 18:47:02 -07:00
Maxime Beauchemin
0964a8bb7a
fix(big number with trendline): running 2 identical queries for no good reason ( #34296 )
2025-07-29 13:07:28 -07:00
Maxime Beauchemin
1be2287b3a
feat(timeseries): enhance 'Series Limit' to support grouping the long tail ( #34308 )
2025-07-25 16:26:32 -07:00
Maxime Beauchemin
e741a3167f
feat: add a theme CRUD page to manage themes ( #34182 )
...
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
2025-07-25 13:26:41 -07:00
Mehmet Salih Yavuz
31a15c5162
fix(DrillBy): make drill by work with multi metric charts ( #34171 )
2025-07-15 15:25:48 +02:00
Maxime Beauchemin
5d6a979cd0
chore: remove some of the deprecated theme.colors.* ( #34056 )
2025-07-04 11:39:03 -07:00
Vladislav Korenkov
9f0523977d
feat(plugin-chart-echarts): add Gantt Chart plugin ( #33716 )
2025-07-03 14:23:50 -07:00
Vladislav Korenkov
d1b372f670
fix(chart controls): remove duplicated descriptions for chart controls ( #33954 )
2025-07-03 16:01:59 -03:00
Đỗ Trọng Hải
42288c4784
build(dev-deps): upgrade Jest to major version v30 ( #33979 )
2025-07-03 11:01:40 +07:00
SBIN2010
8ee5505b61
fix(plugin-chart-echarts): correct label position for Negative Values bar chart ( #32849 )
2025-06-26 16:26:44 -07:00
Damian Pendrak
5d23dea5aa
feat(charts): Add row limit control to box plot chart ( #33871 )
2025-06-24 16:59:38 +03:00
Maxime Beauchemin
dd129fa403
feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor ( #31590 )
...
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com >
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com >
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
Co-authored-by: Geido <60598000+geido@users.noreply.github.com >
Co-authored-by: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com >
Co-authored-by: Damian Pendrak <dpendrak@gmail.com >
Co-authored-by: Pius Iniobong <67148161+payose@users.noreply.github.com >
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com >
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com >
2025-06-20 13:38:58 -07:00
Vitor Avila
93583220a7
fix: Consider last data point for Big Number comparison lag ( #33830 )
2025-06-19 17:53:31 -03:00
amaannawab923
9df990c2d1
fix(Echarts): Echarts Legend Scroll fix ( #33779 )
...
Co-authored-by: Amaan Nawab <nelsondrew07@gmail.com >
2025-06-16 18:44:52 +03:00
Beto Dealmeida
d7d7b7c0e6
fix: apply d3 format to BigNumber(s) ( #33759 )
2025-06-12 16:02:38 -04:00
Evan Rusackas
e05ccb3824
feat: x axis interval control to show ALL ticks on timeseries charts ( #33729 )
2025-06-10 21:40:56 -06:00
nmdo
d11b6d557e
feat(MixedTimeSeries): Add onlyTotal and Sort Series to Mixed TimeSeries ( #33634 )
2025-06-09 15:59:54 -06:00
Fardin Mustaque
e20a08cb14
fix: add query identifier to legend items in mixed time series charts ( #33519 )
2025-05-29 14:42:48 +02:00
Levis Mbote
429935a277
fix(big number with trendline): add None option to the aggregation method dropdown ( #33407 )
2025-05-29 14:33:04 +02:00
amaannawab923
bdfb698aa4
fix(Radar): Radar chart normalisation ( #33559 )
...
Co-authored-by: Amaan Nawab <nelsondrew07@gmail.com >
2025-05-26 22:01:17 +03:00
Richard Fogaca Nienkotter
38868f9ff4
fix(sankey): incorrect nodeValues ( #33431 )
...
Co-authored-by: richardfn <richard.fogaca@appsilon.com >
2025-05-23 14:52:58 -06:00
Giampaolo Capelli
5b2f1bbf9e
feat(stack by dimension): add a stack by dimension dropdown list ( #32707 )
...
Co-authored-by: CAPELLI Giampaolo <giampaolo.capelli@docaposte.fr >
2025-05-22 11:10:18 -03:00
Vladislav Korenkov
fa1693dc5f
feat(Pie Chart): threshold for Other ( #33348 )
2025-05-14 12:20:30 -06:00
Damian Pendrak
33e48146b0
chore: Add missing ECharts tags ( #33397 )
2025-05-12 18:10:04 +02:00
Fardin Mustaque
a928f8cd9e
feat: add metric name for big number chart types #33013 ( #33099 )
...
Co-authored-by: Fardin Mustaque <fardinmustaque@Fardins-Mac-mini.local >
2025-05-07 16:56:02 +02:00