@hanifhan1f/vidstack-react 1.12.19 → 1.12.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dev/chunks/vidstack-BPymmnxm.js +551 -0
  2. package/dev/chunks/vidstack-BSpAxhO6.js +643 -0
  3. package/dev/chunks/vidstack-BoLZuw80.js +34 -0
  4. package/dev/chunks/vidstack-CFOPpDTy.js +476 -0
  5. package/dev/chunks/vidstack-CXrXBlpD.js +11692 -0
  6. package/dev/chunks/vidstack-DOtIyh4c.js +288 -0
  7. package/dev/chunks/vidstack-DY2iivhG.js +84 -0
  8. package/dev/chunks/vidstack-Dov8gjdq.js +401 -0
  9. package/dev/chunks/vidstack-DwdhbP5c.js +189 -0
  10. package/dev/chunks/vidstack-DweQYzVw.js +180 -0
  11. package/dev/chunks/vidstack-H9OdEKUQ.js +375 -0
  12. package/dev/chunks/vidstack-KntYDWMe.js +668 -0
  13. package/dev/chunks/vidstack-NCBSBZE-.js +61 -0
  14. package/dev/chunks/vidstack-UWMPvwsa.js +1537 -0
  15. package/dev/player/vidstack-default-components.js +5 -5
  16. package/dev/player/vidstack-default-layout.js +5 -5
  17. package/dev/player/vidstack-plyr-layout.js +4 -4
  18. package/dev/player/vidstack-remotion.js +3 -3
  19. package/dev/vidstack.js +7 -7
  20. package/package.json +1 -1
  21. package/player/styles/default/layouts/video.css +94 -77
  22. package/prod/chunks/vidstack-B9nEslvl.js +11197 -0
  23. package/prod/chunks/vidstack-BOObgZd8.js +504 -0
  24. package/prod/chunks/vidstack-B_wD853-.js +386 -0
  25. package/prod/chunks/vidstack-C4tNkfXj.js +470 -0
  26. package/prod/chunks/vidstack-CNJwYQRW.js +84 -0
  27. package/prod/chunks/vidstack-CVzVtf1j.js +61 -0
  28. package/prod/chunks/vidstack-CiQEyk_l.js +189 -0
  29. package/prod/chunks/vidstack-CiTWSpv_.js +34 -0
  30. package/prod/chunks/vidstack-CzjHdPIT.js +375 -0
  31. package/prod/chunks/vidstack-Djmla_FM.js +545 -0
  32. package/prod/chunks/vidstack-DpQw1Y33.js +663 -0
  33. package/prod/chunks/vidstack-VTpvHAdU.js +1537 -0
  34. package/prod/chunks/vidstack-dbLRgf2L.js +159 -0
  35. package/prod/chunks/vidstack-rHvQ8f6c.js +288 -0
  36. package/prod/player/vidstack-default-components.js +5 -5
  37. package/prod/player/vidstack-default-layout.js +5 -5
  38. package/prod/player/vidstack-plyr-layout.js +4 -4
  39. package/prod/player/vidstack-remotion.js +3 -3
  40. package/prod/vidstack.js +7 -7
  41. package/server/chunks/vidstack-BV_VpWlJ.js +1537 -0
  42. package/server/chunks/vidstack-ByG5MvLs.js +545 -0
  43. package/server/chunks/vidstack-C0xOpWYR.js +470 -0
  44. package/server/chunks/vidstack-C481iXqe.js +386 -0
  45. package/server/chunks/vidstack-CbNRZgUA.js +11197 -0
  46. package/server/chunks/vidstack-D7D9kiW6.js +34 -0
  47. package/server/chunks/vidstack-DJJmNib6.js +504 -0
  48. package/server/chunks/vidstack-DWt5LAKE.js +375 -0
  49. package/server/chunks/vidstack-DsZKgA8y.js +663 -0
  50. package/server/chunks/vidstack-NXcLNXxO.js +84 -0
  51. package/server/chunks/vidstack-OKdxH1xx.js +189 -0
  52. package/server/chunks/vidstack-iVN8uBAv.js +288 -0
  53. package/server/chunks/vidstack-m8aA99tE.js +159 -0
  54. package/server/chunks/vidstack-rUHVQoo3.js +61 -0
  55. package/server/player/vidstack-default-components.js +5 -5
  56. package/server/player/vidstack-default-layout.js +5 -5
  57. package/server/player/vidstack-plyr-layout.js +4 -4
  58. package/server/player/vidstack-remotion.js +3 -3
  59. package/server/vidstack.js +7 -7
