You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add zoomable interactive wrappers for indexed and time-series charts #2
Problem\nPackage consumers can scroll some charts today, but they still need to drop to raw Swift Charts for true zoomable navigation. This is especially painful for analytics and time-series exploration where detailed inspection requires panning and zooming over the visible domain.\n\n## Proposed slice\n- extend the existing scrollable/interactive wrapper family instead of creating a separate chart family\n- add true zoom + pan behavior for indexed and time-series charts\n- expose gesture-driven interaction plus public binding/state control\n- optimize the first version for a single chart at a time\n- keep the public state shape future-ready for shared multi-chart synchronization\n\n## Acceptance criteria\n- public navigation/window state exists for indexed and time-series charts\n- shared coordination logic clamps and updates zoom/pan state predictably\n- existing scrollable wrappers can adopt the new zoom/navigation API without regressing scroll behavior\n- focused tests cover state transitions, wrapper configuration, and binding behavior\n- README and changelog document the new interaction surface\n\n## Out of scope\n- new parallel zoom-specific wrapper families\n- full multi-chart synchronization\n- brush/minimap/navigator panes\n- unrelated interaction or maintainability refactors
Implemented the zoomable interactive wrapper slice.
What landed:
Added shared zoom/navigation helper types for indexed and time-series windows.
Extended the existing scrollable wrappers instead of creating a parallel zoom-only family.
Preserved the existing public scroll wrapper state contract while using clamped viewport coordination internally for rendering and gesture-driven zoom.
Updated the README and docs/tutorial examples to show viewport-driven zoom configuration.
Verification:
swift test --filter SCChartZoomNavigationTests
swift test --filter SCNativeInteractionAndTimeSeriesTests
swift test
Result: all green, with the full suite passing at 73 tests.
Activity
andywkff commentedon Apr 15, 2026
Implemented the zoomable interactive wrapper slice.
What landed:
Verification:
swift test --filter SCChartZoomNavigationTestsswift test --filter SCNativeInteractionAndTimeSeriesTestsswift testResult: all green, with the full suite passing at 73 tests.