Commit Graph
323 Commits
Author SHA1 Message Date
4grayandClaude Opus 4.7 59beb324b4 refactor(styles): extract .app-scrollbar utility, apply to channel lists
Move the always-visible themed scrollbar from epg-list into a global
.app-scrollbar utility class in styles.scss. Apply it to the All
channels and Groups view virtual-scroll viewports so the channel list
gets the same persistent gutter and themed thumb as the EPG list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: c470abf78379
2026-04-29 01:00:42 +02:00
4grayandClaude Opus 4.7 465fdbfb80 fix(epg): always-visible scrollbar in program list
Switch to overflow-y: scroll with scrollbar-gutter: stable so the gutter
is reserved (no layout shift between scrollable and non-scrollable
days). Locally style the thumb with --app-muted-color so it's clearly
visible across themes and platforms, overriding the global 6px
near-transparent style which was being hidden by the macOS overlay
auto-fade.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 918ee7ade2f3
2026-04-29 00:55:48 +02:00
4grayandClaude Opus 4.7 7841b3b4e8 refactor(epg): hairline dividers, en-dash time, single-line description
Separation: replace 4px gap with hairline dividers via ::before, hidden
around the active and current-program rows so they read as a continuous
emphasized block. Title line-height 1.4 → 1.3 + letter-spacing -0.01em
to match channel-name. Time uses en-dash, 0.78rem (parity with summary
bar), token-driven --app-muted-color. Description clamped to one line —
full text remains one click away via the info icon.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: b0389ce441a1
2026-04-29 00:52:29 +02:00
4grayandClaude Opus 4.7 db0e2b658f refactor(epg): align program-item styling with channel-list aesthetic
Drop the gradient + bevel + drop-shadow chrome from EPG rows so the panel
speaks the same flat-by-default visual language as the channel list. Add
--app-live-color token, tokenise the LIVE badge, tighten typography
(weight 600, text-wrap balance/pretty), and bump the info icon to 32px
for Fitts-compliant hit area.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 4cc5371f549e
2026-04-29 00:43:45 +02:00
4gray 31258624b5 feat: unify live epg toolbar
Entire-Checkpoint: 978eaff2e478
2026-04-29 00:20:34 +02:00
4grayandClaude Opus 4.7 d163a1fbf2 feat(dashboard): contained logo + blurred backdrop for live channels
Render live TV channel logos with object-fit: contain on a soft blurred
wash sampled from the logo itself, instead of stretching small (100-256px)
logos to fill 2:3 portrait cards with object-fit: cover. Mirrors the
treatment used by Apple Podcasts and Plex Live TV. VOD/series posters
still get the full-bleed cover treatment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 6bb6f5796090
2026-04-28 20:14:04 +02:00
4gray 51347fc226 feat: add collapsible live epg panel
Entire-Checkpoint: 0518c49b948d
2026-04-28 19:56:41 +02:00
4gray 10139955e7 fix(stalker): lazy load live tv channels
Entire-Checkpoint: c6e522b4276c
2026-04-27 00:25:56 +02:00
4gray 313ff7a24f fix(command-palette): enhance command palette management with dialog reference
Entire-Checkpoint: c6e522b4276c
2026-04-26 01:06:36 +02:00
4gray f0df67b5b4 test: add missing config
Entire-Checkpoint: c6e522b4276c
2026-04-26 00:31:23 +02:00
4gray d0f7dcae78 refactor(stalker-live-stream-layout): fix streamUrl usage and enhance web player view component
Entire-Checkpoint: c6e522b4276c
2026-04-26 00:01:40 +02:00
4gray 4bc733d9c2 refactor(external-playback): update styles
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:48:21 +02:00
4gray ce7ae1a251 refactor(external-playback): add translation support for close player button and update UI styles
Entire-Checkpoint: c6e522b4276c
2026-04-25 23:43:22 +02:00
4gray 4616df5d16 refactor(playlist-import): update file upload handling and emit imported event
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:32:08 +02:00
4gray b1d519183f style(empty-state): enhance empty state component with new types and responsive design
- Expanded EmptyStateType to include 'welcome-dashboard', 'welcome-sources', 'no-data'.
- Introduced FeatureCard and SourceCard interfaces for better structure.
- Added FEATURE_CARDS and SOURCE_CARDS constants for feature and source card configurations.
- Updated empty-state.component.ts to handle new types and actions.
- Created responsive styles in empty-state.responsive.scss for better mobile support.
- Added theme styles in empty-state.themes.scss for light mode.
- Developed specific styles for welcome dashboard and sources in empty-state.welcome-dashboard.scss and empty-state.welcome-sources.scss.
- Updated recent-playlists.component.html to utilize new empty state types.
- Modified recent-playlists.component.ts to support new playlist actions.
- Introduced PlaylistFileImportService for handling playlist file imports.
- Updated downloads.component.html and downloads.component.ts to integrate new empty state handling.
- Enhanced unified-collection-page.component.html and unified-collection-page.component.ts to utilize empty state for no results.

