From 7c9f1820f85edd793f682e95330fa178f800dbda Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:53:14 -0600 Subject: [PATCH] feat(immersive): create unified ImmersivePlayer component New component architecture: - ImmersivePlayer.svelte: Main container with tab system - ImmersiveHeader.svelte: Tabs (lyrics/credits/suggestions/visualizer) - ImmersiveControls.svelte: Bottom bar with all playback controls - ImmersiveArtwork.svelte: Album art with floating/vinyl variants - ImmersiveBackground.svelte: Optimized blur background (from Phase 1) Panel components: - LyricsPanel: Wrapper for existing LyricsLines - CreditsPanel: Placeholder (Phase 3) - SuggestionsPanel: Placeholder (Phase 4) - VisualizerPanel: Placeholder (Phase 5) Shared components: - ProgressBar: Reusable seek bar with keyboard support - VolumeSlider: Reusable volume control Features: - Tab-based navigation (L/C/S/V keyboard shortcuts) - Auto-hide UI after 4 seconds of inactivity - Full keyboard control (Space, Arrows, Escape) - Responsive layout (desktop/tablet/mobile) - Accessibility: ARIA roles, focus management --- .../immersive/ImmersiveArtwork.svelte | 115 +++++ .../immersive/ImmersiveControls.svelte | 408 ++++++++++++++++++ .../immersive/ImmersiveHeader.svelte | 185 ++++++++ .../immersive/ImmersivePlayer.svelte | 359 +++++++++++++++ src/lib/components/immersive/index.ts | 19 + .../immersive/panels/CreditsPanel.svelte | 58 +++ .../immersive/panels/LyricsPanel.svelte | 131 ++++++ .../immersive/panels/SuggestionsPanel.svelte | 58 +++ .../immersive/panels/VisualizerPanel.svelte | 58 +++ .../immersive/shared/ProgressBar.svelte | 179 ++++++++ .../immersive/shared/VolumeSlider.svelte | 160 +++++++ 11 files changed, 1730 insertions(+) create mode 100644 src/lib/components/immersive/ImmersiveArtwork.svelte create mode 100644 src/lib/components/immersive/ImmersiveControls.svelte create mode 100644 src/lib/components/immersive/ImmersiveHeader.svelte create mode 100644 src/lib/components/immersive/ImmersivePlayer.svelte create mode 100644 src/lib/components/immersive/index.ts create mode 100644 src/lib/components/immersive/panels/CreditsPanel.svelte create mode 100644 src/lib/components/immersive/panels/LyricsPanel.svelte create mode 100644 src/lib/components/immersive/panels/SuggestionsPanel.svelte create mode 100644 src/lib/components/immersive/panels/VisualizerPanel.svelte create mode 100644 src/lib/components/immersive/shared/ProgressBar.svelte create mode 100644 src/lib/components/immersive/shared/VolumeSlider.svelte diff --git a/src/lib/components/immersive/ImmersiveArtwork.svelte b/src/lib/components/immersive/ImmersiveArtwork.svelte new file mode 100644 index 000000000..faaa080fa --- /dev/null +++ b/src/lib/components/immersive/ImmersiveArtwork.svelte @@ -0,0 +1,115 @@ + + +