Commit Graph

17409 Commits

Author SHA1 Message Date
Evan Rusackas
859e627c30 fix: Restore all missing features to Pie control panel
- Added back outer radius slider control with min/max constraints
- Added conditional inner radius control that only shows when Donut is checked
- Added color palette selector component
- Added conditional Label Line control that only shows when Show Labels is checked
- Fixed double headers on Metric and Group by controls by removing duplicate labels
- All controls now properly configured with renderTrigger where appropriate
2025-08-17 10:36:47 -07:00
Evan Rusackas
980c06e7d7 refactor: Clean up Pie control panel implementation
- Remove unnecessary control panel files (controlPanel.tsx, controlPanelModern.tsx, PieControlPanel.tsx)
- Keep only the simplified working version (PieControlPanelSimple.tsx)
- Fix all linting and type-checking errors
- Remove unused imports and color literals
2025-08-17 10:29:21 -07:00
Evan Rusackas
204b32e4a0 feat: Add infrastructure for modern React control panels
- Modified expandControlConfig to handle modern panel components
- Added ModernControlPanelRenderer component for bridging
- Updated ControlPanelsContainer to render modern panels directly
- Modified getAllControlsState to process controlOverrides from modern panels
- Updated getSectionsToRender to handle modern control panels
- Created PieControlPanelSimple with React-based controls, tooltips, and dynamic rendering

This sets up the foundation for migrating from config-based to React component-based control panels.
2025-08-17 10:12:06 -07:00
Evan Rusackas
3603775df1 feat: Create TRUE React-based control panel for Pie chart
- Complete abandonment of controlPanelSections/controlSetRows architecture
- Use Ant Design Collapse and Grid for layout instead of proprietary constructs
- Import actual React control components from controlMap
- Direct component usage, no config objects
- Clean, modern React component approach with proper props

This is the actual React-based control panel we want - pure components,
no legacy structures, just React + Ant Design.
2025-08-14 10:47:51 -07:00
Evan Rusackas
cf3b93b7bc fix: Update Pie chart control panel to use proper shared controls
- Fix groupby and metric control configurations
- Use spread operator to properly extend shared controls
- Add proper labels and descriptions for controls
- Temporarily disable formDataOverrides to debug column issues
- Fix sort_by_metric control type definition

The 'Referenced columns not available in DataFrame' error should now be resolved.
2025-08-14 10:03:05 -07:00
Evan Rusackas
df772a9afa feat: Implement nuclear approach for control panel migration
- Create empty control panel placeholder for non-migrated charts
- Switch Bar and Line charts to empty panels temporarily
- Update Pie chart to use traditional control config structure
- Remove experimental React-based PieControlPanel component
- Fix TypeScript errors in control panel configurations
- Simplify migration path by focusing on one working chart first

This approach allows us to get one chart (Pie) working properly
before migrating others, avoiding complex dual-architecture issues.
2025-08-14 09:51:09 -07:00
Evan Rusackas
d01c038471 feat: Implement phased control panel migration approach
- Create modern Pie chart control panel using React/AntD components
- Add ModernControlPanelRenderer bridge for backward compatibility
- Create ReactControlWrappers for control components
- Update ControlPanelsContainer to support both legacy and modern formats
- Add comprehensive migration documentation and plan

This establishes the foundation for migrating from controlSetRows to
modern React-based control panels while maintaining full backward
compatibility. The Pie chart serves as the proof of concept for the
phased migration approach.

Note: This is a work-in-progress implementation that demonstrates
the migration approach. TypeScript errors and linting issues will
be resolved as the migration progresses.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 17:25:53 -07:00
Evan Rusackas
7f4a3a3d0f refactor: Modernize control panel layouts with Ant Design Grid
- Replace Bootstrap grid classes with Ant Design Row/Col components
- Update ControlRow.tsx to use Ant Design grid system
- Replace all className="control-row" with Row/Col components
- Import Row/Col from @superset-ui/core/components for consistency
- Add new ControlPanelLayout utilities for flexible layouts
- Standardize spacing with gutter={[16, 8]} across all control groups

This modernizes the control panel layout system to use Ant Design's
consistent grid system instead of mixed Bootstrap/custom CSS classes,
improving maintainability and visual consistency.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 14:34:06 -07:00
Evan Rusackas
c198b990a3 chore: Remove JSONForms dependencies
Remove @jsonforms/core and @jsonforms/react as they are no longer needed
after migrating to React-based control panels.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 13:40:57 -07:00
Evan Rusackas
286b4d81e9 chore: Clean up files not needed for PR
- Add .claude_rc to .gitignore (local development file)
- Remove ARCHITECTURE_PLAN.md (development planning document)
- Remove CONTROL_PANEL_MIGRATION.md and MIGRATION_GUIDE.md
  (internal migration documentation not needed in final PR)

