@therealtinhtute/baroiplayer 1.0.1 → 1.0.3

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.
Files changed (73) hide show
  1. package/dist/context/media.js +2 -0
  2. package/dist/context/media.js.map +1 -0
  3. package/dist/context/media.mjs +15 -0
  4. package/dist/context/media.mjs.map +1 -0
  5. package/dist/context/store.js +2 -0
  6. package/dist/context/store.js.map +1 -0
  7. package/dist/context/store.mjs +5 -0
  8. package/dist/context/store.mjs.map +1 -0
  9. package/dist/context-Af84FynT.js +1179 -0
  10. package/dist/context-Af84FynT.js.map +1 -0
  11. package/dist/context-CwZnPdz0.cjs +23 -0
  12. package/dist/context-CwZnPdz0.cjs.map +1 -0
  13. package/dist/core-events-B5W_j8yU.js +480 -0
  14. package/dist/core-events-B5W_j8yU.js.map +1 -0
  15. package/dist/core-events-CN0-Vhhq.cjs +2 -0
  16. package/dist/core-events-CN0-Vhhq.cjs.map +1 -0
  17. package/dist/core-plugins-Bq9KLany.js +696 -0
  18. package/dist/core-plugins-Bq9KLany.js.map +1 -0
  19. package/dist/core-plugins-CPDSHMiQ.cjs +2 -0
  20. package/dist/core-plugins-CPDSHMiQ.cjs.map +1 -0
  21. package/dist/core.js +37 -0
  22. package/dist/core.js.map +1 -0
  23. package/dist/core.mjs +1217 -0
  24. package/dist/core.mjs.map +1 -0
  25. package/dist/enhanced-components-CXnYiOt6.cjs +2 -0
  26. package/dist/enhanced-components-CXnYiOt6.cjs.map +1 -0
  27. package/dist/enhanced-components-Da0TSvKe.js +1073 -0
  28. package/dist/enhanced-components-Da0TSvKe.js.map +1 -0
  29. package/dist/hooks-BhW_i-9L.js +2013 -0
  30. package/dist/hooks-BhW_i-9L.js.map +1 -0
  31. package/dist/hooks-DTXeB5Z-.cjs +4 -0
  32. package/dist/hooks-DTXeB5Z-.cjs.map +1 -0
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js.map +1 -0
  35. package/dist/index.mjs.map +1 -0
  36. package/dist/minimal-components-B0bILe18.js +2002 -0
  37. package/dist/minimal-components-B0bILe18.js.map +1 -0
  38. package/dist/minimal-components-BsqodtY8.cjs +2 -0
  39. package/dist/minimal-components-BsqodtY8.cjs.map +1 -0
  40. package/dist/minimal-components.css +589 -0
  41. package/dist/mona-loading.gif +0 -0
  42. package/dist/performance-monitor--rzKTlbj.js +302 -0
  43. package/dist/performance-monitor--rzKTlbj.js.map +1 -0
  44. package/dist/performance-monitor-cjIvZE2D.cjs +2 -0
  45. package/dist/performance-monitor-cjIvZE2D.cjs.map +1 -0
  46. package/dist/src/components/AnimateLoading.tsx +1 -1
  47. package/dist/src/components/enhanced/debug-panel.tsx +1 -1
  48. package/dist/src/components/media-player.tsx +2 -2
  49. package/dist/src/components/ui/media-resource-preloader.tsx +9 -11
  50. package/dist/src/components/ui/seek-bar.tsx +1 -1
  51. package/dist/src/core/plugins/enhanced-plugin-system.ts +14 -8
  52. package/dist/src/core/providers/enhanced-hls-provider.ts +22 -53
  53. package/dist/src/hooks/use-enhanced-media-player.ts +19 -2
  54. package/dist/src/types/index.ts +40 -5
  55. package/dist/styles/minimal-player.css +589 -0
  56. package/dist/utils-Db13763z.cjs +9 -0
  57. package/dist/utils-Db13763z.cjs.map +1 -0
  58. package/dist/utils-nTO4AnHo.js +2809 -0
  59. package/dist/utils-nTO4AnHo.js.map +1 -0
  60. package/dist/utils.js +2 -0
  61. package/dist/utils.js.map +1 -0
  62. package/dist/utils.mjs +7 -0
  63. package/dist/utils.mjs.map +1 -0
  64. package/package.json +3 -1
  65. package/src/components/AnimateLoading.tsx +1 -1
  66. package/src/components/enhanced/debug-panel.tsx +1 -1
  67. package/src/components/media-player.tsx +2 -2
  68. package/src/components/ui/media-resource-preloader.tsx +9 -11
  69. package/src/components/ui/seek-bar.tsx +1 -1
  70. package/src/core/plugins/enhanced-plugin-system.ts +14 -8
  71. package/src/core/providers/enhanced-hls-provider.ts +22 -53
  72. package/src/hooks/use-enhanced-media-player.ts +19 -2
  73. package/src/types/index.ts +40 -5
