@livepeer-frameworks/player-svelte 0.1.1 → 0.1.2

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 (88) hide show
  1. package/dist/DevModePanel.svelte +266 -127
  2. package/dist/DevModePanel.svelte.d.ts +1 -1
  3. package/dist/DvdLogo.svelte +17 -21
  4. package/dist/Icons.svelte +5 -3
  5. package/dist/Icons.svelte.d.ts +6 -19
  6. package/dist/IdleScreen.svelte +277 -186
  7. package/dist/IdleScreen.svelte.d.ts +1 -1
  8. package/dist/LoadingScreen.svelte +190 -162
  9. package/dist/Player.svelte +244 -111
  10. package/dist/Player.svelte.d.ts +1 -1
  11. package/dist/PlayerControls.svelte +263 -168
  12. package/dist/PlayerControls.svelte.d.ts +1 -1
  13. package/dist/SeekBar.svelte +61 -35
  14. package/dist/SkipIndicator.svelte +4 -4
  15. package/dist/SkipIndicator.svelte.d.ts +1 -1
  16. package/dist/SpeedIndicator.svelte +1 -1
  17. package/dist/StatsPanel.svelte +76 -57
  18. package/dist/StatsPanel.svelte.d.ts +1 -1
  19. package/dist/StreamStateOverlay.svelte +143 -107
  20. package/dist/StreamStateOverlay.svelte.d.ts +1 -1
  21. package/dist/SubtitleRenderer.svelte +46 -43
  22. package/dist/ThumbnailOverlay.svelte +22 -19
  23. package/dist/TitleOverlay.svelte +6 -11
  24. package/dist/components/VolumeIcons.svelte +12 -6
  25. package/dist/global.d.ts +3 -3
  26. package/dist/icons/FullscreenExitIcon.svelte +1 -5
  27. package/dist/icons/FullscreenIcon.svelte +1 -5
  28. package/dist/icons/PauseIcon.svelte +1 -5
  29. package/dist/icons/PictureInPictureIcon.svelte +12 -6
  30. package/dist/icons/PlayIcon.svelte +1 -5
  31. package/dist/icons/SeekToLiveIcon.svelte +1 -5
  32. package/dist/icons/SettingsIcon.svelte +1 -5
  33. package/dist/icons/SkipBackIcon.svelte +1 -5
  34. package/dist/icons/SkipForwardIcon.svelte +1 -5
  35. package/dist/icons/StatsIcon.svelte +1 -5
  36. package/dist/icons/VolumeOffIcon.svelte +1 -5
  37. package/dist/icons/VolumeUpIcon.svelte +1 -5
  38. package/dist/icons/index.d.ts +12 -12
  39. package/dist/icons/index.js +12 -12
  40. package/dist/index.d.ts +24 -24
  41. package/dist/index.js +21 -21
  42. package/dist/stores/index.d.ts +6 -6
  43. package/dist/stores/index.js +6 -6
  44. package/dist/stores/playbackQuality.d.ts +2 -2
  45. package/dist/stores/playbackQuality.js +7 -7
  46. package/dist/stores/playerContext.d.ts +2 -2
  47. package/dist/stores/playerContext.js +17 -17
  48. package/dist/stores/playerController.d.ts +13 -4
  49. package/dist/stores/playerController.js +80 -56
  50. package/dist/stores/playerSelection.d.ts +2 -2
  51. package/dist/stores/playerSelection.js +7 -7
  52. package/dist/stores/streamState.d.ts +2 -2
  53. package/dist/stores/streamState.js +56 -56
  54. package/dist/stores/viewerEndpoints.d.ts +3 -3
  55. package/dist/stores/viewerEndpoints.js +21 -21
  56. package/dist/types.d.ts +1 -1
  57. package/dist/ui/Badge.svelte +9 -10
  58. package/dist/ui/Badge.svelte.d.ts +8 -29
  59. package/dist/ui/Button.svelte +16 -16
  60. package/dist/ui/Button.svelte.d.ts +8 -29
  61. package/dist/ui/Slider.svelte +21 -55
  62. package/dist/ui/badge.js +1 -1
  63. package/dist/ui/button.js +2 -2
  64. package/dist/ui/context-menu/ContextMenuCheckboxItem.svelte +5 -7
  65. package/dist/ui/context-menu/ContextMenuCheckboxItem.svelte.d.ts +6 -27
  66. package/dist/ui/context-menu/ContextMenuContent.svelte +2 -9
  67. package/dist/ui/context-menu/ContextMenuItem.svelte +1 -5
  68. package/dist/ui/context-menu/ContextMenuLabel.svelte +1 -5
  69. package/dist/ui/context-menu/ContextMenuRadioItem.svelte +5 -7
  70. package/dist/ui/context-menu/ContextMenuRadioItem.svelte.d.ts +6 -27
  71. package/dist/ui/context-menu/ContextMenuSeparator.svelte +2 -8
  72. package/dist/ui/context-menu/ContextMenuShortcut.svelte +2 -12
  73. package/dist/ui/context-menu/ContextMenuSubContent.svelte +1 -5
  74. package/package.json +15 -7
  75. package/src/DevModePanel.svelte +1 -0
  76. package/src/Icons.svelte +5 -3
  77. package/src/IdleScreen.svelte +21 -14
  78. package/src/LoadingScreen.svelte +20 -13
  79. package/src/Player.svelte +48 -2
  80. package/src/PlayerControls.svelte +36 -17
  81. package/src/SeekBar.svelte +33 -0
  82. package/src/StreamStateOverlay.svelte +2 -2
  83. package/src/stores/playerController.ts +39 -1
  84. package/src/stores/viewerEndpoints.ts +1 -1
  85. package/src/ui/Badge.svelte +7 -4
  86. package/src/ui/Button.svelte +13 -13
  87. package/src/ui/context-menu/ContextMenuCheckboxItem.svelte +4 -2
  88. package/src/ui/context-menu/ContextMenuRadioItem.svelte +4 -2
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -23,6 +19,16 @@
23
19
  class={className}
