@layers-app/editor-video 0.1.0

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 (124) hide show
  1. package/dist/context/VideoContext.d.ts +24 -0
  2. package/dist/context/VideoContext.d.ts.map +1 -0
  3. package/dist/context/index.d.ts +2 -0
  4. package/dist/context/index.d.ts.map +1 -0
  5. package/dist/factory.d.ts +3 -0
  6. package/dist/factory.d.ts.map +1 -0
  7. package/dist/index.css +1364 -0
  8. package/dist/index.d.ts +9 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +30655 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/node/VideoDecorator.d.ts +20 -0
  13. package/dist/node/VideoDecorator.d.ts.map +1 -0
  14. package/dist/node/VideoNode.d.ts +55 -0
  15. package/dist/node/VideoNode.d.ts.map +1 -0
  16. package/dist/node/index.d.ts +5 -0
  17. package/dist/node/index.d.ts.map +1 -0
  18. package/dist/node/utils.d.ts +17 -0
  19. package/dist/node/utils.d.ts.map +1 -0
  20. package/dist/plugin/VideoPlugin.d.ts +2 -0
  21. package/dist/plugin/VideoPlugin.d.ts.map +1 -0
  22. package/dist/plugin/behaviour.d.ts +18 -0
  23. package/dist/plugin/behaviour.d.ts.map +1 -0
  24. package/dist/plugin/index.d.ts +3 -0
  25. package/dist/plugin/index.d.ts.map +1 -0
  26. package/dist/types/index.d.ts +223 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/ui/VideoBlock.d.ts +20 -0
  29. package/dist/ui/VideoBlock.d.ts.map +1 -0
  30. package/dist/ui/VideoToolbar.d.ts +7 -0
  31. package/dist/ui/VideoToolbar.d.ts.map +1 -0
  32. package/dist/ui/VideoUploadComponent.d.ts +30 -0
  33. package/dist/ui/VideoUploadComponent.d.ts.map +1 -0
  34. package/dist/ui/components/ActionButtons.d.ts +11 -0
  35. package/dist/ui/components/ActionButtons.d.ts.map +1 -0
  36. package/dist/ui/components/Dropzone/index.d.ts +10 -0
  37. package/dist/ui/components/Dropzone/index.d.ts.map +1 -0
  38. package/dist/ui/components/Dropzone/types.d.ts +8 -0
  39. package/dist/ui/components/Dropzone/types.d.ts.map +1 -0
  40. package/dist/ui/components/Dropzone/utils.d.ts +2 -0
  41. package/dist/ui/components/Dropzone/utils.d.ts.map +1 -0
  42. package/dist/ui/components/ProgressBar.d.ts +9 -0
  43. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  44. package/dist/ui/components/StarsAnimation.d.ts +6 -0
  45. package/dist/ui/components/StarsAnimation.d.ts.map +1 -0
  46. package/dist/ui/components/StoryboardPreview.d.ts +9 -0
  47. package/dist/ui/components/StoryboardPreview.d.ts.map +1 -0
  48. package/dist/ui/components/SwitchingAnimation.d.ts +6 -0
  49. package/dist/ui/components/SwitchingAnimation.d.ts.map +1 -0
  50. package/dist/ui/components/VideoAnalysisAnimation.d.ts +6 -0
  51. package/dist/ui/components/VideoAnalysisAnimation.d.ts.map +1 -0
  52. package/dist/ui/components/VideoCustomControls.d.ts +32 -0
  53. package/dist/ui/components/VideoCustomControls.d.ts.map +1 -0
  54. package/dist/ui/components/VideoIcons.d.ts +18 -0
  55. package/dist/ui/components/VideoIcons.d.ts.map +1 -0
  56. package/dist/ui/components/VideoMenu.d.ts +21 -0
  57. package/dist/ui/components/VideoMenu.d.ts.map +1 -0
  58. package/dist/ui/components/VideoQualityMenu/index.d.ts +10 -0
  59. package/dist/ui/components/VideoQualityMenu/index.d.ts.map +1 -0
  60. package/dist/ui/components/VideoSettingsMenu/index.d.ts +12 -0
  61. package/dist/ui/components/VideoSettingsMenu/index.d.ts.map +1 -0
  62. package/dist/ui/components/VideoSettingsModal/ChaptersSection.d.ts +28 -0
  63. package/dist/ui/components/VideoSettingsModal/ChaptersSection.d.ts.map +1 -0
  64. package/dist/ui/components/VideoSettingsModal/CoverSection.d.ts +20 -0
  65. package/dist/ui/components/VideoSettingsModal/CoverSection.d.ts.map +1 -0
  66. package/dist/ui/components/VideoSettingsModal/FooterActions.d.ts +9 -0
  67. package/dist/ui/components/VideoSettingsModal/FooterActions.d.ts.map +1 -0
  68. package/dist/ui/components/VideoSettingsModal/ManualSubtitlesPanel.d.ts +15 -0
  69. package/dist/ui/components/VideoSettingsModal/ManualSubtitlesPanel.d.ts.map +1 -0
  70. package/dist/ui/components/VideoSettingsModal/SubtitleTrackRow.d.ts +16 -0
  71. package/dist/ui/components/VideoSettingsModal/SubtitleTrackRow.d.ts.map +1 -0
  72. package/dist/ui/components/VideoSettingsModal/SubtitlesSection.d.ts +14 -0
  73. package/dist/ui/components/VideoSettingsModal/SubtitlesSection.d.ts.map +1 -0
  74. package/dist/ui/components/VideoSettingsModal/index.d.ts +19 -0
  75. package/dist/ui/components/VideoSettingsModal/index.d.ts.map +1 -0
  76. package/dist/ui/components/VideoSpeedMenu/index.d.ts +11 -0
  77. package/dist/ui/components/VideoSpeedMenu/index.d.ts.map +1 -0
  78. package/dist/ui/components/VideoSubtitlesMenu/index.d.ts +10 -0
  79. package/dist/ui/components/VideoSubtitlesMenu/index.d.ts.map +1 -0
  80. package/dist/ui/hooks/useCancelUpload.d.ts +5 -0
  81. package/dist/ui/hooks/useCancelUpload.d.ts.map +1 -0
  82. package/dist/ui/hooks/useStoryboard.d.ts +21 -0
  83. package/dist/ui/hooks/useStoryboard.d.ts.map +1 -0
  84. package/dist/ui/hooks/useVideoStatus.d.ts +31 -0
  85. package/dist/ui/hooks/useVideoStatus.d.ts.map +1 -0
  86. package/dist/ui/hooks/useVideoTranscoding.d.ts +20 -0
  87. package/dist/ui/hooks/useVideoTranscoding.d.ts.map +1 -0
  88. package/dist/ui/hooks/useVideoUpload.d.ts +21 -0
  89. package/dist/ui/hooks/useVideoUpload.d.ts.map +1 -0
  90. package/dist/ui/index.d.ts +4 -0
  91. package/dist/ui/index.d.ts.map +1 -0
  92. package/dist/ui/states/AnalysisState.d.ts +11 -0
  93. package/dist/ui/states/AnalysisState.d.ts.map +1 -0
  94. package/dist/ui/states/ConversionState.d.ts +11 -0
  95. package/dist/ui/states/ConversionState.d.ts.map +1 -0
  96. package/dist/ui/states/DefaultState.d.ts +7 -0
  97. package/dist/ui/states/DefaultState.d.ts.map +1 -0
  98. package/dist/ui/states/ErrorStates.d.ts +10 -0
  99. package/dist/ui/states/ErrorStates.d.ts.map +1 -0
  100. package/dist/ui/states/LinkState.d.ts +10 -0
  101. package/dist/ui/states/LinkState.d.ts.map +1 -0
  102. package/dist/ui/states/UploadState.d.ts +11 -0
  103. package/dist/ui/states/UploadState.d.ts.map +1 -0
  104. package/dist/ui/states/VideoPlayerState.d.ts +22 -0
  105. package/dist/ui/states/VideoPlayerState.d.ts.map +1 -0
  106. package/dist/ui/styles.d.ts +1 -0
  107. package/dist/ui/styles.d.ts.map +1 -0
  108. package/dist/ui/types.d.ts +2 -0
  109. package/dist/ui/types.d.ts.map +1 -0
  110. package/dist/ui/utils/api.d.ts +9 -0
  111. package/dist/ui/utils/api.d.ts.map +1 -0
  112. package/dist/ui/utils/chapters.d.ts +8 -0
  113. package/dist/ui/utils/chapters.d.ts.map +1 -0
  114. package/dist/ui/utils/storyboard.d.ts +5 -0
  115. package/dist/ui/utils/storyboard.d.ts.map +1 -0
  116. package/dist/ui/utils/videoChaptersApi.d.ts +20 -0
  117. package/dist/ui/utils/videoChaptersApi.d.ts.map +1 -0
  118. package/dist/ui/utils/videoPlayerUtils.d.ts +10 -0
  119. package/dist/ui/utils/videoPlayerUtils.d.ts.map +1 -0
  120. package/dist/ui/utils/videoSettings.d.ts +67 -0
  121. package/dist/ui/utils/videoSettings.d.ts.map +1 -0
  122. package/dist/ui/utils/videoSubtitlesApi.d.ts +31 -0
  123. package/dist/ui/utils/videoSubtitlesApi.d.ts.map +1 -0
  124. package/package.json +53 -0
