vidply 1.0.1 → 1.0.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.
- package/README.md +63 -7
- package/dist/vidply.css +36 -17
- package/dist/vidply.esm.js +159 -364
- package/dist/vidply.esm.js.map +3 -3
- package/dist/vidply.esm.min.js +3 -3
- package/dist/vidply.esm.min.meta.json +11 -45
- package/dist/vidply.js +159 -364
- package/dist/vidply.js.map +3 -3
- package/dist/vidply.min.css +1 -1
- package/dist/vidply.min.js +3 -3
- package/dist/vidply.min.meta.json +11 -45
- package/package.json +1 -1
- package/src/controls/CaptionManager.js +216 -218
- package/src/controls/ControlBar.js +144 -26
- package/src/controls/KeyboardManager.js +50 -13
- package/src/core/Player.js +994 -1004
- package/src/icons/Icons.js +10 -10
- package/src/styles/vidply.css +36 -17
package/src/icons/Icons.js
CHANGED
|
@@ -77,7 +77,7 @@ const iconPaths = {
|
|
|
77
77
|
|
|
78
78
|
signLanguage: `<g transform="scale(1.5)"><path d="M16 11.3c-.1-.9-4.8 1.3-5.4 1.1-2.6-1 5.8-1.3 5.1-2.9s-5.1 1.5-6 1.4C6.5 9.4 16.5 9.1 13.5 8c-1.9-.6-8.8 2.9-6.8.4.7-.6.7-1.9-.7-1.7-9.7 7.2-.7 12.2 8.8 7 0-1.3-3.5.4-4.1.4-2.6 0 5.6-2 5.4-3ZM3.9 7.8c3.2-4.2 3.7 1.2 6 .1s.2-.2.2-.3c.7-2.7 2.5-7.5-1.5-1.3-1.6 0 1.1-4 1-4.6C8.9-1 7.3 4.4 7.2 4.9c-1.6.7-.9-1.4-.7-1.5 3-6-.6-3.1-.9.4-2.5 1.8 0-2.8 0-3.5C2.8-.9 4 9.4 1.1 4.9S.1 4.6 0 5c-.4 2.7 2.6 7.2 3.9 2.8Z"/></g>`,
|
|
79
79
|
|
|
80
|
-
signLanguageOn: `<g transform="scale(1.5)"><path d="M16 11.3c-.1-.9-4.8 1.3-5.4 1.1-2.6-1 5.8-1.3 5.1-2.9s-5.1 1.5-6 1.4C6.5 9.4 16.5 9.1 13.5 8c-1.9-.6-8.8 2.9-6.8.4.7-.6.7-1.9-.7-1.7-9.7 7.2-.7 12.2 8.8 7 0-1.3-3.5.4-4.1.4-2.6 0 5.6-2 5.4-3ZM3.9 7.8c3.2-4.2 3.7 1.2 6 .1s.2-.2.2-.3c.7-2.7 2.5-7.5-1.5-1.3-1.6 0 1.1-4 1-4.6C8.9-1 7.3 4.4 7.2 4.9c-1.6.7-.9-1.4-.7-1.5 3-6-.6-3.1-.9.4-2.5 1.8 0-2.8 0-3.5C2.8-.9 4 9.4 1.1 4.9S.1 4.6 0 5c-.4 2.7 2.6 7.2 3.9 2.8Z"/></g
|
|
80
|
+
signLanguageOn: `<g transform="scale(1.5)"><path d="M16 11.3c-.1-.9-4.8 1.3-5.4 1.1-2.6-1 5.8-1.3 5.1-2.9s-5.1 1.5-6 1.4C6.5 9.4 16.5 9.1 13.5 8c-1.9-.6-8.8 2.9-6.8.4.7-.6.7-1.9-.7-1.7-9.7 7.2-.7 12.2 8.8 7 0-1.3-3.5.4-4.1.4-2.6 0 5.6-2 5.4-3ZM3.9 7.8c3.2-4.2 3.7 1.2 6 .1s.2-.2.2-.3c.7-2.7 2.5-7.5-1.5-1.3-1.6 0 1.1-4 1-4.6C8.9-1 7.3 4.4 7.2 4.9c-1.6.7-.9-1.4-.7-1.5 3-6-.6-3.1-.9.4-2.5 1.8 0-2.8 0-3.5C2.8-.9 4 9.4 1.1 4.9S.1 4.6 0 5c-.4 2.7 2.6 7.2 3.9 2.8Z"/></g>`,
|
|
81
81
|
|
|
82
82
|
speaker: `<path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"/>`,
|
|
83
83
|
|
|
@@ -121,7 +121,7 @@ export function createPlayOverlay() {
|
|
|
121
121
|
svg.setAttribute('aria-hidden', 'true');
|
|
122
122
|
svg.setAttribute('role', 'presentation');
|
|
123
123
|
svg.style.cursor = 'pointer';
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
// Create filter for drop shadow
|
|
126
126
|
const defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');
|
|
127
127
|
const filterId = `vidply-play-shadow-${Math.random().toString(36).substr(2, 9)}`;
|
|
@@ -131,36 +131,36 @@ export function createPlayOverlay() {
|
|
|
131
131
|
filter.setAttribute('y', '-50%');
|
|
132
132
|
filter.setAttribute('width', '200%');
|
|
133
133
|
filter.setAttribute('height', '200%');
|
|
134
|
-
|
|
134
|
+
|
|
135
135
|
const feGaussianBlur = document.createElementNS('http://www.w3.org/2000/svg', 'feGaussianBlur');
|
|
136
136
|
feGaussianBlur.setAttribute('in', 'SourceAlpha');
|
|
137
137
|
feGaussianBlur.setAttribute('stdDeviation', '3');
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
const feOffset = document.createElementNS('http://www.w3.org/2000/svg', 'feOffset');
|
|
140
140
|
feOffset.setAttribute('dx', '0');
|
|
141
141
|
feOffset.setAttribute('dy', '2');
|
|
142
142
|
feOffset.setAttribute('result', 'offsetblur');
|
|
143
|
-
|
|
143
|
+
|
|
144
144
|
const feComponentTransfer = document.createElementNS('http://www.w3.org/2000/svg', 'feComponentTransfer');
|
|
145
145
|
const feFuncA = document.createElementNS('http://www.w3.org/2000/svg', 'feFuncA');
|
|
146
146
|
feFuncA.setAttribute('type', 'linear');
|
|
147
147
|
feFuncA.setAttribute('slope', '0.3');
|
|
148
148
|
feComponentTransfer.appendChild(feFuncA);
|
|
149
|
-
|
|
149
|
+
|
|
150
150
|
const feMerge = document.createElementNS('http://www.w3.org/2000/svg', 'feMerge');
|
|
151
151
|
const feMergeNode1 = document.createElementNS('http://www.w3.org/2000/svg', 'feMergeNode');
|
|
152
152
|
const feMergeNode2 = document.createElementNS('http://www.w3.org/2000/svg', 'feMergeNode');
|
|
153
153
|
feMergeNode2.setAttribute('in', 'SourceGraphic');
|
|
154
154
|
feMerge.appendChild(feMergeNode1);
|
|
155
155
|
feMerge.appendChild(feMergeNode2);
|
|
156
|
-
|
|
156
|
+
|
|
157
157
|
filter.appendChild(feGaussianBlur);
|
|
158
158
|
filter.appendChild(feOffset);
|
|
159
159
|
filter.appendChild(feComponentTransfer);
|
|
160
160
|
filter.appendChild(feMerge);
|
|
161
161
|
defs.appendChild(filter);
|
|
162
162
|
svg.appendChild(defs);
|
|
163
|
-
|
|
163
|
+
|
|
164
164
|
// White circle background
|
|
165
165
|
const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
|
166
166
|
circle.setAttribute('cx', '40');
|
|
@@ -170,14 +170,14 @@ export function createPlayOverlay() {
|
|
|
170
170
|
circle.setAttribute('filter', `url(#${filterId})`);
|
|
171
171
|
circle.setAttribute('class', 'vidply-play-overlay-bg');
|
|
172
172
|
svg.appendChild(circle);
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
// Play icon triangle (centered with optical adjustment)
|
|
175
175
|
const playTriangle = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
|
|
176
176
|
playTriangle.setAttribute('points', '32,28 32,52 54,40');
|
|
177
177
|
playTriangle.setAttribute('fill', '#0a406e');
|
|
178
178
|
playTriangle.setAttribute('class', 'vidply-play-overlay-icon');
|
|
179
179
|
svg.appendChild(playTriangle);
|
|
180
|
-
|
|
180
|
+
|
|
181
181
|
return svg;
|
|
182
182
|
}
|
|
183
183
|
|
package/src/styles/vidply.css
CHANGED
|
@@ -145,6 +145,10 @@
|
|
|
145
145
|
height: auto;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
.vidply-player.vidply-audio .vidply-menu {
|
|
149
|
+
max-height: 150px;
|
|
150
|
+
}
|
|
151
|
+
|
|
148
152
|
/* Video/Audio Element */
|
|
149
153
|
.vidply-player video,
|
|
150
154
|
.vidply-player audio {
|
|
@@ -185,7 +189,7 @@
|
|
|
185
189
|
overflow: hidden;
|
|
186
190
|
position: relative;
|
|
187
191
|
width: 100%;
|
|
188
|
-
z-index:
|
|
192
|
+
z-index: 1; /* Base video layer */
|
|
189
193
|
}
|
|
190
194
|
|
|
191
195
|
/* Mobile: Simplify video wrapper */
|
|
@@ -216,7 +220,7 @@
|
|
|
216
220
|
top: 50%;
|
|
217
221
|
transform: translate(-50%, -50%);
|
|
218
222
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
219
|
-
z-index:
|
|
223
|
+
z-index: 2;
|
|
220
224
|
}
|
|
221
225
|
|
|
222
226
|
.vidply-play-overlay:hover {
|
|
@@ -281,7 +285,7 @@
|
|
|
281
285
|
position: relative;
|
|
282
286
|
right: 0;
|
|
283
287
|
width: 100%;
|
|
284
|
-
z-index:
|
|
288
|
+
z-index: 10;
|
|
285
289
|
}
|
|
286
290
|
|
|
287
291
|
/* Allow menus to position within controls */
|
|
@@ -518,7 +522,7 @@
|
|
|
518
522
|
position: fixed;
|
|
519
523
|
right: 0;
|
|
520
524
|
top: 0;
|
|
521
|
-
z-index:
|
|
525
|
+
z-index: 19;
|
|
522
526
|
}
|
|
523
527
|
|
|
524
528
|
.vidply-menu-backdrop.visible {
|
|
@@ -562,8 +566,8 @@
|
|
|
562
566
|
/* iOS momentum scrolling */
|
|
563
567
|
transform: translateX(50%);
|
|
564
568
|
|
|
565
|
-
/* Ensure
|
|
566
|
-
z-index:
|
|
569
|
+
/* Ensure menus appear above all player content including overlays */
|
|
570
|
+
z-index: 20;
|
|
567
571
|
}
|
|
568
572
|
|
|
569
573
|
/* Menu positioned below button */
|
|
@@ -830,7 +834,12 @@
|
|
|
830
834
|
text-align: center;
|
|
831
835
|
transform: translateX(-50%);
|
|
832
836
|
transition: bottom 0.3s ease;
|
|
833
|
-
z-index:
|
|
837
|
+
z-index: 4;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.vidply-audio .vidply-captions {
|
|
841
|
+
bottom: auto;
|
|
842
|
+
top: -42px;
|
|
834
843
|
}
|
|
835
844
|
|
|
836
845
|
.vidply-captions:empty {
|
|
@@ -864,7 +873,7 @@
|
|
|
864
873
|
position: absolute;
|
|
865
874
|
right: 0;
|
|
866
875
|
top: 0;
|
|
867
|
-
z-index:
|
|
876
|
+
z-index: 20;
|
|
868
877
|
}
|
|
869
878
|
|
|
870
879
|
@keyframes vidply-fade-in {
|
|
@@ -1176,7 +1185,7 @@
|
|
|
1176
1185
|
top: auto;
|
|
1177
1186
|
transform: translateX(-50%);
|
|
1178
1187
|
width: auto;
|
|
1179
|
-
z-index:
|
|
1188
|
+
z-index: 15;
|
|
1180
1189
|
}
|
|
1181
1190
|
|
|
1182
1191
|
.vidply-menu::after {
|
|
@@ -1374,7 +1383,7 @@
|
|
|
1374
1383
|
position: sticky;
|
|
1375
1384
|
text-transform: uppercase;
|
|
1376
1385
|
top: 0;
|
|
1377
|
-
z-index:
|
|
1386
|
+
z-index: 2;
|
|
1378
1387
|
}
|
|
1379
1388
|
|
|
1380
1389
|
.vidply-playlist-list {
|
|
@@ -1540,7 +1549,7 @@
|
|
|
1540
1549
|
position: absolute;
|
|
1541
1550
|
top: 0;
|
|
1542
1551
|
width: 400px;
|
|
1543
|
-
z-index:
|
|
1552
|
+
z-index: 5;
|
|
1544
1553
|
}
|
|
1545
1554
|
|
|
1546
1555
|
/* Minimum height for audio player transcript */
|
|
@@ -1674,7 +1683,7 @@
|
|
|
1674
1683
|
position: absolute;
|
|
1675
1684
|
transition: opacity 0.3s ease;
|
|
1676
1685
|
width: 35% !important;
|
|
1677
|
-
z-index:
|
|
1686
|
+
z-index: 3;
|
|
1678
1687
|
}
|
|
1679
1688
|
|
|
1680
1689
|
.vidply-fullscreen .vidply-sign-language-video {
|
|
@@ -1683,15 +1692,25 @@
|
|
|
1683
1692
|
|
|
1684
1693
|
/* Sign Language Video Positions */
|
|
1685
1694
|
.vidply-sign-position-bottom-right {
|
|
1686
|
-
bottom:
|
|
1695
|
+
bottom: 16px; /* Above controls */
|
|
1687
1696
|
right: 16px;
|
|
1688
1697
|
}
|
|
1689
1698
|
|
|
1699
|
+
.vidply-controls-visible + .vidply-sign-position-bottom-right,
|
|
1700
|
+
.vidply-controls-visible + .vidply-captions + .vidply-sign-position-bottom-right {
|
|
1701
|
+
bottom: 95px; /* Above controls */
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1690
1704
|
.vidply-sign-position-bottom-left {
|
|
1691
|
-
bottom:
|
|
1705
|
+
bottom: 16px; /* Above controls */
|
|
1692
1706
|
left: 16px;
|
|
1693
1707
|
}
|
|
1694
1708
|
|
|
1709
|
+
.vidply-controls-visible + .vidply-sign-position-bottom-left,
|
|
1710
|
+
.vidply-controls-visible + .vidply-captions + .vidply-sign-position-bottom-left {
|
|
1711
|
+
bottom: 95px; /* Above controls */
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1695
1714
|
.vidply-sign-position-top-right {
|
|
1696
1715
|
right: 16px;
|
|
1697
1716
|
top: 16px;
|
|
@@ -1706,12 +1725,12 @@
|
|
|
1706
1725
|
@media (width <= 640px) {
|
|
1707
1726
|
.vidply-sign-language-video {
|
|
1708
1727
|
min-width: 120px;
|
|
1709
|
-
width:
|
|
1728
|
+
width: 35%;
|
|
1710
1729
|
}
|
|
1711
1730
|
|
|
1712
1731
|
.vidply-sign-position-bottom-right,
|
|
1713
1732
|
.vidply-sign-position-bottom-left {
|
|
1714
|
-
bottom:
|
|
1733
|
+
bottom: 126px !important; /* Adjust for smaller controls */
|
|
1715
1734
|
}
|
|
1716
1735
|
}
|
|
1717
1736
|
|
|
@@ -1744,7 +1763,7 @@
|
|
|
1744
1763
|
order: 3; /* After controls (which are order: 2) */
|
|
1745
1764
|
position: relative;
|
|
1746
1765
|
width: 100%;
|
|
1747
|
-
z-index:
|
|
1766
|
+
z-index: 5;
|
|
1748
1767
|
}
|
|
1749
1768
|
|
|
1750
1769
|
.vidply-transcript-header {
|