vidply 1.2.1 → 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 (106) hide show
  1. package/README.md +30 -2
  2. package/dist/dev/{vidply.AudioDescriptionManager-6RFVF27Z.js → vidply.AudioDescriptionManager-JYYLK5KB.js} +6 -6
  3. package/dist/dev/{vidply.CaptionStyleMenu-R2SCQ6VP.js → vidply.CaptionStyleMenu-47RCKQF5.js} +4 -4
  4. package/dist/dev/{vidply.DASHRenderer-EOVEW73H.js → vidply.DASHRenderer-VEJ4HDHO.js} +3 -3
  5. package/dist/dev/{vidply.FloatingPlayerManager-V5XQWS75.js → vidply.FloatingPlayerManager-C2UVRPZY.js} +5 -5
  6. package/dist/dev/{vidply.HLSRenderer-ZBEFVH5W.js → vidply.HLSRenderer-ZVBK2TNQ.js} +4 -4
  7. package/dist/dev/vidply.HTML5Renderer-HLRQUOCU.js +12 -0
  8. package/dist/dev/{vidply.SignLanguageManager-7IAJOVF6.js → vidply.SignLanguageManager-FLUCBW5H.js} +8 -8
  9. package/dist/dev/{vidply.SoundCloudRenderer-OA7QQYGN.js → vidply.SoundCloudRenderer-MGMAJ7NK.js} +3 -3
  10. package/dist/dev/{vidply.TranscriptManager-BPM3T23L.js → vidply.TranscriptManager-Y2RYXHJW.js} +10 -10
  11. package/dist/dev/{vidply.VimeoRenderer-BRHFYPNJ.js → vidply.VimeoRenderer-RQFQD7OE.js} +3 -3
  12. package/dist/dev/{vidply.YouTubeRenderer-HRTN4EJ5.js → vidply.YouTubeRenderer-EU2BARZF.js} +3 -3
  13. package/dist/dev/{vidply.chunk-UHMVDBDB.js → vidply.chunk-6LYZYI5G.js} +3 -3
  14. package/dist/dev/{vidply.chunk-W5BR65JY.js → vidply.chunk-A4ESEOQ2.js} +6 -6
  15. package/dist/dev/{vidply.chunk-XAK3DPTO.js → vidply.chunk-CGYIED2I.js} +2 -2
  16. package/dist/dev/{vidply.chunk-YVCYQZJI.js → vidply.chunk-HZ7UOKOU.js} +3 -3
  17. package/dist/dev/{vidply.chunk-NSMAZCMB.js → vidply.chunk-I6EDRYGJ.js} +33 -6
  18. package/dist/dev/{vidply.chunk-NSMAZCMB.js.map → vidply.chunk-I6EDRYGJ.js.map} +2 -2
  19. package/dist/dev/{vidply.chunk-LDVFAFGC.js → vidply.chunk-JKMQGLCJ.js} +5 -5
  20. package/dist/dev/{vidply.chunk-HOYEMJSD.js → vidply.chunk-JZNZX32Z.js} +2 -2
  21. package/dist/dev/{vidply.chunk-JAKZNGOR.js → vidply.chunk-P25MRJ6O.js} +2 -2
  22. package/dist/dev/{vidply.chunk-5IK3IC5V.js → vidply.chunk-PRFNESYA.js} +2 -2
  23. package/dist/dev/{vidply.chunk-RQG3MA7W.js → vidply.chunk-UI3RYCVF.js} +4 -3
  24. package/dist/dev/{vidply.chunk-RQG3MA7W.js.map → vidply.chunk-UI3RYCVF.js.map} +2 -2
  25. package/dist/dev/{vidply.chunk-C55OBT5H.js → vidply.chunk-UNFGMABP.js} +2 -2
  26. package/dist/dev/{vidply.de-5W5LBFSJ.js → vidply.de-VAUVSQXC.js} +29 -2
  27. package/dist/dev/{vidply.de-5W5LBFSJ.js.map → vidply.de-VAUVSQXC.js.map} +2 -2
  28. package/dist/dev/{vidply.es-SHDAT6L6.js → vidply.es-G65HFWO6.js} +29 -2
  29. package/dist/dev/{vidply.es-SHDAT6L6.js.map → vidply.es-G65HFWO6.js.map} +2 -2
  30. package/dist/dev/vidply.esm.js +594 -20
  31. package/dist/dev/vidply.esm.js.map +3 -3
  32. package/dist/dev/{vidply.fr-2JANOMNB.js → vidply.fr-MJNOZELM.js} +29 -2
  33. package/dist/dev/{vidply.fr-2JANOMNB.js.map → vidply.fr-MJNOZELM.js.map} +2 -2
  34. package/dist/dev/{vidply.ja-WWMSTEJH.js → vidply.ja-INMDHIYJ.js} +29 -2
  35. package/dist/dev/{vidply.ja-WWMSTEJH.js.map → vidply.ja-INMDHIYJ.js.map} +2 -2
  36. package/dist/legacy/vidply.js +718 -3
  37. package/dist/legacy/vidply.js.map +3 -3
  38. package/dist/legacy/vidply.min.js +2 -2
  39. package/dist/legacy/vidply.min.meta.json +72 -19
  40. package/dist/prod/{vidply.AudioDescriptionManager-YTDVDQBO.min.js → vidply.AudioDescriptionManager-EKWUNOPE.min.js} +2 -2
  41. package/dist/prod/{vidply.CaptionStyleMenu-2AFF3HF2.min.js → vidply.CaptionStyleMenu-JTWSNHRQ.min.js} +2 -2
  42. package/dist/prod/{vidply.DASHRenderer-URDOTOKS.min.js → vidply.DASHRenderer-CIDAHFWM.min.js} +2 -2
  43. package/dist/prod/{vidply.FloatingPlayerManager-QUBFK7CQ.min.js → vidply.FloatingPlayerManager-VZXHPCPM.min.js} +2 -2
  44. package/dist/prod/{vidply.HLSRenderer-46KNUVAB.min.js → vidply.HLSRenderer-Q6EFYKID.min.js} +2 -2
  45. package/dist/prod/vidply.HTML5Renderer-XRDJUTOO.min.js +6 -0
  46. package/dist/prod/{vidply.SignLanguageManager-H4C36EVL.min.js → vidply.SignLanguageManager-JUOSA5AM.min.js} +2 -2
  47. package/dist/prod/{vidply.SoundCloudRenderer-OYSWMW7D.min.js → vidply.SoundCloudRenderer-7ODD46PO.min.js} +2 -2
  48. package/dist/prod/{vidply.TranscriptManager-BA3DAS63.min.js → vidply.TranscriptManager-4B2QKYGQ.min.js} +2 -2
  49. package/dist/prod/{vidply.VimeoRenderer-NF3COTHU.min.js → vidply.VimeoRenderer-MR3UYLY7.min.js} +2 -2
  50. package/dist/prod/{vidply.YouTubeRenderer-UCQKYIJ4.min.js → vidply.YouTubeRenderer-ITRTC7NR.min.js} +2 -2
  51. package/dist/prod/{vidply.chunk-7S5AFTST.min.js → vidply.chunk-3EEDXU4T.min.js} +2 -2
  52. package/dist/prod/{vidply.chunk-EUOA2DJK.min.js → vidply.chunk-5HTX5QXW.min.js} +1 -1
  53. package/dist/prod/{vidply.chunk-JPMAK3NS.min.js → vidply.chunk-6OGHHIYP.min.js} +2 -2
  54. package/dist/prod/{vidply.chunk-XXUH7ADU.min.js → vidply.chunk-GUPGMFUZ.min.js} +2 -2
  55. package/dist/prod/{vidply.chunk-M76ABMKB.min.js → vidply.chunk-MWEBITCP.min.js} +1 -1
  56. package/dist/prod/{vidply.chunk-G6KGXNEW.min.js → vidply.chunk-PL3P3JHR.min.js} +1 -1
  57. package/dist/prod/{vidply.chunk-6ECBIYVI.min.js → vidply.chunk-QQZGV7TD.min.js} +2 -2
  58. package/dist/prod/{vidply.chunk-2HNCP64N.min.js → vidply.chunk-U5IRRYG5.min.js} +1 -1
  59. package/dist/prod/{vidply.chunk-WRVDVD33.min.js → vidply.chunk-VKHV4QHA.min.js} +2 -2
  60. package/dist/prod/{vidply.chunk-L4O44K63.min.js → vidply.chunk-XA4M574A.min.js} +1 -1
  61. package/dist/prod/{vidply.chunk-X2FQEQYR.min.js → vidply.chunk-ZPTV4JEP.min.js} +2 -2
  62. package/dist/prod/{vidply.de-JMCATTKZ.min.js → vidply.de-UZHFCEZU.min.js} +2 -2
  63. package/dist/prod/{vidply.es-YVG37V7Z.min.js → vidply.es-BOISUV2S.min.js} +2 -2
  64. package/dist/prod/vidply.esm.min.js +2 -2
  65. package/dist/prod/{vidply.fr-OGKGN2R4.min.js → vidply.fr-ICSMKPFM.min.js} +2 -2
  66. package/dist/prod/{vidply.ja-Z6DS7QLS.min.js → vidply.ja-VQ2HKGAY.min.js} +2 -2
  67. package/dist/vidply.css +56 -0
  68. package/dist/vidply.esm.min.meta.json +154 -112
  69. package/dist/vidply.min.css +1 -1
  70. package/package.json +7 -7
  71. package/src/controls/ControlBar.ts +32 -0
  72. package/src/controls/KeyboardHelp.ts +326 -0
  73. package/src/controls/KeyboardManager.ts +4 -0
  74. package/src/core/MediaSessionManager.ts +341 -0
  75. package/src/core/Player.ts +59 -1
  76. package/src/i18n/languages/de.ts +27 -0
  77. package/src/i18n/languages/en.ts +27 -0
  78. package/src/i18n/languages/es.ts +27 -0
  79. package/src/i18n/languages/fr.ts +27 -0
  80. package/src/i18n/languages/ja.ts +27 -0
  81. package/src/icons/Icons.ts +2 -1
  82. package/src/styles/vidply.css +56 -0
  83. package/src/types/events.ts +4 -0
  84. package/src/types/options.ts +14 -0
  85. package/dist/dev/vidply.HTML5Renderer-P7ICKYU4.js +0 -12
  86. package/dist/prod/vidply.HTML5Renderer-7TQDMIGY.min.js +0 -6
  87. /package/dist/dev/{vidply.AudioDescriptionManager-6RFVF27Z.js.map → vidply.AudioDescriptionManager-JYYLK5KB.js.map} +0 -0
  88. /package/dist/dev/{vidply.CaptionStyleMenu-R2SCQ6VP.js.map → vidply.CaptionStyleMenu-47RCKQF5.js.map} +0 -0
  89. /package/dist/dev/{vidply.DASHRenderer-EOVEW73H.js.map → vidply.DASHRenderer-VEJ4HDHO.js.map} +0 -0
  90. /package/dist/dev/{vidply.FloatingPlayerManager-V5XQWS75.js.map → vidply.FloatingPlayerManager-C2UVRPZY.js.map} +0 -0
  91. /package/dist/dev/{vidply.HLSRenderer-ZBEFVH5W.js.map → vidply.HLSRenderer-ZVBK2TNQ.js.map} +0 -0
  92. /package/dist/dev/{vidply.HTML5Renderer-P7ICKYU4.js.map → vidply.HTML5Renderer-HLRQUOCU.js.map} +0 -0
  93. /package/dist/dev/{vidply.SignLanguageManager-7IAJOVF6.js.map → vidply.SignLanguageManager-FLUCBW5H.js.map} +0 -0
  94. /package/dist/dev/{vidply.SoundCloudRenderer-OA7QQYGN.js.map → vidply.SoundCloudRenderer-MGMAJ7NK.js.map} +0 -0
  95. /package/dist/dev/{vidply.TranscriptManager-BPM3T23L.js.map → vidply.TranscriptManager-Y2RYXHJW.js.map} +0 -0
  96. /package/dist/dev/{vidply.VimeoRenderer-BRHFYPNJ.js.map → vidply.VimeoRenderer-RQFQD7OE.js.map} +0 -0
  97. /package/dist/dev/{vidply.YouTubeRenderer-HRTN4EJ5.js.map → vidply.YouTubeRenderer-EU2BARZF.js.map} +0 -0
  98. /package/dist/dev/{vidply.chunk-UHMVDBDB.js.map → vidply.chunk-6LYZYI5G.js.map} +0 -0
  99. /package/dist/dev/{vidply.chunk-W5BR65JY.js.map → vidply.chunk-A4ESEOQ2.js.map} +0 -0
  100. /package/dist/dev/{vidply.chunk-XAK3DPTO.js.map → vidply.chunk-CGYIED2I.js.map} +0 -0
  101. /package/dist/dev/{vidply.chunk-YVCYQZJI.js.map → vidply.chunk-HZ7UOKOU.js.map} +0 -0
  102. /package/dist/dev/{vidply.chunk-LDVFAFGC.js.map → vidply.chunk-JKMQGLCJ.js.map} +0 -0
  103. /package/dist/dev/{vidply.chunk-HOYEMJSD.js.map → vidply.chunk-JZNZX32Z.js.map} +0 -0
  104. /package/dist/dev/{vidply.chunk-JAKZNGOR.js.map → vidply.chunk-P25MRJ6O.js.map} +0 -0
  105. /package/dist/dev/{vidply.chunk-5IK3IC5V.js.map → vidply.chunk-PRFNESYA.js.map} +0 -0
  106. /package/dist/dev/{vidply.chunk-C55OBT5H.js.map → vidply.chunk-UNFGMABP.js.map} +0 -0