@@ -1,14 +1,14 @@
1
1
  "use client"
2
2
 
3
- export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions } from '../chunks/vidstack-CkRXb9Ia.js';
3
+ export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions } from '../chunks/vidstack-UWMPvwsa.js';
4
4
  export { defaultLayoutIcons } from './vidstack-default-icons.js';
5
5
  import 'react';
6
6
  import '../chunks/vidstack-D_bWd66h.js';
7
- import '../chunks/vidstack-f6WXkmfP.js';
8
- import '../chunks/vidstack-BDiAEW1N.js';
7
+ import '../chunks/vidstack-H9OdEKUQ.js';
8
+ import '../chunks/vidstack-CXrXBlpD.js';
9
9
  import '@floating-ui/dom';
10
- import '../chunks/vidstack-B-FM4-oZ.js';
10
+ import '../chunks/vidstack-KntYDWMe.js';
11
11
  import 'react-dom';
12
- import '../chunks/vidstack-CvWDiSTs.js';
12
+ import '../chunks/vidstack-DY2iivhG.js';
13
13
  import '../chunks/vidstack-D-hQD1eE.js';
14
14
  import '../chunks/vidstack-CBF7iUqu.js';
@@ -1,14 +1,14 @@
1
1
  "use client"
2
2
 
3
- export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultLayoutContext, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions, i18n, useDefaultLayoutContext, useDefaultLayoutWord } from '../chunks/vidstack-CkRXb9Ia.js';
3
+ export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultLayoutContext, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions, i18n, useDefaultLayoutContext, useDefaultLayoutWord } from '../chunks/vidstack-UWMPvwsa.js';
4
4
  export { defaultLayoutIcons } from './vidstack-default-icons.js';
5
5
  import 'react';
6
6
  import '../chunks/vidstack-D_bWd66h.js';
7
- import '../chunks/vidstack-f6WXkmfP.js';
8
- import '../chunks/vidstack-BDiAEW1N.js';
7
+ import '../chunks/vidstack-H9OdEKUQ.js';
8
+ import '../chunks/vidstack-CXrXBlpD.js';
9
9
  import '@floating-ui/dom';
10
- import '../chunks/vidstack-B-FM4-oZ.js';
10
+ import '../chunks/vidstack-KntYDWMe.js';
11
11
  import 'react-dom';
12
- import '../chunks/vidstack-CvWDiSTs.js';
12
+ import '../chunks/vidstack-DY2iivhG.js';
13
13
  import '../chunks/vidstack-D-hQD1eE.js';
14
14
  import '../chunks/vidstack-CBF7iUqu.js';
@@ -1,11 +1,11 @@
1
1
  "use client"
2
2
 
3
- import { useMediaState, Primitive, IS_SERVER, isRemotionSrc, getDownloadFile } from '../chunks/vidstack-BDiAEW1N.js';
3
+ import { useMediaState, Primitive, IS_SERVER, isRemotionSrc, getDownloadFile } from '../chunks/vidstack-CXrXBlpD.js';
4
4
  import * as React from 'react';
5
5
  import { effect, createDisposalBin, uppercaseFirstChar, isUndefined, signal, composeRefs, useSignal, isNumber, listenEvent, isString, isKeyboardEvent, isKeyboardClick } from '../chunks/vidstack-D_bWd66h.js';
