@bazza-ui/react 0.1.0-canary.3 → 0.1.0-canary.5
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/dist/adapters/index.d.cts +2 -1
- package/dist/adapters/index.d.ts +2 -1
- package/dist/combobox/index.d.cts +4 -3
- package/dist/combobox/index.d.ts +4 -3
- package/dist/context-menu/index.d.cts +9 -8
- package/dist/context-menu/index.d.ts +9 -8
- package/dist/{data-surface-B-eIGTBi.d.cts → data-surface-CvJ9KHPs.d.cts} +3 -2
- package/dist/{data-surface-D1OilMDu.d.ts → data-surface-wC_Jb6Rh.d.ts} +3 -2
- package/dist/dropdown-menu/index.d.cts +11 -10
- package/dist/dropdown-menu/index.d.ts +11 -10
- package/dist/{input-DF7D8YzW.d.ts → input-CVeZtOCC.d.ts} +1 -1
- package/dist/{input-BoIK003I.d.cts → input-K7sWcc-E.d.cts} +1 -1
- package/dist/internal/popup-menu/index.d.cts +9 -8
- package/dist/internal/popup-menu/index.d.ts +9 -8
- package/dist/{loading-TsgH6v92.d.ts → loading-Bb7G_pQp.d.ts} +1 -1
- package/dist/{loading-DphSt8MY.d.cts → loading-CbSVZlwi.d.cts} +1 -1
- package/dist/select/index.d.cts +6 -5
- package/dist/select/index.d.ts +6 -5
- package/dist/{separator-BmbUeeaT.d.cts → separator-BzYYn73e.d.cts} +2 -1
- package/dist/{separator-B4Ot84B0.d.ts → separator-C9c1Jo6A.d.ts} +2 -1
- package/dist/{types-9vS1uLIK.d.cts → types-Cggz7pEl.d.cts} +2 -35
- package/dist/types-DT4FOOa2.d.cts +51 -0
- package/dist/types-DT4FOOa2.d.ts +51 -0
- package/dist/{types-lQCIvWW8.d.ts → types-M2vBIhdB.d.ts} +2 -35
- package/dist/video-player/index.cjs +2 -2
- package/dist/video-player/index.cjs.map +1 -1
- package/dist/video-player/index.d.cts +29 -18
- package/dist/video-player/index.d.ts +29 -18
- package/dist/video-player/index.js +2 -2
- package/dist/video-player/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { W as WithPreventableBaseHandlers } from '../types-DT4FOOa2.cjs';
|
|
2
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
4
|
import * as _base_ui_react_slider from '@base-ui/react/slider';
|
|
4
5
|
import { Slider } from '@base-ui/react/slider';
|
|
@@ -116,6 +117,10 @@ interface VideoPlayerActions {
|
|
|
116
117
|
resetIdle: () => void;
|
|
117
118
|
/** Set hover time for seek preview (null to clear) */
|
|
118
119
|
setHoverTime: (time: number | null) => void;
|
|
120
|
+
/** Temporarily pause playback during a seek interaction */
|
|
121
|
+
beginSeekInteraction: () => void;
|
|
122
|
+
/** Resume playback after a seek interaction if playback was previously intended */
|
|
123
|
+
endSeekInteraction: () => void;
|
|
119
124
|
}
|
|
120
125
|
interface VideoPlayerInternalHandlers {
|
|
121
126
|
onTimeUpdate: () => void;
|
|
@@ -130,6 +135,7 @@ interface VideoPlayerInternalHandlers {
|
|
|
130
135
|
onSeeked: () => void;
|
|
131
136
|
onVolumeChange: () => void;
|
|
132
137
|
onLoadedMetadata: () => void;
|
|
138
|
+
onVideoMount: () => void;
|
|
133
139
|
onRootMouseLeave: () => void;
|
|
134
140
|
}
|
|
135
141
|
interface VideoPlayerContextValue extends VideoPlayerState, VideoPlayerActions {
|
|
@@ -145,7 +151,7 @@ interface VideoPlayerExternalActions {
|
|
|
145
151
|
setVolume: (volume: number) => void;
|
|
146
152
|
toggleFullscreen: () => Promise<void>;
|
|
147
153
|
}
|
|
148
|
-
type DivPropsWithoutConflicts = Omit<React.ComponentPropsWithRef<'div'
|
|
154
|
+
type DivPropsWithoutConflicts = Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'div'>>, 'onVolumeChange' | 'onEnded' | 'onWaiting' | 'onSeeking' | 'onSeeked'>;
|
|
149
155
|
interface VideoPlayerRootProps extends DivPropsWithoutConflicts {
|
|
150
156
|
/**
|
|
151
157
|
* Ref to expose programmatic control actions.
|
|
@@ -161,6 +167,11 @@ interface VideoPlayerRootProps extends DivPropsWithoutConflicts {
|
|
|
161
167
|
*/
|
|
162
168
|
keyboardShortcuts?: 'focused' | 'global' | 'none';
|
|
163
169
|
defaultPlaying?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Attempts to start playback automatically when the video element mounts.
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
174
|
+
autoPlay?: boolean;
|
|
164
175
|
defaultVolume?: number;
|
|
165
176
|
defaultMuted?: boolean;
|
|
166
177
|
defaultPlaybackRate?: number;
|
|
@@ -350,12 +361,12 @@ declare enum CaptionsButtonDataAttributes {
|
|
|
350
361
|
available = "data-available"
|
|
351
362
|
}
|
|
352
363
|
|
|
353
|
-
interface CaptionsButtonProps extends React.ComponentPropsWithRef<'button'
|
|
364
|
+
interface CaptionsButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
354
365
|
render?: RenderProp<CaptionsButtonRenderProps, CaptionsButtonState>;
|
|
355
366
|
}
|
|
356
367
|
interface CaptionsButtonRenderProps {
|
|
357
368
|
ref: React.Ref<HTMLButtonElement>;
|
|
358
|
-
type: '
|
|
369
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
359
370
|
'aria-label': string;
|
|
360
371
|
'aria-pressed': boolean;
|
|
361
372
|
disabled: boolean;
|
|
@@ -392,7 +403,7 @@ interface CaptionsMenuState {
|
|
|
392
403
|
registeredTracks: TrackInfo[];
|
|
393
404
|
activeTextTrack: TextTrack | null;
|
|
394
405
|
}
|
|
395
|
-
interface CaptionsMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
406
|
+
interface CaptionsMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
396
407
|
track: TextTrack | null;
|
|
397
408
|
}
|
|
398
409
|
declare const CaptionsMenuItem: React.ForwardRefExoticComponent<Omit<CaptionsMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -472,13 +483,13 @@ declare enum FullscreenButtonDataAttributes {
|
|
|
472
483
|
supported = "data-supported"
|
|
473
484
|
}
|
|
474
485
|
|
|
475
|
-
interface FullscreenButtonProps extends Omit<React.ComponentPropsWithRef<'button'
|
|
486
|
+
interface FullscreenButtonProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>>, 'children'> {
|
|
476
487
|
render?: RenderProp<FullscreenButtonRenderProps, FullscreenButtonState>;
|
|
477
488
|
children?: React.ReactNode;
|
|
478
489
|
}
|
|
479
490
|
interface FullscreenButtonRenderProps {
|
|
480
491
|
ref: React.Ref<HTMLButtonElement>;
|
|
481
|
-
type: '
|
|
492
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
482
493
|
'aria-label': string;
|
|
483
494
|
'aria-pressed': boolean;
|
|
484
495
|
disabled: boolean;
|
|
@@ -510,12 +521,12 @@ declare enum MuteButtonDataAttributes {
|
|
|
510
521
|
volumeHigh = "data-volume-high"
|
|
511
522
|
}
|
|
512
523
|
|
|
513
|
-
interface MuteButtonProps extends React.ComponentPropsWithRef<'button'
|
|
524
|
+
interface MuteButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
514
525
|
render?: RenderProp<MuteButtonRenderProps, MuteButtonState>;
|
|
515
526
|
}
|
|
516
527
|
interface MuteButtonRenderProps {
|
|
517
528
|
ref: React.Ref<HTMLButtonElement>;
|
|
518
|
-
type: '
|
|
529
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
519
530
|
'aria-label': string;
|
|
520
531
|
'aria-pressed': boolean;
|
|
521
532
|
[MuteButtonDataAttributes.muted]?: boolean;
|
|
@@ -560,7 +571,7 @@ declare enum OverlayDataAttributes {
|
|
|
560
571
|
endingStyle = "data-ending-style"
|
|
561
572
|
}
|
|
562
573
|
|
|
563
|
-
interface OverlayProps extends Omit<React.ComponentPropsWithRef<'div'
|
|
574
|
+
interface OverlayProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'div'>>, 'children'> {
|
|
564
575
|
/**
|
|
565
576
|
* Delay before hiding after player becomes idle (ms).
|
|
566
577
|
* Defaults to Root's idleTimeout. Set to 0 to disable auto-hide.
|
|
@@ -616,12 +627,12 @@ declare enum PictureInPictureButtonDataAttributes {
|
|
|
616
627
|
supported = "data-supported"
|
|
617
628
|
}
|
|
618
629
|
|
|
619
|
-
interface PictureInPictureButtonProps extends React.ComponentPropsWithRef<'button'
|
|
630
|
+
interface PictureInPictureButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
620
631
|
render?: RenderProp<PictureInPictureButtonRenderProps, PictureInPictureButtonState>;
|
|
621
632
|
}
|
|
622
633
|
interface PictureInPictureButtonRenderProps {
|
|
623
634
|
ref: React.Ref<HTMLButtonElement>;
|
|
624
|
-
type: '
|
|
635
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
625
636
|
'aria-label': string;
|
|
626
637
|
'aria-pressed': boolean;
|
|
627
638
|
disabled: boolean;
|
|
@@ -650,13 +661,13 @@ declare enum PlayButtonDataAttributes {
|
|
|
650
661
|
waiting = "data-waiting"
|
|
651
662
|
}
|
|
652
663
|
|
|
653
|
-
interface PlayButtonProps extends Omit<React.ComponentPropsWithRef<'button'
|
|
664
|
+
interface PlayButtonProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>>, 'children'> {
|
|
654
665
|
render?: RenderProp<PlayButtonRenderProps, PlayButtonState>;
|
|
655
666
|
children?: React.ReactNode;
|
|
656
667
|
}
|
|
657
668
|
interface PlayButtonRenderProps {
|
|
658
669
|
ref: React.Ref<HTMLButtonElement>;
|
|
659
|
-
type: '
|
|
670
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
660
671
|
'aria-label': string;
|
|
661
672
|
[PlayButtonDataAttributes.playing]?: boolean;
|
|
662
673
|
[PlayButtonDataAttributes.paused]?: boolean;
|
|
@@ -682,7 +693,7 @@ declare enum PlaybackRateButtonDataAttributes {
|
|
|
682
693
|
rate = "data-rate"
|
|
683
694
|
}
|
|
684
695
|
|
|
685
|
-
interface PlaybackRateButtonProps extends React.ComponentPropsWithRef<'button'
|
|
696
|
+
interface PlaybackRateButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
686
697
|
/**
|
|
687
698
|
* Available playback rates to cycle through.
|
|
688
699
|
* @default [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
|
|
@@ -692,7 +703,7 @@ interface PlaybackRateButtonProps extends React.ComponentPropsWithRef<'button'>
|
|
|
692
703
|
}
|
|
693
704
|
interface PlaybackRateButtonRenderProps {
|
|
694
705
|
ref: React.Ref<HTMLButtonElement>;
|
|
695
|
-
type: '
|
|
706
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
696
707
|
'aria-label': string;
|
|
697
708
|
[PlaybackRateButtonDataAttributes.rate]: number;
|
|
698
709
|
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
@@ -730,7 +741,7 @@ interface PlaybackRateMenuState {
|
|
|
730
741
|
playbackRate: number;
|
|
731
742
|
rates: readonly number[];
|
|
732
743
|
}
|
|
733
|
-
interface PlaybackRateMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
744
|
+
interface PlaybackRateMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
734
745
|
rate: number;
|
|
735
746
|
}
|
|
736
747
|
declare const PlaybackRateMenuItem: React.ForwardRefExoticComponent<Omit<PlaybackRateMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -814,7 +825,7 @@ interface QualityMenuState {
|
|
|
814
825
|
qualities: VideoQuality[];
|
|
815
826
|
activeQuality: VideoQuality | null;
|
|
816
827
|
}
|
|
817
|
-
interface QualityMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
828
|
+
interface QualityMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
818
829
|
quality: VideoQuality;
|
|
819
830
|
}
|
|
820
831
|
declare const QualityMenuItem: React.ForwardRefExoticComponent<Omit<QualityMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1190,7 +1201,7 @@ declare namespace Track {
|
|
|
1190
1201
|
type Props = TrackProps;
|
|
1191
1202
|
}
|
|
1192
1203
|
|
|
1193
|
-
interface VideoProps extends Omit<React.ComponentPropsWithRef<'video'
|
|
1204
|
+
interface VideoProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'video'>>, 'onTimeUpdate' | 'onDurationChange' | 'onProgress' | 'onPlay' | 'onPause' | 'onEnded' | 'onWaiting' | 'onCanPlay' | 'onSeeking' | 'onSeeked' | 'onVolumeChange' | 'onLoadedMetadata'> {
|
|
1194
1205
|
/**
|
|
1195
1206
|
* Toggle play/pause when clicking on the video.
|
|
1196
1207
|
* @default true
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { W as WithPreventableBaseHandlers } from '../types-DT4FOOa2.js';
|
|
2
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
4
|
import * as _base_ui_react_slider from '@base-ui/react/slider';
|
|
4
5
|
import { Slider } from '@base-ui/react/slider';
|
|
@@ -116,6 +117,10 @@ interface VideoPlayerActions {
|
|
|
116
117
|
resetIdle: () => void;
|
|
117
118
|
/** Set hover time for seek preview (null to clear) */
|
|
118
119
|
setHoverTime: (time: number | null) => void;
|
|
120
|
+
/** Temporarily pause playback during a seek interaction */
|
|
121
|
+
beginSeekInteraction: () => void;
|
|
122
|
+
/** Resume playback after a seek interaction if playback was previously intended */
|
|
123
|
+
endSeekInteraction: () => void;
|
|
119
124
|
}
|
|
120
125
|
interface VideoPlayerInternalHandlers {
|
|
121
126
|
onTimeUpdate: () => void;
|
|
@@ -130,6 +135,7 @@ interface VideoPlayerInternalHandlers {
|
|
|
130
135
|
onSeeked: () => void;
|
|
131
136
|
onVolumeChange: () => void;
|
|
132
137
|
onLoadedMetadata: () => void;
|
|
138
|
+
onVideoMount: () => void;
|
|
133
139
|
onRootMouseLeave: () => void;
|
|
134
140
|
}
|
|
135
141
|
interface VideoPlayerContextValue extends VideoPlayerState, VideoPlayerActions {
|
|
@@ -145,7 +151,7 @@ interface VideoPlayerExternalActions {
|
|
|
145
151
|
setVolume: (volume: number) => void;
|
|
146
152
|
toggleFullscreen: () => Promise<void>;
|
|
147
153
|
}
|
|
148
|
-
type DivPropsWithoutConflicts = Omit<React.ComponentPropsWithRef<'div'
|
|
154
|
+
type DivPropsWithoutConflicts = Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'div'>>, 'onVolumeChange' | 'onEnded' | 'onWaiting' | 'onSeeking' | 'onSeeked'>;
|
|
149
155
|
interface VideoPlayerRootProps extends DivPropsWithoutConflicts {
|
|
150
156
|
/**
|
|
151
157
|
* Ref to expose programmatic control actions.
|
|
@@ -161,6 +167,11 @@ interface VideoPlayerRootProps extends DivPropsWithoutConflicts {
|
|
|
161
167
|
*/
|
|
162
168
|
keyboardShortcuts?: 'focused' | 'global' | 'none';
|
|
163
169
|
defaultPlaying?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Attempts to start playback automatically when the video element mounts.
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
174
|
+
autoPlay?: boolean;
|
|
164
175
|
defaultVolume?: number;
|
|
165
176
|
defaultMuted?: boolean;
|
|
166
177
|
defaultPlaybackRate?: number;
|
|
@@ -350,12 +361,12 @@ declare enum CaptionsButtonDataAttributes {
|
|
|
350
361
|
available = "data-available"
|
|
351
362
|
}
|
|
352
363
|
|
|
353
|
-
interface CaptionsButtonProps extends React.ComponentPropsWithRef<'button'
|
|
364
|
+
interface CaptionsButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
354
365
|
render?: RenderProp<CaptionsButtonRenderProps, CaptionsButtonState>;
|
|
355
366
|
}
|
|
356
367
|
interface CaptionsButtonRenderProps {
|
|
357
368
|
ref: React.Ref<HTMLButtonElement>;
|
|
358
|
-
type: '
|
|
369
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
359
370
|
'aria-label': string;
|
|
360
371
|
'aria-pressed': boolean;
|
|
361
372
|
disabled: boolean;
|
|
@@ -392,7 +403,7 @@ interface CaptionsMenuState {
|
|
|
392
403
|
registeredTracks: TrackInfo[];
|
|
393
404
|
activeTextTrack: TextTrack | null;
|
|
394
405
|
}
|
|
395
|
-
interface CaptionsMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
406
|
+
interface CaptionsMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
396
407
|
track: TextTrack | null;
|
|
397
408
|
}
|
|
398
409
|
declare const CaptionsMenuItem: React.ForwardRefExoticComponent<Omit<CaptionsMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -472,13 +483,13 @@ declare enum FullscreenButtonDataAttributes {
|
|
|
472
483
|
supported = "data-supported"
|
|
473
484
|
}
|
|
474
485
|
|
|
475
|
-
interface FullscreenButtonProps extends Omit<React.ComponentPropsWithRef<'button'
|
|
486
|
+
interface FullscreenButtonProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>>, 'children'> {
|
|
476
487
|
render?: RenderProp<FullscreenButtonRenderProps, FullscreenButtonState>;
|
|
477
488
|
children?: React.ReactNode;
|
|
478
489
|
}
|
|
479
490
|
interface FullscreenButtonRenderProps {
|
|
480
491
|
ref: React.Ref<HTMLButtonElement>;
|
|
481
|
-
type: '
|
|
492
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
482
493
|
'aria-label': string;
|
|
483
494
|
'aria-pressed': boolean;
|
|
484
495
|
disabled: boolean;
|
|
@@ -510,12 +521,12 @@ declare enum MuteButtonDataAttributes {
|
|
|
510
521
|
volumeHigh = "data-volume-high"
|
|
511
522
|
}
|
|
512
523
|
|
|
513
|
-
interface MuteButtonProps extends React.ComponentPropsWithRef<'button'
|
|
524
|
+
interface MuteButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
514
525
|
render?: RenderProp<MuteButtonRenderProps, MuteButtonState>;
|
|
515
526
|
}
|
|
516
527
|
interface MuteButtonRenderProps {
|
|
517
528
|
ref: React.Ref<HTMLButtonElement>;
|
|
518
|
-
type: '
|
|
529
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
519
530
|
'aria-label': string;
|
|
520
531
|
'aria-pressed': boolean;
|
|
521
532
|
[MuteButtonDataAttributes.muted]?: boolean;
|
|
@@ -560,7 +571,7 @@ declare enum OverlayDataAttributes {
|
|
|
560
571
|
endingStyle = "data-ending-style"
|
|
561
572
|
}
|
|
562
573
|
|
|
563
|
-
interface OverlayProps extends Omit<React.ComponentPropsWithRef<'div'
|
|
574
|
+
interface OverlayProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'div'>>, 'children'> {
|
|
564
575
|
/**
|
|
565
576
|
* Delay before hiding after player becomes idle (ms).
|
|
566
577
|
* Defaults to Root's idleTimeout. Set to 0 to disable auto-hide.
|
|
@@ -616,12 +627,12 @@ declare enum PictureInPictureButtonDataAttributes {
|
|
|
616
627
|
supported = "data-supported"
|
|
617
628
|
}
|
|
618
629
|
|
|
619
|
-
interface PictureInPictureButtonProps extends React.ComponentPropsWithRef<'button'
|
|
630
|
+
interface PictureInPictureButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
620
631
|
render?: RenderProp<PictureInPictureButtonRenderProps, PictureInPictureButtonState>;
|
|
621
632
|
}
|
|
622
633
|
interface PictureInPictureButtonRenderProps {
|
|
623
634
|
ref: React.Ref<HTMLButtonElement>;
|
|
624
|
-
type: '
|
|
635
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
625
636
|
'aria-label': string;
|
|
626
637
|
'aria-pressed': boolean;
|
|
627
638
|
disabled: boolean;
|
|
@@ -650,13 +661,13 @@ declare enum PlayButtonDataAttributes {
|
|
|
650
661
|
waiting = "data-waiting"
|
|
651
662
|
}
|
|
652
663
|
|
|
653
|
-
interface PlayButtonProps extends Omit<React.ComponentPropsWithRef<'button'
|
|
664
|
+
interface PlayButtonProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>>, 'children'> {
|
|
654
665
|
render?: RenderProp<PlayButtonRenderProps, PlayButtonState>;
|
|
655
666
|
children?: React.ReactNode;
|
|
656
667
|
}
|
|
657
668
|
interface PlayButtonRenderProps {
|
|
658
669
|
ref: React.Ref<HTMLButtonElement>;
|
|
659
|
-
type: '
|
|
670
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
660
671
|
'aria-label': string;
|
|
661
672
|
[PlayButtonDataAttributes.playing]?: boolean;
|
|
662
673
|
[PlayButtonDataAttributes.paused]?: boolean;
|
|
@@ -682,7 +693,7 @@ declare enum PlaybackRateButtonDataAttributes {
|
|
|
682
693
|
rate = "data-rate"
|
|
683
694
|
}
|
|
684
695
|
|
|
685
|
-
interface PlaybackRateButtonProps extends React.ComponentPropsWithRef<'button'
|
|
696
|
+
interface PlaybackRateButtonProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
686
697
|
/**
|
|
687
698
|
* Available playback rates to cycle through.
|
|
688
699
|
* @default [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
|
|
@@ -692,7 +703,7 @@ interface PlaybackRateButtonProps extends React.ComponentPropsWithRef<'button'>
|
|
|
692
703
|
}
|
|
693
704
|
interface PlaybackRateButtonRenderProps {
|
|
694
705
|
ref: React.Ref<HTMLButtonElement>;
|
|
695
|
-
type: '
|
|
706
|
+
type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
|
|
696
707
|
'aria-label': string;
|
|
697
708
|
[PlaybackRateButtonDataAttributes.rate]: number;
|
|
698
709
|
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
@@ -730,7 +741,7 @@ interface PlaybackRateMenuState {
|
|
|
730
741
|
playbackRate: number;
|
|
731
742
|
rates: readonly number[];
|
|
732
743
|
}
|
|
733
|
-
interface PlaybackRateMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
744
|
+
interface PlaybackRateMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
734
745
|
rate: number;
|
|
735
746
|
}
|
|
736
747
|
declare const PlaybackRateMenuItem: React.ForwardRefExoticComponent<Omit<PlaybackRateMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -814,7 +825,7 @@ interface QualityMenuState {
|
|
|
814
825
|
qualities: VideoQuality[];
|
|
815
826
|
activeQuality: VideoQuality | null;
|
|
816
827
|
}
|
|
817
|
-
interface QualityMenuItemProps extends React.ComponentPropsWithRef<'button'
|
|
828
|
+
interface QualityMenuItemProps extends WithPreventableBaseHandlers<React.ComponentPropsWithRef<'button'>> {
|
|
818
829
|
quality: VideoQuality;
|
|
819
830
|
}
|
|
820
831
|
declare const QualityMenuItem: React.ForwardRefExoticComponent<Omit<QualityMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1190,7 +1201,7 @@ declare namespace Track {
|
|
|
1190
1201
|
type Props = TrackProps;
|
|
1191
1202
|
}
|
|
1192
1203
|
|
|
1193
|
-
interface VideoProps extends Omit<React.ComponentPropsWithRef<'video'
|
|
1204
|
+
interface VideoProps extends Omit<WithPreventableBaseHandlers<React.ComponentPropsWithRef<'video'>>, 'onTimeUpdate' | 'onDurationChange' | 'onProgress' | 'onPlay' | 'onPause' | 'onEnded' | 'onWaiting' | 'onCanPlay' | 'onSeeking' | 'onSeeked' | 'onVolumeChange' | 'onLoadedMetadata'> {
|
|
1194
1205
|
/**
|
|
1195
1206
|
* Toggle play/pause when clicking on the video.
|
|
1196
1207
|
* @default true
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
`),o=a.length>0,l={active:o,cueText:r,cues:a},u={ref:n,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":o||void 0};return i?i(u,l):s?zt("div",{...u,...c,children:s}):zt("div",{...u,...c,children:r})});import*as Ie from"react";import{jsx as Ur}from"react/jsx-runtime";var er=Ie.forwardRef(function(e,n){let{render:i,onClick:s,...c}=e,t=P("CaptionsButton"),a=t.registeredTracks.length>0,r=t.activeTextTrack!==null,o={active:r,available:a,trackCount:t.registeredTracks.length},l=Ie.useCallback(f=>{if(s?.(f),!f.defaultPrevented){if(r)t.setTextTrack(null);else if(t.registeredTracks.length>0){let y=t.registeredTracks[0];y?.textTrack&&t.setTextTrack(y.textTrack)}}},[s,t,r]),u={ref:n,type:"button","aria-label":r?"Disable captions":"Enable captions","aria-pressed":r,disabled:!a,"data-active":r||void 0,"data-available":a||void 0,onClick:l};return i?i(u,o):Ur("button",{...u,...c})});import*as ie from"react";import{Fragment as qr,jsx as He,jsxs as Kr}from"react/jsx-runtime";var tr=ie.forwardRef(function(e,n){let{render:i,children:s,...c}=e,t=P("CaptionsMenu"),a={registeredTracks:t.registeredTracks,activeTextTrack:t.activeTextTrack},r={ref:n,role:"menu","aria-label":"Captions","data-active":t.activeTextTrack!==null||void 0};return i?i(r,a):He("div",{...r,...c,children:s??Kr(qr,{children:[He(De,{track:null,children:"Off"}),t.registeredTracks.map(o=>He(De,{track:o.textTrack,children:o.label},o.id))]})})}),De=ie.forwardRef(function(e,n){let{track:i,onClick:s,children:c,...t}=e,a=P("CaptionsMenuItem"),r=a.activeTextTrack===i,o=ie.useCallback(l=>{s?.(l),l.defaultPrevented||a.setTextTrack(i)},[s,a,i]);return He("button",{ref:n,type:"button",role:"menuitemradio","aria-checked":r,"data-active":r||void 0,...t,onClick:o,children:c})});var Oe=(r=>(r.open="data-open",r.closed="data-closed",r.idle="data-idle",r.playing="data-playing",r.paused="data-paused",r.ended="data-ended",r.startingStyle="data-starting-style",r.endingStyle="data-ending-style",r))(Oe||{});import*as se from"react";import*as _ from"react";function Xr(d){let e=[...d.getAnimations(),...Array.from(d.querySelectorAll("*")).flatMap(n=>n.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(n=>n.finished)).then(()=>{}).catch(()=>{})}function j(d){let{open:e,keepMounted:n=!1}=d,[i,s]=_.useState(e||n),[c,t]=_.useState(e?"starting":void 0),a=_.useRef(null),r=_.useRef(!1);return _.useEffect(()=>{if(e){r.current=!1,s(!0),t("starting");let o=requestAnimationFrame(()=>{requestAnimationFrame(()=>{t(void 0)})});return()=>cancelAnimationFrame(o)}},[e]),_.useEffect(()=>{if(!e&&i&&!r.current){t("ending");let o=a.current;if(!o){t(void 0),n||s(!1);return}r.current=!0;let l=requestAnimationFrame(()=>{requestAnimationFrame(()=>{Xr(o).then(()=>{r.current&&(r.current=!1,t(void 0),n||s(!1))})})});return()=>{cancelAnimationFrame(l)}}},[e,i,n]),_.useEffect(()=>{n&&!i&&!e&&s(!0)},[n,i,e]),{mounted:i||n,transitionStatus:c,elementRef:a}}import{jsx as Yr}from"react/jsx-runtime";var rr=se.forwardRef(function(e,n){let{idleTimeout:i,keepMounted:s=!1,render:c,children:t,...a}=e,r=P("Controls"),l=(i??r.idleTimeout)===0||!r.idle,{mounted:u,transitionStatus:f,elementRef:y}=j({open:l,keepMounted:s}),R=se.useCallback(V=>{y.current=V,typeof n=="function"?n(V):n&&(n.current=V)},[n,y]),{onClick:g,...m}=a,x=se.useCallback(V=>{V.stopPropagation(),g?.(V)},[g]),v={open:l,idle:r.idle,playing:r.playing,paused:r.paused,ended:r.ended},b={ref:R,onClick:x,"data-open":l||void 0,"data-closed":!l||void 0,"data-idle":r.idle||void 0,"data-playing":r.playing||void 0,"data-paused":r.paused||void 0,"data-ended":r.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return u?c?c(b,v):Yr("div",{...b,...m,children:t}):null});import*as G from"react";import{jsx as Gr}from"react/jsx-runtime";var nr=G.forwardRef(function(e,n){let{render:i,onClick:s,children:c,...t}=e,a=P("FullscreenButton"),[r,o]=G.useState(!1);G.useEffect(()=>{o("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let l=G.useCallback(y=>{s?.(y),y.defaultPrevented||a.toggleFullscreen()},[s,a]),u={fullscreen:a.fullscreen,supported:r},f={ref:n,type:"button","aria-label":a.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":a.fullscreen,disabled:!r,"data-fullscreen":a.fullscreen||void 0,"data-supported":r||void 0,onClick:l};return i?i(f,u):Gr("button",{...f,...t,children:c})});import*as Ae from"react";import{jsx as zr}from"react/jsx-runtime";var or=Ae.forwardRef(function(e,n){let{render:i,onClick:s,...c}=e,t=P("MuteButton"),a={muted:t.muted,volume:t.volume},r=Ae.useCallback(m=>{s?.(m),m.defaultPrevented||t.toggleMute()},[s,t]),o=t.volume,l=t.muted,u=o===0||l,f=o>0&&!l,y=!l&&o>0&&o<.5,R=!l&&o>=.5,g={ref:n,type:"button","aria-label":t.muted?"Unmute":"Mute","aria-pressed":t.muted,"data-muted":l||void 0,"data-volume-off":u||void 0,"data-volume-on":f||void 0,"data-volume-low":y||void 0,"data-volume-high":R||void 0,onClick:r};return i?i(g,a):zr("button",{...g,...c})});var Fe=(u=>(u.open="data-open",u.closed="data-closed",u.playing="data-playing",u.paused="data-paused",u.ended="data-ended",u.waiting="data-waiting",u.seeking="data-seeking",u.fullscreen="data-fullscreen",u.pip="data-pip",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(Fe||{});import*as le from"react";import{jsx as Jr}from"react/jsx-runtime";var ar=le.forwardRef(function(e,n){let{idleTimeout:i,keepMounted:s=!1,render:c,onClick:t,children:a,...r}=e,o=P("Overlay"),u=(i??o.idleTimeout)===0||!o.idle,{mounted:f,transitionStatus:y,elementRef:R}=j({open:u,keepMounted:s}),g=le.useCallback(b=>{R.current=b,typeof n=="function"?n(b):n&&(n.current=b)},[n,R]),m=le.useCallback(b=>{t?.(b),b.defaultPrevented||o.toggle()},[t,o]),x={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting,seeking:o.seeking,fullscreen:o.fullscreen,pictureInPicture:o.pictureInPicture,open:u},v={ref:g,onClick:m,"data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,"data-seeking":o.seeking||void 0,"data-fullscreen":o.fullscreen||void 0,"data-pip":o.pictureInPicture||void 0,"data-open":u||void 0,"data-closed":!u||void 0,"data-starting-style":y==="starting"||void 0,"data-ending-style":y==="ending"||void 0};return f?c?c(v,x):Jr("div",{...v,...r,children:a}):null});import*as z from"react";import{jsx as Zr}from"react/jsx-runtime";var ir=z.forwardRef(function(e,n){let{render:i,onClick:s,...c}=e,t=P("PictureInPictureButton"),[a,r]=z.useState(!1);z.useEffect(()=>{r("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let o={pictureInPicture:t.pictureInPicture,supported:a},l=z.useCallback(f=>{s?.(f),f.defaultPrevented||t.togglePictureInPicture()},[s,t]),u={ref:n,type:"button","aria-label":t.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":t.pictureInPicture,disabled:!a,"data-pip":t.pictureInPicture||void 0,"data-supported":a||void 0,onClick:l};return i?i(u,o):Zr("button",{...u,...c})});import*as We from"react";import{jsx as en}from"react/jsx-runtime";var sr=We.forwardRef(function(e,n){let{render:i,onClick:s,children:c,...t}=e,a=P("PlayButton"),r=We.useCallback(u=>{s?.(u),u.defaultPrevented||a.toggle()},[s,a]),o={playing:a.playing,paused:a.paused,ended:a.ended,waiting:a.waiting},l={ref:n,type:"button","aria-label":a.playing?"Pause":"Play","data-playing":a.playing||void 0,"data-paused":a.paused||void 0,"data-ended":a.ended||void 0,"data-waiting":a.waiting||void 0,onClick:r};return i?i(l,o):en("button",{...l,...t,children:c})});import*as Qe from"react";import{jsx as rn}from"react/jsx-runtime";var tn=[.25,.5,.75,1,1.25,1.5,1.75,2],lr=Qe.forwardRef(function(e,n){let{rates:i=tn,render:s,onClick:c,children:t,...a}=e,r=P("PlaybackRateButton"),o={playbackRate:r.playbackRate,rates:i},l=Qe.useCallback(f=>{if(c?.(f),!f.defaultPrevented){let R=(i.indexOf(r.playbackRate)+1)%i.length,g=i[R]??i[0]??r.playbackRate;r.setPlaybackRate(g)}},[c,r,i]),u={ref:n,type:"button","aria-label":`Playback speed: ${r.playbackRate}x`,"data-rate":r.playbackRate,onClick:l};return s?s(u,o):rn("button",{...u,...a,children:t??`${r.playbackRate}x`})});import*as ue from"react";import{jsx as it}from"react/jsx-runtime";var nn=[.25,.5,.75,1,1.25,1.5,1.75,2],ur=ue.forwardRef(function(e,n){let{rates:i=nn,render:s,children:c,...t}=e,a=P("PlaybackRateMenu"),r={playbackRate:a.playbackRate,rates:i},o={ref:n,role:"menu","aria-label":"Playback speed","data-rate":a.playbackRate};return s?s(o,r):it("div",{...o,...t,children:c??i.map(l=>it(st,{rate:l},l))})}),st=ue.forwardRef(function(e,n){let{rate:i,onClick:s,children:c,...t}=e,a=P("PlaybackRateMenuItem"),r=a.playbackRate===i,o=ue.useCallback(l=>{s?.(l),l.defaultPrevented||a.setPlaybackRate(i)},[s,a,i]);return it("button",{ref:n,type:"button",role:"menuitemradio","aria-checked":r,"data-active":r||void 0,...t,onClick:o,children:c??`${i}x`})});import*as $e from"react";import{createPortal as on}from"react-dom";function cr(d){let{children:e,container:n}=d,[i,s]=$e.useState(!1);if($e.useEffect(()=>(s(!0),()=>s(!1)),[]),!i)return null;let c=n??(typeof document<"u"?document.body:null);return c?on(e,c):null}import*as Ne from"react";import{jsx as sn}from"react/jsx-runtime";var dr=Ne.forwardRef(function(e,n){let{keepMounted:i=!1,render:s,children:c,...t}=e,a=P("Poster"),r=!a.canPlay,o=a.canPlay,{mounted:l,transitionStatus:u,elementRef:f}=j({open:r,keepMounted:i}),y=an(n,f),R={loading:r,loaded:o,transitionStatus:u},g={ref:y,"aria-hidden":!0,"data-loading":r||void 0,"data-loaded":o||void 0,"data-starting-style":u==="starting"||void 0,"data-ending-style":u==="ending"||void 0};return l?s?s(g,R):sn("div",{...g,...t,children:c}):null});function an(...d){return Ne.useCallback(e=>{for(let n of d)typeof n=="function"?n(e):n!=null&&(n.current=e)},d)}import*as ce from"react";import{jsx as lt}from"react/jsx-runtime";var pr=ce.forwardRef(function(e,n){let{render:i,children:s,...c}=e,t=P("QualityMenu"),a={qualities:t.qualities,activeQuality:t.activeQuality},r={ref:n,role:"menu","aria-label":"Video quality","data-quality":t.activeQuality?.label??void 0};return i?i(r,a):lt("div",{...r,...c,children:s??t.qualities.map(o=>lt(ut,{quality:o,children:o.label},o.label))})}),ut=ce.forwardRef(function(e,n){let{quality:i,onClick:s,children:c,...t}=e,a=P("QualityMenuItem"),r=a.activeQuality?.label===i.label,o=ce.useCallback(l=>{s?.(l),l.defaultPrevented||a.setQuality(i)},[s,a,i]);return lt("button",{ref:n,type:"button",role:"menuitemradio","aria-checked":r,"data-active":r||void 0,...t,onClick:o,children:c})});var _e=(o=>(o.playing="data-playing",o.paused="data-paused",o.ended="data-ended",o.waiting="data-waiting",o.seeking="data-seeking",o.fullscreen="data-fullscreen",o.pip="data-pip",o.muted="data-muted",o.idle="data-idle",o))(_e||{});import*as p from"react";import*as je from"react";function fr(d,e){let n=ne(),i=je.useRef(n);i.current=n,je.useEffect(()=>{if(e==="none")return;let s=t=>{let a=t.target;if(a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable)return;let r=i.current;switch(t.key){case" ":t.preventDefault(),r.toggle();break;case"f":case"F":t.preventDefault(),r.toggleFullscreen();break;case"ArrowUp":t.preventDefault(),r.setVolume(Math.min(r.volume+.1,1));break;case"ArrowDown":t.preventDefault(),r.setVolume(Math.max(r.volume-.1,0));break;case"ArrowRight":t.preventDefault(),r.seek(Math.min(r.currentTime+5,r.duration));break;case"ArrowLeft":t.preventDefault(),r.seek(Math.max(r.currentTime-5,0));break;default:return}r.resetIdle()};if(e==="global")return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s);let c=d.current;if(c)return c.addEventListener("keydown",s),()=>c.removeEventListener("keydown",s)},[e,d])}import{jsx as qe,jsxs as dn}from"react/jsx-runtime";function Ue(d,e,n){let[i,s]=p.useState(e),c=d!==void 0,t=c?d:i,a=p.useCallback(r=>{let o=typeof r=="function"?r(t):r;c||s(o),n?.(o)},[c,t,n]);return[t,a]}function ln({rootRef:d,videoRef:e,actionsRef:n,defaultPlaying:i=!1,defaultVolume:s=1,defaultMuted:c=!1,defaultPlaybackRate:t=1,playing:a,onPlayingChange:r,volume:o,onVolumeChange:l,muted:u,onMutedChange:f,playbackRate:y,onPlaybackRateChange:R,currentTime:g,onCurrentTimeChange:m,idleTimeout:x=3e3,preventIdleWhenPaused:v=!1,idle:b,onIdleChange:V,onEnded:C,onWaiting:B,onSeeking:D,onSeeked:q,onFullscreenChange:K,onPictureInPictureChange:T,children:W}){let O=p.useRef(1),[E,H]=p.useState("paused"),[Y,$]=p.useState(i?"play":"pause");p.useEffect(()=>{a!==void 0&&($(a?"play":"pause"),E!=="waiting"&&H(a?"playing":"paused"))},[a,E]);let[h,A]=Ue(o,s,l),[X,ae]=Ue(u,c,f),[fe,pt]=Ue(y,t,R),[Dr,Z]=Ue(b,!0,V),ee=p.useRef(null),me=p.useCallback(()=>{ee.current&&(clearTimeout(ee.current),ee.current=null)},[]),ft=p.useCallback(()=>{x!==0&&(me(),ee.current=setTimeout(()=>{Z(!0)},x))},[x,me,Z]),mt=p.useCallback(()=>{Z(!1),ft()},[Z,ft]),Pt=p.useCallback(()=>{me(),Z(!0)},[me,Z]);p.useEffect(()=>(x>0&&(ee.current=setTimeout(()=>{Z(!0)},x)),()=>{ee.current&&clearTimeout(ee.current)}),[]);let Rt=v&&E!=="playing"?!1:Dr,[yt,St]=p.useState(0),[Pe,bt]=p.useState(0),[kt,Or]=p.useState(null),[Re,Ar]=p.useState(null),[gt,Fr]=p.useState(!1),[vt,Tt]=p.useState(!1),[ye,Wr]=p.useState(!1),[Se,xt]=p.useState(!1),[ht,ot]=p.useState([]),[te,Qr]=p.useState(null),[Ct,be]=p.useState([]),[Mt,hn]=p.useState([]),[Et,$r]=p.useState(null);p.useEffect(()=>{g!==void 0&&e.current&&(e.current.currentTime=g)},[g,e]),p.useEffect(()=>{let k=()=>{let M=document.fullscreenElement===d.current;Wr(M),K?.(M)};return document.addEventListener("fullscreenchange",k),()=>document.removeEventListener("fullscreenchange",k)},[K,d]),p.useEffect(()=>{let k=e.current;if(!k)return;let M=()=>{xt(!0),T?.(!0)},F=()=>{xt(!1),T?.(!1)};return k.addEventListener("enterpictureinpicture",M),k.addEventListener("leavepictureinpicture",F),()=>{k.removeEventListener("enterpictureinpicture",M),k.removeEventListener("leavepictureinpicture",F)}},[T,e]);let ke=p.useCallback(async()=>{e.current&&($("play"),await e.current.play(),H("playing"),r?.(!0))},[e,r]),ge=p.useCallback(()=>{e.current&&($("pause"),e.current.pause(),H("paused"),r?.(!1))},[e,r]),ve=p.useCallback(async()=>{E==="playing"?ge():await ke()},[E,ke,ge]),Te=p.useCallback(k=>{e.current&&(e.current.currentTime=k,St(k),m?.(k))},[m,e]),xe=p.useCallback(k=>{let M=Math.max(0,Math.min(1,k));e.current&&(e.current.volume=M),A(M)},[A,e]),Vt=p.useCallback(()=>{if(!(X||h===0))O.current=h,e.current&&(e.current.muted=!0),ae(!0);else{let M=O.current>0?O.current:1;e.current&&(e.current.volume=M,e.current.muted=!1),A(M),ae(!1)}},[X,h,ae,A,e]),he=p.useCallback(async()=>{d.current?.requestFullscreen&&await d.current.requestFullscreen()},[d]),Ce=p.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Me=p.useCallback(async()=>{ye?await Ce():await he()},[ye,he,Ce]),Ee=p.useCallback(async()=>{e.current?.requestPictureInPicture&&await e.current.requestPictureInPicture()},[e]),Ve=p.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Bt=p.useCallback(async()=>{Se?await Ve():await Ee()},[Se,Ee,Ve]),wt=p.useCallback(k=>{e.current&&(e.current.playbackRate=k),pt(k)},[pt,e]),Lt=p.useCallback(k=>{if(e.current){for(let M=0;M<e.current.textTracks.length;M++){let F=e.current.textTracks[M];F&&(F.mode="disabled")}k&&(k.mode="hidden")}Qr(k),be([])},[e]),It=p.useCallback(k=>{$r(k)},[]),Ht=p.useCallback(k=>{ot(M=>M.some(F=>F.id===k.id)?M:[...M,k])},[]),Dt=p.useCallback(k=>{ot(M=>M.filter(F=>F.id!==k))},[]),Ot=p.useCallback((k,M)=>{ot(F=>F.map(re=>re.id===k?{...re,textTrack:M}:re))},[]);p.useEffect(()=>{if(!te){be([]);return}let k=()=>{let M=te.activeCues;if(!M){be([]);return}let F=[];for(let re=0;re<M.length;re++){let Yt=M[re];Yt instanceof VTTCue&&F.push(Yt)}be(F)};return k(),te.addEventListener("cuechange",k),()=>{te.removeEventListener("cuechange",k)}},[te]),p.useImperativeHandle(n,()=>({toggle:ve,seek:Te,setVolume:xe,toggleFullscreen:Me}),[ve,Te,xe,Me]);let At=p.useCallback(()=>{if(e.current){let k=e.current.currentTime;St(k),m?.(k)}},[m,e]),Ft=p.useCallback(()=>{e.current&&bt(e.current.duration)},[e]),Wt=p.useCallback(()=>{e.current&&Or(e.current.buffered)},[e]),Qt=p.useCallback(()=>{$("play"),H("playing"),r?.(!0)},[r]),$t=p.useCallback(()=>{E!=="ended"&&(H("paused"),r?.(!1))},[E,r]),Nt=p.useCallback(()=>{$("pause"),H("ended"),r?.(!1),C?.()},[r,C]),_t=p.useCallback(()=>{H("waiting"),B?.()},[B]),jt=p.useCallback(()=>{if(E==="waiting"){let k=Y==="play"?"playing":"paused";H(k),r?.(k==="playing")}Fr(!0)},[E,Y,r]),Ut=p.useCallback(()=>{Tt(!0),E==="ended"&&H("paused"),D?.()},[E,D]),qt=p.useCallback(()=>{if(Tt(!1),e.current){let{currentTime:k,duration:M}=e.current;M>0&&M-k<.01&&H("ended")}q?.()},[q,e]),Kt=p.useCallback(()=>{e.current&&(A(e.current.volume),ae(e.current.muted))},[A,ae,e]),Xt=p.useCallback(()=>{e.current&&bt(e.current.duration)},[e]),Nr=p.useMemo(()=>({playbackStatus:E,playbackIntent:Y,playing:E==="playing",paused:E==="paused",ended:E==="ended",waiting:E==="waiting",seeking:vt,canPlay:gt,currentTime:yt,duration:Pe,buffered:kt,hoverTime:Re,hoverProgress:Re!==null&&Pe>0?Re/Pe*100:null,volume:h,muted:X,fullscreen:ye,pictureInPicture:Se,idle:Rt,idleTimeout:x,preventIdleWhenPaused:v,registeredTracks:ht,activeTextTrack:te,activeCues:Ct,playbackRate:fe,qualities:Mt,activeQuality:Et,videoRef:e,rootRef:d,play:ke,pause:ge,toggle:ve,seek:Te,setVolume:xe,toggleMute:Vt,enterFullscreen:he,exitFullscreen:Ce,toggleFullscreen:Me,enterPictureInPicture:Ee,exitPictureInPicture:Ve,togglePictureInPicture:Bt,setPlaybackRate:wt,setTextTrack:Lt,setQuality:It,registerTrack:Ht,unregisterTrack:Dt,updateTrackRef:Ot,resetIdle:mt,setHoverTime:Ar,_handlers:{onTimeUpdate:At,onDurationChange:Ft,onProgress:Wt,onPlay:Qt,onPause:$t,onEnded:Nt,onWaiting:_t,onCanPlay:jt,onSeeking:Ut,onSeeked:qt,onVolumeChange:Kt,onLoadedMetadata:Xt,onRootMouseLeave:Pt}}),[E,Y,vt,gt,yt,Pe,kt,Re,h,X,ye,Se,Rt,x,v,ht,te,Ct,fe,Mt,Et,e,d,ke,ge,ve,Te,xe,Vt,he,Ce,Me,Ee,Ve,Bt,wt,Lt,It,Ht,Dt,Ot,mt,At,Ft,Wt,Qt,$t,Nt,_t,jt,Ut,qt,Kt,Xt,Pt]);return qe(at.Provider,{value:Nr,children:W})}var mr=p.forwardRef(function(e,n){let{actionsRef:i,keyboardShortcuts:s="focused",defaultPlaying:c,defaultVolume:t,defaultMuted:a,defaultPlaybackRate:r,playing:o,onPlayingChange:l,volume:u,onVolumeChange:f,muted:y,onMutedChange:R,playbackRate:g,onPlaybackRateChange:m,currentTime:x,onCurrentTimeChange:v,idleTimeout:b,preventIdleWhenPaused:V,hideCursorWhenIdle:C="fullscreen",idle:B,onIdleChange:D,onEnded:q,onWaiting:K,onSeeking:T,onSeeked:W,onFullscreenChange:O,onPictureInPictureChange:E,children:H,...Y}=e,$=p.useRef(null),h=p.useRef(null);return qe(ln,{actionsRef:i,defaultPlaying:c,defaultVolume:t,defaultMuted:a,defaultPlaybackRate:r,playing:o,onPlayingChange:l,volume:u,onVolumeChange:f,muted:y,onMutedChange:R,playbackRate:g,onPlaybackRateChange:m,currentTime:x,onCurrentTimeChange:v,idleTimeout:b,preventIdleWhenPaused:V,idle:B,onIdleChange:D,onEnded:q,onWaiting:K,onSeeking:T,onSeeked:W,onFullscreenChange:O,onPictureInPictureChange:E,rootRef:$,videoRef:h,children:qe(un,{ref:n,rootRef:$,keyboardShortcuts:s,hideCursorWhenIdle:C,...Y,children:H})})}),un=p.forwardRef(function({rootRef:e,keyboardShortcuts:n,hideCursorWhenIdle:i,children:s,className:c,style:t,...a},r){let o=ne(),l=cn(r,e),u=p.useRef(null);fr(e,n);let f=p.useCallback(b=>{let{clientX:V,clientY:C}=b,B=u.current;B&&B.x===V&&B.y===C||(u.current={x:V,y:C},o.resetIdle())},[o]),y=p.useCallback(b=>{let{clientX:V,clientY:C}=b,B=u.current;B&&B.x===V&&B.y===C||(u.current={x:V,y:C},o.resetIdle())},[o]),R=p.useCallback(()=>{o._handlers.onRootMouseLeave()},[o._handlers]),g=p.useCallback(()=>{o.resetIdle()},[o]),m={"data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,"data-seeking":o.seeking||void 0,"data-fullscreen":o.fullscreen||void 0,"data-pip":o.pictureInPicture||void 0,"data-muted":o.muted||void 0,"data-idle":o.idle||void 0},x=i!==!1&&o.idle&&(i==="always"||i==="fullscreen"&&o.fullscreen),v=p.useId();return dn("div",{ref:l,tabIndex:n==="focused"?0:void 0,className:c,style:t,"data-video-player-scope":v,...m,...a,onMouseMove:f,onMouseEnter:y,onMouseLeave:R,onClick:g,children:[x&&qe("style",{children:`[data-video-player-scope="${v}"], [data-video-player-scope="${v}"] * { cursor: none !important; }`}),s]})});function cn(...d){return p.useCallback(e=>{for(let n of d)typeof n=="function"?n(e):n!=null&&(n.current=e)},d)}var Ke=(t=>(t.progress="--seek-progress",t.buffered="--seek-buffered",t.currentTime="--seek-current-time",t.duration="--seek-duration",t.hoverProgress="--seek-hover-progress",t.hoverTime="--seek-hover-time",t))(Ke||{});var Xe=(s=>(s.seeking="data-seeking",s.hovering="data-hovering",s.pressing="data-pressing",s.dragging="data-dragging",s))(Xe||{});import{Slider as Q}from"@base-ui/react/slider";import{autoUpdate as pn,offset as fn,shift as mn,useFloating as Pn}from"@floating-ui/react";import*as S from"react";import*as Pr from"react-dom";var Ye=(s=>(s.open="data-open",s.closed="data-closed",s.startingStyle="data-starting-style",s.endingStyle="data-ending-style",s))(Ye||{});import{jsx as w,jsxs as Rn}from"react/jsx-runtime";var ct=S.createContext(null);function Rr(d){let e=S.useContext(ct);if(!e)throw new Error(`${d} must be used within SeekSlider`);return e}var yr=S.forwardRef(function(e,n){let{render:i,children:s,onPointerMove:c,onPointerLeave:t,onPointerDown:a,onValueCommitted:r,...o}=e,l=P("SeekSlider"),u=S.useRef(null),[f,y]=S.useState(null),[R,g]=S.useState(!1),[m,x]=S.useState(!1),v=S.useRef(!1);S.useEffect(()=>{if(!R)return;let h=()=>{g(!1),x(!1),v.current=!1};return window.addEventListener("pointerup",h),()=>window.removeEventListener("pointerup",h)},[R]);let b=l.duration>0?l.currentTime/l.duration*100:0,V=S.useCallback(h=>{let A=typeof h=="number"?h:h[0];A!==void 0&&(l.seek(A),l.resetIdle(),v.current&&x(!0))},[l]),C=S.useCallback(h=>{if(c?.(h),!u.current||l.duration===0)return;let A=u.current.getBoundingClientRect(),X=h.clientX-A.left,fe=Math.max(0,Math.min(1,X/A.width))*l.duration;l.setHoverTime(fe)},[c,l]),B=S.useCallback(h=>{t?.(h),l.setHoverTime(null)},[t,l]),D=S.useCallback(h=>{a?.(h),g(!0),v.current=!0},[a]),q=S.useCallback((h,A)=>{let X=typeof h=="number"?h:h[0];X!==void 0&&(r?.(X,A),g(!1),x(!1),v.current=!1)},[r]),K=S.useMemo(()=>{if(!l.buffered||l.buffered.length===0)return 0;for(let h=0;h<l.buffered.length;h++)if(l.buffered.start(h)<=l.currentTime&&l.currentTime<=l.buffered.end(h))return l.buffered.end(h);return l.buffered.end(0)},[l.buffered,l.currentTime]),T=l.duration>0?K/l.duration*100:0;S.useLayoutEffect(()=>{typeof n=="function"?n(u.current):n&&(n.current=u.current)});let W={currentTime:l.currentTime,duration:l.duration,progress:b,seeking:l.seeking,pressing:R,dragging:m,hoverTime:l.hoverTime,hoverProgress:l.hoverProgress},O=l.hoverProgress!==null,E=l.hoverProgress??0,H=S.useMemo(()=>({sliderRef:u,previewThumbElement:f,setPreviewThumbElement:y,hoverProgress:E,open:O}),[u,f,y,E,O]),Y={position:"relative","--seek-progress":`${b}%`,"--seek-buffered":`${T}%`,"--seek-current-time":l.currentTime,"--seek-duration":l.duration,"--seek-hover-progress":l.hoverProgress!==null?`${l.hoverProgress}%`:void 0,"--seek-hover-time":l.hoverTime??void 0,...o.style},$={"data-seeking":l.seeking||void 0,"data-hovering":l.hoverTime!==null||void 0,"data-pressing":R||void 0,"data-dragging":m||void 0,style:Y};return i?w(ct.Provider,{value:H,children:w(Q.Root,{ref:u,min:0,max:l.duration||100,step:.1,value:l.currentTime,onValueChange:V,onValueCommitted:q,onPointerMove:C,onPointerLeave:B,onPointerDown:D,"aria-label":"Seek",render:h=>i({...h,...$,style:{...h.style,...$.style}},W)})}):w(ct.Provider,{value:H,children:w(Q.Root,{ref:u,min:0,max:l.duration||100,step:.1,value:l.currentTime,onValueChange:V,onValueCommitted:q,onPointerMove:C,onPointerLeave:B,onPointerDown:D,"aria-label":"Seek",...$,...o,children:s??w(Q.Control,{children:Rn(Q.Track,{style:{position:"relative"},children:[w("div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${T}%`}}),w(Q.Indicator,{}),w(Q.Thumb,{})]})})})})}),Sr=Q.Control,br=S.forwardRef(function(e,n){let{render:i,children:s,style:c,...t}=e,a={},r={position:"relative",...c},o={ref:n,style:r};return i?w(Q.Track,{render:l=>i({...l,...o},a)}):w(Q.Track,{ref:n,style:r,...t,children:s})}),kr=S.forwardRef(function(e,n){let{render:i,children:s,style:c,...t}=e,a=P("SeekSliderProgress"),o={progress:a.duration>0?a.currentTime/a.duration*100:0},l={height:"100%",...c},u={ref:n,style:l};return i?w(Q.Indicator,{render:f=>i({...f,...u,style:{...f.style,...l}},o)}):w(Q.Indicator,{ref:n,style:l,...t,children:s})}),gr=S.forwardRef(function(e,n){let{render:i,children:s,style:c,...t}=e,a={},r={ref:n,style:c??{}};return i?w(Q.Thumb,{render:o=>i({...o,...r,style:{...o.style,...c}},a)}):w(Q.Thumb,{ref:n,style:c,...t,children:s})}),vr=S.forwardRef(function(e,n){let{render:i,children:s,...c}=e,t=P("SeekSliderBuffered"),a=S.useMemo(()=>{if(!t.buffered||t.buffered.length===0)return 0;for(let f=0;f<t.buffered.length;f++)if(t.buffered.start(f)<=t.currentTime&&t.currentTime<=t.buffered.end(f))return t.buffered.end(f);return t.buffered.end(0)},[t.buffered,t.currentTime]),r=t.duration>0?a/t.duration*100:0,o={bufferedPercentage:r},l={position:"absolute",left:0,top:0,height:"100%",width:`${r}%`,...c.style},u={ref:n,style:l};return i?i(u,o):w("div",{...u,...c,children:s})}),Tr=S.forwardRef(function(e,n){let{keepMounted:i=!1,render:s,children:c,...t}=e,a=P("SeekSliderPreviewThumb"),r=Rr("SeekSliderPreviewThumb"),o=a.hoverProgress!==null,l=S.useRef(0);a.hoverProgress!==null&&(l.current=a.hoverProgress);let u=a.hoverProgress??l.current,{mounted:f,transitionStatus:y,elementRef:R}=j({open:o,keepMounted:i}),g=S.useCallback(b=>{R.current=b,r.setPreviewThumbElement(b),typeof n=="function"?n(b):n&&(n.current=b)},[n,R,r]),m={open:o,transitionStatus:y,hoverProgress:u},x={position:"absolute",left:`${u}%`,transform:"translateX(-50%)",pointerEvents:"none",...t.style},v={ref:g,style:x,"data-open":o||void 0,"data-closed":!o||void 0,"data-starting-style":y==="starting"||void 0,"data-ending-style":y==="ending"||void 0};return f?s?s(v,m):w("span",{...v,...t,children:c}):null}),xr=S.forwardRef(function(e,n){let{render:i,children:s,style:c,...t}=e,a=P("SeekSliderHover"),r=a.hoverProgress!==null,o=a.hoverProgress??0,l={hovering:r,hoverProgress:a.hoverProgress,hoverTime:a.hoverTime},u={position:"absolute",left:0,top:0,height:"100%",width:`${o}%`,pointerEvents:"none",...c},f={ref:n,style:u,"data-hovering":r||void 0};return i?i(f,l):w("div",{...f,...t,children:s})});function Ge({children:d,container:e}){let n=P("SeekSliderPreviewTooltipPortal"),[i,s]=S.useState(!1);if(S.useEffect(()=>{s(!0)},[]),!i)return null;let c=e??n.rootRef.current??document.body;return Pr.createPortal(d,c)}var ze=S.forwardRef(function(e,n){let{sideOffset:i=8,collisionPadding:s=0,collisionBoundary:c,keepMounted:t=!1,children:a,style:r,...o}=e,l=Rr("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:u,open:f,hoverProgress:y}=l,[R,g]=S.useState(null),{refs:m,floatingStyles:x,update:v}=Pn({placement:"top",middleware:[fn(i),mn({boundary:c,padding:s})]});S.useLayoutEffect(()=>{u&&m.setReference(u)},[u,m]),S.useEffect(()=>{if(f&&u&&R)return pn(u,R,v)},[f,u,R,v]),S.useLayoutEffect(()=>{f&&u&&R&&v()},[y,f,u,R,v]);let b=S.useCallback(C=>{m.setFloating(C),g(C),typeof n=="function"?n(C):n&&(n.current=C)},[m,n]);return(t||f)&&!!u?w("div",{ref:b,style:{...x,...r},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...o,children:a}):null}),Je=S.forwardRef(function(e,n){let{children:i,...s}=e;return w("div",{ref:n,"data-seek-slider-preview-tooltip-popup":!0,...s,children:i})});function de({sideOffset:d,collisionPadding:e,collisionBoundary:n,keepMounted:i,container:s,children:c,...t}){return w(Ge,{container:s,children:w(ze,{sideOffset:d,collisionPadding:e,collisionBoundary:n,keepMounted:i,children:w(Je,{...t,children:c})})})}de.Portal=Ge;de.Positioner=ze;de.Popup=Je;var Ze=(i=>(i.loading="data-loading",i.ready="data-ready",i.error="data-error",i))(Ze||{});import*as I from"react";import{jsx as yn}from"react/jsx-runtime";var hr=I.forwardRef(function(e,n){let{time:i,crossOrigin:s="anonymous",render:c,children:t,width:a,height:r,...o}=e,l=P("Thumbnail"),u=I.useRef(null),f=I.useRef(null),y=I.useRef(null),[R,g]=I.useState("idle"),[m,x]=I.useState({width:160,height:90}),v=i!==void 0?i:l.hoverTime,b=I.useMemo(()=>{let T=l.videoRef.current;return T?T.currentSrc||T.src:null},[l.videoRef]);I.useEffect(()=>{if(!b)return;let T=document.createElement("video");T.src=b,T.crossOrigin=s,T.preload="metadata",T.muted=!0,T.playsInline=!0;let W=()=>{x({width:T.videoWidth,height:T.videoHeight})},O=()=>{g("error")};return T.addEventListener("loadedmetadata",W),T.addEventListener("error",O),f.current=T,()=>{T.removeEventListener("loadedmetadata",W),T.removeEventListener("error",O),T.src="",f.current=null}},[b,s]),I.useEffect(()=>{let T=f.current,W=u.current;if(!T||!W||v===null||v===void 0||y.current!==null&&Math.abs(y.current-v)<.1)return;g("loading");let O=()=>{let E=W.getContext("2d");if(E)try{E.drawImage(T,0,0,W.width,W.height),y.current=v,g("ready")}catch{g("error")}};return T.addEventListener("seeked",O,{once:!0}),T.currentTime=v,()=>{T.removeEventListener("seeked",O)}},[v]);let V=I.useCallback(T=>{u.current=T,typeof n=="function"?n(T):n&&(n.current=T)},[n]),C=m.width/m.height,B=a??160,D=r??Math.round(B/C);typeof B=="string"&&(B=160),typeof D=="string"&&(D=90);let q={loading:R==="loading",ready:R==="ready",error:R==="error",time:v,videoWidth:m.width,videoHeight:m.height},K={ref:V,width:B,height:D,"data-loading":R==="loading"||void 0,"data-ready":R==="ready"||void 0,"data-error":R==="error"||void 0};return c?c(K,q):yn("canvas",{...K,...o,children:t})});var et=(e=>(e.hovering="data-hovering",e))(et||{});import*as tt from"react";import{Fragment as kn,jsx as dt,jsxs as gn}from"react/jsx-runtime";var Cr=tt.forwardRef(function(e,n){let{format:i="current / duration",fixedWidth:s=!0,align:c="left",render:t,...a}=e,r=P("TimeDisplay"),o=tt.useRef(0);r.hoverTime!==null&&(o.current=r.hoverTime);let l=r.duration-r.currentTime,u=pe(r.currentTime),f=pe(r.duration),y=pe(l),R=r.hoverTime!==null?pe(r.hoverTime):pe(o.current),g={currentTime:r.currentTime,duration:r.duration,remaining:l,hoverTime:r.hoverTime,hovering:r.hoverTime!==null,formattedCurrent:u,formattedDuration:f,formattedRemaining:y,formattedHover:R},m=()=>{switch(i){case"current":return u;case"duration":return f;case"remaining":return`-${y}`;case"current / duration":return`${u} / ${f}`;case"current / remaining":return`${u} / -${y}`;case"hover":return R;default:return`${u} / ${f}`}},x=()=>{let b=bn(r.duration);switch(i){case"current":case"duration":case"hover":return b;case"remaining":return`-${b}`;case"current / duration":return`${b} / ${b}`;case"current / remaining":return`${b} / -${b}`;default:return`${b} / ${b}`}},v={ref:n,style:{position:s?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},"data-hovering":g.hovering||void 0};return t?t(v,g):dt("span",{ref:n,"data-hovering":g.hovering||void 0,...a,style:{position:s?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},children:s?gn(kn,{children:[dt("span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),dt("span",{style:Sn(c),children:m()})]}):m()})});function Sn(d){let e={position:"absolute"};switch(d){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function pe(d){if(!Number.isFinite(d)||Number.isNaN(d))return"0:00";let e=Math.floor(d/3600),n=Math.floor(d%3600/60),i=Math.floor(d%60);return e>0?`${e}:${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`:`${n}:${i.toString().padStart(2,"0")}`}function bn(d){if(!Number.isFinite(d)||Number.isNaN(d)||d<=0)return"0:00";let e=Math.floor(d/3600),n=Math.floor(d%3600/60);if(e>0){let s=String(e).length;return`${"0".repeat(s)}:00:00`}let i=String(n).length;return`${"0".repeat(i)}:00`}import*as N from"react";import{jsx as vn}from"react/jsx-runtime";var Mr=N.forwardRef(function(e,n){let{kind:i="captions",src:s,label:c,srcLang:t,default:a,...r}=e,{registerTrack:o,unregisterTrack:l,updateTrackRef:u,setTextTrack:f}=P("Track"),y=N.useRef(null),R=N.useId(),g=N.useCallback(m=>{typeof n=="function"?n(m):n&&(n.current=m),y.current=m},[n]);return N.useEffect(()=>(o({id:R,kind:i,label:c,srcLang:t,src:s,textTrack:null}),()=>{l(R)}),[R,i,c,t,s,o,l]),N.useEffect(()=>{let m=y.current;if(!m)return;let x=()=>{m.track&&(m.track.mode="disabled",u(R,m.track),a&&f(m.track))};return m.track&&x(),m.addEventListener("load",x),()=>{m.removeEventListener("load",x)}},[R,a,u,f]),vn("track",{ref:g,kind:i,src:s,label:c,srcLang:t,default:a,...r})});import*as oe from"react";import{jsx as Tn}from"react/jsx-runtime";var Er=oe.forwardRef(function(e,n){let{toggleOnClick:i=!0,onClick:s,...c}=e,t=P("Video"),a=oe.useRef(!1),r=oe.useCallback(u=>{typeof n=="function"?n(u):n&&(n.current=u),t.videoRef.current=u,u&&!a.current&&(a.current=!0,u.readyState>=1&&u.duration&&(t._handlers.onLoadedMetadata(),t._handlers.onDurationChange()),u.readyState>=3&&t._handlers.onCanPlay())},[n,t.videoRef,t._handlers]),o=oe.useCallback(u=>{s?.(u),!u.defaultPrevented&&i&&t.toggle()},[s,i,t]),l={"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-waiting":t.waiting||void 0,"data-seeking":t.seeking||void 0};return Tn("video",{ref:r,preload:"metadata",...l,...c,onClick:o,onTimeUpdate:t._handlers.onTimeUpdate,onDurationChange:t._handlers.onDurationChange,onProgress:t._handlers.onProgress,onPlay:t._handlers.onPlay,onPause:t._handlers.onPause,onEnded:t._handlers.onEnded,onWaiting:t._handlers.onWaiting,onCanPlay:t._handlers.onCanPlay,onSeeking:t._handlers.onSeeking,onSeeked:t._handlers.onSeeked,onVolumeChange:t._handlers.onVolumeChange,onLoadedMetadata:t._handlers.onLoadedMetadata})});var rt=(n=>(n.volume="--volume",n.volumePercentage="--volume-percentage",n))(rt||{});var nt=(s=>(s.muted="data-muted",s.volume="data-volume",s.pressing="data-pressing",s.dragging="data-dragging",s))(nt||{});import{Slider as U}from"@base-ui/react/slider";import*as L from"react";import{jsx as J,jsxs as xn}from"react/jsx-runtime";var Vr=L.forwardRef(function(e,n){let{render:i,children:s,onPointerDown:c,...t}=e,a=P("VolumeSlider"),r=L.useRef(null),[o,l]=L.useState(!1),[u,f]=L.useState(!1),y=L.useRef(!1);L.useEffect(()=>{if(!o)return;let C=()=>{l(!1),f(!1),y.current=!1};return window.addEventListener("pointerup",C),()=>window.removeEventListener("pointerup",C)},[o]),L.useLayoutEffect(()=>{typeof n=="function"?n(r.current):n&&(n.current=r.current)});let R=a.volume*100,g={volume:a.volume,muted:a.muted,percentage:R,pressing:o,dragging:u},m=L.useCallback(C=>{let B=typeof C=="number"?C:C[0];if(B!==void 0){if(a.muted){let D=a.videoRef.current;D&&(D.muted=!1)}a.setVolume(B),a.resetIdle(),y.current&&f(!0)}},[a]),x=L.useCallback(C=>{c?.(C),l(!0),y.current=!0},[c]),v={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":o||void 0,"data-dragging":u||void 0},b={position:"relative","--volume":a.volume,"--volume-percentage":`${R}%`,...t.style},V={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":o||void 0,"data-dragging":u||void 0,style:b};return i?J(U.Root,{ref:r,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:m,onPointerDown:x,"aria-label":"Volume",render:C=>i({...C,...V},g)}):J(U.Root,{ref:r,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:m,onPointerDown:x,"aria-label":"Volume",...v,...t,style:b,children:s??J(U.Control,{children:xn(U.Track,{children:[J(U.Indicator,{}),J(U.Thumb,{})]})})})}),Br=U.Control,wr=L.forwardRef(function(e,n){let{style:i,...s}=e,c={position:"relative",...i};return J(U.Track,{ref:n,style:c,...s})}),Lr=L.forwardRef(function(e,n){return J(U.Indicator,{ref:n,...e})}),Ir=L.forwardRef(function(e,n){return J(U.Thumb,{ref:n,...e})});export{Hr as VideoPlayer,ne as useVideoPlayer};
|
|
1
|
+
import{a as Zr}from"../chunk-4C666HHU.js";import*as Le from"react";var ot=Le.createContext(null);function P(c){let e=Le.useContext(ot);if(!e)throw new Error(`<VideoPlayer.${c}> must be used within <VideoPlayer.Root>`);return e}function ie(){return P("useVideoPlayer")}var _r={};Zr(_r,{BufferedIndicator:()=>rr,Captions:()=>ar,CaptionsButton:()=>sr,CaptionsDataAttributes:()=>Ie,CaptionsMenu:()=>lr,CaptionsMenuItem:()=>Oe,Controls:()=>ur,ControlsDataAttributes:()=>Ae,FullscreenButton:()=>cr,MuteButton:()=>pr,Overlay:()=>fr,OverlayDataAttributes:()=>We,PictureInPictureButton:()=>mr,PlayButton:()=>yr,PlaybackRateButton:()=>Sr,PlaybackRateMenu:()=>br,PlaybackRateMenuItem:()=>lt,Portal:()=>kr,Poster:()=>gr,QualityMenu:()=>vr,QualityMenuItem:()=>dt,Root:()=>hr,RootDataAttributes:()=>Ne,SeekSlider:()=>Er,SeekSliderBuffered:()=>Hr,SeekSliderControl:()=>Br,SeekSliderCssVars:()=>Ke,SeekSliderDataAttributes:()=>qe,SeekSliderHover:()=>Dr,SeekSliderPreviewThumb:()=>Ir,SeekSliderPreviewThumbDataAttributes:()=>Xe,SeekSliderPreviewTooltip:()=>fe,SeekSliderPreviewTooltipPopup:()=>ze,SeekSliderPreviewTooltipPortal:()=>Ye,SeekSliderPreviewTooltipPositioner:()=>Ge,SeekSliderProgress:()=>wr,SeekSliderThumb:()=>Lr,SeekSliderTrack:()=>Vr,Thumbnail:()=>Or,ThumbnailDataAttributes:()=>Je,TimeDisplay:()=>Ar,TimeDisplayDataAttributes:()=>Ze,Track:()=>Wr,Video:()=>Fr,VolumeSlider:()=>Qr,VolumeSliderControl:()=>$r,VolumeSliderCssVars:()=>tt,VolumeSliderDataAttributes:()=>rt,VolumeSliderRange:()=>jr,VolumeSliderThumb:()=>Ur,VolumeSliderTrack:()=>Nr,useTransitionStatus:()=>G,useVideoPlayer:()=>ie});import*as He from"react";import{jsx as en}from"react/jsx-runtime";var rr=He.forwardRef(function(e,t){let{render:s,...u}=e,n=P("BufferedIndicator"),o=He.useMemo(()=>{if(!n.buffered||n.buffered.length===0)return 0;for(let i=0;i<n.buffered.length;i++)if(n.buffered.start(i)<=n.currentTime&&n.currentTime<=n.buffered.end(i))return n.buffered.end(i);return n.buffered.end(0)},[n.buffered,n.currentTime]),a=n.duration>0?o/n.duration*100:0,r={buffered:n.buffered,duration:n.duration,bufferedPercentage:a,bufferedEnd:o},l={"--buffered-percentage":`${a}%`,"--buffered-end":o,...u.style},p={ref:t,style:l,"aria-hidden":!0};return s?s(p,r):en("div",{ref:t,"aria-hidden":"true",...u,style:l})});var Ie=(e=>(e.active="data-active",e))(Ie||{});import*as or from"react";import{jsx as nr}from"react/jsx-runtime";var ar=or.forwardRef(function(e,t){let{render:s,children:u,...n}=e,a=P("Captions").activeCues,r=a.map(f=>f.text).join(`
|
|
2
|
+
`),l=a.length>0,p={active:l,cueText:r,cues:a},i={ref:t,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":l||void 0};return s?s(i,p):u?nr("div",{...i,...n,children:u}):nr("div",{...i,...n,children:r})});import*as ir from"react";import{makeEventPreventable as tn,mergeProps as rn}from"@base-ui/react/merge-props";function E(c,e){return rn(c,nn(e))}function nn(c){let e={...c};for(let t in e){let s=e[t];on(t,s)&&(e[t]=(u,...n)=>(tn(u),s(u,...n)))}return e}function on(c,e){return c.charCodeAt(0)===111&&c.charCodeAt(1)===110&&c.charCodeAt(2)>=65&&c.charCodeAt(2)<=90&&typeof e=="function"}import{jsx as an}from"react/jsx-runtime";var sr=ir.forwardRef(function(e,t){let{render:s,...u}=e,n=P("CaptionsButton"),o=n.registeredTracks.length>0,a=n.activeTextTrack!==null,r={active:a,available:o,trackCount:n.registeredTracks.length},l=E({ref:t,type:"button","aria-label":a?"Disable captions":"Enable captions","aria-pressed":a,disabled:!o,"data-active":a||void 0,"data-available":o||void 0,onClick(){if(a)n.setTextTrack(null);else if(n.registeredTracks.length>0){let p=n.registeredTracks[0];p?.textTrack&&n.setTextTrack(p.textTrack)}}},u);return s?s(l,r):an("button",{...l,...u})});import*as at from"react";import{Fragment as sn,jsx as De,jsxs as ln}from"react/jsx-runtime";var lr=at.forwardRef(function(e,t){let{render:s,children:u,...n}=e,o=P("CaptionsMenu"),a={registeredTracks:o.registeredTracks,activeTextTrack:o.activeTextTrack},r={ref:t,role:"menu","aria-label":"Captions","data-active":o.activeTextTrack!==null||void 0};return s?s(r,a):De("div",{...r,...n,children:u??ln(sn,{children:[De(Oe,{track:null,children:"Off"}),o.registeredTracks.map(l=>De(Oe,{track:l.textTrack,children:l.label},l.id))]})})}),Oe=at.forwardRef(function(e,t){let{track:s,children:u,...n}=e,o=P("CaptionsMenuItem"),a=o.activeTextTrack===s,r=E({ref:t,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setTextTrack(s)}},n);return De("button",{...r,children:u})});var Ae=(r=>(r.open="data-open",r.closed="data-closed",r.idle="data-idle",r.playing="data-playing",r.paused="data-paused",r.ended="data-ended",r.startingStyle="data-starting-style",r.endingStyle="data-ending-style",r))(Ae||{});import*as pe from"react";import*as Y from"react";function un(c){let e=[...c.getAnimations(),...Array.from(c.querySelectorAll("*")).flatMap(t=>t.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(t=>t.finished)).then(()=>{}).catch(()=>{})}function G(c){let{open:e,keepMounted:t=!1}=c,[s,u]=Y.useState(e||t),[n,o]=Y.useState(e?"starting":void 0),a=Y.useRef(null),r=Y.useRef(!1);return Y.useEffect(()=>{if(e){r.current=!1,u(!0),o("starting");let l=requestAnimationFrame(()=>{requestAnimationFrame(()=>{o(void 0)})});return()=>cancelAnimationFrame(l)}},[e]),Y.useEffect(()=>{if(!e&&s&&!r.current){o("ending");let l=a.current;if(!l){o(void 0),t||u(!1);return}r.current=!0;let p=requestAnimationFrame(()=>{requestAnimationFrame(()=>{un(l).then(()=>{r.current&&(r.current=!1,o(void 0),t||u(!1))})})});return()=>{cancelAnimationFrame(p)}}},[e,s,t]),Y.useEffect(()=>{t&&!s&&!e&&u(!0)},[t,s,e]),{mounted:s||t,transitionStatus:n,elementRef:a}}import{jsx as cn}from"react/jsx-runtime";var ur=pe.forwardRef(function(e,t){let{idleTimeout:s,keepMounted:u=!1,render:n,children:o,...a}=e,r=P("Controls"),p=(s??r.idleTimeout)===0||!r.idle,{mounted:i,transitionStatus:f,elementRef:b}=G({open:p,keepMounted:u}),S=pe.useCallback(L=>{b.current=L,typeof t=="function"?t(L):t&&(t.current=L)},[t,b]),{onClick:T,...y}=a,x=pe.useCallback(L=>{L.stopPropagation(),T?.(L)},[T]),v={open:p,idle:r.idle,playing:r.playing,paused:r.paused,ended:r.ended},k={ref:S,onClick:x,"data-open":p||void 0,"data-closed":!p||void 0,"data-idle":r.idle||void 0,"data-playing":r.playing||void 0,"data-paused":r.paused||void 0,"data-ended":r.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return i?n?n(k,v):cn("div",{...k,...y,children:o}):null});import*as le from"react";import{jsx as dn}from"react/jsx-runtime";var cr=le.forwardRef(function(e,t){let{render:s,children:u,...n}=e,o=P("FullscreenButton"),[a,r]=le.useState(!1);le.useEffect(()=>{r("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let l={fullscreen:o.fullscreen,supported:a},p=E({ref:t,type:"button","aria-label":o.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":o.fullscreen,disabled:!a,"data-fullscreen":o.fullscreen||void 0,"data-supported":a||void 0,onClick(){o.toggleFullscreen()}},n);return s?s(p,l):dn("button",{...p,...n,children:u})});import*as dr from"react";import{jsx as pn}from"react/jsx-runtime";var pr=dr.forwardRef(function(e,t){let{render:s,...u}=e,n=P("MuteButton"),o={muted:n.muted,volume:n.volume},a=n.volume,r=n.muted,l=a===0||r,p=a>0&&!r,i=!r&&a>0&&a<.5,f=!r&&a>=.5,b=E({ref:t,type:"button","aria-label":n.muted?"Unmute":"Mute","aria-pressed":n.muted,"data-muted":r||void 0,"data-volume-off":l||void 0,"data-volume-on":p||void 0,"data-volume-low":i||void 0,"data-volume-high":f||void 0,onClick(){n.toggleMute()}},u);return s?s(b,o):pn("button",{...b,...u})});var We=(i=>(i.open="data-open",i.closed="data-closed",i.playing="data-playing",i.paused="data-paused",i.ended="data-ended",i.waiting="data-waiting",i.seeking="data-seeking",i.fullscreen="data-fullscreen",i.pip="data-pip",i.startingStyle="data-starting-style",i.endingStyle="data-ending-style",i))(We||{});import*as Fe from"react";import{jsx as fn}from"react/jsx-runtime";var fr=Fe.forwardRef(function(e,t){let{idleTimeout:s,keepMounted:u=!1,render:n,children:o,...a}=e,r=P("Overlay"),p=(s??r.idleTimeout)===0||!r.idle,{mounted:i,transitionStatus:f,elementRef:b}=G({open:p,keepMounted:u}),S=Fe.useCallback(x=>{b.current=x,typeof t=="function"?t(x):t&&(t.current=x)},[t,b]),T={playing:r.playing,paused:r.paused,ended:r.ended,waiting:r.waiting,seeking:r.seeking,fullscreen:r.fullscreen,pictureInPicture:r.pictureInPicture,open:p},y=E({ref:S,onClick(){r.toggle()},"data-playing":r.playing||void 0,"data-paused":r.paused||void 0,"data-ended":r.ended||void 0,"data-waiting":r.waiting||void 0,"data-seeking":r.seeking||void 0,"data-fullscreen":r.fullscreen||void 0,"data-pip":r.pictureInPicture||void 0,"data-open":p||void 0,"data-closed":!p||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0},a);return i?n?n(y,T):fn("div",{...y,...a,children:o}):null});import*as ue from"react";import{jsx as mn}from"react/jsx-runtime";var mr=ue.forwardRef(function(e,t){let{render:s,...u}=e,n=P("PictureInPictureButton"),[o,a]=ue.useState(!1);ue.useEffect(()=>{a("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let r={pictureInPicture:n.pictureInPicture,supported:o},l=E({ref:t,type:"button","aria-label":n.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":n.pictureInPicture,disabled:!o,"data-pip":n.pictureInPicture||void 0,"data-supported":o||void 0,onClick(){n.togglePictureInPicture()}},u);return s?s(l,r):mn("button",{...l,...u})});import*as Pr from"react";import{jsx as Pn}from"react/jsx-runtime";var yr=Pr.forwardRef(function(e,t){let{render:s,children:u,...n}=e,o=P("PlayButton"),a={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting},r=E({ref:t,type:"button","aria-label":o.playing?"Pause":"Play","data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,onClick(){o.toggle()}},n);return s?s(r,a):Pn("button",{...r,...n,children:u})});import*as Rr from"react";import{jsx as Rn}from"react/jsx-runtime";var yn=[.25,.5,.75,1,1.25,1.5,1.75,2],Sr=Rr.forwardRef(function(e,t){let{rates:s=yn,render:u,children:n,...o}=e,a=P("PlaybackRateButton"),r={playbackRate:a.playbackRate,rates:s},l=E({ref:t,type:"button","aria-label":`Playback speed: ${a.playbackRate}x`,"data-rate":a.playbackRate,onClick(){let p=s.indexOf(a.playbackRate),i=s[(p+1)%s.length]??s[0]??a.playbackRate;a.setPlaybackRate(i)}},o);return u?u(l,r):Rn("button",{...l,...o,children:n??`${a.playbackRate}x`})});import*as st from"react";import{jsx as it}from"react/jsx-runtime";var Sn=[.25,.5,.75,1,1.25,1.5,1.75,2],br=st.forwardRef(function(e,t){let{rates:s=Sn,render:u,children:n,...o}=e,a=P("PlaybackRateMenu"),r={playbackRate:a.playbackRate,rates:s},l={ref:t,role:"menu","aria-label":"Playback speed","data-rate":a.playbackRate};return u?u(l,r):it("div",{...l,...o,children:n??s.map(p=>it(lt,{rate:p},p))})}),lt=st.forwardRef(function(e,t){let{rate:s,children:u,...n}=e,o=P("PlaybackRateMenuItem"),a=o.playbackRate===s,r=E({ref:t,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setPlaybackRate(s)}},n);return it("button",{...r,children:u??`${s}x`})});import*as Qe from"react";import{createPortal as bn}from"react-dom";function kr(c){let{children:e,container:t}=c,[s,u]=Qe.useState(!1);if(Qe.useEffect(()=>(u(!0),()=>u(!1)),[]),!s)return null;let n=t??(typeof document<"u"?document.body:null);return n?bn(e,n):null}import*as $e from"react";import{jsx as gn}from"react/jsx-runtime";var gr=$e.forwardRef(function(e,t){let{keepMounted:s=!1,render:u,children:n,...o}=e,a=P("Poster"),r=!a.canPlay,l=a.canPlay,{mounted:p,transitionStatus:i,elementRef:f}=G({open:r,keepMounted:s}),b=kn(t,f),S={loading:r,loaded:l,transitionStatus:i},T={ref:b,"aria-hidden":!0,"data-loading":r||void 0,"data-loaded":l||void 0,"data-starting-style":i==="starting"||void 0,"data-ending-style":i==="ending"||void 0};return p?u?u(T,S):gn("div",{...T,...o,children:n}):null});function kn(...c){return $e.useCallback(e=>{for(let t of c)typeof t=="function"?t(e):t!=null&&(t.current=e)},c)}import*as ct from"react";import{jsx as ut}from"react/jsx-runtime";var vr=ct.forwardRef(function(e,t){let{render:s,children:u,...n}=e,o=P("QualityMenu"),a={qualities:o.qualities,activeQuality:o.activeQuality},r={ref:t,role:"menu","aria-label":"Video quality","data-quality":o.activeQuality?.label??void 0};return s?s(r,a):ut("div",{...r,...n,children:u??o.qualities.map(l=>ut(dt,{quality:l,children:l.label},l.label))})}),dt=ct.forwardRef(function(e,t){let{quality:s,children:u,...n}=e,o=P("QualityMenuItem"),a=o.activeQuality?.label===s.label,r=E({ref:t,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setQuality(s)}},n);return ut("button",{...r,children:u})});var Ne=(l=>(l.playing="data-playing",l.paused="data-paused",l.ended="data-ended",l.waiting="data-waiting",l.seeking="data-seeking",l.fullscreen="data-fullscreen",l.pip="data-pip",l.muted="data-muted",l.idle="data-idle",l))(Ne||{});import*as d from"react";import*as je from"react";function vn(c,e){return!(c instanceof HTMLElement)||c instanceof HTMLInputElement&&c.type==="range"&&e===" "?!1:c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable}function Tn(c){return c==="ArrowRight"||c==="ArrowLeft"}function Tr(c,e){let t=ie(),s=je.useRef(t);s.current=t,je.useEffect(()=>{if(e==="none")return;let u=a=>{if(vn(a.target,a.key))return;let r=s.current;switch(a.key){case" ":a.preventDefault(),r.toggle();break;case"f":case"F":a.preventDefault(),r.toggleFullscreen();break;case"ArrowUp":a.preventDefault(),r.setVolume(Math.min(r.volume+.1,1));break;case"ArrowDown":a.preventDefault(),r.setVolume(Math.max(r.volume-.1,0));break;case"ArrowRight":a.preventDefault(),r.beginSeekInteraction(),r.seek(Math.min(r.currentTime+5,r.duration));break;case"ArrowLeft":a.preventDefault(),r.beginSeekInteraction(),r.seek(Math.max(r.currentTime-5,0));break;default:return}r.resetIdle()},n=a=>{Tn(a.key)&&s.current.endSeekInteraction()};if(e==="global")return window.addEventListener("keydown",u),window.addEventListener("keyup",n),()=>{window.removeEventListener("keydown",u),window.removeEventListener("keyup",n)};let o=c.current;if(o)return o.addEventListener("keydown",u),o.addEventListener("keyup",n),()=>{o.removeEventListener("keydown",u),o.removeEventListener("keyup",n)}},[e,c])}import{jsx as _e,jsxs as Mn}from"react/jsx-runtime";function Ue(c,e,t){let[s,u]=d.useState(e),n=c!==void 0,o=n?c:s,a=d.useCallback(r=>{let l=typeof r=="function"?r(o):r;n||u(l),t?.(l)},[n,o,t]);return[o,a]}function hn({rootRef:c,videoRef:e,actionsRef:t,defaultPlaying:s=!1,autoPlay:u=!1,defaultVolume:n=1,defaultMuted:o=!1,defaultPlaybackRate:a=1,playing:r,onPlayingChange:l,volume:p,onVolumeChange:i,muted:f,onMutedChange:b,playbackRate:S,onPlaybackRateChange:T,currentTime:y,onCurrentTimeChange:x,idleTimeout:v=3e3,preventIdleWhenPaused:k=!1,idle:L,onIdleChange:M,onEnded:w,onWaiting:H,onSeeking:Q,onSeeked:D,onFullscreenChange:h,onPictureInPictureChange:$,children:U}){let q=d.useRef(1),_=d.useRef(!1),J=d.useRef(!1),Z=d.useRef(!1),[B,I]=d.useState("paused"),[g,W]=d.useState(s?"play":"pause");d.useEffect(()=>{r!==void 0&&(W(r?"play":"pause"),B!=="waiting"&&I(r?"playing":"paused"))},[r,B]);let[A,te]=Ue(p,n,i),[X,de]=Ue(f,o,b),[mt,Pt]=Ue(S,a,T),[Kr,re]=Ue(L,!0,M),ne=d.useRef(null),Pe=d.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),yt=d.useCallback(()=>{v!==0&&(Pe(),ne.current=setTimeout(()=>{re(!0)},v))},[v,Pe,re]),Rt=d.useCallback(()=>{re(!1),yt()},[re,yt]),St=d.useCallback(()=>{Pe(),re(!0)},[Pe,re]);d.useEffect(()=>(v>0&&(ne.current=setTimeout(()=>{re(!0)},v)),()=>{ne.current&&clearTimeout(ne.current)}),[]);let bt=k&&B!=="playing"?!1:Kr,ye=d.useCallback(async()=>{let m=e.current;if(!(!u||!m||Z.current)){Z.current=!0,W("play"),m.muted=X,m.volume=A;try{await m.play(),I("playing"),l?.(!0)}catch{W("pause"),I("paused")}}},[u,X,l,e,A]);d.useEffect(()=>{if(!u){Z.current=!1;return}ye()},[u,ye]);let[kt,gt]=d.useState(0),[Re,vt]=d.useState(0),[Tt,qr]=d.useState(null),[Se,Xr]=d.useState(null),[ht,xt]=d.useState(!1),[Ct,se]=d.useState(!1),[be,Yr]=d.useState(!1),[ke,Mt]=d.useState(!1),[Et,nt]=d.useState([]),[oe,Gr]=d.useState(null),[Bt,ge]=d.useState([]),[Vt,$n]=d.useState([]),[wt,zr]=d.useState(null);d.useEffect(()=>{y!==void 0&&e.current&&(e.current.currentTime=y)},[y,e]),d.useEffect(()=>{let m=e.current;m&&(m.muted=X,m.volume=A)},[X,e,A]),d.useEffect(()=>{let m=()=>{let C=document.fullscreenElement===c.current;Yr(C),h?.(C)};return document.addEventListener("fullscreenchange",m),()=>document.removeEventListener("fullscreenchange",m)},[h,c]),d.useEffect(()=>{let m=e.current;if(!m)return;let C=()=>{Mt(!0),$?.(!0)},N=()=>{Mt(!1),$?.(!1)};return m.addEventListener("enterpictureinpicture",C),m.addEventListener("leavepictureinpicture",N),()=>{m.removeEventListener("enterpictureinpicture",C),m.removeEventListener("leavepictureinpicture",N)}},[$,e]);let ve=d.useCallback(async()=>{e.current&&(W("play"),await e.current.play(),I("playing"),l?.(!0))},[e,l]),Te=d.useCallback(()=>{e.current&&(W("pause"),e.current.pause(),I("paused"),l?.(!1))},[e,l]),he=d.useCallback(async()=>{B==="playing"?Te():await ve()},[B,ve,Te]),xe=d.useCallback(m=>{e.current&&(e.current.currentTime=m,gt(m),x?.(m))},[x,e]),Lt=d.useCallback(()=>{let m=e.current;!m||_.current||(_.current=!0,J.current=g==="play",se(!0),J.current&&!m.paused&&m.pause())},[g,e]),Ht=d.useCallback(()=>{let m=e.current;if(!m||!_.current)return;let C=J.current&&g==="play";if(_.current=!1,J.current=!1,!C){se(!1);return}m.play().then(()=>{I("playing"),se(!1)}).catch(()=>{I("waiting"),se(!1)})},[g,e]),Ce=d.useCallback(m=>{let C=Math.max(0,Math.min(1,m));e.current&&(e.current.volume=C),te(C)},[te,e]),It=d.useCallback(()=>{if(!(X||A===0))q.current=A,e.current&&(e.current.muted=!0),de(!0);else{let C=q.current>0?q.current:1;e.current&&(e.current.volume=C,e.current.muted=!1),te(C),de(!1)}},[X,A,de,te,e]),Me=d.useCallback(async()=>{c.current?.requestFullscreen&&await c.current.requestFullscreen()},[c]),Ee=d.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Be=d.useCallback(async()=>{be?await Ee():await Me()},[be,Me,Ee]),Ve=d.useCallback(async()=>{e.current?.requestPictureInPicture&&await e.current.requestPictureInPicture()},[e]),we=d.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Dt=d.useCallback(async()=>{ke?await we():await Ve()},[ke,Ve,we]),Ot=d.useCallback(m=>{e.current&&(e.current.playbackRate=m),Pt(m)},[Pt,e]),At=d.useCallback(m=>{if(e.current){for(let C=0;C<e.current.textTracks.length;C++){let N=e.current.textTracks[C];N&&(N.mode="disabled")}m&&(m.mode="hidden")}Gr(m),ge([])},[e]),Wt=d.useCallback(m=>{zr(m)},[]),Ft=d.useCallback(m=>{nt(C=>C.some(N=>N.id===m.id)?C:[...C,m])},[]),Qt=d.useCallback(m=>{nt(C=>C.filter(N=>N.id!==m))},[]),$t=d.useCallback((m,C)=>{nt(N=>N.map(ae=>ae.id===m?{...ae,textTrack:C}:ae))},[]);d.useEffect(()=>{if(!oe){ge([]);return}let m=()=>{let C=oe.activeCues;if(!C){ge([]);return}let N=[];for(let ae=0;ae<C.length;ae++){let tr=C[ae];tr instanceof VTTCue&&N.push(tr)}ge(N)};return m(),oe.addEventListener("cuechange",m),()=>{oe.removeEventListener("cuechange",m)}},[oe]),d.useImperativeHandle(t,()=>({toggle:he,seek:xe,setVolume:Ce,toggleFullscreen:Be}),[he,xe,Ce,Be]);let Nt=d.useCallback(()=>{if(e.current){let m=e.current.currentTime;gt(m),x?.(m)}},[x,e]),jt=d.useCallback(()=>{e.current&&vt(e.current.duration)},[e]),Ut=d.useCallback(()=>{e.current&&qr(e.current.buffered)},[e]),_t=d.useCallback(()=>{W("play"),I("playing"),l?.(!0)},[l]),Kt=d.useCallback(()=>{_.current||B!=="ended"&&(I("paused"),l?.(!1))},[B,l]),qt=d.useCallback(()=>{W("pause"),I("ended"),l?.(!1),w?.()},[l,w]),Xt=d.useCallback(()=>{_.current||(I("waiting"),H?.())},[H]),Yt=d.useCallback(()=>{if(_.current){xt(!0);return}if(B==="waiting"){let m=g==="play"?"playing":"paused";I(m),l?.(m==="playing")}xt(!0)},[B,g,l]),Gt=d.useCallback(()=>{se(!0),B==="ended"&&I("paused"),Q?.()},[B,Q]),zt=d.useCallback(()=>{if(se(!1),e.current){let{currentTime:m,duration:C}=e.current;C>0&&C-m<.01&&I("ended")}D?.()},[D,e]),Jt=d.useCallback(()=>{e.current&&(te(e.current.volume),de(e.current.muted))},[te,de,e]),Zt=d.useCallback(()=>{e.current&&vt(e.current.duration)},[e]),er=d.useCallback(()=>{ye()},[ye]),Jr=d.useMemo(()=>({playbackStatus:B,playbackIntent:g,playing:B==="playing",paused:B==="paused",ended:B==="ended",waiting:B==="waiting",seeking:Ct,canPlay:ht,currentTime:kt,duration:Re,buffered:Tt,hoverTime:Se,hoverProgress:Se!==null&&Re>0?Se/Re*100:null,volume:A,muted:X,fullscreen:be,pictureInPicture:ke,idle:bt,idleTimeout:v,preventIdleWhenPaused:k,registeredTracks:Et,activeTextTrack:oe,activeCues:Bt,playbackRate:mt,qualities:Vt,activeQuality:wt,videoRef:e,rootRef:c,play:ve,pause:Te,toggle:he,seek:xe,setVolume:Ce,toggleMute:It,enterFullscreen:Me,exitFullscreen:Ee,toggleFullscreen:Be,enterPictureInPicture:Ve,exitPictureInPicture:we,togglePictureInPicture:Dt,setPlaybackRate:Ot,setTextTrack:At,setQuality:Wt,registerTrack:Ft,unregisterTrack:Qt,updateTrackRef:$t,resetIdle:Rt,setHoverTime:Xr,beginSeekInteraction:Lt,endSeekInteraction:Ht,_handlers:{onTimeUpdate:Nt,onDurationChange:jt,onProgress:Ut,onPlay:_t,onPause:Kt,onEnded:qt,onWaiting:Xt,onCanPlay:Yt,onSeeking:Gt,onSeeked:zt,onVolumeChange:Jt,onLoadedMetadata:Zt,onVideoMount:er,onRootMouseLeave:St}}),[B,g,Ct,ht,kt,Re,Tt,Se,A,X,be,ke,bt,v,k,Et,oe,Bt,mt,Vt,wt,e,c,ve,Te,he,xe,Ce,It,Me,Ee,Be,Ve,we,Dt,Ot,At,Wt,Ft,Qt,$t,Rt,Lt,Ht,Nt,jt,Ut,_t,Kt,qt,Xt,Yt,Gt,zt,Jt,Zt,er,St]);return _e(ot.Provider,{value:Jr,children:U})}var hr=d.forwardRef(function(e,t){let{actionsRef:s,keyboardShortcuts:u="focused",defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:r,defaultPlaybackRate:l,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,hideCursorWhenIdle:w="fullscreen",idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,children:J,...Z}=e,B=d.useRef(null),I=d.useRef(null);return _e(hn,{actionsRef:s,defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:r,defaultPlaybackRate:l,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,rootRef:B,videoRef:I,children:_e(xn,{ref:t,rootRef:B,keyboardShortcuts:u,hideCursorWhenIdle:w,...Z,children:J})})}),xn=d.forwardRef(function({rootRef:e,keyboardShortcuts:t,hideCursorWhenIdle:s,children:u,className:n,style:o,...a},r){let l=ie(),p=Cn(r,e),i=d.useRef(null);Tr(e,t);let f=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},l.resetIdle())},[l]),b=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},l.resetIdle())},[l]),S=d.useCallback(()=>{l._handlers.onRootMouseLeave()},[l._handlers]),T=d.useCallback(()=>{l.resetIdle()},[l]),y=d.useCallback(()=>{l.resetIdle()},[l]),x=d.useCallback(w=>{w.key==="Tab"&&l.resetIdle()},[l]),v=E({onMouseMove:f,onMouseEnter:b,onMouseLeave:S,onClick:T,onFocus:y,onKeyDown:x},a),k={"data-playing":l.playing||void 0,"data-paused":l.paused||void 0,"data-ended":l.ended||void 0,"data-waiting":l.waiting||void 0,"data-seeking":l.seeking||void 0,"data-fullscreen":l.fullscreen||void 0,"data-pip":l.pictureInPicture||void 0,"data-muted":l.muted||void 0,"data-idle":l.idle||void 0},L=s!==!1&&l.idle&&(s==="always"||s==="fullscreen"&&l.fullscreen),M=d.useId();return Mn("div",{...v,ref:p,tabIndex:t==="focused"?0:void 0,className:n,style:o,"data-video-player-scope":M,...k,children:[L&&_e("style",{children:`[data-video-player-scope="${M}"], [data-video-player-scope="${M}"] * { cursor: none !important; }`}),u]})});function Cn(...c){return d.useCallback(e=>{for(let t of c)typeof t=="function"?t(e):t!=null&&(t.current=e)},c)}var Ke=(o=>(o.progress="--seek-progress",o.buffered="--seek-buffered",o.currentTime="--seek-current-time",o.duration="--seek-duration",o.hoverProgress="--seek-hover-progress",o.hoverTime="--seek-hover-time",o))(Ke||{});var qe=(u=>(u.seeking="data-seeking",u.hovering="data-hovering",u.pressing="data-pressing",u.dragging="data-dragging",u))(qe||{});import{Slider as j}from"@base-ui/react/slider";import{autoUpdate as En,offset as Bn,shift as Vn,useFloating as wn}from"@floating-ui/react";import*as R from"react";import*as Cr from"react-dom";var Xe=(u=>(u.open="data-open",u.closed="data-closed",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(Xe||{});import{jsx as V,jsxs as Ln}from"react/jsx-runtime";var pt=R.createContext(null);function Mr(c){let e=R.useContext(pt);if(!e)throw new Error(`${c} must be used within SeekSlider`);return e}function xr(c){return c==="ArrowRight"||c==="ArrowLeft"}var Er=R.forwardRef(function(e,t){let{render:s,children:u,onPointerMove:n,onPointerLeave:o,onPointerDown:a,onKeyUp:r,onValueCommitted:l,...p}=e,i=P("SeekSlider"),f=R.useRef(null),[b,S]=R.useState(null),[T,y]=R.useState(!1),[x,v]=R.useState(!1),k=R.useRef(!1);R.useEffect(()=>{if(!T)return;let g=()=>{y(!1),v(!1),k.current=!1,i.endSeekInteraction()};return window.addEventListener("pointerup",g),()=>window.removeEventListener("pointerup",g)},[T,i]);let L=i.duration>0?i.currentTime/i.duration*100:0,M=R.useCallback((g,W)=>{let A=typeof g=="number"?g:g[0];A!==void 0&&(W.reason==="keyboard"&&i.beginSeekInteraction(),i.seek(A),i.resetIdle(),k.current&&v(!0))},[i]),w=R.useCallback(g=>{if(n?.(g),!f.current||i.duration===0)return;let W=f.current.getBoundingClientRect(),A=g.clientX-W.left,X=Math.max(0,Math.min(1,A/W.width))*i.duration;i.setHoverTime(X)},[n,i]),H=R.useCallback(g=>{o?.(g),i.setHoverTime(null)},[o,i]),Q=R.useCallback(g=>{a?.(g),y(!0),k.current=!0,i.beginSeekInteraction()},[a,i]),D=R.useCallback(g=>{r?.(g),xr(g.key)&&i.endSeekInteraction()},[r,i]),h=R.useCallback((g,W)=>{let A=typeof g=="number"?g:g[0];A!==void 0&&(l?.(A,W),y(!1),v(!1),k.current=!1,!(W.reason==="keyboard"&&xr(W.event.key))&&i.endSeekInteraction())},[l,i]),$=R.useMemo(()=>{if(!i.buffered||i.buffered.length===0)return 0;for(let g=0;g<i.buffered.length;g++)if(i.buffered.start(g)<=i.currentTime&&i.currentTime<=i.buffered.end(g))return i.buffered.end(g);return i.buffered.end(0)},[i.buffered,i.currentTime]),U=i.duration>0?$/i.duration*100:0;R.useLayoutEffect(()=>{typeof t=="function"?t(f.current):t&&(t.current=f.current)});let q={currentTime:i.currentTime,duration:i.duration,progress:L,seeking:i.seeking,pressing:T,dragging:x,hoverTime:i.hoverTime,hoverProgress:i.hoverProgress},_=i.hoverProgress!==null,J=i.hoverProgress??0,Z=R.useMemo(()=>({sliderRef:f,previewThumbElement:b,setPreviewThumbElement:S,hoverProgress:J,open:_}),[f,b,S,J,_]),B={position:"relative","--seek-progress":`${L}%`,"--seek-buffered":`${U}%`,"--seek-current-time":i.currentTime,"--seek-duration":i.duration,"--seek-hover-progress":i.hoverProgress!==null?`${i.hoverProgress}%`:void 0,"--seek-hover-time":i.hoverTime??void 0,...p.style},I={"data-seeking":i.seeking||void 0,"data-hovering":i.hoverTime!==null||void 0,"data-pressing":T||void 0,"data-dragging":x||void 0,style:B};return s?V(pt.Provider,{value:Z,children:V(j.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",render:g=>s({...g,...I,style:{...g.style,...I.style}},q)})}):V(pt.Provider,{value:Z,children:V(j.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",...I,...p,children:u??V(j.Control,{children:Ln(j.Track,{style:{position:"relative"},children:[V("div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${U}%`}}),V(j.Indicator,{}),V(j.Thumb,{})]})})})})}),Br=j.Control,Vr=R.forwardRef(function(e,t){let{render:s,children:u,style:n,...o}=e,a={},r={position:"relative",...n},l={ref:t,style:r};return s?V(j.Track,{render:p=>s({...p,...l},a)}):V(j.Track,{ref:t,style:r,...o,children:u})}),wr=R.forwardRef(function(e,t){let{render:s,children:u,style:n,...o}=e,a=P("SeekSliderProgress"),l={progress:a.duration>0?a.currentTime/a.duration*100:0},p={height:"100%",...n},i={ref:t,style:p};return s?V(j.Indicator,{render:f=>s({...f,...i,style:{...f.style,...p}},l)}):V(j.Indicator,{ref:t,style:p,...o,children:u})}),Lr=R.forwardRef(function(e,t){let{render:s,children:u,style:n,...o}=e,a={},r={ref:t,style:n??{}};return s?V(j.Thumb,{render:l=>s({...l,...r,style:{...l.style,...n}},a)}):V(j.Thumb,{ref:t,style:n,...o,children:u})}),Hr=R.forwardRef(function(e,t){let{render:s,children:u,...n}=e,o=P("SeekSliderBuffered"),a=R.useMemo(()=>{if(!o.buffered||o.buffered.length===0)return 0;for(let f=0;f<o.buffered.length;f++)if(o.buffered.start(f)<=o.currentTime&&o.currentTime<=o.buffered.end(f))return o.buffered.end(f);return o.buffered.end(0)},[o.buffered,o.currentTime]),r=o.duration>0?a/o.duration*100:0,l={bufferedPercentage:r},p={position:"absolute",left:0,top:0,height:"100%",width:`${r}%`,...n.style},i={ref:t,style:p};return s?s(i,l):V("div",{...i,...n,children:u})}),Ir=R.forwardRef(function(e,t){let{keepMounted:s=!1,render:u,children:n,...o}=e,a=P("SeekSliderPreviewThumb"),r=Mr("SeekSliderPreviewThumb"),l=a.hoverProgress!==null,p=R.useRef(0);a.hoverProgress!==null&&(p.current=a.hoverProgress);let i=a.hoverProgress??p.current,{mounted:f,transitionStatus:b,elementRef:S}=G({open:l,keepMounted:s}),T=R.useCallback(k=>{S.current=k,r.setPreviewThumbElement(k),typeof t=="function"?t(k):t&&(t.current=k)},[t,S,r]),y={open:l,transitionStatus:b,hoverProgress:i},x={position:"absolute",left:`${i}%`,transform:"translateX(-50%)",pointerEvents:"none",...o.style},v={ref:T,style:x,"data-open":l||void 0,"data-closed":!l||void 0,"data-starting-style":b==="starting"||void 0,"data-ending-style":b==="ending"||void 0};return f?u?u(v,y):V("span",{...v,...o,children:n}):null}),Dr=R.forwardRef(function(e,t){let{render:s,children:u,style:n,...o}=e,a=P("SeekSliderHover"),r=a.hoverProgress!==null,l=a.hoverProgress??0,p={hovering:r,hoverProgress:a.hoverProgress,hoverTime:a.hoverTime},i={position:"absolute",left:0,top:0,height:"100%",width:`${l}%`,pointerEvents:"none",...n},f={ref:t,style:i,"data-hovering":r||void 0};return s?s(f,p):V("div",{...f,...o,children:u})});function Ye({children:c,container:e}){let t=P("SeekSliderPreviewTooltipPortal"),[s,u]=R.useState(!1);if(R.useEffect(()=>{u(!0)},[]),!s)return null;let n=e??t.rootRef.current??document.body;return Cr.createPortal(c,n)}var Ge=R.forwardRef(function(e,t){let{sideOffset:s=8,collisionPadding:u=0,collisionBoundary:n,keepMounted:o=!1,children:a,style:r,...l}=e,p=Mr("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:i,open:f,hoverProgress:b}=p,[S,T]=R.useState(null),{refs:y,floatingStyles:x,update:v}=wn({placement:"top",middleware:[Bn(s),Vn({boundary:n,padding:u})]});R.useLayoutEffect(()=>{i&&y.setReference(i)},[i,y]),R.useEffect(()=>{if(f&&i&&S)return En(i,S,v)},[f,i,S,v]),R.useLayoutEffect(()=>{f&&i&&S&&v()},[b,f,i,S,v]);let k=R.useCallback(M=>{y.setFloating(M),T(M),typeof t=="function"?t(M):t&&(t.current=M)},[y,t]);return(o||f)&&!!i?V("div",{ref:k,style:{...x,...r},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...l,children:a}):null}),ze=R.forwardRef(function(e,t){let{children:s,...u}=e;return V("div",{ref:t,"data-seek-slider-preview-tooltip-popup":!0,...u,children:s})});function fe({sideOffset:c,collisionPadding:e,collisionBoundary:t,keepMounted:s,container:u,children:n,...o}){return V(Ye,{container:u,children:V(Ge,{sideOffset:c,collisionPadding:e,collisionBoundary:t,keepMounted:s,children:V(ze,{...o,children:n})})})}fe.Portal=Ye;fe.Positioner=Ge;fe.Popup=ze;var Je=(s=>(s.loading="data-loading",s.ready="data-ready",s.error="data-error",s))(Je||{});import*as F from"react";import{jsx as Hn}from"react/jsx-runtime";var Or=F.forwardRef(function(e,t){let{time:s,crossOrigin:u="anonymous",render:n,children:o,width:a,height:r,...l}=e,p=P("Thumbnail"),i=F.useRef(null),f=F.useRef(null),b=F.useRef(null),[S,T]=F.useState("idle"),[y,x]=F.useState({width:160,height:90}),v=s!==void 0?s:p.hoverTime,k=F.useMemo(()=>{let h=p.videoRef.current;return h?h.currentSrc||h.src:null},[p.videoRef]);F.useEffect(()=>{if(!k)return;let h=document.createElement("video");h.src=k,h.crossOrigin=u,h.preload="metadata",h.muted=!0,h.playsInline=!0;let $=()=>{x({width:h.videoWidth,height:h.videoHeight})},U=()=>{T("error")};return h.addEventListener("loadedmetadata",$),h.addEventListener("error",U),f.current=h,()=>{h.removeEventListener("loadedmetadata",$),h.removeEventListener("error",U),h.src="",f.current=null}},[k,u]),F.useEffect(()=>{let h=f.current,$=i.current;if(!h||!$||v===null||v===void 0||b.current!==null&&Math.abs(b.current-v)<.1)return;T("loading");let U=()=>{let q=$.getContext("2d");if(q)try{q.drawImage(h,0,0,$.width,$.height),b.current=v,T("ready")}catch{T("error")}};return h.addEventListener("seeked",U,{once:!0}),h.currentTime=v,()=>{h.removeEventListener("seeked",U)}},[v]);let L=F.useCallback(h=>{i.current=h,typeof t=="function"?t(h):t&&(t.current=h)},[t]),M=y.width/y.height,w=a??160,H=r??Math.round(w/M);typeof w=="string"&&(w=160),typeof H=="string"&&(H=90);let Q={loading:S==="loading",ready:S==="ready",error:S==="error",time:v,videoWidth:y.width,videoHeight:y.height},D={ref:L,width:w,height:H,"data-loading":S==="loading"||void 0,"data-ready":S==="ready"||void 0,"data-error":S==="error"||void 0};return n?n(D,Q):Hn("canvas",{...D,...l,children:o})});var Ze=(e=>(e.hovering="data-hovering",e))(Ze||{});import*as et from"react";import{Fragment as On,jsx as ft,jsxs as An}from"react/jsx-runtime";var Ar=et.forwardRef(function(e,t){let{format:s="current / duration",fixedWidth:u=!0,align:n="left",render:o,...a}=e,r=P("TimeDisplay"),l=et.useRef(0);r.hoverTime!==null&&(l.current=r.hoverTime);let p=r.duration-r.currentTime,i=me(r.currentTime),f=me(r.duration),b=me(p),S=r.hoverTime!==null?me(r.hoverTime):me(l.current),T={currentTime:r.currentTime,duration:r.duration,remaining:p,hoverTime:r.hoverTime,hovering:r.hoverTime!==null,formattedCurrent:i,formattedDuration:f,formattedRemaining:b,formattedHover:S},y=()=>{switch(s){case"current":return i;case"duration":return f;case"remaining":return`-${b}`;case"current / duration":return`${i} / ${f}`;case"current / remaining":return`${i} / -${b}`;case"hover":return S;default:return`${i} / ${f}`}},x=()=>{let k=Dn(r.duration);switch(s){case"current":case"duration":case"hover":return k;case"remaining":return`-${k}`;case"current / duration":return`${k} / ${k}`;case"current / remaining":return`${k} / -${k}`;default:return`${k} / ${k}`}},v={ref:t,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},"data-hovering":T.hovering||void 0};return o?o(v,T):ft("span",{ref:t,"data-hovering":T.hovering||void 0,...a,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},children:u?An(On,{children:[ft("span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),ft("span",{style:In(n),children:y()})]}):y()})});function In(c){let e={position:"absolute"};switch(c){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function me(c){if(!Number.isFinite(c)||Number.isNaN(c))return"0:00";let e=Math.floor(c/3600),t=Math.floor(c%3600/60),s=Math.floor(c%60);return e>0?`${e}:${t.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`:`${t}:${s.toString().padStart(2,"0")}`}function Dn(c){if(!Number.isFinite(c)||Number.isNaN(c)||c<=0)return"0:00";let e=Math.floor(c/3600),t=Math.floor(c%3600/60);if(e>0){let u=String(e).length;return`${"0".repeat(u)}:00:00`}let s=String(t).length;return`${"0".repeat(s)}:00`}import*as K from"react";import{jsx as Wn}from"react/jsx-runtime";var Wr=K.forwardRef(function(e,t){let{kind:s="captions",src:u,label:n,srcLang:o,default:a,...r}=e,{registerTrack:l,unregisterTrack:p,updateTrackRef:i,setTextTrack:f}=P("Track"),b=K.useRef(null),S=K.useId(),T=K.useCallback(y=>{typeof t=="function"?t(y):t&&(t.current=y),b.current=y},[t]);return K.useEffect(()=>(l({id:S,kind:s,label:n,srcLang:o,src:u,textTrack:null}),()=>{p(S)}),[S,s,n,o,u,l,p]),K.useEffect(()=>{let y=b.current;if(!y)return;let x=()=>{y.track&&(y.track.mode="disabled",i(S,y.track),a&&f(y.track))};return y.track&&x(),y.addEventListener("load",x),()=>{y.removeEventListener("load",x)}},[S,a,i,f]),Wn("track",{ref:T,kind:s,src:u,label:n,srcLang:o,default:a,...r})});import*as ce from"react";import{jsx as Fn}from"react/jsx-runtime";var Fr=ce.forwardRef(function(e,t){let{toggleOnClick:s=!0,...u}=e,n=P("Video"),o=ce.useRef(!1),a=ce.useCallback(p=>{typeof t=="function"?t(p):t&&(t.current=p),n.videoRef.current=p,p&&!o.current&&(o.current=!0,n._handlers.onVideoMount(),p.readyState>=1&&p.duration&&(n._handlers.onLoadedMetadata(),n._handlers.onDurationChange()),p.readyState>=3&&n._handlers.onCanPlay())},[t,n.videoRef,n._handlers]),r={"data-playing":n.playing||void 0,"data-paused":n.paused||void 0,"data-ended":n.ended||void 0,"data-waiting":n.waiting||void 0,"data-seeking":n.seeking||void 0},l=E({ref:a,preload:"metadata",...r,onClick(){s&&n.toggle()},onTimeUpdate:n._handlers.onTimeUpdate,onDurationChange:n._handlers.onDurationChange,onProgress:n._handlers.onProgress,onPlay:n._handlers.onPlay,onPause:n._handlers.onPause,onEnded:n._handlers.onEnded,onWaiting:n._handlers.onWaiting,onCanPlay:n._handlers.onCanPlay,onSeeking:n._handlers.onSeeking,onSeeked:n._handlers.onSeeked,onVolumeChange:n._handlers.onVolumeChange,onLoadedMetadata:n._handlers.onLoadedMetadata},u);return Fn("video",{...l})});var tt=(t=>(t.volume="--volume",t.volumePercentage="--volume-percentage",t))(tt||{});var rt=(u=>(u.muted="data-muted",u.volume="data-volume",u.pressing="data-pressing",u.dragging="data-dragging",u))(rt||{});import{Slider as z}from"@base-ui/react/slider";import*as O from"react";import{jsx as ee,jsxs as Qn}from"react/jsx-runtime";var Qr=O.forwardRef(function(e,t){let{render:s,children:u,onPointerDown:n,...o}=e,a=P("VolumeSlider"),r=O.useRef(null),[l,p]=O.useState(!1),[i,f]=O.useState(!1),b=O.useRef(!1);O.useEffect(()=>{if(!l)return;let M=()=>{p(!1),f(!1),b.current=!1};return window.addEventListener("pointerup",M),()=>window.removeEventListener("pointerup",M)},[l]),O.useLayoutEffect(()=>{typeof t=="function"?t(r.current):t&&(t.current=r.current)});let S=a.volume*100,T={volume:a.volume,muted:a.muted,percentage:S,pressing:l,dragging:i},y=O.useCallback(M=>{let w=typeof M=="number"?M:M[0];if(w!==void 0){if(a.muted){let H=a.videoRef.current;H&&(H.muted=!1)}a.setVolume(w),a.resetIdle(),b.current&&f(!0)}},[a]),x=O.useCallback(M=>{n?.(M),p(!0),b.current=!0},[n]),v={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":l||void 0,"data-dragging":i||void 0},k={position:"relative","--volume":a.volume,"--volume-percentage":`${S}%`,...o.style},L={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":l||void 0,"data-dragging":i||void 0,style:k};return s?ee(z.Root,{ref:r,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",render:M=>s({...M,...L},T)}):ee(z.Root,{ref:r,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",...v,...o,style:k,children:u??ee(z.Control,{children:Qn(z.Track,{children:[ee(z.Indicator,{}),ee(z.Thumb,{})]})})})}),$r=z.Control,Nr=O.forwardRef(function(e,t){let{style:s,...u}=e,n={position:"relative",...s};return ee(z.Track,{ref:t,style:n,...u})}),jr=O.forwardRef(function(e,t){return ee(z.Indicator,{ref:t,...e})}),Ur=O.forwardRef(function(e,t){return ee(z.Thumb,{ref:t,...e})});export{_r as VideoPlayer,ie as useVideoPlayer};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|