package/dist/index.css ADDED
@@ -0,0 +1,1364 @@
1
+ div.doc-space-styles-provider .video-upload-container div.video-upload-plugin {
2
+ width: 100%;
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ div.doc-space-styles-provider .video-upload-container,
7
+ div.doc-space-styles-provider .video-upload-container *,
8
+ div.doc-space-styles-provider .video-upload-container *::before,
9
+ div.doc-space-styles-provider .video-upload-container *::after {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ .video-upload-container {
14
+ position: relative;
15
+ display: flex;
16
+ padding: 0 4px 4px 4px;
17
+ flex-direction: column;
18
+ align-items: flex-start;
19
+ width: 100%;
20
+ align-self: stretch;
21
+ padding: 0 4px 4px 4px;
22
+ border-radius: var(--mantine-radius-md, 8px);
23
+ background: var(--mantine-color-gray-light, rgba(134, 142, 150, 0.1));
24
+ gap: 0;
25
+ }
26
+
27
+ .video-upload-container[data-state=video-preview] {
28
+ padding: 0 4px 4px 4px;
29
+ background: var(--mantine-color-gray-light, rgba(134, 142, 150, 0.1));
30
+ gap: 0;
31
+ }
32
+
33
+ .video-upload-container[data-state=video-preview][data-ready=true] {
34
+ padding: 0;
35
+ background: transparent;
36
+ }
37
+
38
+ .video-upload-header {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: space-between;
42
+ width: 100%;
43
+ padding: 4px 0;
44
+ pointer-events: auto !important;
45
+ }
46
+ .video-upload-header * {
47
+ pointer-events: auto !important;
48
+ }
49
+
50
+ .video-upload-source-select__root {
51
+ display: inline-flex;
52
+ flex: 0 0 auto;
53
+ width: max-content;
54
+ max-width: 100%;
55
+ min-width: 0;
56
+ }
57
+
58
+ .video-upload-source-select__wrapper {
59
+ width: max-content;
60
+ max-width: 100%;
61
+ min-width: 0;
62
+ }
63
+
64
+ .video-upload-source-select__root .video-upload-source-select__input {
65
+ height: 32px;
66
+ min-height: 32px;
67
+ width: auto;
68
+ min-width: 0;
69
+ white-space: nowrap;
70
+ border-radius: var(--mantine-radius-md, 8px);
71
+ background-color: var(--mantine-color-body, #fff);
72
+ font-size: 14px;
73
+ line-height: 1.45;
74
+ padding: 0 32px 0 12px;
75
+ border: 1px solid var(--mantine-color-body, #fff);
76
+ border-color: var(--mantine-color-body, #fff);
77
+ pointer-events: auto !important;
78
+ cursor: pointer;
79
+ }
80
+
81
+ .video-upload-source-select {
82
+ pointer-events: auto !important;
83
+ }
84
+
85
+ .video-upload-link {
86
+ display: flex;
87
+ flex-direction: column;
88
+ gap: 8px;
89
+ width: 100%;
90
+ background: var(--mantine-color-body, #fff);
91
+ border-radius: var(--mantine-radius-md, 8px);
92
+ padding: 8px;
93
+ pointer-events: auto !important;
94
+ }
95
+ .video-upload-link * {
96
+ pointer-events: auto !important;
97
+ }
98
+
99
+ .video-upload-link-input .mantine-TextInput-input {
100
+ background: var(--input-filled-input-bg, #f1f3f5);
101
+ border: 1px solid transparent;
102
+ height: 36px;
103
+ min-height: 36px;
104
+ border-radius: var(--mantine-radius-md, 8px);
105
+ padding: 0 12px;
106
+ font-size: 14px;
107
+ line-height: 1.45;
108
+ width: 100%;
109
+ pointer-events: auto !important;
110
+ }
111
+
112
+ .video-upload-link-input {
113
+ width: 100%;
114
+ pointer-events: auto !important;
115
+ }
116
+
117
+ .video-upload-link-error {
118
+ color: var(--mantine-color-red-6);
119
+ }
120
+
121
+ .video-upload-link-actions {
122
+ display: flex;
123
+ justify-content: flex-end;
124
+ width: 100%;
125
+ }
126
+
127
+ .video-upload-link-actions .mantine-Button-root {
128
+ height: 36px;
129
+ padding: 6px 18px;
130
+ font-size: 14px;
131
+ min-width: 109px;
132
+ }
133
+
134
+ .video-embed-container {
135
+ width: 100%;
136
+ aspect-ratio: 16/9;
137
+ min-height: 200px;
138
+ border-radius: 12px;
139
+ background: #000;
140
+ overflow: hidden;
141
+ pointer-events: auto;
142
+ }
143
+
144
+ .video-embed-frame {
145
+ width: 100%;
146
+ height: 100%;
147
+ border: none;
148
+ pointer-events: auto;
149
+ display: block;
150
+ }
151
+
152
+ .video-upload-container[data-state=video-preview] .video-upload-processing-banner,
153
+ .video-upload-container[data-state=video-preview] .video-upload-title-text {
154
+ width: calc(100% - 16px);
155
+ margin: 0 8px;
156
+ height: 32px;
157
+ border-radius: 8px;
158
+ background: transparent;
159
+ color: #1f2328;
160
+ box-shadow: none;
161
+ border: none;
162
+ }
163
+
164
+ .video-upload-container[data-state=video-preview] .video-upload-processing-text,
165
+ .video-upload-container[data-state=video-preview] .video-upload-title-text {
166
+ color: var(--mantine-color-default-color, #000);
167
+ font-size: var(--font-size-font-size-sm, 14px);
168
+ font-style: normal;
169
+ font-weight: 500;
170
+ display: flex;
171
+ align-items: center;
172
+ }
173
+
174
+ .video-upload-container .video-upload-title-text {
175
+ color: var(--mantine-color-bright);
176
+ font-size: var(--mantine-font-size-sm, 14px);
177
+ font-style: normal;
178
+ font-weight: 500;
179
+ line-height: 145%;
180
+ height: 32px;
181
+ display: flex;
182
+ align-items: center;
183
+ padding-left: var(--mantine-spacing-xs);
184
+ }
185
+
186
+ .video-upload-processing-banner {
187
+ display: flex;
188
+ align-items: center;
189
+ gap: var(--mantine-spacing-xs);
190
+ width: 100%;
191
+ height: 32px;
192
+ }
193
+
194
+ .video-upload-processing-text {
195
+ color: var(--mantine-color-bright);
196
+ font-size: var(--mantine-font-size-sm, 14px);
197
+ font-style: normal;
198
+ font-weight: 500;
199
+ line-height: 145%;
200
+ }
201
+
202
+ .video-upload-dropzone {
203
+ border: none;
204
+ border-radius: 0;
205
+ padding: 0;
206
+ background: transparent;
207
+ cursor: pointer;
208
+ display: flex;
209
+ flex-direction: column;
210
+ align-items: center;
211
+ gap: 10px;
212
+ text-align: center;
213
+ width: 100%;
214
+ }
215
+
216
+ .video-upload-icon {
217
+ width: 32px;
218
+ height: 32px;
219
+ color: var(--mantine-color-gray-9);
220
+ }
221
+
222
+ .video-upload-title {
223
+ font-size: var(--mantine-font-size-md);
224
+ font-weight: 500;
225
+ color: var(--mantine-color-gray-9);
226
+ line-height: 1.55;
227
+ }
228
+ .video-upload-title .highlight {
229
+ color: var(--mantine-primary-color-filled);
230
+ }
231
+
232
+ .video-upload-description {
233
+ font-size: var(--mantine-font-size-sm);
234
+ color: var(--mantine-color-gray-6);
235
+ line-height: 1.45;
236
+ }
237
+
238
+ .video-upload-progress-container {
239
+ width: 100%;
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: var(--mantine-spacing-xs);
243
+ }
244
+
245
+ .video-upload-progress-header {
246
+ display: flex;
247
+ justify-content: space-between;
248
+ align-items: center;
249
+ font-size: var(--mantine-font-size-sm);
250
+ }
251
+
252
+ .video-upload-progress-info {
253
+ display: flex;
254
+ gap: var(--mantine-spacing-xs);
255
+ align-items: center;
256
+ font-size: var(--mantine-font-size-xs);
257
+ color: var(--mantine-color-gray-6);
258
+ }
259
+
260
+ .video-upload-actions {
261
+ display: flex;
262
+ gap: 4px;
263
+ align-items: center;
264
+ }
265
+
266
+ .video-upload-error {
267
+ display: flex;
268
+ flex-direction: column;
269
+ align-items: center;
270
+ gap: var(--mantine-spacing-xs);
271
+ }
272
+
273
+ .video-upload-error-icon {
274
+ width: 32px;
275
+ height: 32px;
276
+ color: var(--mantine-color-red-6);
277
+ }
278
+
279
+ .video-upload-error-message {
280
+ font-size: var(--mantine-font-size-xs);
281
+ color: var(--mantine-color-red-6);
282
+ text-align: center;
283
+ }
284
+
285
+ .video-upload-preview {
286
+ position: relative;
287
+ width: 100%;
288
+ border-radius: var(--mantine-radius-md);
289
+ overflow: hidden;
290
+ cursor: pointer;
291
+ }
292
+ .video-upload-preview img {
293
+ width: 100%;
294
+ height: auto;
295
+ display: block;
296
+ }
297
+
298
+ .video-upload-preview-overlay {
299
+ position: absolute;
300
+ top: 8px;
301
+ left: 8px;
302
+ display: flex;
303
+ gap: var(--mantine-spacing-sm);
304
+ align-items: center;
305
+ }
306
+
307
+ .video-upload-preview-badge {
308
+ background: rgba(0, 0, 0, 0.4);
309
+ backdrop-filter: blur(2px);
310
+ padding: 6px var(--mantine-spacing-sm);
311
+ border-radius: var(--mantine-radius-md);
312
+ font-size: var(--mantine-font-size-sm);
313
+ font-weight: 500;
314
+ color: white;
315
+ }
316
+
317
+ .video-upload-preview-play {
318
+ position: absolute;
319
+ top: 50%;
320
+ left: 50%;
321
+ transform: translate(-50%, -50%);
322
+ width: 64px;
323
+ height: 64px;
324
+ color: white;
325
+ }
326
+
327
+ .video-analysis-animation {
328
+ position: relative;
329
+ display: flex;
330
+ align-items: center;
331
+ justify-content: center;
332
+ transform: translateY(2px);
333
+ }
334
+
335
+ .video-analysis-animation__icon {
336
+ width: 100%;
337
+ height: 100%;
338
+ display: block;
339
+ color: var(--mantine-color-bright);
340
+ }
341
+
342
+ .video-analysis-animation__path {
343
+ animation: fillAnimation 2s steps(5, end) infinite;
344
+ animation-fill-mode: both;
345
+ fill: currentColor;
346
+ }
347
+
348
+ .video-analysis-animation__path--1,
349
+ .video-analysis-animation__path--2,
350
+ .video-analysis-animation__path--3 {
351
+ animation-name: fillAnimationTop;
352
+ }
353
+
354
+ .video-analysis-animation__path--4,
355
+ .video-analysis-animation__path--5 {
356
+ animation-name: fillAnimationBottom;
357
+ }
358
+
359
+ @keyframes fillAnimationTop {
360
+ 0% {
361
+ fill: var(--mantine-color-bright);
362
+ }
363
+ 25% {
364
+ fill: var(--mantine-color-bright);
365
+ }
366
+ 50% {
367
+ fill: var(--mantine-color-bright);
368
+ }
369
+ 75% {
370
+ fill: var(--mantine-color-bright);
371
+ }
372
+ 100% {
373
+ fill: var(--mantine-color-bright);
374
+ }
375
+ }
376
+ @keyframes fillAnimationBottom {
377
+ 0% {
378
+ fill: var(--mantine-color-bright);
379
+ }
380
+ 25% {
381
+ fill: var(--mantine-color-bright);
382
+ }
383
+ 50% {
384
+ fill: var(--mantine-color-bright);
385
+ }
386
+ 75% {
387
+ fill: var(--mantine-color-bright);
388
+ }
389
+ 100% {
390
+ fill: var(--mantine-color-bright);
391
+ }
392
+ }
393
+ .video-analysis-animation__line {
394
+ position: absolute;
395
+ left: 0;
396
+ top: calc(100% - 2px);
397
+ width: 100%;
398
+ height: 2px;
399
+ background-color: var(--primary-color-text, #4c6ef5);
400
+ border-radius: 1px;
401
+ transform: translateY(-50%);
402
+ z-index: 10;
403
+ animation: linePosition 2s steps(5, end) infinite;
404
+ animation-fill-mode: both;
405
+ }
406
+
407
+ @keyframes linePosition {
408
+ 0% {
409
+ top: calc(100% - 2px);
410
+ transform: translateY(-50%);
411
+ }
412
+ 18% {
413
+ top: 50%;
414
+ transform: translateY(-50%);
415
+ }
416
+ 22% {
417
+ top: 50%;
418
+ transform: translateY(-50%);
419
+ }
420
+ 40% {
421
+ top: 2px;
422
+ transform: translateY(-50%);
423
+ }
424
+ 58% {
425
+ top: 50%;
426
+ transform: translateY(-50%);
427
+ }
428
+ 62% {
429
+ top: 50%;
430
+ transform: translateY(-50%);
431
+ }
432
+ 100% {
433
+ top: calc(100% - 2px);
434
+ transform: translateY(-50%);
435
+ }
436
+ }
437
+ .stars-animation {
438
+ position: relative;
439
+ display: flex;
440
+ align-items: center;
441
+ justify-content: center;
442
+ width: 32px;
443
+ height: 32px;
444
+ transform: translateY(-1px);
445
+ }
446
+
447
+ .stars-animation__icon {
448
+ width: 100%;
449
+ height: 100%;
450
+ display: block;
451
+ color: var(--mantine-color-bright);
452
+ }
453
+
454
+ .stars-animation__star {
455
+ transform-box: fill-box;
456
+ transform-origin: center;
457
+ }
458
+
459
+ .stars-animation__star--a {
460
+ animation: starAAnimation 0.8s ease-in-out infinite;
461
+ }
462
+
463
+ .stars-animation__star--b {
464
+ animation: starBAnimation 0.8s ease-in-out infinite;
465
+ }
466
+
467
+ @keyframes starAAnimation {
468
+ 0% {
469
+ transform: scale(1.05);
470
+ fill: #fab005;
471
+ }
472
+ 50% {
473
+ transform: scale(0.8);
474
+ fill: #808080;
475
+ }
476
+ 100% {
477
+ transform: scale(1.05);
478
+ fill: #fab005;
479
+ }
480
+ }
481
+ @keyframes starBAnimation {
482
+ 0% {
483
+ transform: scale(1);
484
+ fill: #808080;
485
+ }
486
+ 50% {
487
+ transform: scale(1.4);
488
+ fill: #fab005;
489
+ }
490
+ 100% {
491
+ transform: scale(1);
492
+ fill: #808080;
493
+ }
494
+ }
495
+ .switching-animation {
496
+ position: relative;
497
+ display: flex;
498
+ align-items: center;
499
+ justify-content: center;
500
+ }
501
+
502
+ .switching-animation__item {
503
+ position: absolute;
504
+ top: 0;
505
+ left: 0;
506
+ transition: opacity 0.6s ease-in-out;
507
+ pointer-events: none;
508
+ }
509
+
510
+ .video-player-container {
511
+ position: relative;
512
+ width: 100%;
513
+ height: 100%;
514
+ min-height: 200px;
515
+ overflow: hidden;
516
+ --video-timeline-hitbox-padding: 6px;
517
+ --video-timeline-height: 10px;
518
+ --video-controls-gap: 6px;
519
+ --video-controls-row-height: 28px;
520
+ --video-controls-padding-bottom: 12px;
521
+ --video-subtitles-offset: 48px;
522
+ }
523
+
524
+ @media (max-width: 480px) {
525
+ .video-upload-container,
526
+ .video-player-container,
527
+ .video-player-container--with-player {
528
+ width: 100% !important;
529
+ max-width: 100% !important;
530
+ }
531
+ }
532
+ @media (max-width: 360px) {
533
+ .video-upload-container,
534
+ .video-player-container,
535
+ .video-player-container--with-player {
536
+ width: 100% !important;
537
+ max-width: 100% !important;
538
+ }
539
+ }
540
+ .video-player-container--with-player {
541
+ aspect-ratio: 16/9;
542
+ cursor: pointer;
543
+ border-radius: 12px;
544
+ background: #000;
545
+ }
546
+
547
+ .video-player-container video {
548
+ width: 100%;
549
+ height: 100%;
550
+ object-fit: cover;
551
+ display: block;
552
+ }
553
+
554
+ .video-player-media {
555
+ width: 100%;
556
+ height: 100%;
557
+ border-radius: 12px;
558
+ display: block;
559
+ object-fit: cover;
560
+ }
561
+
562
+ .video-player-container video::cue {
563
+ color: #fff;
564
+ background: rgba(0, 0, 0, 0.7);
565
+ font-size: 14px;
566
+ font-weight: 600;
567
+ line-height: 1.4;
568
+ padding: 0.2em 0.4em;
569
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
570
+ }
571
+
572
+ .video-player-container .shaka-text-container {
573
+ position: absolute;
574
+ left: 0;
575
+ right: 0;
576
+ bottom: calc(var(--video-controls-padding-bottom) + var(--video-controls-row-height) + var(--video-controls-gap) + var(--video-timeline-height) + var(--video-timeline-hitbox-padding) * 2 + var(--video-subtitles-offset)) !important;
577
+ top: auto !important;
578
+ text-align: center;
579
+ pointer-events: none;
580
+ z-index: 2;
581
+ }
582
+
583
+ .video-player-container .shaka-text-container .shaka-text-wrapper,
584
+ .video-player-container .shaka-text-container .shaka-text-wrapper span,
585
+ .video-player-container .shaka-text-container span {
586
+ color: #fff;
587
+ background: rgba(0, 0, 0, 0.7);
588
+ font-size: 14px;
589
+ font-weight: 600;
590
+ line-height: 1.4;
591
+ padding: 0.2em 0.4em;
592
+ border-radius: 4px;
593
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
594
+ }
595
+
596
+ .video-player-overlay {
597
+ position: absolute;
598
+ left: 0;
599
+ right: 0;
600
+ bottom: 0;
601
+ padding: 10px 14px 12px;
602
+ pointer-events: none;
603
+ }
604
+
605
+ .video-player-controls--no-chapters {
606
+ --video-subtitles-offset: 16px;
607
+ }
608
+
609
+ .video-player-center-play {
610
+ position: absolute;
611
+ left: 50%;
612
+ top: 50%;
613
+ transform: translate(-50%, -50%);
614
+ width: 56px;
615
+ height: 56px;
616
+ border-radius: 999px;
617
+ border: none;
618
+ background: transparent;
619
+ color: #ffffff;
620
+ display: inline-flex;
621
+ align-items: center;
622
+ justify-content: center;
623
+ box-shadow: none;
624
+ cursor: pointer;
625
+ pointer-events: auto;
626
+ z-index: 2;
627
+ transition: transform 0.15s ease, background 0.15s ease;
628
+ }
629
+
630
+ .video-player-center-play:hover {
631
+ transform: translate(-50%, -50%) scale(1.04);
632
+ background: transparent;
633
+ }
634
+
635
+ .video-player-gradient {
636
+ position: absolute;
637
+ left: 0;
638
+ right: 0;
639
+ bottom: 0;
640
+ height: 148px;
641
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.42) 52%, rgba(0, 0, 0, 0.78) 100%);
642
+ pointer-events: none;
643
+ }
644
+
645
+ .video-player-controls {
646
+ position: relative;
647
+ display: flex;
648
+ flex-direction: column;
649
+ gap: 6px;
650
+ width: 100%;
651
+ pointer-events: auto;
652
+ }
653
+
654
+ .video-player-timeline {
655
+ position: relative;
656
+ width: 100%;
657
+ height: 10px;
658
+ display: flex;
659
+ align-items: center;
660
+ }
661
+
662
+ .video-player-timeline-hitbox {
663
+ position: relative;
664
+ width: 100%;
665
+ padding: 6px 0;
666
+ margin: -6px 0;
667
+ display: flex;
668
+ align-items: center;
669
+ }
670
+
671
+ .video-player-timeline-track {
672
+ position: relative;
673
+ width: 100%;
674
+ height: 4px;
675
+ border-radius: 4px;
676
+ background: rgba(255, 255, 255, 0.28);
677
+ cursor: pointer;
678
+ }
679
+
680
+ .video-player-buffered {
681
+ position: absolute;
682
+ top: 0;
683
+ height: 4px;
684
+ border-radius: 4px;
685
+ background: rgba(255, 255, 255, 0.45);
686
+ }
687
+
688
+ .video-player-progress {
689
+ position: absolute;
690
+ top: 0;
691
+ left: 0;
692
+ height: 4px;
693
+ border-radius: 4px;
694
+ background: var(--mantine-primary-color-filled);
695
+ }
696
+
697
+ .video-player-knob {
698
+ position: absolute;
699
+ top: 50%;
700
+ width: 12px;
701
+ height: 12px;
702
+ border-radius: 999px;
703
+ background: var(--mantine-primary-color-filled);
704
+ transform: translate(-50%, -50%);
705
+ }
706
+
707
+ .video-player-storyboard-preview {
708
+ position: relative;
709
+ bottom: auto;
710
+ transform: none;
711
+ border-radius: 8px;
712
+ overflow: hidden;
713
+ background: transparent;
714
+ border: 1px solid var(--mantine-color-white, #fff);
715
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);
716
+ pointer-events: none;
717
+ }
718
+
719
+ .video-player-storyboard-preview-image {
720
+ width: 100%;
721
+ height: 100%;
722
+ background-repeat: no-repeat;
723
+ background-position: 0 0;
724
+ background-color: #000;
725
+ }
726
+
727
+ .video-player-controls-row {
728
+ display: flex;
729
+ align-items: center;
730
+ justify-content: space-between;
731
+ gap: 12px;
732
+ }
733
+
734
+ .video-player-left,
735
+ .video-player-right {
736
+ display: flex;
737
+ align-items: center;
738
+ gap: 8px;
739
+ }
740
+
741
+ .video-player-button {
742
+ width: 20px;
743
+ height: 20px;
744
+ border-radius: 8px;
745
+ border: none;
746
+ background: transparent;
747
+ color: #fff;
748
+ display: inline-flex;
749
+ align-items: center;
750
+ justify-content: center;
751
+ padding: 0;
752
+ cursor: pointer;
753
+ }
754
+
755
+ .video-player-button:hover {
756
+ background: rgba(255, 255, 255, 0.16);
757
+ }
758
+
759
+ .video-player-time {
760
+ font-size: var(--mantine-font-size-sm, 14px);
761
+ font-weight: 400;
762
+ line-height: 1.45;
763
+ color: #fff;
764
+ display: flex;
765
+ align-items: center;
766
+ gap: 4px;
767
+ padding: 0 4px;
768
+ }
769
+
770
+ .video-player-title {
771
+ display: flex;
772
+ align-items: center;
773
+ gap: 4px;
774
+ padding: 0 6px;
775
+ color: #fff;
776
+ font-size: var(--mantine-font-size-sm, 14px);
777
+ font-weight: 400;
778
+ line-height: 1.45;
779
+ max-width: 320px;
780
+ white-space: nowrap;
781
+ overflow: hidden;
782
+ text-overflow: ellipsis;
783
+ }
784
+
785
+ .video-player-chapter-title {
786
+ display: flex;
787
+ align-items: center;
788
+ gap: 4px;
789
+ padding: 0 6px;
790
+ color: #fff;
791
+ font-size: var(--mantine-font-size-sm, 14px);
792
+ font-weight: 400;
793
+ line-height: 1.45;
794
+ max-width: 320px;
795
+ white-space: nowrap;
796
+ overflow: hidden;
797
+ text-overflow: ellipsis;
798
+ cursor: pointer;
799
+ }
800
+
801
+ .video-player-timeline-track--chapters {
802
+ background: transparent;
803
+ }
804
+
805
+ .video-player-chapter-segments {
806
+ display: flex;
807
+ gap: 2px;
808
+ width: 100%;
809
+ height: 3px;
810
+ }
811
+
812
+ .video-player-chapter-segment {
813
+ position: relative;
814
+ height: 3px;
815
+ border-radius: 4px;
816
+ background: rgba(255, 255, 255, 0.28);
817
+ overflow: hidden;
818
+ }
819
+
820
+ .video-player-chapter-segment-progress {
821
+ position: absolute;
822
+ top: 0;
823
+ left: 0;
824
+ height: 100%;
825
+ background: #2f80ed;
826
+ border-radius: 4px;
827
+ }
828
+
829
+ .video-player-chapter-segment-buffered {
830
+ position: absolute;
831
+ top: 0;
832
+ height: 100%;
833
+ background: rgba(255, 255, 255, 0.45);
834
+ }
835
+
836
+ .video-player-hover-preview {
837
+ position: absolute;
838
+ bottom: 100%;
839
+ margin-bottom: 8px;
840
+ display: flex;
841
+ flex-direction: column;
842
+ align-items: center;
843
+ gap: 4px;
844
+ pointer-events: none;
845
+ z-index: 10;
846
+ }
847
+
848
+ .video-player-hover-preview-info {
849
+ display: flex;
850
+ align-items: center;
851
+ gap: 4px;
852
+ padding: 2px 8px;
853
+ background: var(--mantine-color-gray-light, rgba(134, 142, 150, 0.1));
854
+ backdrop-filter: blur(2px);
855
+ border-radius: 8px;
856
+ max-width: 164px;
857
+ color: #fff;
858
+ text-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
859
+ }
860
+
861
+ .video-player-hover-preview-time {
862
+ font-size: var(--mantine-font-size-xs, 12px);
863
+ font-weight: 400;
864
+ line-height: 1.4;
865
+ white-space: nowrap;
866
+ }
867
+
868
+ .video-player-hover-preview-title {
869
+ font-size: var(--mantine-font-size-xs, 12px);
870
+ font-weight: 400;
871
+ line-height: 1.4;
872
+ white-space: nowrap;
873
+ overflow: hidden;
874
+ text-overflow: ellipsis;
875
+ max-width: 100px;
876
+ }
877
+
878
+ .video-player-chapters-list {
879
+ display: flex;
880
+ gap: 2px;
881
+ overflow-x: auto;
882
+ padding: 6px 8px;
883
+ background: #0b0d10;
884
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
885
+ border-radius: 0 0 var(--mantine-radius-default, 8px) var(--mantine-radius-default, 8px);
886
+ }
887
+ .video-player-chapters-list::-webkit-scrollbar {
888
+ height: 4px;
889
+ }
890
+ .video-player-chapters-list::-webkit-scrollbar-track {
891
+ background: transparent;
892
+ }
893
+ .video-player-chapters-list::-webkit-scrollbar-thumb {
894
+ background: #424242;
895
+ border-radius: 8px;
896
+ }
897
+
898
+ .video-player--compact .video-player-time {
899
+ display: none;
900
+ }
901
+
902
+ .video-player--narrow .video-player-chapter-title,
903
+ .video-player--narrow .video-player-title,
904
+ .video-player--narrow .video-player-chapters-list {
905
+ display: none;
906
+ }
907
+
908
+ .video-player-chapters-item {
909
+ display: flex;
910
+ align-items: center;
911
+ gap: 10px;
912
+ padding: 6px 8px;
913
+ border-radius: var(--mantine-radius-default, 8px);
914
+ border: none;
915
+ background: transparent;
916
+ color: #fff;
917
+ cursor: pointer;
918
+ white-space: nowrap;
919
+ flex-shrink: 0;
920
+ max-width: 264px;
921
+ }
922
+ .video-player-chapters-item:hover {
923
+ background: rgba(255, 255, 255, 0.05);
924
+ }
925
+
926
+ .video-player-chapters-item--active .video-player-chapters-item-time {
927
+ background: #2f80ed;
928
+ color: #fff;
929
+ }
930
+
931
+ .video-player-chapters-item-time {
932
+ display: flex;
933
+ align-items: center;
934
+ justify-content: center;
935
+ padding: 0 4px;
936
+ min-width: 45px;
937
+ background: rgba(47, 128, 237, 0.2);
938
+ border-radius: 16px;
939
+ font-size: var(--mantine-font-size-xs, 12px);
940
+ font-weight: 600;
941
+ line-height: 1.4;
942
+ color: #2f80ed;
943
+ }
944
+
945
+ .video-player-chapters-item-title {
946
+ font-size: var(--mantine-font-size-sm, 14px);
947
+ font-weight: 400;
948
+ line-height: 1.45;
949
+ overflow: hidden;
950
+ text-overflow: ellipsis;
951
+ max-width: 223px;
952
+ }
953
+
954
+ .video-settings-anchor {
955
+ position: relative;
956
+ display: flex;
957
+ align-items: center;
958
+ }
959
+
960
+ div.video-player-menu-dropdown .video-menu-header {
961
+ font-size: var(--font-size-font-size-sm, 14px);
962
+ font-style: normal;
963
+ font-weight: 600;
964
+ }
965
+
966
+ div.video-player-menu-dropdown div.mantine-Menu-item,
967
+ div.video-player-menu-dropdown div.mantine-Menu-itemLabel,
968
+ div.video-player-menu-dropdown div.mantine-Menu-itemSection,
969
+ div.video-player-menu-dropdown .video-menu-item-text {
970
+ font-size: var(--font-size-font-size-sm, 14px);
971
+ font-weight: 400;
972
+ }
973
+
974
+ .video-menu-item {
975
+ display: flex;
976
+ height: 36px;
977
+ min-height: 36px;
978
+ padding: 6px var(--mantine-spacing-xs);
979
+ align-items: center;
980
+ gap: var(--mantine-spacing-xs, 10px);
981
+ }
982
+
983
+ .video-menu-item-text {
984
+ font-size: var(--font-size-font-size-sm, 14px);
985
+ font-weight: 400;
986
+ }
987
+
988
+ .video-menu-row {
989
+ display: flex;
990
+ align-items: center;
991
+ justify-content: space-between;
992
+ width: 100%;
993
+ }
994
+
995
+ .video-menu-left {
996
+ display: flex;
997
+ align-items: center;
998
+ gap: var(--mantine-spacing-xs, 10px);
999
+ }
1000
+
1001
+ .video-menu-right {
1002
+ display: flex;
1003
+ align-items: center;
1004
+ gap: var(--mantine-spacing-xs, 10px);
1005
+ }
1006
+
1007
+ .video-menu-value {
1008
+ text-align: right;
1009
+ }
1010
+
1011
+ .video-menu-chevron {
1012
+ width: 20px;
1013
+ display: inline-flex;
1014
+ align-items: center;
1015
+ justify-content: flex-end;
1016
+ }
1017
+
1018
+ .shaka-controls-container,
1019
+ .shaka-controls-button-panel,
1020
+ .shaka-controls-menu,
1021
+ .shaka-spinner-container {
1022
+ display: none !important;
1023
+ }
1024
+
1025
+ .video-settings-modal .mantine-Modal-body {
1026
+ padding: 0;
1027
+ }
1028
+ .video-settings-modal .video-settings-modal-header {
1029
+ padding: 16px 20px;
1030
+ border-bottom: 1px solid var(--mantine-color-default-border);
1031
+ }
1032
+ .video-settings-modal .video-settings-modal-body {
1033
+ padding: 16px 20px 20px;
1034
+ }
1035
+ .video-settings-modal .video-settings-modal-section-title {
1036
+ font-size: var(--mantine-h5-font-size, 16px);
1037
+ font-weight: var(--mantine-h5-font-weight, 700);
1038
+ color: var(--mantine-color-bright);
1039
+ }
1040
+ .video-settings-modal .video-settings-modal-text-label {
1041
+ color: var(--mantine-color-bright);
1042
+ font-size: var(--font-size-font-size-sm, 14px);
1043
+ font-weight: 500;
1044
+ }
1045
+ .video-settings-modal .video-settings-modal-cover-carousel {
1046
+ position: relative;
1047
+ margin-top: 10px;
1048
+ margin-bottom: 12px;
1049
+ }
1050
+ .video-settings-modal .video-settings-modal-cover-controls {
1051
+ top: 50%;
1052
+ transform: translateY(-50%);
1053
+ padding: 0 4px;
1054
+ }
1055
+ .video-settings-modal .video-settings-modal-cover-control {
1056
+ width: 28px;
1057
+ height: 28px;
1058
+ border-radius: 50%;
1059
+ border: 1px solid var(--mantine-color-gray-3);
1060
+ background: var(--mantine-color-white);
1061
+ color: var(--mantine-color-gray-7);
1062
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
1063
+ }
1064
+ .video-settings-modal .video-settings-modal-cover-control[data-inactive] {
1065
+ opacity: 0;
1066
+ pointer-events: none;
1067
+ }
1068
+ .video-settings-modal .video-settings-modal-cover-carousel .mantine-Carousel-slide {
1069
+ display: flex;
1070
+ height: 80px;
1071
+ }
1072
+ .video-settings-modal .video-settings-modal-cover-cell {
1073
+ width: 129.333px;
1074
+ height: 80px;
1075
+ border-radius: var(--radius-radius-default, 8px);
1076
+ overflow: hidden;
1077
+ min-height: 0;
1078
+ flex: 0 0 auto;
1079
+ }
1080
+ .video-settings-modal .video-settings-modal-cover-upload {
1081
+ width: 100%;
1082
+ height: 100%;
1083
+ min-height: 0;
1084
+ border: 1px dashed #d0d7de;
1085
+ border-radius: var(--radius-radius-default, 8px);
1086
+ background: #ffffff;
1087
+ display: flex;
1088
+ flex-direction: column;
1089
+ align-items: center;
1090
+ justify-content: center;
1091
+ gap: 6px;
1092
+ cursor: pointer;
1093
+ transition: border-color 0.15s, background 0.15s;
1094
+ }
1095
+ .video-settings-modal .video-settings-modal-cover-upload:hover {
1096
+ border-color: #9db6d6;
1097
+ background: #ffffff;
1098
+ }
1099
+ .video-settings-modal .video-settings-modal-cover-upload-inner {
1100
+ display: flex;
1101
+ flex-direction: column;
1102
+ align-items: center;
1103
+ justify-content: center;
1104
+ gap: 6px;
1105
+ text-align: center;
1106
+ }
1107
+ .video-settings-modal .video-settings-modal-cover-upload-label {
1108
+ font-size: var(--font-size-font-size-sm, 14px);
1109
+ font-style: normal;
1110
+ font-weight: 500;
1111
+ line-height: 1.2;
1112
+ color: var(--mantine-color-bright);
1113
+ }
1114
+ .video-settings-modal .video-settings-modal-cover-thumb {
1115
+ width: 100%;
1116
+ height: 100%;
1117
+ border-radius: var(--radius-radius-default, 8px);
1118
+ overflow: hidden;
1119
+ position: relative;
1120
+ border: 2px solid transparent;
1121
+ cursor: pointer;
1122
+ }
1123
+ .video-settings-modal .video-settings-modal-cover-thumb img {
1124
+ width: 100%;
1125
+ height: 100%;
1126
+ object-fit: cover;
1127
+ display: block;
1128
+ }
1129
+ .video-settings-modal .video-settings-modal-cover-thumb.loading img {
1130
+ filter: blur(4px);
1131
+ }
1132
+ .video-settings-modal .video-settings-modal-cover-thumb.error img {
1133
+ filter: blur(4px);
1134
+ }
1135
+ .video-settings-modal .video-settings-modal-cover-thumb .video-settings-modal-cover-spinner {
1136
+ position: absolute;
1137
+ inset: 0;
1138
+ display: flex;
1139
+ align-items: center;
1140
+ justify-content: center;
1141
+ background: rgba(0, 0, 0, 0.2);
1142
+ }
1143
+ .video-settings-modal .video-settings-modal-cover-thumb .video-settings-modal-cover-error-icon {
1144
+ position: absolute;
1145
+ inset: 0;
1146
+ display: flex;
1147
+ align-items: center;
1148
+ justify-content: center;
1149
+ background: rgba(0, 0, 0, 0.3);
1150
+ color: #fff;
1151
+ font-size: 20px;
1152
+ font-weight: 600;
1153
+ }
1154
+ .video-settings-modal .video-settings-modal-cover-thumb.selected {
1155
+ border-color: var(--mantine-color-blue-5);
1156
+ }
1157
+ .video-settings-modal .video-settings-modal-cover-thumb.selected .video-settings-modal-cover-check {
1158
+ position: absolute;
1159
+ top: 50%;
1160
+ left: 50%;
1161
+ transform: translate(-50%, -50%);
1162
+ width: 24px;
1163
+ height: 24px;
1164
+ border-radius: 50%;
1165
+ background: var(--mantine-color-blue-5);
1166
+ backdrop-filter: blur(2px);
1167
+ color: #fff;
1168
+ display: flex;
1169
+ align-items: center;
1170
+ justify-content: center;
1171
+ }
1172
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-header {
1173
+ border-bottom: 1px solid var(--mantine-color-dark-4);
1174
+ }
1175
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-body {
1176
+ background: var(--mantine-color-dark-7);
1177
+ }
1178
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-section-title {
1179
+ color: var(--mantine-color-bright);
1180
+ }
1181
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-control {
1182
+ border-color: var(--mantine-color-dark-4);
1183
+ background: var(--mantine-color-dark-6);
1184
+ color: var(--mantine-color-gray-2);
1185
+ }
1186
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-upload {
1187
+ border-color: var(--mantine-color-dark-4);
1188
+ background: var(--mantine-color-dark-6);
1189
+ }
1190
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-upload:hover {
1191
+ border-color: var(--mantine-color-blue-4);
1192
+ background: var(--mantine-color-dark-5);
1193
+ }
1194
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-upload-label {
1195
+ color: var(--mantine-color-gray-0, #f1f3f5);
1196
+ }
1197
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-thumb {
1198
+ border-color: transparent;
1199
+ }
1200
+ [data-mantine-color-scheme=dark] .video-settings-modal .video-settings-modal-cover-thumb.selected {
1201
+ border-color: var(--mantine-color-blue-4);
1202
+ }
1203
+
1204
+ .video-settings-modal-subtitles-row {
1205
+ align-items: center;
1206
+ gap: 10px;
1207
+ margin-bottom: var(--mantine-spacing-sm);
1208
+ }
1209
+ .video-settings-modal-subtitles-row .mantine-Select-root {
1210
+ flex: 1;
1211
+ }
1212
+ .video-settings-modal-subtitles-row .mantine-Select-input,
1213
+ .video-settings-modal-subtitles-row .mantine-Button-root {
1214
+ height: 36px;
1215
+ }
1216
+ .video-settings-modal-subtitles-row .mantine-Button-root {
1217
+ min-width: 140px;
1218
+ border-radius: 10px;
1219
+ }
1220
+
1221
+ .video-settings-modal-subtitles-row:first-of-type {
1222
+ margin-top: var(--mantine-spacing-xs);
1223
+ }
1224
+
1225
+ .video-settings-modal-subtitles-row:last-of-type {
1226
+ margin-bottom: 0;
1227
+ }
1228
+
1229
+ .video-settings-modal-subtitles-label {
1230
+ color: #ff3b30;
1231
+ font-weight: 500;
1232
+ }
1233
+
1234
+ .video-settings-modal-link {
1235
+ appearance: none;
1236
+ border: none;
1237
+ background: none;
1238
+ padding: 0;
1239
+ margin: 0;
1240
+ color: var(--mantine-primary-color-light-color, #4c6ef5);
1241
+ font-size: 14px;
1242
+ font-weight: 500;
1243
+ cursor: pointer;
1244
+ text-decoration: none;
1245
+ }
1246
+
1247
+ .video-settings-modal .video-settings-modal-link {
1248
+ color: var(--mantine-primary-color-light-color, #4c6ef5);
1249
+ text-decoration: none;
1250
+ }
1251
+
1252
+ .video-settings-modal .video-settings-modal-link.mantine-Text-root {
1253
+ color: var(--mantine-primary-color-light-color, #4c6ef5);
1254
+ }
1255
+
1256
+ .video-settings-modal-link:disabled {
1257
+ opacity: 0.4;
1258
+ cursor: default;
1259
+ }
1260
+
1261
+ .video-settings-modal-upload-button {
1262
+ height: var(--button-height-sm, 36px);
1263
+ padding: 6px var(--button-padding-x-sm, 18px);
1264
+ border-radius: var(--mantine-radius-default, 8px);
1265
+ background: var(--mantine-primary-color-light, rgba(76, 110, 245, 0.1)) !important;
1266
+ font-size: var(--mantine-font-size-sm, 14px);
1267
+ color: var(--mantine-primary-color-light-color, #4c6ef5) !important;
1268
+ font-weight: 500;
1269
+ border: none !important;
1270
+ }
1271
+
1272
+ .video-settings-modal-upload-button:hover {
1273
+ background: var(--mantine-primary-color-light-hover, rgba(76, 110, 245, 0.16)) !important;
1274
+ }
1275
+
1276
+ .video-settings-modal-chapter-row {
1277
+ max-width: 100%;
1278
+ align-items: flex-start;
1279
+ gap: 10px;
1280
+ }
1281
+
1282
+ .video-settings-modal-chapter-times {
1283
+ gap: 10px;
1284
+ width: 72px;
1285
+ flex: 0 0 72px;
1286
+ }
1287
+
1288
+ .video-settings-modal-chapter-title {
1289
+ flex: 1;
1290
+ min-width: 0;
1291
+ height: 82px;
1292
+ }
1293
+
1294
+ .video-settings-modal-chapter-actions {
1295
+ width: 36px;
1296
+ flex: 0 0 36px;
1297
+ height: 82px;
1298
+ display: flex;
1299
+ align-items: center;
1300
+ justify-content: center;
1301
+ }._dropzone_8gcr8_1 {
1302
+ border-radius: var(--mantine-radius-default, 8px);
1303
+ padding: 31px 60px;
1304
+ cursor: pointer;
1305
+ transition: all 0.2s ease;
1306
+ border: 1px dashed var(--mantine-color-default-border);
1307
+ background-color: light-dark(#fff, var(--mantine-color-dark-8));
1308
+ }
1309
+ ._dropzone_8gcr8_1:hover:not(._disabled_8gcr8_9) {
1310
+ background-color: var(--mantine-color-default-hover);
1311
+ }
1312
+ ._dropzone_8gcr8_1._focused_8gcr8_12, ._dropzone_8gcr8_1[data-accept=true] {
1313
+ border: 1px dashed var(--primary-color-outline, #4c6ef5);
1314
+ background: linear-gradient(0deg, var(--mantine-primary-color-light-hover) 0%, rgba(76, 110, 245, 0.12) 100%), var(--Sidebar-app-container-bg, #fff);
1315
+ }
1316
+ ._dropzone_8gcr8_1._disabled_8gcr8_9 {
1317
+ cursor: not-allowed;
1318
+ }
1319
+
1320
+ ._dropzoneContent_8gcr8_20 {
1321
+ border: none;
1322
+ background: transparent !important;
1323
+ padding: 0;
1324
+ cursor: pointer;
1325
+ display: flex !important;
1326
+ flex-direction: column;
1327
+ gap: var(--spacing-spacing-xs, 10px);
1328
+ align-items: center;
1329
+ justify-content: center;
1330
+ width: 100%;
1331
+ height: 100%;
1332
+ min-height: 100%;
1333
+ border-radius: var(--mantine-radius-default, 8px);
1334
+ transition: background-color 0.2s ease;
1335
+ }
1336
+ ._dropzoneContent_8gcr8_20._disabled_8gcr8_9 {
1337
+ cursor: not-allowed;
1338
+ }
1339
+
1340
+ ._iconContainer_8gcr8_40 {
1341
+ width: 32px;
1342
+ height: 32px;
1343
+ display: flex;
1344
+ align-items: center;
1345
+ justify-content: center;
1346
+ }
1347
+
1348
+ ._contentWrapper_8gcr8_48 {
1349
+ display: flex;
1350
+ flex-direction: column;
1351
+ gap: 4px;
1352
+ align-items: center;
1353
+ text-align: center;
1354
+ width: 100%;
1355
+ }
1356
+
1357
+ ._contentWrapper_8gcr8_48 ._title_8gcr8_57 {
1358
+ line-height: 1.55;
1359
+ color: var(--mantine-color-bright);
1360
+ }
1361
+
1362
+ ._description_8gcr8_62 {
1363
+ line-height: 1.45;
1364
+ }