6
- import { useMediaContext, PlayButton, Root, Img, Gesture, AirPlayButton, CaptionButton, FullscreenButton, PIPButton, SeekButton, Root$1, Value, Preview, Thumbnail, LiveButton, Time, appendParamsToURL, Root$2, Button, Items, useAudioOptions, Root$3, Item, useCaptionOptions, MuteButton, Root$4 } from '../chunks/vidstack-B-FM4-oZ.js';
7
- import { useMediaRemote, useVideoQualityOptions, usePlaybackRateOptions } from '../chunks/vidstack-CzU-uC5f.js';
8
- import { useLayoutName, useClassName } from '../chunks/vidstack-CvWDiSTs.js';
6
+ import { useMediaContext, PlayButton, Root, Img, Gesture, AirPlayButton, CaptionButton, FullscreenButton, PIPButton, SeekButton, Root$1, Value, Preview, Thumbnail, LiveButton, Time, appendParamsToURL, Root$2, Button, Items, useAudioOptions, Root$3, Item, useCaptionOptions, MuteButton, Root$4 } from '../chunks/vidstack-KntYDWMe.js';
7
+ import { useMediaRemote, useVideoQualityOptions, usePlaybackRateOptions } from '../chunks/vidstack-DwdhbP5c.js';
8
+ import { useLayoutName, useClassName } from '../chunks/vidstack-DY2iivhG.js';
9
9
  import { RemotionThumbnail, RemotionPoster, RemotionSliderThumbnail } from '../chunks/vidstack-D-hQD1eE.js';
10
10
  export { plyrLayoutIcons } from './vidstack-plyr-icons.js';
11
11
  import '@floating-ui/dom';
@@ -3,8 +3,8 @@
3
3
  import * as React from 'react';
4
4
  import { createDisposalBin, animationFrameThrottle, noop } from '../chunks/vidstack-D_bWd66h.js';
5
5
  import { Internals, random } from 'remotion';
6
- import { IS_SERVER, useMediaState, isRemotionSrc, Primitive, useSliderState } from '../chunks/vidstack-BDiAEW1N.js';
7
- export { isRemotionProvider } from '../chunks/vidstack-BDiAEW1N.js';
6
+ import { IS_SERVER, useMediaState, isRemotionSrc, Primitive, useSliderState } from '../chunks/vidstack-CXrXBlpD.js';
7
+ export { isRemotionProvider } from '../chunks/vidstack-CXrXBlpD.js';
8
8
  import { RemotionThumbnail as RemotionThumbnail$1, RemotionSliderThumbnail as RemotionSliderThumbnail$1, RemotionPoster as RemotionPoster$1 } from '../chunks/vidstack-D-hQD1eE.js';
9
9
  import '@floating-ui/dom';
10
10
 
@@ -338,7 +338,7 @@ class RemotionProviderLoader {
338
338
  return "video";
339
339
  }
340
340
  async load(ctx) {
341
- return new (await import('../chunks/vidstack-D6_9yy0x.js')).RemotionProvider(this.target, ctx);
341
+ return new (await import('../chunks/vidstack-BSpAxhO6.js')).RemotionProvider(this.target, ctx);
342
342
  }
343
343
  }
344
344
 
package/dev/vidstack.js CHANGED
@@ -1,16 +1,16 @@
1
1
  "use client"
2
2
 
