eb-player 1.54.57 → 2.0.0

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 (202) hide show
  1. package/README.md +2 -6
  2. package/dist/build/default.js +1 -1
  3. package/dist/build/eb-player.css +2066 -0
  4. package/dist/build/ebplayer-engines.bundle.js +2393 -0
  5. package/dist/build/ebplayer-engines.bundle.js.map +1 -0
  6. package/dist/build/ebplayer.bundle.js +6580 -0
  7. package/dist/build/ebplayer.bundle.js.map +1 -0
  8. package/dist/build/theme-forja.css +10 -0
  9. package/dist/build/theme-forja.js +1 -0
  10. package/dist/build/theme-modern.css +520 -0
  11. package/dist/build/theme-radio.css +11 -0
  12. package/dist/build/theme-radio.js +1 -0
  13. package/dist/build/theme-snrt.css +11 -0
  14. package/dist/build/theme-snrt.js +1 -0
  15. package/dist/build/theme-v2.css +661 -0
  16. package/dist/build/types/config.d.ts +139 -0
  17. package/dist/build/types/config.d.ts.map +1 -0
  18. package/dist/build/types/core/command-handler.d.ts +49 -0
  19. package/dist/build/types/core/command-handler.d.ts.map +1 -0
  20. package/dist/build/types/core/config.d.ts +174 -0
  21. package/dist/build/types/core/config.d.ts.map +1 -0
  22. package/dist/build/types/core/css/theme-forja.entry.d.ts +2 -0
  23. package/dist/build/types/core/css/theme-forja.entry.d.ts.map +1 -0
  24. package/dist/build/types/core/css/theme-radio.entry.d.ts +2 -0
  25. package/dist/build/types/core/css/theme-radio.entry.d.ts.map +1 -0
  26. package/dist/build/types/core/css/theme-snrt.entry.d.ts +2 -0
  27. package/dist/build/types/core/css/theme-snrt.entry.d.ts.map +1 -0
  28. package/dist/build/types/core/engine-state-sync.d.ts +38 -0
  29. package/dist/build/types/core/engine-state-sync.d.ts.map +1 -0
  30. package/dist/build/types/core/event-bus.d.ts +87 -0
  31. package/dist/build/types/core/event-bus.d.ts.map +1 -0
  32. package/dist/build/types/core/fsm.d.ts +27 -0
  33. package/dist/build/types/core/fsm.d.ts.map +1 -0
  34. package/dist/build/types/core/i18n.d.ts +51 -0
  35. package/dist/build/types/core/i18n.d.ts.map +1 -0
  36. package/dist/build/types/core/index.d.ts +23 -0
  37. package/dist/build/types/core/index.d.ts.map +1 -0
  38. package/dist/build/types/core/lifecycle.d.ts +96 -0
  39. package/dist/build/types/core/lifecycle.d.ts.map +1 -0
  40. package/dist/build/types/core/player-state.d.ts +15 -0
  41. package/dist/build/types/core/player-state.d.ts.map +1 -0
  42. package/dist/build/types/core/types.d.ts +84 -0
  43. package/dist/build/types/core/types.d.ts.map +1 -0
  44. package/dist/build/types/eb-player-standalone.d.ts +12 -0
  45. package/dist/build/types/eb-player-standalone.d.ts.map +1 -0
  46. package/dist/build/types/eb-player.d.ts +43 -0
  47. package/dist/build/types/eb-player.d.ts.map +1 -0
  48. package/dist/build/types/engine-state-sync.d.ts +38 -0
  49. package/dist/build/types/engine-state-sync.d.ts.map +1 -0
  50. package/dist/build/types/engines/abr/dash.d.ts +56 -0
  51. package/dist/build/types/engines/abr/dash.d.ts.map +1 -0
  52. package/dist/build/types/engines/abr/hls.d.ts +105 -0
  53. package/dist/build/types/engines/abr/hls.d.ts.map +1 -0
  54. package/dist/build/types/engines/base-engine.d.ts +56 -0
  55. package/dist/build/types/engines/base-engine.d.ts.map +1 -0
  56. package/dist/build/types/engines/cdn-loader.d.ts +20 -0
  57. package/dist/build/types/engines/cdn-loader.d.ts.map +1 -0
  58. package/dist/build/types/engines/cdn-token-manager.d.ts +136 -0
  59. package/dist/build/types/engines/cdn-token-manager.d.ts.map +1 -0
  60. package/dist/build/types/engines/dash.d.ts +79 -0
  61. package/dist/build/types/engines/dash.d.ts.map +1 -0
  62. package/dist/build/types/engines/drm.d.ts +54 -0
  63. package/dist/build/types/engines/drm.d.ts.map +1 -0
  64. package/dist/build/types/engines/hls-discontinuity-patch.d.ts +43 -0
  65. package/dist/build/types/engines/hls-discontinuity-patch.d.ts.map +1 -0
  66. package/dist/build/types/engines/hls.d.ts +45 -0
  67. package/dist/build/types/engines/hls.d.ts.map +1 -0
  68. package/dist/build/types/engines/index.d.ts +26 -0
  69. package/dist/build/types/engines/index.d.ts.map +1 -0
  70. package/dist/build/types/engines/ios/hls.d.ts +20 -0
  71. package/dist/build/types/engines/ios/hls.d.ts.map +1 -0
  72. package/dist/build/types/engines/poster/hls.d.ts +35 -0
  73. package/dist/build/types/engines/poster/hls.d.ts.map +1 -0
  74. package/dist/build/types/engines/retry/dash.d.ts +39 -0
  75. package/dist/build/types/engines/retry/dash.d.ts.map +1 -0
  76. package/dist/build/types/engines/retry/hls.d.ts +35 -0
  77. package/dist/build/types/engines/retry/hls.d.ts.map +1 -0
  78. package/dist/build/types/engines/snapshot/dash.d.ts +55 -0
  79. package/dist/build/types/engines/snapshot/dash.d.ts.map +1 -0
  80. package/dist/build/types/engines/snapshot/hls.d.ts +104 -0
  81. package/dist/build/types/engines/snapshot/hls.d.ts.map +1 -0
  82. package/dist/build/types/engines/stall-watchdog.d.ts +41 -0
  83. package/dist/build/types/engines/stall-watchdog.d.ts.map +1 -0
  84. package/dist/build/types/event-bus.d.ts +54 -0
  85. package/dist/build/types/event-bus.d.ts.map +1 -0
  86. package/dist/build/types/fsm.d.ts +27 -0
  87. package/dist/build/types/fsm.d.ts.map +1 -0
  88. package/dist/build/types/i18n.d.ts +51 -0
  89. package/dist/build/types/i18n.d.ts.map +1 -0
  90. package/dist/build/types/index.d.ts +21 -0
  91. package/dist/build/types/index.d.ts.map +1 -0
  92. package/dist/build/types/integrations/ads-manager.d.ts +32 -0
  93. package/dist/build/types/integrations/ads-manager.d.ts.map +1 -0
  94. package/dist/build/types/integrations/chromecast-manager.d.ts +50 -0
  95. package/dist/build/types/integrations/chromecast-manager.d.ts.map +1 -0
  96. package/dist/build/types/integrations/epg-manager.d.ts +22 -0
  97. package/dist/build/types/integrations/epg-manager.d.ts.map +1 -0
  98. package/dist/build/types/integrations/index.d.ts +6 -0
  99. package/dist/build/types/integrations/index.d.ts.map +1 -0
  100. package/dist/build/types/integrations/p2p-manager.d.ts +33 -0
  101. package/dist/build/types/integrations/p2p-manager.d.ts.map +1 -0
  102. package/dist/build/types/integrations/playlist-manager.d.ts +21 -0
  103. package/dist/build/types/integrations/playlist-manager.d.ts.map +1 -0
  104. package/dist/build/types/lifecycle.d.ts +64 -0
  105. package/dist/build/types/lifecycle.d.ts.map +1 -0
  106. package/dist/build/types/player-state.d.ts +15 -0
  107. package/dist/build/types/player-state.d.ts.map +1 -0
  108. package/dist/build/types/skin/bars/bottom-bar.d.ts +16 -0
  109. package/dist/build/types/skin/bars/bottom-bar.d.ts.map +1 -0
  110. package/dist/build/types/skin/bars/middle-bar.d.ts +16 -0
  111. package/dist/build/types/skin/bars/middle-bar.d.ts.map +1 -0
  112. package/dist/build/types/skin/bars/top-bar.d.ts +15 -0
  113. package/dist/build/types/skin/bars/top-bar.d.ts.map +1 -0
  114. package/dist/build/types/skin/base-component.d.ts +69 -0
  115. package/dist/build/types/skin/base-component.d.ts.map +1 -0
  116. package/dist/build/types/skin/brand/forja-playlist-bar.d.ts +15 -0
  117. package/dist/build/types/skin/brand/forja-playlist-bar.d.ts.map +1 -0
  118. package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts +16 -0
  119. package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts.map +1 -0
  120. package/dist/build/types/skin/component-registry.d.ts +16 -0
  121. package/dist/build/types/skin/component-registry.d.ts.map +1 -0
  122. package/dist/build/types/skin/controllers/auto-hide.d.ts +27 -0
  123. package/dist/build/types/skin/controllers/auto-hide.d.ts.map +1 -0
  124. package/dist/build/types/skin/controllers/keyboard.d.ts +29 -0
  125. package/dist/build/types/skin/controllers/keyboard.d.ts.map +1 -0
  126. package/dist/build/types/skin/controls/cast-button.d.ts +15 -0
  127. package/dist/build/types/skin/controls/cast-button.d.ts.map +1 -0
  128. package/dist/build/types/skin/controls/forward-button.d.ts +15 -0
  129. package/dist/build/types/skin/controls/forward-button.d.ts.map +1 -0
  130. package/dist/build/types/skin/controls/fullscreen-button.d.ts +17 -0
  131. package/dist/build/types/skin/controls/fullscreen-button.d.ts.map +1 -0
  132. package/dist/build/types/skin/controls/info-button.d.ts +10 -0
  133. package/dist/build/types/skin/controls/info-button.d.ts.map +1 -0
  134. package/dist/build/types/skin/controls/live-sync-button.d.ts +20 -0
  135. package/dist/build/types/skin/controls/live-sync-button.d.ts.map +1 -0
  136. package/dist/build/types/skin/controls/pip-button.d.ts +21 -0
  137. package/dist/build/types/skin/controls/pip-button.d.ts.map +1 -0
  138. package/dist/build/types/skin/controls/play-pause-button.d.ts +14 -0
  139. package/dist/build/types/skin/controls/play-pause-button.d.ts.map +1 -0
  140. package/dist/build/types/skin/controls/rewind-button.d.ts +15 -0
  141. package/dist/build/types/skin/controls/rewind-button.d.ts.map +1 -0
  142. package/dist/build/types/skin/controls/seekbar.d.ts +43 -0
  143. package/dist/build/types/skin/controls/seekbar.d.ts.map +1 -0
  144. package/dist/build/types/skin/controls/settings-panel.d.ts +45 -0
  145. package/dist/build/types/skin/controls/settings-panel.d.ts.map +1 -0
  146. package/dist/build/types/skin/controls/share-button.d.ts +11 -0
  147. package/dist/build/types/skin/controls/share-button.d.ts.map +1 -0
  148. package/dist/build/types/skin/controls/time-display.d.ts +19 -0
  149. package/dist/build/types/skin/controls/time-display.d.ts.map +1 -0
  150. package/dist/build/types/skin/controls/volume-control.d.ts +21 -0
  151. package/dist/build/types/skin/controls/volume-control.d.ts.map +1 -0
  152. package/dist/build/types/skin/icons/icons-modern.d.ts +10 -0
  153. package/dist/build/types/skin/icons/icons-modern.d.ts.map +1 -0
  154. package/dist/build/types/skin/icons/icons.d.ts +10 -0
  155. package/dist/build/types/skin/icons/icons.d.ts.map +1 -0
  156. package/dist/build/types/skin/icons/sprite.d.ts +39 -0
  157. package/dist/build/types/skin/icons/sprite.d.ts.map +1 -0
  158. package/dist/build/types/skin/index.d.ts +24 -0
  159. package/dist/build/types/skin/index.d.ts.map +1 -0
  160. package/dist/build/types/skin/overlays/error-message.d.ts +14 -0
  161. package/dist/build/types/skin/overlays/error-message.d.ts.map +1 -0
  162. package/dist/build/types/skin/overlays/info-overlay.d.ts +15 -0
  163. package/dist/build/types/skin/overlays/info-overlay.d.ts.map +1 -0
  164. package/dist/build/types/skin/overlays/loading-spinner.d.ts +17 -0
  165. package/dist/build/types/skin/overlays/loading-spinner.d.ts.map +1 -0
  166. package/dist/build/types/skin/overlays/socials-overlay.d.ts +17 -0
  167. package/dist/build/types/skin/overlays/socials-overlay.d.ts.map +1 -0
  168. package/dist/build/types/skin/overlays/toast-notification.d.ts +18 -0
  169. package/dist/build/types/skin/overlays/toast-notification.d.ts.map +1 -0
  170. package/dist/build/types/skin/skin-root.d.ts +80 -0
  171. package/dist/build/types/skin/skin-root.d.ts.map +1 -0
  172. package/dist/build/types/types.d.ts +41 -0
  173. package/dist/build/types/types.d.ts.map +1 -0
  174. package/dist/build/types/utils/chapters.d.ts +16 -0
  175. package/dist/build/types/utils/chapters.d.ts.map +1 -0
  176. package/dist/build/types/utils/format-duration.d.ts +9 -0
  177. package/dist/build/types/utils/format-duration.d.ts.map +1 -0
  178. package/dist/build/types/utils/format-wall-clock.d.ts +6 -0
  179. package/dist/build/types/utils/format-wall-clock.d.ts.map +1 -0
  180. package/dist/build/types/utils/settings-helpers.d.ts +41 -0
  181. package/dist/build/types/utils/settings-helpers.d.ts.map +1 -0
  182. package/dist/dev/default.js +6451 -0
  183. package/dist/dev/default.js.map +1 -0
  184. package/dist/dev/easybroadcast.js +6654 -0
  185. package/dist/dev/easybroadcast.js.map +1 -0
  186. package/dist/dev/index.html +24 -0
  187. package/dist/eb-player.css +2066 -0
  188. package/dist/players/default/default.js +400 -1
  189. package/dist/players/default/index.html +1 -5
  190. package/dist/players/forja/forja.js +310 -0
  191. package/dist/players/forja/index.html +1 -0
  192. package/dist/players/videos/equipe/EB_lequipe-preprod.js +1 -0
  193. package/dist/players/videos/equipe/EB_lequipe.js +1 -1
  194. package/dist/players/videos/equipe/equipe.js +1 -1
  195. package/dist/theme-forja.css +10 -0
  196. package/dist/theme-modern.css +520 -0
  197. package/dist/theme-radio.css +11 -0
  198. package/dist/theme-snrt.css +11 -0
  199. package/dist/theme-v2.css +661 -0
  200. package/package.json +34 -3
  201. package/dist/build/forja.js +0 -1
  202. package/dist/players/videos/equipe/EB_lequipe-preprod copy.js +0 -1