24
20
  aria-hidden="true"
25
21
  >
26
- <rect x="2" y="3" width="20" height="14" rx="2" ry="2" stroke={color} stroke-width="2" fill="none" />
22
+ <rect
23
+ x="2"
24
+ y="3"
25
+ width="20"
26
+ height="14"
27
+ rx="2"
28
+ ry="2"
29
+ stroke={color}
30
+ stroke-width="2"
31
+ fill="none"
32
+ />
27
33
  <rect x="8" y="10" width="10" height="6" rx="1" ry="1" fill={color} />
28
34
  </svg>
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -8,11 +8,7 @@
8
8
  class?: string;
9
9
  }
10
10
 
11
- let {
12
- size = 16,
13
- color = 'currentColor',
14
- class: className = '',
15
- }: Props = $props();
11
+ let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
16
12
  </script>
17
13
 
18
14
  <svg
@@ -3,15 +3,15 @@
3
3
  *
4
4
  * Port of src/components/Icons.tsx
5
5
  */
6
- export { default as PlayIcon } from './PlayIcon.svelte';
7
- export { default as PauseIcon } from './PauseIcon.svelte';
8
- export { default as SkipBackIcon } from './SkipBackIcon.svelte';
9
- export { default as SkipForwardIcon } from './SkipForwardIcon.svelte';
10
- export { default as VolumeUpIcon } from './VolumeUpIcon.svelte';
11
- export { default as VolumeOffIcon } from './VolumeOffIcon.svelte';
12
- export { default as FullscreenIcon } from './FullscreenIcon.svelte';
13
- export { default as FullscreenExitIcon } from './FullscreenExitIcon.svelte';
14
- export { default as SettingsIcon } from './SettingsIcon.svelte';
15
- export { default as StatsIcon } from './StatsIcon.svelte';
16
- export { default as PictureInPictureIcon } from './PictureInPictureIcon.svelte';
17
- export { default as SeekToLiveIcon } from './SeekToLiveIcon.svelte';
6
+ export { default as PlayIcon } from "./PlayIcon.svelte";
7
+ export { default as PauseIcon } from "./PauseIcon.svelte";
8
+ export { default as SkipBackIcon } from "./SkipBackIcon.svelte";
9
+ export { default as SkipForwardIcon } from "./SkipForwardIcon.svelte";
10
+ export { default as VolumeUpIcon } from "./VolumeUpIcon.svelte";
11
+ export { default as VolumeOffIcon } from "./VolumeOffIcon.svelte";
12
+ export { default as FullscreenIcon } from "./FullscreenIcon.svelte";
13
+ export { default as FullscreenExitIcon } from "./FullscreenExitIcon.svelte";
14
+ export { default as SettingsIcon } from "./SettingsIcon.svelte";
15
+ export { default as StatsIcon } from "./StatsIcon.svelte";
16
+ export { default as PictureInPictureIcon } from "./PictureInPictureIcon.svelte";
17
+ export { default as SeekToLiveIcon } from "./SeekToLiveIcon.svelte";
@@ -3,15 +3,15 @@
3
3
  *