package/README.md CHANGED
@@ -54,6 +54,7 @@ Try VidPly in action:
54
54
  - **Buffering Spinner** - Centered loading spinner shown automatically while media is buffering (HTML5, HLS, DASH)
55
55
  - **Download Button** - Optional download control with custom URL support (`downloadButton` + `downloadUrl`)
56
56
  - **Preview Thumbnails** - Video preview thumbnails on progress bar hover
57
+ - **OS Media Controls** - Media Session API integration: now-playing metadata (title/artist/album/artwork) and lock-screen / notification / headset controls, including previous/next track for playlists
57
58
  - **Playlists** - Full playlist support with auto-advance and navigation
58
59
  - Audio playlists with track info
59
60
  - Video playlists with thumbnails
@@ -354,7 +355,13 @@ const player = new Player('#video', {
354
355
  height: 450,
355
356
  poster: 'poster.jpg',
356
357
  responsive: true,
357
-
358
+
359
+ // Media metadata + OS media controls (Media Session API)
360
+ title: null, // Now-playing title (lock-screen / notification)
361
+ artist: null, // Now-playing artist/author
362
+ album: null, // Now-playing album/collection
363
+ mediaSession: true, // Expose OS media controls + metadata (set false to opt out)
364
+
358
365
  // Playback
359
366
  autoplay: false,
360
367
  loop: false,
@@ -381,6 +388,7 @@ const player = new Player('#video', {
381
388
  audioDescriptionButton: true,
382
389
  signLanguageButton: true,
383
390
  fullscreenButton: true,
391
+ helpButton: true, // Show a keyboard-shortcuts help button (requires keyboard: true)
384
392
  pipButton: false,
385
393
  downloadButton: false, // Show a download button in the control bar
386
394
  downloadUrl: null, // Optional explicit download URL (falls back to current src)
@@ -439,7 +447,8 @@ const player = new Player('#video', {
439
447
  'speed-menu': ['s'],
440
448
  'quality-menu': ['q'],
441
449
  'chapters-menu': ['j'],
442
- 'transcript-toggle': ['t']
450
+ 'transcript-toggle': ['t'],
451
+ 'help': ['?']
443
452
  },
444
453
 
445
454
  // Accessibility
@@ -526,6 +535,7 @@ const player = new Player('#video', {
526
535
  | <kbd>Q</kbd> | Open Quality Menu |
527
536
  | <kbd>J</kbd> | Open Chapters Menu |
528
537
  | <kbd>T</kbd> | Toggle Transcript |
538
+ | <kbd>?</kbd> | Show Keyboard Shortcuts help |
529
539
  | <kbd>D</kbd> | Toggle Drag Mode (Transcript/Sign Language) |
530
540
  | <kbd>R</kbd> | Toggle Resize Mode (Transcript/Sign Language) |
531
541
  | <kbd>Escape</kbd> | Exit Drag/Resize Mode or Close Menus |
@@ -693,6 +703,24 @@ player.showSettings() // Open settings dialog
693
703
  player.hideSettings() // Close settings dialog
694
704
  ```
695
705
 
706
+ ### Keyboard Shortcuts Help
707
+
708
+ ```javascript
709
+ player.toggleKeyboardHelp() // Toggle the keyboard-shortcuts help dialog
710
+ player.showKeyboardHelp() // Open the help dialog
711
+ player.hideKeyboardHelp() // Close the help dialog
712
+ ```
713
+
714
+ The dialog is built from the live `keyboardShortcuts` bindings (including any
715
+ overrides) and is also reachable via the control-bar help button and the
716
+ <kbd>?</kbd> shortcut. It only lists shortcuts that are relevant to the
717
+ specific player: feature shortcuts (captions, caption styling, speed, quality,
718
+ chapters, transcript, fullscreen) are shown only when that feature is actually
719
+ available, so an audio-only player or a video without captions won't advertise
720
+ shortcuts it can't perform. The list is rebuilt each time the dialog opens, so
721
+ features that load later (e.g. HLS captions or quality levels) appear once
722
+ they're ready.
723
+
696
724
  ### State Information
697
725
 
698
726
  ```javascript
@@ -1,14 +1,14 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  CaptionManager
8
- } from "./vidply.chunk-LDVFAFGC.js";
9
- import "./vidply.chunk-UHMVDBDB.js";
10
- import "./vidply.chunk-5IK3IC5V.js";
11
- import "./vidply.chunk-NSMAZCMB.js";
8
+ } from "./vidply.chunk-JKMQGLCJ.js";
9
+ import "./vidply.chunk-6LYZYI5G.js";
10
+ import "./vidply.chunk-PRFNESYA.js";
11
+ import "./vidply.chunk-I6EDRYGJ.js";
12
12
 
13
13
  // src/core/DescriptionSpeechManager.ts
14
14
  var DescriptionSpeechManager = class {
@@ -847,4 +847,4 @@ var AudioDescriptionManager = class {
847
847
  export {
848
848
  AudioDescriptionManager
849
849
  };
850
- //# sourceMappingURL=vidply.AudioDescriptionManager-6RFVF27Z.js.map
850
+ //# sourceMappingURL=vidply.AudioDescriptionManager-JYYLK5KB.js.map
@@ -1,15 +1,15 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  focusFirstElement
8
- } from "./vidply.chunk-JAKZNGOR.js";
8
+ } from "./vidply.chunk-P25MRJ6O.js";
9
9
  import {
10
10
  DOMUtils,
11
11
  i18n
12
- } from "./vidply.chunk-NSMAZCMB.js";
12
+ } from "./vidply.chunk-I6EDRYGJ.js";
13
13
 
14
14
  // src/controls/CaptionStyleMenu.ts
15
15
  function captionStylePropertyName(property) {
@@ -297,4 +297,4 @@ function showCaptionStyleMenu(controlBar, button) {
297
297
  export {
298
298
  showCaptionStyleMenu
299
299
  };
300
- //# sourceMappingURL=vidply.CaptionStyleMenu-R2SCQ6VP.js.map
300
+ //# sourceMappingURL=vidply.CaptionStyleMenu-47RCKQF5.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  loadScriptOnce
8
- } from "./vidply.chunk-HOYEMJSD.js";
8
+ } from "./vidply.chunk-JZNZX32Z.js";
9
9
 
10
10
  // src/renderers/DASHRenderer.ts
11
11
  var DASHRenderer = class {
@@ -862,4 +862,4 @@ var DASHRenderer = class {
862
862
  export {
863
863
  DASHRenderer
864
864
  };
865
- //# sourceMappingURL=vidply.DASHRenderer-EOVEW73H.js.map
865
+ //# sourceMappingURL=vidply.DASHRenderer-VEJ4HDHO.js.map
@@ -1,18 +1,18 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  DraggableResizable
8
- } from "./vidply.chunk-C55OBT5H.js";
8
+ } from "./vidply.chunk-UNFGMABP.js";
9
9
  import {
10
10
  createIconElement
11
- } from "./vidply.chunk-RQG3MA7W.js";
11
+ } from "./vidply.chunk-UI3RYCVF.js";
12
12
  import {
13
13
  DOMUtils,
14
14
  i18n
15
- } from "./vidply.chunk-NSMAZCMB.js";
15
+ } from "./vidply.chunk-I6EDRYGJ.js";
16
16
 
17
17
  // src/core/FloatingPlayerManager.ts
18
18
  var FLOATING_CLAIM_EVENT = "vidply:floating-claim";
@@ -534,4 +534,4 @@ var FloatingPlayerManager = class {
534
534
  export {
535
535
  FloatingPlayerManager
536
536
  };
537
- //# sourceMappingURL=vidply.FloatingPlayerManager-V5XQWS75.js.map
537
+ //# sourceMappingURL=vidply.FloatingPlayerManager-C2UVRPZY.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  loadScriptOnce
8
- } from "./vidply.chunk-HOYEMJSD.js";
8
+ } from "./vidply.chunk-JZNZX32Z.js";
9
9
 
10
10
  // src/renderers/HLSRenderer.ts
11
11
  var HLSRenderer = class {
@@ -94,7 +94,7 @@ var HLSRenderer = class {
94
94
  return video.canPlayType("application/vnd.apple.mpegurl") !== "";
95
95
  }
96
96
  async initNative() {
97
- const { HTML5Renderer } = await import("./vidply.HTML5Renderer-P7ICKYU4.js");
97
+ const { HTML5Renderer } = await import("./vidply.HTML5Renderer-HLRQUOCU.js");
98
98
  const native = new HTML5Renderer(this.player);
99
99
  await native.init();
100
100
  this.play = () => native.play();
@@ -701,4 +701,4 @@ var HLSRenderer = class {
701
701
  export {
702
702
  HLSRenderer
703
703
  };
704
- //# sourceMappingURL=vidply.HLSRenderer-ZBEFVH5W.js.map
704
+ //# sourceMappingURL=vidply.HLSRenderer-ZVBK2TNQ.js.map
@@ -0,0 +1,12 @@
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 {
7
+ HTML5Renderer
8
+ } from "./vidply.chunk-CGYIED2I.js";
9
+ export {
10
+ HTML5Renderer
11
+ };
12
+ //# sourceMappingURL=vidply.HTML5Renderer-HLRQUOCU.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
  */
@@ -7,19 +7,19 @@ import {
7
7
  DraggablePanel,
8
8
  createLabeledSelect,
9
9
  preventDragOnElement
10
- } from "./vidply.chunk-W5BR65JY.js";
10
+ } from "./vidply.chunk-A4ESEOQ2.js";
11
11
  import {
12
12
  DraggableResizable
13
- } from "./vidply.chunk-C55OBT5H.js";
13
+ } from "./vidply.chunk-UNFGMABP.js";
14
14
  import {
15
15
  createIconElement
16
- } from "./vidply.chunk-RQG3MA7W.js";
17
- import "./vidply.chunk-JAKZNGOR.js";
18
- import "./vidply.chunk-5IK3IC5V.js";
16
+ } from "./vidply.chunk-UI3RYCVF.js";
17
+ import "./vidply.chunk-P25MRJ6O.js";
18
+ import "./vidply.chunk-PRFNESYA.js";
19
19
  import {
20
20
  DOMUtils,
21
21
  i18n
22
- } from "./vidply.chunk-NSMAZCMB.js";
22
+ } from "./vidply.chunk-I6EDRYGJ.js";
23
23
 
