@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.
Files changed (31) hide show
  1. package/dist/adapters/index.d.cts +2 -1
  2. package/dist/adapters/index.d.ts +2 -1
  3. package/dist/combobox/index.d.cts +4 -3
  4. package/dist/combobox/index.d.ts +4 -3
  5. package/dist/context-menu/index.d.cts +9 -8
  6. package/dist/context-menu/index.d.ts +9 -8
  7. package/dist/{data-surface-B-eIGTBi.d.cts → data-surface-CvJ9KHPs.d.cts} +3 -2
  8. package/dist/{data-surface-D1OilMDu.d.ts → data-surface-wC_Jb6Rh.d.ts} +3 -2
  9. package/dist/dropdown-menu/index.d.cts +11 -10
  10. package/dist/dropdown-menu/index.d.ts +11 -10
  11. package/dist/{input-DF7D8YzW.d.ts → input-CVeZtOCC.d.ts} +1 -1
  12. package/dist/{input-BoIK003I.d.cts → input-K7sWcc-E.d.cts} +1 -1
  13. package/dist/internal/popup-menu/index.d.cts +9 -8
  14. package/dist/internal/popup-menu/index.d.ts +9 -8
  15. package/dist/{loading-TsgH6v92.d.ts → loading-Bb7G_pQp.d.ts} +1 -1
  16. package/dist/{loading-DphSt8MY.d.cts → loading-CbSVZlwi.d.cts} +1 -1
  17. package/dist/select/index.d.cts +6 -5
  18. package/dist/select/index.d.ts +6 -5
  19. package/dist/{separator-BmbUeeaT.d.cts → separator-BzYYn73e.d.cts} +2 -1
  20. package/dist/{separator-B4Ot84B0.d.ts → separator-C9c1Jo6A.d.ts} +2 -1
  21. package/dist/{types-9vS1uLIK.d.cts → types-Cggz7pEl.d.cts} +2 -35
  22. package/dist/types-DT4FOOa2.d.cts +51 -0
  23. package/dist/types-DT4FOOa2.d.ts +51 -0
  24. package/dist/{types-lQCIvWW8.d.ts → types-M2vBIhdB.d.ts} +2 -35
  25. package/dist/video-player/index.cjs +2 -2
  26. package/dist/video-player/index.cjs.map +1 -1
  27. package/dist/video-player/index.d.cts +29 -18
  28. package/dist/video-player/index.d.ts +29 -18
  29. package/dist/video-player/index.js +2 -2
  30. package/dist/video-player/index.js.map +1 -1
  31. 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'>, 'onVolumeChange' | 'onEnded' | 'onWaiting' | 'onSeeking' | 'onSeeked'>;
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: 'button';
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'>, 'children'> {
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: 'button';
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: 'button';
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'>, 'children'> {
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: 'button';
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'>, 'children'> {
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: 'button';
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: 'button';
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'>, 'onTimeUpdate' | 'onDurationChange' | 'onProgress' | 'onPlay' | 'onPause' | 'onEnded' | 'onWaiting' | 'onCanPlay' | 'onSeeking' | 'onSeeked' | 'onVolumeChange' | 'onLoadedMetadata'> {
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'>, 'onVolumeChange' | 'onEnded' | 'onWaiting' | 'onSeeking' | 'onSeeked'>;
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: 'button';
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'>, 'children'> {
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: 'button';
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: 'button';
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'>, 'children'> {
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: 'button';
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'>, 'children'> {
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: 'button';
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: 'button';
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'>, 'onTimeUpdate' | 'onDurationChange' | 'onProgress' | 'onPlay' | 'onPause' | 'onEnded' | 'onWaiting' | 'onCanPlay' | 'onSeeking' | 'onSeeked' | 'onVolumeChange' | 'onLoadedMetadata'> {
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 _r}from"../chunk-4C666HHU.js";import*as Be from"react";var at=Be.createContext(null);function P(d){let e=Be.useContext(at);if(!e)throw new Error(`<VideoPlayer.${d}> must be used within <VideoPlayer.Root>`);return e}function ne(){return P("useVideoPlayer")}var Hr={};_r(Hr,{BufferedIndicator:()=>Gt,Captions:()=>Zt,CaptionsButton:()=>er,CaptionsDataAttributes:()=>Le,CaptionsMenu:()=>tr,CaptionsMenuItem:()=>De,Controls:()=>rr,ControlsDataAttributes:()=>Oe,FullscreenButton:()=>nr,MuteButton:()=>or,Overlay:()=>ar,OverlayDataAttributes:()=>Fe,PictureInPictureButton:()=>ir,PlayButton:()=>sr,PlaybackRateButton:()=>lr,PlaybackRateMenu:()=>ur,PlaybackRateMenuItem:()=>st,Portal:()=>cr,Poster:()=>dr,QualityMenu:()=>pr,QualityMenuItem:()=>ut,Root:()=>mr,RootDataAttributes:()=>_e,SeekSlider:()=>yr,SeekSliderBuffered:()=>vr,SeekSliderControl:()=>Sr,SeekSliderCssVars:()=>Ke,SeekSliderDataAttributes:()=>Xe,SeekSliderHover:()=>xr,SeekSliderPreviewThumb:()=>Tr,SeekSliderPreviewThumbDataAttributes:()=>Ye,SeekSliderPreviewTooltip:()=>de,SeekSliderPreviewTooltipPopup:()=>Je,SeekSliderPreviewTooltipPortal:()=>Ge,SeekSliderPreviewTooltipPositioner:()=>ze,SeekSliderProgress:()=>kr,SeekSliderThumb:()=>gr,SeekSliderTrack:()=>br,Thumbnail:()=>hr,ThumbnailDataAttributes:()=>Ze,TimeDisplay:()=>Cr,TimeDisplayDataAttributes:()=>et,Track:()=>Mr,Video:()=>Er,VolumeSlider:()=>Vr,VolumeSliderControl:()=>Br,VolumeSliderCssVars:()=>rt,VolumeSliderDataAttributes:()=>nt,VolumeSliderRange:()=>Lr,VolumeSliderThumb:()=>Ir,VolumeSliderTrack:()=>wr,useTransitionStatus:()=>j,useVideoPlayer:()=>ne});import*as we from"react";import{jsx as jr}from"react/jsx-runtime";var Gt=we.forwardRef(function(e,n){let{render:i,...s}=e,c=P("BufferedIndicator"),t=we.useMemo(()=>{if(!c.buffered||c.buffered.length===0)return 0;for(let u=0;u<c.buffered.length;u++)if(c.buffered.start(u)<=c.currentTime&&c.currentTime<=c.buffered.end(u))return c.buffered.end(u);return c.buffered.end(0)},[c.buffered,c.currentTime]),a=c.duration>0?t/c.duration*100:0,r={buffered:c.buffered,duration:c.duration,bufferedPercentage:a,bufferedEnd:t},o={"--buffered-percentage":`${a}%`,"--buffered-end":t,...s.style},l={ref:n,style:o,"aria-hidden":!0};return i?i(l,r):jr("div",{ref:n,"aria-hidden":"true",...s,style:o})});var Le=(e=>(e.active="data-active",e))(Le||{});import*as Jt from"react";import{jsx as zt}from"react/jsx-runtime";var Zt=Jt.forwardRef(function(e,n){let{render:i,children:s,...c}=e,a=P("Captions").activeCues,r=a.map(f=>f.text).join(`
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