4
4
  * Port of src/components/Icons.tsx
5
5
  */
6
- export { default as PlayIcon } from './PlayIcon.svelte';
7
- export { default as PauseIcon } from './PauseIcon.svelte';
8
- export { default as SkipBackIcon } from './SkipBackIcon.svelte';
9
- export { default as SkipForwardIcon } from './SkipForwardIcon.svelte';
10
- export { default as VolumeUpIcon } from './VolumeUpIcon.svelte';
11
- export { default as VolumeOffIcon } from './VolumeOffIcon.svelte';
12
- export { default as FullscreenIcon } from './FullscreenIcon.svelte';
13
- export { default as FullscreenExitIcon } from './FullscreenExitIcon.svelte';
14
- export { default as SettingsIcon } from './SettingsIcon.svelte';
15
- export { default as StatsIcon } from './StatsIcon.svelte';
16
- export { default as PictureInPictureIcon } from './PictureInPictureIcon.svelte';
17
- export { default as SeekToLiveIcon } from './SeekToLiveIcon.svelte';
6
+ export { default as PlayIcon } from "./PlayIcon.svelte";
7
+ export { default as PauseIcon } from "./PauseIcon.svelte";
8
+ export { default as SkipBackIcon } from "./SkipBackIcon.svelte";
9
+ export { default as SkipForwardIcon } from "./SkipForwardIcon.svelte";
10
+ export { default as VolumeUpIcon } from "./VolumeUpIcon.svelte";
11
+ export { default as VolumeOffIcon } from "./VolumeOffIcon.svelte";
12
+ export { default as FullscreenIcon } from "./FullscreenIcon.svelte";
13
+ export { default as FullscreenExitIcon } from "./FullscreenExitIcon.svelte";
14
+ export { default as SettingsIcon } from "./SettingsIcon.svelte";
15
+ export { default as StatsIcon } from "./StatsIcon.svelte";
16
+ export { default as PictureInPictureIcon } from "./PictureInPictureIcon.svelte";
17
+ export { default as SeekToLiveIcon } from "./SeekToLiveIcon.svelte";
package/dist/index.d.ts CHANGED
@@ -24,27 +24,27 @@
24
24
  * />
