- Move asset selection, range selection, and keyboard interaction logic
to SelectableSegment
- Extract day group selection logic to SelectableDay component
- Simplify Timeline component by removing selection-related state and
handlers
- Fix scroll compensation handling with dedicated while loop
- Remove unused keyboard handlers from Scrubber component
Create abstract PhotostreamManager and PhotostreamSegment base classes to enable reusable
timeline-like components. This refactoring extracts common viewport management, scroll
handling, and segment operations from TimelineManager and MonthGroup into reusable
abstractions.
Changes:
- Add PhotostreamManager.svelte.ts with viewport and scroll management
- Add PhotostreamSegment.svelte.ts with segment positioning and intersection logic
- Refactor TimelineManager to extend PhotostreamManager
- Refactor MonthGroup to extend PhotostreamSegment
- Add utility functions for segment identification and date formatting
- Update tests to reflect new inheritance structure