unified-video-framework 1.4.117 → 1.4.118
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.118",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC;QACZ,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;KACxD;CACF;AAED,qBAAa,SAAU,SAAQ,UAAU;IACvC,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAChD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,yBAAyB,CAAa;IAC9C,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,KAAK,CAAa;IAG1B,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,mBAAmB,CAAO;IAGlC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;cAOD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA+I5C,OAAO,CAAC,wBAAwB;IAsHhC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDtC,OAAO,CAAC,gBAAgB;YAcV,OAAO;IAyDrB,OAAO,CAAC,cAAc;YAyBR,QAAQ;IA4DtB,OAAO,CAAC,iBAAiB;YAQX,UAAU;IAMxB,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,gBAAgB;IAOlB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,KAAK,IAAI,IAAI;IAkBN,YAAY,IAAI,IAAI;IAO3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBxB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9B,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAOd,cAAc,IAAI,MAAM;IAOxB,YAAY,IAAI,GAAG,EAAE;IAIrB,iBAAiB,IAAI,GAAG;IAIxB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAkBhC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDhC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAetC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3C,WAAW,IAAI,IAAI;IAUnB,iBAAiB,IAAI,IAAI;IAUzB,OAAO,CAAC,cAAc;YAmBR,0BAA0B;IAwCxC,OAAO,CAAC,eAAe;IAwCvB,uBAAuB,IAAI,IAAI;IA4D/B,OAAO,CAAC,4BAA4B;YAoEtB,gCAAgC;IAgBxC,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAkGtD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAmC3C,4BAA4B,IAAI,IAAI;IA4D9B,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IA8DtE,0BAA0B,IAAI,IAAI;IAqK5B,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4C3C,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAc9C,SAAS,CAAC,eAAe,IAAI,IAAI;IASjC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1459,7 +1459,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
1459
1459
|
.uvf-video-container {
|
|
1460
1460
|
position: relative;
|
|
1461
1461
|
width: 100%;
|
|
1462
|
-
|
|
1462
|
+
aspect-ratio: 16 / 9;
|
|
1463
1463
|
background: radial-gradient(ellipse at center, #1a1a2e 0%, #000 100%);
|
|
1464
1464
|
overflow: hidden;
|
|
1465
1465
|
}
|
|
@@ -1658,6 +1658,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
1658
1658
|
width: 100%;
|
|
1659
1659
|
position: relative;
|
|
1660
1660
|
cursor: pointer;
|
|
1661
|
+
padding: 16px 0;
|
|
1661
1662
|
overflow: visible;
|
|
1662
1663
|
}
|
|
1663
1664
|
|
|
@@ -1771,105 +1772,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
1771
1772
|
|
|
1772
1773
|
/* Mobile responsive design with enhanced touch targets */
|
|
1773
1774
|
@media (max-width: 768px) {
|
|
1774
|
-
.uvf-
|
|
1775
|
-
|
|
1776
|
-
width: 100% !important;
|
|
1777
|
-
height: auto !important;
|
|
1778
|
-
min-height: 200px;
|
|
1779
|
-
}
|
|
1780
|
-
|
|
1781
|
-
.uvf-video-container {
|
|
1782
|
-
width: 100% !important;
|
|
1783
|
-
height: auto !important;
|
|
1784
|
-
aspect-ratio: 16/9;
|
|
1785
|
-
position: relative;
|
|
1786
|
-
}
|
|
1787
|
-
|
|
1788
|
-
.uvf-video {
|
|
1789
|
-
width: 100% !important;
|
|
1790
|
-
height: 100% !important;
|
|
1791
|
-
object-fit: contain;
|
|
1792
|
-
}
|
|
1793
|
-
|
|
1794
|
-
/* Fix controls bar positioning */
|
|
1795
|
-
.uvf-controls-bar {
|
|
1796
|
-
position: absolute;
|
|
1797
|
-
bottom: 0;
|
|
1798
|
-
left: 0;
|
|
1799
|
-
right: 0;
|
|
1800
|
-
padding: 8px 12px !important;
|
|
1801
|
-
padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
|
|
1802
|
-
background: linear-gradient(to top,
|
|
1803
|
-
rgba(0,0,0,0.9) 0%,
|
|
1804
|
-
rgba(0,0,0,0.7) 70%,
|
|
1805
|
-
transparent 100%) !important;
|
|
1806
|
-
z-index: 1000;
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
|
-
/* Ensure controls are properly sized */
|
|
1810
|
-
.uvf-controls-row {
|
|
1811
|
-
display: flex;
|
|
1812
|
-
align-items: center;
|
|
1813
|
-
gap: 8px;
|
|
1814
|
-
flex-wrap: nowrap;
|
|
1815
|
-
min-height: 44px; /* Minimum touch target size */
|
|
1816
|
-
}
|
|
1817
|
-
|
|
1818
|
-
/* Touch-friendly button sizes */
|
|
1819
|
-
.uvf-control-btn {
|
|
1820
|
-
width: 44px !important;
|
|
1821
|
-
height: 44px !important;
|
|
1822
|
-
min-width: 44px !important;
|
|
1823
|
-
min-height: 44px !important;
|
|
1824
|
-
border-radius: 22px !important;
|
|
1825
|
-
}
|
|
1826
|
-
|
|
1827
|
-
.uvf-control-btn.play-pause {
|
|
1828
|
-
width: 52px !important;
|
|
1829
|
-
height: 52px !important;
|
|
1830
|
-
min-width: 52px !important;
|
|
1831
|
-
min-height: 52px !important;
|
|
1832
|
-
}
|
|
1833
|
-
|
|
1834
|
-
/* Progress bar adjustments */
|
|
1835
|
-
.uvf-progress-section {
|
|
1836
|
-
margin-bottom: 12px !important;
|
|
1837
|
-
padding: 0 8px;
|
|
1838
|
-
}
|
|
1839
|
-
|
|
1840
|
-
.uvf-progress-bar {
|
|
1841
|
-
height: 4px !important;
|
|
1842
|
-
margin-bottom: 8px;
|
|
1843
|
-
}
|
|
1844
|
-
|
|
1845
|
-
/* Time display adjustments */
|
|
1846
|
-
.uvf-time-display {
|
|
1847
|
-
font-size: 12px !important;
|
|
1848
|
-
min-width: 90px !important;
|
|
1849
|
-
padding: 4px 8px !important;
|
|
1850
|
-
background: rgba(0,0,0,0.5);
|
|
1851
|
-
border-radius: 12px;
|
|
1852
|
-
margin: 0 4px;
|
|
1775
|
+
.uvf-progress-bar-wrapper {
|
|
1776
|
+
padding: 20px 0; /* Larger touch area */
|
|
1853
1777
|
}
|
|
1854
1778
|
|
|
1855
|
-
/* Right controls spacing */
|
|
1856
|
-
.uvf-right-controls {
|
|
1857
|
-
gap: 6px !important;
|
|
1858
|
-
margin-left: auto;
|
|
1859
|
-
}
|
|
1860
|
-
|
|
1861
|
-
/* Hide non-essential elements on mobile */
|
|
1862
|
-
.uvf-quality-badge {
|
|
1863
|
-
display: none !important;
|
|
1864
|
-
}
|
|
1865
|
-
|
|
1866
|
-
/* Ensure settings menu is accessible */
|
|
1867
|
-
.uvf-settings-menu {
|
|
1868
|
-
bottom: 60px !important;
|
|
1869
|
-
right: 12px !important;
|
|
1870
|
-
max-height: 60vh !important;
|
|
1871
|
-
min-width: 160px !important;
|
|
1872
|
-
}
|
|
1873
1779
|
.uvf-progress-bar {
|
|
1874
1780
|
height: 3px; /* Slightly thicker on mobile */
|
|
1875
1781
|
}
|
|
@@ -1877,31 +1783,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
1877
1783
|
.uvf-progress-bar-wrapper:hover .uvf-progress-bar {
|
|
1878
1784
|
height: 5px;
|
|
1879
1785
|
}
|
|
1880
|
-
}
|
|
1881
|
-
|
|
1882
|
-
/* Mobile Landscape */
|
|
1883
|
-
@media screen and (max-width: 767px) and (orientation: landscape) {
|
|
1884
|
-
.uvf-controls-bar {
|
|
1885
|
-
padding: 6px 10px !important;
|
|
1886
|
-
padding-bottom: max(6px, env(safe-area-inset-bottom)) !important;
|
|
1887
|
-
}
|
|
1888
|
-
|
|
1889
|
-
.uvf-control-btn {
|
|
1890
|
-
width: 40px !important;
|
|
1891
|
-
height: 40px !important;
|
|
1892
|
-
min-width: 40px !important;
|
|
1893
|
-
min-height: 40px !important;
|
|
1894
|
-
}
|
|
1895
|
-
|
|
1896
|
-
.uvf-control-btn.play-pause {
|
|
1897
|
-
width: 46px !important;
|
|
1898
|
-
height: 46px !important;
|
|
1899
|
-
}
|
|
1900
1786
|
|
|
1901
|
-
.uvf-time-display {
|
|
1902
|
-
font-size: 11px !important;
|
|
1903
|
-
min-width: 80px !important;
|
|
1904
|
-
}
|
|
1905
1787
|
}
|
|
1906
1788
|
|
|
1907
1789
|
/* Controls Row */
|
|
@@ -2631,28 +2513,174 @@ export class WebPlayer extends BasePlayer {
|
|
|
2631
2513
|
}
|
|
2632
2514
|
}
|
|
2633
2515
|
|
|
2516
|
+
/* Safe Area Variables - Support for modern mobile devices */
|
|
2517
|
+
:root {
|
|
2518
|
+
/* iOS Safe Area Fallbacks */
|
|
2519
|
+
--uvf-safe-area-top: env(safe-area-inset-top, 0px);
|
|
2520
|
+
--uvf-safe-area-right: env(safe-area-inset-right, 0px);
|
|
2521
|
+
--uvf-safe-area-bottom: env(safe-area-inset-bottom, 0px);
|
|
2522
|
+
--uvf-safe-area-left: env(safe-area-inset-left, 0px);
|
|
2523
|
+
|
|
2524
|
+
/* Dynamic Viewport Support */
|
|
2525
|
+
--uvf-dvh: 1dvh;
|
|
2526
|
+
--uvf-svh: 1svh;
|
|
2527
|
+
--uvf-lvh: 1lvh;
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
/* Cross-Browser Mobile Viewport Fixes */
|
|
2531
|
+
|
|
2532
|
+
/* Modern browsers with dynamic viewport support */
|
|
2533
|
+
@supports (height: 100dvh) {
|
|
2534
|
+
.uvf-player-wrapper,
|
|
2535
|
+
.uvf-video-container {
|
|
2536
|
+
height: 100dvh;
|
|
2537
|
+
}
|
|
2538
|
+
|
|
2539
|
+
.uvf-responsive-container {
|
|
2540
|
+
height: 100dvh;
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
/* iOS Safari specific fixes - address bar handling */
|
|
2545
|
+
@supports (-webkit-appearance: none) {
|
|
2546
|
+
.uvf-player-wrapper.uvf-fullscreen,
|
|
2547
|
+
.uvf-video-container.uvf-fullscreen {
|
|
2548
|
+
height: -webkit-fill-available;
|
|
2549
|
+
min-height: -webkit-fill-available;
|
|
2550
|
+
}
|
|
2551
|
+
|
|
2552
|
+
/* Handle iOS Safari's dynamic address bar */
|
|
2553
|
+
@media screen and (max-width: 767px) {
|
|
2554
|
+
.uvf-responsive-container {
|
|
2555
|
+
height: -webkit-fill-available;
|
|
2556
|
+
min-height: 100vh;
|
|
2557
|
+
}
|
|
2558
|
+
|
|
2559
|
+
.uvf-player-wrapper {
|
|
2560
|
+
height: -webkit-fill-available;
|
|
2561
|
+
min-height: 100vh;
|
|
2562
|
+
}
|
|
2563
|
+
}
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2566
|
+
/* Android Chrome specific fixes */
|
|
2567
|
+
@supports (display: -webkit-box) {
|
|
2568
|
+
.uvf-responsive-container {
|
|
2569
|
+
min-height: 100vh;
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
/* Fix for Android Chrome's address bar behavior */
|
|
2573
|
+
@media screen and (max-width: 767px) {
|
|
2574
|
+
.uvf-video-container {
|
|
2575
|
+
min-height: calc(100vh - 56px); /* Chrome mobile address bar height */
|
|
2576
|
+
}
|
|
2577
|
+
}
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
/* Samsung Internet Browser fixes */
|
|
2581
|
+
@media screen and (-webkit-min-device-pixel-ratio: 1) {
|
|
2582
|
+
@media screen and (max-width: 767px) {
|
|
2583
|
+
.uvf-responsive-container {
|
|
2584
|
+
position: fixed;
|
|
2585
|
+
top: 0;
|
|
2586
|
+
left: 0;
|
|
2587
|
+
width: 100vw;
|
|
2588
|
+
height: 100vh;
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
/* Universal mobile fixes for all browsers */
|
|
2594
|
+
@media screen and (max-width: 767px) {
|
|
2595
|
+
html, body {
|
|
2596
|
+
overflow-x: hidden;
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
.uvf-player-wrapper {
|
|
2600
|
+
/* Prevent scroll bounce on iOS */
|
|
2601
|
+
-webkit-overflow-scrolling: touch;
|
|
2602
|
+
overflow: hidden;
|
|
2603
|
+
|
|
2604
|
+
/* Prevent zoom on double tap */
|
|
2605
|
+
touch-action: manipulation;
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
.uvf-video {
|
|
2609
|
+
/* Prevent video from being selectable */
|
|
2610
|
+
-webkit-user-select: none;
|
|
2611
|
+
-moz-user-select: none;
|
|
2612
|
+
-ms-user-select: none;
|
|
2613
|
+
user-select: none;
|
|
2614
|
+
|
|
2615
|
+
/* Ensure hardware acceleration */
|
|
2616
|
+
-webkit-transform: translateZ(0);
|
|
2617
|
+
transform: translateZ(0);
|
|
2618
|
+
}
|
|
2619
|
+
|
|
2620
|
+
/* Fix for controls being cut off by virtual keyboard */
|
|
2621
|
+
.uvf-controls-bar {
|
|
2622
|
+
position: fixed !important;
|
|
2623
|
+
bottom: var(--uvf-safe-area-bottom, 0) !important;
|
|
2624
|
+
}
|
|
2625
|
+
|
|
2626
|
+
/* Ensure controls stay above virtual keyboards */
|
|
2627
|
+
@supports (bottom: env(keyboard-inset-height)) {
|
|
2628
|
+
.uvf-controls-bar {
|
|
2629
|
+
bottom: max(var(--uvf-safe-area-bottom, 0), env(keyboard-inset-height, 0)) !important;
|
|
2630
|
+
}
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
2634
|
/* Enhanced Responsive Media Queries with UX Best Practices */
|
|
2635
|
-
/* Mobile devices (portrait) - Enhanced UX */
|
|
2635
|
+
/* Mobile devices (portrait) - Enhanced UX with Safe Areas */
|
|
2636
2636
|
@media screen and (max-width: 767px) and (orientation: portrait) {
|
|
2637
2637
|
.uvf-responsive-container {
|
|
2638
2638
|
padding: 0;
|
|
2639
2639
|
width: 100vw !important;
|
|
2640
|
+
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
2640
2641
|
margin: 0;
|
|
2642
|
+
position: relative;
|
|
2643
|
+
overflow: hidden;
|
|
2644
|
+
}
|
|
2645
|
+
|
|
2646
|
+
@supports (height: 100dvh) {
|
|
2647
|
+
.uvf-responsive-container {
|
|
2648
|
+
height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
2649
|
+
}
|
|
2641
2650
|
}
|
|
2642
2651
|
|
|
2643
2652
|
.uvf-responsive-container .uvf-player-wrapper {
|
|
2644
2653
|
width: 100vw !important;
|
|
2654
|
+
height: 100% !important;
|
|
2655
|
+
min-height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
@supports (height: 100dvh) {
|
|
2659
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
2660
|
+
min-height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
2661
|
+
}
|
|
2645
2662
|
}
|
|
2646
2663
|
|
|
2647
2664
|
.uvf-responsive-container .uvf-video-container {
|
|
2648
2665
|
width: 100vw !important;
|
|
2649
|
-
|
|
2666
|
+
height: 100% !important;
|
|
2667
|
+
aspect-ratio: unset !important;
|
|
2668
|
+
min-height: inherit;
|
|
2650
2669
|
}
|
|
2651
2670
|
|
|
2652
|
-
/* Enhanced mobile controls bar with
|
|
2671
|
+
/* Enhanced mobile controls bar with safe area padding */
|
|
2653
2672
|
.uvf-controls-bar {
|
|
2673
|
+
position: absolute;
|
|
2674
|
+
bottom: 0;
|
|
2675
|
+
left: 0;
|
|
2676
|
+
right: 0;
|
|
2654
2677
|
padding: 16px 12px;
|
|
2678
|
+
padding-bottom: calc(16px + var(--uvf-safe-area-bottom));
|
|
2679
|
+
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
2680
|
+
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
2655
2681
|
background: linear-gradient(to top, var(--uvf-overlay-strong) 0%, var(--uvf-overlay-medium) 80%, var(--uvf-overlay-transparent) 100%);
|
|
2682
|
+
box-sizing: border-box;
|
|
2683
|
+
z-index: 1000;
|
|
2656
2684
|
}
|
|
2657
2685
|
|
|
2658
2686
|
.uvf-progress-section {
|
|
@@ -2824,11 +2852,11 @@ export class WebPlayer extends BasePlayer {
|
|
|
2824
2852
|
}
|
|
2825
2853
|
}
|
|
2826
2854
|
|
|
2827
|
-
/* Enhanced top controls for mobile with
|
|
2855
|
+
/* Enhanced top controls for mobile with safe area support */
|
|
2828
2856
|
.uvf-top-controls {
|
|
2829
2857
|
position: absolute;
|
|
2830
|
-
top: 12px;
|
|
2831
|
-
right: 12px;
|
|
2858
|
+
top: calc(12px + var(--uvf-safe-area-top));
|
|
2859
|
+
right: calc(12px + var(--uvf-safe-area-right));
|
|
2832
2860
|
display: flex;
|
|
2833
2861
|
align-items: center;
|
|
2834
2862
|
gap: 8px;
|
|
@@ -2856,9 +2884,12 @@ export class WebPlayer extends BasePlayer {
|
|
|
2856
2884
|
display: flex;
|
|
2857
2885
|
}
|
|
2858
2886
|
|
|
2859
|
-
/* Enhanced title bar for mobile */
|
|
2887
|
+
/* Enhanced title bar for mobile with safe area support */
|
|
2860
2888
|
.uvf-title-bar {
|
|
2861
2889
|
padding: 12px;
|
|
2890
|
+
padding-top: calc(12px + var(--uvf-safe-area-top));
|
|
2891
|
+
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
2892
|
+
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
2862
2893
|
}
|
|
2863
2894
|
|
|
2864
2895
|
.uvf-video-title {
|
|
@@ -2985,30 +3016,55 @@ export class WebPlayer extends BasePlayer {
|
|
|
2985
3016
|
}
|
|
2986
3017
|
}
|
|
2987
3018
|
|
|
2988
|
-
/* Mobile devices (landscape) - Optimized for fullscreen viewing */
|
|
3019
|
+
/* Mobile devices (landscape) - Optimized for fullscreen viewing with safe areas */
|
|
2989
3020
|
@media screen and (max-width: 767px) and (orientation: landscape) {
|
|
2990
3021
|
.uvf-responsive-container {
|
|
2991
3022
|
width: 100vw !important;
|
|
2992
|
-
height: 100vh
|
|
3023
|
+
height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
2993
3024
|
margin: 0;
|
|
2994
3025
|
padding: 0;
|
|
3026
|
+
position: relative;
|
|
3027
|
+
overflow: hidden;
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
@supports (height: 100dvh) {
|
|
3031
|
+
.uvf-responsive-container {
|
|
3032
|
+
height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
3033
|
+
}
|
|
2995
3034
|
}
|
|
2996
3035
|
|
|
2997
3036
|
.uvf-responsive-container .uvf-player-wrapper {
|
|
2998
3037
|
width: 100vw !important;
|
|
2999
|
-
height:
|
|
3038
|
+
height: 100% !important;
|
|
3039
|
+
min-height: calc(100vh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
3040
|
+
}
|
|
3041
|
+
|
|
3042
|
+
@supports (height: 100dvh) {
|
|
3043
|
+
.uvf-responsive-container .uvf-player-wrapper {
|
|
3044
|
+
min-height: calc(100dvh - var(--uvf-safe-area-top) - var(--uvf-safe-area-bottom));
|
|
3045
|
+
}
|
|
3000
3046
|
}
|
|
3001
3047
|
|
|
3002
3048
|
.uvf-responsive-container .uvf-video-container {
|
|
3003
3049
|
width: 100vw !important;
|
|
3004
|
-
height:
|
|
3050
|
+
height: 100% !important;
|
|
3005
3051
|
aspect-ratio: unset !important;
|
|
3052
|
+
min-height: inherit;
|
|
3006
3053
|
}
|
|
3007
3054
|
|
|
3008
|
-
/* Compact controls for landscape */
|
|
3055
|
+
/* Compact controls for landscape with safe area padding */
|
|
3009
3056
|
.uvf-controls-bar {
|
|
3057
|
+
position: absolute;
|
|
3058
|
+
bottom: 0;
|
|
3059
|
+
left: 0;
|
|
3060
|
+
right: 0;
|
|
3010
3061
|
padding: 10px 12px;
|
|
3062
|
+
padding-bottom: calc(10px + var(--uvf-safe-area-bottom));
|
|
3063
|
+
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
3064
|
+
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
3011
3065
|
background: linear-gradient(to top, var(--uvf-overlay-strong) 0%, var(--uvf-overlay-medium) 80%, var(--uvf-overlay-transparent) 100%);
|
|
3066
|
+
box-sizing: border-box;
|
|
3067
|
+
z-index: 1000;
|
|
3012
3068
|
}
|
|
3013
3069
|
|
|
3014
3070
|
.uvf-progress-section {
|
|
@@ -3044,13 +3100,20 @@ export class WebPlayer extends BasePlayer {
|
|
|
3044
3100
|
height: 22px;
|
|
3045
3101
|
}
|
|
3046
3102
|
|
|
3047
|
-
/* Compact top controls */
|
|
3103
|
+
/* Compact top controls with safe area padding */
|
|
3048
3104
|
.uvf-top-controls {
|
|
3049
|
-
top: 8px;
|
|
3050
|
-
right: 12px;
|
|
3105
|
+
top: calc(8px + var(--uvf-safe-area-top));
|
|
3106
|
+
right: calc(12px + var(--uvf-safe-area-right));
|
|
3051
3107
|
gap: 6px;
|
|
3052
3108
|
}
|
|
3053
3109
|
|
|
3110
|
+
.uvf-title-bar {
|
|
3111
|
+
padding: 8px 12px;
|
|
3112
|
+
padding-top: calc(8px + var(--uvf-safe-area-top));
|
|
3113
|
+
padding-left: calc(12px + var(--uvf-safe-area-left));
|
|
3114
|
+
padding-right: calc(12px + var(--uvf-safe-area-right));
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3054
3117
|
.uvf-top-btn {
|
|
3055
3118
|
width: 40px;
|
|
3056
3119
|
height: 40px;
|
|
@@ -3097,17 +3160,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
3097
3160
|
height: 16px;
|
|
3098
3161
|
}
|
|
3099
3162
|
}
|
|
3100
|
-
|
|
3101
|
-
.uvf-video-container {
|
|
3102
|
-
aspect-ratio: auto !important;
|
|
3103
|
-
height: 100% !important;
|
|
3104
|
-
}
|
|
3105
|
-
.uvf-controls-bar {
|
|
3106
|
-
bottom: 0 !important;
|
|
3107
|
-
padding-bottom: 10px !important;
|
|
3108
|
-
}
|
|
3109
|
-
}
|
|
3110
|
-
|
|
3163
|
+
|
|
3111
3164
|
/* Tablet devices - Enhanced UX with desktop features */
|
|
3112
3165
|
@media screen and (min-width: 768px) and (max-width: 1023px) {
|
|
3113
3166
|
.uvf-controls-bar {
|