24
24
  // src/core/SignLanguageManager.ts
25
25
  var SignLanguageManager = class {
@@ -1083,4 +1083,4 @@ var SignLanguageManager = class {
1083
1083
  export {
1084
1084
  SignLanguageManager
1085
1085
  };
1086
- //# sourceMappingURL=vidply.SignLanguageManager-7IAJOVF6.js.map
1086
+ //# sourceMappingURL=vidply.SignLanguageManager-FLUCBW5H.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  loadScriptOnce
8
- } from "./vidply.chunk-HOYEMJSD.js";
8
+ } from "./vidply.chunk-JZNZX32Z.js";
9
9
 
10
10
  // src/renderers/SoundCloudRenderer.ts
11
11
  var SoundCloudRenderer = class {
@@ -337,4 +337,4 @@ export {
337
337
  SoundCloudRenderer,
338
338
  SoundCloudRenderer_default as default
339
339
  };
340
- //# sourceMappingURL=vidply.SoundCloudRenderer-OA7QQYGN.js.map
340
+ //# sourceMappingURL=vidply.SoundCloudRenderer-MGMAJ7NK.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
  */
@@ -8,28 +8,28 @@ import {
8
8
  createLabeledSelect,
9
9
  createMenuItem,
10
10
  preventDragOnElement
11
- } from "./vidply.chunk-W5BR65JY.js";
11
+ } from "./vidply.chunk-A4ESEOQ2.js";
12
12
  import {
13
13
  DraggableResizable
14
- } from "./vidply.chunk-C55OBT5H.js";
14
+ } from "./vidply.chunk-UNFGMABP.js";
15
15
  import {
16
16
  TimeUtils
17
- } from "./vidply.chunk-YVCYQZJI.js";
17
+ } from "./vidply.chunk-HZ7UOKOU.js";
18
18
  import {
19
19
  createIconElement
20
- } from "./vidply.chunk-RQG3MA7W.js";
20
+ } from "./vidply.chunk-UI3RYCVF.js";
21
21
  import {
22
22
  focusElement
23
- } from "./vidply.chunk-JAKZNGOR.js";
23
+ } from "./vidply.chunk-P25MRJ6O.js";
24
24
  import {
25
25
  StorageManager,
26
26
  deriveTrackLabel
27
- } from "./vidply.chunk-UHMVDBDB.js";
28
- import "./vidply.chunk-5IK3IC5V.js";
27
+ } from "./vidply.chunk-6LYZYI5G.js";
28
+ import "./vidply.chunk-PRFNESYA.js";
29
29
  import {
30
30
  DOMUtils,
31
31
  i18n
32
- } from "./vidply.chunk-NSMAZCMB.js";
32
+ } from "./vidply.chunk-I6EDRYGJ.js";
33
33
 
