@3deye-toolkit/react-camera 0.0.1-alpha.8 → 0.0.1

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.
@@ -1,21 +1,24 @@
1
- .player * {
1
+ .x-3deye-player * {
2
2
  box-sizing: border-box;
3
3
  }
4
4
 
5
- .player {
6
- flex: 1;
5
+ .x-3deye-player {
7
6
  position: relative;
8
7
  background-color: black;
8
+ }
9
+
10
+ .x-3deye-player__zoomable-wrapper {
11
+ width: 100%;
12
+ height: 100%;
9
13
  overflow: hidden;
10
14
  }
11
15
 
12
- .player .zoomable {
16
+ .x-3deye-player__zoomable {
13
17
  width: 100%;
14
18
  height: 100%;
15
19
  }
16
20
 
17
- .player video {
18
- /* object-fit: fill; */
21
+ .x-3deye-player video {
19
22
  width: 100%;
20
23
  height: 100%;
21
24
  position: absolute;
@@ -25,22 +28,315 @@
25
28
  right: 0;
26
29
  }
27
30
 
28
- .player-overlay {
29
- position: absolute;
30
- top: 0;
31
- left: 0;
32
- bottom: 0;
33
- right: 0;
34
- color: white;
31
+ .x-3deye-button {
32
+ color: inherit;
33
+ background: none;
34
+ border: none;
35
+ position: relative;
36
+ padding: 0 8px;
37
+ height: 32px;
38
+ -webkit-user-select: none;
39
+ -moz-user-select: none;
40
+ -ms-user-select: none;
41
+ user-select: none;
42
+ display: inline-flex;
43
+ justify-content: center;
44
+ align-items: center;
45
+ border-radius: 4px;
46
+ letter-spacing: 0.0107142857em;
47
+ font-weight: 500;
48
+ }
49
+
50
+ .x-3deye-button sup {
51
+ position: relative;
52
+ top: -0.5em;
53
+ left: 0.25em;
54
+ }
55
+
56
+ .x-3deye-button.x-3deye-button--fullwidth {
57
+ width: 100%;
58
+ }
59
+
60
+ .x-3deye-button:focus,
61
+ .x-3deye-button.x-3deye-button:not(:disabled):hover {
62
+ background-color: rgba(var(--surface-highlight-rgb), 0.1);
63
+ }
64
+
65
+ .x-3deye-button--icon {
66
+ border-radius: 16px;
67
+ padding: 4px;
68
+ width: 32px;
69
+ height: 32px;
70
+ display: inline-flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ }
74
+
75
+ .x-3deye-button:disabled {
76
+ opacity: 0.4;
77
+ }
78
+
79
+ .x-3deye-button:not(:disabled) {
80
+ cursor: pointer;
81
+ }
82
+
83
+ .x-3deye-button.x-3deye-button--filled,
84
+ .x-3deye-button.x-3deye-button--text {
85
+ min-width: 80px;
86
+ text-transform: capitalize;
87
+ font-family: 'Roboto', sans-serif;
88
+ font-size: 0.875rem;
89
+ font-weight: 500;
90
+ border-radius: 0.25rem;
91
+ padding: 0 1rem;
92
+ }
93
+
94
+ .x-3deye-button.x-3deye-button--filled {
95
+ background-color: rgb(39, 185, 161);
96
+ color: white;
97
+ }
98
+
99
+ .x-3deye-button.x-3deye-button--filled:not(:disabled):hover {
100
+ background-color: rgb(34, 163, 142);
101
+ }
102
+
103
+ .x-3deye-button.x-3deye-button--filled:focus {
104
+ transition: box-shadow 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
105
+ box-shadow: 0 0 0 2px rgba(39, 185, 161, 0.33);
106
+ }
107
+
108
+ .x-3deye-button canvas {
109
+ color: rgb(var(--surface-highlight-rgb));
110
+ }
111
+
112
+ .x-3deye-button--overlay {
113
+ pointer-events: auto;
114
+ background: rgba(0, 0, 0, 0.5);
115
+ border: 2px solid rgba(255, 255, 255, 0.25);
116
+ color: white;
117
+ }
118
+
119
+ .x-3deye-button.x-3deye-button--overlay:focus,
120
+ .x-3deye-button.x-3deye-button--overlay:not(:disabled):hover {
121
+ background: rgba(0, 0, 0, 0.5);
122
+ border: 2px solid rgba(255, 255, 255, 0.5);
123
+ }
124
+
125
+ .x-3deye-button.x-3deye-button--overlay.x-3deye-button--overlay-danger:not(:disabled),
126
+ .x-3deye-button.x-3deye-button--overlay.x-3deye-button--overlay-danger:not(:disabled):hover {
127
+ background-color: rgba(156, 51, 49, 0.5);
128
+ }
129
+
130
+ .x-3deye-tooltip {
131
+ background: rgb(0 0 0 / 0.9);
132
+ color: white;
133
+ border: none;
134
+ border-radius: 4px;
135
+ padding: 0.5em 1em;
136
+ font-size: 12px;
137
+ border: rgb(255 255 255 / 0.15) 1px solid;
138
+ }
139
+
140
+ .spinner {
141
+ -webkit-animation: spinner-rotation 1.5s linear infinite;
142
+ animation: spinner-rotation 1.5s linear infinite;
143
+ width: 65px;
144
+ height: 65px;
145
+ }
146
+
147
+ .spinner circle {
148
+ stroke-dasharray: 207.34;
149
+ stroke-dashoffset: 0;
150
+ transform-origin: center;
151
+ -webkit-animation: spinner-dash 1.5s ease-in-out infinite;
152
+ animation: spinner-dash 1.5s ease-in-out infinite;
153
+ }
154
+
155
+ @-webkit-keyframes spinner-rotation {
156
+ 0% {
157
+ transform: rotate(0deg);
158
+ }
159
+ 100% {
160
+ transform: rotate(270deg);
161
+ }
162
+ }
163
+
164
+ @keyframes spinner-rotation {
165
+ 0% {
166
+ transform: rotate(0deg);
167
+ }
168
+ 100% {
169
+ transform: rotate(270deg);
170
+ }
171
+ }
172
+
173
+ @-webkit-keyframes spinner-dash {
174
+ 0% {
175
+ stroke-dashoffset: 207.34;
176
+ }
177
+ 50% {
178
+ stroke-dashoffset: 51.835; /* offset / 4 */
179
+ transform: rotate(135deg);
180
+ }
181
+ 100% {
182
+ stroke-dashoffset: 207.34;
183
+ transform: rotate(450deg);
184
+ }
185
+ }
186
+
187
+ @keyframes spinner-dash {
188
+ 0% {
189
+ stroke-dashoffset: 207.34;
190
+ }
191
+ 50% {
192
+ stroke-dashoffset: 51.835; /* offset / 4 */
193
+ transform: rotate(135deg);
194
+ }
195
+ 100% {
196
+ stroke-dashoffset: 207.34;
197
+ transform: rotate(450deg);
198
+ }
199
+ }
200
+
201
+ .x-3deye-player__camera-name-popover {
202
+ background-color: rgba(15, 15, 20, 0.8);
203
+ box-shadow: none;
204
+ color: white;
205
+ white-space: nowrap;
206
+ }
207
+
208
+ .x-3deye-popover-container.x-3deye-player__camera-name-popover svg {
209
+ --tip-background: rgb(15, 15, 20);
210
+ opacity: 0.8;
211
+ }
212
+
213
+ .x-3deye-player__camera-name-popover button.x-3deye-button {
214
+ pointer-events: auto;
215
+ font-size: inherit;
216
+ }
217
+
218
+ .x-3deye-player__camera-name-popover button.x-3deye-button:hover {
219
+ text-decoration: underline;
220
+ }
221
+
222
+ .x-3deye-player__camera-name {
223
+ background-color: rgba(0, 0, 0, 0.25);
224
+ text-shadow: 1px 1px 1px black;
225
+ opacity: 0.8;
226
+ padding: 2px 16px;
227
+ border-radius: 16px;
228
+ line-height: 16px;
229
+ cursor: pointer;
230
+ -webkit-backdrop-filter: blur(3px);
231
+ backdrop-filter: blur(3px);
232
+ }
233
+
234
+ .x-3deye-player__camera-name:hover {
235
+ text-decoration: underline;
236
+ }
237
+
238
+ .x-3deye-popover-container {
239
+ background: #222;
240
+ box-shadow: 0 12px 28px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgb(0 0 0 / 0.1),
241
+ inset 0 0 0 1px rgb(255 255 255 /0.05);
242
+ color: white;
243
+ border-radius: 6px;
244
+ padding: 8px;
245
+ text-align: left;
246
+ -webkit-animation: slide-in 0.15s ease-in;
247
+ animation: slide-in 0.15s ease-in;
248
+ }
249
+
250
+ @media(prefers-reduced-motion: reduce) {
251
+ .x-3deye-popover-container {
252
+ -webkit-animation: none;
253
+ animation: none;
254
+ }
255
+ }
256
+
257
+
258
+ .x-3deye-popover-container .tip {
259
+ --tip-background: #222;
260
+ --tip-border: rgb(255 255 255 /0.05);
261
+ }
262
+
263
+ .x-3deye-player__stats > summary {
264
+ line-height: 24px;
265
+ }
266
+
267
+ .x-3deye-player__stats > summary:hover {
268
+ text-decoration: underline;
269
+ }
270
+
271
+ .x-3deye-player__stats dl {
272
+ font-size: 0.75rem;
273
+ line-height: 1.25rem;
274
+ display: table;
275
+ margin-top: 0;
276
+ margin-bottom: 0.75rem;
277
+ }
278
+
279
+ .x-3deye-player__stats dl > div {
280
+ display: table-row;
281
+ }
282
+
283
+ .x-3deye-player__stats dl > div > dt,
284
+ .x-3deye-player__stats dl > div > dd {
285
+ display: table-cell;
286
+ }
287
+
288
+ .x-3deye-player__stats dl > div > dd {
289
+ font-variant-numeric: tabular-nums;
290
+ text-align: right;
291
+ min-width: 100px;
292
+ }
293
+
294
+ .x-3deye-live-indicator {
295
+ -webkit-user-select: none;
296
+ -moz-user-select: none;
297
+ -ms-user-select: none;
298
+ user-select: none;
299
+ padding: 0 5px;
300
+ color: rgba(0, 0, 0, 0.7);
301
+ background-color: white;
302
+ font-weight: bold;
303
+ text-transform: uppercase;
304
+ opacity: 0.8;
35
305
  }
36
306
 
37
- .player-overlay .playback-indicator {
307
+ .x-3deye-button--live {
308
+ height: 24px;
309
+ padding: 0 12px;
310
+ background-color: rgba(0, 0, 0, 0.25);
311
+ border-radius: 15px;
312
+ margin: 0;
313
+ color: orange;
314
+ text-shadow: 1px 1px 1px black;
315
+ text-transform: uppercase;
316
+ }
317
+
318
+ .x-3deye-player__overlay .x-3deye-button-go-live:focus {
319
+ box-shadow: 0 0 2px orange;
320
+ }
321
+
322
+ .x-3deye-delay-indicator:hover {
323
+ text-decoration: underline;
324
+ }
325
+
326
+ .x-3deye-delay-indicator {
327
+ background-color: rgba(0, 0, 0, 0.25);
328
+ border-radius: 15px;
329
+ padding: 2px 8px;
330
+ }
331
+
332
+ .x-3deye-player__playback-indicator {
38
333
  pointer-events: none;
39
334
  position: absolute;
40
335
  top: 50%;
41
336
  left: 50%;
42
337
  transform: translate(-50%, -50%);
43
- animation: playback-indicator-fade-out 0.5s linear forwards;
338
+ -webkit-animation: playback-indicator-fade-out 0.5s linear forwards;
339
+ animation: playback-indicator-fade-out 0.5s linear forwards;
44
340
  display: none;
45
341
  background-color: rgba(0, 0, 0, 0.5);
46
342
  width: 48px;
@@ -49,6 +345,18 @@
49
345
  border-radius: 48px;
50
346
  }
51
347
 
348
+ @-webkit-keyframes playback-indicator-fade-out {
349
+ 0% {
350
+ opacity: 1;
351
+ transform: translate(-50%, -50%) scale(1);
352
+ }
353
+
354
+ 100% {
355
+ opacity: 0;
356
+ transform: translate(-50%, -50%) scale(2);
357
+ }
358
+ }
359
+
52
360
  @keyframes playback-indicator-fade-out {
53
361
  0% {
54
362
  opacity: 1;
@@ -61,416 +369,581 @@
61
369
  }
62
370
  }
63
371
 
64
- .player-overlay .controls {
65
- position: absolute;
66
- left: 0;
67
- bottom: 0;
68
- right: 0;
69
- height: 54px;
70
- opacity: 0;
71
- display: flex;
72
- pointer-events: none;
372
+ .x-3deye-player__overlay {
373
+ position: absolute;
374
+ top: 0;
375
+ left: 0;
376
+ bottom: 0;
377
+ right: 0;
378
+ color: white;
73
379
  }
74
380
 
75
- .player-overlay .controls > * {
76
- pointer-events: auto;
381
+ .x-3deye-player__controls {
382
+ position: absolute;
383
+ left: 0;
384
+ bottom: 0;
385
+ right: 0;
386
+ height: 54px;
387
+ opacity: 0;
388
+ display: flex;
389
+ pointer-events: none;
77
390
  }
78
391
 
79
- .player-overlay:hover .controls, .player-overlay .controls:focus-within, .player.paused .controls {
80
- opacity: 1;
392
+ .x-3deye-player__controls > * {
393
+ pointer-events: auto;
81
394
  }
82
395
 
83
- .player-overlay .indicators {
84
- display: flex;
85
- pointer-events: none;
86
- align-items: center;
396
+ .x-3deye-player__overlay:hover .x-3deye-player__controls,
397
+ .x-3deye-player__controls:focus-within,
398
+ .x-3deye-player--paused .x-3deye-player__controls {
399
+ opacity: 1;
87
400
  }
88
401
 
89
- .player-overlay .indicators > * {
90
- margin: 5px;
402
+ .x-3deye-player__indicators {
403
+ display: flex;
404
+ pointer-events: none;
405
+ align-items: center;
91
406
  }
92
407
 
93
- .player-overlay .live-indicator {
94
- user-select: none;
95
- padding: 0 5px;
96
- color: rgba(0, 0, 0, 0.7);
97
- background-color: white;
98
- font-weight: bold;
99
- text-transform: uppercase;
100
- opacity: 0.8;
408
+ .x-3deye-player__indicators > * {
409
+ margin: 5px;
101
410
  }
102
411
 
103
- .player-overlay .camera-name {
104
- pointer-events: auto;
105
- background-color: rgba(0, 0, 0, 0.25);
106
- text-shadow: 1px 1px 1px black;
107
- opacity: 0.8;
108
- padding: 2px 16px;
109
- border-radius: 16px;
110
- line-height: 16px;
111
- cursor: pointer;
412
+ .x-3deye-player__overlay .x-3deye-button--live {
413
+ opacity: 0;
414
+ margin: 3px 5px;
112
415
  }
113
416
 
114
- .player-overlay .camera-name:hover {
115
- text-decoration: underline;
417
+ .x-3deye-player__overlay:hover .x-3deye-button--live,
418
+ .x-3deye-button--live:focus {
419
+ opacity: 1;
116
420
  }
117
421
 
118
- .player-overlay .button-go-live {
119
- height: 24px;
120
- padding: 0 12px;
121
- background-color: rgba(0, 0, 0, 0.25);
122
- border-radius: 15px;
123
- margin: 0;
124
- opacity: 0;
125
- color: orange;
126
- text-shadow: 1px 1px 1px black;
422
+ .x-3deye-player__overlay .x-3deye-player__camera-name {
423
+ pointer-events: auto;
127
424
  }
128
425
 
129
- .player-overlay .button-go-live:focus {
130
- box-shadow: 0 0 2px orange;
426
+ .x-3deye-player__current-time {
427
+ line-height: 16px;
428
+ font-size: 11px;
429
+ text-shadow: 1px 1px 1px black;
430
+ background-color: rgba(0, 0, 0, 0.25);
431
+ padding: 2px 16px;
432
+ border-radius: 16px;
131
433
  }
132
434
 
133
- .player-overlay:hover .button-go-live, .button-go-live:focus {
134
- opacity: 1;
435
+ .x-3deye-player__current-time--synced {
436
+ background-color: rgb(147, 221, 30, 0.6);
135
437
  }
136
438
 
137
- .player-overlay .delay-indicator:hover {
138
- text-decoration: underline;
439
+ .x-3deye-player__zoom-preview {
440
+ display: flex;
441
+ flex-direction: column;
442
+ position: absolute;
443
+ right: 44px;
444
+ top: 50%;
445
+ transform: translateY(-50%);
446
+ background-color: rgba(0, 0, 0, 0.7);
447
+ border: 1px solid white;
139
448
  }
140
449
 
141
- .player-overlay .delay-indicator {
142
- background-color: rgba(0, 0, 0, 0.25);
143
- border-radius: 15px;
144
- padding: 2px 8px;
450
+ .x-3deye-player__zoom-preview .zoom-value {
451
+ position: absolute;
452
+ top: 0;
453
+ left: 0;
454
+ right: 0;
455
+ bottom: 0;
456
+ display: flex;
457
+ justify-content: center;
458
+ align-items: center;
459
+ font-family: monospace;
460
+ font-size: 32px;
461
+ font-weight: bold;
462
+ color: white;
463
+ text-shadow: 0 1px 1px black;
145
464
  }
146
465
 
147
- .camera-name-popover.popover-body {
148
- border-radius: 2px;
149
- background-color: rgba(15, 15, 20, 0.8);
150
- box-shadow: none;
151
- color: white;
152
- white-space: nowrap;
466
+ .x-3deye-player__zoom-preview .x-3deye-player__zoomable {
467
+ position: relative;
468
+ flex: 1;
469
+ background-color: rgba(255, 255, 255, 0.5);
153
470
  }
154
471
 
155
- .camera-name-popover.popover-body svg {
156
- fill: rgba(15, 15, 20, 0.8);
472
+ .x-3deye-player__zoom-slider {
473
+ position: absolute;
474
+ right: 10px;
475
+ top: 50%;
476
+ transform: translateY(-50%);
477
+ width: 34px;
478
+ padding: 10px 5px;
479
+ background-color: rgba(0, 0, 0, 0.5);
480
+ border: 2px solid rgba(255, 255, 255, 0.25);
481
+ border-radius: 4px;
482
+ -webkit-backdrop-filter: blur(2px);
483
+ backdrop-filter: blur(2px);
157
484
  }
158
485
 
159
- .camera-name-popover.popover-body button.button {
160
- pointer-events: auto;
161
- font-size: inherit;
486
+ .x-3deye-player__zoom-slider .tick {
487
+ margin-left: 4px;
488
+ width: 12px;
489
+ height: 10px;
490
+ border-top: 1px solid rgba(255, 255, 255, 0.4);
162
491
  }
163
492
 
164
- .camera-name-popover.popover-body button.button:hover {
165
- text-decoration: underline;
493
+ .x-3deye-player__zoom-slider .tick:nth-child(5n + 1) {
494
+ margin-left: 0px;
495
+ width: 20px;
496
+ border-top-width: 2px;
166
497
  }
167
498
 
168
- .player-overlay .current-time {
169
- line-height: 16px;
170
- font-size: 11px;
171
- text-shadow: 1px 1px 1px black;
172
- background-color: rgba(0, 0, 0, 0.25);
173
- padding: 2px 16px;
174
- border-radius: 16px;
499
+ .x-3deye-player__zoom-slider .tick:last-child {
500
+ height: 0;
175
501
  }
176
502
 
177
- .player-overlay .current-time.synced {
178
- background-color: rgb(147, 221, 30, 0.6);
503
+ .x-3deye-player__zoom-slider .rotation-button {
504
+ padding: 0;
505
+ margin-left: -4px;
506
+ margin-bottom: -4px;
507
+ width: 28px;
508
+ text-align: right;
509
+ color: white;
179
510
  }
180
511
 
181
- .zoom-preview {
512
+ .x-3deye-player__zoom-preview {
513
+ display: none;
514
+ }
515
+
516
+ .x-3deye-player__zoom-slider:hover + .x-3deye-player__zoom-preview,
517
+ .x-3deye-player__zoom-slider + .x-3deye-player__zoom-preview:focus,
518
+ .x-3deye-player__zoom-preview:hover,
519
+ .x-3deye-player__zoom-preview:focus {
520
+ display: block;
521
+ }
522
+
523
+ .x-3deye-player__controls {
182
524
  display: flex;
183
- flex-direction: column;
184
- position: absolute;
185
- right: 40px;
186
- top: 50%;
187
- transform: translateY(-50%);
188
- background-color: rgba(0, 0, 0, 0.7);
189
- border: 1px solid white;
525
+ padding: 8px;
190
526
  }
191
527
 
192
- .zoom-preview .zoom-value {
193
- position: absolute;
194
- top: 0;
195
- left: 0;
196
- right: 0;
197
- bottom: 0;
528
+ .x-3deye-player__controls .spacer {
529
+ pointer-events: none;
530
+ flex: 1;
531
+ }
532
+
533
+ .x-3deye-button.x-3deye-player__control {
534
+ width: 38px;
535
+ height: 38px;
536
+ background-color: rgb(26,30,29, 0.8);
537
+ color: rgba(255, 255, 255, 0.6);
538
+ border-radius: 0;
198
539
  display: flex;
199
540
  justify-content: center;
200
541
  align-items: center;
201
- font-family: monospace;
202
- font-size: 32px;
203
- font-weight: bold;
204
- color: white;
205
- text-shadow: 0 1px 1px black;
206
542
  }
207
543
 
208
- .zoom-preview .zoomable {
209
- position: relative;
210
- flex: 1;
211
- background-color: rgba(255, 255, 255, 0.5);
544
+ .x-3deye-player__controls--compact .x-3deye-player__control {
545
+ padding: 0;
212
546
  }
213
547
 
214
- .zoom-slider {
215
- position: absolute;
216
- right: 10px;
217
- top: 50%;
218
- transform: translateY(-50%);
219
- width: 30px;
220
- padding: 10px 5px;
221
- background-color: rgba(0, 0, 0, 0.5);
222
- border-radius: 4px;
548
+ .x-3deye-player__controls--compact .x-3deye-player__control .icon {
549
+ width: 20px;
223
550
  }
224
551
 
225
- .zoom-slider .tick {
226
- margin-left: 4px;
227
- width: 12px;
228
- height: 10px;
229
- border-top: 1px solid rgba(255, 255, 255, 0.4);
552
+ .x-3deye-player__control--reflowed {
553
+ width: 20px;
230
554
  }
231
555
 
232
- .zoom-slider .tick:nth-child(5n + 1) {
233
- margin-left: 0px;
234
- width: 20px;
235
- border-top-width: 2px;
556
+ .x-3deye-player__control + .x-3deye-player__control {
557
+ border-left: 1px solid rgb(26,30,29);
236
558
  }
237
559
 
238
- .zoom-slider .tick:last-child {
239
- height: 0;
560
+ .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control:hover {
561
+ background-color: #2a2e2d;
562
+ color: white;
240
563
  }
241
564
 
242
- .zoom-slider .rotation-button {
243
- margin-left: -4px;
244
- margin-bottom: -4px;
245
- width: 28px;
246
- text-align: right;
247
- color: white;
565
+ .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control:focus {
566
+ box-shadow: 0 0 0 0.2rem rgba(52,58,64,.5);
567
+ background-color: rgb(26,30,29, 0.8);
568
+ z-index: 1;
248
569
  }
249
570
 
250
- .zoom-preview {
251
- display: none;
571
+ .x-3deye-player__control:first-child {
572
+ border-top-left-radius: 4px;
573
+ border-bottom-left-radius: 4px;
252
574
  }
253
575
 
254
- .zoom-slider:hover + .zoom-preview,
255
- .zoom-slider + .zoom-preview:focus,
256
- .zoom-preview:hover,
257
- .zoom-preview:focus {
258
- display: block;
576
+ .x-3deye-player__controls > .x-3deye-player__control:last-child {
577
+ border-top-right-radius: 4px;
578
+ border-bottom-right-radius: 4px;
259
579
  }
260
- .button {
261
- color: inherit;
262
- background: none;
263
- border: none;
264
- position: relative;
265
- padding: 4px;
266
- text-transform: uppercase;
267
- user-select: none;
268
- font-family: 'Roboto', sans-serif;
269
- text-align: center;
270
- align-items: flex-start;
580
+
581
+ .x-3deye-player__controls--spaced > .spacer+.x-3deye-player__control {
582
+ border-top-left-radius: 4px;
583
+ border-bottom-left-radius: 4px;
271
584
  }
272
585
 
273
- .button.fullwidth {
274
- width: 100%;
586
+ .x-3deye-player__controls--spaced > .x-3deye-player__control.before-spacer {
587
+ border-top-right-radius: 4px;
588
+ border-bottom-right-radius: 4px;
275
589
  }
276
590
 
277
- .button:focus {
278
- background-color: rgba(255, 255, 255, 0.1);
591
+ .x-3deye-button.x-3deye-player__control-close {
592
+ background-color: rgba(156, 51, 49, 0.8);
279
593
  }
280
594
 
281
- .button-icon {
282
- border-radius: 16px;
283
- width: 32px;
284
- height: 32px;
595
+ .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control-close:hover {
596
+ background-color: rgba(156, 51, 49);
285
597
  }
286
598
 
287
- .button:disabled {
288
- opacity: 0.6;
599
+ .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control-close:focus {
600
+ background-color: rgba(156, 51, 49, 0.8);
601
+ box-shadow: 0 0 0 0.2rem rgba(101, 20, 46, 0.5);
289
602
  }
290
603
 
291
- .button.button-save, .button.button-cancel {
292
- color: white;
293
- border-radius: 4px;
294
- text-transform: none;
295
- margin: 4px;
296
- min-width: 80px;
604
+ .x-3deye-player--paused .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control-playpause {
605
+ background-color: rgba(49, 106, 156, 0.8);
297
606
  }
298
607
 
299
- .button.button-save.fullwidth, .button.button-cancel.fullwidth {
300
- width: calc(100% - 8px);
608
+ .x-3deye-player--paused .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control-playpause:hover {
609
+ background-color: rgba(49, 106, 156);
301
610
  }
302
611
 
303
- .button:not(:disabled) {
304
- cursor: pointer;
612
+ .x-3deye-player--paused .x-3deye-button.x-3deye-button:not(:disabled).x-3deye-player__control-playpause:focus {
613
+ background-color: rgba(49, 106, 156, 0.8);
614
+ box-shadow: 0 0 0 0.2rem rgba(20, 69, 101, 0.5);
305
615
  }
306
616
 
307
- .button.button-save {
308
- background-color: #27B9A1;
617
+ .x-3deye-popover-container.popover-playbackrate {
618
+ background: white;
619
+ color: black;
309
620
  }
310
621
 
311
- .button.button-cancel {
312
- background-color: #7758B2;
622
+ .x-3deye-popover-container.popover-playbackrate .tip {
623
+ --tip-background: white;
624
+ --tip-border: transparent;
313
625
  }
314
- .popover {
315
- position: relative;
626
+
627
+ .volume-control:hover .volume-range,
628
+ .volume-control:focus .volume-range,
629
+ .volume-control:focus-within .volume-range {
630
+ visibility: visible;
631
+ transition: visibility 0s;
316
632
  }
317
633
 
318
- .popover-body {
319
- background-color: white;
320
- padding: 8px;
321
- border-radius: 8px;
322
- box-shadow: 0 0 8px 0px black;
634
+ .volume-range {
635
+ --surface-inverse: rgba(255, 255, 255, 0.15);
636
+ --surface-highlight-rgb: 255, 255, 255;
637
+ --primary-color: #0067ac;
638
+ --on-primary-color: white;
639
+ background-color: rgba(26, 30, 29, 0.5);
640
+ padding: 16px 4px;
641
+ border-radius: 4px;
642
+ position: absolute;
643
+ display: flex;
644
+ justify-content: center;
645
+ width: 32px;
646
+ height: 140px;
647
+ bottom: 100%;
648
+ left: 0;
649
+ visibility: hidden;
650
+ transition: visibility 0s 0.5s;
651
+ transform-origin: 16px 12px;
323
652
  }
324
- .spinner {
325
- animation: spinner-rotation 1.5s linear infinite;
326
- width: 65px;
327
- height: 65px;
653
+
654
+ .x-3deye-slider {
655
+ position: relative;
656
+ display: flex;
657
+ align-items: center;
328
658
  }
329
659
 
330
- .spinner circle {
331
- stroke-dasharray: 207.34;
332
- stroke-dashoffset: 0;
333
- transform-origin: center;
334
- animation: spinner-dash 1.5s ease-in-out infinite;
660
+ .x-3deye-slider:focus-visible {
661
+ outline: none;
335
662
  }
336
663
 
337
- @keyframes spinner-rotation {
338
- 0% {
339
- transform: rotate(0deg);
340
- }
341
- 100% {
342
- transform: rotate(270deg);
343
- }
664
+ .x-3deye-slider.horizontal {
665
+ width: 100%;
666
+ height: 20px;
344
667
  }
345
668
 
346
- @keyframes spinner-dash {
347
- 0% {
348
- stroke-dashoffset: 207.34;
349
- }
350
- 50% {
351
- stroke-dashoffset: 51.835; /* offset / 4 */
352
- transform: rotate(135deg);
353
- }
354
- 100% {
355
- stroke-dashoffset: 207.34;
356
- transform: rotate(450deg);
357
- }
669
+ .x-3deye-slider.vertical {
670
+ width: 20px;
671
+ height: 100%;
672
+ flex-direction: column;
358
673
  }
359
- .controls {
360
- display: flex;
361
- padding: 8px;
674
+
675
+ .x-3deye-slider__track {
676
+ background: var(--surface-inverse, gainsboro);
677
+ position: relative;
678
+ flex: 1;
362
679
  }
363
680
 
364
- .controls .spacer {
365
- pointer-events: none;
366
- flex: 1;
681
+ .x-3deye-slider__bar {
682
+ background-color: var(--primary-color, #0067ac);
683
+ position: absolute;
367
684
  }
368
685
 
369
- .control {
370
- width: 38px;
371
- height: 38px;
372
- background-color: rgb(26,30,29, 0.8);
373
- color: rgba(255, 255, 255, 0.6);
686
+ .x-3deye-slider.disabled .x-3deye-slider__bar {
687
+ background-color: rgb(165, 165, 165);
374
688
  }
375
689
 
376
- .control.close {
377
- background-color: rgba(156, 51, 49, 0.8);
690
+ .x-3deye-slider.horizontal .x-3deye-slider__bar {
691
+ top: 0;
692
+ bottom: 0;
693
+ left: 0;
378
694
  }
379
695
 
380
- .player.paused .control.playpause {
381
- background-color: rgba(49, 106, 156, 0.8);
696
+ .x-3deye-slider.vertical .x-3deye-slider__bar {
697
+ bottom: 0;
698
+ left: 0;
699
+ right: 0;
382
700
  }
383
701
 
384
- .controls.compact .control {
385
- padding: 0;
702
+ .x-3deye-slider.horizontal .x-3deye-slider__track {
703
+ height: 3px;
386
704
  }
387
705
 
388
- .controls.compact .control.reflowed {
389
- width: 20px;
706
+ .x-3deye-slider.vertical .x-3deye-slider__track {
707
+ width: 3px;
390
708
  }
391
709
 
392
- .control + .control {
393
- border-left: 1px solid rgb(26,30,29);
710
+ .x-3deye-slider__thumb {
711
+ will-change: transform box-shadow;
712
+ background: white;
713
+ box-shadow: 0 0 0 6px rgba(0, 100, 255, 0), 0 0 0 1px rgba(0, 0, 0, 0.1) inset, 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
714
+ width: 20px;
715
+ height: 20px;
716
+ border-radius: 50%;
717
+ transition: box-shadow 150ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 0ms;
394
718
  }
395
719
 
396
- .control:hover {
397
- background-color: #2a2e2d;
398
- color: white;
720
+ .x-3deye-slider:not(.disabled) .x-3deye-slider__thumb:hover,
721
+ .x-3deye-slider:focus .x-3deye-slider__thumb {
722
+ box-shadow: 0 0 0 6px rgba(var(--surface-highlight-rgb, 0, 100, 255), 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1) inset,
723
+ 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
399
724
  }
400
725
 
401
- .control.close:hover {
402
- background-color: rgba(156, 51, 49);
726
+ .x-3deye-slider:focus .x-3deye-slider__thumb.active {
727
+ box-shadow: 0 0 0 6px rgba(var(--surface-highlight-rgb, 0, 100, 255), 0.2), 0 0 0 1px rgba(0, 0, 0, 0.1) inset,
728
+ 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
403
729
  }
404
730
 
405
- .player.paused .control.playpause:hover {
406
- background-color: rgba(49, 106, 156);
731
+ .x-3deye-slider.horizontal .x-3deye-slider__thumb {
732
+ margin-left: -10px;
407
733
  }
408
734
 
409
- .control:focus {
410
- box-shadow: 0 0 0 0.2rem rgba(52,58,64,.5);
411
- background-color: rgb(26,30,29, 0.8);
412
- z-index: 1;
735
+ .x-3deye-slider.vertical .x-3deye-slider__thumb {
736
+ margin-bottom: -10px;
413
737
  }
414
738
 
415
- .control.close:focus {
416
- background-color: rgba(156, 51, 49, 0.8);
417
- box-shadow: 0 0 0 0.2rem rgba(101, 20, 46, 0.5);
739
+ .x-3deye-slider__label {
740
+ pointer-events: none;
741
+ touch-action: none;
742
+ will-change: transform;
743
+ transform: translate(-50%, -100%) scale(0);
744
+ background: var(--primary-color, #0067ac);
745
+ bottom: 50%;
746
+ left: 50%;
747
+ color: var(--on-primary-color, white);
748
+ font-size: 0.75rem;
749
+ border-radius: 4px;
750
+ width: -webkit-fit-content;
751
+ width: -moz-fit-content;
752
+ width: fit-content;
753
+ min-width: 24px;
754
+ padding: 4px 8px;
755
+ position: relative;
756
+ transition: transform 150ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 0ms;
757
+ transform-origin: center bottom;
418
758
  }
419
759
 
420
- .player.paused .control.playpause:focus {
421
- background-color: rgba(49, 106, 156, 0.8);
422
- box-shadow: 0 0 0 0.2rem rgba(20, 69, 101, 0.5);
760
+ .x-3deye-slider__label.open,
761
+ .x-3deye-slider:not(.disabled) .x-3deye-slider__thumb:hover .x-3deye-slider__label,
762
+ .x-3deye-slider:focus .x-3deye-slider__label {
763
+ transform: translate(-50%, -100%) scale(1);
423
764
  }
424
765
 
425
- .controls > .control:first-child {
426
- border-top-left-radius: 4px;
427
- border-bottom-left-radius: 4px;
766
+ .x-3deye-slider__label::before {
767
+ content: '';
768
+ display: block;
769
+ position: absolute;
770
+ top: 100%;
771
+ left: calc(50% - 5px);
772
+ width: 0;
773
+ height: 0;
774
+ border-left: 5px solid transparent;
775
+ border-right: 5px solid transparent;
776
+ border-top: 5px solid var(--primary-color, #0067ac);
428
777
  }
429
778
 
430
- .controls > .control:last-child {
431
- border-top-right-radius: 4px;
432
- border-bottom-right-radius: 4px;
779
+ .ptz-popover.x-3deye-popover-container {
780
+ border-radius: 6px;
781
+ background-color: rgba(15, 15, 20, 0.7);
782
+ box-shadow: none;
783
+ color: rgba(255, 255, 255, 0.8);
784
+ border: 1px solid rgba(255, 255, 255, 0.2);
785
+ -webkit-backdrop-filter: blur(1px);
786
+ backdrop-filter: blur(1px);
433
787
  }
434
788
 
435
- .controls.spaced > .spacer+.control {
436
- border-top-left-radius: 4px;
437
- border-bottom-left-radius: 4px;
789
+ .ptz-popover .tip {
790
+ --tip-background: rgba(15, 15, 20, 0.5);
791
+ --tip-border: rgba(255, 255, 255, 0.2);
438
792
  }
439
793
 
440
- .controls.spaced > .control.before-spacer {
441
- border-top-right-radius: 4px;
442
- border-bottom-right-radius: 4px;
794
+ .ptz-popover {
795
+ --surface-inverse: rgba(255, 255, 255, 0.15);
796
+ --surface-highlight-rgb: 255, 255, 255;
797
+ --primary-color: #0067ac;
798
+ --on-primary-color: white;
443
799
  }
444
- .volume-control:hover .volume-range, .volume-control:focus .volume-range {
445
- visibility: visible;
446
- transition: visibility 0s;
800
+
801
+ .segmented-control-wrapper {
802
+ display: inline-grid;
803
+ border-radius: 6px;
804
+ background-color: var(--surface-inverse);
805
+ }
806
+
807
+ .segmented-control {
808
+ display: grid;
809
+ margin: 2px;
810
+ position: relative;
811
+ grid-auto-flow: column;
812
+ grid-auto-columns: 1fr;
813
+ --indicator-offset: 0%;
814
+ }
815
+
816
+ .segmented-control-indicator {
817
+ position: absolute;
818
+ height: 100%;
819
+ pointer-events: none;
820
+ transform: translateX(var(--indicator-offset));
821
+ transition: 0.2s ease-in-out;
822
+ }
823
+
824
+ .segmented-control-indicator-inner {
825
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.16);
826
+ border-radius: 6px;
827
+ background: #fff;
828
+ transition: 0.2s;
829
+ transform: scale(1);
830
+ position: absolute;
831
+ inset: 0;
832
+ }
833
+
834
+ .segmented-control-indicator.active .segmented-control-indicator-inner {
835
+ transform: scale(0.95);
836
+ }
837
+
838
+ .segmented-control-button {
839
+ font-family: inherit;
840
+ min-height: 24px;
841
+ margin: 2px;
842
+ background: none;
843
+ border: none;
844
+ color: currentColor;
845
+ -webkit-user-select: none;
846
+ -moz-user-select: none;
847
+ -ms-user-select: none;
848
+ user-select: none;
849
+ text-overflow: ellipsis;
850
+ overflow: hidden;
851
+ z-index: 1;
447
852
  }
448
853
 
449
- .volume-range {
450
- background-color: rgba(26,30,29, 0.5);
451
- padding: 4px;
452
- border-radius: 4px;
453
- position: absolute;
454
- height: 32px;
455
- top: -28px;
456
- left: 0;
457
- visibility: hidden;
458
- transition: visibility 0s 0.5s;
459
- transform-origin: 16px 12px;
460
- transform: rotate(270deg);
854
+ .segmented-control-button:not(.current):hover {
855
+ opacity: 0.6;
856
+ }
857
+
858
+ .segmented-control-button.current {
859
+ color: black;
461
860
  }
462
861
 
463
862
  .box-selector {
464
- border: 2px solid deepskyblue;
465
- background-color: rgba(0, 191, 255, 0.5);
863
+ border: 2px solid deepskyblue;
864
+ background-color: rgba(0, 191, 255, 0.5);
466
865
  }
467
866
 
468
867
  .box-selector-close {
469
- background-color: skyblue;
470
- transition: 0.2s ease-in;
471
- color: #026282;
868
+ background-color: skyblue;
869
+ transition: 0.2s ease-in;
870
+ color: #026282;
472
871
  }
473
872
 
474
873
  .box-selector-close:hover {
475
- color: white;
874
+ color: white;
875
+ }
876
+
877
+ .box-selector-preview {
878
+ width: 40px;
879
+ height: 40px;
880
+ position: relative;
881
+ margin: 20px 20px 0px 10px;
882
+ }
883
+
884
+ @-webkit-keyframes expand-box-selector-preview {
885
+ from {
886
+ width: 20px;
887
+ height: 16px;
888
+ }
889
+
890
+ to {
891
+ width: 50px;
892
+ height: 30px;
893
+ }
894
+ }
895
+
896
+ @keyframes expand-box-selector-preview {
897
+ from {
898
+ width: 20px;
899
+ height: 16px;
900
+ }
901
+
902
+ to {
903
+ width: 50px;
904
+ height: 30px;
905
+ }
906
+ }
907
+
908
+ .box-selector-preview .box-selector {
909
+ /* width: 20px;
910
+ height: 16px; */
911
+ width: 50px;
912
+ height: 30px;
913
+ position: relative;
914
+ will-change: width, height;
915
+
916
+ -webkit-animation-duration: 0.5s;
917
+
918
+ animation-duration: 0.5s;
919
+ -webkit-animation-name: expand-box-selector-preview;
920
+ animation-name: expand-box-selector-preview;
921
+ }
922
+
923
+ .box-selector-preview .icon {
924
+ position: absolute;
925
+ bottom: -7px;
926
+ right: -7px;
927
+ }
928
+
929
+ /* .box-selector-select:hover .box-selector {
930
+ width: 50px;
931
+ height: 30px;
932
+ } */
933
+
934
+ .box-selector-select {
935
+ color: rgba(255, 255, 255, 0.8);
936
+ background-color: rgba(0, 0, 0, 0.5);
937
+ -webkit-backdrop-filter: blur(2px);
938
+ backdrop-filter: blur(2px);
939
+ text-transform: uppercase;
940
+ font-weight: bold;
941
+ text-align: center;
942
+ border-radius: 4px;
943
+ padding: 8px;
944
+ width: content-width;
945
+ }
946
+
947
+ .box-selector-cancel {
948
+ pointer-events: auto;
476
949
  }