Entire-Checkpoint: c6e522b4276c
2026-04-25 22:18:13 +02:00
4gray 74c8adc12e fix(stalker): series favorites handling
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:16:33 +02:00
4gray 6eb602d332 feat(playlist-switcher): add refresh button for active playlist with spinning icon
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:14:20 +02:00
4gray 92f21bd237 feat(workspace): enhance dashboard and sources components with playlist management and UI improvements
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:11:31 +02:00
4gray caed2ce396 feat(playlist-drop-overlay): add component and directive for file drop overlay functionality
Entire-Checkpoint: c6e522b4276c
2026-04-25 22:08:03 +02:00
4gray a76f09a8ce style(dashboard): enhance hero artwork handling with fallback logic and image failure management
Entire-Checkpoint: c6e522b4276c
2026-04-25 15:11:25 +02:00
4gray a2e2959b89 fix(xtream): pagination behavior (back & scroll)
Entire-Checkpoint: c6e522b4276c
2026-04-25 14:11:36 +02:00
4gray cd111b6c36 fix(stalker): enhance pagination handling and add search phrase management
Entire-Checkpoint: c6e522b4276c
2026-04-25 14:09:59 +02:00
4gray efa0385fc8 feat(dashboard): implement context menu with actions for recent sources 2026-04-24 14:27:04 +02:00
4gray 4b4d0abfab test: refactor electron window handling in PlaylistsService tests 2026-04-22 22:33:06 +02:00
4gray 7caa18308d feat: enhance unified collection with workspace commands and backdrop handling
- Added WorkspaceViewCommandService to UnifiedCollectionPageComponent for workspace layout commands.
- Implemented clear current view command for favorites and recent items.
- Updated unified favorites data service to use buildXtreamCollectionUid for UID generation.
- Enhanced unified recent data service to normalize timestamps and handle backdrop URLs.
- Introduced withRecentItems feature to manage recent item additions with backdrop support.
- Updated VodDetailsRouteComponent and SerialDetailsComponent to backfill content backdrops.
- Modified IXtreamDataSource interface to include backdrop URL handling for favorites and recent items.
- Added tests for recent items feature to ensure correct functionality and backdrop handling.
2026-04-22 22:23:50 +02:00
4gray 6904b81c47 feat: implement grid rating formatting and resolution functions 2026-04-22 22:23:30 +02:00
4gray 199ff91fcc feat: enhance recently added component with skeleton loading states and layout improvements 2026-04-22 22:23:12 +02:00
4gray 8d6a387a9f feat: add workspace view command service and related types 2026-04-22 22:22:22 +02:00
4gray a5b26065c9 feat: implement SQLite UTC timestamp normalization in stalker-item normalizer 2026-04-22 22:21:29 +02:00
4gray ad528238b2 feat: add backdrop_url to content schema and related database operations 2026-04-22 22:20:48 +02:00
4gray 0e77f7b98a refactor: rework dashboard view
- Removed global favorites related properties and methods from WorkspaceShellHeaderComponent.
- Updated WorkspaceShellFacade to streamline command palette commands and navigation.
- Refactored command palette to include type-aware xtream import progress labels.
- Enhanced WorkspaceShellComponent to display import progress with improved styling.
- Updated tests to reflect changes in command palette and import progress handling.
2026-04-22 22:19:42 +02:00
4gray c8c93798f9 feat: enhance playlist backup export functionality and UI feedback
Entire-Checkpoint: c6e522b4276c
2026-04-21 08:54:03 +02:00
4gray 7b46509d21 feat: implement EPG source status component and enhance EPG data management in settings
Entire-Checkpoint: c6e522b4276c
2026-04-20 01:09:33 +02:00
4gray 1d340c08b8 feat: implement file title normalization and path handling in playlist upload
Entire-Checkpoint: c6e522b4276c
2026-04-20 00:24:59 +02:00
4gray 1870ce2aea feat: enhance EPG service with channel metadata fetching and update M3U module documentation
Entire-Checkpoint: c6e522b4276c
2026-04-20 00:24:25 +02:00
4gray e19257da22 feat: add export for epg-channel-metadata.model in index file
Entire-Checkpoint: c6e522b4276c
2026-04-20 00:23:52 +02:00
4gray c13dcc59dd feat: add channel metadata resolution and logo handling for enriched channel views
Entire-Checkpoint: c6e522b4276c
2026-04-20 00:23:32 +02:00
4gray ecb070d08e test: add unit tests for ContentHeroComponent and handle ResizeObserver unavailability
Entire-Checkpoint: c6e522b4276c
2026-04-19 23:39:16 +02:00
4gray 3f79b01a9d feat: implement bulk clear favorites functionality with confirmation dialog
Entire-Checkpoint: c6e522b4276c
2026-04-19 23:38:32 +02:00
4gray ff605fc024 fix(xtream): enhance content retrieval by adding content type filtering for Xtream ID lookups #756
Entire-Checkpoint: c6e522b4276c
2026-04-19 22:33:49 +02:00
4gray 4c6e65be9b feat: implement favorites channel sorting functionality and UI updates
Entire-Checkpoint: c6e522b4276c
2026-04-19 22:31:45 +02:00
4gray 21a9cdb0c6 feat: add confirmation dialog for clearing recently viewed items
Entire-Checkpoint: c6e522b4276c
2026-04-18 10:34:34 +02:00
4gray 5e41e3d1ce refactor(favs-recent): adapt UI and routing behavior
- Introduced StalkerCollectionDetailComponent to handle detailed views for Stalker collections.
- Added XtreamCollectionDetailComponent for managing Xtream collection details.
- Updated routing components to integrate new detail components for both Stalker and Xtream.
- Enhanced global favorites and recently viewed functionalities to support new detail navigation for Stalker and Xtream items.
- Improved styling and structure for better responsiveness and user experience in detail views.