Note: LLMS.md, CLAUDE.md, GEMINI.md, GPT.md are existing Apache Superset
documentation files and remain untouched.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 13:40:08 -07:00
Evan Rusackas
446beb4d2e refactor: Remove string control processing logic
- Simplify getSectionsToRender to remove string control checks
- Remove invalidControls logic since all controls are now React components
- Clean up control filtering to only check for null/undefined

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 13:04:58 -07:00
Evan Rusackas
0ea89c1c57 refactor: Complete migration to React-based control panels
- Remove all string-based control references
- Delete deprecated controls.jsx file
- Update all control panels to use React component functions
- Fix inline control function signatures (name, overrides)
- Remove JSONForms migration utilities
- Update store.js to work without old controls
- Add RadioButtonControl to InternalControlType
- Fix tests to work with new architecture

This completes the migration away from string-based control references
to fully React-based control panels with proper TypeScript support.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 12:48:05 -07:00
Evan Rusackas
26f0556bef chore(controls): Remove all extraneous control panel files
- Delete all controlPanelModern.tsx files (JSONForms format)
- Delete controlPanelReact.tsx and other experimental variants
- Rename Word Cloud controlPanelFixed.ts to controlPanel.ts
- Update imports to use standard controlPanel files
- Verify no string references remain in control panels

All visualizations now use their standard controlPanel.ts/tsx files with
React component functions. The codebase is now consistent with the new
control panel architecture.
2025-08-13 11:02:09 -07:00
Evan Rusackas
1137185842 fix(controls): Add InlineCheckboxControl and fix build errors
- Add InlineCheckboxControl function for creating checkbox controls
- Fix calendar control panel to use correct function signatures
- Remove deleted JSONForms container references
- Remove controlPanelMigration export that no longer exists
- Fix ReactControlPanel export to match actual export

All control panels now compile successfully and the new control system is working.
2025-08-12 22:29:41 -07:00
Evan Rusackas
97913203e1 feat(explore): Migrate control panels to React-based architecture
- Replace string-referenced control system with React components
- Add useFormData hook for direct Redux integration
- Create reusable control wrapper components (SeriesControl, MetricControl, etc.)
- Support both camelCase and snake_case for backward compatibility
- Successfully migrate Word Cloud control panel as proof of concept
- Remove JSONForms implementation in favor of simpler React approach
- Add migration guide to CLAUDE.md for other control panels

This simplifies the control panel architecture by:
1. Eliminating string references in favor of React components
2. Providing type-safe control definitions
3. Connecting controls directly to Redux state
4. Making control panels easier to understand and maintain

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 18:22:00 -07:00
Evan Rusackas
06b98c1095 feat(controls): Migrate control panels to JSON Forms format
Major milestone in modernizing the control panel system:

## Changes Made

### Infrastructure
- Created ControlPanelsContainerWrapper to auto-detect JSON Forms vs legacy format
- Updated ExploreViewContainer to use the wrapper for automatic format detection
- Both legacy and JSON Forms control panels now work seamlessly

### Migrated Control Panels (15 total)
- 10 legacy-plugin-chart-* control panels
- 2 BigNumber ECharts control panels
- 1 Deck.gl Arc layer control panel
- 1 Word Cloud control panel (test case)
- 1 Chord diagram (previously attempted, now proper)

### Migration Pattern Established
- JSON Schema for data structure
- UI Schema for layout with collapsible groups
- Preserved all controlOverrides and formDataOverrides
- Full TypeScript support with proper types

### Benefits
- Industry-standard JSON Forms format
- Better separation of data model and UI
- Cleaner, more maintainable code
- Foundation for future enhancements

Next phase: Migrate remaining 40+ control panels and deprecate legacy format.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 14:48:15 -07:00
Evan Rusackas
fe0ea69280 feat(controls): Migrate all control panels to React component functions
Major refactor to modernize control panel system:

## Changes Made

### Core Infrastructure
- Created InlineControls.tsx with helper functions for all control types
- Added SharedControlComponents for replacing string control references
- Fixed TypeScript types and imports across all control panels
- Added proper exports and type definitions

### Control Panel Migrations
- Converted 20+ control panel files from inline configurations to React components
- Eliminated all string control references (e.g., ['metric'] → MetricControl())
- Updated all legacy-plugin-chart-* plugins
- Updated all legacy-preset-chart-deckgl layers
- Fixed chord diagram control panel (was prematurely using JSON Forms)

### Type Safety Improvements
- Fixed choice array type mismatches (now supports mixed types)
- Resolved import conflicts by renaming inline control helpers
- Added proper TypeScript types for all control configurations
- Reduced TypeScript errors by 57% (44 → 19)

### Pattern Conversion
Before: { name: 'control', config: { type: 'SelectControl', ... } }
After: SelectControl({ name: 'control', ... })