3
- import { TextTrackSymbol, RadioGroupController, useMediaContext, menuContext, Primitive, MediaPlayerInstance, MediaProviderInstance, isRemotionProvider, mediaState, TextTrack, ToggleButtonInstance, PosterInstance, useMediaState, ThumbnailsLoader, updateSliderPreviewPlacement } from './chunks/vidstack-BDiAEW1N.js';
4
- export { ARIAKeyShortcuts, AUDIO_EXTENSIONS, AUDIO_TYPES, AirPlayButtonInstance, AudioGainSliderInstance, AudioProviderLoader, AudioTrackList, CaptionButtonInstance, CaptionsInstance, ControlsGroupInstance, ControlsInstance, DASHProviderLoader, DASH_VIDEO_EXTENSIONS, DASH_VIDEO_TYPES, FullscreenButtonInstance, FullscreenController, GestureInstance, GoogleCastButtonInstance, HLSProviderLoader, HLS_VIDEO_EXTENSIONS, HLS_VIDEO_TYPES, List, LiveButtonInstance, LocalMediaStorage, Logger, MEDIA_KEY_SHORTCUTS, MediaAnnouncerInstance, MediaControls, MediaRemoteControl, MenuButtonInstance, MenuInstance, MenuItemInstance, MenuItemsInstance, MenuPortalInstance, MuteButtonInstance, PIPButtonInstance, PlayButtonInstance, QualitySliderInstance, RadioGroupInstance, RadioInstance, ScreenOrientationController, SeekButtonInstance, SliderChaptersInstance, SliderInstance, SliderPreviewInstance, SliderThumbnailInstance, SliderValueInstance, SliderVideoInstance, SpeedSliderInstance, TextRenderers, TextTrackList, ThumbnailInstance, TimeInstance, TimeRange, TimeSliderInstance, TooltipContentInstance, TooltipInstance, TooltipTriggerInstance, VIDEO_EXTENSIONS, VIDEO_TYPES, VideoProviderLoader, VideoQualityList, VimeoProviderLoader, VolumeSliderInstance, YouTubeProviderLoader, boundTime, canChangeVolume, canFullscreen, canGoogleCastSrc, canOrientScreen, canPlayHLSNatively, canRotateScreen, canUsePictureInPicture, canUseVideoPresentation, findActiveCue, formatSpokenTime, formatTime, getDownloadFile, getTimeRangesEnd, getTimeRangesStart, isAudioProvider, isAudioSrc, isCueActive, isDASHProvider, isDASHSrc, isGoogleCastProvider, isHLSProvider, isHLSSrc, isHTMLAudioElement, isHTMLIFrameElement, isHTMLMediaElement, isHTMLVideoElement, isMediaStream, isTrackCaptionKind, isVideoProvider, isVideoQualitySrc, isVideoSrc, isVimeoProvider, isYouTubeProvider, mediaContext, normalizeTimeIntervals, parseJSONCaptionsFile, sliderState, softResetMediaState, sortVideoQualities, updateTimeIntervals, useMediaStore, useSliderState, useSliderStore, watchActiveTextTrack, watchCueTextChange } from './chunks/vidstack-BDiAEW1N.js';
3
+ import { TextTrackSymbol, RadioGroupController, useMediaContext, menuContext, Primitive, MediaPlayerInstance, MediaProviderInstance, isRemotionProvider, mediaState, TextTrack, ToggleButtonInstance, PosterInstance, useMediaState, ThumbnailsLoader, updateSliderPreviewPlacement } from './chunks/vidstack-CXrXBlpD.js';
4
+ export { ARIAKeyShortcuts, AUDIO_EXTENSIONS, AUDIO_TYPES, AirPlayButtonInstance, AudioGainSliderInstance, AudioProviderLoader, AudioTrackList, CaptionButtonInstance, CaptionsInstance, ControlsGroupInstance, ControlsInstance, DASHProviderLoader, DASH_VIDEO_EXTENSIONS, DASH_VIDEO_TYPES, FullscreenButtonInstance, FullscreenController, GestureInstance, GoogleCastButtonInstance, HLSProviderLoader, HLS_VIDEO_EXTENSIONS, HLS_VIDEO_TYPES, List, LiveButtonInstance, LocalMediaStorage, Logger, MEDIA_KEY_SHORTCUTS, MediaAnnouncerInstance, MediaControls, MediaRemoteControl, MenuButtonInstance, MenuInstance, MenuItemInstance, MenuItemsInstance, MenuPortalInstance, MuteButtonInstance, PIPButtonInstance, PlayButtonInstance, QualitySliderInstance, RadioGroupInstance, RadioInstance, ScreenOrientationController, SeekButtonInstance, SliderChaptersInstance, SliderInstance, SliderPreviewInstance, SliderThumbnailInstance, SliderValueInstance, SliderVideoInstance, SpeedSliderInstance, TextRenderers, TextTrackList, ThumbnailInstance, TimeInstance, TimeRange, TimeSliderInstance, TooltipContentInstance, TooltipInstance, TooltipTriggerInstance, VIDEO_EXTENSIONS, VIDEO_TYPES, VideoProviderLoader, VideoQualityList, VimeoProviderLoader, VolumeSliderInstance, YouTubeProviderLoader, boundTime, canChangeVolume, canFullscreen, canGoogleCastSrc, canOrientScreen, canPlayHLSNatively, canRotateScreen, canUsePictureInPicture, canUseVideoPresentation, findActiveCue, formatSpokenTime, formatTime, getDownloadFile, getTimeRangesEnd, getTimeRangesStart, isAudioProvider, isAudioSrc, isCueActive, isDASHProvider, isDASHSrc, isGoogleCastProvider, isHLSProvider, isHLSSrc, isHTMLAudioElement, isHTMLIFrameElement, isHTMLMediaElement, isHTMLVideoElement, isMediaStream, isTrackCaptionKind, isVideoProvider, isVideoQualitySrc, isVideoSrc, isVimeoProvider, isYouTubeProvider, mediaContext, normalizeTimeIntervals, parseJSONCaptionsFile, sliderState, softResetMediaState, sortVideoQualities, updateTimeIntervals, useMediaStore, useSliderState, useSliderStore, watchActiveTextTrack, watchCueTextChange } from './chunks/vidstack-CXrXBlpD.js';
5
5
  import * as React from 'react';
