veza/apps/web/src/features/player/components
senke 32cacdcf09 feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs
TASK-APLSH-001: Enhanced PiP with canvas-based display showing cover art + track info
TASK-APLSH-002: Chromecast detection hook (useCastSupport) — full casting deferred
TASK-APLSH-003: AirPlay detection hook (useAirPlaySupport) — Safari target picker
TASK-APLSH-004: AudioVisualizer component with 3 modes (bars/wave/spectrogram)
  - useSpectrumAnalyser hook (64 bands, high-res FFT)
  - Canvas-based rendering with SUMI color palette
  - Integrated into PlayerExpanded with toggle button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:59:30 +01:00
..
audio-player feat(player): integrate HLS streaming with ABR quality switching 2026-02-22 21:24:40 +01:00
player-bar feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs 2026-03-13 13:59:30 +01:00
AudioPlayer.stories.tsx style(player): elevate AudioPlayer to SaaS Premium 2026-02-07 14:04:13 +01:00
AudioPlayer.test.tsx [FE-TEST-008] test: Add component tests for player components 2025-12-25 17:23:39 +01:00
AudioPlayer.tsx refactor(player): decompose AudioPlayer into audio-player module 2026-02-06 13:37:04 +01:00
AudioSettingsPanel.tsx feat(v0.13.1): conformité audio & player — gapless, crossfade, normalization 2026-03-12 22:38:44 +01:00
AudioVisualizer.test.tsx feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs 2026-03-13 13:59:30 +01:00
AudioVisualizer.tsx feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs 2026-03-13 13:59:30 +01:00
GlobalPlayer.stories.tsx refactor(ui): replace gray colors with Sumi tokens 2026-02-17 17:03:57 +01:00
GlobalPlayer.tsx feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs 2026-03-13 13:59:30 +01:00
MiniPlayer.stories.tsx refactor(ui): replace gray colors with Sumi tokens 2026-02-17 17:03:57 +01:00
MiniPlayer.test.tsx chore(refactor/sumi-migration): commit pending changes — tests, stream server, dist_verification 2026-02-13 19:39:18 +01:00
MiniPlayer.tsx a11y: skip link exists in App, ChatInput aria-label, sidebar focus trap, MiniPlayer aria-live 2026-02-12 21:55:25 +01:00
NextPreviousButtons.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
NextPreviousButtons.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
NextPreviousButtons.tsx style(player): elevate player components to SaaS Premium 2026-02-07 16:01:56 +01:00
PlaybackSpeedControl.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
PlaybackSpeedControl.test.tsx feat(player): Lot F - PlaybackSpeedControl, useMediaSession, waveform 2026-02-20 00:40:53 +01:00
PlaybackSpeedControl.tsx feat(player): Lot F - PlaybackSpeedControl, useMediaSession, waveform 2026-02-20 00:40:53 +01:00
PlayerControls.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
PlayerControls.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
PlayerError.stories.tsx style(stories): replace kodo decorators with design tokens in all story files 2026-02-07 15:10:32 +01:00
PlayerError.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
PlayerError.tsx chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
PlayerExpanded.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
PlayerExpanded.tsx feat(v0.13.4): polish audio & player — PiP canvas, visualizer, Cast/AirPlay stubs 2026-03-13 13:59:30 +01:00
PlayerLoading.stories.tsx chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
PlayerLoading.test.tsx refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
PlayerLoading.tsx Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy 2026-02-14 17:23:32 +01:00
PlayerQueue.stories.tsx feat(release): v0.202 — Lots G, H, F, C, D 2026-02-20 18:16:17 +01:00
PlayerQueue.tsx fix(player): resolve TypeScript errors in PlayerQueue and queue API types 2026-02-21 05:11:07 +01:00
PlayPauseButton.stories.tsx chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
PlayPauseButton.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
PlayPauseButton.tsx style(player): elevate player components to SaaS Premium 2026-02-07 16:01:56 +01:00
ProgressBar.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
ProgressBar.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
ProgressBar.tsx style(player): elevate player components to SaaS Premium 2026-02-07 16:01:56 +01:00
QualitySelector.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
QualitySelector.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
QualitySelector.tsx feat(v0.501): Sprint 2 -- HLS production-ready 2026-02-22 18:16:37 +01:00
RepeatShuffleButtons.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
RepeatShuffleButtons.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
RepeatShuffleButtons.tsx feat(ui): tooltip adoption + search highlighting & skeleton loading 2026-02-09 23:14:00 +01:00
TimeDisplay.stories.tsx chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
TimeDisplay.test.tsx refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
TimeDisplay.tsx style(player): elevate player components to SaaS Premium 2026-02-07 15:33:31 +01:00
TrackInfo.stories.tsx chore(dx): add .cursorrules and design system audit documentation 2026-02-05 14:20:06 +01:00
TrackInfo.test.tsx refactor(ui): replace gray colors with Sumi tokens 2026-02-17 17:03:57 +01:00
TrackInfo.tsx refactor(ui): replace gray colors with Sumi tokens 2026-02-17 17:03:57 +01:00
VolumeControl.stories.tsx fix(web): resolve all 568 TypeScript errors — tsc --noEmit now passes with zero errors 2026-02-13 00:32:08 +01:00
VolumeControl.test.tsx test(web): player, playlists, tracks tests; feat(playlists): permissions utils 2026-02-11 22:19:24 +01:00
VolumeControl.tsx feat(ui): tooltip adoption + search highlighting & skeleton loading 2026-02-09 23:14:00 +01:00
WaveformDisplay.stories.tsx feat(v0.501): Sprint 2 -- HLS production-ready 2026-02-22 18:16:37 +01:00
WaveformDisplay.tsx feat(v0.501): Sprint 2 -- HLS production-ready 2026-02-22 18:16:37 +01:00