@@ -0,0 +1,520 @@
1
+ /**
2
+ * Modern theme overrides
3
+ *
4
+ * Applied when the container has [data-theme="modern"].
5
+ * Glassmorphism-inspired design with purple accent, Inter font,
6
+ * rounded corners, backdrop blur, and smooth transitions.
7
+ *
8
+ * Reference: player-reference.html
9
+ */
10
+
11
+ /* ============================================================
12
+ Google Fonts (Inter 300-600)
13
+ ============================================================ */
14
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');
15
+
16
+ /* ============================================================
17
+ Icons: override stroke-based defaults for filled Material icons
18
+ ============================================================ */
19
+ [data-theme="modern"] .eb-player .eb-icon {
20
+ fill: currentColor;
21
+ stroke: none;
22
+ stroke-width: 0;
23
+ }
24
+
25
+ /* ============================================================
26
+ Root vars & container
27
+ ============================================================ */
28
+ [data-theme="modern"] .eb-player {
29
+ --eb-color-primary: #7c3aed;
30
+ --eb-color-progress: #7c3aed;
31
+ --eb-color-background: rgba(10, 10, 20, 0.85);
32
+ --eb-accent: #1a73e8;
33
+ --eb-font-family: 'Inter', sans-serif;
34
+ font-family: 'Inter', sans-serif;
35
+ border-radius: 14px;
36
+ box-shadow: 0 40px 80px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.06);
37
+ }
38
+
39
+ /* ============================================================
40
+ Gradients
41
+ ============================================================ */
42
+ [data-theme="modern"] .eb-player .eb-top-bar {
43
+ background: linear-gradient(to bottom, rgba(0,0,0,.72), transparent);
44
+ height: 110px;
45
+ padding: 14px 16px;
46
+ gap: 6px;
47
+ }
48
+
49
+ [data-theme="modern"] .eb-player .eb-bottom-bar__gradient {
50
+ height: 150px;
51
+ background: linear-gradient(to top, rgba(0,0,0,.9), transparent);
52
+ }
53
+
54
+ /* ============================================================
55
+ Top bar: slide-in animation
56
+ ============================================================ */
57
+ [data-theme="modern"] .eb-player.eb-controls-visible .eb-top-bar {
58
+ opacity: 1;
59
+ transform: translateY(0);
60
+ transition: opacity .3s, transform .3s;
61
+ }
62
+
63
+ [data-theme="modern"] .eb-player.eb-controls-hidden .eb-top-bar {
64
+ opacity: 0;
65
+ transform: translateY(-6px);
66
+ transition: opacity .3s, transform .3s;
67
+ }
68
+
69
+ [data-theme="modern"] .eb-player .eb-top-bar__actions {
70
+ gap: 6px;
71
+ }
72
+
73
+ /* ============================================================
74
+ Bottom bar: slide-up animation + spacing
75
+ ============================================================ */
76
+ [data-theme="modern"] .eb-player .eb-bottom-bar__controls-row {
77
+ padding: 0 14px 12px;
78
+ gap: 8px;
79
+ }
80
+
81
+ [data-theme="modern"] .eb-player.eb-controls-visible .eb-bottom-bar {
82
+ opacity: 1;
83
+ transform: translateY(0);
84
+ transition: opacity .3s, transform .3s;
85
+ }
86
+
87
+ [data-theme="modern"] .eb-player.eb-controls-hidden .eb-bottom-bar {
88
+ opacity: 0;
89
+ transform: translateY(8px);
90
+ transition: opacity .3s, transform .3s;
91
+ }
92
+
93
+ /* ============================================================
94
+ Middle bar: glassmorphism circles + wider gap
95
+ ============================================================ */
96
+ [data-theme="modern"] .eb-player .eb-middle-bar {
97
+ gap: 28px;
98
+ }
99
+
100
+ /* Controls slide with bottom bar */
101
+ [data-theme="modern"] .eb-player.eb-controls-visible .eb-middle-bar {
102
+ opacity: 1;
103
+ transition: opacity .3s;
104
+ }
105
+
106
+ [data-theme="modern"] .eb-player.eb-controls-hidden .eb-middle-bar {
107
+ opacity: 0;
108
+ transition: opacity .3s;
109
+ }
110
+
111
+ [data-theme="modern"] .eb-player .eb-middle-bar__play-btn {
112
+ width: 72px;
113
+ height: 72px;
114
+ background: rgba(255,255,255,.18);
115
+ backdrop-filter: blur(6px);
116
+ -webkit-backdrop-filter: blur(6px);
117
+ border: 2px solid rgba(255,255,255,.28);
118
+ transition: background .15s;
119
+ }
120
+
121
+ [data-theme="modern"] .eb-player .eb-middle-bar__play-btn:hover {
122
+ background: rgba(255,255,255,.28);
123
+ }
124
+
125
+ [data-theme="modern"] .eb-player .eb-middle-bar__play-btn .eb-icon {
126
+ width: 30px;
127
+ height: 30px;
128
+ }
129
+
130
+ [data-theme="modern"] .eb-player .eb-middle-bar__seek-btn {
131
+ width: 52px;
132
+ height: 52px;
133
+ border-radius: 50%;
134
+ background: rgba(255,255,255,.14);
135
+ backdrop-filter: blur(6px);
136
+ -webkit-backdrop-filter: blur(6px);
137
+ border: 1.5px solid rgba(255,255,255,.22);
138
+ flex-direction: column;
139
+ align-items: center;
140
+ justify-content: center;
141
+ gap: 1px;
142
+ transition: background .15s;
143
+ padding: 0;
144
+ }
145
+
146
+ [data-theme="modern"] .eb-player .eb-middle-bar__seek-btn:hover {
147
+ background: rgba(255,255,255,.24);
148
+ }
149
+
150
+ [data-theme="modern"] .eb-player .eb-seek-circle {
151
+ width: 18px;
152
+ height: 18px;
153
+ /* Reference uses filled skip arrows instead of the stroke circle */
154
+ fill: white;
155
+ stroke: none;
156
+ }
157
+
158
+ [data-theme="modern"] .eb-player .eb-seek-label {
159
+ font-size: .58em;
160
+ font-weight: 700;
161
+ color: rgba(255,255,255,.9);
162
+ line-height: 1;
163
+ }
164
+
165
+ /* ============================================================
166
+ Buttons: rounded, softer color, scale on active
167
+ ============================================================ */
168
+ [data-theme="modern"] .eb-player .eb-button,
169
+ [data-theme="modern"] .eb-player .eb-play-pause,
170
+ [data-theme="modern"] .eb-player .eb-fullscreen,
171
+ [data-theme="modern"] .eb-player .eb-pip,
172
+ [data-theme="modern"] .eb-player .eb-cast,
173
+ [data-theme="modern"] .eb-player .eb-volume-mute,
174
+ [data-theme="modern"] .eb-player .eb-live-sync {
175
+ color: rgba(255,255,255,.82);
176
+ border-radius: 8px;
177
+ width: 38px;
178
+ height: 38px;
179
+ transition: background .15s, color .15s, transform .1s;
180
+ flex-shrink: 0;
181
+ }
182
+
183
+ [data-theme="modern"] .eb-player .eb-button:hover,
184
+ [data-theme="modern"] .eb-player .eb-play-pause:hover,
185
+ [data-theme="modern"] .eb-player .eb-fullscreen:hover,
186
+ [data-theme="modern"] .eb-player .eb-pip:hover,
187
+ [data-theme="modern"] .eb-player .eb-cast:hover,
188
+ [data-theme="modern"] .eb-player .eb-volume-mute:hover,
189
+ [data-theme="modern"] .eb-player .eb-live-sync:hover {
190
+ background: rgba(255,255,255,.12);
191
+ color: #fff;
192
+ }
193
+
194
+ [data-theme="modern"] .eb-player .eb-button:active,
195
+ [data-theme="modern"] .eb-player .eb-play-pause:active,
196
+ [data-theme="modern"] .eb-player .eb-fullscreen:active,
197
+ [data-theme="modern"] .eb-player .eb-pip:active,
198
+ [data-theme="modern"] .eb-player .eb-cast:active,
199
+ [data-theme="modern"] .eb-player .eb-volume-mute:active,
200
+ [data-theme="modern"] .eb-player .eb-live-sync:active {
201
+ transform: scale(.88);
202
+ }
203
+
204
+ /* ============================================================
205
+ Seekbar
206
+ ============================================================ */
207
+ [data-theme="modern"] .eb-player .eb-seekbar-track {
208
+ height: 3px;
209
+ background: rgba(255,255,255,.22);
210
+ border-radius: 3px;
211
+ transition: height .15s;
212
+ }
213
+
214
+ [data-theme="modern"] .eb-player .eb-seekbar:hover .eb-seekbar-track {
215
+ height: 5px;
216
+ }
217
+
218
+ [data-theme="modern"] .eb-player .eb-seekbar-buffered {
219
+ background: rgba(255,255,255,.28);
220
+ border-radius: 3px;
221
+ transition: height .15s;
222
+ }
223
+
224
+ [data-theme="modern"] .eb-player .eb-seekbar-progress {
225
+ background: linear-gradient(90deg, #a78bfa, #7c3aed);
226
+ border-radius: 3px;
227
+ transition: height .15s;
228
+ }
229
+
230
+ [data-theme="modern"] .eb-player .eb-seekbar-thumb {
231
+ width: 14px;
232
+ height: 14px;
233
+ right: -7px;
234
+ background: #fff;
235
+ box-shadow: 0 0 0 3px rgba(124,58,237,.45);
236
+ }
237
+
238
+ /* ============================================================
239
+ Seekbar tooltip & preview
240
+ ============================================================ */
241
+ [data-theme="modern"] .eb-player .eb-seekbar-tooltip {
242
+ bottom: 24px;
243
+ background: rgba(0,0,0,.82);
244
+ border-radius: 5px;
245
+ font-size: 11px;
246
+ padding: 3px 7px;
247
+ }
248
+
249
+ [data-theme="modern"] .eb-player .eb-seekbar-preview {
250
+ width: 128px;
251
+ height: 72px;
252
+ background: #111;
253
+ border: 2px solid rgba(255,255,255,.16);
254
+ border-radius: 6px;
255
+ }
256
+
257
+ /* ============================================================
258
+ Chapter markers
259
+ ============================================================ */
260
+ [data-theme="modern"] .eb-player .eb-chapter-marker {
261
+ width: 2px;
262
+ height: 7px;
263
+ background: rgba(0,0,0,.45);
264
+ border-radius: 1px;
265
+ top: 50%;
266
+ transform: translate(-50%, -50%);
267
+ }
268
+
269
+ /* ============================================================
270
+ Volume: expandable slider, white fill
271
+ ============================================================ */
272
+ [data-theme="modern"] .eb-player .eb-volume-control {
273
+ flex-direction: row;
274
+ gap: 0;
275
+ margin-right: 0;
276
+ }
277
+
278
+ [data-theme="modern"] .eb-player .eb-volume-track {
279
+ width: 0;
280
+ height: 3px;
281
+ background: rgba(255,255,255,.22);
282
+ border-radius: 3px;
283
+ overflow: hidden;
284
+ transition: width .25s ease, margin .25s ease;
285
+ margin: 0;
286
+ }
287
+
288
+ [data-theme="modern"] .eb-player .eb-volume-control:hover .eb-volume-track,
289
+ [data-theme="modern"] .eb-player .eb-volume-control:focus-within .eb-volume-track {
290
+ width: 66px;
291
+ margin: 0 6px 0 2px;
292
+ }
293
+
294
+ [data-theme="modern"] .eb-player .eb-volume-fill {
295
+ background: #fff;
296
+ }
297
+
298
+ [data-theme="modern"] .eb-player .eb-volume-thumb {
299
+ width: 11px;
300
+ height: 11px;
301
+ background: #fff;
302
+ box-shadow: 0 0 0 2px rgba(255,255,255,.35);
303
+ transform: translate(-50%, -50%) scale(0);
304
+ transition: transform .15s;
305
+ }
306
+
307
+ [data-theme="modern"] .eb-player .eb-volume-control:hover .eb-volume-thumb {
308
+ transform: translate(-50%, -50%) scale(1);
309
+ }
310
+
311
+ /* ============================================================
312
+ Time display
313
+ ============================================================ */
314
+ [data-theme="modern"] .eb-player .eb-time-display {
315
+ font-size: 12px;
316
+ color: rgba(255,255,255,.6);
317
+ letter-spacing: .02em;
318
+ }
319
+
320
+ /* ============================================================
321
+ Live badge
322
+ ============================================================ */
323
+ [data-theme="modern"] .eb-player .eb-live-sync {
324
+ width: auto;
325
+ height: auto;
326
+ padding: 4px 10px;
327
+ border-radius: 6px;
328
+ font-size: 11px;
329
+ font-weight: 700;
330
+ letter-spacing: .08em;
331
+ text-transform: uppercase;
332
+ }
333
+
334
+ [data-theme="modern"] .eb-player .eb-live-synced {
335
+ background: rgba(220,38,38,.9);
336
+ color: #fff;
337
+ box-shadow: 0 2px 8px rgba(220,38,38,.4);
338
+ }
339
+
340
+ /* ============================================================
341
+ Settings panel: glassmorphism + refined layout
342
+ ============================================================ */
343
+ [data-theme="modern"] .eb-player .eb-settings-panel {
344
+ background: rgba(10,10,20,.55);
345
+ backdrop-filter: blur(18px) saturate(160%);
346
+ -webkit-backdrop-filter: blur(18px) saturate(160%);
347
+ border-radius: 12px;
348
+ min-width: 280px;
349
+ box-shadow: 0 16px 48px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.1);
350
+ }
351
+
352
+ [data-theme="modern"] .eb-player .eb-settings-menu {
353
+ padding: 0;
354
+ }
355
+
356
+ [data-theme="modern"] .eb-player .eb-settings-category,
357
+ [data-theme="modern"] .eb-player .eb-settings-item,
358
+ [data-theme="modern"] .eb-player .eb-settings-back {
359
+ padding: 15px 20px;
360
+ font-size: 13px;
361
+ color: rgba(255,255,255,.9);
362
+ border-bottom: 1px solid rgba(255,255,255,.06);
363
+ transition: background .12s;
364
+ }
365
+
366
+ [data-theme="modern"] .eb-player .eb-settings-category:last-child,
367
+ [data-theme="modern"] .eb-player .eb-settings-item:last-child {
368
+ border-bottom: none;
369
+ }
370
+
371
+ [data-theme="modern"] .eb-player .eb-settings-category:hover,
372
+ [data-theme="modern"] .eb-player .eb-settings-item:hover,
373
+ [data-theme="modern"] .eb-player .eb-settings-back:hover {
374
+ background: rgba(255,255,255,.05);
375
+ }
376
+
377
+ [data-theme="modern"] .eb-player .eb-settings-item--selected {
378
+ color: #fff;
379
+ font-weight: 500;
380
+ }
381
+
382
+ /* Active selection dot */
383
+ [data-theme="modern"] .eb-player .eb-settings-item--selected::after {
384
+ content: '';
385
+ width: 10px;
386
+ height: 10px;
387
+ border-radius: 50%;
388
+ background: #1a73e8;
389
+ box-shadow: 0 0 0 3px rgba(26,115,232,.25);
390
+ flex-shrink: 0;
391
+ }
392
+
393
+ /* Non-selected items: hollow dot */
394
+ [data-theme="modern"] .eb-player .eb-settings-item:not(.eb-settings-item--selected)::after {
395
+ content: '';
396
+ width: 10px;
397
+ height: 10px;
398
+ border-radius: 50%;
399
+ border: 2px solid rgba(255,255,255,.2);
400
+ flex-shrink: 0;
401
+ }
402
+
403
+ /* Sub-panel back button */
404
+ [data-theme="modern"] .eb-player .eb-settings-back {
405
+ gap: 14px;
406
+ font-weight: 600;
407
+ }
408
+
409
+ /* ============================================================
410
+ Loading spinner
411
+ ============================================================ */
412
+ [data-theme="modern"] .eb-player .eb-loading .eb-icon {
413
+ color: rgba(255,255,255,.7);
414
+ }
415
+
416
+ /* ============================================================
417
+ Error overlay
418
+ ============================================================ */
419
+ [data-theme="modern"] .eb-player .eb-error {
420
+ background: rgba(10,10,20,.85);
421
+ backdrop-filter: blur(12px);
422
+ -webkit-backdrop-filter: blur(12px);
423
+ }
424
+
425
+ [data-theme="modern"] .eb-player .eb-error-retry {
426
+ border-radius: 8px;
427
+ background: rgba(255,255,255,.1);
428
+ border-color: rgba(255,255,255,.15);
429
+ transition: background .2s, color .2s;
430
+ }
431
+
432
+ [data-theme="modern"] .eb-player .eb-error-retry:hover {
433
+ background: rgba(255,255,255,.18);
434
+ }
435
+
436
+ /* ============================================================
437
+ Toast
438
+ ============================================================ */
439
+ [data-theme="modern"] .eb-player .eb-toast {
440
+ background: rgba(0,0,0,.72);
441
+ backdrop-filter: blur(10px);
442
+ -webkit-backdrop-filter: blur(10px);
443
+ border-radius: 10px;
444
+ font-size: 13px;
445
+ }
446
+
447
+ /* ============================================================
448
+ Info & socials overlays
449
+ ============================================================ */
450
+ [data-theme="modern"] .eb-player .eb-info-overlay,
451
+ [data-theme="modern"] .eb-player .eb-socials-overlay {
452
+ background: rgba(10,10,20,.85);
453
+ backdrop-filter: blur(12px);
454
+ -webkit-backdrop-filter: blur(12px);
455
+ }
456
+
457
+ [data-theme="modern"] .eb-player .eb-info-close,
458
+ [data-theme="modern"] .eb-player .eb-socials-close {
459
+ border-radius: 8px;
460
+ background: rgba(255,255,255,.07);
461
+ border-color: rgba(255,255,255,.08);
462
+ transition: background .2s, color .2s;
463
+ }
464
+
465
+ [data-theme="modern"] .eb-player .eb-info-close:hover,
466
+ [data-theme="modern"] .eb-player .eb-socials-close:hover {
467
+ background: rgba(255,255,255,.13);
468
+ color: #fff;
469
+ }
470
+
471
+ [data-theme="modern"] .eb-player .eb-socials-link {
472
+ background: rgba(255,255,255,.07);
473
+ border: 1px solid rgba(255,255,255,.08);
474
+ border-radius: 8px;
475
+ transition: background .2s, color .2s;
476
+ }
477
+
478
+ [data-theme="modern"] .eb-player .eb-socials-link:hover {
479
+ background: rgba(167,139,250,.15);
480
+ border-color: rgba(167,139,250,.35);
481
+ color: #c4b5fd;
482
+ }
483
+
484
+ /* ============================================================
485
+ Bottom bar: two-row layout (seekbar above, buttons below)
486
+ ============================================================ */
487
+ [data-theme="modern"] .eb-player .eb-bottom-bar__controls-row {
488
+ flex-wrap: wrap;
489
+ }
490
+
491
+ /* Seekbar fills full width as its own row */
492
+ [data-theme="modern"] .eb-player .eb-bottom-bar__seekbar-zone {
493
+ flex: none;
494
+ width: 100%;
495
+ order: -1;
496
+ margin-bottom: -6px;
497
+ }
498
+
499
+ /* Time display sits before seekbar visually (after live badge) */
500
+ [data-theme="modern"] .eb-player .eb-slot-time {
501
+ order: -1;
502
+ margin-left: auto;
503
+ }
504
+
505
+ /* Live sync badge before time */
506
+ [data-theme="modern"] .eb-player .eb-slot-live-sync {
507
+ order: -2;
508
+ }
509
+
510
+ /* Move settings + pip to right end of control row */
511
+ [data-theme="modern"] .eb-player .eb-slot-settings {
512
+ margin-left: auto;
513
+ }
514
+
515
+ /* ============================================================
516
+ Poster
517
+ ============================================================ */
518
+ [data-theme="modern"] .eb-player .eb-poster {
519
+ background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);
520
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Radio theme overrides
3
+ *
4
+ * Applied when the container has [data-theme="radio"].
5
+ * Uses higher specificity than base.css .eb-player selector.
6
+ */
7
+
8
+ [data-theme="radio"] .eb-player {
9
+ --eb-color-primary: #F4A261;
10
+ --eb-color-background: rgba(20, 20, 30, 0.95);
11
+ }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SNRT theme overrides
3
+ *
4
+ * Applied when the container has [data-theme="snrt"].
5
+ * Uses higher specificity than base.css .eb-player selector.
6
+ */
7
+
8
+ [data-theme="snrt"] .eb-player {
9
+ --eb-color-primary: #006633;
10
+ --eb-color-background: rgba(0, 0, 0, 0.9);
11
+ }
@@ -0,0 +1 @@
1
+