6
6
  import { isString, EventsController, DOMEvent, prop, method, Component, hasProvidedContext, useContext, effect, createReactComponent, useStateContext, useSignal, composeRefs, useSignalRecord, useReactScope, signal } from './chunks/vidstack-D_bWd66h.js';
7
7
  export { appendTriggerEvent, findTriggerEvent, hasTriggerEvent, isKeyboardClick, isKeyboardEvent, isPointerEvent, walkTriggerEventChain } from './chunks/vidstack-D_bWd66h.js';
8
- import { createSignal, useScoped } from './chunks/vidstack-f6WXkmfP.js';
9
- export { audioGainSlider as AudioGainSlider, Captions, ChapterTitle, controls as Controls, GoogleCastButton, MediaAnnouncer, qualitySlider as QualitySlider, speedSlider as SpeedSlider, spinner as Spinner, Title, tooltip as Tooltip, useActiveTextCues, useActiveTextTrack, useChapterOptions, useChapterTitle, useTextCues } from './chunks/vidstack-f6WXkmfP.js';
10
- import { useMediaContext as useMediaContext$1 } from './chunks/vidstack-B-FM4-oZ.js';
11
- export { AirPlayButton, CaptionButton, FullscreenButton, Gesture, LiveButton, menu as Menu, MuteButton, PIPButton, PlayButton, radioGroup as RadioGroup, SeekButton, slider as Slider, thumbnail as Thumbnail, Time, timeSlider as TimeSlider, volumeSlider as VolumeSlider, useAudioOptions, useCaptionOptions, useMediaPlayer } from './chunks/vidstack-B-FM4-oZ.js';
8
+ import { createSignal, useScoped } from './chunks/vidstack-H9OdEKUQ.js';
9
+ export { audioGainSlider as AudioGainSlider, Captions, ChapterTitle, controls as Controls, GoogleCastButton, MediaAnnouncer, qualitySlider as QualitySlider, speedSlider as SpeedSlider, spinner as Spinner, Title, tooltip as Tooltip, useActiveTextCues, useActiveTextTrack, useChapterOptions, useChapterTitle, useTextCues } from './chunks/vidstack-H9OdEKUQ.js';
10
+ import { useMediaContext as useMediaContext$1 } from './chunks/vidstack-KntYDWMe.js';
11
+ export { AirPlayButton, CaptionButton, FullscreenButton, Gesture, LiveButton, menu as Menu, MuteButton, PIPButton, PlayButton, radioGroup as RadioGroup, SeekButton, slider as Slider, thumbnail as Thumbnail, Time, timeSlider as TimeSlider, volumeSlider as VolumeSlider, useAudioOptions, useCaptionOptions, useMediaPlayer } from './chunks/vidstack-KntYDWMe.js';
12
12
  import { Icon } from './chunks/vidstack-CBF7iUqu.js';
13
- export { DEFAULT_PLAYBACK_RATES, useMediaRemote, usePlaybackRateOptions, useVideoQualityOptions } from './chunks/vidstack-CzU-uC5f.js';
13
+ export { DEFAULT_PLAYBACK_RATES, useMediaRemote, usePlaybackRateOptions, useVideoQualityOptions } from './chunks/vidstack-DwdhbP5c.js';
14
14
  import '@floating-ui/dom';
15
15
  import 'react-dom';
16
16
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hanifhan1f/vidstack-react",
3
3
  "description": "UI component library for building high-quality, accessible video and audio experiences on the web.",
