unified-video-framework 1.4.167 → 1.4.169

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.
@@ -4058,168 +4058,118 @@ export class WebPlayer extends BasePlayer {
4058
4058
  pointer-events: none;
4059
4059
  }
4060
4060
 
4061
- /* Fullscreen specific styles */
4062
- .uvf-player-wrapper.uvf-fullscreen {
4063
- position: fixed !important;
4064
- top: 0 !important;
4065
- left: 0 !important;
4066
- width: 100vw !important;
4067
- height: 100vh !important;
4068
- z-index: 2147483647;
4069
- background: #000;
4070
- }
4071
-
4072
- .uvf-player-wrapper.uvf-fullscreen .uvf-video-container {
4073
- width: 100vw !important;
4074
- height: 100vh !important;
4075
- max-width: none !important;
4076
- max-height: none !important;
4077
- aspect-ratio: unset !important;
4078
- }
4079
-
4080
- .uvf-player-wrapper.uvf-fullscreen .uvf-video {
4081
- width: 100vw !important;
4082
- height: 100vh !important;
4083
- }
4084
-
4085
- /* Maintain consistent control sizing in fullscreen */
4086
- .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn {
4087
- width: 40px;
4088
- height: 40px;
4089
- min-width: 40px;
4090
- min-height: 40px;
4091
- }
4092
-
4093
- .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn.play-pause {
4094
- width: 50px;
4095
- height: 50px;
4096
- min-width: 50px;
4097
- min-height: 50px;
4098
- }
4099
-
4100
- .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn svg {
4101
- width: 20px;
4102
- height: 20px;
4103
- }
4104
-
4105
- .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn.play-pause svg {
4106
- width: 24px;
4107
- height: 24px;
4108
- }
4109
-
4110
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-btn {
4111
- width: 40px;
4112
- height: 40px;
4113
- min-width: 40px;
4114
- min-height: 40px;
4115
- }
4116
-
4117
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-btn svg {
4118
- width: 20px;
4119
- height: 20px;
4120
- }
4121
-
4122
- .uvf-player-wrapper.uvf-fullscreen .uvf-time-display {
4123
- font-size: 14px;
4124
- padding: 0 10px;
4125
- }
4126
-
4127
- .uvf-player-wrapper.uvf-fullscreen .uvf-center-play-btn {
4128
- width: 64px;
4129
- height: 64px;
4130
- }
4131
-
4132
- .uvf-player-wrapper.uvf-fullscreen .uvf-center-play-btn svg {
4133
- width: 28px;
4134
- height: 28px;
4135
- }
4136
-
4137
- /* Ensure overlays remain visible in fullscreen with consistent spacing */
4138
- .uvf-player-wrapper.uvf-fullscreen .uvf-title-bar,
4139
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-controls,
4140
- .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar,
4141
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-gradient,
4142
- .uvf-player-wrapper.uvf-fullscreen .uvf-controls-gradient {
4143
- z-index: 2147483647; /* Maximum z-index value */
4144
- }
4145
-
4146
- .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar {
4147
- padding: 20px 30px; /* More generous padding in fullscreen */
4148
- }
4149
-
4150
- .uvf-player-wrapper.uvf-fullscreen .uvf-controls-row {
4151
- gap: 15px; /* Consistent gap in fullscreen */
4152
- }
4153
-
4154
- .uvf-player-wrapper.uvf-fullscreen .uvf-title-bar {
4155
- padding: 20px 30px;
4156
- }
4157
-
4158
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-controls {
4159
- top: 20px;
4160
- right: 30px;
4161
- gap: 10px;
4162
- }
4163
-
4164
- /* Fullscreen hover and visibility states */
4165
- .uvf-player-wrapper.uvf-fullscreen:hover .uvf-title-bar,
4166
- .uvf-player-wrapper.uvf-fullscreen:hover .uvf-top-controls,
4167
- .uvf-player-wrapper.uvf-fullscreen.controls-visible .uvf-title-bar,
4168
- .uvf-player-wrapper.uvf-fullscreen.controls-visible .uvf-top-controls {
4169
- opacity: 1;
4170
- transform: translateY(0);
4171
- }
4172
-
4173
- /* Fullscreen mobile responsive adjustments */
4174
- @media screen and (max-width: 767px) {
4175
- .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar {
4176
- padding: 15px 20px;
4061
+ /* Fullscreen specific styles - DESKTOP AND LANDSCAPE ONLY */
4062
+ /* Mobile portrait uses Material You layout in fullscreen */
4063
+ @media not all and (max-width: 767px) and (orientation: portrait) {
4064
+ .uvf-player-wrapper.uvf-fullscreen {
4065
+ position: fixed !important;
4066
+ top: 0 !important;
4067
+ left: 0 !important;
4068
+ width: 100vw !important;
4069
+ height: 100vh !important;
4070
+ z-index: 2147483647;
4071
+ background: #000;
4177
4072
  }
4178
4073
 
4179
- .uvf-player-wrapper.uvf-fullscreen .uvf-title-bar {
4180
- padding: 15px 20px;
4074
+ .uvf-player-wrapper.uvf-fullscreen .uvf-video-container {
4075
+ width: 100vw !important;
4076
+ height: 100vh !important;
4077
+ max-width: none !important;
4078
+ max-height: none !important;
4079
+ aspect-ratio: unset !important;
4181
4080
  }
4182
4081
 
4183
- .uvf-player-wrapper.uvf-fullscreen .uvf-top-controls {
4184
- top: 15px;
4185
- right: 20px;
4082
+ .uvf-player-wrapper.uvf-fullscreen .uvf-video {
4083
+ width: 100vw !important;
4084
+ height: 100vh !important;
4186
4085
  }
4187
4086
 
4188
- /* Mobile controls in fullscreen - slightly larger than normal mobile */
4087
+ /* Maintain consistent control sizing in fullscreen - DESKTOP/LANDSCAPE ONLY */
4189
4088
  .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn {
4190
- width: 36px;
4191
- height: 36px;
4192
- min-width: 36px;
4193
- min-height: 36px;
4089
+ width: 40px;
4090
+ height: 40px;
4091
+ min-width: 40px;
4092
+ min-height: 40px;
4194
4093
  }
4195
4094
 
4196
4095
  .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn.play-pause {
4197
- width: 44px;
4198
- height: 44px;
4199
- min-width: 44px;
4200
- min-height: 44px;
4096
+ width: 50px;
4097
+ height: 50px;
4098
+ min-width: 50px;
4099
+ min-height: 50px;
4201
4100
  }
4202
4101
 
4203
4102
  .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn svg {
4204
- width: 18px;
4205
- height: 18px;
4103
+ width: 20px;
4104
+ height: 20px;
4206
4105
  }
4207
4106
 
4208
4107
  .uvf-player-wrapper.uvf-fullscreen .uvf-control-btn.play-pause svg {
4209
- width: 22px;
4210
- height: 22px;
4108
+ width: 24px;
4109
+ height: 24px;
4211
4110
  }
4212
4111
 
4213
4112
  .uvf-player-wrapper.uvf-fullscreen .uvf-top-btn {
4214
- width: 36px;
4215
- height: 36px;
4216
- min-width: 36px;
4217
- min-height: 36px;
4113
+ width: 40px;
4114
+ height: 40px;
4115
+ min-width: 40px;
4116
+ min-height: 40px;
4218
4117
  }
4219
4118
 
4220
4119
  .uvf-player-wrapper.uvf-fullscreen .uvf-top-btn svg {
4221
- width: 18px;
4222
- height: 18px;
4120
+ width: 20px;
4121
+ height: 20px;
4122
+ }
4123
+
4124
+ .uvf-player-wrapper.uvf-fullscreen .uvf-time-display {
4125
+ font-size: 14px;
4126
+ padding: 0 10px;
4127
+ }
4128
+
4129
+ .uvf-player-wrapper.uvf-fullscreen .uvf-center-play-btn {
4130
+ width: 64px;
4131
+ height: 64px;
4132
+ }
4133
+
4134
+ .uvf-player-wrapper.uvf-fullscreen .uvf-center-play-btn svg {
4135
+ width: 28px;
4136
+ height: 28px;
4137
+ }
4138
+
4139
+ /* Ensure overlays remain visible in fullscreen with consistent spacing */
4140
+ .uvf-player-wrapper.uvf-fullscreen .uvf-title-bar,
4141
+ .uvf-player-wrapper.uvf-fullscreen .uvf-top-controls,
4142
+ .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar,
4143
+ .uvf-player-wrapper.uvf-fullscreen .uvf-top-gradient,
4144
+ .uvf-player-wrapper.uvf-fullscreen .uvf-controls-gradient {
4145
+ z-index: 2147483647; /* Maximum z-index value */
4146
+ }
4147
+
4148
+ .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar {
4149
+ padding: 20px 30px; /* More generous padding in fullscreen */
4150
+ }
4151
+
4152
+ .uvf-player-wrapper.uvf-fullscreen .uvf-controls-row {
4153
+ gap: 15px; /* Consistent gap in fullscreen */
4154
+ }
4155
+
4156
+ .uvf-player-wrapper.uvf-fullscreen .uvf-title-bar {
4157
+ padding: 20px 30px;
4158
+ }
4159
+
4160
+ .uvf-player-wrapper.uvf-fullscreen .uvf-top-controls {
4161
+ top: 20px;
4162
+ right: 30px;
4163
+ gap: 10px;
4164
+ }
4165
+
4166
+ /* Fullscreen hover and visibility states */
4167
+ .uvf-player-wrapper.uvf-fullscreen:hover .uvf-title-bar,
4168
+ .uvf-player-wrapper.uvf-fullscreen:hover .uvf-top-controls,
4169
+ .uvf-player-wrapper.uvf-fullscreen.controls-visible .uvf-title-bar,
4170
+ .uvf-player-wrapper.uvf-fullscreen.controls-visible .uvf-top-controls {
4171
+ opacity: 1;
4172
+ transform: translateY(0);
4223
4173
  }
4224
4174
  }
4225
4175
 
@@ -4251,151 +4201,15 @@ export class WebPlayer extends BasePlayer {
4251
4201
  }
4252
4202
  }
4253
4203
 
4254
- /* iOS Safari specific fixes - address bar handling and control positioning */
4204
+ /* iOS Safari specific fixes - fullscreen only */
4255
4205
  @supports (-webkit-appearance: none) {
4256
4206
  .uvf-player-wrapper.uvf-fullscreen,
4257
4207
  .uvf-video-container.uvf-fullscreen {
4258
4208
  height: -webkit-fill-available;
4259
4209
  min-height: -webkit-fill-available;
4260
4210
  }
4261
-
4262
- /* Handle iOS Safari's dynamic address bar */
4263
- @media screen and (max-width: 767px) {
4264
- .uvf-responsive-container {
4265
- height: -webkit-fill-available;
4266
- min-height: 100vh;
4267
- }
4268
-
4269
- .uvf-player-wrapper {
4270
- height: -webkit-fill-available;
4271
- min-height: 100vh;
4272
- /* Fix for iOS Safari control overlay positioning */
4273
- position: relative;
4274
- overflow: hidden;
4275
- }
4276
-
4277
- /* iOS Safari specific fixes for control positioning */
4278
- .uvf-controls-bar {
4279
- position: absolute !important;
4280
- bottom: 0 !important;
4281
- left: 0 !important;
4282
- right: 0 !important;
4283
- /* Ensure hardware acceleration */
4284
- -webkit-transform: translate3d(0,0,0);
4285
- transform: translate3d(0,0,0);
4286
- /* Prevent any webkit transforms that could cause positioning issues */
4287
- -webkit-perspective: 1000;
4288
- perspective: 1000;
4289
- }
4290
-
4291
- /* Ensure all control elements use hardware acceleration */
4292
- .uvf-control-btn,
4293
- .uvf-progress-bar,
4294
- .uvf-progress-section {
4295
- -webkit-transform: translateZ(0);
4296
- transform: translateZ(0);
4297
- }
4298
- }
4299
4211
  }
4300
4212
 
4301
- /* Android Chrome specific fixes */
4302
- @supports (display: -webkit-box) {
4303
- .uvf-responsive-container {
4304
- min-height: 100vh;
4305
- }
4306
-
4307
- /* Fix for Android Chrome's address bar behavior */
4308
- @media screen and (max-width: 767px) {
4309
- .uvf-video-container {
4310
- min-height: calc(100vh - 56px); /* Chrome mobile address bar height */
4311
- }
4312
- }
4313
- }
4314
-
4315
- /* Samsung Internet Browser fixes */
4316
- @media screen and (-webkit-min-device-pixel-ratio: 1) {
4317
- @media screen and (max-width: 767px) {
4318
- .uvf-responsive-container {
4319
- position: fixed;
4320
- top: 0;
4321
- left: 0;
4322
- width: 100vw;
4323
- height: 100vh;
4324
- }
4325
- }
4326
- }
4327
-
4328
- /* Universal mobile fixes for all browsers */
4329
- @media screen and (max-width: 767px) {
4330
- html, body {
4331
- overflow-x: hidden;
4332
- }
4333
-
4334
- .uvf-player-wrapper {
4335
- /* Prevent scroll bounce on iOS */
4336
- -webkit-overflow-scrolling: touch;
4337
- overflow: hidden;
4338
-
4339
- /* Prevent zoom on double tap */
4340
- touch-action: manipulation;
4341
- }
4342
-
4343
- .uvf-video {
4344
- /* Prevent video from being selectable */
4345
- -webkit-user-select: none;
4346
- -moz-user-select: none;
4347
- -ms-user-select: none;
4348
- user-select: none;
4349
-
4350
- /* Ensure hardware acceleration */
4351
- -webkit-transform: translateZ(0);
4352
- transform: translateZ(0);
4353
- }
4354
-
4355
- /* Fix for controls being cut off by virtual keyboard */
4356
- .uvf-controls-bar {
4357
- position: absolute !important;
4358
- bottom: 0 !important;
4359
- left: 0 !important;
4360
- right: 0 !important;
4361
- /* Remove fixed positioning that causes issues on iOS Safari */
4362
- z-index: 1000 !important;
4363
- transform: translateZ(0); /* Force hardware acceleration */
4364
- }
4365
-
4366
- /* Ensure controls stay above virtual keyboards */
4367
- @supports (bottom: env(keyboard-inset-height)) {
4368
- .uvf-controls-bar {
4369
- bottom: max(0px, env(keyboard-inset-height, 0)) !important;
4370
- padding-bottom: calc(16px + max(var(--uvf-safe-area-bottom, 0), env(keyboard-inset-height, 0))) !important;
4371
- }
4372
- }
4373
-
4374
- /* Hide PiP button on mobile - not supported on most mobile browsers */
4375
- #uvf-pip-btn {
4376
- display: none !important;
4377
- }
4378
-
4379
- /* Mobile fullscreen enhancements */
4380
- .uvf-player-wrapper.uvf-fullscreen {
4381
- /* Ensure fullscreen covers entire viewport on mobile */
4382
- position: fixed !important;
4383
- top: 0 !important;
4384
- left: 0 !important;
4385
- width: 100vw !important;
4386
- height: 100vh !important;
4387
- z-index: 2147483647 !important;
4388
- background: #000 !important;
4389
- }
4390
-
4391
- /* iOS Safari specific fullscreen fixes */
4392
- @supports (-webkit-appearance: none) {
4393
- .uvf-player-wrapper.uvf-fullscreen {
4394
- /* Use viewport units that work better with iOS Safari */
4395
- height: -webkit-fill-available !important;
4396
- }
4397
- }
4398
- }
4399
4213
 
4400
4214
  /* Enhanced Responsive Media Queries with UX Best Practices */
4401
4215
  /* Mobile devices (portrait) - Material You Design (25-50-25 Layout) */
@@ -4651,6 +4465,54 @@ export class WebPlayer extends BasePlayer {
4651
4465
  min-height: 48px !important;
4652
4466
  border-radius: 24px !important;
4653
4467
  }
4468
+
4469
+ /* Fullscreen on mobile portrait - maintain Material You layout */
4470
+ .uvf-player-wrapper.uvf-fullscreen,
4471
+ .uvf-responsive-container .uvf-player-wrapper.uvf-fullscreen {
4472
+ position: fixed !important;
4473
+ top: 0 !important;
4474
+ left: 0 !important;
4475
+ width: 100vw !important;
4476
+ height: 100vh !important;
4477
+ height: 100dvh !important;
4478
+ z-index: 2147483647 !important;
4479
+ display: flex !important;
4480
+ flex-direction: column !important;
4481
+ background: #000 !important;
4482
+ }
4483
+
4484
+ /* Video container in fullscreen - keep 50% middle */
4485
+ .uvf-player-wrapper.uvf-fullscreen .uvf-video-container,
4486
+ .uvf-responsive-container .uvf-player-wrapper.uvf-fullscreen .uvf-video-container {
4487
+ height: 50vh !important;
4488
+ height: 50dvh !important;
4489
+ width: 100vw !important;
4490
+ margin-top: 25vh !important;
4491
+ margin-top: 25dvh !important;
4492
+ position: relative !important;
4493
+ }
4494
+
4495
+ /* Top and bottom black sections in fullscreen */
4496
+ .uvf-player-wrapper.uvf-fullscreen::before {
4497
+ height: 25vh !important;
4498
+ height: 25dvh !important;
4499
+ }
4500
+
4501
+ .uvf-player-wrapper.uvf-fullscreen::after {
4502
+ height: 25vh !important;
4503
+ height: 25dvh !important;
4504
+ }
4505
+
4506
+ /* Controls stay in bottom 25% in fullscreen */
4507
+ .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar,
4508
+ .uvf-responsive-container .uvf-player-wrapper.uvf-fullscreen .uvf-controls-bar {
4509
+ position: absolute !important;
4510
+ bottom: 0 !important;
4511
+ max-height: 25vh !important;
4512
+ max-height: 25dvh !important;
4513
+ padding: 16px 20px !important;
4514
+ padding-bottom: calc(16px + var(--uvf-safe-area-bottom, 0px)) !important;
4515
+ }
4654
4516
  }
4655
4517
  }
4656
4518