6a4e22f1f88705c8ae0b71455612e3da069d4020
Implement full-featured search navigation across the session viewer: App.tsx: Compute matchIndices (filtered message indices matching the query), track currentMatchPosition state, and provide goToNext/goToPrev callbacks. Add scroll tracking via ResizeObserver + scroll events for minimap viewport. Restructure toolbar layout with centered search bar and right-aligned export. Pass focusedIndex to SessionViewer for scroll-into-view behavior. SearchBar: Redesign as a unified search container with integrated match count badge, prev/next navigation arrows, clear button, and keyboard hint (/). Add keyboard shortcuts: Enter/Shift+Enter for next/prev, Ctrl+G/Ctrl+Shift+G for navigation, Escape to clear and blur. Show 'X/N' position indicator and 'No results' state. SessionViewer: Add data-msg-index attributes for scroll targeting via querySelector instead of individual refs. Memoize displayItems list. Add MessageSkeleton component for loading state. Add empty state illustrations with icons and descriptive text. Apply staggered fade-in animations and search-match-focused outline to the active match. SearchMinimap: New component rendering match positions as amber ticks on a narrow strip overlaying the scroll area's right edge. Includes viewport position indicator and click-to-jump behavior. Add unit tests for SearchMinimap: empty/zero states, tick rendering, active tick styling, viewport indicator, and click handler. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
84.7%
HTML
8.8%
CSS
5%
JavaScript
1.5%