4
- "version": "1.12.19",
4
+ "version": "1.12.22",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "types": "index.d.ts",
@@ -775,18 +775,20 @@
775
775
  .vds-video-layout .vds-episodes-panel {
776
776
  position: absolute;
777
777
  top: 50%;
778
- right: 20px;
779
- width: min(36vw, 430px);
780
- max-height: min(74vh, 620px);
781
- overflow: auto;
778
+ right: max(16px, 1.5vw);
779
+ width: min(34vw, 400px);
780
+ max-height: min(78vh, 640px);
781
+ display: flex;
782
+ flex-direction: column;
783
+ overflow: hidden;
782
784
  padding: 0;
783
- background: linear-gradient(180deg, rgb(10 10 10 / 94%) 0%, rgb(4 4 4 / 92%) 100%);
784
- border: 1px solid rgb(255 255 255 / 20%);
785
- border-radius: 18px;
786
- backdrop-filter: blur(14px);
785
+ background: linear-gradient(180deg, rgb(12 12 12 / 96%) 0%, rgb(6 6 6 / 94%) 100%);
786
+ border: 1px solid rgb(255 255 255 / 14%);
787
+ border-radius: 14px;
788
+ backdrop-filter: blur(16px) saturate(1.2);
787
789
  box-shadow:
788
- 0 26px 56px rgb(0 0 0 / 58%),
789
- inset 0 1px 0 rgb(255 255 255 / 8%);
790
+ 0 24px 48px rgb(0 0 0 / 55%),
791
+ inset 0 1px 0 rgb(255 255 255 / 6%);
790
792
  z-index: 20;
791
793
  opacity: 0;
792
794
  transform: translate3d(16px, -50%, 0);
@@ -808,16 +810,18 @@
808
810
  }
809
811
 
810
812
  .vds-video-layout .vds-episodes-panel-header {
813
+ flex-shrink: 0;
811
814
  display: flex;
812
815
  align-items: center;
813
816
  justify-content: space-between;
814
- padding: 14px 16px 12px;
815
- border-bottom: 1px solid rgb(255 255 255 / 12%);
817
+ gap: 12px;
818
+ padding: 14px 16px 13px;
819
+ border-bottom: 1px solid rgb(255 255 255 / 10%);
816
820
  position: sticky;
817
821
  top: 0;
818
822
  z-index: 1;
819
- background: linear-gradient(180deg, rgb(10 10 10 / 95%), rgb(10 10 10 / 74%));
820
- backdrop-filter: blur(8px);
823
+ background: linear-gradient(180deg, rgb(12 12 12 / 98%), rgb(10 10 10 / 88%));
824
+ backdrop-filter: blur(10px);
821
825
  }
822
826
 
823
827
  .vds-video-layout .vds-episodes-close-btn {
@@ -839,19 +843,26 @@
839
843
  }
840
844
 
841
845
  .vds-video-layout .vds-episodes-panel-title {
842
- font-size: 15px;
846
+ font-size: 14px;
843
847
  font-weight: 600;
844
- letter-spacing: 0.01em;
848
+ letter-spacing: 0.02em;
849
+ line-height: 1.3;
845
850
  white-space: nowrap;
846
851
  overflow: hidden;
847
852
  text-overflow: ellipsis;
853
+ min-width: 0;
848
854
  }
849
855
 
850
856
  .vds-video-layout .vds-episodes-list {
857
+ flex: 1;
858
+ min-height: 0;
851
859
  margin: 0;
852
- padding: 10px;
853
- display: grid;
854
- gap: 0;
860
+ padding: 10px 10px 14px;
861
+ overflow-y: auto;
862
+ overflow-x: hidden;
863
+ display: flex;
864
+ flex-direction: column;
865
+ gap: 8px;
855
866
  scrollbar-width: thin;
856
867
  scrollbar-color: rgb(255 255 255 / 28%) transparent;
857
868
  }
@@ -936,34 +947,30 @@
936
947
 
937
948
  .vds-video-layout .vds-episode-item {
938
949
  display: grid !important;
939
- grid-template-columns: 152px minmax(0, 1fr) !important;
950
+ grid-template-columns: 148px minmax(0, 1fr) !important;
940
951
  align-items: start;
941
952
  width: 100%;
942
- min-height: 108px;
953
+ min-height: 0;
943
954
  gap: 12px;
944
- padding: 11px 2px;
945
- border-radius: 0;
946
- border: 0;
947
- border-bottom: 1px solid rgb(255 255 255 / 10%);
948
- background: transparent;
955
+ padding: 10px 10px 10px 8px;
956
+ border-radius: 10px;
957
+ border: 1px solid rgb(255 255 255 / 6%);
958
+ background: rgb(255 255 255 / 3%);
949
959
  transition:
950
- transform 0.18s ease,
951
- opacity 0.18s ease;
960
+ background 0.18s ease,
961
+ border-color 0.18s ease,
962
+ transform 0.18s ease;
952
963
  }