25
25
  * ```
26
26
  */
27
- export { default as Button } from './ui/Button.svelte';
28
- export { default as Badge } from './ui/Badge.svelte';
29
- export { default as Slider } from './ui/Slider.svelte';
30
- export { default as Player } from './Player.svelte';
31
- export { default as PlayerControls } from './PlayerControls.svelte';
32
- export { default as SeekBar } from './SeekBar.svelte';
33
- export { default as SpeedIndicator } from './SpeedIndicator.svelte';
34
- export { default as SkipIndicator } from './SkipIndicator.svelte';
35
- export { default as IdleScreen } from './IdleScreen.svelte';
36
- export { default as LoadingScreen } from './LoadingScreen.svelte';
37
- export { default as StreamStateOverlay } from './StreamStateOverlay.svelte';
38
- export { default as SubtitleRenderer } from './SubtitleRenderer.svelte';
39
- export { default as DvdLogo } from './DvdLogo.svelte';
40
- export { default as TitleOverlay } from './TitleOverlay.svelte';
41
- export { default as ThumbnailOverlay } from './ThumbnailOverlay.svelte';
42
- export { default as StatsPanel } from './StatsPanel.svelte';
43
- export { default as DevModePanel } from './DevModePanel.svelte';
44
- export * from './icons';
45
- export * from './stores';
46
- export * from './ui/context-menu';
47
- export type { SkipDirection } from './types';
48
- export { PlayerController, PlayerManager, globalPlayerManager } from '@livepeer-frameworks/player-core';
49
- export type { PlayerControllerConfig, PlayerControllerEvents } from '@livepeer-frameworks/player-core';
50
- export type { PlayerState, PlayerStateContext, StreamState, StreamStatus, ContentMetadata, ContentEndpoints, EndpointInfo, PlaybackMode, PlaybackQuality, MistStreamInfo, PlayerOptions, PlayerMetadata, PlayerSelection, PlayerCombination, PlayerManagerOptions, PlayerManagerEvents, } from '@livepeer-frameworks/player-core';
27
+ export { default as Button } from "./ui/Button.svelte";
28
+ export { default as Badge } from "./ui/Badge.svelte";
29
+ export { default as Slider } from "./ui/Slider.svelte";
30
+ export { default as Player } from "./Player.svelte";
31
+ export { default as PlayerControls } from "./PlayerControls.svelte";
32
+ export { default as SeekBar } from "./SeekBar.svelte";
33
+ export { default as SpeedIndicator } from "./SpeedIndicator.svelte";
34
+ export { default as SkipIndicator } from "./SkipIndicator.svelte";
35
+ export { default as IdleScreen } from "./IdleScreen.svelte";
36
+ export { default as LoadingScreen } from "./LoadingScreen.svelte";
37
+ export { default as StreamStateOverlay } from "./StreamStateOverlay.svelte";
38
+ export { default as SubtitleRenderer } from "./SubtitleRenderer.svelte";
39
+ export { default as DvdLogo } from "./DvdLogo.svelte";
40
+ export { default as TitleOverlay } from "./TitleOverlay.svelte";
41
+ export { default as ThumbnailOverlay } from "./ThumbnailOverlay.svelte";
42
+ export { default as StatsPanel } from "./StatsPanel.svelte";
43
+ export { default as DevModePanel } from "./DevModePanel.svelte";
44
+ export * from "./icons";
45
+ export * from "./stores";
46
+ export * from "./ui/context-menu";
47
+ export type { SkipDirection } from "./types";
48
+ export { PlayerController, PlayerManager, globalPlayerManager, } from "@livepeer-frameworks/player-core";
49
+ export type { PlayerControllerConfig, PlayerControllerEvents, } from "@livepeer-frameworks/player-core";
50
+ export type { PlayerState, PlayerStateContext, StreamState, StreamStatus, ContentMetadata, ContentEndpoints, EndpointInfo, PlaybackMode, PlaybackQuality, MistStreamInfo, PlayerOptions, PlayerMetadata, PlayerSelection, PlayerCombination, PlayerManagerOptions, PlayerManagerEvents, } from "@livepeer-frameworks/player-core";
package/dist/index.js CHANGED
@@ -25,30 +25,30 @@
25
25
  * ```
26
26
  */