@@ -0,0 +1,589 @@
1
+ /**
2
+ * Minimal Media Player Styles - Fixed without @apply
3
+ * Uses cyan-700 as primary color
4
+ */
5
+
6
+ @layer components {
7
+ /* Main player container */
8
+ .minimal-player {
9
+ position: relative;
10
+ overflow: hidden;
11
+ border-radius: 0.5rem;
12
+ background-color: #000000;
13
+ }
14
+
15
+ /* Control bar styles */
16
+ .minimal-control-bar {
17
+ background: linear-gradient(
18
+ to top,
19
+ rgba(0, 0, 0, 0.95) 0%,
20
+ rgba(0, 0, 0, 0.7) 50%,
21
+ transparent 100%
22
+ );
23
+ }
24
+
25
+ /* Button styles - cyan-700 primary */
26
+ .minimal-btn {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ height: 2.5rem;
31
+ width: 2.5rem;
32
+ border-radius: 9999px;
33
+ color: #ffffff;
34
+ transition: all 200ms;
35
+ background: none !important;
36
+ border: none !important;
37
+ outline: none !important;
38
+ }
39
+
40
+ .minimal-btn:hover {
41
+ color: #67e8f9;
42
+ transform: scale(1.1);
43
+ }
44
+
45
+ .minimal-btn:active {
46
+ transform: scale(0.95);
47
+ }
48
+
49
+ .minimal-btn:focus-visible {
50
+ box-shadow: 0 0 0 2px #000000, 0 0 0 4px #06b6d4;
51
+ }
52
+
53
+ /* Active/highlighted button state */
54
+ .minimal-btn.text-cyan-500 {
55
+ color: #22d3ee;
56
+ }
57
+
58
+ .minimal-btn.text-cyan-500:hover {
59
+ color: #67e8f9;
60
+ }
61
+
62
+ /* Larger button variant */
63
+ .minimal-btn-lg {
64
+ height: 3.5rem;
65
+ width: 3.5rem;
66
+ }
67
+
68
+ /* Center play button */
69
+ .minimal-center-play {
70
+ position: absolute;
71
+ top: 50%;
72
+ left: 50%;
73
+ transform: translate(-50%, -50%);
74
+ height: 5rem;
75
+ width: 5rem;
76
+ border-radius: 9999px;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ color: #ffffff;
81
+ transition: all 300ms;
82
+ background: none !important;
83
+ border: none !important;
84
+ }
85
+
86
+ .minimal-center-play:hover {
87
+ color: #67e8f9;
88
+ transform: translate(-50%, -50%) scale(1.1);
89
+ }
90
+
91
+ /* Seek bar styles */
92
+ .minimal-seekbar {
93
+ position: relative;
94
+ height: 0.25rem;
95
+ background-color: rgba(255, 255, 255, 0.2);
96
+ border-radius: 9999px;
97
+ cursor: pointer;
98
+ transition: all 200ms;
99
+ opacity: 1;
100
+ }
101
+
102
+ /* Always show seekbar but enhance on hover */
103
+ .minimal-seekbar:hover {
104
+ height: 0.375rem;
105
+ }
106
+
107
+ .minimal-seekbar-buffered {
108
+ position: absolute;
109
+ top: 0;
110
+ height: 100%;
111
+ background: linear-gradient(
112
+ 90deg,
113
+ rgba(255, 255, 255, 0.2),
114
+ rgba(255, 255, 255, 0.3)
115
+ );
116
+ border-radius: 9999px;
117
+ transition: all 200ms ease-out;
118
+ }
119
+
120
+ .minimal-seekbar-progress {
121
+ position: absolute;
122
+ top: 0;
123
+ left: 0;
124
+ height: 100%;
125
+ border-radius: 9999px;
126
+ background: linear-gradient(90deg, rgb(6, 182, 212), rgb(14, 116, 144));
127
+ }
128
+
129
+ .minimal-seekbar-thumb {
130
+ position: absolute;
131
+ top: 50%;
132
+ transform: translateY(-50%);
133
+ width: 1rem;
134
+ height: 1rem;
135
+ background-color: #06b6d4;
136
+ border-radius: 9999px;
137
+ box-shadow: 0 10px 15px -3px rgba(6, 182, 212, 0.5), 0 4px 6px -2px rgba(6, 182, 212, 0.5);
138
+ opacity: 0;
139
+ transform: translateY(-50%) scale(0);
140
+ transition: all 200ms;
141
+ border: 2px solid white;
142
+ }
143
+
144
+ /* Seeking state styles */
145
+ .minimal-seekbar-seeking {
146
+ opacity: 0.8;
147
+ }
148
+
149
+ .minimal-seekbar-progress-seeking {
150
+ animation: seekingPulse 1s ease-in-out infinite;
151
+ }
152
+
153
+ @keyframes seekingPulse {
154
+ 0%, 100% { opacity: 1; }
155
+ 50% { opacity: 0.6; }
156
+ }
157
+
158
+ .minimal-seekbar-thumb-seeking {
159
+ background-color: #22d3ee;
160
+ animation: thumbPulse 0.8s ease-in-out infinite;
161
+ }
162
+
163
+ @keyframes thumbPulse {
164
+ 0%, 100% { transform: translateY(-50%) scale(1); }
165
+ 50% { transform: translateY(-50%) scale(1.2); }
166
+ }
167
+
168
+ /* Hover indicator */
169
+ .minimal-seekbar-hover-indicator {
170
+ position: absolute;
171
+ top: 0;
172
+ width: 2px;
173
+ height: 100%;
174
+ background-color: rgba(255, 255, 255, 0.5);
175
+ pointer-events: none;
176
+ transition: opacity 150ms;
177
+ }
178
+
179
+ /* Ripple effect */
180
+ .minimal-seekbar-ripple {
181
+ position: absolute;
182
+ width: 20px;
183
+ height: 20px;
184
+ border-radius: 50%;
185
+ background-color: rgba(6, 182, 212, 0.3);
186
+ transform: translate(-50%, -50%);
187
+ pointer-events: none;
188
+ animation: ripple 600ms ease-out;
189
+ }
190
+
191
+ @keyframes ripple {
192
+ from {
193
+ width: 0;
194
+ height: 0;
195
+ opacity: 1;
196
+ }
197
+ to {
198
+ width: 40px;
199
+ height: 40px;
200
+ opacity: 0;
201
+ }
202
+ }
203
+
204
+ .minimal-seekbar:hover .minimal-seekbar-thumb,
205
+ .minimal-seekbar-thumb.active {
206
+ opacity: 1;
207
+ transform: translateY(-50%) scale(1);
208
+ }
209
+
210
+ /* Volume Control Styles */
211
+ .volume-control-wrapper {
212
+ position: relative;
213
+ }
214
+
215
+ .volume-control-wrapper:hover .volume-slider-horizontal-wrapper {
216
+ width: 6rem;
217
+ opacity: 1;
218
+ }
219
+
220
+ /* Horizontal Volume Slider */
221
+ .volume-slider-track-horizontal {
222
+ position: relative;
223
+ height: 0.25rem;
224
+ width: 100%;
225
+ border-radius: 9999px;
226
+ cursor: pointer;
227
+ background-color: rgba(255, 255, 255, 0.2);
228
+ transition: all 200ms;
229
+ }
230
+
231
+ .volume-slider-track-horizontal:hover {
232
+ height: 0.375rem;
233
+ }
234
+
235
+ .volume-slider-fill-horizontal {
236
+ position: absolute;
237
+ top: 0;
238
+ left: 0;
239
+ height: 100%;
240
+ border-radius: 9999px;
241
+ transition: all 100ms ease-out;
242
+ background: linear-gradient(
243
+ 90deg,
244
+ rgb(6, 182, 212) 0%,
245
+ rgb(14, 116, 144) 50%,
246
+ rgb(8, 145, 178) 100%
247
+ );
248
+ box-shadow: 0 0 8px rgba(6, 182, 212, 0.4);
249
+ }
250
+
251
+ .volume-slider-thumb-horizontal {
252
+ position: absolute;
253
+ top: 50%;
254
+ transform: translate(-50%, -50%);
255
+ width: 0.75rem;
256
+ height: 0.75rem;
257
+ background-color: #ffffff;
258
+ border-radius: 9999px;
259
+ opacity: 0;
260
+ transform: translate(-50%, -50%) scale(0);
261
+ transition: all 200ms;
262
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
263
+ border: 1.5px solid rgb(6, 182, 212);
264
+ }
265
+
266
+ .group:hover .volume-slider-thumb-horizontal,
267
+ .volume-slider-thumb-horizontal.active {
268
+ opacity: 1;
269
+ transform: translate(-50%, -50%) scale(1);
270
+ }
271
+
272
+ /* Vertical Volume Slider */
273
+ .volume-slider-track-vertical {
274
+ position: relative;
275
+ width: 0.25rem;
276
+ height: 6rem;
277
+ border-radius: 9999px;
278
+ cursor: pointer;
279
+ background-color: rgba(255, 255, 255, 0.2);
280
+ transition: all 200ms;
281
+ }
282
+
283
+ .volume-slider-track-vertical:hover {
284
+ width: 0.375rem;
285
+ }
286
+
287
+ .volume-slider-fill-vertical {
288
+ position: absolute;
289
+ bottom: 0;
290
+ left: 0;
291
+ width: 100%;
292
+ border-radius: 9999px;
293
+ transition: all 100ms ease-out;
294
+ background: linear-gradient(
295
+ 180deg,
296
+ rgb(6, 182, 212) 0%,
297
+ rgb(14, 116, 144) 50%,
298
+ rgb(8, 145, 178) 100%
299
+ );
300
+ box-shadow: 0 0 8px rgba(6, 182, 212, 0.4);
301
+ }
302
+
303
+ .volume-slider-thumb-vertical {
304
+ position: absolute;
305
+ left: 50%;
306
+ transform: translate(-50%, 50%);
307
+ width: 0.75rem;
308
+ height: 0.75rem;
309
+ background-color: #ffffff;
310
+ border-radius: 9999px;
311
+ opacity: 0;
312
+ transform: translate(-50%, 50%) scale(0);
313
+ transition: all 200ms;
314
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
315
+ border: 1.5px solid rgb(6, 182, 212);
316
+ }
317
+
318
+ .group:hover .volume-slider-thumb-vertical,
319
+ .volume-slider-thumb-vertical.active {
320
+ opacity: 1;
321
+ transform: translate(-50%, 50%) scale(1);
322
+ }
323
+
324
+ /* Hover effects for better interactivity */
325
+ .volume-slider-track-horizontal:active,
326
+ .volume-slider-track-vertical:active {
327
+ opacity: 0.9;
328
+ }
329
+
330
+ /* Legacy volume styles */
331
+ .minimal-volume {
332
+ display: flex;
333
+ align-items: center;
334
+ gap: 0.5rem;
335
+ }
336
+
337
+ .minimal-volume-slider {
338
+ width: 0;
339
+ opacity: 0;
340
+ transition: all 300ms;
341
+ }
342
+
343
+ .minimal-volume:hover .minimal-volume-slider {
344
+ width: 6rem;
345
+ opacity: 1;
346
+ }
347
+
348
+ .minimal-volume-track {
349
+ height: 0.25rem;
350
+ background-color: rgba(255, 255, 255, 0.2);
351
+ border-radius: 9999px;
352
+ }
353
+
354
+ .minimal-volume-fill {
355
+ height: 100%;
356
+ background-color: #06b6d4;
357
+ border-radius: 9999px;
358
+ }
359
+
360
+ /* Time display */
361
+ .minimal-time {
362
+ color: #ffffff;
363
+ font-size: 0.875rem;
364
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
365
+ user-select: none;
366
+ }
367
+
368
+ @media (max-width: 640px) {
369
+ .minimal-time {
370
+ display: none;
371
+ }
372
+ }
373
+
374
+ @media (min-width: 640px) {
375
+ .minimal-time {
376
+ display: block;
377
+ }
378
+ }
379
+
380
+ /* Loading states and animations */
381
+ .minimal-loading {
382
+ position: absolute;
383
+ inset: 0;
384
+ display: flex;
385
+ align-items: center;
386
+ justify-content: center;
387
+ background-color: rgba(0, 0, 0, 0.8);
388
+ z-index: 50;
389
+ animation: fadeIn 200ms ease-out;
390
+ }
391
+
392
+ /* Spinner animation */
393
+ .minimal-loading-spinner {
394
+ animation: spin 1s linear infinite;
395
+ }
396
+
397
+ .minimal-spinner {
398
+ width: 3rem;
399
+ height: 3rem;
400
+ border: 4px solid rgba(255, 255, 255, 0.2);
401
+ border-top-color: #06b6d4;
402
+ border-radius: 9999px;
403
+ animation: spin 1s linear infinite;
404
+ }
405
+
406
+ @keyframes spin {
407
+ from { transform: rotate(0deg); }
408
+ to { transform: rotate(360deg); }
409
+ }
410
+
411
+ /* Dots animation */
412
+ .minimal-loading-dot {
413
+ animation: pulse 1.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
414
+ }
415
+
416
+ @keyframes pulse {
417
+ 0%, 100% {
418
+ opacity: 1;
419
+ transform: scale(1);
420
+ }
421
+ 50% {
422
+ opacity: 0.3;
423
+ transform: scale(0.8);
424
+ }
425
+ }
426
+
427
+ /* Skeleton animation */
428
+ .minimal-loading-skeleton {
429
+ animation: shimmer 2s ease-in-out infinite;
430
+ background: linear-gradient(
431
+ 90deg,
432
+ rgba(255, 255, 255, 0.1) 0%,
433
+ rgba(255, 255, 255, 0.2) 50%,
434
+ rgba(255, 255, 255, 0.1) 100%
435
+ );
436
+ background-size: 200% 100%;
437
+ }
438
+
439
+ @keyframes shimmer {
440
+ 0% { background-position: -200% center; }
441
+ 100% { background-position: 200% center; }
442
+ }
443
+
444
+ /* Fade animations */
445
+ @keyframes fadeIn {
446
+ from {
447
+ opacity: 0;
448
+ transform: scale(0.95);
449
+ }
450
+ to {
451
+ opacity: 1;
452
+ transform: scale(1);
453
+ }
454
+ }
455
+
456
+ @keyframes fadeOut {
457
+ from {
458
+ opacity: 1;
459
+ transform: scale(1);
460
+ }
461
+ to {
462
+ opacity: 0;
463
+ transform: scale(0.95);
464
+ }
465
+ }
466
+
467
+ /* Quality/Speed buttons */
468
+ .minimal-quality-btn,
469
+ .minimal-speed-btn {
470
+ padding: 0.375rem 0.75rem;
471
+ border-radius: 0.375rem;
472
+ background-color: rgba(255, 255, 255, 0.1);
473
+ color: #ffffff;
474
+ font-size: 0.875rem;
475
+ font-weight: 500;
476
+ transition: all 200ms;
477
+ border: none !important;
478
+ }
479
+
480
+ .minimal-quality-btn:hover,
481
+ .minimal-speed-btn:hover {
482
+ background-color: rgba(14, 116, 144, 0.3);
483
+ }
484
+
485
+ /* Control visibility animations */
486
+ .minimal-controls-visible {
487
+ opacity: 1;
488
+ transform: translateY(0);
489
+ }
490
+
491
+ .minimal-controls-hidden {
492
+ opacity: 0;
493
+ transform: translateY(0.5rem);
494
+ pointer-events: none;
495
+ }
496
+
497
+ /* Settings dropdown */
498
+ .minimal-settings-dropdown {
499
+ position: absolute;
500
+ bottom: 100%;
501
+ right: 0;
502
+ margin-bottom: 0.5rem;
503
+ background-color: #1f2937;
504
+ border-radius: 0.5rem;
505
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
506
+ border: 1px solid #374151;
507
+ min-width: 200px;
508
+ padding: 0.5rem 0;
509
+ animation: slideUp 0.2s ease-out;
510
+ }
511
+
512
+ @keyframes slideUp {
513
+ from {
514
+ opacity: 0;
515
+ transform: translateY(10px);
516
+ }
517
+ to {
518
+ opacity: 1;
519
+ transform: translateY(0);
520
+ }
521
+ }
522
+
523
+ /* Subtitle display */
524
+ .minimal-subtitle-display {
525
+ position: absolute;
526
+ bottom: 5rem;
527
+ left: 0;
528
+ right: 0;
529
+ text-align: center;
530
+ padding: 0 1rem;
531
+ pointer-events: none;
532
+ z-index: 35;
533
+ }
534
+
535
+ .minimal-subtitle-text {
536
+ display: inline-block;
537
+ background-color: rgba(0, 0, 0, 0.75);
538
+ color: #ffffff;
539
+ padding: 0.5rem 1rem;
540
+ border-radius: 0.375rem;
541
+ font-size: 1.125rem;
542
+ font-weight: 500;
543
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
544
+ }
545
+
546
+ /* Screenshot button special effect */
547
+ .minimal-btn-screenshot:active {
548
+ animation: flash 0.3s;
549
+ }
550
+
551
+ @keyframes flash {
552
+ 0%, 100% { opacity: 1; }
553
+ 50% { opacity: 0.5; background-color: rgba(255, 255, 255, 0.3); }
554
+ }
555
+
556
+ /* Remove all default borders */
557
+ .minimal-player * {
558
+ border-color: transparent !important;
559
+ }
560
+
561
+ .minimal-player button {
562
+ border: none !important;
563
+ outline: none !important;
564
+ }
565
+ }
566
+
567
+ /* Cyan-700 color scheme override */
568
+ @layer base {
569
+ .minimal-player {
570
+ --primary: rgb(14, 116, 144);
571
+ --primary-light: rgb(6, 182, 212);
572
+ --primary-dark: rgb(21, 94, 117);
573
+ --primary-hover: rgba(14, 116, 144, 0.3);
574
+ --primary-active: rgba(14, 116, 144, 0.4);
575
+ }
576
+ }
577
+
578
+ /* Z-index management */
579
+ @layer utilities {
580
+ .z-40 { z-index: 40; }
581
+ .z-45 { z-index: 45; }
582
+ .z-50 { z-index: 50; }
583
+
584
+ /* Border utilities */
585
+ .border-3 { border-width: 3px; }
586
+
587
+ /* Backdrop blur utilities - removed for performance */
588
+ .backdrop-blur-xs { /* backdrop-filter: blur(2px); */ }
589
+ }
Binary file