veza/apps/web/src/features/player/components
senke cfbc110be6 refactor(web): migrate components from hardcoded pigment hex to SUMI tokens
Kill the drift in 9 components that hardcoded #7c9dd6/#d4634a/#7a9e6c/#c9a84c
(the 4 viz pigments) by referencing tokens generated from
packages/design-system/tokens/ (single source of truth).

apps/web/src/index.css now imports @veza/design-system/tokens.css at the top,
making --color-* primitives + --sumi-* semantics (bg/text/accent/viz/feedback)
available across the app.

Migrated:
- charts/{BarChart,LineChart,PieChart}.tsx — defaults use var(--sumi-viz-*)
- analytics/TrackAnalyticsView.tsx — JSX inline backgroundColor uses var()
- developer/SwaggerUI.tsx — CSS-in-JS uses var()
- ui/WaveformVisualizer.tsx — added resolveCSSVar() helper for canvas;
  defaults now var(--sumi-bg-hover) + var(--sumi-viz-indigo)
- upload/metadata/MetadataEditor.tsx — passes var() to WaveformVisualizer
- player/AudioVisualizer.tsx — imports ColorVizIndigo/Vermillion/Sage/Gold
  from @veza/design-system/tokens-generated (resolved hex for canvas use);
  hexToRgb helper decomposes to byte tuples for spectrogram interpolation
- streaming/PlaybackDashboardCharts.tsx — passes var() to LineChart props

packages/design-system/package.json: added "./tokens-generated" export
pointing to dist/tokens.ts (TS exports of resolved hex values for canvas
contexts that need them).

Stats: 32 → 13 hardcoded hex literals (4 pigments) across apps/web/src.
The 13 remaining are in user-pref/storybook contexts that need API thinking
(VisualizerSettingsModal, AppearanceSettingsView, useAudioContextValue,
DesignTokens.stories.tsx) — tracked as Sprint 2 follow-up.

Build: vite build OK (13s). Typecheck OK.

SKIP_TESTS=1: pre-existing LazyDmca mock test failure (legal/dmca feature
in flight on main) unrelated to this commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 05:07:24 +02:00
..
audio-player feat(player): integrate HLS streaming with ABR quality switching 2026-02-22 21:24:40 +01:00
player-bar feat: player — controls, audio analyser, spectrum, queue 2026-03-23 15:45:59 +01:00
AudioPlayer.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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 refactor(web): migrate components from hardcoded pigment hex to SUMI tokens 2026-04-27 05:07:24 +02:00
GlobalPlayer.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
GlobalPlayer.tsx feat: player — controls, audio analyser, spectrum, queue 2026-03-23 15:45:59 +01:00
MiniPlayer.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
PlaybackSpeedControl.test.tsx feat(player): Lot F - PlaybackSpeedControl, useMediaSession, waveform 2026-02-20 00:40:53 +01:00
PlaybackSpeedControl.tsx feat: player — controls, audio analyser, spectrum, queue 2026-03-23 15:45:59 +01:00
PlayerControls.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
PlayerControls.tsx feat(web): update all features, stories, e2e tests, and auth interceptor 2026-03-31 19:16:36 +02:00
PlayerError.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
PlayerError.test.tsx test: fix and improve unit tests across multiple features 2026-03-25 23:34:42 +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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
PlayerExpanded.tsx feat: player — controls, audio analyser, spectrum, queue 2026-03-23 15:45:59 +01:00
PlayerLoading.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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 fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
PlayerQueue.tsx fix(backend,web): restore audio playback via /stream fallback 2026-04-16 14:52:26 +02:00
PlayPauseButton.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
QualitySelector.test.tsx test: fix and improve unit tests across multiple features 2026-03-25 23:34:42 +01:00
QualitySelector.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
RepeatShuffleButtons.stories.tsx fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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 fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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 fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02: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 fix: stabilize builds, tests, and lint across all stacks 2026-04-05 16:48:07 +02:00
WaveformDisplay.tsx fix: stabilize frontend — 98 TS errors to 0, align API endpoints, optimize bundle 2026-03-24 21:18:49 +01:00