Entire-Checkpoint: c6e522b4276c
2026-04-18 10:16:09 +02:00
4gray 562bfd009c feat(unified-collection): add unified collection detail directive
Entire-Checkpoint: c6e522b4276c
2026-04-18 10:13:41 +02:00
4gray e0f6b34aa0 style: update form field styles and dialog components
- Set default appearance for mat-form-field to 'outline' and dynamic subscript sizing in app.config.ts.
- Adjust dialog dimensions in workspace-shell-actions.service.ts for better responsiveness.
- Refactor settings.component.scss to remove specific mat-form-field font size overrides.
- Enhance global styles in m3-theme.scss for outlined inputs, ensuring consistency across the application.
- Modify workspace-command-palette styles to improve visual integration with the overall theme.
- Revamp add-playlist-dialog component to utilize segmented controls for category selection, improving UX.
- Update file-upload component to provide better feedback on file selection and drag-and-drop interactions.
- Clean up text and URL upload components by removing unnecessary placeholders and improving layout.
- Refine stalker-portal-import component by removing placeholder text for clarity.

Entire-Checkpoint: c6e522b4276c
2026-04-17 23:20:17 +02:00
4gray b6c71258e4 fix(player): playback position persistence for vlc
Entire-Checkpoint: c6e522b4276c
2026-04-17 23:19:33 +02:00
4gray 8be51fc246 feat(content-hero): add expandable description with toggle functionality and overflow detection
Entire-Checkpoint: c6e522b4276c
2026-04-17 23:18:29 +02:00
4gray af8bb19d6c fix(epg): add retry functionality for failed EPG fetches and enhance UI for error handling
Entire-Checkpoint: c6e522b4276c
2026-04-17 21:30:50 +02:00
4gray 15bfd5808c style(downloads): refactor item layout and improve action button styles
Entire-Checkpoint: c6e522b4276c
2026-04-17 00:32:03 +02:00
4gray 6e6bd04eca style(season-container): enhance empty state handling and add corresponding styles
Entire-Checkpoint: c6e522b4276c
2026-04-17 00:11:14 +02:00