953
964
 
954
965
  .vds-video-layout .vds-episode-item:hover {
955
- transform: translateX(2px);
956
- opacity: 0.98;
966
+ background: rgb(255 255 255 / 6%);
967
+ border-color: rgb(255 255 255 / 10%);
957
968
  }
958
969
 
959
970
  .vds-video-layout .vds-episode-item[data-active='true'] {
960
- position: relative;
961
971
  cursor: default;
962
- background: linear-gradient(90deg, rgb(229 9 20 / 12%) 0%, rgb(255 255 255 / 4%) 42%);
963
- border-radius: 12px;
964
- padding-inline: 8px;
965
- margin-inline: -6px;
966
- outline: 1px solid rgb(229 9 20 / 35%);
972
+ background: linear-gradient(135deg, rgb(229 9 20 / 14%) 0%, rgb(255 255 255 / 5%) 100%);
973
+ border-color: rgb(229 9 20 / 45%);
967
974
  box-shadow: inset 3px 0 0 #e50914;
968
975
  }
969
976
 
@@ -972,42 +979,43 @@
972
979
  }
973
980
 
974
981
  .vds-video-layout .vds-episode-item[data-active='true'] .vds-episode-thumb {
975
- filter: brightness(0.78);
982
+ filter: brightness(0.88);
976
983
  }
977
984
 
978
985
  .vds-video-layout .vds-episode-item[data-active='true'] .vds-episode-label {
979
- color: #ff6b6b;
986
+ color: #ffb4b4;
980
987
  }
981
988
 
982
989
  .vds-video-layout .vds-episode-item:focus-visible {
983
- outline: 2px solid rgb(255 255 255 / 55%);
984
- outline-offset: 2px;
990
+ outline: 2px solid rgb(255 255 255 / 45%);
991
+ outline-offset: 1px;
985
992
  }
986
993
 
987
994
  .vds-video-layout .vds-episode-item[data-active='true']:focus-visible {
988
- outline-color: rgb(229 9 20 / 70%);
995
+ outline-color: rgb(229 9 20 / 55%);
989
996
  }
990
997
 
