vidply 1.0.8 → 1.0.9

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.
@@ -99,7 +99,8 @@ export const translations = {
99
99
  resizeWindow: 'Resize Window',
100
100
  styleTranscript: 'Open transcript style settings',
101
101
  closeMenu: 'Close Menu',
102
- styleTitle: 'Transcript Style'
102
+ styleTitle: 'Transcript Style',
103
+ autoscroll: 'Autoscroll'
103
104
  },
104
105
  settings: {
105
106
  title: 'Settings',
@@ -221,7 +222,8 @@ export const translations = {
221
222
  resizeWindow: 'Fenster vergrößern/verkleinern',
222
223
  styleTranscript: 'Transkript-Stileinstellungen öffnen',
223
224
  closeMenu: 'Menü schließen',
224
- styleTitle: 'Transkript-Stil'
225
+ styleTitle: 'Transkript-Stil',
226
+ autoscroll: 'Automatisches Scrollen'
225
227
  },
226
228
  settings: {
227
229
  title: 'Einstellungen',
@@ -343,7 +345,8 @@ export const translations = {
343
345
  resizeWindow: 'Cambiar tamaño de ventana',
344
346
  styleTranscript: 'Abrir configuración de estilo de transcripción',
345
347
  closeMenu: 'Cerrar menú',
346
- styleTitle: 'Estilo de Transcripción'
348
+ styleTitle: 'Estilo de Transcripción',
349
+ autoscroll: 'Desplazamiento automático'
347
350
  },
348
351
  settings: {
349
352
  title: 'Configuración',
@@ -465,7 +468,8 @@ export const translations = {
465
468
  resizeWindow: 'Redimensionner la fenêtre',
466
469
  styleTranscript: 'Ouvrir les paramètres de style de transcription',
467
470
  closeMenu: 'Fermer le menu',
468
- styleTitle: 'Style de Transcription'
471
+ styleTitle: 'Style de Transcription',
472
+ autoscroll: 'Défilement automatique'
469
473
  },
470
474
  settings: {
471
475
  title: 'Paramètres',
@@ -587,7 +591,8 @@ export const translations = {
587
591
  resizeWindow: 'ウィンドウのサイズ変更',
588
592
  styleTranscript: '文字起こしスタイル設定を開く',
589
593
  closeMenu: 'メニューを閉じる',
590
- styleTitle: '文字起こしスタイル'
594
+ styleTitle: '文字起こしスタイル',
595
+ autoscroll: '自動スクロール'
591
596
  },
592
597
  settings: {
593
598
  title: '設定',
@@ -71,9 +71,9 @@ const iconPaths = {
71
71
 
72
72
  transcript: `<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"/>`,
73
73
 
74
- audioDescription: `<rect x="2" y="5" width="20" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><text x="12" y="16" font-family="Arial, sans-serif" font-size="10" font-weight="bold" text-anchor="middle" fill="currentColor">AD</text>`,
74
+ audioDescription: `<rect x="2" y="5" width="20" height="14" rx="2" fill="#ffffff" stroke="#ffffff" stroke-width="2"/><text x="12" y="16" font-family="Arial, sans-serif" font-size="10" font-weight="bold" text-anchor="middle" fill="#1a1a1a">AD</text>`,
75
75
 
76
- audioDescriptionOn: `<rect x="2" y="5" width="20" height="14" rx="2" fill="#1a1a1a" stroke="#1a1a1a" stroke-width="2"/><text x="12" y="16" font-family="Arial, sans-serif" font-size="10" font-weight="bold" text-anchor="middle" fill="#ffffff">AD</text>`,
76
+ audioDescriptionOn: `<rect x="2" y="5" width="20" height="14" rx="2" fill="none" stroke="currentColor" stroke-width="2"/><text x="12" y="16" font-family="Arial, sans-serif" font-size="10" font-weight="bold" text-anchor="middle" fill="currentColor">AD</text>`,
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
 
@@ -36,7 +36,13 @@
36
36
  --vidply-border-light: var(--vidply-white-10);
37
37
  --vidply-focus-outline: 2px solid var(--vidply-primary);
38
38
  --vidply-focus-outline-white: 2px solid var(--vidply-primary-light);
39
+ --vidply-focus-outline-player: 3px solid var(--vidply-primary-light);
39
40
  --vidply-hover-bg: var(--vidply-white-10);
41
+ --vidply-scrollbar-thumb: var(--vidply-white);
42
+ --vidply-scrollbar-thumb-hover: var(--vidply-white-90);
43
+ --vidply-scrollbar-track: #404040;
44
+ --vidply-scrollbar-track-transcript: #555555;
45
+ --vidply-transition-default: all 0.2s ease;
40
46
  --vidply-primary: #0a406e;
41
47
  --vidply-primary-10: rgb(var(--vidply-primary-rgb), 0.1);
42
48
  --vidply-primary-15: rgb(var(--vidply-primary-rgb), 0.15);
@@ -110,16 +116,11 @@
110
116
 
111
117
  /* Player Focus Outline */
112
118
  .vidply-player:focus {
113
- outline: 3px solid var(--vidply-primary-light);
114
- outline-offset: 4px;
115
- }
116
-
117
- .vidply-player:focus:not(:focus-visible) {
118
119
  outline: none;
119
120
  }
120
121
 
121
122
  .vidply-player:focus-visible {
122
- outline: 3px solid var(--vidply-primary-light);
123
+ outline: var(--vidply-focus-outline-player);
123
124
  outline-offset: 4px;
124
125
  }
125
126
 
@@ -311,9 +312,6 @@
311
312
  .vidply-progress-container:hover,
312
313
  .vidply-progress-container:focus {
313
314
  height: 8px;
314
- }
315
-
316
- .vidply-progress-container:focus {
317
315
  outline: var(--vidply-focus-outline-white);
318
316
  outline-offset: 2px;
319
317
  }
@@ -421,10 +419,6 @@
421
419
  outline-offset: 2px;
422
420
  }
423
421
 
424
- .vidply-button:focus:not(:focus-visible) {
425
- outline: none;
426
- }
427
-
428
422
  .vidply-button:disabled {
429
423
  cursor: not-allowed;
430
424
  opacity: 0.5;
@@ -1310,12 +1304,16 @@
1310
1304
  }
1311
1305
  }
1312
1306
 
1313
- /* Focus Visible Polyfill */
1314
- .vidply-player :focus:not(:focus-visible) {
1315
- outline: none;
1316
- }
1317
-
1318
- .vidply-player :focus-visible {
1307
+ /* Focus Visible */
1308
+ .vidply-player :focus-visible,
1309
+ .vidply-player button:hover,
1310
+ .vidply-player a:hover,
1311
+ .vidply-player input:hover,
1312
+ .vidply-player select:hover,
1313
+ .vidply-player textarea:hover,
1314
+ .vidply-player [role="button"]:hover,
1315
+ .vidply-player [role="link"]:hover,
1316
+ .vidply-player [tabindex]:not([tabindex="-1"]):hover {
1319
1317
  outline: var(--vidply-focus-outline-white);
1320
1318
  outline-offset: 2px;
1321
1319
  }
@@ -1402,7 +1400,7 @@
1402
1400
  gap: 12px;
1403
1401
  padding: 12px 16px;
1404
1402
  position: relative;
1405
- transition: all 0.2s ease;
1403
+ transition: var(--vidply-transition-default);
1406
1404
  }
1407
1405
 
1408
1406
  .vidply-playlist-item:hover {
@@ -1413,19 +1411,14 @@
1413
1411
  .vidply-playlist-item:focus {
1414
1412
  background: var(--vidply-white-08);
1415
1413
  border-left-color: var(--vidply-primary);
1416
- outline: 2px solid var(--vidply-primary-light);
1417
- outline-offset: -2px;
1418
- z-index: 1;
1419
- }
1420
-
1421
- .vidply-playlist-item:focus:not(:focus-visible) {
1422
1414
  outline: none;
1415
+ z-index: 1;
1423
1416
  }
1424
1417
 
1425
1418
  .vidply-playlist-item:focus-visible {
1426
1419
  background: var(--vidply-white-08);
1427
1420
  border-left-color: var(--vidply-primary);
1428
- outline: 2px solid var(--vidply-primary-light);
1421
+ outline: var(--vidply-focus-outline-white);
1429
1422
  outline-offset: -2px;
1430
1423
  z-index: 1;
1431
1424
  }
@@ -1439,10 +1432,14 @@
1439
1432
  background: var(--vidply-primary-20);
1440
1433
  }
1441
1434
 
1442
- .vidply-playlist-item-active:focus,
1435
+ .vidply-playlist-item-active:focus {
1436
+ background: var(--vidply-primary-20);
1437
+ outline: none;
1438
+ }
1439
+
1443
1440
  .vidply-playlist-item-active:focus-visible {
1444
1441
  background: var(--vidply-primary-20);
1445
- outline: 2px solid var(--vidply-primary-light);
1442
+ outline: var(--vidply-focus-outline-white);
1446
1443
  outline-offset: -2px;
1447
1444
  }
1448
1445
 
@@ -1464,7 +1461,7 @@
1464
1461
  .vidply-playlist-thumbnail-icon {
1465
1462
  color: var(--vidply-text-subtle);
1466
1463
  height: 32px;
1467
- transition: all 0.2s ease;
1464
+ transition: var(--vidply-transition-default);
1468
1465
  width: 32px;
1469
1466
  }
1470
1467
 
@@ -1525,21 +1522,26 @@
1525
1522
  }
1526
1523
 
1527
1524
  /* Playlist Scrollbar */
1525
+ .vidply-playlist-panel {
1526
+ scrollbar-color: var(--vidply-scrollbar-thumb) var(--vidply-scrollbar-track);
1527
+ scrollbar-width: thin;
1528
+ }
1529
+
1528
1530
  .vidply-playlist-panel::-webkit-scrollbar {
1529
1531
  width: 8px;
1530
1532
  }
1531
1533
 
1532
1534
  .vidply-playlist-panel::-webkit-scrollbar-track {
1533
- background: var(--vidply-black-30);
1535
+ background: var(--vidply-scrollbar-track);
1534
1536
  }
1535
1537
 
1536
1538
  .vidply-playlist-panel::-webkit-scrollbar-thumb {
1537
- background: var(--vidply-white-20);
1539
+ background: var(--vidply-scrollbar-thumb);
1538
1540
  border-radius: 4px;
1539
1541
  }
1540
1542
 
1541
1543
  .vidply-playlist-panel::-webkit-scrollbar-thumb:hover {
1542
- background: var(--vidply-border-hover);
1544
+ background: var(--vidply-scrollbar-thumb-hover);
1543
1545
  }
1544
1546
 
1545
1547
  /* Audio Player with Playlist */
@@ -1583,7 +1585,7 @@
1583
1585
 
1584
1586
  .vidply-transcript-header {
1585
1587
  align-items: center;
1586
- background: var(--vidply-active-bg);
1588
+ background: #282828;
1587
1589
  border-bottom: 1px solid var(--vidply-border-light);
1588
1590
  border-radius: 8px 8px 0 0;
1589
1591
  cursor: move;
@@ -1594,10 +1596,16 @@
1594
1596
  }
1595
1597
 
1596
1598
  .vidply-transcript-header h3 {
1599
+ /* Visually hidden but accessible to screen readers */
1597
1600
  color: var(--vidply-white);
1598
1601
  font-size: 16px;
1599
1602
  font-weight: 600;
1603
+ height: 1px;
1604
+ left: -10000px;
1600
1605
  margin: 0;
1606
+ overflow: hidden;
1607
+ position: absolute;
1608
+ width: 1px;
1601
1609
  }
1602
1610
 
1603
1611
  .vidply-transcript-close {
@@ -1611,7 +1619,7 @@
1611
1619
  height: 28px;
1612
1620
  justify-content: center;
1613
1621
  padding: 4px;
1614
- transition: all 0.2s ease;
1622
+ transition: var(--vidply-transition-default);
1615
1623
  width: 28px;
1616
1624
  }
1617
1625
 
@@ -1714,31 +1722,92 @@
1714
1722
  }
1715
1723
 
1716
1724
  /* Transcript Scrollbar */
1725
+ .vidply-transcript-content {
1726
+ scrollbar-color: var(--vidply-scrollbar-thumb) var(--vidply-scrollbar-track-transcript);
1727
+ scrollbar-width: thin;
1728
+ }
1729
+
1717
1730
  .vidply-transcript-content::-webkit-scrollbar {
1718
1731
  width: 8px;
1719
1732
  }
1720
1733
 
1721
1734
  .vidply-transcript-content::-webkit-scrollbar-track {
1722
- background: var(--vidply-black-30);
1735
+ background: var(--vidply-scrollbar-track-transcript);
1723
1736
  }
1724
1737
 
1725
1738
  .vidply-transcript-content::-webkit-scrollbar-thumb {
1726
- background: var(--vidply-white-20);
1739
+ background: var(--vidply-scrollbar-thumb);
1727
1740
  border-radius: 4px;
1728
1741
  }
1729
1742
 
1730
1743
  .vidply-transcript-content::-webkit-scrollbar-thumb:hover {
1731
- background: var(--vidply-border-hover);
1744
+ background: var(--vidply-scrollbar-thumb-hover);
1732
1745
  }
1733
1746
 
1734
1747
  /* Transcript Header Left Side (Settings Button + Title) */
1735
1748
  .vidply-transcript-header-left {
1736
1749
  align-items: center;
1737
1750
  display: flex;
1738
- gap: 8px;
1751
+ gap: 16px;
1739
1752
  position: relative;
1740
1753
  }
1741
1754
 
1755
+ /* Transcript Autoscroll Checkbox */
1756
+ .vidply-transcript-autoscroll-label {
1757
+ align-items: center;
1758
+ cursor: pointer;
1759
+ display: flex;
1760
+ gap: 6px;
1761
+ user-select: none;
1762
+ white-space: nowrap;
1763
+ }
1764
+
1765
+ .vidply-transcript-autoscroll-label input[type="checkbox"] {
1766
+ cursor: pointer;
1767
+ height: 16px;
1768
+ margin: 0;
1769
+ width: 16px;
1770
+ }
1771
+
1772
+ .vidply-transcript-autoscroll-text {
1773
+ color: var(--vidply-text-muted);
1774
+ font-size: 13px;
1775
+ transition: color 0.2s ease;
1776
+ }
1777
+
1778
+ .vidply-transcript-autoscroll-label:hover .vidply-transcript-autoscroll-text {
1779
+ color: var(--vidply-white);
1780
+ }
1781
+
1782
+ /* Transcript Language Selector */
1783
+ .vidply-transcript-language-select {
1784
+ background: var(--vidply-white-10);
1785
+ border: 1px solid var(--vidply-white-20);
1786
+ border-radius: 4px;
1787
+ color: var(--vidply-white);
1788
+ cursor: pointer;
1789
+ font-size: 13px;
1790
+ padding: 4px 8px;
1791
+ transition: var(--vidply-transition-default);
1792
+ }
1793
+
1794
+ .vidply-transcript-language-select:hover {
1795
+ background: var(--vidply-white-15);
1796
+ border-color: var(--vidply-border-hover);
1797
+ }
1798
+
1799
+ .vidply-transcript-language-select:focus {
1800
+ background: var(--vidply-white-15);
1801
+ border-color: var(--vidply-border-focus);
1802
+ box-shadow: 0 0 0 3px var(--vidply-primary-20);
1803
+ outline: none;
1804
+ }
1805
+
1806
+ .vidply-transcript-language-select option {
1807
+ background: #1a1a1a;
1808
+ color: var(--vidply-white);
1809
+ }
1810
+
1742
1811
  /* Transcript Settings Button */
1743
1812
  .vidply-transcript-settings {
1744
1813
  align-items: center;
@@ -1752,7 +1821,7 @@
1752
1821
  justify-content: center;
1753
1822
  padding: 4px;
1754
1823
  position: relative;
1755
- transition: all 0.2s ease;
1824
+ transition: var(--vidply-transition-default);
1756
1825
  width: 28px;
1757
1826
  }
1758
1827
 
@@ -1762,7 +1831,7 @@
1762
1831
  }
1763
1832
 
1764
1833
  .vidply-transcript-settings:focus {
1765
- outline: 2px solid var(--vidply-primary-light);
1834
+ outline: var(--vidply-focus-outline-white);
1766
1835
  outline-offset: 2px;
1767
1836
  }
1768
1837
 
@@ -2084,7 +2153,7 @@
2084
2153
  font-size: 13px;
2085
2154
  outline: none;
2086
2155
  padding: 6px 10px;
2087
- transition: all 0.2s ease;
2156
+ transition: var(--vidply-transition-default);
2088
2157
  width: 100%;
2089
2158
  }
2090
2159
 
@@ -2112,7 +2181,7 @@
2112
2181
  height: 32px;
2113
2182
  outline: none;
2114
2183
  padding: 4px;
2115
- transition: all 0.2s ease;
2184
+ transition: var(--vidply-transition-default);
2116
2185
  width: 100%;
2117
2186
  }
2118
2187
 
@@ -2196,7 +2265,7 @@
2196
2265
  font-weight: 600;
2197
2266
  margin-top: 12px;
2198
2267
  padding: 8px 16px;
2199
- transition: all 0.2s ease;
2268
+ transition: var(--vidply-transition-default);
2200
2269
  width: 100%;
2201
2270
  }
2202
2271