27
27
  // UI primitives
28
- export { default as Button } from './ui/Button.svelte';
29
- export { default as Badge } from './ui/Badge.svelte';
30
- export { default as Slider } from './ui/Slider.svelte';
28
+ export { default as Button } from "./ui/Button.svelte";
29
+ export { default as Badge } from "./ui/Badge.svelte";
30
+ export { default as Slider } from "./ui/Slider.svelte";
31
31
  // Main components
32
- export { default as Player } from './Player.svelte';
33
- export { default as PlayerControls } from './PlayerControls.svelte';
34
- export { default as SeekBar } from './SeekBar.svelte';
32
+ export { default as Player } from "./Player.svelte";
33
+ export { default as PlayerControls } from "./PlayerControls.svelte";
34
+ export { default as SeekBar } from "./SeekBar.svelte";
35
35
  // Overlay components
36
- export { default as SpeedIndicator } from './SpeedIndicator.svelte';
37
- export { default as SkipIndicator } from './SkipIndicator.svelte';
38
- export { default as IdleScreen } from './IdleScreen.svelte';
39
- export { default as LoadingScreen } from './LoadingScreen.svelte';
40
- export { default as StreamStateOverlay } from './StreamStateOverlay.svelte';
41
- export { default as SubtitleRenderer } from './SubtitleRenderer.svelte';
42
- export { default as DvdLogo } from './DvdLogo.svelte';
43
- export { default as TitleOverlay } from './TitleOverlay.svelte';
44
- export { default as ThumbnailOverlay } from './ThumbnailOverlay.svelte';
45
- export { default as StatsPanel } from './StatsPanel.svelte';
46
- export { default as DevModePanel } from './DevModePanel.svelte';
36
+ export { default as SpeedIndicator } from "./SpeedIndicator.svelte";
37
+ export { default as SkipIndicator } from "./SkipIndicator.svelte";
38
+ export { default as IdleScreen } from "./IdleScreen.svelte";
39
+ export { default as LoadingScreen } from "./LoadingScreen.svelte";
40
+ export { default as StreamStateOverlay } from "./StreamStateOverlay.svelte";
41
+ export { default as SubtitleRenderer } from "./SubtitleRenderer.svelte";
42
+ export { default as DvdLogo } from "./DvdLogo.svelte";
43
+ export { default as TitleOverlay } from "./TitleOverlay.svelte";
44
+ export { default as ThumbnailOverlay } from "./ThumbnailOverlay.svelte";
45
+ export { default as StatsPanel } from "./StatsPanel.svelte";
46
+ export { default as DevModePanel } from "./DevModePanel.svelte";
47
47
  // Icon components
48
- export * from './icons';
48
+ export * from "./icons";
49
49
  // Stores
50
- export * from './stores';
50
+ export * from "./stores";
51
51
  // Context menu components
52
- export * from './ui/context-menu';
52
+ export * from "./ui/context-menu";
53
53
  // Re-export core types and classes for Svelte users
54
- export { PlayerController, PlayerManager, globalPlayerManager } from '@livepeer-frameworks/player-core';
54
+ export { PlayerController, PlayerManager, globalPlayerManager, } from "@livepeer-frameworks/player-core";
@@ -7,9 +7,9 @@
7
7
  * - Player instance context sharing
8
8
  * - Playback quality monitoring
9
9
  */