991
- .vds-video-layout .vds-episode-active-overlay {
992
- position: absolute;
993
- inset: 0;
998
+ .vds-video-layout .vds-episode-meta-primary {
994
999
  display: flex;
1000
+ flex-wrap: wrap;
995
1001
  align-items: center;
996
- justify-content: center;
997
- background: linear-gradient(180deg, rgb(0 0 0 / 15%) 0%, rgb(0 0 0 / 45%) 100%);
998
- pointer-events: none;
1002
+ gap: 6px;
1003
+ min-width: 0;
999
1004
  }
1000
1005
 
1001
- .vds-video-layout .vds-episode-playing-badge {
1006
+ .vds-video-layout .vds-episode-now-chip {
1007
+ flex-shrink: 0;
1008
+ display: inline-flex;
1009
+ align-items: center;
1010
+ padding: 2px 7px;
1011
+ border-radius: 4px;
1002
1012
  background: #e50914;
1003
1013
  color: #fff;
1004
- font-size: 10px;
1014
+ font-size: 9px;
1005
1015
  font-weight: 700;
1006
- padding: 4px 8px;
1007
- border-radius: 6px;
1016
+ letter-spacing: 0.07em;
1008
1017
  text-transform: uppercase;
1009
- letter-spacing: 0.06em;
1010
- box-shadow: 0 4px 14px rgb(0 0 0 / 35%);
1018
+ line-height: 1.2;
1011
1019
  }
1012
1020
 
1013
1021
  .vds-video-layout .vds-episode-progress-track {
@@ -1027,19 +1035,20 @@
1027
1035
 
1028
1036
  .vds-video-layout .vds-episode-thumb {
1029
1037
  display: block;
1030
- width: 152px;
1031
- height: 86px;
1038
+ width: 148px;
1039
+ height: 84px;
1032
1040
  object-fit: cover;
1033
- border-radius: 10px;
1041
+ border-radius: 8px;
1034
1042
  background: #151515;
1035
- border: 1px solid rgb(255 255 255 / 12%);
1043
+ border: 1px solid rgb(255 255 255 / 10%);
1036
1044
  }
1037
1045
 
1038
1046
  .vds-video-layout .vds-episode-thumb-wrap {
1039
- width: 152px;
1040
- height: 86px;
1041
- border-radius: 10px;
1047
+ width: 148px;
1048
+ height: 84px;
1049
+ border-radius: 8px;
1042
1050
  overflow: hidden;
1051
+ flex-shrink: 0;
1043
1052
  }
1044
1053
 
1045
1054
  .vds-video-layout .vds-episode-thumb-placeholder {
@@ -1050,7 +1059,8 @@
1050
1059
  min-width: 0;
1051
1060
  display: grid;
1052
1061
  align-content: start;
1053
- gap: 3px;
1062
+ gap: 5px;
1063
+ padding-top: 1px;
1054
1064
  }
1055
1065
 
1056
1066
  .vds-video-layout .vds-episode-title,
@@ -1063,28 +1073,34 @@
1063
1073
 
1064
1074
  .vds-video-layout .vds-episode-meta-row {
1065
1075
  display: flex;
1066
- align-items: center;
1076
+ align-items: flex-start;
1067
1077
  justify-content: space-between;
1068
- gap: 8px;
1078
+ gap: 10px;
1079
+ }
1080
+
1081
+ .vds-video-layout .vds-episode-meta-row .vds-episode-runtime {
1082
+ flex-shrink: 0;
1083
+ margin-top: 1px;
1069
1084
  }
1070
1085
 
1071
1086
  .vds-video-layout .vds-episode-label {
1072
1087
  font-size: 10px;
1073
1088
  font-weight: 700;
1074
- letter-spacing: 0.08em;
1089
+ letter-spacing: 0.07em;
1075
1090
  text-transform: uppercase;
1076
1091
  color: #e50914;
1077
1092
  }
1078
1093
 
1079
1094
  .vds-video-layout .vds-episode-runtime {
1080
1095
  font-size: 11px;
1081
- color: rgb(255 255 255 / 65%);
1096
+ font-variant-numeric: tabular-nums;
1097
+ color: rgb(255 255 255 / 72%);
1082
1098
  }
1083
1099
 
1084
1100
  .vds-video-layout .vds-episode-title {
1085
- font-size: 14px;
1101
+ font-size: 13px;
1086
1102
  font-weight: 600;
1087
- line-height: 1.2;
1103
+ line-height: 1.28;
1088
1104
  }
1089
1105
 
1090
1106
  .vds-video-layout .vds-episode-subtitle {
@@ -1095,12 +1111,13 @@
1095
1111
 
1096
1112
  .vds-video-layout .vds-episode-desc {
1097
1113
  margin: 0;
1098
- font-size: 12px;
1099
- line-height: 1.35;
1100
- color: rgb(255 255 255 / 78%);
1101
- line-clamp: 2;
1114
+ margin-top: 2px;
1115
+ font-size: 11px;
1116
+ line-height: 1.45;
1117
+ color: rgb(255 255 255 / 68%);
1118
+ line-clamp: 3;
1102
1119
  display: -webkit-box;
1103
- -webkit-line-clamp: 2;
1120
+ -webkit-line-clamp: 3;
1104
1121
  -webkit-box-orient: vertical;
1105
1122
  overflow: hidden;
1106
1123
  }
@@ -1118,13 +1135,13 @@
1118
1135
  }
1119
1136
 
1120
1137
  .vds-video-layout .vds-episodes-panel {
1121
- left: 10px;
1122
- right: 10px;
1138
+ left: 8px;
1139
+ right: 8px;
1123
1140
  width: auto;
1124
1141
  top: auto;
1125
- bottom: 64px;
1126
- max-height: min(62vh, 480px);
1127
- border-radius: 14px;
1142
+ bottom: 56px;
1143
+ max-height: min(64vh, 520px);
1144
+ border-radius: 12px;
1128
1145
  transform: translate3d(0, 10px, 0);
1129
1146
  }
1130
1147