34
34
  // src/controls/TranscriptManager.ts
35
35
  var TranscriptManager = class {
@@ -1891,4 +1891,4 @@ var TranscriptManager = class {
1891
1891
  export {
1892
1892
  TranscriptManager
1893
1893
  };
1894
- //# sourceMappingURL=vidply.TranscriptManager-BPM3T23L.js.map
1894
+ //# sourceMappingURL=vidply.TranscriptManager-Y2RYXHJW.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  loadScriptOnce
8
- } from "./vidply.chunk-HOYEMJSD.js";
8
+ } from "./vidply.chunk-JZNZX32Z.js";
9
9
 
10
10
  // src/renderers/VimeoRenderer.ts
11
11
  var VimeoRenderer = class {
@@ -236,4 +236,4 @@ var VimeoRenderer = class {
236
236
  export {
237
237
  VimeoRenderer
238
238
  };
239
- //# sourceMappingURL=vidply.VimeoRenderer-BRHFYPNJ.js.map
239
+ //# sourceMappingURL=vidply.VimeoRenderer-RQFQD7OE.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  loadScriptOnce
8
- } from "./vidply.chunk-HOYEMJSD.js";
8
+ } from "./vidply.chunk-JZNZX32Z.js";
9
9
 
10
10
  // src/renderers/YouTubeRenderer.ts
