vidply 1.2.0 → 1.2.3

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 (167) hide show
  1. package/README.md +974 -946
  2. package/dist/dev/{vidply.AudioDescriptionManager-R47Q4YR4.js → vidply.AudioDescriptionManager-JYYLK5KB.js} +275 -19
  3. package/dist/dev/vidply.AudioDescriptionManager-JYYLK5KB.js.map +7 -0
  4. package/dist/dev/{vidply.CaptionStyleMenu-7XHRBWUM.js → vidply.CaptionStyleMenu-47RCKQF5.js} +4 -4
  5. package/dist/dev/{vidply.DASHRenderer-PWEMC3BT.js → vidply.DASHRenderer-VEJ4HDHO.js} +3 -3
  6. package/dist/dev/vidply.DASHRenderer-VEJ4HDHO.js.map +7 -0
  7. package/dist/dev/{vidply.FloatingPlayerManager-PKNNNAS2.js → vidply.FloatingPlayerManager-C2UVRPZY.js} +5 -5
  8. package/dist/dev/vidply.FloatingPlayerManager-C2UVRPZY.js.map +7 -0
  9. package/dist/dev/{vidply.HLSRenderer-E7RQ74HI.js → vidply.HLSRenderer-ZVBK2TNQ.js} +4 -4
  10. package/dist/dev/vidply.HLSRenderer-ZVBK2TNQ.js.map +7 -0
  11. package/dist/dev/vidply.HTML5Renderer-HLRQUOCU.js +12 -0
  12. package/dist/dev/{vidply.SignLanguageManager-FET5FQZ7.js → vidply.SignLanguageManager-FLUCBW5H.js} +8 -8
  13. package/dist/dev/vidply.SignLanguageManager-FLUCBW5H.js.map +7 -0
  14. package/dist/dev/{vidply.SoundCloudRenderer-RVSJZODO.js → vidply.SoundCloudRenderer-MGMAJ7NK.js} +3 -3
  15. package/dist/dev/vidply.SoundCloudRenderer-MGMAJ7NK.js.map +7 -0
  16. package/dist/dev/{vidply.TranscriptManager-5GXOQCLX.js → vidply.TranscriptManager-Y2RYXHJW.js} +10 -10
  17. package/dist/dev/vidply.TranscriptManager-Y2RYXHJW.js.map +7 -0
  18. package/dist/dev/{vidply.VimeoRenderer-ER2LSBBW.js → vidply.VimeoRenderer-RQFQD7OE.js} +3 -3
  19. package/dist/dev/vidply.VimeoRenderer-RQFQD7OE.js.map +7 -0
  20. package/dist/dev/{vidply.YouTubeRenderer-NFTOWJAB.js → vidply.YouTubeRenderer-EU2BARZF.js} +3 -3
  21. package/dist/dev/vidply.YouTubeRenderer-EU2BARZF.js.map +7 -0
  22. package/dist/dev/{vidply.chunk-BNFIUL2Z.js → vidply.chunk-6LYZYI5G.js} +3 -3
  23. package/dist/dev/vidply.chunk-6LYZYI5G.js.map +7 -0
  24. package/dist/dev/{vidply.chunk-NQPURMQY.js → vidply.chunk-A4ESEOQ2.js} +6 -6
  25. package/dist/dev/vidply.chunk-A4ESEOQ2.js.map +7 -0
  26. package/dist/dev/{vidply.chunk-W25HUCHS.js → vidply.chunk-CGYIED2I.js} +2 -2
  27. package/dist/dev/vidply.chunk-CGYIED2I.js.map +7 -0
  28. package/dist/dev/{vidply.chunk-SK4V2DAU.js → vidply.chunk-HZ7UOKOU.js} +3 -3
  29. package/dist/dev/{vidply.chunk-RZWZGDV7.js → vidply.chunk-I6EDRYGJ.js} +33 -6
  30. package/dist/dev/vidply.chunk-I6EDRYGJ.js.map +7 -0
  31. package/dist/dev/{vidply.chunk-64WXMTGL.js → vidply.chunk-JKMQGLCJ.js} +5 -5
  32. package/dist/dev/vidply.chunk-JKMQGLCJ.js.map +7 -0
  33. package/dist/dev/{vidply.chunk-DZSDO3B7.js → vidply.chunk-JZNZX32Z.js} +2 -2
  34. package/dist/dev/{vidply.chunk-VMSQAZM7.js → vidply.chunk-P25MRJ6O.js} +2 -2
  35. package/dist/dev/{vidply.chunk-6RQA4ROD.js → vidply.chunk-PRFNESYA.js} +2 -2
  36. package/dist/dev/{vidply.chunk-KI7C3QVL.js → vidply.chunk-UI3RYCVF.js} +4 -3
  37. package/dist/dev/vidply.chunk-UI3RYCVF.js.map +7 -0
  38. package/dist/dev/{vidply.chunk-JJ47NO24.js → vidply.chunk-UNFGMABP.js} +2 -2
  39. package/dist/dev/vidply.chunk-UNFGMABP.js.map +7 -0
  40. package/dist/dev/{vidply.de-4YAT7FFM.js → vidply.de-VAUVSQXC.js} +29 -2
  41. package/dist/dev/vidply.de-VAUVSQXC.js.map +7 -0
  42. package/dist/dev/{vidply.es-LEWIRUBH.js → vidply.es-G65HFWO6.js} +29 -2
  43. package/dist/dev/vidply.es-G65HFWO6.js.map +7 -0
  44. package/dist/dev/vidply.esm.js +648 -35
  45. package/dist/dev/vidply.esm.js.map +3 -3
  46. package/dist/dev/{vidply.fr-Q4GV2NOE.js → vidply.fr-MJNOZELM.js} +29 -2
  47. package/dist/dev/vidply.fr-MJNOZELM.js.map +7 -0
  48. package/dist/dev/{vidply.ja-S6ITA6WU.js → vidply.ja-INMDHIYJ.js} +29 -2
  49. package/dist/dev/vidply.ja-INMDHIYJ.js.map +7 -0
  50. package/dist/legacy/vidply.js +1062 -34
  51. package/dist/legacy/vidply.js.map +3 -3
  52. package/dist/legacy/vidply.min.js +2 -2
  53. package/dist/legacy/vidply.min.meta.json +127 -55
  54. package/dist/prod/vidply.AudioDescriptionManager-EKWUNOPE.min.js +6 -0
  55. package/dist/prod/{vidply.CaptionStyleMenu-M3KVQWB5.min.js → vidply.CaptionStyleMenu-JTWSNHRQ.min.js} +2 -2
  56. package/dist/prod/{vidply.DASHRenderer-DN3S27AV.min.js → vidply.DASHRenderer-CIDAHFWM.min.js} +2 -2
  57. package/dist/prod/{vidply.FloatingPlayerManager-SKAZ4J43.min.js → vidply.FloatingPlayerManager-VZXHPCPM.min.js} +2 -2
  58. package/dist/prod/{vidply.HLSRenderer-62HH4YTK.min.js → vidply.HLSRenderer-Q6EFYKID.min.js} +2 -2
  59. package/dist/prod/vidply.HTML5Renderer-XRDJUTOO.min.js +6 -0
  60. package/dist/prod/{vidply.SignLanguageManager-V3OBTSSF.min.js → vidply.SignLanguageManager-JUOSA5AM.min.js} +2 -2
  61. package/dist/prod/{vidply.SoundCloudRenderer-CXRVZIAJ.min.js → vidply.SoundCloudRenderer-7ODD46PO.min.js} +2 -2
  62. package/dist/prod/{vidply.TranscriptManager-SYM3DFUY.min.js → vidply.TranscriptManager-4B2QKYGQ.min.js} +2 -2
  63. package/dist/prod/{vidply.VimeoRenderer-72TWRYFQ.min.js → vidply.VimeoRenderer-MR3UYLY7.min.js} +2 -2
  64. package/dist/prod/{vidply.YouTubeRenderer-UMHEV3KD.min.js → vidply.YouTubeRenderer-ITRTC7NR.min.js} +2 -2
  65. package/dist/prod/{vidply.chunk-YEENJS3Q.min.js → vidply.chunk-3EEDXU4T.min.js} +2 -2
  66. package/dist/prod/{vidply.chunk-P4UXOHWA.min.js → vidply.chunk-5HTX5QXW.min.js} +1 -1
  67. package/dist/prod/{vidply.chunk-ABPXVDLZ.min.js → vidply.chunk-6OGHHIYP.min.js} +2 -2
  68. package/dist/prod/{vidply.chunk-UK7YGOB5.min.js → vidply.chunk-GUPGMFUZ.min.js} +2 -2
  69. package/dist/prod/{vidply.chunk-WX3MVEAL.min.js → vidply.chunk-MWEBITCP.min.js} +1 -1
  70. package/dist/prod/{vidply.chunk-2TB6MUHO.min.js → vidply.chunk-PL3P3JHR.min.js} +1 -1
  71. package/dist/prod/{vidply.chunk-EKEYJWMG.min.js → vidply.chunk-QQZGV7TD.min.js} +2 -2
  72. package/dist/prod/{vidply.chunk-Z3YDSA7O.min.js → vidply.chunk-U5IRRYG5.min.js} +1 -1
  73. package/dist/prod/{vidply.chunk-TM6AXJVD.min.js → vidply.chunk-VKHV4QHA.min.js} +2 -2
  74. package/dist/prod/{vidply.chunk-P3PQBY7N.min.js → vidply.chunk-XA4M574A.min.js} +1 -1
  75. package/dist/prod/{vidply.chunk-RI3X7WHK.min.js → vidply.chunk-ZPTV4JEP.min.js} +2 -2
  76. package/dist/prod/{vidply.de-BCHXRQ53.min.js → vidply.de-UZHFCEZU.min.js} +2 -2
  77. package/dist/prod/{vidply.es-PICAKMZD.min.js → vidply.es-BOISUV2S.min.js} +2 -2
  78. package/dist/prod/vidply.esm.min.js +2 -2
  79. package/dist/prod/{vidply.fr-ZILI7CDR.min.js → vidply.fr-ICSMKPFM.min.js} +2 -2
  80. package/dist/prod/{vidply.ja-5WQ4OK4J.min.js → vidply.ja-VQ2HKGAY.min.js} +2 -2
  81. package/dist/vidply.css +5852 -5796
  82. package/dist/vidply.esm.min.meta.json +204 -149
  83. package/dist/vidply.min.css +1 -1
  84. package/package.json +11 -11
  85. package/src/controls/CaptionManager.ts +598 -598
  86. package/src/controls/ControlBar.ts +4191 -4159
  87. package/src/controls/KeyboardHelp.ts +326 -0
  88. package/src/controls/KeyboardManager.ts +387 -383
  89. package/src/controls/SettingsDialog.ts +488 -488
  90. package/src/controls/TranscriptManager.ts +2426 -2426
  91. package/src/core/AudioDescriptionManager.ts +863 -774
  92. package/src/core/DescriptionSpeechManager.ts +232 -0
  93. package/src/core/FloatingPlayerManager.ts +674 -674
  94. package/src/core/LazyInit.ts +80 -80
  95. package/src/core/MediaSessionManager.ts +341 -0
  96. package/src/core/MetadataAlertsManager.ts +514 -514
  97. package/src/core/Player.ts +2973 -2872
  98. package/src/core/PosterManager.ts +169 -169
  99. package/src/core/PseudoFullscreen.ts +179 -179
  100. package/src/core/ResponsiveManager.ts +231 -231
  101. package/src/core/ResumeManager.ts +236 -236
  102. package/src/core/SignLanguageManager.ts +1308 -1308
  103. package/src/core/ThemeManager.ts +157 -157
  104. package/src/features/PlaylistManager.ts +1838 -1827
  105. package/src/i18n/i18n.ts +223 -223
  106. package/src/i18n/languages/de.ts +244 -217
  107. package/src/i18n/languages/en.ts +245 -218
  108. package/src/i18n/languages/es.ts +241 -214
  109. package/src/i18n/languages/fr.ts +241 -214
  110. package/src/i18n/languages/ja.ts +241 -214
  111. package/src/icons/Icons.ts +168 -167
  112. package/src/index.ts +196 -193
  113. package/src/renderers/DASHRenderer.ts +1077 -1077
  114. package/src/renderers/HLSRenderer.ts +944 -944
  115. package/src/renderers/HTML5Renderer.ts +389 -389
  116. package/src/renderers/SoundCloudRenderer.ts +437 -437
  117. package/src/renderers/VimeoRenderer.ts +298 -298
  118. package/src/renderers/YouTubeRenderer.ts +290 -290
  119. package/src/styles/vidply.css +5852 -5796
  120. package/src/types/events.ts +128 -122
  121. package/src/types/globals.d.ts +313 -313
  122. package/src/types/options.ts +199 -182
  123. package/src/types/renderer.ts +58 -58
  124. package/src/utils/DOMUtils.ts +281 -281
  125. package/src/utils/DownloadInfo.ts +171 -171
  126. package/src/utils/DraggablePanel.ts +539 -539
  127. package/src/utils/DraggablePanelMenu.ts +195 -195
  128. package/src/utils/DraggableResizable.ts +997 -997
  129. package/src/utils/EventEmitter.ts +59 -59
  130. package/src/utils/FormUtils.ts +95 -95
  131. package/src/utils/MenuFactory.ts +483 -483
  132. package/src/utils/Sanitize.ts +70 -70
  133. package/src/utils/SettingsMenuFactory.ts +289 -289
  134. package/src/utils/StorageManager.ts +287 -287
  135. package/src/utils/TrackLabelUtils.ts +52 -52
  136. package/src/utils/UrlSafe.ts +69 -69
  137. package/src/utils/VideoFrameCapture.ts +114 -114
  138. package/src/utils/WindowComponents.ts +250 -250
  139. package/dist/dev/vidply.AudioDescriptionManager-R47Q4YR4.js.map +0 -7
  140. package/dist/dev/vidply.DASHRenderer-PWEMC3BT.js.map +0 -7
  141. package/dist/dev/vidply.FloatingPlayerManager-PKNNNAS2.js.map +0 -7
  142. package/dist/dev/vidply.HLSRenderer-E7RQ74HI.js.map +0 -7
  143. package/dist/dev/vidply.HTML5Renderer-BU4QJJJY.js +0 -12
  144. package/dist/dev/vidply.SignLanguageManager-FET5FQZ7.js.map +0 -7
  145. package/dist/dev/vidply.SoundCloudRenderer-RVSJZODO.js.map +0 -7
  146. package/dist/dev/vidply.TranscriptManager-5GXOQCLX.js.map +0 -7
  147. package/dist/dev/vidply.VimeoRenderer-ER2LSBBW.js.map +0 -7
  148. package/dist/dev/vidply.YouTubeRenderer-NFTOWJAB.js.map +0 -7
  149. package/dist/dev/vidply.chunk-64WXMTGL.js.map +0 -7
  150. package/dist/dev/vidply.chunk-BNFIUL2Z.js.map +0 -7
  151. package/dist/dev/vidply.chunk-JJ47NO24.js.map +0 -7
  152. package/dist/dev/vidply.chunk-KI7C3QVL.js.map +0 -7
  153. package/dist/dev/vidply.chunk-NQPURMQY.js.map +0 -7
  154. package/dist/dev/vidply.chunk-RZWZGDV7.js.map +0 -7
  155. package/dist/dev/vidply.chunk-W25HUCHS.js.map +0 -7
  156. package/dist/dev/vidply.de-4YAT7FFM.js.map +0 -7
  157. package/dist/dev/vidply.es-LEWIRUBH.js.map +0 -7
  158. package/dist/dev/vidply.fr-Q4GV2NOE.js.map +0 -7
  159. package/dist/dev/vidply.ja-S6ITA6WU.js.map +0 -7
  160. package/dist/prod/vidply.AudioDescriptionManager-RHLIJW5C.min.js +0 -6
  161. package/dist/prod/vidply.HTML5Renderer-IU5T3WEW.min.js +0 -6
  162. /package/dist/dev/{vidply.CaptionStyleMenu-7XHRBWUM.js.map → vidply.CaptionStyleMenu-47RCKQF5.js.map} +0 -0
  163. /package/dist/dev/{vidply.HTML5Renderer-BU4QJJJY.js.map → vidply.HTML5Renderer-HLRQUOCU.js.map} +0 -0
  164. /package/dist/dev/{vidply.chunk-SK4V2DAU.js.map → vidply.chunk-HZ7UOKOU.js.map} +0 -0
  165. /package/dist/dev/{vidply.chunk-DZSDO3B7.js.map → vidply.chunk-JZNZX32Z.js.map} +0 -0
  166. /package/dist/dev/{vidply.chunk-VMSQAZM7.js.map → vidply.chunk-P25MRJ6O.js.map} +0 -0
  167. /package/dist/dev/{vidply.chunk-6RQA4ROD.js.map → vidply.chunk-PRFNESYA.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "inputs": {
3
3
  "src/utils/EventEmitter.ts": {
4
- "bytes": 1975,
4
+ "bytes": 1916,
5
5
  "imports": [
6
6
  {
7
7
  "path": "<runtime>",
@@ -12,32 +12,32 @@
12
12
  "format": "esm"
13
13
  },
14
14
  "src/utils/DOMUtils.ts": {
15
- "bytes": 9276,
15
+ "bytes": 8995,
16
16
  "imports": [],
17
17
  "format": "esm"
18
18
  },
19
19
  "src/i18n/languages/en.ts": {
20
- "bytes": 9107,
20
+ "bytes": 9667,
21
21
  "imports": [],
22
22
  "format": "esm"
23
23
  },
24
24
  "src/i18n/languages/de.ts": {
25
- "bytes": 11202,
25
+ "bytes": 11913,
26
26
  "imports": [],
27
27
  "format": "esm"
28
28
  },
29
29
  "src/i18n/languages/es.ts": {
30
- "bytes": 10250,
30
+ "bytes": 10878,
31
31
  "imports": [],
32
32
  "format": "esm"
33
33
  },
34
34
  "src/i18n/languages/fr.ts": {
35
- "bytes": 10571,
35
+ "bytes": 11215,
36
36
  "imports": [],
37
37
  "format": "esm"
38
38
  },
39
39
  "src/i18n/languages/ja.ts": {
40
- "bytes": 11054,
40
+ "bytes": 11778,
41
41
  "imports": [],
42
42
  "format": "esm"
43
43
  },
@@ -73,12 +73,12 @@
73
73
  "format": "esm"
74
74
  },
75
75
  "src/utils/Sanitize.ts": {
76
- "bytes": 2816,
76
+ "bytes": 2746,
77
77
  "imports": [],
78
78
  "format": "esm"
79
79
  },
80
80
  "src/i18n/i18n.ts": {
81
- "bytes": 7833,
81
+ "bytes": 7610,
82
82
  "imports": [
83
83
  {
84
84
  "path": "src/i18n/translations.ts",
@@ -110,7 +110,7 @@
110
110
  "format": "esm"
111
111
  },
112
112
  "src/icons/Icons.ts": {
113
- "bytes": 13659,
113
+ "bytes": 13759,
114
114
  "imports": [],
115
115
  "format": "esm"
116
116
  },
@@ -125,12 +125,12 @@
125
125
  "format": "esm"
126
126
  },
127
127
  "src/utils/VideoFrameCapture.ts": {
128
- "bytes": 3564,
128
+ "bytes": 3450,
129
129
  "imports": [],
130
130
  "format": "esm"
131
131
  },
132
132
  "src/utils/DownloadInfo.ts": {
133
- "bytes": 5039,
133
+ "bytes": 4868,
134
134
  "imports": [],
135
135
  "format": "esm"
136
136
  },
@@ -156,7 +156,7 @@
156
156
  "format": "esm"
157
157
  },
158
158
  "src/controls/ControlBar.ts": {
159
- "bytes": 175580,
159
+ "bytes": 172626,
160
160
  "imports": [
161
161
  {
162
162
  "path": "src/utils/DOMUtils.ts",
@@ -212,7 +212,7 @@
212
212
  "format": "esm"
213
213
  },
214
214
  "src/utils/StorageManager.ts": {
215
- "bytes": 9701,
215
+ "bytes": 9414,
216
216
  "imports": [
217
217
  {
218
218
  "path": "src/utils/Sanitize.ts",
@@ -228,7 +228,7 @@
228
228
  "format": "esm"
229
229
  },
230
230
  "src/utils/TrackLabelUtils.ts": {
231
- "bytes": 2045,
231
+ "bytes": 1993,
232
232
  "imports": [
233
233
  {
234
234
  "path": "src/i18n/i18n.ts",
@@ -239,7 +239,7 @@
239
239
  "format": "esm"
240
240
  },
241
241
  "src/controls/CaptionManager.ts": {
242
- "bytes": 23893,
242
+ "bytes": 23295,
243
243
  "imports": [
244
244
  {
245
245
  "path": "src/utils/DOMUtils.ts",
@@ -275,7 +275,7 @@
275
275
  "format": "esm"
276
276
  },
277
277
  "src/controls/KeyboardManager.ts": {
278
- "bytes": 13750,
278
+ "bytes": 13450,
279
279
  "imports": [
280
280
  {
281
281
  "path": "src/i18n/i18n.ts",
@@ -295,8 +295,19 @@
295
295
  ],
296
296
  "format": "esm"
297
297
  },
298
+ "src/core/MediaSessionManager.ts": {
299
+ "bytes": 9974,
300
+ "imports": [
301
+ {
302
+ "path": "<runtime>",
303
+ "kind": "import-statement",
304
+ "external": true
305
+ }
306
+ ],
307
+ "format": "esm"
308
+ },
298
309
  "src/renderers/HTML5Renderer.ts": {
299
- "bytes": 12499,
310
+ "bytes": 12110,
300
311
  "imports": [
301
312
  {
302
313
  "path": "<runtime>",
@@ -307,17 +318,17 @@
307
318
  "format": "esm"
308
319
  },
309
320
  "src/utils/UrlSafe.ts": {
310
- "bytes": 2722,
321
+ "bytes": 2653,
311
322
  "imports": [],
312
323
  "format": "esm"
313
324
  },
314
325
  "src/core/LazyInit.ts": {
315
- "bytes": 2574,
326
+ "bytes": 2494,
316
327
  "imports": [],
317
328
  "format": "esm"
318
329
  },
319
330
  "src/core/PseudoFullscreen.ts": {
320
- "bytes": 7117,
331
+ "bytes": 6938,
321
332
  "imports": [
322
333
  {
323
334
  "path": "<runtime>",
@@ -328,7 +339,7 @@
328
339
  "format": "esm"
329
340
  },
330
341
  "src/core/ThemeManager.ts": {
331
- "bytes": 5729,
342
+ "bytes": 5572,
332
343
  "imports": [
333
344
  {
334
345
  "path": "src/utils/Sanitize.ts",
@@ -344,7 +355,7 @@
344
355
  "format": "esm"
345
356
  },
346
357
  "src/core/PosterManager.ts": {
347
- "bytes": 6038,
358
+ "bytes": 5869,
348
359
  "imports": [
349
360
  {
350
361
  "path": "src/utils/VideoFrameCapture.ts",
@@ -360,7 +371,7 @@
360
371
  "format": "esm"
361
372
  },
362
373
  "src/core/ResumeManager.ts": {
363
- "bytes": 7926,
374
+ "bytes": 7690,
364
375
  "imports": [
365
376
  {
366
377
  "path": "src/utils/DOMUtils.ts",
@@ -386,7 +397,7 @@
386
397
  "format": "esm"
387
398
  },
388
399
  "src/core/ResponsiveManager.ts": {
389
- "bytes": 9145,
400
+ "bytes": 8914,
390
401
  "imports": [
391
402
  {
392
403
  "path": "src/core/PseudoFullscreen.ts",
@@ -402,7 +413,7 @@
402
413
  "format": "esm"
403
414
  },
404
415
  "src/core/MetadataAlertsManager.ts": {
405
- "bytes": 18623,
416
+ "bytes": 18109,
406
417
  "imports": [
407
418
  {
408
419
  "path": "src/utils/PerformanceUtils.ts",
@@ -417,14 +428,56 @@
417
428
  ],
418
429
  "format": "esm"
419
430
  },
431
+ "src/controls/KeyboardHelp.ts": {
432
+ "bytes": 9961,
433
+ "imports": [
434
+ {
435
+ "path": "src/utils/DOMUtils.ts",
436
+ "kind": "import-statement",
437
+ "original": "../utils/DOMUtils.js"
438
+ },
439
+ {
440
+ "path": "src/icons/Icons.ts",
441
+ "kind": "import-statement",
442
+ "original": "../icons/Icons.js"
443
+ },
444
+ {
445
+ "path": "src/i18n/i18n.ts",
446
+ "kind": "import-statement",
447
+ "original": "../i18n/i18n.js"
448
+ },
449
+ {
450
+ "path": "<runtime>",
451
+ "kind": "import-statement",
452
+ "external": true
453
+ }
454
+ ],
455
+ "format": "esm"
456
+ },
457
+ "src/core/DescriptionSpeechManager.ts": {
458
+ "bytes": 6702,
459
+ "imports": [
460
+ {
461
+ "path": "<runtime>",
462
+ "kind": "import-statement",
463
+ "external": true
464
+ }
465
+ ],
466
+ "format": "esm"
467
+ },
420
468
  "src/core/AudioDescriptionManager.ts": {
421
- "bytes": 30638,
469
+ "bytes": 32816,
422
470
  "imports": [
423
471
  {
424
472
  "path": "src/controls/CaptionManager.ts",
425
473
  "kind": "import-statement",
426
474
  "original": "../controls/CaptionManager.js"
427
475
  },
476
+ {
477
+ "path": "src/core/DescriptionSpeechManager.ts",
478
+ "kind": "import-statement",
479
+ "original": "./DescriptionSpeechManager.js"
480
+ },
428
481
  {
429
482
  "path": "<runtime>",
430
483
  "kind": "import-statement",
@@ -434,7 +487,7 @@
434
487
  "format": "esm"
435
488
  },
436
489
  "src/utils/DraggableResizable.ts": {
437
- "bytes": 33702,
490
+ "bytes": 32705,
438
491
  "imports": [
439
492
  {
440
493
  "path": "<runtime>",
@@ -445,7 +498,7 @@
445
498
  "format": "esm"
446
499
  },
447
500
  "src/utils/FormUtils.ts": {
448
- "bytes": 2379,
501
+ "bytes": 2284,
449
502
  "imports": [
450
503
  {
451
504
  "path": "src/utils/DOMUtils.ts",
@@ -492,12 +545,12 @@
492
545
  "format": "esm"
493
546
  },
494
547
  "src/utils/DraggablePanelMenu.ts": {
495
- "bytes": 7637,
548
+ "bytes": 7442,
496
549
  "imports": [],
497
550
  "format": "esm"
498
551
  },
499
552
  "src/utils/DraggablePanel.ts": {
500
- "bytes": 18513,
553
+ "bytes": 17974,
501
554
  "imports": [
502
555
  {
503
556
  "path": "src/utils/DOMUtils.ts",
@@ -528,7 +581,7 @@
528
581
  "format": "esm"
529
582
  },
530
583
  "src/core/SignLanguageManager.ts": {
531
- "bytes": 50115,
584
+ "bytes": 48807,
532
585
  "imports": [
533
586
  {
534
587
  "path": "src/utils/DOMUtils.ts",
@@ -569,7 +622,7 @@
569
622
  "format": "esm"
570
623
  },
571
624
  "src/core/FloatingPlayerManager.ts": {
572
- "bytes": 26582,
625
+ "bytes": 25908,
573
626
  "imports": [
574
627
  {
575
628
  "path": "src/utils/DOMUtils.ts",
@@ -600,7 +653,7 @@
600
653
  "format": "esm"
601
654
  },
602
655
  "src/controls/TranscriptManager.ts": {
603
- "bytes": 91285,
656
+ "bytes": 88859,
604
657
  "imports": [
605
658
  {
606
659
  "path": "src/utils/DOMUtils.ts",
@@ -671,7 +724,7 @@
671
724
  "format": "esm"
672
725
  },
673
726
  "src/renderers/YouTubeRenderer.ts": {
674
- "bytes": 8595,
727
+ "bytes": 8305,
675
728
  "imports": [
676
729
  {
677
730
  "path": "src/utils/ScriptLoader.ts",
@@ -687,7 +740,7 @@
687
740
  "format": "esm"
688
741
  },
689
742
  "src/renderers/VimeoRenderer.ts": {
690
- "bytes": 8670,
743
+ "bytes": 8372,
691
744
  "imports": [
692
745
  {
693
746
  "path": "src/utils/ScriptLoader.ts",
@@ -703,7 +756,7 @@
703
756
  "format": "esm"
704
757
  },
705
758
  "src/renderers/HLSRenderer.ts": {
706
- "bytes": 34651,
759
+ "bytes": 33707,
707
760
  "imports": [
708
761
  {
709
762
  "path": "src/utils/ScriptLoader.ts",
@@ -724,7 +777,7 @@
724
777
  "format": "esm"
725
778
  },
726
779
  "src/renderers/DASHRenderer.ts": {
727
- "bytes": 38277,
780
+ "bytes": 37200,
728
781
  "imports": [
729
782
  {
730
783
  "path": "src/utils/ScriptLoader.ts",
@@ -740,7 +793,7 @@
740
793
  "format": "esm"
741
794
  },
742
795
  "src/renderers/SoundCloudRenderer.ts": {
743
- "bytes": 13734,
796
+ "bytes": 13297,
744
797
  "imports": [
745
798
  {
746
799
  "path": "src/utils/ScriptLoader.ts",
@@ -756,7 +809,7 @@
756
809
  "format": "esm"
757
810
  },
758
811
  "src/core/Player.ts": {
759
- "bytes": 104259,
812
+ "bytes": 104630,
760
813
  "imports": [
761
814
  {
762
815
  "path": "src/utils/EventEmitter.ts",
@@ -783,6 +836,11 @@
783
836
  "kind": "import-statement",
784
837
  "original": "../controls/KeyboardManager.js"
785
838
  },
839
+ {
840
+ "path": "src/core/MediaSessionManager.ts",
841
+ "kind": "import-statement",
842
+ "original": "./MediaSessionManager.js"
843
+ },
786
844
  {
787
845
  "path": "src/renderers/HTML5Renderer.ts",
788
846
  "kind": "import-statement",
@@ -853,6 +911,11 @@
853
911
  "kind": "import-statement",
854
912
  "original": "./MetadataAlertsManager.js"
855
913
  },
914
+ {
915
+ "path": "src/controls/KeyboardHelp.ts",
916
+ "kind": "import-statement",
917
+ "original": "../controls/KeyboardHelp.js"
918
+ },
856
919
  {
857
920
  "path": "src/core/AudioDescriptionManager.ts",
858
921
  "kind": "dynamic-import",
@@ -907,7 +970,7 @@
907
970
  "format": "esm"
908
971
  },
909
972
  "src/features/PlaylistManager.ts": {
910
- "bytes": 64639,
973
+ "bytes": 63309,
911
974
  "imports": [
912
975
  {
913
976
  "path": "src/utils/DOMUtils.ts",
@@ -948,7 +1011,7 @@
948
1011
  "format": "esm"
949
1012
  },
950
1013
  "src/index.ts": {
951
- "bytes": 6832,
1014
+ "bytes": 6801,
952
1015
  "imports": [
953
1016
  {
954
1017
  "path": "src/core/Player.ts",
@@ -984,19 +1047,19 @@
984
1047
  "bytesInOutput": 8919
985
1048
  },
986
1049
  "src/i18n/languages/en.ts": {
987
- "bytesInOutput": 10210
1050
+ "bytesInOutput": 11150
988
1051
  },
989
1052
  "src/i18n/languages/de.ts": {
990
- "bytesInOutput": 11564
1053
+ "bytesInOutput": 12516
991
1054
  },
992
1055
  "src/i18n/languages/es.ts": {
993
- "bytesInOutput": 11392
1056
+ "bytesInOutput": 12396
994
1057
  },
995
1058
  "src/i18n/languages/fr.ts": {
996
- "bytesInOutput": 11698
1059
+ "bytesInOutput": 12718
997
1060
  },
998
1061
  "src/i18n/languages/ja.ts": {
999
- "bytesInOutput": 12207
1062
+ "bytesInOutput": 13307
1000
1063
  },
1001
1064
  "src/i18n/translations.ts": {
1002
1065
  "bytesInOutput": 894
@@ -1011,7 +1074,7 @@
1011
1074
  "bytesInOutput": 2230
1012
1075
  },
1013
1076
  "src/icons/Icons.ts": {
1014
- "bytesInOutput": 12648
1077
+ "bytesInOutput": 12921
1015
1078
  },
1016
1079
  "src/utils/FocusUtils.ts": {
1017
1080
  "bytesInOutput": 612
@@ -1034,8 +1097,11 @@
1034
1097
  "src/renderers/HTML5Renderer.ts": {
1035
1098
  "bytesInOutput": 11899
1036
1099
  },
1100
+ "src/core/DescriptionSpeechManager.ts": {
1101
+ "bytesInOutput": 6832
1102
+ },
1037
1103
  "src/core/AudioDescriptionManager.ts": {
1038
- "bytesInOutput": 24883
1104
+ "bytesInOutput": 27826
1039
1105
  },
1040
1106
  "src/utils/DraggableResizable.ts": {
1041
1107
  "bytesInOutput": 30761
@@ -1083,10 +1149,10 @@
1083
1149
  "bytesInOutput": 1054
1084
1150
  },
1085
1151
  "src/core/Player.ts": {
1086
- "bytesInOutput": 85990
1152
+ "bytesInOutput": 88295
1087
1153
  },
1088
1154
  "src/controls/ControlBar.ts": {
1089
- "bytesInOutput": 127310
1155
+ "bytesInOutput": 128246
1090
1156
  },
1091
1157
  "src/utils/VideoFrameCapture.ts": {
1092
1158
  "bytesInOutput": 3154
@@ -1095,7 +1161,10 @@
1095
1161
  "bytesInOutput": 3863
1096
1162
  },
1097
1163
  "src/controls/KeyboardManager.ts": {
1098
- "bytesInOutput": 11158
1164
+ "bytesInOutput": 11246
1165
+ },
1166
+ "src/core/MediaSessionManager.ts": {
1167
+ "bytesInOutput": 7825
1099
1168
  },
1100
1169
  "src/utils/UrlSafe.ts": {
1101
1170
  "bytesInOutput": 1045
@@ -1121,14 +1190,17 @@
1121
1190
  "src/core/MetadataAlertsManager.ts": {
1122
1191
  "bytesInOutput": 15264
1123
1192
  },
1193
+ "src/controls/KeyboardHelp.ts": {
1194
+ "bytesInOutput": 8634
1195
+ },
1124
1196
  "src/features/PlaylistManager.ts": {
1125
- "bytesInOutput": 48005
1197
+ "bytesInOutput": 48299
1126
1198
  },
1127
1199
  "src/index.ts": {
1128
- "bytesInOutput": 5217
1200
+ "bytesInOutput": 5385
1129
1201
  }
1130
1202
  },
1131
- "bytes": 808336
1203
+ "bytes": 843860
1132
1204
  }
1133
1205
  }
1134
1206
  }
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * VidPly v1.2.3 - Universal, Accessible Video Player
3
+ * (c) 2026 Matthias Peltzer
4
+ * Released under GPL-2.0-or-later License
5
+ */
6
+ import{CaptionManager as e}from"./vidply.chunk-GUPGMFUZ.min.js";import"./vidply.chunk-ZPTV4JEP.min.js";import"./vidply.chunk-MWEBITCP.min.js";import"./vidply.chunk-QQZGV7TD.min.js";var t=class{player;enabled=!1;descriptionTrack=null;cueChangeHandler=null;seekedHandler=null;wasPlayingBeforeCue=!1;speaking=!1;lastSpokenCueKey=null;_pendingUtterance=null;constructor(e){this.player=e}canUseSpeech(){return!1!==this.player.options.audioDescriptionSpeech&&"undefined"!=typeof window&&"speechSynthesis"in window}findDescriptionTrack(){const e=(this.player.element?Array.from(this.player.element.textTracks||[]):[]).filter(e=>"descriptions"===e.kind&&!e._vidplyStale);if(0===e.length)return null;const t=this.player.captionManager?.currentTrack?.track?.language;if(t){const i=e.find(e=>e.language===t);if(i)return i}return e[0]??null}enable(){const e=this.findDescriptionTrack();return!!e&&(this.canUseSpeech()?(this.descriptionTrack=e,e.mode="hidden",this.cueChangeHandler=()=>{this.handleCueChange()},e.addEventListener("cuechange",this.cueChangeHandler),this.seekedHandler=()=>{this.cancelSpeech(),this.lastSpokenCueKey=null,this.handleCueChange()},this.player.on("seeked",this.seekedHandler),this.enabled=!0,this.handleCueChange(),!0):(e.mode="showing",!0))}disable(){this.cancelSpeech(),this.lastSpokenCueKey=null,this.enabled=!1,this.descriptionTrack&&this.cueChangeHandler&&this.descriptionTrack.removeEventListener("cuechange",this.cueChangeHandler),this.seekedHandler&&this.player.off("seeked",this.seekedHandler),this.descriptionTrack&&(this.descriptionTrack.mode="hidden"),this.cueChangeHandler=null,this.seekedHandler=null,this.descriptionTrack=null,this.wasPlayingBeforeCue=!1}handleCueChange(){if(!this.enabled||!this.descriptionTrack||!this.canUseSpeech())return;const e=this.descriptionTrack.activeCues;if(!e||0===e.length)return;const t=e[0],i=t.text?.trim();if(!i)return;const a=`${t.startTime}:${t.endTime}:${i}`;this.speaking&&this.lastSpokenCueKey===a||(this.lastSpokenCueKey!==a||this.player.state.playing)&&this.speakCue(t,a)}speakCue(e,t){if(!this.canUseSpeech())return;if(this.player.state.paused&&!this.speaking&&!this.wasPlayingBeforeCue)return;this.cancelSpeech(),this.wasPlayingBeforeCue=this.player.state.playing,this.wasPlayingBeforeCue&&this.player.pause(),this.speaking=!0,this.lastSpokenCueKey=t;const i={time:e.startTime,endTime:e.endTime,text:e.text.trim(),cue:e};this.player.emit("audiodescriptioncuestart",i);const a=new SpeechSynthesisUtterance(i.text);a.lang=this.descriptionTrack?.language||this.player.options.language||"en";const s=()=>{this._pendingUtterance===a&&(this._pendingUtterance=null,this.speaking=!1,this.player.emit("audiodescriptioncueend",i),(!1!==this.player.options.audioDescriptionExtended?this.wasPlayingBeforeCue:this.wasPlayingBeforeCue&&this.player.state.currentTime<e.endTime)&&this.enabled&&this.player.play(),this.wasPlayingBeforeCue=!1)};a.onend=s,a.onerror=s,this._pendingUtterance=a,window.speechSynthesis.speak(a)}cancelSpeech(){"undefined"!=typeof window&&window.speechSynthesis&&window.speechSynthesis.cancel(),this._pendingUtterance=null,this.speaking=!1,this.wasPlayingBeforeCue=!1}destroy(){this.disable()}},i=class{player;captionTracks;desiredState;enabled;originalSource;sourceElement;src;speechManager;constructor(e){this.player=e,this.enabled=!1,this.desiredState=!1,this.src=e.options.audioDescriptionSrc,this.sourceElement=null,this.originalSource=null,this.captionTracks=[],this.speechManager=null}_hasSwapSource(){const e=this.player.sourceElements.some(e=>e.getAttribute("data-desc-src"));return Boolean(this.src||e)}_hasDescriptionsTrack(){return Boolean(this.player.findTextTrack("descriptions"))}resolveDeliveryMode(){const e=this.player.options.audioDescriptionMode??"auto",t=this._hasSwapSource(),i=this._hasDescriptionsTrack();return"swap"===e?t?"swap":"none":"vtt_speech"===e?i?"vtt_speech":"none":t?"swap":i?"vtt_speech":"none"}_ensureSpeechManager(){return this.speechManager||(this.speechManager=new t(this.player)),this.speechManager}initFromSourceElements(e,t){for(const t of e){const e=t.getAttribute("data-desc-src"),i=t.getAttribute("data-orig-src");if(e||i){if(this.sourceElement||(this.sourceElement=t),i)this.originalSource||(this.originalSource=i),this.player.originalSrc||(this.player.originalSrc=i);else{const e=t.getAttribute("src");!this.originalSource&&e&&(this.originalSource=e),!this.player.originalSrc&&e&&(this.player.originalSrc=e)}e&&!this.src&&(this.src=e)}}t.forEach(e=>{const t=e.getAttribute("kind"),i=e.getAttribute("data-desc-src");("captions"===t||"subtitles"===t||"chapters"===t||"descriptions"===t)&&i&&e instanceof HTMLTrackElement&&(this.captionTracks.push({trackElement:e,originalSrc:e.getAttribute("src"),describedSrc:i,originalTrackSrc:e.getAttribute("data-orig-src")||e.getAttribute("src"),explicit:!0}),this.player.log(`Found explicit described ${t} track: ${e.getAttribute("src")} -> ${i}`))})}isAvailable(){const e=this.resolveDeliveryMode();return"swap"===e||"vtt_speech"===e||this.captionTracks.length>0}async enable(){const e=this.resolveDeliveryMode(),t=this.captionTracks.length>0;if("none"===e&&!t)return void console.warn("VidPly: No audio description source, descriptions track, or tracks provided");if(this.desiredState=!0,"vtt_speech"===e)return this._ensureSpeechManager().enable()?(this.enabled=!0,this.player.state.audioDescriptionEnabled=!0,void this.player.emit("audiodescriptionenabled")):void console.warn("VidPly: No descriptions track available for VTT speech mode");const i=this.player.state.currentTime,a=this.player.state.playing,s=this.player.element.poster||this.player.element.getAttribute("poster")||this.player.options.poster,r=i<.1&&!a,n=this._getCurrentCaptionText();this.sourceElement?await this._enableWithSourceElement(i,a,s,r,n):this.src?await this._enableWithDirectSrc(i,a,s,r):t&&(await this._swapCaptionTracks(!0),this.enabled=!0,this.player.emit("audiodescriptionenabled"))}async disable(){if(this.desiredState=!1,this.speechManager?.enabled)return this.speechManager.disable(),this.enabled=!1,this.player.state.audioDescriptionEnabled=!1,void this.player.emit("audiodescriptiondisabled");if(!this.sourceElement&&!this.src&&this.captionTracks.length>0)return await this._swapCaptionTracks(!1),this.enabled=!1,void this.player.emit("audiodescriptiondisabled");if(!this.player.originalSrc)return;const e=this.player.state.currentTime,t=this.player.state.playing,i=this.player.element.poster||this.player.element.getAttribute("poster")||this.player.options.poster,a=e<.1&&!t,s=this._getCurrentCaptionText();this.sourceElement?await this._disableWithSourceElement(e,t,i,a,s):this.src&&await this._disableWithDirectSrc(e,t,i)}async toggle(){const e=this.resolveDeliveryMode(),t=this.player.findTextTrack("descriptions"),i=this._hasSwapSource()||this.captionTracks.length>0;"vtt_speech"!==e?t&&!i?"showing"===t.mode?(t.mode="hidden",this.enabled=!1,this.player.state.audioDescriptionEnabled=!1,this.player.emit("audiodescriptiondisabled")):(t.mode="showing",this.enabled=!0,this.player.state.audioDescriptionEnabled=!0,this.player.emit("audiodescriptionenabled")):t&&i?this.enabled?(this.desiredState=!1,await this.disable()):(t.mode="showing",this.desiredState=!0,await this.enable()):i&&(this.enabled?(this.desiredState=!1,await this.disable()):(this.desiredState=!0,await this.enable())):this.enabled?await this.disable():await this.enable()}_getCurrentCaptionText(){return this.player.captionManager&&this.player.captionManager.currentTrack&&this.player.captionManager.currentCue?this.player.captionManager.currentCue.text:null}async _validateTrackExists(e){if("string"!=typeof e||!e)return!1;const t=[],i=this.player.lifecycleSignal;let a;if(i&&t.push(i),"undefined"!=typeof AbortSignal&&"function"==typeof AbortSignal.timeout&&t.push(AbortSignal.timeout(8e3)),1===t.length)a=t[0];else if(t.length>1){const e=AbortSignal.any;a=e?e(t):t[0]}try{return(await fetch(e,{method:"HEAD",signal:a})).ok}catch{return!1}}async _swapCaptionTracks(e=!0){if(0===this.captionTracks.length)return[];const t=[],i=this.captionTracks.map(async t=>{if(t.trackElement&&t.describedSrc&&!0===t.explicit){const i=e?t.describedSrc:t.originalSrc;if(!i)return{trackInfo:t,exists:!1};try{return{trackInfo:t,exists:await this._validateTrackExists(i)}}catch{return{trackInfo:t,exists:!1}}}return{trackInfo:t,exists:!1}}),a=(await Promise.all(i)).filter(e=>e.exists);if(a.length>0){const i=new Map;a.forEach(({trackInfo:e})=>{const t=e.trackElement.track;i.set(e,t?{wasShowing:"showing"===t.mode,wasHidden:"hidden"===t.mode}:{wasShowing:!1,wasHidden:!1})});const s=a.map(({trackInfo:e})=>{const t={};Array.from(e.trackElement.attributes).forEach(e=>{t[e.name]=e.value});const i={trackInfo:e,oldSrc:e.trackElement.getAttribute("src"),parent:e.trackElement.parentNode,nextSibling:e.trackElement.nextSibling,attributes:t};return e.trackElement.remove(),i});this.player.element.load(),await new Promise(a=>{this.player.setManagedTimeout(()=>{s.forEach(({trackInfo:i,parent:a,nextSibling:s,attributes:r})=>{const n=e?i.describedSrc:i.originalSrc;if(!n)return;t.push(i);const l=document.createElement("track");l.setAttribute("src",n),Object.keys(r).forEach(e=>{const t=r[e];"src"!==e&&"data-desc-src"!==e&&void 0!==t&&l.setAttribute(e,t)});const c=a||this.player.element;s&&s.parentNode?c.insertBefore(l,s):c.appendChild(l),i.trackElement=l}),this.player.invalidateTrackCache();const r=()=>{this.player.setManagedTimeout(()=>{t.forEach(e=>{const t=e.trackElement,a=t.track;if(a){const s=i.get(e)||{wasShowing:!1,wasHidden:!1};a.mode="hidden";const r=()=>{a.mode=s.wasShowing||s.wasHidden?"hidden":"disabled"};t.readyState>=2?r():(t.addEventListener("load",r,{once:!0}),t.addEventListener("error",r,{once:!0}))}})},300)};this.player.element.readyState>=1?this.player.setManagedTimeout(r,200):(this.player.element.addEventListener("loadedmetadata",r,{once:!0}),this.player.setManagedTimeout(r,2e3)),a()},100)})}return t}_updateSourceElements(e=!0){const t=this.player.sourceElements,i=[];t.forEach(t=>{const a=t.getAttribute("data-desc-src"),s=t.getAttribute("src");if(a){const r=t.getAttribute("type"),n=t.getAttribute("data-orig-src")||s;i.push({src:e?a:n,type:r,origSrc:n,descSrc:a})}else i.push({src:t.getAttribute("src"),type:t.getAttribute("type"),origSrc:null,descSrc:null})}),this.player.element.hasAttribute("src")&&this.player.element.removeAttribute("src"),t.forEach(e=>e.remove()),i.forEach(e=>{if(!e.src)return;const t=document.createElement("source");t.setAttribute("src",e.src),e.type&&t.setAttribute("type",e.type),e.origSrc&&t.setAttribute("data-orig-src",e.origSrc),e.descSrc&&t.setAttribute("data-desc-src",e.descSrc);const i=this.player.element.querySelector("track");i?this.player.element.insertBefore(t,i):this.player.element.appendChild(t)}),this.player._sourceElementsDirty=!0,this.player._sourceElementsCache=null}async _waitForMediaReady(e=!1){await new Promise(e=>{if(this.player.element.readyState>=1)e();else{const t=()=>{this.player.element.removeEventListener("loadedmetadata",t),e()};this.player.element.addEventListener("loadedmetadata",t)}}),await new Promise(e=>setTimeout(e,300)),e&&await new Promise(e=>{if(this.player.element.readyState>=3)e();else{const t=()=>{this.player.element.removeEventListener("canplay",t),this.player.element.removeEventListener("canplaythrough",t),e()};this.player.element.addEventListener("canplay",t,{once:!0}),this.player.element.addEventListener("canplaythrough",t,{once:!0}),setTimeout(()=>{this.player.element.removeEventListener("canplay",t),this.player.element.removeEventListener("canplaythrough",t),e()},3e3)}})}async _restorePlaybackState(e,t,i,a){let s=e;if(a&&this.player.captionManager&&this.player.captionManager.tracks.length>0){await new Promise(e=>setTimeout(e,500));const t=this.player.findMatchingCaptionTime(a,this.player.captionManager.tracks);null!==t&&(s=t,this.player.options.debug&&this.player.log(`[VidPly] Syncing via caption: ${e}s -> ${s}s`))}s>0&&(this.player.seek(s),await new Promise(e=>setTimeout(e,100))),t?(await this.player.play(),this.player.setManagedTimeout(()=>{this.player.hidePosterOverlay()},100)):(this.player.pause(),i||this.player.hidePosterOverlay())}async _enableWithSourceElement(e,t,i,a,s){await this._swapCaptionTracks(!0),this._updateSourceElements(!0),i&&"VIDEO"===this.player.element.tagName&&(this.player.element.poster=i),this.player.element.load(),await this._waitForMediaReady(e>0||t),await this._restorePlaybackState(e,t,a,s),this.desiredState&&(this.enabled=!0,this.player.state.audioDescriptionEnabled=!0,this.player.emit("audiodescriptionenabled"),this._reloadTranscript())}async _enableWithDirectSrc(e,t,i,a){await this._swapCaptionTracks(!0),i&&"VIDEO"===this.player.element.tagName&&(this.player.element.poster=i),this.src&&(this.player.element.src=this.src,await this._waitForMediaReady(e>0||t),e>0&&(this.player.seek(e),await new Promise(e=>setTimeout(e,100))),t?await this.player.play():(this.player.pause(),a||this.player.hidePosterOverlay()),this.desiredState&&(this.enabled=!0,this.player.state.audioDescriptionEnabled=!0,this.player.emit("audiodescriptionenabled"),this._reloadTranscript()))}async _disableWithSourceElement(t,i,a,s,r){await this._swapCaptionTracks(!1),this._updateSourceElements(!1),a&&"VIDEO"===this.player.element.tagName&&(this.player.element.poster=a),this.player.element.load(),this.player.invalidateTrackCache(),await this._waitForMediaReady(t>0||i),await this._restorePlaybackState(t,i,s,r),this.player.captionManager&&(this.player.captionManager.destroy(),this.player.captionManager=new e(this.player)),this.desiredState||(this.enabled=!1,this.player.state.audioDescriptionEnabled=!1,this.player.emit("audiodescriptiondisabled"),this._reloadTranscript())}async _disableWithDirectSrc(e,t,i){await this._swapCaptionTracks(!1),i&&"VIDEO"===this.player.element.tagName&&(this.player.element.poster=i);const a=this.originalSource||this.player.originalSrc;a&&(this.player.element.src=a,this.player.element.load(),await this._waitForMediaReady(e>0||t),e>0&&this.player.seek(e),t&&await this.player.play(),this.desiredState||(this.enabled=!1,this.player.state.audioDescriptionEnabled=!1,this.player.emit("audiodescriptiondisabled"),this._reloadTranscript()))}_reloadTranscript(){this.player.transcriptManager&&this.player.transcriptManager.isVisible&&this.player.setManagedTimeout(()=>{this.player.transcriptManager&&this.player.transcriptManager.loadTranscriptData&&this.player.transcriptManager.loadTranscriptData()},800)}updateSources(e){this.speechManager?.destroy(),this.speechManager=null,this.src=e||null,this.enabled=!1,this.desiredState=!1,this.sourceElement=null,this.originalSource=null,this.captionTracks=[]}reinitialize(){this.player.invalidateTrackCache(),this.initFromSourceElements(this.player.sourceElements,this.player.trackElements)}destroy(){this.speechManager?.destroy(),this.speechManager=null,this.enabled=!1,this.desiredState=!1,this.captionTracks=[],this.sourceElement=null,this.originalSource=null}};export{i as AudioDescriptionManager};
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VidPly v1.2.0 - Universal, Accessible Video Player
2
+ * VidPly v1.2.3 - Universal, Accessible Video Player
3
3
  * (c) 2026 Matthias Peltzer
4
4
  * Released under GPL-2.0-or-later License
5
5
  */
6
- import{focusFirstElement as e}from"./vidply.chunk-P3PQBY7N.min.js";import{DOMUtils as t,i18n as a}from"./vidply.chunk-EKEYJWMG.min.js";function n(e){const t=e.replace("captions","");return t.charAt(0).toLowerCase()+t.slice(1)}function o(e,a,o,i){const s=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),l=`${e.options.classPrefix}-${o}-${Date.now()}`,r=t.createElement("label",{textContent:a,attributes:{for:l},style:{display:"block",fontSize:"12px",marginBottom:"4px",color:"rgba(255,255,255,0.7)"}});s.appendChild(r);const p=t.createElement("select",{className:`${e.options.classPrefix}-style-select`,attributes:{id:l},style:{width:"100%",padding:"6px",background:"var(--vidply-white)",border:"1px solid var(--vidply-white-10)",borderRadius:"4px",color:"var(--vidply-black)",fontSize:"13px"}}),c=e.options[o];return i.forEach(e=>{const a=t.createElement("option",{textContent:e.label,attributes:{value:e.value}});e.value===c&&(a.selected=!0),p.appendChild(a)}),p.addEventListener("mousedown",e=>{e.stopPropagation()}),p.addEventListener("click",e=>{e.stopPropagation()}),p.addEventListener("change",t=>{t.stopPropagation(),e.options[o]=t.target.value,e.captionManager&&e.captionManager.setCaptionStyle(n(o),t.target.value)}),s.appendChild(p),s}function i(e,a,o){const i=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),s=`${e.options.classPrefix}-${o}-${Date.now()}`,l=t.createElement("label",{textContent:a,attributes:{for:s},style:{display:"block",fontSize:"12px",marginBottom:"4px",color:"rgba(255,255,255,0.7)"}});i.appendChild(l);const r=t.createElement("input",{attributes:{id:s,type:"color",value:String(e.options[o]??"")},style:{width:"100%",height:"32px",padding:"2px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"4px",cursor:"pointer"}});return r.addEventListener("mousedown",e=>{e.stopPropagation()}),r.addEventListener("click",e=>{e.stopPropagation()}),r.addEventListener("change",t=>{t.stopPropagation(),e.options[o]=t.target.value,e.captionManager&&e.captionManager.setCaptionStyle(n(o),t.target.value)}),i.appendChild(r),i}function s(s,l){const r=s.player,p=document.querySelector(`.${r.options.classPrefix}-caption-style-menu`);if(p)return p.remove(),l.setAttribute("aria-expanded","false"),void(s.openMenu===p&&(s.openMenu=null,s.openMenuButton=null));const c=`${r.options.classPrefix}-caption-style-label-${r.instanceId||""}`,d=t.createElement("div",{className:`${r.options.classPrefix}-caption-style-menu ${r.options.classPrefix}-menu ${r.options.classPrefix}-settings-menu`,attributes:{role:"dialog","aria-modal":"false","aria-labelledby":c}}),u=t.createElement("h2",{textContent:a.t("player.captionStyling"),attributes:{id:c,class:`${r.options.classPrefix}-sr-only`},style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}});if(d.appendChild(u),d.addEventListener("click",e=>{e.stopPropagation()}),!r.captionManager||0===r.captionManager.tracks.length){const e=t.createElement("div",{className:`${r.options.classPrefix}-menu-item`,textContent:a.t("player.noCaptions"),attributes:{role:"status"},style:{opacity:"0.5",cursor:"default",padding:"12px 16px"}});return d.appendChild(e),d.style.visibility="hidden",d.style.display="block",s.insertMenuIntoDOM(d,l),s.positionMenu(d,l,!0),requestAnimationFrame(()=>{d.style.visibility="visible"}),void s.attachMenuCloseHandler(d,l,!0)}d.appendChild(o(r,a.t("styleLabels.fontSize"),"captionsFontSize",[{label:a.t("fontSizes.small"),value:"87.5%"},{label:a.t("fontSizes.normal"),value:"100%"},{label:a.t("fontSizes.large"),value:"125%"},{label:a.t("fontSizes.xlarge"),value:"150%"}])),d.appendChild(o(r,a.t("styleLabels.font"),"captionsFontFamily",[{label:a.t("fontFamilies.sansSerif"),value:"sans-serif"},{label:a.t("fontFamilies.serif"),value:"serif"},{label:a.t("fontFamilies.monospace"),value:"monospace"}])),d.appendChild(i(r,a.t("styleLabels.textColor"),"captionsColor")),d.appendChild(i(r,a.t("styleLabels.background"),"captionsBackgroundColor")),d.appendChild(((e,a,o)=>{const i=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),s=`${e.options.classPrefix}-${o}-${Date.now()}`,l=t.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"4px"}}),r=t.createElement("label",{textContent:a,attributes:{for:s},style:{fontSize:"12px",color:"rgba(255,255,255,0.7)"}}),p=t.createElement("span",{textContent:Math.round(100*Number(e.options[o]??0))+"%",style:{fontSize:"12px",color:"rgba(255,255,255,0.7)"}});l.appendChild(r),l.appendChild(p),i.appendChild(l);const c=t.createElement("input",{attributes:{id:s,type:"range",min:"0",max:"1",step:"0.1",value:String(e.options[o])},style:{width:"100%",cursor:"pointer"}});return c.addEventListener("mousedown",e=>{e.stopPropagation()}),c.addEventListener("click",e=>{e.stopPropagation()}),c.addEventListener("input",t=>{t.stopPropagation();const a=parseFloat(t.target.value);p.textContent=Math.round(100*a)+"%",e.options[o]=a,e.captionManager&&e.captionManager.setCaptionStyle(n(o),a)}),i.appendChild(c),i})(r,a.t("styleLabels.opacity"),"captionsOpacity")),d.style.minWidth="220px",d.style.visibility="hidden",d.style.display="block",s.insertMenuIntoDOM(d,l),s.positionMenu(d,l,!0),requestAnimationFrame(()=>{d.style.visibility="visible"}),s.attachMenuCloseHandler(d,l,!0),e(d,`.${r.options.classPrefix}-style-select`)}export{s as showCaptionStyleMenu};
6
+ import{focusFirstElement as e}from"./vidply.chunk-XA4M574A.min.js";import{DOMUtils as t,i18n as a}from"./vidply.chunk-QQZGV7TD.min.js";function n(e){const t=e.replace("captions","");return t.charAt(0).toLowerCase()+t.slice(1)}function o(e,a,o,i){const s=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),l=`${e.options.classPrefix}-${o}-${Date.now()}`,r=t.createElement("label",{textContent:a,attributes:{for:l},style:{display:"block",fontSize:"12px",marginBottom:"4px",color:"rgba(255,255,255,0.7)"}});s.appendChild(r);const p=t.createElement("select",{className:`${e.options.classPrefix}-style-select`,attributes:{id:l},style:{width:"100%",padding:"6px",background:"var(--vidply-white)",border:"1px solid var(--vidply-white-10)",borderRadius:"4px",color:"var(--vidply-black)",fontSize:"13px"}}),c=e.options[o];return i.forEach(e=>{const a=t.createElement("option",{textContent:e.label,attributes:{value:e.value}});e.value===c&&(a.selected=!0),p.appendChild(a)}),p.addEventListener("mousedown",e=>{e.stopPropagation()}),p.addEventListener("click",e=>{e.stopPropagation()}),p.addEventListener("change",t=>{t.stopPropagation(),e.options[o]=t.target.value,e.captionManager&&e.captionManager.setCaptionStyle(n(o),t.target.value)}),s.appendChild(p),s}function i(e,a,o){const i=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),s=`${e.options.classPrefix}-${o}-${Date.now()}`,l=t.createElement("label",{textContent:a,attributes:{for:s},style:{display:"block",fontSize:"12px",marginBottom:"4px",color:"rgba(255,255,255,0.7)"}});i.appendChild(l);const r=t.createElement("input",{attributes:{id:s,type:"color",value:String(e.options[o]??"")},style:{width:"100%",height:"32px",padding:"2px",background:"rgba(255,255,255,0.1)",border:"1px solid rgba(255,255,255,0.2)",borderRadius:"4px",cursor:"pointer"}});return r.addEventListener("mousedown",e=>{e.stopPropagation()}),r.addEventListener("click",e=>{e.stopPropagation()}),r.addEventListener("change",t=>{t.stopPropagation(),e.options[o]=t.target.value,e.captionManager&&e.captionManager.setCaptionStyle(n(o),t.target.value)}),i.appendChild(r),i}function s(s,l){const r=s.player,p=document.querySelector(`.${r.options.classPrefix}-caption-style-menu`);if(p)return p.remove(),l.setAttribute("aria-expanded","false"),void(s.openMenu===p&&(s.openMenu=null,s.openMenuButton=null));const c=`${r.options.classPrefix}-caption-style-label-${r.instanceId||""}`,d=t.createElement("div",{className:`${r.options.classPrefix}-caption-style-menu ${r.options.classPrefix}-menu ${r.options.classPrefix}-settings-menu`,attributes:{role:"dialog","aria-modal":"false","aria-labelledby":c}}),u=t.createElement("h2",{textContent:a.t("player.captionStyling"),attributes:{id:c,class:`${r.options.classPrefix}-sr-only`},style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:"0"}});if(d.appendChild(u),d.addEventListener("click",e=>{e.stopPropagation()}),!r.captionManager||0===r.captionManager.tracks.length){const e=t.createElement("div",{className:`${r.options.classPrefix}-menu-item`,textContent:a.t("player.noCaptions"),attributes:{role:"status"},style:{opacity:"0.5",cursor:"default",padding:"12px 16px"}});return d.appendChild(e),d.style.visibility="hidden",d.style.display="block",s.insertMenuIntoDOM(d,l),s.positionMenu(d,l,!0),requestAnimationFrame(()=>{d.style.visibility="visible"}),void s.attachMenuCloseHandler(d,l,!0)}d.appendChild(o(r,a.t("styleLabels.fontSize"),"captionsFontSize",[{label:a.t("fontSizes.small"),value:"87.5%"},{label:a.t("fontSizes.normal"),value:"100%"},{label:a.t("fontSizes.large"),value:"125%"},{label:a.t("fontSizes.xlarge"),value:"150%"}])),d.appendChild(o(r,a.t("styleLabels.font"),"captionsFontFamily",[{label:a.t("fontFamilies.sansSerif"),value:"sans-serif"},{label:a.t("fontFamilies.serif"),value:"serif"},{label:a.t("fontFamilies.monospace"),value:"monospace"}])),d.appendChild(i(r,a.t("styleLabels.textColor"),"captionsColor")),d.appendChild(i(r,a.t("styleLabels.background"),"captionsBackgroundColor")),d.appendChild(((e,a,o)=>{const i=t.createElement("div",{className:`${e.options.classPrefix}-style-group`}),s=`${e.options.classPrefix}-${o}-${Date.now()}`,l=t.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"4px"}}),r=t.createElement("label",{textContent:a,attributes:{for:s},style:{fontSize:"12px",color:"rgba(255,255,255,0.7)"}}),p=t.createElement("span",{textContent:Math.round(100*Number(e.options[o]??0))+"%",style:{fontSize:"12px",color:"rgba(255,255,255,0.7)"}});l.appendChild(r),l.appendChild(p),i.appendChild(l);const c=t.createElement("input",{attributes:{id:s,type:"range",min:"0",max:"1",step:"0.1",value:String(e.options[o])},style:{width:"100%",cursor:"pointer"}});return c.addEventListener("mousedown",e=>{e.stopPropagation()}),c.addEventListener("click",e=>{e.stopPropagation()}),c.addEventListener("input",t=>{t.stopPropagation();const a=parseFloat(t.target.value);p.textContent=Math.round(100*a)+"%",e.options[o]=a,e.captionManager&&e.captionManager.setCaptionStyle(n(o),a)}),i.appendChild(c),i})(r,a.t("styleLabels.opacity"),"captionsOpacity")),d.style.minWidth="220px",d.style.visibility="hidden",d.style.display="block",s.insertMenuIntoDOM(d,l),s.positionMenu(d,l,!0),requestAnimationFrame(()=>{d.style.visibility="visible"}),s.attachMenuCloseHandler(d,l,!0),e(d,`.${r.options.classPrefix}-style-select`)}export{s as showCaptionStyleMenu};