10
- export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, type StreamStateOptions, type StreamStateStore, } from './streamState';
11
- export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, type ViewerEndpointsOptions, type ViewerEndpointsStore, type ViewerEndpointsState, type EndpointStatus, } from './viewerEndpoints';
12
- export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, type PlayerContextState, type PlayerContextStore, } from './playerContext';
13
- export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, type PlaybackQualityOptions, type PlaybackQualityStore, } from './playbackQuality';
14
- export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, type PlayerSelectionOptions, type PlayerSelectionState, type PlayerSelectionStore, } from './playerSelection';
15
- export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, type PlayerControllerStoreConfig, type PlayerControllerState, type PlayerControllerStore, } from './playerController';
10
+ export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, type StreamStateOptions, type StreamStateStore, } from "./streamState";
11
+ export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, type ViewerEndpointsOptions, type ViewerEndpointsStore, type ViewerEndpointsState, type EndpointStatus, } from "./viewerEndpoints";
12
+ export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, type PlayerContextState, type PlayerContextStore, } from "./playerContext";
13
+ export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, type PlaybackQualityOptions, type PlaybackQualityStore, } from "./playbackQuality";
14
+ export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, type PlayerSelectionOptions, type PlayerSelectionState, type PlayerSelectionStore, } from "./playerSelection";
15
+ export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, type PlayerControllerStoreConfig, type PlayerControllerState, type PlayerControllerStore, } from "./playerController";
@@ -8,14 +8,14 @@
8
8
  * - Playback quality monitoring
9
9
  */
10
10
  // Stream state (MistServer polling)
11
- export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, } from './streamState';
11
+ export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, } from "./streamState";
12
12
  // Viewer endpoints (Gateway resolution)
13
- export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, } from './viewerEndpoints';
13
+ export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, } from "./viewerEndpoints";
14
14
  // Player context (instance sharing)
15
- export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, } from './playerContext';
15
+ export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, } from "./playerContext";
16
16
  // Playback quality monitoring
17
- export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, } from './playbackQuality';
17
+ export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, } from "./playbackQuality";
18
18
  // Player selection (event-driven, cached)
19
- export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, } from './playerSelection';
19
+ export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, } from "./playerSelection";
20
20
  // PlayerController store (central orchestrator)
21
- export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, } from './playerController';
21
+ export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, } from "./playerController";
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Wraps QualityMonitor for reactive quality metrics.
5
5
  */