11
11
  var YouTubeRenderer = class {
@@ -235,4 +235,4 @@ var YouTubeRenderer = class {
235
235
  export {
236
236
  YouTubeRenderer
237
237
  };
238
- //# sourceMappingURL=vidply.YouTubeRenderer-HRTN4EJ5.js.map
238
+ //# sourceMappingURL=vidply.YouTubeRenderer-EU2BARZF.js.map
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  i18n,
8
8
  shallowSanitize
9
- } from "./vidply.chunk-NSMAZCMB.js";
9
+ } from "./vidply.chunk-I6EDRYGJ.js";
10
10
 
11
11
  // src/utils/StorageManager.ts
12
12
  function clamp(n, min, max) {
@@ -255,4 +255,4 @@ export {
255
255
  StorageManager,
256
256
  deriveTrackLabel
257
257
  };
258
- //# sourceMappingURL=vidply.chunk-UHMVDBDB.js.map
258
+ //# sourceMappingURL=vidply.chunk-6LYZYI5G.js.map
@@ -1,21 +1,21 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  createIconElement
8
- } from "./vidply.chunk-RQG3MA7W.js";
8
+ } from "./vidply.chunk-UI3RYCVF.js";
9
9
  import {
10
10
  focusElement
11
- } from "./vidply.chunk-JAKZNGOR.js";
11
+ } from "./vidply.chunk-P25MRJ6O.js";
12
12
  import {
13
13
  reducedMotionScrollOptions
14
- } from "./vidply.chunk-5IK3IC5V.js";
14
+ } from "./vidply.chunk-PRFNESYA.js";
15
15
  import {
16
16
  DOMUtils,
17
17
  i18n
18
- } from "./vidply.chunk-NSMAZCMB.js";
18
+ } from "./vidply.chunk-I6EDRYGJ.js";
19
19
 
