vidply 1.0.22 → 1.0.25
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.
- package/dist/dev/vidply.HLSRenderer-PNP5OPES.js +255 -0
- package/dist/dev/vidply.HLSRenderer-PNP5OPES.js.map +7 -0
- package/dist/dev/vidply.HTML5Renderer-LXQ3I45Q.js +12 -0
- package/dist/dev/vidply.HTML5Renderer-LXQ3I45Q.js.map +7 -0
- package/dist/dev/vidply.TranscriptManager-GZKY44ON.js +1744 -0
- package/dist/dev/vidply.TranscriptManager-GZKY44ON.js.map +7 -0
- package/dist/dev/vidply.VimeoRenderer-DCETT5IZ.js +213 -0
- package/dist/dev/vidply.VimeoRenderer-DCETT5IZ.js.map +7 -0
- package/dist/dev/vidply.YouTubeRenderer-QLMMD757.js +227 -0
- package/dist/dev/vidply.YouTubeRenderer-QLMMD757.js.map +7 -0
- package/dist/dev/vidply.chunk-UEIJOJH6.js +243 -0
- package/dist/dev/vidply.chunk-UEIJOJH6.js.map +7 -0
- package/dist/dev/vidply.chunk-UH5MTGKF.js +1630 -0
- package/dist/dev/vidply.chunk-UH5MTGKF.js.map +7 -0
- package/dist/dev/vidply.de-THBIMP4S.js +180 -0
- package/dist/dev/vidply.de-THBIMP4S.js.map +7 -0
- package/dist/dev/vidply.es-6VWDNNNL.js +180 -0
- package/dist/dev/vidply.es-6VWDNNNL.js.map +7 -0
- package/dist/{vidply.esm.js → dev/vidply.esm.js} +530 -5082
- package/dist/dev/vidply.esm.js.map +7 -0
- package/dist/dev/vidply.fr-WHTWCHWT.js +180 -0
- package/dist/dev/vidply.fr-WHTWCHWT.js.map +7 -0
- package/dist/dev/vidply.ja-BFQNPOFI.js +180 -0
- package/dist/dev/vidply.ja-BFQNPOFI.js.map +7 -0
- package/dist/{vidply.js → legacy/vidply.js} +7833 -7317
- package/dist/legacy/vidply.js.map +7 -0
- package/dist/legacy/vidply.min.js +6 -0
- package/dist/{vidply.min.meta.json → legacy/vidply.min.meta.json} +120 -94
- package/dist/prod/vidply.HLSRenderer-4PW35TCX.min.js +6 -0
- package/dist/prod/vidply.HTML5Renderer-XJCSUETP.min.js +6 -0
- package/dist/prod/vidply.TranscriptManager-UZ6DUFB6.min.js +6 -0
- package/dist/prod/vidply.VimeoRenderer-P3PU27S7.min.js +6 -0
- package/dist/prod/vidply.YouTubeRenderer-DGKKWB5M.min.js +6 -0
- package/dist/prod/vidply.chunk-BQBGEJF7.min.js +6 -0
- package/dist/prod/vidply.chunk-MBUR3U5L.min.js +6 -0
- package/dist/prod/vidply.de-SWFW4HYT.min.js +6 -0
- package/dist/prod/vidply.es-7BJ2DJAY.min.js +6 -0
- package/dist/prod/vidply.esm.min.js +21 -0
- package/dist/prod/vidply.fr-DPVR5DFY.min.js +6 -0
- package/dist/prod/vidply.ja-PEBVWKVH.min.js +6 -0
- package/dist/vidply.css +184 -4
- package/dist/vidply.esm.min.meta.json +284 -102
- package/dist/vidply.min.css +1 -1
- package/package.json +4 -4
- package/src/controls/ControlBar.js +3341 -3246
- package/src/controls/TranscriptManager.js +2296 -2271
- package/src/core/Player.js +4807 -4730
- package/src/features/PlaylistManager.js +1203 -1039
- package/src/i18n/i18n.js +51 -7
- package/src/i18n/languages/de.js +5 -1
- package/src/i18n/languages/en.js +5 -1
- package/src/i18n/languages/es.js +5 -1
- package/src/i18n/languages/fr.js +5 -1
- package/src/i18n/languages/ja.js +5 -1
- package/src/i18n/translations.js +35 -18
- package/src/icons/Icons.js +2 -20
- package/src/renderers/HLSRenderer.js +7 -0
- package/src/styles/vidply.css +184 -4
- package/src/utils/DOMUtils.js +67 -0
- package/src/utils/MenuUtils.js +10 -4
- package/src/utils/SettingsMenuFactory.js +8 -4
- package/src/utils/WindowComponents.js +6 -4
- package/dist/vidply.esm.js.map +0 -7
- package/dist/vidply.esm.min.js +0 -18
- package/dist/vidply.js.map +0 -7
- package/dist/vidply.min.js +0 -18
package/dist/vidply.css
CHANGED
|
@@ -495,7 +495,6 @@
|
|
|
495
495
|
background: linear-gradient(135deg, var(--vidply-black) 0%, #2a2a2a 100%);
|
|
496
496
|
height: 100%;
|
|
497
497
|
order: 1; /* First in flex order */
|
|
498
|
-
overflow: hidden;
|
|
499
498
|
position: relative;
|
|
500
499
|
width: 100%;
|
|
501
500
|
z-index: 1; /* Base video layer */
|
|
@@ -586,6 +585,8 @@
|
|
|
586
585
|
transform: translate(-50%, -50%);
|
|
587
586
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
588
587
|
z-index: var(--vidply-z-overlay);
|
|
588
|
+
border: 0.125rem solid var(--vidply-primary);
|
|
589
|
+
border-radius: 50%;
|
|
589
590
|
}
|
|
590
591
|
|
|
591
592
|
.vidply-play-overlay:hover {
|
|
@@ -675,7 +676,7 @@
|
|
|
675
676
|
.vidply-progress-time-wrapper {
|
|
676
677
|
align-items: center;
|
|
677
678
|
display: flex;
|
|
678
|
-
gap:
|
|
679
|
+
gap: 1.25rem;
|
|
679
680
|
margin-bottom: var(--vidply-gap-lg);
|
|
680
681
|
width: 100%;
|
|
681
682
|
}
|
|
@@ -687,6 +688,7 @@
|
|
|
687
688
|
cursor: pointer;
|
|
688
689
|
flex: 1;
|
|
689
690
|
height: 0.5625rem;
|
|
691
|
+
margin-right: 0.5rem;
|
|
690
692
|
position: relative;
|
|
691
693
|
transition: height 0.2s ease;
|
|
692
694
|
}
|
|
@@ -808,6 +810,82 @@
|
|
|
808
810
|
opacity: 0.5;
|
|
809
811
|
}
|
|
810
812
|
|
|
813
|
+
/* Button text - hidden by default, visible when CSS is disabled */
|
|
814
|
+
.vidply-button-text {
|
|
815
|
+
display: none;
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
/* When CSS is disabled or unavailable, button text will be visible */
|
|
819
|
+
|
|
820
|
+
/* This ensures buttons are functional even without CSS */
|
|
821
|
+
|
|
822
|
+
/* Tooltip styles - aria-hidden popovers for sighted users */
|
|
823
|
+
.vidply-tooltip {
|
|
824
|
+
background: #e0e0e0;
|
|
825
|
+
border-radius: var(--vidply-radius-sm);
|
|
826
|
+
color: #000;
|
|
827
|
+
font-size: var(--vidply-font-xs);
|
|
828
|
+
left: 50%;
|
|
829
|
+
opacity: 0;
|
|
830
|
+
padding: 0.375rem 0.5rem;
|
|
831
|
+
pointer-events: none;
|
|
832
|
+
position: absolute;
|
|
833
|
+
top: calc(100% + 0.5rem);
|
|
834
|
+
transform: translateX(-50%) translateY(-0.25rem);
|
|
835
|
+
transition: opacity var(--vidply-transition-fast), transform var(--vidply-transition-fast);
|
|
836
|
+
white-space: nowrap;
|
|
837
|
+
z-index: calc(var(--vidply-z-menu) + 1);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.vidply-tooltip::before {
|
|
841
|
+
border-color: transparent transparent #e0e0e0;
|
|
842
|
+
border-style: solid;
|
|
843
|
+
border-width: 0 0.375rem 0.375rem;
|
|
844
|
+
content: '';
|
|
845
|
+
left: 50%;
|
|
846
|
+
position: absolute;
|
|
847
|
+
top: -0.375rem;
|
|
848
|
+
transform: translateX(-50%);
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
/* Show tooltip on hover/focus */
|
|
852
|
+
.vidply-tooltip-visible {
|
|
853
|
+
opacity: 1;
|
|
854
|
+
transform: translateX(-50%) translateY(0);
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
/* In fullscreen mode, position tooltips above buttons */
|
|
858
|
+
.vidply-player.vidply-fullscreen .vidply-tooltip,
|
|
859
|
+
.vidply-player:fullscreen .vidply-tooltip {
|
|
860
|
+
bottom: calc(100% + 0.5rem);
|
|
861
|
+
top: auto;
|
|
862
|
+
transform: translateX(-50%) translateY(0.25rem);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
.vidply-player.vidply-fullscreen .vidply-tooltip-visible,
|
|
866
|
+
.vidply-player:fullscreen .vidply-tooltip-visible {
|
|
867
|
+
transform: translateX(-50%) translateY(0);
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
/* Adjust tooltip arrow for fullscreen (pointing down instead of up) */
|
|
871
|
+
.vidply-player.vidply-fullscreen .vidply-tooltip::before,
|
|
872
|
+
.vidply-player:fullscreen .vidply-tooltip::before {
|
|
873
|
+
border-color: #e0e0e0 transparent transparent;
|
|
874
|
+
border-width: 0.375rem 0.375rem 0;
|
|
875
|
+
bottom: -0.375rem;
|
|
876
|
+
top: auto;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
/* Ensure buttons with tooltips are positioned relatively */
|
|
880
|
+
.vidply-button,
|
|
881
|
+
.vidply-icon-button,
|
|
882
|
+
.vidply-sign-language-settings,
|
|
883
|
+
.vidply-sign-language-close,
|
|
884
|
+
.vidply-transcript-settings,
|
|
885
|
+
.vidply-transcript-close {
|
|
886
|
+
position: relative;
|
|
887
|
+
}
|
|
888
|
+
|
|
811
889
|
/* Icons */
|
|
812
890
|
.vidply-icon {
|
|
813
891
|
display: inline-block;
|
|
@@ -2145,14 +2223,29 @@
|
|
|
2145
2223
|
padding: 1rem 1.25rem;
|
|
2146
2224
|
}
|
|
2147
2225
|
|
|
2226
|
+
/* Track header - contains track number and duration */
|
|
2227
|
+
.vidply-track-header {
|
|
2228
|
+
align-items: center;
|
|
2229
|
+
display: flex;
|
|
2230
|
+
gap: 0.75rem;
|
|
2231
|
+
justify-content: space-between;
|
|
2232
|
+
margin-bottom: 0.25rem;
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2148
2235
|
.vidply-track-number {
|
|
2149
2236
|
color: var(--vidply-text-muted);
|
|
2150
2237
|
font-size: 0.75rem;
|
|
2151
2238
|
letter-spacing: 0.0313rem;
|
|
2152
|
-
margin-bottom: 0.25rem;
|
|
2153
2239
|
text-transform: uppercase;
|
|
2154
2240
|
}
|
|
2155
2241
|
|
|
2242
|
+
/* Duration in track info display */
|
|
2243
|
+
.vidply-track-duration {
|
|
2244
|
+
color: var(--vidply-text-muted);
|
|
2245
|
+
font-size: 0.75rem;
|
|
2246
|
+
font-variant-numeric: tabular-nums;
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2156
2249
|
.vidply-track-title {
|
|
2157
2250
|
color: var(--vidply-white);
|
|
2158
2251
|
font-size: 1.125rem;
|
|
@@ -2165,6 +2258,18 @@
|
|
|
2165
2258
|
font-size: 0.875rem;
|
|
2166
2259
|
}
|
|
2167
2260
|
|
|
2261
|
+
.vidply-track-description {
|
|
2262
|
+
color: var(--vidply-white-60);
|
|
2263
|
+
font-size: 0.8125rem;
|
|
2264
|
+
line-height: 1.4;
|
|
2265
|
+
margin-top: 0.5rem;
|
|
2266
|
+
max-height: 3.5em;
|
|
2267
|
+
overflow: hidden;
|
|
2268
|
+
display: -webkit-box;
|
|
2269
|
+
-webkit-line-clamp: 2;
|
|
2270
|
+
-webkit-box-orient: vertical;
|
|
2271
|
+
}
|
|
2272
|
+
|
|
2168
2273
|
/* Playlist Panel */
|
|
2169
2274
|
.vidply-playlist-panel {
|
|
2170
2275
|
background: var(--vidply-bg-playlist);
|
|
@@ -2270,6 +2375,13 @@
|
|
|
2270
2375
|
box-shadow: 0 0.5rem 1.5rem var(--vidply-black-60);
|
|
2271
2376
|
}
|
|
2272
2377
|
|
|
2378
|
+
/* Fullscreen thumbnail container - takes full width of card */
|
|
2379
|
+
.vidply-player.vidply-fullscreen .vidply-playlist-thumbnail-container,
|
|
2380
|
+
.vidply-player:fullscreen .vidply-playlist-thumbnail-container {
|
|
2381
|
+
position: relative;
|
|
2382
|
+
width: 100%;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2273
2385
|
.vidply-player.vidply-fullscreen .vidply-playlist-thumbnail,
|
|
2274
2386
|
.vidply-player:fullscreen .vidply-playlist-thumbnail {
|
|
2275
2387
|
width: 100%;
|
|
@@ -2277,11 +2389,26 @@
|
|
|
2277
2389
|
border-radius: 0;
|
|
2278
2390
|
}
|
|
2279
2391
|
|
|
2392
|
+
/* Larger duration badge in fullscreen for better visibility */
|
|
2393
|
+
.vidply-player.vidply-fullscreen .vidply-playlist-duration-badge,
|
|
2394
|
+
.vidply-player:fullscreen .vidply-playlist-duration-badge {
|
|
2395
|
+
bottom: 0.375rem;
|
|
2396
|
+
font-size: 0.75rem;
|
|
2397
|
+
padding: 0.1875rem 0.375rem;
|
|
2398
|
+
right: 0.375rem;
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2280
2401
|
.vidply-player.vidply-fullscreen .vidply-playlist-item-info,
|
|
2281
2402
|
.vidply-player:fullscreen .vidply-playlist-item-info {
|
|
2282
2403
|
padding: 0.75rem;
|
|
2283
2404
|
}
|
|
2284
2405
|
|
|
2406
|
+
/* Hide description in fullscreen to save space */
|
|
2407
|
+
.vidply-player.vidply-fullscreen .vidply-playlist-item-description,
|
|
2408
|
+
.vidply-player:fullscreen .vidply-playlist-item-description {
|
|
2409
|
+
display: none;
|
|
2410
|
+
}
|
|
2411
|
+
|
|
2285
2412
|
.vidply-player.vidply-fullscreen .vidply-playlist-item-title,
|
|
2286
2413
|
.vidply-player:fullscreen .vidply-playlist-item-title {
|
|
2287
2414
|
font-size: 0.875rem;
|
|
@@ -2480,6 +2607,12 @@
|
|
|
2480
2607
|
outline-offset: -0.125rem;
|
|
2481
2608
|
}
|
|
2482
2609
|
|
|
2610
|
+
/* Playlist Thumbnail Container (wrapper for thumbnail + duration badge) */
|
|
2611
|
+
.vidply-playlist-thumbnail-container {
|
|
2612
|
+
flex-shrink: 0;
|
|
2613
|
+
position: relative;
|
|
2614
|
+
}
|
|
2615
|
+
|
|
2483
2616
|
/* Playlist Thumbnail */
|
|
2484
2617
|
.vidply-playlist-thumbnail {
|
|
2485
2618
|
align-items: center;
|
|
@@ -2511,6 +2644,23 @@
|
|
|
2511
2644
|
color: var(--vidply-primary-light);
|
|
2512
2645
|
}
|
|
2513
2646
|
|
|
2647
|
+
/* Duration badge on thumbnail (YouTube-style) */
|
|
2648
|
+
.vidply-playlist-duration-badge {
|
|
2649
|
+
background: rgb(0 0 0 / 80%);
|
|
2650
|
+
border-radius: 0.1875rem;
|
|
2651
|
+
bottom: 0.125rem;
|
|
2652
|
+
color: var(--vidply-white);
|
|
2653
|
+
font-family: var(--vidply-font-family);
|
|
2654
|
+
font-size: 0.625rem;
|
|
2655
|
+
font-variant-numeric: tabular-nums;
|
|
2656
|
+
font-weight: 500;
|
|
2657
|
+
letter-spacing: 0.02em;
|
|
2658
|
+
line-height: 1;
|
|
2659
|
+
padding: 0.125rem 0.25rem;
|
|
2660
|
+
position: absolute;
|
|
2661
|
+
right: 0.125rem;
|
|
2662
|
+
}
|
|
2663
|
+
|
|
2514
2664
|
/* Playlist Item Info */
|
|
2515
2665
|
.vidply-playlist-item-info {
|
|
2516
2666
|
display: block;
|
|
@@ -2518,12 +2668,21 @@
|
|
|
2518
2668
|
min-width: 0;
|
|
2519
2669
|
}
|
|
2520
2670
|
|
|
2671
|
+
/* Title row - contains title and optional inline duration */
|
|
2672
|
+
.vidply-playlist-item-title-row {
|
|
2673
|
+
align-items: center;
|
|
2674
|
+
display: flex;
|
|
2675
|
+
gap: 0.5rem;
|
|
2676
|
+
margin-bottom: 0.25rem;
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2521
2679
|
.vidply-playlist-item-title {
|
|
2522
2680
|
color: var(--vidply-white);
|
|
2523
2681
|
display: block;
|
|
2682
|
+
flex: 1;
|
|
2524
2683
|
font-size: 0.875rem;
|
|
2525
2684
|
font-weight: 500;
|
|
2526
|
-
|
|
2685
|
+
min-width: 0;
|
|
2527
2686
|
overflow: hidden;
|
|
2528
2687
|
text-overflow: ellipsis;
|
|
2529
2688
|
white-space: nowrap;
|
|
@@ -2533,6 +2692,14 @@
|
|
|
2533
2692
|
color: var(--vidply-primary-light);
|
|
2534
2693
|
}
|
|
2535
2694
|
|
|
2695
|
+
/* Inline duration (shown when no thumbnail) */
|
|
2696
|
+
.vidply-playlist-item-duration {
|
|
2697
|
+
color: var(--vidply-text-disabled);
|
|
2698
|
+
flex-shrink: 0;
|
|
2699
|
+
font-size: 0.6875rem;
|
|
2700
|
+
font-variant-numeric: tabular-nums;
|
|
2701
|
+
}
|
|
2702
|
+
|
|
2536
2703
|
.vidply-playlist-item-artist {
|
|
2537
2704
|
color: var(--vidply-text-disabled);
|
|
2538
2705
|
display: block;
|
|
@@ -2542,6 +2709,19 @@
|
|
|
2542
2709
|
white-space: nowrap;
|
|
2543
2710
|
}
|
|
2544
2711
|
|
|
2712
|
+
/* Description - truncated with ellipsis */
|
|
2713
|
+
.vidply-playlist-item-description {
|
|
2714
|
+
-webkit-box-orient: vertical;
|
|
2715
|
+
color: var(--vidply-text-subtle);
|
|
2716
|
+
display: -webkit-box;
|
|
2717
|
+
font-size: 0.6875rem;
|
|
2718
|
+
-webkit-line-clamp: 2;
|
|
2719
|
+
line-height: 1.4;
|
|
2720
|
+
margin-top: 0.25rem;
|
|
2721
|
+
overflow: hidden;
|
|
2722
|
+
text-overflow: ellipsis;
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2545
2725
|
/* Playlist Item Icon */
|
|
2546
2726
|
.vidply-playlist-item-icon {
|
|
2547
2727
|
flex-shrink: 0;
|