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.117",
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;IA4zEvB,OAAO,CAAC,oBAAoB;IAiO5B,OAAO,CAAC,2BAA2B;IA2VnC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoLxC,SAAS,CAAC,cAAc,IAAI,IAAI;IAiDzB,gBAAgB,CAAC,MAAM,EAAE,GAAG;IA2CnC,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,sBAAsB;IAsDvB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAetC,oBAAoB,IAAI,IAAI;IAO5B,kBAAkB,IAAI,IAAI;IAOjC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,wBAAwB;IAyEhC,OAAO,CAAC,qBAAqB;IA8FtB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI;IAiBxE,0BAA0B,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAwB1F,OAAO,CAAC,oCAAoC;IAqBrC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IA2DjC,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,iBAAiB;YAgCX,SAAS;IAYvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,kBAAkB;IA4D1B,OAAO,CAAC,wBAAwB;IA+ChC,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,WAAW;YAoBL,QAAQ;YAqGR,UAAU;IAqBxB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,sBAAsB;IAiF9B,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,4BAA4B;IAoDpC,OAAO,CAAC,oBAAoB;IA+BrB,aAAa,IAAI,IAAI;IAarB,aAAa,IAAI,IAAI;IAYrB,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAe9B,kBAAkB,IAAI,OAAO;YAKtB,OAAO;IAgBf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA2C/B"}
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
- // aspect-ratio: 16 / 9;
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-player-wrapper {
1775
- position: relative;
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
- // aspect-ratio: unset !important;
2666
+ height: 100% !important;
2667
+ aspect-ratio: unset !important;
2668
+ min-height: inherit;
2650
2669
  }
2651
2670
 
2652
- /* Enhanced mobile controls bar with better spacing */
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 proper alignment */
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 !important;
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: 100vh !important;
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: 100vh !important;
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
- @media (max-width: 768px) {
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 {