react-helios 2.7.5 → 2.9.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.
- package/README.md +106 -4
- package/dist/index.d.mts +31 -1
- package/dist/index.d.ts +31 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +155 -38
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -283,69 +283,115 @@
|
|
|
283
283
|
position: absolute;
|
|
284
284
|
bottom: calc(100% + 8px);
|
|
285
285
|
right: 0;
|
|
286
|
-
background-color: rgba(
|
|
287
|
-
border-radius:
|
|
288
|
-
padding:
|
|
289
|
-
min-width:
|
|
286
|
+
background-color: rgba(20, 20, 20, 0.97);
|
|
287
|
+
border-radius: 8px;
|
|
288
|
+
padding: 4px;
|
|
289
|
+
min-width: 220px;
|
|
290
290
|
z-index: 30;
|
|
291
|
-
box-shadow: 0
|
|
292
|
-
backdrop-filter: blur(
|
|
291
|
+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.7);
|
|
292
|
+
backdrop-filter: blur(12px);
|
|
293
|
+
overflow: hidden;
|
|
293
294
|
}
|
|
294
295
|
|
|
295
|
-
/*
|
|
296
|
-
.
|
|
296
|
+
/* ── Main panel rows ── */
|
|
297
|
+
.settingsMainPanel {
|
|
297
298
|
display: flex;
|
|
298
|
-
|
|
299
|
-
margin-bottom: 4px;
|
|
299
|
+
flex-direction: column;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
-
.
|
|
303
|
-
|
|
302
|
+
.settingsRow {
|
|
303
|
+
display: flex;
|
|
304
|
+
align-items: center;
|
|
305
|
+
gap: 10px;
|
|
306
|
+
width: 100%;
|
|
307
|
+
padding: 10px 12px;
|
|
304
308
|
background: none;
|
|
305
309
|
border: none;
|
|
306
|
-
color: rgba(255, 255, 255, 0.
|
|
310
|
+
color: rgba(255, 255, 255, 0.9);
|
|
307
311
|
cursor: pointer;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
border-bottom: 2px solid transparent;
|
|
313
|
-
transition: color 0.15s, border-color 0.15s;
|
|
314
|
-
text-transform: uppercase;
|
|
312
|
+
text-align: left;
|
|
313
|
+
border-radius: 6px;
|
|
314
|
+
font-size: 13px;
|
|
315
|
+
transition: background-color 0.15s;
|
|
315
316
|
}
|
|
316
317
|
|
|
317
|
-
.
|
|
318
|
+
.settingsRow:hover {
|
|
319
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
318
320
|
color: #fff;
|
|
319
|
-
border-bottom-color: #3b82f6;
|
|
320
321
|
}
|
|
321
322
|
|
|
322
|
-
.
|
|
323
|
-
|
|
323
|
+
.settingsRowIcon {
|
|
324
|
+
display: flex;
|
|
325
|
+
align-items: center;
|
|
326
|
+
color: rgba(255, 255, 255, 0.6);
|
|
327
|
+
flex-shrink: 0;
|
|
324
328
|
}
|
|
325
329
|
|
|
326
|
-
|
|
327
|
-
|
|
330
|
+
.settingsRowLabel {
|
|
331
|
+
flex: 1;
|
|
332
|
+
font-size: 13px;
|
|
333
|
+
white-space: nowrap;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.settingsRowValue {
|
|
337
|
+
font-size: 12px;
|
|
328
338
|
color: rgba(255, 255, 255, 0.5);
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
339
|
+
flex-shrink: 0;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.settingsRowChevron {
|
|
343
|
+
display: flex;
|
|
344
|
+
align-items: center;
|
|
345
|
+
color: rgba(255, 255, 255, 0.4);
|
|
346
|
+
flex-shrink: 0;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* ── Sub-panel ── */
|
|
350
|
+
.settingsSubPanel {
|
|
351
|
+
display: flex;
|
|
352
|
+
flex-direction: column;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.settingsBackRow {
|
|
356
|
+
display: flex;
|
|
357
|
+
align-items: center;
|
|
358
|
+
gap: 6px;
|
|
359
|
+
width: 100%;
|
|
360
|
+
padding: 10px 12px;
|
|
361
|
+
background: none;
|
|
362
|
+
border: none;
|
|
363
|
+
color: #fff;
|
|
364
|
+
cursor: pointer;
|
|
365
|
+
text-align: left;
|
|
366
|
+
border-radius: 6px;
|
|
367
|
+
font-size: 13px;
|
|
368
|
+
font-weight: 600;
|
|
369
|
+
transition: background-color 0.15s;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.settingsBackRow:hover {
|
|
373
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.settingsDivider {
|
|
377
|
+
height: 1px;
|
|
378
|
+
background: rgba(255, 255, 255, 0.1);
|
|
379
|
+
margin: 2px 4px;
|
|
334
380
|
}
|
|
335
381
|
|
|
336
|
-
/* Option rows */
|
|
382
|
+
/* ── Option rows (inside sub-panels) ── */
|
|
337
383
|
.settingsOption {
|
|
338
384
|
display: flex;
|
|
339
385
|
align-items: center;
|
|
340
|
-
|
|
386
|
+
gap: 8px;
|
|
341
387
|
width: 100%;
|
|
342
|
-
padding:
|
|
388
|
+
padding: 8px 12px;
|
|
343
389
|
background: none;
|
|
344
390
|
border: none;
|
|
345
|
-
color: rgba(255, 255, 255, 0.
|
|
391
|
+
color: rgba(255, 255, 255, 0.8);
|
|
346
392
|
cursor: pointer;
|
|
347
393
|
text-align: left;
|
|
348
|
-
border-radius:
|
|
394
|
+
border-radius: 6px;
|
|
349
395
|
font-size: 13px;
|
|
350
396
|
transition: background-color 0.15s;
|
|
351
397
|
}
|
|
@@ -360,10 +406,18 @@
|
|
|
360
406
|
font-weight: 600;
|
|
361
407
|
}
|
|
362
408
|
|
|
409
|
+
.settingsOptionCheck {
|
|
410
|
+
display: flex;
|
|
411
|
+
align-items: center;
|
|
412
|
+
justify-content: center;
|
|
413
|
+
width: 16px;
|
|
414
|
+
flex-shrink: 0;
|
|
415
|
+
color: #60a5fa;
|
|
416
|
+
}
|
|
417
|
+
|
|
363
418
|
.settingsOptionBadge {
|
|
364
|
-
font-size:
|
|
419
|
+
font-size: 11px;
|
|
365
420
|
color: rgba(255, 255, 255, 0.4);
|
|
366
|
-
margin-left: 8px;
|
|
367
421
|
flex-shrink: 0;
|
|
368
422
|
}
|
|
369
423
|
|
|
@@ -562,6 +616,69 @@
|
|
|
562
616
|
transition: none;
|
|
563
617
|
}
|
|
564
618
|
|
|
619
|
+
/* ─── Waveform progress bar (audio mode) ────────────────────────────────── */
|
|
620
|
+
|
|
621
|
+
/*
|
|
622
|
+
* Sits absolutely inside .progressContainer, aligned to the bottom.
|
|
623
|
+
* Does not affect container height (position: absolute).
|
|
624
|
+
*/
|
|
625
|
+
.rvp-waveform {
|
|
626
|
+
position: absolute;
|
|
627
|
+
left: 0;
|
|
628
|
+
right: 0;
|
|
629
|
+
bottom: 10px; /* match .progressContainer padding */
|
|
630
|
+
height: 22px;
|
|
631
|
+
pointer-events: none;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
.rvp-waveform-base,
|
|
635
|
+
.rvp-waveform-filled {
|
|
636
|
+
position: absolute;
|
|
637
|
+
inset: 0;
|
|
638
|
+
display: grid;
|
|
639
|
+
grid-template-columns: repeat(200, 1fr);
|
|
640
|
+
gap: 2px;
|
|
641
|
+
align-items: end;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
/* Dot — unplayed portion (short nub at baseline) */
|
|
645
|
+
.rvp-waveform-dot {
|
|
646
|
+
min-width: 0;
|
|
647
|
+
height: 3px;
|
|
648
|
+
background: rgba(255, 255, 255, 0.28);
|
|
649
|
+
border-radius: 1.5px;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/* Buffered layer — same grid layout, gray bars clipped to buffered range */
|
|
653
|
+
.rvp-waveform-buffered {
|
|
654
|
+
position: absolute;
|
|
655
|
+
inset: 0;
|
|
656
|
+
display: grid;
|
|
657
|
+
grid-template-columns: repeat(200, 1fr);
|
|
658
|
+
gap: 2px;
|
|
659
|
+
align-items: end;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
.rvp-waveform-buffered-bar {
|
|
663
|
+
min-width: 0;
|
|
664
|
+
background: rgba(255, 255, 255, 0.35);
|
|
665
|
+
border-radius: 2px 2px 0 0;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/* Filled bar — played portion; height set inline as % of container */
|
|
669
|
+
.rvp-waveform-bar {
|
|
670
|
+
min-width: 0;
|
|
671
|
+
background: #3b82f6;
|
|
672
|
+
border-radius: 2px 2px 0 0;
|
|
673
|
+
/* height set inline as % of container (28px) */
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
/* clip-path: inset(0 RIGHT% 0 0) — updated imperatively on timeupdate */
|
|
677
|
+
.rvp-waveform-filled {
|
|
678
|
+
overflow: visible;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
|
|
565
682
|
|
|
566
683
|
/* ─── Audio Mode Overlay ───────────────────────────────────────────────────── */
|
|
567
684
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-helios",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "Production-grade React video player with HLS, zero-cost audio mode, adaptive quality, live streams, subtitles, and VTT sprite thumbnail preview",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|