vidply 1.0.28 → 1.0.29

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 (61) hide show
  1. package/dist/dev/{vidply.TranscriptManager-QSF2PWUN.js → vidply.TranscriptManager-T677KF4N.js} +4 -5
  2. package/dist/dev/{vidply.TranscriptManager-QSF2PWUN.js.map → vidply.TranscriptManager-T677KF4N.js.map} +2 -2
  3. package/dist/dev/{vidply.chunk-SRM7VNHG.js → vidply.chunk-GS2JX5RQ.js} +136 -95
  4. package/dist/dev/vidply.chunk-GS2JX5RQ.js.map +7 -0
  5. package/dist/dev/vidply.esm.js +1674 -310
  6. package/dist/dev/vidply.esm.js.map +4 -4
  7. package/dist/legacy/vidply.js +1776 -348
  8. package/dist/legacy/vidply.js.map +4 -4
  9. package/dist/legacy/vidply.min.js +1 -1
  10. package/dist/legacy/vidply.min.meta.json +92 -24
  11. package/dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js +6 -0
  12. package/dist/prod/vidply.chunk-LGTJRPUL.min.js +6 -0
  13. package/dist/prod/vidply.esm.min.js +8 -8
  14. package/dist/vidply.esm.min.meta.json +92 -24
  15. package/package.json +1 -1
  16. package/src/controls/ControlBar.js +3 -7
  17. package/src/controls/TranscriptManager.js +7 -7
  18. package/src/core/AudioDescriptionManager.js +701 -0
  19. package/src/core/Player.js +4776 -4921
  20. package/src/core/SignLanguageManager.js +1134 -0
  21. package/src/utils/DOMUtils.js +153 -114
  22. package/src/utils/MenuFactory.js +374 -0
  23. package/dist/dev/vidply.TranscriptManager-GZKY44ON.js +0 -1744
  24. package/dist/dev/vidply.TranscriptManager-GZKY44ON.js.map +0 -7
  25. package/dist/dev/vidply.TranscriptManager-UTJBQC5B.js +0 -1744
  26. package/dist/dev/vidply.TranscriptManager-UTJBQC5B.js.map +0 -7
  27. package/dist/dev/vidply.chunk-5663PYKK.js +0 -1631
  28. package/dist/dev/vidply.chunk-5663PYKK.js.map +0 -7
  29. package/dist/dev/vidply.chunk-SRM7VNHG.js.map +0 -7
  30. package/dist/dev/vidply.chunk-UH5MTGKF.js +0 -1630
  31. package/dist/dev/vidply.chunk-UH5MTGKF.js.map +0 -7
  32. package/dist/dev/vidply.de-RXAJM5QE.js +0 -181
  33. package/dist/dev/vidply.de-RXAJM5QE.js.map +0 -7
  34. package/dist/dev/vidply.de-THBIMP4S.js +0 -180
  35. package/dist/dev/vidply.de-THBIMP4S.js.map +0 -7
  36. package/dist/dev/vidply.es-6VWDNNNL.js +0 -180
  37. package/dist/dev/vidply.es-6VWDNNNL.js.map +0 -7
  38. package/dist/dev/vidply.es-SADVLJTQ.js +0 -181
  39. package/dist/dev/vidply.es-SADVLJTQ.js.map +0 -7
  40. package/dist/dev/vidply.fr-V3VAYBBT.js +0 -181
  41. package/dist/dev/vidply.fr-V3VAYBBT.js.map +0 -7
  42. package/dist/dev/vidply.fr-WHTWCHWT.js +0 -180
  43. package/dist/dev/vidply.fr-WHTWCHWT.js.map +0 -7
  44. package/dist/dev/vidply.ja-BFQNPOFI.js +0 -180
  45. package/dist/dev/vidply.ja-BFQNPOFI.js.map +0 -7
  46. package/dist/dev/vidply.ja-KL2TLZGJ.js +0 -181
  47. package/dist/dev/vidply.ja-KL2TLZGJ.js.map +0 -7
  48. package/dist/prod/vidply.TranscriptManager-DZ2WZU3K.min.js +0 -6
  49. package/dist/prod/vidply.TranscriptManager-E5QHGFIR.min.js +0 -6
  50. package/dist/prod/vidply.TranscriptManager-UZ6DUFB6.min.js +0 -6
  51. package/dist/prod/vidply.chunk-5DWTMWEO.min.js +0 -6
  52. package/dist/prod/vidply.chunk-IBNYTGGM.min.js +0 -6
  53. package/dist/prod/vidply.chunk-MBUR3U5L.min.js +0 -6
  54. package/dist/prod/vidply.de-HGJBCLLE.min.js +0 -6
  55. package/dist/prod/vidply.de-SWFW4HYT.min.js +0 -6
  56. package/dist/prod/vidply.es-7BJ2DJAY.min.js +0 -6
  57. package/dist/prod/vidply.es-CZEBXCZN.min.js +0 -6
  58. package/dist/prod/vidply.fr-DPVR5DFY.min.js +0 -6
  59. package/dist/prod/vidply.fr-HFOL7MWA.min.js +0 -6
  60. package/dist/prod/vidply.ja-PEBVWKVH.min.js +0 -6
  61. package/dist/prod/vidply.ja-QTVU5C25.min.js +0 -6