This sets the foundation for the next phase: migrating to JSON Forms format.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 14:14:39 -07:00
Mehmet Salih Yavuz
761daec53d feat(timeshift): Add support for date range timeshifts (#34375) 2025-08-05 19:31:40 +03:00
Vitor Avila
407fb67f1e fix: Avoid null scrollLeft in VirtualTable (#34545) 2025-08-05 09:25:47 -03:00
Vitor Avila
49689eec6c feat: Enable drilling in embedded (#34319) 2025-08-05 02:23:00 -03:00
Maxime Beauchemin
791ea9860d fix(explore): Fix missing await for async buildV1ChartDataPayload calls (#34528) 2025-08-04 15:08:34 -07:00
JUST.in DO IT
2f8939d229 fix(native filters): throws an error when a chart containing a bigint value (#34539) 2025-08-04 16:17:06 -03:00
JUST.in DO IT
ccf6290120 chore(core): Add drawer to core ui components (#34515) 2025-08-04 11:06:29 -07:00
dependabot[bot]
96a1aa60e8 chore(deps): update gh-pages requirement from ^6.2.0 to ^6.3.0 in /superset-frontend/packages/superset-ui-demo (#34444)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:38:12 -07:00
dependabot[bot]
2ea0368c2d chore(deps-dev): bump @types/classnames from 2.3.0 to 2.3.4 in /superset-frontend (#34478)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:36:27 -07:00
dependabot[bot]
9e407e4e80 chore(deps): bump dom-to-image-more from 3.5.0 to 3.6.0 in /superset-frontend (#34482)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:11:29 -07:00
dependabot[bot]
360e58c181 chore(deps): bump @deck.gl/core from 9.1.13 to 9.1.14 in /superset-frontend (#34480)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:11:13 -07:00
dependabot[bot]
22d5eb7835 chore(deps-dev): bump tsx from 4.19.4 to 4.20.3 in /superset-frontend (#34484)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:10:12 -07:00
dependabot[bot]
7c4a77a909 chore(deps-dev): bump @babel/compat-data from 7.27.2 to 7.28.0 in /superset-frontend (#34485)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-03 00:09:55 -07:00
Evan Rusackas
4e209e51d0 fix(sqllab): prevent strings with angle brackets from being hidden (#34512)
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-02 22:53:17 -07:00
Ville Brofeldt
7191ae55c8 fix: docs eslint command (#34520) 2025-08-02 16:49:23 -07:00
Ville Brofeldt
17725ebc83 chore: use logger on all migrations (#34521) 2025-08-02 12:19:50 -07:00
JUST.in DO IT
1a7a381bd5 fix(echart): initial chart animation (#34516) 2025-08-02 08:41:53 -03:00
dependabot[bot]
daf207e5c2 chore(deps): bump less from 4.3.0 to 4.4.0 in /docs (#34494)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:10:59 -07:00
dependabot[bot]
72294c569f chore(deps): bump antd from 5.26.3 to 5.26.7 in /docs (#34495)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:10:39 -07:00
dependabot[bot]
792dd08d38 chore(deps-dev): bump @eslint/js from 9.31.0 to 9.32.0 in /docs (#34497)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:09:58 -07:00
dependabot[bot]
1e40e7d02b chore(deps): bump swagger-ui-react from 5.26.0 to 5.27.1 in /docs (#34498)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:09:29 -07:00
dependabot[bot]
7e98c75f01 chore(deps-dev): bump eslint-config-prettier from 10.1.5 to 10.1.8 in /docs (#34499)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:08:40 -07:00
dependabot[bot]
b18de05ea4 chore(deps-dev): bump webpack from 5.99.9 to 5.101.0 in /docs (#34500)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 17:08:09 -07:00
dependabot[bot]
9300652277 chore(deps): bump actions/first-interaction from 1 to 2 (#34459)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 14:02:25 -07:00
yousoph
7c2ec4ca5f fix: Update table chart configuration labels to sentence case (#34438)
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-01 12:02:42 -07: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
Maxime Beauchemin
cb27d5fe8d chore: proper current_app.config proxy usage (#34345)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-31 19:27:42 -07:00
Joe Li
6c9cda758a chore: update chart list e2e and component tests (#34393)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-31 17:12:55 -07:00
Mehmet Salih Yavuz
967134f540 fix(theming): Visual bugs p-3 (#34424) 2025-08-01 00:26:38 +03:00
dependabot[bot]
25bb353f9d chore(deps-dev): update jest requirement from ^30.0.2 to ^30.0.4 in /superset-frontend/packages/generator-superset (#34039)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-07-31 13:24:18 -07:00
Beto Dealmeida
9cf2472291 fix: time grain and DB dropdowns (#34431) 2025-07-31 16:10:04 -04:00
ObservabilityTeam
cf5b976659 fix(dashboard): adds dependent filter select first value fixes (#34137)
Co-authored-by: Muhammad Musfir <muhammad.musfir@de-cix.net>
2025-07-31 12:39:30 -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