20
20
  // src/utils/FormUtils.ts
21
21
  function createLabeledSelect({
@@ -639,4 +639,4 @@ export {
639
639
  createMenuItem,
640
640
  DraggablePanel
641
641
  };
642
- //# sourceMappingURL=vidply.chunk-W5BR65JY.js.map
642
+ //# sourceMappingURL=vidply.chunk-A4ESEOQ2.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
  */
@@ -297,4 +297,4 @@ var HTML5Renderer = class {
297
297
  export {
298
298
  HTML5Renderer
299
299
  };
300
- //# sourceMappingURL=vidply.chunk-XAK3DPTO.js.map
300
+ //# sourceMappingURL=vidply.chunk-CGYIED2I.js.map
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
6
  import {
7
7
  i18n
8
- } from "./vidply.chunk-NSMAZCMB.js";
8
+ } from "./vidply.chunk-I6EDRYGJ.js";
9
9
 
10
10
  // src/utils/TimeUtils.ts
11
11
  var TimeUtils = {
@@ -64,4 +64,4 @@ var TimeUtils = {
64
64
  export {
65
65
  TimeUtils
66
66
  };
67
- //# sourceMappingURL=vidply.chunk-YVCYQZJI.js.map
67
+ //# sourceMappingURL=vidply.chunk-HZ7UOKOU.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * VidPly v1.2.1 - 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
  */
@@ -429,6 +429,33 @@ var en = {
429
429
  reset: "Reset to defaults",
430
430
  close: "Close"
431
431
  },
432
+ help: {
433
+ title: "Keyboard shortcuts",
434
+ button: "Keyboard shortcuts",
435
+ close: "Close",
436
+ or: "or",
437
+ keys: {
438
+ space: "Space"
439
+ },
440
+ actions: {
441
+ "play-pause": "Play / Pause",
442
+ "seek-backward": "Seek backward",
443
+ "seek-forward": "Seek forward",
444
+ "volume-up": "Volume up",
445
+ "volume-down": "Volume down",
446
+ "mute": "Mute / Unmute",
447
+ "captions": "Toggle captions",
448
+ "caption-style-menu": "Caption styling",
449
+ "speed-down": "Decrease speed",
450
+ "speed-up": "Increase speed",
451
+ "speed-menu": "Playback speed",
452
+ "quality-menu": "Quality",
453
+ "chapters-menu": "Chapters",
454
+ "transcript-toggle": "Toggle transcript",
455
+ "fullscreen": "Toggle fullscreen",
456
+ "help": "Keyboard shortcuts"
457
+ }
458
+ },
432
459
  speeds: {
433
460
  normal: "Normal"
434
461
  },
@@ -471,10 +498,10 @@ var en = {
471
498
 
472
499
  // src/i18n/translations.ts
473
500
  var builtInLanguageLoaders = {
474
- de: () => import("./vidply.de-5W5LBFSJ.js"),
475
- es: () => import("./vidply.es-SHDAT6L6.js"),
476
- fr: () => import("./vidply.fr-2JANOMNB.js"),
477
- ja: () => import("./vidply.ja-WWMSTEJH.js")
501
+ de: () => import("./vidply.de-VAUVSQXC.js"),
502
+ es: () => import("./vidply.es-G65HFWO6.js"),
503
+ fr: () => import("./vidply.fr-MJNOZELM.js"),
504
+ ja: () => import("./vidply.ja-INMDHIYJ.js")
478
505
  };
479
506
  function getBaseTranslations() {
480
507
  return { en };
@@ -658,4 +685,4 @@ export {
658
685
  shallowSanitize,
659
686
  i18n
660
687
  };
661
- //# sourceMappingURL=vidply.chunk-NSMAZCMB.js.map
688
+ //# sourceMappingURL=vidply.chunk-I6EDRYGJ.js.map