@@ -6,7 +6,7 @@
6
6
  "format": "esm"
7
7
  },
8
8
  "src/utils/DOMUtils.js": {
9
- "bytes": 6031,
9
+ "bytes": 7360,
10
10
  "imports": [],
11
11
  "format": "esm"
12
12
  },
@@ -98,8 +98,13 @@
98
98
  "imports": [],
99
99
  "format": "esm"
100
100
  },
101
+ "src/utils/PerformanceUtils.js": {
102
+ "bytes": 1820,
103
+ "imports": [],
104
+ "format": "esm"
105
+ },
101
106
  "src/controls/ControlBar.js": {
102
- "bytes": 132009,
107
+ "bytes": 131933,
103
108
  "imports": [
104
109
  {
105
110
  "path": "src/utils/DOMUtils.js",
@@ -125,6 +130,11 @@
125
130
  "path": "src/utils/FocusUtils.js",
126
131
  "kind": "import-statement",
127
132
  "original": "../utils/FocusUtils.js"
133
+ },
134
+ {
135
+ "path": "src/utils/PerformanceUtils.js",
136
+ "kind": "import-statement",
137
+ "original": "../utils/PerformanceUtils.js"
128
138
  }
129
139
  ],
130
140
  "format": "esm"
@@ -134,11 +144,6 @@
134
144
  "imports": [],
135
145
  "format": "esm"
136
146
  },
137
- "src/utils/PerformanceUtils.js": {
138
- "bytes": 1820,
139
- "imports": [],
140
- "format": "esm"
141
- },
142
147
  "src/controls/CaptionManager.js": {
143
148
  "bytes": 17842,
144
149
  "imports": [
@@ -222,8 +227,55 @@
222
227
  ],
223
228
  "format": "esm"
224
229
  },