6
- import { type Readable } from 'svelte/store';
7
- import { type PlaybackQuality } from '@livepeer-frameworks/player-core';
6
+ import { type Readable } from "svelte/store";
7
+ import { type PlaybackQuality } from "@livepeer-frameworks/player-core";
8
8
  export interface PlaybackQualityOptions {
9
9
  sampleInterval?: number;
10
10
  enabled?: boolean;
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Wraps QualityMonitor for reactive quality metrics.
5
5
  */
6
- import { writable, derived } from 'svelte/store';
7
- import { QualityMonitor } from '@livepeer-frameworks/player-core';
6
+ import { writable, derived } from "svelte/store";
7
+ import { QualityMonitor } from "@livepeer-frameworks/player-core";
8
8
  /**
9
9
  * Create a playback quality monitoring store.
10
10
  *
@@ -81,18 +81,18 @@ export function createPlaybackQualityMonitor(options = {}) {
81
81
  }
82
82
  // Convenience derived stores
83
83
  export function createDerivedQualityScore(store) {
84
- return derived(store, $quality => $quality?.score ?? 100);
84
+ return derived(store, ($quality) => $quality?.score ?? 100);
85
85
  }
86
86
  export function createDerivedStallCount(store) {
87
- return derived(store, $quality => $quality?.stallCount ?? 0);
87
+ return derived(store, ($quality) => $quality?.stallCount ?? 0);
88
88
  }
89
89
  export function createDerivedFrameDropRate(store) {
90
- return derived(store, $quality => $quality?.frameDropRate ?? 0);
90
+ return derived(store, ($quality) => $quality?.frameDropRate ?? 0);
91
91
  }
92
92
  export function createDerivedBitrate(store) {
93
- return derived(store, $quality => $quality?.bitrate ?? 0);
93
+ return derived(store, ($quality) => $quality?.bitrate ?? 0);
94
94
  }
95
95
  export function createDerivedLatency(store) {
96
- return derived(store, $quality => $quality?.latency);
96
+ return derived(store, ($quality) => $quality?.latency);
97
97
  }
98
98
  export default createPlaybackQualityMonitor;
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Port of PlayerContext.tsx React context to Svelte 5 stores.
5
5
  */
6
- import { type Readable } from 'svelte/store';
7
- import { type StreamInfo, type IPlayer } from '@livepeer-frameworks/player-core';
6
+ import { type Readable } from "svelte/store";
7
+ import { type StreamInfo, type IPlayer } from "@livepeer-frameworks/player-core";
8
8
  export interface PlayerContextState {
9
9
  /** Current video element (if available) */
10
10
  videoElement: HTMLVideoElement | null;
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * Port of PlayerContext.tsx React context to Svelte 5 stores.
5
5
  */
6
- import { writable, derived } from 'svelte/store';
7
- import { getContext, setContext } from 'svelte';
8
- import { globalPlayerManager } from '@livepeer-frameworks/player-core';
6
+ import { writable, derived } from "svelte/store";
7
+ import { getContext, setContext } from "svelte";
8
+ import { globalPlayerManager, } from "@livepeer-frameworks/player-core";
9
9
  // Context key
10
- const PLAYER_CONTEXT_KEY = Symbol('player-context');
10
+ const PLAYER_CONTEXT_KEY = Symbol("player-context");
11
11
  const initialState = {
12
12
  videoElement: null,
13
13
  player: null,
@@ -41,10 +41,10 @@ const initialState = {
41
41
  export function createPlayerContext() {
42
42
  const store = writable(initialState);
43
43
  function setVideoElement(el) {
44
- store.update(s => ({ ...s, videoElement: el }));
44
+ store.update((s) => ({ ...s, videoElement: el }));
45
45
  }
46
46
  function setPlayer(player) {
47
- store.update(s => ({
47
+ store.update((s) => ({
48
48
  ...s,
49
49
  player,
50
50
  playerName: player?.capability.name ?? null,
@@ -52,13 +52,13 @@ export function createPlayerContext() {
52
52
  }));
53
53
  }
54
54
  function setSource(type, url) {
55
- store.update(s => ({ ...s, sourceType: type, sourceUrl: url }));
55
+ store.update((s) => ({ ...s, sourceType: type, sourceUrl: url }));
56
56
  }
57
57
  function setStreamInfo(info) {
58
- store.update(s => ({ ...s, streamInfo: info }));
58
+ store.update((s) => ({ ...s, streamInfo: info }));
59
59
  }
60
60
  function setReady(ready) {
61
- store.update(s => ({ ...s, isReady: ready }));
61
+ store.update((s) => ({ ...s, isReady: ready }));
62
62
  }
63
63
  function reset() {
64
64
  store.set(initialState);
@@ -105,7 +105,7 @@ function createFallbackContext() {
105
105
  function syncState() {
106
106
  const player = globalPlayerManager.getCurrentPlayer();
107
107
  const videoEl = player?.getVideoElement() ?? null;
108
- store.update(s => ({
108
+ store.update((s) => ({
109
109
  ...s,
110
110
  videoElement: videoEl,
111
111
  player: player ?? null,
@@ -126,8 +126,8 @@ function createFallbackContext() {
126
126
  // Initial sync
127
127
  syncState();
128
128
  // Subscribe to events
129
- globalPlayerManager.on('playerInitialized', handleInitialized);
130
- globalPlayerManager.on('selection-changed', handleSelectionChanged);
129
+ globalPlayerManager.on("playerInitialized", handleInitialized);
130
+ globalPlayerManager.on("selection-changed", handleSelectionChanged);
131
131
  }
132
132
  const unsubscribe = originalSubscribe(run, invalidate);
133
133
  return () => {
@@ -135,8 +135,8 @@ function createFallbackContext() {
135
135
  subscribers--;
136
136
  if (subscribers === 0) {
137
137
  // Unsubscribe from events
138
- globalPlayerManager.off('playerInitialized', handleInitialized);
139
- globalPlayerManager.off('selection-changed', handleSelectionChanged);
138
+ globalPlayerManager.off("playerInitialized", handleInitialized);
139
+ globalPlayerManager.off("selection-changed", handleSelectionChanged);
140
140
  }
141
141
  };
142
142
  };
@@ -152,13 +152,13 @@ function createFallbackContext() {
152
152
  }
153
153
  // Convenience derived stores
154
154
  export function createDerivedVideoElement(store) {
155
- return derived(store, $state => $state.videoElement);
155
+ return derived(store, ($state) => $state.videoElement);
156
156
  }
157
157
  export function createDerivedIsReady(store) {
158
- return derived(store, $state => $state.isReady);
158
+ return derived(store, ($state) => $state.isReady);
159
159
  }
160
160
  export function createDerivedPlayerInfo(store) {
161
- return derived(store, $state => ({
161
+ return derived(store, ($state) => ({
162
162
  name: $state.playerName,
163
163
  shortname: $state.playerShortname,
164
164
  }));
@@ -2,9 +2,9 @@
2
2
  * Svelte store for PlayerController - wraps the core PlayerController
3
3
  * for declarative usage in Svelte 5 components.
4
4
  */
5
- import { type Readable } from 'svelte/store';
6
- import { PlayerController, type PlayerControllerConfig, type PlayerState, type StreamState, type PlaybackQuality, type ContentEndpoints, type ContentMetadata } from '@livepeer-frameworks/player-core';
7
- export interface PlayerControllerStoreConfig extends Omit<PlayerControllerConfig, 'playerManager'> {
5
+ import { type Readable } from "svelte/store";
6
+ import { PlayerController, type PlayerControllerConfig, type PlayerState, type StreamState, type PlaybackQuality, type ContentEndpoints, type ContentMetadata, type ClassifiedError } from "@livepeer-frameworks/player-core";
7
+ export interface PlayerControllerStoreConfig extends Omit<PlayerControllerConfig, "playerManager"> {
8
8
  /** Enable/disable the store */
9
9
  enabled?: boolean;
10
10
  }
@@ -35,6 +35,8 @@ export interface PlayerControllerState {
35
35
  volume: number;
36
36
  /** Error text */
37
37
  error: string | null;
38
+ /** Error details for debugging */
39
+ errorDetails: ClassifiedError["details"] | null;
38
40
  /** Is passive error */
39
41
  isPassiveError: boolean;
40
42
  /** Has playback ever started */
@@ -71,6 +73,11 @@ export interface PlayerControllerState {
71
73
  playbackQuality: PlaybackQuality | null;
72
74
  /** Subtitles enabled */
73
75
  subtitlesEnabled: boolean;
76
+ /** Toast message to display (auto-dismisses) */
77
+ toast: {
78
+ message: string;
79
+ timestamp: number;
80
+ } | null;
74
81
  }
75
82
  export interface PlayerControllerStore extends Readable<PlayerControllerState> {
76
83
  /** Get controller instance */
@@ -105,6 +112,8 @@ export interface PlayerControllerStore extends Readable<PlayerControllerState> {
105
112
  toggleSubtitles: () => void;
106
113
  /** Clear error */
107
114
  clearError: () => void;
115
+ /** Dismiss toast notification */
116
+ dismissToast: () => void;
108
117
  /** Retry playback */
109
118
  retry: () => Promise<void>;
110
119
  /** Reload player */
@@ -130,7 +139,7 @@ export interface PlayerControllerStore extends Readable<PlayerControllerState> {
130
139
  forcePlayer?: string;
131
140
  forceType?: string;
132
141
  forceSource?: number;
133
- playbackMode?: 'auto' | 'low-latency' | 'quality' | 'vod';
142
+ playbackMode?: "auto" | "low-latency" | "quality" | "vod";
134
143
  }) => Promise<void>;
135
144
  }
136
145
  /**