230
+ "src/core/AudioDescriptionManager.js": {
231
+ "bytes": 26497,
232
+ "imports": [
233
+ {
234
+ "path": "src/controls/CaptionManager.js",
235
+ "kind": "import-statement",
236
+ "original": "../controls/CaptionManager.js"
237
+ }
238
+ ],
239
+ "format": "esm"
240
+ },
241
+ "src/core/SignLanguageManager.js": {
242
+ "bytes": 39788,
243
+ "imports": [
244
+ {
245
+ "path": "src/utils/DOMUtils.js",
246
+ "kind": "import-statement",
247
+ "original": "../utils/DOMUtils.js"
248
+ },
249
+ {
250
+ "path": "src/icons/Icons.js",
251
+ "kind": "import-statement",
252
+ "original": "../icons/Icons.js"
253
+ },
254
+ {
255
+ "path": "src/i18n/i18n.js",
256
+ "kind": "import-statement",
257
+ "original": "../i18n/i18n.js"
258
+ },
259
+ {
260
+ "path": "src/utils/DraggableResizable.js",
261
+ "kind": "import-statement",
262
+ "original": "../utils/DraggableResizable.js"
263
+ },
264
+ {
265
+ "path": "src/utils/MenuUtils.js",
266
+ "kind": "import-statement",
267
+ "original": "../utils/MenuUtils.js"
268
+ },
269
+ {
270
+ "path": "src/utils/FormUtils.js",
271
+ "kind": "import-statement",
272
+ "original": "../utils/FormUtils.js"
273
+ }
274
+ ],
275
+ "format": "esm"
276
+ },
225
277
  "src/controls/TranscriptManager.js": {
226
- "bytes": 80197,
278
+ "bytes": 80133,
227
279
  "imports": [
228
280
  {
229
281
  "path": "src/utils/DOMUtils.js",
@@ -300,7 +352,7 @@
300
352
  "format": "esm"
301
353
  },
302
354
  "src/core/Player.js": {
303
- "bytes": 214111,
355
+ "bytes": 210757,
304
356
  "imports": [
305
357
  {
306
358
  "path": "src/utils/EventEmitter.js",
@@ -367,6 +419,16 @@
367
419
  "kind": "import-statement",
368
420
  "original": "../utils/PerformanceUtils.js"
369
421
  },
422
+ {
423
+ "path": "src/core/AudioDescriptionManager.js",
424
+ "kind": "import-statement",
425
+ "original": "./AudioDescriptionManager.js"
426
+ },
427
+ {
428
+ "path": "src/core/SignLanguageManager.js",
429
+ "kind": "import-statement",
430
+ "original": "./SignLanguageManager.js"
431
+ },
370
432
  {
371
433
  "path": "src/controls/TranscriptManager.js",
372
434
  "kind": "dynamic-import",
@@ -491,11 +553,11 @@
491
553
  "kind": "import-statement"
492
554
  },
493
555
  {
494
- "path": "dist/prod/vidply.chunk-5DWTMWEO.min.js",
556
+ "path": "dist/prod/vidply.chunk-LGTJRPUL.min.js",
495
557
  "kind": "import-statement"
496
558
  },
497
559
  {
498
- "path": "dist/prod/vidply.TranscriptManager-DZ2WZU3K.min.js",
560
+ "path": "dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js",
499
561
  "kind": "dynamic-import"
500
562
  },
501
563
  {
@@ -525,29 +587,35 @@
525
587
  "src/utils/EventEmitter.js": {
526
588
  "bytesInOutput": 436
527
589
  },
528
- "src/controls/ControlBar.js": {
529
- "bytesInOutput": 56830
530
- },
531
590
  "src/utils/PerformanceUtils.js": {
532
591
  "bytesInOutput": 256
533
592
  },
593
+ "src/controls/ControlBar.js": {
594
+ "bytesInOutput": 56781
595
+ },
534
596
  "src/controls/CaptionManager.js": {
535
597
  "bytesInOutput": 7279
536
598
  },
537
599
  "src/controls/KeyboardManager.js": {
538
600
  "bytesInOutput": 3991
539
601
  },
602
+ "src/core/AudioDescriptionManager.js": {
603
+ "bytesInOutput": 9641
604
+ },
605
+ "src/core/SignLanguageManager.js": {
606
+ "bytesInOutput": 19116
607
+ },
540
608
  "src/core/Player.js": {
541
- "bytesInOutput": 78433
609
+ "bytesInOutput": 75524
542
610
  },
543
611
  "src/features/PlaylistManager.js": {
544
- "bytesInOutput": 21344
612
+ "bytesInOutput": 21345
545
613
  },
546
614
  "src/index.js": {
547
615
  "bytesInOutput": 1869
548
616
  }
549
617
  },
550
- "bytes": 170809
618
+ "bytes": 196610
551
619
  },
552
620
  "dist/prod/vidply.de-FR3XX54P.min.js": {
553
621
  "imports": [],
@@ -627,10 +695,10 @@
627
695
  },
628
696
  "bytes": 4973
629
697
  },
630
- "dist/prod/vidply.TranscriptManager-DZ2WZU3K.min.js": {
698
+ "dist/prod/vidply.TranscriptManager-WFZSW6NR.min.js": {
631
699
  "imports": [
632
700
  {
633
- "path": "dist/prod/vidply.chunk-5DWTMWEO.min.js",
701
+ "path": "dist/prod/vidply.chunk-LGTJRPUL.min.js",
634
702
  "kind": "import-statement"
635
703
  }
636
704
  ],
@@ -640,12 +708,12 @@
640
708
  "entryPoint": "src/controls/TranscriptManager.js",
641
709
  "inputs": {
642
710
  "src/controls/TranscriptManager.js": {
643
- "bytesInOutput": 42861
711
+ "bytesInOutput": 42771
644
712
  }
645
713
  },
646
- "bytes": 43132
714
+ "bytes": 43042
647
715
  },
648
- "dist/prod/vidply.chunk-5DWTMWEO.min.js": {
716
+ "dist/prod/vidply.chunk-LGTJRPUL.min.js": {
649
717
  "imports": [
650
718
  {
651
719
  "path": "dist/prod/vidply.de-FR3XX54P.min.js",
@@ -682,7 +750,7 @@
682
750
  ],
683
751
  "inputs": {
684
752
  "src/utils/DOMUtils.js": {
685
- "bytesInOutput": 2244
753
+ "bytesInOutput": 2348
686
754
  },
687
755
  "src/i18n/languages/en.js": {
688
756
  "bytesInOutput": 6159
@@ -715,7 +783,7 @@
715
783
  "bytesInOutput": 776
716
784
  }
717
785
  },
718
- "bytes": 40147
786
+ "bytes": 40251
719
787
  },
720
788
  "dist/prod/vidply.YouTubeRenderer-MFC2GMAC.min.js": {
721
789
  "imports": [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vidply",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "description": "Universal, accessible video & audio player with ES6 modules",
5
5
  "type": "module",
6
6
  "main": "dist/prod/vidply.esm.min.js",
@@ -7,6 +7,7 @@ import {TimeUtils} from '../utils/TimeUtils.js';
7
7
  import {createIconElement} from '../icons/Icons.js';
8
8
  import {i18n} from '../i18n/i18n.js';
9
9
  import {focusElement, focusFirstElement} from '../utils/FocusUtils.js';
10
+ import {isMobile} from '../utils/PerformanceUtils.js';
10
11
 
11
12
  export class ControlBar {
12
13
  constructor(player) {
@@ -30,11 +31,6 @@ export class ControlBar {
30
31
  this.setupOverflowDetection();
31
32
  }
32
33
 
33
- // Helper method to check if we're on a mobile device
34
- isMobile() {
35
- return window.innerWidth < 768;
36
- }
37
-
38
34
  // Helper method to detect touch devices
39
35
  isTouchDevice() {
40
36
  return (
@@ -46,7 +42,7 @@ export class ControlBar {
46
42
 
47
43
  // Smart menu positioning to avoid overflow
48
44
  positionMenu(menu, button, immediate = false) {
49
- const isMobile = this.isMobile();
45
+ const mobile = isMobile();
50
46
  const isOverflowMenu = menu.classList.contains(`${this.player.options.classPrefix}-overflow-menu-list`);
51
47
  const isFullscreen = this.player.state.fullscreen;
52
48
 
@@ -101,7 +97,7 @@ export class ControlBar {
101
97
  return;
102
98
  }
103
99
 
104
- if (isMobile) {
100
+ if (mobile) {
105
101
  // On mobile, ensure menus stay within viewport
106
102
  const isVolumeMenu = menu.classList.contains(`${this.player.options.classPrefix}-volume-menu`);
107
103
 
@@ -750,15 +750,13 @@ export class TranscriptManager {
750
750
  const metadataTrack = textTracks.find(track => track.kind === 'metadata');
751
751
 
752
752
  // We need at least one track type available for display
753
- // Description tracks are only included if audio description is enabled
754
- const hasDescriptionTrack = descriptionTrack && this.player.state.audioDescriptionEnabled;
755
- if (!captionTrack && !hasDescriptionTrack && !metadataTrack) {
753
+ // (captions, descriptions, or metadata - though metadata is not displayed)
754
+ if (!captionTrack && !descriptionTrack && !metadataTrack) {
756
755
  this.showNoTranscriptMessage();
757
756
  return;
758
757
  }
759
758
 
760
- // Enable all tracks to load cues (even if we won't display descriptions)
761
- // This ensures descriptions are ready when audio description is enabled
759
+ // Enable all tracks to load cues so they're available for the transcript
762
760
  const tracksToLoad = [captionTrack, descriptionTrack, metadataTrack].filter(Boolean);
763
761
  tracksToLoad.forEach(track => {
764
762
  if (track.mode === 'disabled') {
@@ -806,8 +804,10 @@ export class TranscriptManager {
806
804
  });
807
805
  }
808
806
 
809
- // Only include description cues if audio description is enabled
810
- if (descriptionTrack && descriptionTrack.cues && this.player.state.audioDescriptionEnabled) {
807
+ // Always include description cues in transcript for completeness
808
+ // (Audio description toggle only controls whether they're read aloud,
809
+ // but the transcript should always show all content for accessibility)
810
+ if (descriptionTrack && descriptionTrack.cues) {
811
811
  Array.from(descriptionTrack.cues).forEach(cue => {
812
812
  allCues.push({ cue, type: 'description' });
813
813
  });