@bazza-ui/react 0.0.0 → 0.1.0-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/ListboxStore-BtcTXpzi.d.cts +351 -0
  2. package/dist/ListboxStore-DPqpLlAL.d.ts +351 -0
  3. package/dist/adapters/index.cjs +2 -0
  4. package/dist/adapters/index.cjs.map +1 -0
  5. package/dist/adapters/index.d.cts +363 -0
  6. package/dist/adapters/index.d.ts +363 -0
  7. package/dist/adapters/index.js +2 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/chunk-4C666HHU.js +2 -0
  10. package/dist/chunk-4C666HHU.js.map +1 -0
  11. package/dist/chunk-AVZ64JQ3.js +2 -0
  12. package/dist/chunk-AVZ64JQ3.js.map +1 -0
  13. package/dist/chunk-BGJJC6GX.cjs +2 -0
  14. package/dist/chunk-BGJJC6GX.cjs.map +1 -0
  15. package/dist/chunk-FWWOE2SW.cjs +2 -0
  16. package/dist/chunk-FWWOE2SW.cjs.map +1 -0
  17. package/dist/chunk-JSPKF52O.cjs +2 -0
  18. package/dist/chunk-JSPKF52O.cjs.map +1 -0
  19. package/dist/chunk-KWGD24VS.js +2 -0
  20. package/dist/chunk-KWGD24VS.js.map +1 -0
  21. package/dist/chunk-M4G6J7DP.cjs +2 -0
  22. package/dist/chunk-M4G6J7DP.cjs.map +1 -0
  23. package/dist/chunk-WKAPAKUL.js +2 -0
  24. package/dist/chunk-WKAPAKUL.js.map +1 -0
  25. package/dist/combobox/index.cjs +2 -0
  26. package/dist/combobox/index.cjs.map +1 -0
  27. package/dist/combobox/index.d.cts +1039 -0
  28. package/dist/combobox/index.d.ts +1039 -0
  29. package/dist/combobox/index.js +2 -0
  30. package/dist/combobox/index.js.map +1 -0
  31. package/dist/command-score-Dgo3ZS3Z.d.ts +36 -0
  32. package/dist/command-score-YjNr3ZWi.d.cts +36 -0
  33. package/dist/context-menu/index.cjs +2 -0
  34. package/dist/context-menu/index.cjs.map +1 -0
  35. package/dist/context-menu/index.d.cts +658 -0
  36. package/dist/context-menu/index.d.ts +658 -0
  37. package/dist/context-menu/index.js +2 -0
  38. package/dist/context-menu/index.js.map +1 -0
  39. package/dist/data-surface-B-eIGTBi.d.cts +678 -0
  40. package/dist/data-surface-D1OilMDu.d.ts +678 -0
  41. package/dist/dropdown-menu/index.cjs +2 -0
  42. package/dist/dropdown-menu/index.cjs.map +1 -0
  43. package/dist/dropdown-menu/index.d.cts +700 -0
  44. package/dist/dropdown-menu/index.d.ts +700 -0
  45. package/dist/dropdown-menu/index.js +2 -0
  46. package/dist/dropdown-menu/index.js.map +1 -0
  47. package/dist/events-BPr8sRGH.d.cts +166 -0
  48. package/dist/events-BPr8sRGH.d.ts +166 -0
  49. package/dist/input-BoIK003I.d.cts +41 -0
  50. package/dist/input-DF7D8YzW.d.ts +41 -0
  51. package/dist/internal/listbox/index.cjs +2 -0
  52. package/dist/internal/listbox/index.cjs.map +1 -0
  53. package/dist/internal/listbox/index.d.cts +269 -0
  54. package/dist/internal/listbox/index.d.ts +269 -0
  55. package/dist/internal/listbox/index.js +2 -0
  56. package/dist/internal/listbox/index.js.map +1 -0
  57. package/dist/internal/popup-menu/index.cjs +2 -0
  58. package/dist/internal/popup-menu/index.cjs.map +1 -0
  59. package/dist/internal/popup-menu/index.d.cts +846 -0
  60. package/dist/internal/popup-menu/index.d.ts +846 -0
  61. package/dist/internal/popup-menu/index.js +2 -0
  62. package/dist/internal/popup-menu/index.js.map +1 -0
  63. package/dist/item-equality-B6TbXlBT.d.cts +7 -0
  64. package/dist/item-equality-B6TbXlBT.d.ts +7 -0
  65. package/dist/loading-DphSt8MY.d.cts +27 -0
  66. package/dist/loading-TsgH6v92.d.ts +27 -0
  67. package/dist/select/index.cjs +2 -0
  68. package/dist/select/index.cjs.map +1 -0
  69. package/dist/select/index.d.cts +927 -0
  70. package/dist/select/index.d.ts +927 -0
  71. package/dist/select/index.js +2 -0
  72. package/dist/select/index.js.map +1 -0
  73. package/dist/separator-B4Ot84B0.d.ts +748 -0
  74. package/dist/separator-BmbUeeaT.d.cts +748 -0
  75. package/dist/types-9vS1uLIK.d.cts +1557 -0
  76. package/dist/types-lQCIvWW8.d.ts +1557 -0
  77. package/dist/use-listbox-item-BIi4eRPI.d.cts +182 -0
  78. package/dist/use-listbox-item-BIi4eRPI.d.ts +182 -0
  79. package/dist/video-player/index.cjs +3 -0
  80. package/dist/video-player/index.cjs.map +1 -0
  81. package/dist/video-player/index.d.cts +1379 -0
  82. package/dist/video-player/index.d.ts +1379 -0
  83. package/dist/video-player/index.js +3 -0
  84. package/dist/video-player/index.js.map +1 -0
  85. package/package.json +56 -12
  86. package/dist/index.d.ts +0 -2
  87. package/dist/index.js +0 -2
@@ -0,0 +1,1379 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as _base_ui_react_slider from '@base-ui/react/slider';
4
+ import { Slider } from '@base-ui/react/slider';
5
+ import { Padding } from '@floating-ui/react';
6
+
7
+ /**
8
+ * Mutually exclusive playback states.
9
+ * - 'playing': Video is actively playing
10
+ * - 'paused': Video is paused by user action
11
+ * - 'waiting': Video is buffering/loading (will resume based on playbackIntent)
12
+ * - 'ended': Video has reached the end
13
+ */
14
+ type PlaybackStatus = 'playing' | 'paused' | 'waiting' | 'ended';
15
+ /**
16
+ * The user's intended playback state.
17
+ * Persists through transient states like 'waiting' to enable correct resumption.
18
+ * - 'play': User wants the video to play
19
+ * - 'pause': User wants the video to be paused
20
+ */
21
+ type PlaybackIntent = 'play' | 'pause';
22
+ interface VideoQuality {
23
+ label: string;
24
+ width: number;
25
+ height: number;
26
+ bitrate?: number;
27
+ }
28
+ interface VideoTextTrack {
29
+ kind: TextTrackKind;
30
+ label: string;
31
+ language: string;
32
+ src?: string;
33
+ }
34
+ /**
35
+ * Registered track info from VideoPlayer.Track components.
36
+ * Includes a reference to the native TextTrack for cue access.
37
+ */
38
+ interface TrackInfo {
39
+ /** Unique identifier for this track registration */
40
+ id: string;
41
+ /** Track kind (captions, subtitles, descriptions, chapters, metadata) */
42
+ kind: TextTrackKind;
43
+ /** Human-readable label */
44
+ label: string;
45
+ /** Language code (e.g., 'en', 'es') */
46
+ srcLang: string;
47
+ /** Source URL for the track file */
48
+ src: string;
49
+ /** Reference to the native TextTrack object (set after track loads) */
50
+ textTrack: TextTrack | null;
51
+ }
52
+ interface VideoPlayerState {
53
+ /** Current mutually exclusive playback state */
54
+ playbackStatus: PlaybackStatus;
55
+ /** User's intended playback state (persists through 'waiting' state) */
56
+ playbackIntent: PlaybackIntent;
57
+ /** True when playbackStatus === 'playing' */
58
+ playing: boolean;
59
+ /** True when playbackStatus === 'paused' */
60
+ paused: boolean;
61
+ /** True when playbackStatus === 'ended' */
62
+ ended: boolean;
63
+ /** True when playbackStatus === 'waiting' */
64
+ waiting: boolean;
65
+ /** True while seeking to a new position (orthogonal to playbackStatus) */
66
+ seeking: boolean;
67
+ /** True when video has enough data to begin playback */
68
+ canPlay: boolean;
69
+ currentTime: number;
70
+ duration: number;
71
+ buffered: TimeRanges | null;
72
+ hoverTime: number | null;
73
+ hoverProgress: number | null;
74
+ volume: number;
75
+ muted: boolean;
76
+ fullscreen: boolean;
77
+ pictureInPicture: boolean;
78
+ idle: boolean;
79
+ idleTimeout: number;
80
+ preventIdleWhenPaused: boolean;
81
+ /** Registered tracks from VideoPlayer.Track components */
82
+ registeredTracks: TrackInfo[];
83
+ /** Currently active text track */
84
+ activeTextTrack: TextTrack | null;
85
+ /** Currently active cues from the active text track */
86
+ activeCues: VTTCue[];
87
+ playbackRate: number;
88
+ qualities: VideoQuality[];
89
+ activeQuality: VideoQuality | null;
90
+ videoRef: React.RefObject<HTMLVideoElement | null>;
91
+ rootRef: React.RefObject<HTMLDivElement | null>;
92
+ }
93
+ interface VideoPlayerActions {
94
+ play: () => Promise<void>;
95
+ pause: () => void;
96
+ toggle: () => Promise<void>;
97
+ seek: (time: number) => void;
98
+ setVolume: (volume: number) => void;
99
+ toggleMute: () => void;
100
+ enterFullscreen: () => Promise<void>;
101
+ exitFullscreen: () => Promise<void>;
102
+ toggleFullscreen: () => Promise<void>;
103
+ enterPictureInPicture: () => Promise<void>;
104
+ exitPictureInPicture: () => Promise<void>;
105
+ togglePictureInPicture: () => Promise<void>;
106
+ setPlaybackRate: (rate: number) => void;
107
+ setTextTrack: (track: TextTrack | null) => void;
108
+ setQuality: (quality: VideoQuality) => void;
109
+ /** Register a track from VideoPlayer.Track component */
110
+ registerTrack: (track: TrackInfo) => void;
111
+ /** Unregister a track when VideoPlayer.Track unmounts */
112
+ unregisterTrack: (id: string) => void;
113
+ /** Update a registered track's textTrack reference */
114
+ updateTrackRef: (id: string, textTrack: TextTrack) => void;
115
+ /** Reset idle state and restart idle timeout */
116
+ resetIdle: () => void;
117
+ /** Set hover time for seek preview (null to clear) */
118
+ setHoverTime: (time: number | null) => void;
119
+ }
120
+ interface VideoPlayerInternalHandlers {
121
+ onTimeUpdate: () => void;
122
+ onDurationChange: () => void;
123
+ onProgress: () => void;
124
+ onPlay: () => void;
125
+ onPause: () => void;
126
+ onEnded: () => void;
127
+ onWaiting: () => void;
128
+ onCanPlay: () => void;
129
+ onSeeking: () => void;
130
+ onSeeked: () => void;
131
+ onVolumeChange: () => void;
132
+ onLoadedMetadata: () => void;
133
+ onRootMouseLeave: () => void;
134
+ }
135
+ interface VideoPlayerContextValue extends VideoPlayerState, VideoPlayerActions {
136
+ _handlers: VideoPlayerInternalHandlers;
137
+ }
138
+ /**
139
+ * Actions exposed via actionsRef for programmatic control.
140
+ * Follows the Base UI actionsRef pattern.
141
+ */
142
+ interface VideoPlayerExternalActions {
143
+ toggle: () => Promise<void>;
144
+ seek: (time: number) => void;
145
+ setVolume: (volume: number) => void;
146
+ toggleFullscreen: () => Promise<void>;
147
+ }
148
+ type DivPropsWithoutConflicts = Omit<React.ComponentPropsWithRef<'div'>, 'onVolumeChange' | 'onEnded' | 'onWaiting' | 'onSeeking' | 'onSeeked'>;
149
+ interface VideoPlayerRootProps extends DivPropsWithoutConflicts {
150
+ /**
151
+ * Ref to expose programmatic control actions.
152
+ * Follows the Base UI actionsRef pattern.
153
+ */
154
+ actionsRef?: React.RefObject<VideoPlayerExternalActions | null>;
155
+ /**
156
+ * Keyboard shortcuts scope.
157
+ * - 'focused': shortcuts work when player is focused (default)
158
+ * - 'global': shortcuts work anywhere on the page
159
+ * - 'none': disable keyboard shortcuts
160
+ * @default 'focused'
161
+ */
162
+ keyboardShortcuts?: 'focused' | 'global' | 'none';
163
+ defaultPlaying?: boolean;
164
+ defaultVolume?: number;
165
+ defaultMuted?: boolean;
166
+ defaultPlaybackRate?: number;
167
+ playing?: boolean;
168
+ onPlayingChange?: (playing: boolean) => void;
169
+ volume?: number;
170
+ onVolumeChange?: (volume: number) => void;
171
+ muted?: boolean;
172
+ onMutedChange?: (muted: boolean) => void;
173
+ playbackRate?: number;
174
+ onPlaybackRateChange?: (rate: number) => void;
175
+ currentTime?: number;
176
+ onCurrentTimeChange?: (time: number) => void;
177
+ /**
178
+ * Time in milliseconds before the player is considered idle.
179
+ * Set to 0 to disable idle detection.
180
+ * @default 3000
181
+ */
182
+ idleTimeout?: number;
183
+ /**
184
+ * When true, prevents the player from going idle while paused.
185
+ * @default false
186
+ */
187
+ preventIdleWhenPaused?: boolean;
188
+ /**
189
+ * Controls cursor auto-hiding behavior when the player is idle.
190
+ * - 'fullscreen': hide cursor only when in fullscreen mode and idle (default)
191
+ * - 'always': hide cursor when idle in any mode
192
+ * - false: never auto-hide cursor
193
+ * @default 'fullscreen'
194
+ */
195
+ hideCursorWhenIdle?: 'always' | 'fullscreen' | false;
196
+ idle?: boolean;
197
+ onIdleChange?: (idle: boolean) => void;
198
+ onEnded?: () => void;
199
+ onWaiting?: () => void;
200
+ onSeeking?: () => void;
201
+ onSeeked?: () => void;
202
+ onFullscreenChange?: (fullscreen: boolean) => void;
203
+ onPictureInPictureChange?: (pip: boolean) => void;
204
+ }
205
+ /**
206
+ * Render prop pattern following Base UI's approach.
207
+ * @param props - Props to spread on the rendered element (includes ref, handlers, aria attrs)
208
+ * @param state - Component state for conditional rendering
209
+ */
210
+ type RenderProp<Props = Record<string, unknown>, State = Record<string, unknown>> = (props: Props, state: State) => React.ReactElement;
211
+
212
+ interface VideoPlayerRootState {
213
+ playbackStatus: PlaybackStatus;
214
+ playbackIntent: PlaybackIntent;
215
+ playing: boolean;
216
+ paused: boolean;
217
+ ended: boolean;
218
+ waiting: boolean;
219
+ seeking: boolean;
220
+ canPlay: boolean;
221
+ fullscreen: boolean;
222
+ pictureInPicture: boolean;
223
+ muted: boolean;
224
+ volume: number;
225
+ currentTime: number;
226
+ duration: number;
227
+ playbackRate: number;
228
+ idle: boolean;
229
+ idleTimeout: number;
230
+ }
231
+ declare const VideoPlayerRoot: React.ForwardRefExoticComponent<Omit<VideoPlayerRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
232
+ declare namespace VideoPlayerRoot {
233
+ type Props = VideoPlayerRootProps;
234
+ type State = VideoPlayerRootState;
235
+ }
236
+
237
+ /**
238
+ * Hook to access the VideoPlayer context from custom components.
239
+ *
240
+ * @example
241
+ * ```tsx
242
+ * function CustomControl() {
243
+ * const { playing, toggle, currentTime, duration } = useVideoPlayer()
244
+ *
245
+ * return (
246
+ * <div>
247
+ * {playing ? 'Playing' : 'Paused'} - {currentTime}s / {duration}s
248
+ * <button onClick={toggle}>Toggle</button>
249
+ * </div>
250
+ * )
251
+ * }
252
+ * ```
253
+ */
254
+ declare function useVideoPlayer(): VideoPlayerContextValue;
255
+
256
+ interface BufferedIndicatorProps extends React.ComponentPropsWithRef<'div'> {
257
+ render?: RenderProp<BufferedIndicatorRenderProps, BufferedIndicatorState>;
258
+ }
259
+ interface BufferedIndicatorRenderProps {
260
+ ref: React.Ref<HTMLElement>;
261
+ style: React.CSSProperties;
262
+ 'aria-hidden': true;
263
+ }
264
+ interface BufferedIndicatorState {
265
+ buffered: TimeRanges | null;
266
+ duration: number;
267
+ bufferedPercentage: number;
268
+ bufferedEnd: number;
269
+ }
270
+ declare const BufferedIndicator: React.ForwardRefExoticComponent<Omit<BufferedIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
271
+ declare namespace BufferedIndicator {
272
+ type Props = BufferedIndicatorProps;
273
+ type State = BufferedIndicatorState;
274
+ }
275
+
276
+ declare enum CaptionsDataAttributes {
277
+ /** Applied when there are active caption cues being displayed. */
278
+ active = "data-active"
279
+ }
280
+
281
+ interface CaptionsProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
282
+ /**
283
+ * Custom render function for full control over caption rendering.
284
+ * Receives renderProps (ref, aria attributes, data attributes) and state (cues, text).
285
+ */
286
+ render?: RenderProp<CaptionsRenderProps, CaptionsState>;
287
+ /**
288
+ * Children to render instead of default cue text.
289
+ * Use the render prop or useVideoPlayer() hook to access cue data.
290
+ */
291
+ children?: React.ReactNode;
292
+ }
293
+ interface CaptionsRenderProps {
294
+ ref: React.Ref<HTMLDivElement>;
295
+ /** Announces caption changes to screen readers */
296
+ 'aria-live': 'polite';
297
+ /** Ensures the full caption is read, not just changes */
298
+ 'aria-atomic': true;
299
+ /** Role for accessibility */
300
+ role: 'status';
301
+ /** Allow clicks to pass through to video */
302
+ style: React.CSSProperties;
303
+ /** Applied when there are active cues */
304
+ [CaptionsDataAttributes.active]?: boolean;
305
+ }
306
+ interface CaptionsState {
307
+ /** Whether there are currently active cues */
308
+ active: boolean;
309
+ /** Combined text from all active cues (joined with newlines) */
310
+ cueText: string;
311
+ /** Raw VTTCue objects for advanced use cases */
312
+ cues: VTTCue[];
313
+ }
314
+ /**
315
+ * Renders caption text with full styling control and accessibility support.
316
+ * Uses aria-live="polite" to announce caption changes to screen readers.
317
+ *
318
+ * By default, renders the cue text directly. Use the render prop or children
319
+ * for custom rendering.
320
+ *
321
+ * @example
322
+ * // Default rendering with custom styles
323
+ * <VideoPlayer.Captions
324
+ * className="absolute bottom-16 bg-black/80 text-white px-4 py-2 rounded"
325
+ * />
326
+ *
327
+ * @example
328
+ * // Custom rendering with render prop
329
+ * <VideoPlayer.Captions
330
+ * render={(props, state) => (
331
+ * <div {...props} className="my-custom-captions">
332
+ * {state.cues.map((cue, i) => (
333
+ * <p key={i}>{cue.text}</p>
334
+ * ))}
335
+ * </div>
336
+ * )}
337
+ * />
338
+ */
339
+ declare const Captions: React.ForwardRefExoticComponent<Omit<CaptionsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
340
+ declare namespace Captions {
341
+ type Props = CaptionsProps;
342
+ type State = CaptionsState;
343
+ type RenderProps = CaptionsRenderProps;
344
+ }
345
+
346
+ declare enum CaptionsButtonDataAttributes {
347
+ /** Applied when captions are active. */
348
+ active = "data-active",
349
+ /** Applied when captions are available. */
350
+ available = "data-available"
351
+ }
352
+
353
+ interface CaptionsButtonProps extends React.ComponentPropsWithRef<'button'> {
354
+ render?: RenderProp<CaptionsButtonRenderProps, CaptionsButtonState>;
355
+ }
356
+ interface CaptionsButtonRenderProps {
357
+ ref: React.Ref<HTMLButtonElement>;
358
+ type: 'button';
359
+ 'aria-label': string;
360
+ 'aria-pressed': boolean;
361
+ disabled: boolean;
362
+ [CaptionsButtonDataAttributes.active]?: boolean;
363
+ [CaptionsButtonDataAttributes.available]?: boolean;
364
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
365
+ }
366
+ interface CaptionsButtonState {
367
+ active: boolean;
368
+ available: boolean;
369
+ trackCount: number;
370
+ }
371
+ declare const CaptionsButton: React.ForwardRefExoticComponent<Omit<CaptionsButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
372
+ declare namespace CaptionsButton {
373
+ type Props = CaptionsButtonProps;
374
+ type State = CaptionsButtonState;
375
+ }
376
+
377
+ declare enum CaptionsMenuDataAttributes {
378
+ /** Applied when a caption track is active. */
379
+ active = "data-active"
380
+ }
381
+
382
+ interface CaptionsMenuProps extends React.ComponentPropsWithRef<'div'> {
383
+ render?: RenderProp<CaptionsMenuRenderProps, CaptionsMenuState>;
384
+ }
385
+ interface CaptionsMenuRenderProps {
386
+ ref: React.Ref<HTMLDivElement>;
387
+ role: 'menu';
388
+ 'aria-label': string;
389
+ [CaptionsMenuDataAttributes.active]?: boolean;
390
+ }
391
+ interface CaptionsMenuState {
392
+ registeredTracks: TrackInfo[];
393
+ activeTextTrack: TextTrack | null;
394
+ }
395
+ interface CaptionsMenuItemProps extends React.ComponentPropsWithRef<'button'> {
396
+ track: TextTrack | null;
397
+ }
398
+ declare const CaptionsMenuItem: React.ForwardRefExoticComponent<Omit<CaptionsMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
399
+ declare const CaptionsMenu: React.ForwardRefExoticComponent<Omit<CaptionsMenuProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
400
+ declare namespace CaptionsMenu {
401
+ type Props = CaptionsMenuProps;
402
+ type State = CaptionsMenuState;
403
+ type ItemProps = CaptionsMenuItemProps;
404
+ }
405
+
406
+ declare enum ControlsDataAttributes {
407
+ /** Applied when the controls are visible. */
408
+ open = "data-open",
409
+ /** Applied when the controls are hidden. */
410
+ closed = "data-closed",
411
+ /** Applied when the player is idle (no user interaction). */
412
+ idle = "data-idle",
413
+ /** Applied when the video is playing. */
414
+ playing = "data-playing",
415
+ /** Applied when the video is paused. */
416
+ paused = "data-paused",
417
+ /** Applied when the video has ended. */
418
+ ended = "data-ended",
419
+ /** Applied on the first frame when entering. Use for CSS enter animations. */
420
+ startingStyle = "data-starting-style",
421
+ /** Applied during exit animation. Use for CSS exit animations. */
422
+ endingStyle = "data-ending-style"
423
+ }
424
+
425
+ interface ControlsProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
426
+ /**
427
+ * Delay before hiding after player becomes idle (ms).
428
+ * Defaults to Root's idleTimeout. Set to 0 to disable auto-hide.
429
+ */
430
+ idleTimeout?: number;
431
+ /**
432
+ * Keep the element always mounted in the DOM, even when closed.
433
+ * Only needed for JavaScript animation libraries (e.g., Framer Motion).
434
+ * CSS transitions and animations work automatically without this.
435
+ * @default false
436
+ */
437
+ keepMounted?: boolean;
438
+ render?: RenderProp<ControlsRenderProps, ControlsState>;
439
+ children?: React.ReactNode;
440
+ }
441
+ interface ControlsRenderProps {
442
+ ref: React.Ref<HTMLDivElement>;
443
+ onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
444
+ [ControlsDataAttributes.open]?: boolean;
445
+ [ControlsDataAttributes.closed]?: boolean;
446
+ [ControlsDataAttributes.idle]?: boolean;
447
+ [ControlsDataAttributes.playing]?: boolean;
448
+ [ControlsDataAttributes.paused]?: boolean;
449
+ [ControlsDataAttributes.ended]?: boolean;
450
+ [ControlsDataAttributes.startingStyle]?: boolean;
451
+ [ControlsDataAttributes.endingStyle]?: boolean;
452
+ }
453
+ interface ControlsState {
454
+ /** Whether the controls are currently visible */
455
+ open: boolean;
456
+ idle: boolean;
457
+ playing: boolean;
458
+ paused: boolean;
459
+ ended: boolean;
460
+ }
461
+ declare const Controls: React.ForwardRefExoticComponent<Omit<ControlsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
462
+ declare namespace Controls {
463
+ type Props = ControlsProps;
464
+ type State = ControlsState;
465
+ type RenderProps = ControlsRenderProps;
466
+ }
467
+
468
+ declare enum FullscreenButtonDataAttributes {
469
+ /** Applied when in fullscreen mode. */
470
+ fullscreen = "data-fullscreen",
471
+ /** Applied when fullscreen is supported. */
472
+ supported = "data-supported"
473
+ }
474
+
475
+ interface FullscreenButtonProps extends Omit<React.ComponentPropsWithRef<'button'>, 'children'> {
476
+ render?: RenderProp<FullscreenButtonRenderProps, FullscreenButtonState>;
477
+ children?: React.ReactNode;
478
+ }
479
+ interface FullscreenButtonRenderProps {
480
+ ref: React.Ref<HTMLButtonElement>;
481
+ type: 'button';
482
+ 'aria-label': string;
483
+ 'aria-pressed': boolean;
484
+ disabled: boolean;
485
+ [FullscreenButtonDataAttributes.fullscreen]?: boolean;
486
+ [FullscreenButtonDataAttributes.supported]?: boolean;
487
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
488
+ }
489
+ interface FullscreenButtonState {
490
+ fullscreen: boolean;
491
+ supported: boolean;
492
+ }
493
+ declare const FullscreenButton: React.ForwardRefExoticComponent<Omit<FullscreenButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
494
+ declare namespace FullscreenButton {
495
+ type Props = FullscreenButtonProps;
496
+ type State = FullscreenButtonState;
497
+ type RenderProps = FullscreenButtonRenderProps;
498
+ }
499
+
500
+ declare enum MuteButtonDataAttributes {
501
+ /** Applied when explicitly muted via toggle. */
502
+ muted = "data-muted",
503
+ /** Applied when either muted or volume === 0. */
504
+ volumeOff = "data-volume-off",
505
+ /** Applied when volume > 0 and not muted. */
506
+ volumeOn = "data-volume-on",
507
+ /** Applied when not muted and volume < 0.5. */
508
+ volumeLow = "data-volume-low",
509
+ /** Applied when not muted and volume >= 0.5. */
510
+ volumeHigh = "data-volume-high"
511
+ }
512
+
513
+ interface MuteButtonProps extends React.ComponentPropsWithRef<'button'> {
514
+ render?: RenderProp<MuteButtonRenderProps, MuteButtonState>;
515
+ }
516
+ interface MuteButtonRenderProps {
517
+ ref: React.Ref<HTMLButtonElement>;
518
+ type: 'button';
519
+ 'aria-label': string;
520
+ 'aria-pressed': boolean;
521
+ [MuteButtonDataAttributes.muted]?: boolean;
522
+ [MuteButtonDataAttributes.volumeOff]?: boolean;
523
+ [MuteButtonDataAttributes.volumeOn]?: boolean;
524
+ [MuteButtonDataAttributes.volumeLow]?: boolean;
525
+ [MuteButtonDataAttributes.volumeHigh]?: boolean;
526
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
527
+ }
528
+ interface MuteButtonState {
529
+ muted: boolean;
530
+ volume: number;
531
+ }
532
+ declare const MuteButton: React.ForwardRefExoticComponent<Omit<MuteButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
533
+ declare namespace MuteButton {
534
+ type Props = MuteButtonProps;
535
+ type State = MuteButtonState;
536
+ }
537
+
538
+ declare enum OverlayDataAttributes {
539
+ /** Applied when the overlay is visible. */
540
+ open = "data-open",
541
+ /** Applied when the overlay is hidden. */
542
+ closed = "data-closed",
543
+ /** Applied when the video is playing. */
544
+ playing = "data-playing",
545
+ /** Applied when the video is paused. */
546
+ paused = "data-paused",
547
+ /** Applied when the video has ended. */
548
+ ended = "data-ended",
549
+ /** Applied when the video is buffering/loading. */
550
+ waiting = "data-waiting",
551
+ /** Applied when the video is seeking to a new position. */
552
+ seeking = "data-seeking",
553
+ /** Applied when the player is in fullscreen mode. */
554
+ fullscreen = "data-fullscreen",
555
+ /** Applied when the video is in picture-in-picture mode. */
556
+ pip = "data-pip",
557
+ /** Applied on the first frame when entering. Use for CSS enter animations. */
558
+ startingStyle = "data-starting-style",
559
+ /** Applied during exit animation. Use for CSS exit animations. */
560
+ endingStyle = "data-ending-style"
561
+ }
562
+
563
+ interface OverlayProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
564
+ /**
565
+ * Delay before hiding after player becomes idle (ms).
566
+ * Defaults to Root's idleTimeout. Set to 0 to disable auto-hide.
567
+ */
568
+ idleTimeout?: number;
569
+ /**
570
+ * Keep the element always mounted in the DOM, even when closed.
571
+ * Only needed for JavaScript animation libraries (e.g., Framer Motion).
572
+ * CSS transitions and animations work automatically without this.
573
+ * @default false
574
+ */
575
+ keepMounted?: boolean;
576
+ render?: RenderProp<OverlayRenderProps, OverlayState>;
577
+ children?: React.ReactNode;
578
+ }
579
+ interface OverlayRenderProps {
580
+ ref: React.Ref<HTMLDivElement>;
581
+ onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
582
+ [OverlayDataAttributes.playing]?: boolean;
583
+ [OverlayDataAttributes.paused]?: boolean;
584
+ [OverlayDataAttributes.ended]?: boolean;
585
+ [OverlayDataAttributes.waiting]?: boolean;
586
+ [OverlayDataAttributes.seeking]?: boolean;
587
+ [OverlayDataAttributes.fullscreen]?: boolean;
588
+ [OverlayDataAttributes.pip]?: boolean;
589
+ [OverlayDataAttributes.open]?: boolean;
590
+ [OverlayDataAttributes.closed]?: boolean;
591
+ [OverlayDataAttributes.startingStyle]?: boolean;
592
+ [OverlayDataAttributes.endingStyle]?: boolean;
593
+ }
594
+ interface OverlayState {
595
+ playing: boolean;
596
+ paused: boolean;
597
+ ended: boolean;
598
+ waiting: boolean;
599
+ seeking: boolean;
600
+ fullscreen: boolean;
601
+ pictureInPicture: boolean;
602
+ /** Whether the overlay is currently visible (opposite of idle) */
603
+ open: boolean;
604
+ }
605
+ declare const Overlay: React.ForwardRefExoticComponent<Omit<OverlayProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
606
+ declare namespace Overlay {
607
+ type Props = OverlayProps;
608
+ type State = OverlayState;
609
+ type RenderProps = OverlayRenderProps;
610
+ }
611
+
612
+ declare enum PictureInPictureButtonDataAttributes {
613
+ /** Applied when in picture-in-picture mode. */
614
+ pip = "data-pip",
615
+ /** Applied when picture-in-picture is supported. */
616
+ supported = "data-supported"
617
+ }
618
+
619
+ interface PictureInPictureButtonProps extends React.ComponentPropsWithRef<'button'> {
620
+ render?: RenderProp<PictureInPictureButtonRenderProps, PictureInPictureButtonState>;
621
+ }
622
+ interface PictureInPictureButtonRenderProps {
623
+ ref: React.Ref<HTMLButtonElement>;
624
+ type: 'button';
625
+ 'aria-label': string;
626
+ 'aria-pressed': boolean;
627
+ disabled: boolean;
628
+ [PictureInPictureButtonDataAttributes.pip]?: boolean;
629
+ [PictureInPictureButtonDataAttributes.supported]?: boolean;
630
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
631
+ }
632
+ interface PictureInPictureButtonState {
633
+ pictureInPicture: boolean;
634
+ supported: boolean;
635
+ }
636
+ declare const PictureInPictureButton: React.ForwardRefExoticComponent<Omit<PictureInPictureButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
637
+ declare namespace PictureInPictureButton {
638
+ type Props = PictureInPictureButtonProps;
639
+ type State = PictureInPictureButtonState;
640
+ }
641
+
642
+ declare enum PlayButtonDataAttributes {
643
+ /** Applied when the video is playing. */
644
+ playing = "data-playing",
645
+ /** Applied when the video is paused. */
646
+ paused = "data-paused",
647
+ /** Applied when the video has ended. */
648
+ ended = "data-ended",
649
+ /** Applied when the video is buffering/waiting for data. */
650
+ waiting = "data-waiting"
651
+ }
652
+
653
+ interface PlayButtonProps extends Omit<React.ComponentPropsWithRef<'button'>, 'children'> {
654
+ render?: RenderProp<PlayButtonRenderProps, PlayButtonState>;
655
+ children?: React.ReactNode;
656
+ }
657
+ interface PlayButtonRenderProps {
658
+ ref: React.Ref<HTMLButtonElement>;
659
+ type: 'button';
660
+ 'aria-label': string;
661
+ [PlayButtonDataAttributes.playing]?: boolean;
662
+ [PlayButtonDataAttributes.paused]?: boolean;
663
+ [PlayButtonDataAttributes.ended]?: boolean;
664
+ [PlayButtonDataAttributes.waiting]?: boolean;
665
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
666
+ }
667
+ interface PlayButtonState {
668
+ playing: boolean;
669
+ paused: boolean;
670
+ ended: boolean;
671
+ waiting: boolean;
672
+ }
673
+ declare const PlayButton: React.ForwardRefExoticComponent<Omit<PlayButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
674
+ declare namespace PlayButton {
675
+ type Props = PlayButtonProps;
676
+ type State = PlayButtonState;
677
+ type RenderProps = PlayButtonRenderProps;
678
+ }
679
+
680
+ declare enum PlaybackRateButtonDataAttributes {
681
+ /** The current playback rate value. */
682
+ rate = "data-rate"
683
+ }
684
+
685
+ interface PlaybackRateButtonProps extends React.ComponentPropsWithRef<'button'> {
686
+ /**
687
+ * Available playback rates to cycle through.
688
+ * @default [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
689
+ */
690
+ rates?: readonly number[];
691
+ render?: RenderProp<PlaybackRateButtonRenderProps, PlaybackRateButtonState>;
692
+ }
693
+ interface PlaybackRateButtonRenderProps {
694
+ ref: React.Ref<HTMLButtonElement>;
695
+ type: 'button';
696
+ 'aria-label': string;
697
+ [PlaybackRateButtonDataAttributes.rate]: number;
698
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
699
+ }
700
+ interface PlaybackRateButtonState {
701
+ playbackRate: number;
702
+ rates: readonly number[];
703
+ }
704
+ declare const PlaybackRateButton: React.ForwardRefExoticComponent<Omit<PlaybackRateButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
705
+ declare namespace PlaybackRateButton {
706
+ type Props = PlaybackRateButtonProps;
707
+ type State = PlaybackRateButtonState;
708
+ }
709
+
710
+ declare enum PlaybackRateMenuDataAttributes {
711
+ /** The current playback rate value. */
712
+ rate = "data-rate"
713
+ }
714
+
715
+ interface PlaybackRateMenuProps extends React.ComponentPropsWithRef<'div'> {
716
+ /**
717
+ * Available playback rates.
718
+ * @default [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
719
+ */
720
+ rates?: readonly number[];
721
+ render?: RenderProp<PlaybackRateMenuRenderProps, PlaybackRateMenuState>;
722
+ }
723
+ interface PlaybackRateMenuRenderProps {
724
+ ref: React.Ref<HTMLDivElement>;
725
+ role: 'menu';
726
+ 'aria-label': string;
727
+ [PlaybackRateMenuDataAttributes.rate]: number;
728
+ }
729
+ interface PlaybackRateMenuState {
730
+ playbackRate: number;
731
+ rates: readonly number[];
732
+ }
733
+ interface PlaybackRateMenuItemProps extends React.ComponentPropsWithRef<'button'> {
734
+ rate: number;
735
+ }
736
+ declare const PlaybackRateMenuItem: React.ForwardRefExoticComponent<Omit<PlaybackRateMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
737
+ declare const PlaybackRateMenu: React.ForwardRefExoticComponent<Omit<PlaybackRateMenuProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
738
+ declare namespace PlaybackRateMenu {
739
+ type Props = PlaybackRateMenuProps;
740
+ type State = PlaybackRateMenuState;
741
+ type ItemProps = PlaybackRateMenuItemProps;
742
+ }
743
+
744
+ interface PortalProps {
745
+ children: React.ReactNode;
746
+ /**
747
+ * Target container for the portal.
748
+ * @default document.body
749
+ */
750
+ container?: Element | null;
751
+ }
752
+ declare function Portal(props: PortalProps): React.ReactPortal | null;
753
+ declare namespace Portal {
754
+ type Props = PortalProps;
755
+ }
756
+
757
+ declare enum PosterDataAttributes {
758
+ /** Applied while the poster image is loading. */
759
+ loading = "data-loading",
760
+ /** Applied when the poster image has loaded. */
761
+ loaded = "data-loaded",
762
+ /** Applied on the first frame when entering. Use for CSS enter animations. */
763
+ startingStyle = "data-starting-style",
764
+ /** Applied during exit animation. Use for CSS exit animations. */
765
+ endingStyle = "data-ending-style"
766
+ }
767
+
768
+ interface PosterProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
769
+ /**
770
+ * Keep the element always mounted in the DOM, even when loaded.
771
+ * Only needed for JavaScript animation libraries (e.g., Framer Motion).
772
+ * CSS transitions and animations work automatically without this.
773
+ * @default false
774
+ */
775
+ keepMounted?: boolean;
776
+ render?: RenderProp<PosterRenderProps, PosterState>;
777
+ children?: React.ReactNode;
778
+ }
779
+ interface PosterRenderProps {
780
+ ref: React.Ref<HTMLDivElement>;
781
+ 'aria-hidden': true;
782
+ [PosterDataAttributes.loading]?: boolean;
783
+ [PosterDataAttributes.loaded]?: boolean;
784
+ [PosterDataAttributes.startingStyle]?: boolean;
785
+ [PosterDataAttributes.endingStyle]?: boolean;
786
+ }
787
+ interface PosterState {
788
+ loading: boolean;
789
+ loaded: boolean;
790
+ transitionStatus: 'starting' | 'ending' | undefined;
791
+ }
792
+ declare const Poster: React.ForwardRefExoticComponent<Omit<PosterProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
793
+ declare namespace Poster {
794
+ type Props = PosterProps;
795
+ type State = PosterState;
796
+ type RenderProps = PosterRenderProps;
797
+ }
798
+
799
+ declare enum QualityMenuDataAttributes {
800
+ /** The current quality label. */
801
+ quality = "data-quality"
802
+ }
803
+
804
+ interface QualityMenuProps extends React.ComponentPropsWithRef<'div'> {
805
+ render?: RenderProp<QualityMenuRenderProps, QualityMenuState>;
806
+ }
807
+ interface QualityMenuRenderProps {
808
+ ref: React.Ref<any>;
809
+ role: 'menu';
810
+ 'aria-label': string;
811
+ [QualityMenuDataAttributes.quality]?: string;
812
+ }
813
+ interface QualityMenuState {
814
+ qualities: VideoQuality[];
815
+ activeQuality: VideoQuality | null;
816
+ }
817
+ interface QualityMenuItemProps extends React.ComponentPropsWithRef<'button'> {
818
+ quality: VideoQuality;
819
+ }
820
+ declare const QualityMenuItem: React.ForwardRefExoticComponent<Omit<QualityMenuItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
821
+ declare const QualityMenu: React.ForwardRefExoticComponent<Omit<QualityMenuProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
822
+ declare namespace QualityMenu {
823
+ type Props = QualityMenuProps;
824
+ type State = QualityMenuState;
825
+ type ItemProps = QualityMenuItemProps;
826
+ }
827
+
828
+ declare enum RootDataAttributes {
829
+ /** Applied when the video is playing. */
830
+ playing = "data-playing",
831
+ /** Applied when the video is paused. */
832
+ paused = "data-paused",
833
+ /** Applied when the video has ended. */
834
+ ended = "data-ended",
835
+ /** Applied when the video is buffering/loading. */
836
+ waiting = "data-waiting",
837
+ /** Applied when the video is seeking to a new position. */
838
+ seeking = "data-seeking",
839
+ /** Applied when the player is in fullscreen mode. */
840
+ fullscreen = "data-fullscreen",
841
+ /** Applied when the video is in picture-in-picture mode. */
842
+ pip = "data-pip",
843
+ /** Applied when the audio is muted. */
844
+ muted = "data-muted",
845
+ /** Applied when the player is idle (no user interaction). */
846
+ idle = "data-idle"
847
+ }
848
+
849
+ declare enum SeekSliderCssVars {
850
+ /** Current playback progress as a percentage (e.g., "45%"). */
851
+ progress = "--seek-progress",
852
+ /** Buffered progress as a percentage (e.g., "80%"). */
853
+ buffered = "--seek-buffered",
854
+ /** Current playback time in seconds. */
855
+ currentTime = "--seek-current-time",
856
+ /** Total video duration in seconds. */
857
+ duration = "--seek-duration",
858
+ /** Hover position as a percentage (e.g., "60%"). Only set when hovering. */
859
+ hoverProgress = "--seek-hover-progress",
860
+ /** Hover time in seconds. Only set when hovering. */
861
+ hoverTime = "--seek-hover-time"
862
+ }
863
+
864
+ declare enum SeekSliderDataAttributes {
865
+ /** Applied when the video is actively seeking. */
866
+ seeking = "data-seeking",
867
+ /** Applied when the pointer is hovering over the slider. */
868
+ hovering = "data-hovering",
869
+ /** Applied when the pointer is pressed down on the slider. */
870
+ pressing = "data-pressing",
871
+ /** Applied when the user is actively dragging the slider thumb. */
872
+ dragging = "data-dragging"
873
+ }
874
+
875
+ declare enum SeekSliderPreviewThumbDataAttributes {
876
+ /** Applied when the preview thumb is visible (hovering over slider). */
877
+ open = "data-open",
878
+ /** Applied when the preview thumb is hidden (not hovering). */
879
+ closed = "data-closed",
880
+ /** Applied on the first frame when entering. Use for CSS enter animations. */
881
+ startingStyle = "data-starting-style",
882
+ /** Applied during exit animation. Use for CSS exit animations. */
883
+ endingStyle = "data-ending-style"
884
+ }
885
+
886
+ interface SeekSliderProps extends Omit<React.ComponentPropsWithRef<typeof Slider.Root>, 'value' | 'onValueChange' | 'min' | 'max' | 'children' | 'render'> {
887
+ render?: RenderProp<SeekSliderRenderProps, SeekSliderState>;
888
+ children?: React.ReactNode;
889
+ }
890
+ interface SeekSliderRenderProps {
891
+ [SeekSliderDataAttributes.seeking]?: boolean;
892
+ [SeekSliderDataAttributes.hovering]?: boolean;
893
+ [SeekSliderDataAttributes.pressing]?: boolean;
894
+ [SeekSliderDataAttributes.dragging]?: boolean;
895
+ style: React.CSSProperties;
896
+ }
897
+ interface SeekSliderState {
898
+ currentTime: number;
899
+ duration: number;
900
+ progress: number;
901
+ seeking: boolean;
902
+ pressing: boolean;
903
+ dragging: boolean;
904
+ hoverTime: number | null;
905
+ hoverProgress: number | null;
906
+ }
907
+ declare const SeekSliderControl: React.ForwardRefExoticComponent<_base_ui_react_slider.SliderControlProps & React.RefAttributes<HTMLDivElement>>;
908
+ interface SeekSliderTrackProps extends Omit<React.ComponentPropsWithRef<typeof Slider.Track>, 'render' | 'children'> {
909
+ render?: RenderProp<SeekSliderTrackRenderProps, SeekSliderTrackState>;
910
+ children?: React.ReactNode;
911
+ }
912
+ interface SeekSliderTrackRenderProps {
913
+ ref: React.Ref<any>;
914
+ style: React.CSSProperties;
915
+ }
916
+ type SeekSliderTrackState = {};
917
+ interface SeekSliderProgressProps extends Omit<React.ComponentPropsWithRef<typeof Slider.Indicator>, 'render' | 'children'> {
918
+ render?: RenderProp<SeekSliderProgressRenderProps, SeekSliderProgressState>;
919
+ children?: React.ReactNode;
920
+ }
921
+ interface SeekSliderProgressRenderProps {
922
+ ref: React.Ref<any>;
923
+ style: React.CSSProperties;
924
+ }
925
+ interface SeekSliderProgressState {
926
+ progress: number;
927
+ }
928
+ interface SeekSliderThumbProps extends Omit<React.ComponentPropsWithRef<typeof Slider.Thumb>, 'render' | 'children'> {
929
+ render?: RenderProp<SeekSliderThumbRenderProps, SeekSliderThumbState>;
930
+ children?: React.ReactNode;
931
+ }
932
+ interface SeekSliderThumbRenderProps {
933
+ ref: React.Ref<any>;
934
+ style: React.CSSProperties;
935
+ }
936
+ type SeekSliderThumbState = {};
937
+ interface SeekSliderBufferedProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
938
+ render?: RenderProp<SeekSliderBufferedRenderProps, SeekSliderBufferedState>;
939
+ children?: React.ReactNode;
940
+ }
941
+ interface SeekSliderBufferedRenderProps {
942
+ ref: React.Ref<HTMLDivElement>;
943
+ style: React.CSSProperties;
944
+ }
945
+ interface SeekSliderBufferedState {
946
+ bufferedPercentage: number;
947
+ }
948
+ interface SeekSliderPreviewThumbProps extends Omit<React.ComponentPropsWithRef<'span'>, 'children'> {
949
+ keepMounted?: boolean;
950
+ render?: RenderProp<SeekSliderPreviewThumbRenderProps, SeekSliderPreviewThumbState>;
951
+ children?: React.ReactNode;
952
+ }
953
+ interface SeekSliderPreviewThumbRenderProps {
954
+ ref: React.Ref<any>;
955
+ style: React.CSSProperties;
956
+ [SeekSliderPreviewThumbDataAttributes.open]?: boolean;
957
+ [SeekSliderPreviewThumbDataAttributes.closed]?: boolean;
958
+ [SeekSliderPreviewThumbDataAttributes.startingStyle]?: boolean;
959
+ [SeekSliderPreviewThumbDataAttributes.endingStyle]?: boolean;
960
+ }
961
+ interface SeekSliderPreviewThumbState {
962
+ open: boolean;
963
+ transitionStatus: 'starting' | 'ending' | undefined;
964
+ hoverProgress: number;
965
+ }
966
+ interface SeekSliderHoverProps extends Omit<React.ComponentPropsWithRef<'div'>, 'children'> {
967
+ render?: RenderProp<SeekSliderHoverRenderProps, SeekSliderHoverState>;
968
+ children?: React.ReactNode;
969
+ }
970
+ interface SeekSliderHoverRenderProps {
971
+ ref: React.Ref<HTMLDivElement>;
972
+ style: React.CSSProperties;
973
+ 'data-hovering'?: boolean;
974
+ }
975
+ interface SeekSliderHoverState {
976
+ hovering: boolean;
977
+ hoverProgress: number | null;
978
+ hoverTime: number | null;
979
+ }
980
+ interface SeekSliderPreviewTooltipPortalProps {
981
+ children: React.ReactNode;
982
+ /** Portal container. Defaults to the VideoPlayer root element. */
983
+ container?: Element | null;
984
+ }
985
+ declare function SeekSliderPreviewTooltipPortal({ children, container, }: SeekSliderPreviewTooltipPortalProps): React.ReactPortal | null;
986
+ interface SeekSliderPreviewTooltipPositionerProps extends React.ComponentPropsWithRef<'div'> {
987
+ /** Offset from the anchor (thumb) in pixels (default: 8) */
988
+ sideOffset?: number;
989
+ /** Padding from collision boundary edges (default: 0) */
990
+ collisionPadding?: Padding;
991
+ /** Custom collision boundary element(s) */
992
+ collisionBoundary?: Element | Element[];
993
+ /** Keep mounted in DOM even when closed (default: false) */
994
+ keepMounted?: boolean;
995
+ children?: React.ReactNode;
996
+ }
997
+ declare const SeekSliderPreviewTooltipPositioner: React.ForwardRefExoticComponent<Omit<SeekSliderPreviewTooltipPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
998
+ interface SeekSliderPreviewTooltipPopupProps extends React.ComponentPropsWithRef<'div'> {
999
+ children?: React.ReactNode;
1000
+ }
1001
+ declare const SeekSliderPreviewTooltipPopup: React.ForwardRefExoticComponent<Omit<SeekSliderPreviewTooltipPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1002
+ interface SeekSliderPreviewTooltipProps extends Omit<SeekSliderPreviewTooltipPopupProps, 'ref'> {
1003
+ /** Offset from the anchor (thumb) in pixels (default: 8) */
1004
+ sideOffset?: number;
1005
+ /** Padding from collision boundary edges (default: 0) */
1006
+ collisionPadding?: Padding;
1007
+ /** Custom collision boundary element(s) */
1008
+ collisionBoundary?: Element | Element[];
1009
+ /** Keep mounted in DOM even when closed (default: false) */
1010
+ keepMounted?: boolean;
1011
+ /** Portal container element */
1012
+ container?: Element | null;
1013
+ }
1014
+ declare const SeekSlider: React.ForwardRefExoticComponent<Omit<SeekSliderProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1015
+ declare namespace SeekSlider {
1016
+ type Props = SeekSliderProps;
1017
+ type State = SeekSliderState;
1018
+ type RenderProps = SeekSliderRenderProps;
1019
+ }
1020
+ declare const SeekSliderTrack: React.ForwardRefExoticComponent<Omit<SeekSliderTrackProps, "ref"> & React.RefAttributes<HTMLElement>>;
1021
+ declare namespace SeekSliderTrack {
1022
+ type Props = SeekSliderTrackProps;
1023
+ type State = SeekSliderTrackState;
1024
+ type RenderProps = SeekSliderTrackRenderProps;
1025
+ }
1026
+ declare const SeekSliderProgress: React.ForwardRefExoticComponent<Omit<SeekSliderProgressProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1027
+ declare namespace SeekSliderProgress {
1028
+ type Props = SeekSliderProgressProps;
1029
+ type State = SeekSliderProgressState;
1030
+ type RenderProps = SeekSliderProgressRenderProps;
1031
+ }
1032
+ declare const SeekSliderThumb: React.ForwardRefExoticComponent<Omit<SeekSliderThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1033
+ declare namespace SeekSliderThumb {
1034
+ type Props = SeekSliderThumbProps;
1035
+ type State = SeekSliderThumbState;
1036
+ type RenderProps = SeekSliderThumbRenderProps;
1037
+ }
1038
+ declare const SeekSliderBuffered: React.ForwardRefExoticComponent<Omit<SeekSliderBufferedProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1039
+ declare namespace SeekSliderBuffered {
1040
+ type Props = SeekSliderBufferedProps;
1041
+ type State = SeekSliderBufferedState;
1042
+ type RenderProps = SeekSliderBufferedRenderProps;
1043
+ }
1044
+ declare const SeekSliderPreviewThumb: React.ForwardRefExoticComponent<Omit<SeekSliderPreviewThumbProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
1045
+ declare namespace SeekSliderPreviewThumb {
1046
+ type Props = SeekSliderPreviewThumbProps;
1047
+ type State = SeekSliderPreviewThumbState;
1048
+ type RenderProps = SeekSliderPreviewThumbRenderProps;
1049
+ }
1050
+ declare const SeekSliderHover: React.ForwardRefExoticComponent<Omit<SeekSliderHoverProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1051
+ declare namespace SeekSliderHover {
1052
+ type Props = SeekSliderHoverProps;
1053
+ type State = SeekSliderHoverState;
1054
+ type RenderProps = SeekSliderHoverRenderProps;
1055
+ }
1056
+ declare function SeekSliderPreviewTooltip({ sideOffset, collisionPadding, collisionBoundary, keepMounted, container, children, ...popupProps }: SeekSliderPreviewTooltipProps): react_jsx_runtime.JSX.Element;
1057
+ declare namespace SeekSliderPreviewTooltip {
1058
+ var Portal: typeof SeekSliderPreviewTooltipPortal;
1059
+ var Positioner: React.ForwardRefExoticComponent<Omit<SeekSliderPreviewTooltipPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1060
+ var Popup: React.ForwardRefExoticComponent<Omit<SeekSliderPreviewTooltipPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1061
+ }
1062
+ declare namespace SeekSliderPreviewTooltip {
1063
+ type Props = SeekSliderPreviewTooltipProps;
1064
+ type PortalProps = SeekSliderPreviewTooltipPortalProps;
1065
+ type PositionerProps = SeekSliderPreviewTooltipPositionerProps;
1066
+ type PopupProps = SeekSliderPreviewTooltipPopupProps;
1067
+ }
1068
+
1069
+ declare enum ThumbnailDataAttributes {
1070
+ loading = "data-loading",
1071
+ ready = "data-ready",
1072
+ error = "data-error"
1073
+ }
1074
+
1075
+ interface ThumbnailProps extends Omit<React.ComponentPropsWithRef<'canvas'>, 'children'> {
1076
+ /**
1077
+ * The time in seconds to capture the thumbnail from.
1078
+ * If not provided, uses the current hoverTime from context.
1079
+ */
1080
+ time?: number | null;
1081
+ /**
1082
+ * Crossorigin attribute for the hidden video element.
1083
+ * Should match the main video's crossOrigin attribute.
1084
+ * @default 'anonymous'
1085
+ */
1086
+ crossOrigin?: '' | 'anonymous' | 'use-credentials';
1087
+ /**
1088
+ * Render prop for custom rendering.
1089
+ */
1090
+ render?: RenderProp<ThumbnailRenderProps, ThumbnailState>;
1091
+ children?: React.ReactNode;
1092
+ }
1093
+ interface ThumbnailRenderProps {
1094
+ ref: React.Ref<HTMLCanvasElement>;
1095
+ width: number;
1096
+ height: number;
1097
+ [ThumbnailDataAttributes.loading]?: boolean;
1098
+ [ThumbnailDataAttributes.ready]?: boolean;
1099
+ [ThumbnailDataAttributes.error]?: boolean;
1100
+ }
1101
+ interface ThumbnailState {
1102
+ loading: boolean;
1103
+ ready: boolean;
1104
+ error: boolean;
1105
+ time: number | null;
1106
+ /** Natural width of the video */
1107
+ videoWidth: number;
1108
+ /** Natural height of the video */
1109
+ videoHeight: number;
1110
+ }
1111
+ declare const Thumbnail: React.ForwardRefExoticComponent<Omit<ThumbnailProps, "ref"> & React.RefAttributes<HTMLCanvasElement>>;
1112
+ declare namespace Thumbnail {
1113
+ type Props = ThumbnailProps;
1114
+ type State = ThumbnailState;
1115
+ type RenderProps = ThumbnailRenderProps;
1116
+ }
1117
+
1118
+ declare enum TimeDisplayDataAttributes {
1119
+ /** Applied when the seek slider is being hovered and hover time is available. */
1120
+ hovering = "data-hovering"
1121
+ }
1122
+
1123
+ type TimeDisplayFormat = 'current' | 'duration' | 'remaining' | 'current / duration' | 'current / remaining' | 'hover';
1124
+ interface TimeDisplayProps extends React.ComponentPropsWithRef<'span'> {
1125
+ format?: TimeDisplayFormat;
1126
+ /**
1127
+ * When true, reserves space for the maximum possible width based on
1128
+ * the duration format, preventing layout shift during playback/seeking.
1129
+ * @default true
1130
+ */
1131
+ fixedWidth?: boolean;
1132
+ /**
1133
+ * Alignment of the text within the reserved space when fixedWidth is true.
1134
+ * @default 'left'
1135
+ */
1136
+ align?: 'left' | 'center' | 'right';
1137
+ render?: RenderProp<TimeDisplayRenderProps, TimeDisplayState>;
1138
+ }
1139
+ interface TimeDisplayRenderProps {
1140
+ ref: React.Ref<HTMLElement>;
1141
+ style: React.CSSProperties;
1142
+ [TimeDisplayDataAttributes.hovering]?: boolean;
1143
+ }
1144
+ interface TimeDisplayState {
1145
+ currentTime: number;
1146
+ duration: number;
1147
+ remaining: number;
1148
+ hoverTime: number | null;
1149
+ hovering: boolean;
1150
+ formattedCurrent: string;
1151
+ formattedDuration: string;
1152
+ formattedRemaining: string;
1153
+ formattedHover: string | null;
1154
+ }
1155
+ declare const TimeDisplay: React.ForwardRefExoticComponent<Omit<TimeDisplayProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
1156
+ declare namespace TimeDisplay {
1157
+ type Props = TimeDisplayProps;
1158
+ type State = TimeDisplayState;
1159
+ type Format = TimeDisplayFormat;
1160
+ }
1161
+
1162
+ interface TrackProps extends Omit<React.ComponentPropsWithRef<'track'>, 'kind'> {
1163
+ /** Track kind (defaults to 'captions') */
1164
+ kind?: TextTrackKind;
1165
+ /** Source URL for the track file (.vtt) */
1166
+ src: string;
1167
+ /** Human-readable label displayed in caption menus */
1168
+ label: string;
1169
+ /** Language code (e.g., 'en', 'es', 'fr') */
1170
+ srcLang: string;
1171
+ /** Set as the default track (auto-enabled) */
1172
+ default?: boolean;
1173
+ }
1174
+ /**
1175
+ * Wraps native <track> element and registers with VideoPlayer context.
1176
+ * Must be used as a child of VideoPlayer.Video.
1177
+ *
1178
+ * @example
1179
+ * <VideoPlayer.Video>
1180
+ * <VideoPlayer.Track
1181
+ * kind="captions"
1182
+ * src="/captions-en.vtt"
1183
+ * label="English"
1184
+ * srcLang="en"
1185
+ * />
1186
+ * </VideoPlayer.Video>
1187
+ */
1188
+ declare const Track: React.ForwardRefExoticComponent<Omit<TrackProps, "ref"> & React.RefAttributes<HTMLTrackElement>>;
1189
+ declare namespace Track {
1190
+ type Props = TrackProps;
1191
+ }
1192
+
1193
+ interface VideoProps extends Omit<React.ComponentPropsWithRef<'video'>, 'onTimeUpdate' | 'onDurationChange' | 'onProgress' | 'onPlay' | 'onPause' | 'onEnded' | 'onWaiting' | 'onCanPlay' | 'onSeeking' | 'onSeeked' | 'onVolumeChange' | 'onLoadedMetadata'> {
1194
+ /**
1195
+ * Toggle play/pause when clicking on the video.
1196
+ * @default true
1197
+ */
1198
+ toggleOnClick?: boolean;
1199
+ }
1200
+ interface VideoState {
1201
+ playing: boolean;
1202
+ paused: boolean;
1203
+ ended: boolean;
1204
+ waiting: boolean;
1205
+ seeking: boolean;
1206
+ }
1207
+ declare const Video: React.ForwardRefExoticComponent<Omit<VideoProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
1208
+ declare namespace Video {
1209
+ type Props = VideoProps;
1210
+ type State = VideoState;
1211
+ }
1212
+
1213
+ declare enum VolumeSliderCssVars {
1214
+ /** Raw volume value (0-1). */
1215
+ volume = "--volume",
1216
+ /** Volume as a percentage (e.g., "75%"). */
1217
+ volumePercentage = "--volume-percentage"
1218
+ }
1219
+
1220
+ declare enum VolumeSliderDataAttributes {
1221
+ /** Applied when the audio is muted. */
1222
+ muted = "data-muted",
1223
+ /** The current volume level (0-1). */
1224
+ volume = "data-volume",
1225
+ /** Applied when the slider is being pressed. */
1226
+ pressing = "data-pressing",
1227
+ /** Applied when the slider is being dragged after pressing. */
1228
+ dragging = "data-dragging"
1229
+ }
1230
+
1231
+ interface VolumeSliderProps extends Omit<React.ComponentPropsWithRef<typeof Slider.Root>, 'value' | 'onValueChange' | 'min' | 'max' | 'step' | 'render'> {
1232
+ render?: RenderProp<VolumeSliderRenderProps, VolumeSliderState>;
1233
+ }
1234
+ interface VolumeSliderRenderProps {
1235
+ [VolumeSliderDataAttributes.muted]?: boolean;
1236
+ [VolumeSliderDataAttributes.volume]: number;
1237
+ [VolumeSliderDataAttributes.pressing]?: boolean;
1238
+ [VolumeSliderDataAttributes.dragging]?: boolean;
1239
+ style: React.CSSProperties;
1240
+ }
1241
+ interface VolumeSliderState {
1242
+ volume: number;
1243
+ muted: boolean;
1244
+ percentage: number;
1245
+ pressing: boolean;
1246
+ dragging: boolean;
1247
+ }
1248
+ declare const VolumeSliderControl: React.ForwardRefExoticComponent<_base_ui_react_slider.SliderControlProps & React.RefAttributes<HTMLDivElement>>;
1249
+ interface VolumeSliderTrackProps extends React.ComponentPropsWithRef<typeof Slider.Track> {
1250
+ }
1251
+ declare const VolumeSliderTrack: React.ForwardRefExoticComponent<Omit<VolumeSliderTrackProps, "ref"> & React.RefAttributes<HTMLElement>>;
1252
+ interface VolumeSliderRangeProps extends React.ComponentPropsWithRef<typeof Slider.Indicator> {
1253
+ }
1254
+ declare const VolumeSliderRange: React.ForwardRefExoticComponent<Omit<VolumeSliderRangeProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1255
+ interface VolumeSliderThumbProps extends React.ComponentPropsWithRef<typeof Slider.Thumb> {
1256
+ }
1257
+ declare const VolumeSliderThumb: React.ForwardRefExoticComponent<Omit<VolumeSliderThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1258
+ declare const VolumeSlider: React.ForwardRefExoticComponent<Omit<VolumeSliderProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
1259
+ declare namespace VolumeSlider {
1260
+ type Props = VolumeSliderProps;
1261
+ type State = VolumeSliderState;
1262
+ }
1263
+
1264
+ type TransitionStatus = 'starting' | 'ending' | undefined;
1265
+ interface UseTransitionStatusOptions {
1266
+ /**
1267
+ * Whether the element should be visible/open.
1268
+ */
1269
+ open: boolean;
1270
+ /**
1271
+ * Keep the element always mounted in the DOM, even when closed.
1272
+ * Only needed for JavaScript animation libraries (e.g., Framer Motion).
1273
+ * CSS transitions and animations work automatically without this.
1274
+ * @default false
1275
+ */
1276
+ keepMounted?: boolean;
1277
+ }
1278
+ interface UseTransitionStatusReturn {
1279
+ /**
1280
+ * Whether the element should be rendered in the DOM.
1281
+ * Stays true during exit animations.
1282
+ */
1283
+ mounted: boolean;
1284
+ /**
1285
+ * Current transition status:
1286
+ * - 'starting': First frame of enter animation
1287
+ * - 'ending': Exit animation in progress
1288
+ * - undefined: Idle state
1289
+ */
1290
+ transitionStatus: TransitionStatus;
1291
+ /**
1292
+ * Ref to attach to the animated element.
1293
+ * Used to detect when CSS animations/transitions complete.
1294
+ */
1295
+ elementRef: React.RefObject<HTMLElement | null>;
1296
+ }
1297
+ declare function useTransitionStatus(options: UseTransitionStatusOptions): UseTransitionStatusReturn;
1298
+
1299
+ declare const index_parts_BufferedIndicator: typeof BufferedIndicator;
1300
+ declare const index_parts_Captions: typeof Captions;
1301
+ declare const index_parts_CaptionsButton: typeof CaptionsButton;
1302
+ type index_parts_CaptionsDataAttributes = CaptionsDataAttributes;
1303
+ declare const index_parts_CaptionsDataAttributes: typeof CaptionsDataAttributes;
1304
+ declare const index_parts_CaptionsMenu: typeof CaptionsMenu;
1305
+ declare const index_parts_CaptionsMenuItem: typeof CaptionsMenuItem;
1306
+ declare const index_parts_Controls: typeof Controls;
1307
+ type index_parts_ControlsDataAttributes = ControlsDataAttributes;
1308
+ declare const index_parts_ControlsDataAttributes: typeof ControlsDataAttributes;
1309
+ declare const index_parts_FullscreenButton: typeof FullscreenButton;
1310
+ declare const index_parts_MuteButton: typeof MuteButton;
1311
+ declare const index_parts_Overlay: typeof Overlay;
1312
+ type index_parts_OverlayDataAttributes = OverlayDataAttributes;
1313
+ declare const index_parts_OverlayDataAttributes: typeof OverlayDataAttributes;
1314
+ declare const index_parts_PictureInPictureButton: typeof PictureInPictureButton;
1315
+ declare const index_parts_PlayButton: typeof PlayButton;
1316
+ type index_parts_PlaybackIntent = PlaybackIntent;
1317
+ declare const index_parts_PlaybackRateButton: typeof PlaybackRateButton;
1318
+ declare const index_parts_PlaybackRateMenu: typeof PlaybackRateMenu;
1319
+ declare const index_parts_PlaybackRateMenuItem: typeof PlaybackRateMenuItem;
1320
+ type index_parts_PlaybackStatus = PlaybackStatus;
1321
+ declare const index_parts_Portal: typeof Portal;
1322
+ declare const index_parts_Poster: typeof Poster;
1323
+ declare const index_parts_QualityMenu: typeof QualityMenu;
1324
+ declare const index_parts_QualityMenuItem: typeof QualityMenuItem;
1325
+ type index_parts_RenderProp<Props = Record<string, unknown>, State = Record<string, unknown>> = RenderProp<Props, State>;
1326
+ type index_parts_RootDataAttributes = RootDataAttributes;
1327
+ declare const index_parts_RootDataAttributes: typeof RootDataAttributes;
1328
+ declare const index_parts_SeekSlider: typeof SeekSlider;
1329
+ declare const index_parts_SeekSliderBuffered: typeof SeekSliderBuffered;
1330
+ declare const index_parts_SeekSliderControl: typeof SeekSliderControl;
1331
+ type index_parts_SeekSliderCssVars = SeekSliderCssVars;
1332
+ declare const index_parts_SeekSliderCssVars: typeof SeekSliderCssVars;
1333
+ type index_parts_SeekSliderDataAttributes = SeekSliderDataAttributes;
1334
+ declare const index_parts_SeekSliderDataAttributes: typeof SeekSliderDataAttributes;
1335
+ declare const index_parts_SeekSliderHover: typeof SeekSliderHover;
1336
+ declare const index_parts_SeekSliderPreviewThumb: typeof SeekSliderPreviewThumb;
1337
+ type index_parts_SeekSliderPreviewThumbDataAttributes = SeekSliderPreviewThumbDataAttributes;
1338
+ declare const index_parts_SeekSliderPreviewThumbDataAttributes: typeof SeekSliderPreviewThumbDataAttributes;
1339
+ declare const index_parts_SeekSliderPreviewTooltip: typeof SeekSliderPreviewTooltip;
1340
+ declare const index_parts_SeekSliderPreviewTooltipPopup: typeof SeekSliderPreviewTooltipPopup;
1341
+ declare const index_parts_SeekSliderPreviewTooltipPortal: typeof SeekSliderPreviewTooltipPortal;
1342
+ declare const index_parts_SeekSliderPreviewTooltipPositioner: typeof SeekSliderPreviewTooltipPositioner;
1343
+ declare const index_parts_SeekSliderProgress: typeof SeekSliderProgress;
1344
+ declare const index_parts_SeekSliderThumb: typeof SeekSliderThumb;
1345
+ declare const index_parts_SeekSliderTrack: typeof SeekSliderTrack;
1346
+ declare const index_parts_Thumbnail: typeof Thumbnail;
1347
+ type index_parts_ThumbnailDataAttributes = ThumbnailDataAttributes;
1348
+ declare const index_parts_ThumbnailDataAttributes: typeof ThumbnailDataAttributes;
1349
+ declare const index_parts_TimeDisplay: typeof TimeDisplay;
1350
+ type index_parts_TimeDisplayDataAttributes = TimeDisplayDataAttributes;
1351
+ declare const index_parts_TimeDisplayDataAttributes: typeof TimeDisplayDataAttributes;
1352
+ declare const index_parts_Track: typeof Track;
1353
+ type index_parts_TrackInfo = TrackInfo;
1354
+ type index_parts_TransitionStatus = TransitionStatus;
1355
+ type index_parts_UseTransitionStatusOptions = UseTransitionStatusOptions;
1356
+ type index_parts_UseTransitionStatusReturn = UseTransitionStatusReturn;
1357
+ declare const index_parts_Video: typeof Video;
1358
+ type index_parts_VideoPlayerActions = VideoPlayerActions;
1359
+ type index_parts_VideoPlayerContextValue = VideoPlayerContextValue;
1360
+ type index_parts_VideoPlayerRootProps = VideoPlayerRootProps;
1361
+ type index_parts_VideoPlayerState = VideoPlayerState;
1362
+ type index_parts_VideoQuality = VideoQuality;
1363
+ type index_parts_VideoTextTrack = VideoTextTrack;
1364
+ declare const index_parts_VolumeSlider: typeof VolumeSlider;
1365
+ declare const index_parts_VolumeSliderControl: typeof VolumeSliderControl;
1366
+ type index_parts_VolumeSliderCssVars = VolumeSliderCssVars;
1367
+ declare const index_parts_VolumeSliderCssVars: typeof VolumeSliderCssVars;
1368
+ type index_parts_VolumeSliderDataAttributes = VolumeSliderDataAttributes;
1369
+ declare const index_parts_VolumeSliderDataAttributes: typeof VolumeSliderDataAttributes;
1370
+ declare const index_parts_VolumeSliderRange: typeof VolumeSliderRange;
1371
+ declare const index_parts_VolumeSliderThumb: typeof VolumeSliderThumb;
1372
+ declare const index_parts_VolumeSliderTrack: typeof VolumeSliderTrack;
1373
+ declare const index_parts_useTransitionStatus: typeof useTransitionStatus;
1374
+ declare const index_parts_useVideoPlayer: typeof useVideoPlayer;
1375
+ declare namespace index_parts {
1376
+ export { index_parts_BufferedIndicator as BufferedIndicator, index_parts_Captions as Captions, index_parts_CaptionsButton as CaptionsButton, index_parts_CaptionsDataAttributes as CaptionsDataAttributes, index_parts_CaptionsMenu as CaptionsMenu, index_parts_CaptionsMenuItem as CaptionsMenuItem, index_parts_Controls as Controls, index_parts_ControlsDataAttributes as ControlsDataAttributes, index_parts_FullscreenButton as FullscreenButton, index_parts_MuteButton as MuteButton, index_parts_Overlay as Overlay, index_parts_OverlayDataAttributes as OverlayDataAttributes, index_parts_PictureInPictureButton as PictureInPictureButton, index_parts_PlayButton as PlayButton, type index_parts_PlaybackIntent as PlaybackIntent, index_parts_PlaybackRateButton as PlaybackRateButton, index_parts_PlaybackRateMenu as PlaybackRateMenu, index_parts_PlaybackRateMenuItem as PlaybackRateMenuItem, type index_parts_PlaybackStatus as PlaybackStatus, index_parts_Portal as Portal, index_parts_Poster as Poster, index_parts_QualityMenu as QualityMenu, index_parts_QualityMenuItem as QualityMenuItem, type index_parts_RenderProp as RenderProp, VideoPlayerRoot as Root, index_parts_RootDataAttributes as RootDataAttributes, index_parts_SeekSlider as SeekSlider, index_parts_SeekSliderBuffered as SeekSliderBuffered, index_parts_SeekSliderControl as SeekSliderControl, index_parts_SeekSliderCssVars as SeekSliderCssVars, index_parts_SeekSliderDataAttributes as SeekSliderDataAttributes, index_parts_SeekSliderHover as SeekSliderHover, index_parts_SeekSliderPreviewThumb as SeekSliderPreviewThumb, index_parts_SeekSliderPreviewThumbDataAttributes as SeekSliderPreviewThumbDataAttributes, index_parts_SeekSliderPreviewTooltip as SeekSliderPreviewTooltip, index_parts_SeekSliderPreviewTooltipPopup as SeekSliderPreviewTooltipPopup, index_parts_SeekSliderPreviewTooltipPortal as SeekSliderPreviewTooltipPortal, index_parts_SeekSliderPreviewTooltipPositioner as SeekSliderPreviewTooltipPositioner, index_parts_SeekSliderProgress as SeekSliderProgress, index_parts_SeekSliderThumb as SeekSliderThumb, index_parts_SeekSliderTrack as SeekSliderTrack, index_parts_Thumbnail as Thumbnail, index_parts_ThumbnailDataAttributes as ThumbnailDataAttributes, index_parts_TimeDisplay as TimeDisplay, index_parts_TimeDisplayDataAttributes as TimeDisplayDataAttributes, index_parts_Track as Track, type index_parts_TrackInfo as TrackInfo, type index_parts_TransitionStatus as TransitionStatus, type index_parts_UseTransitionStatusOptions as UseTransitionStatusOptions, type index_parts_UseTransitionStatusReturn as UseTransitionStatusReturn, index_parts_Video as Video, type index_parts_VideoPlayerActions as VideoPlayerActions, type index_parts_VideoPlayerContextValue as VideoPlayerContextValue, type index_parts_VideoPlayerRootProps as VideoPlayerRootProps, type index_parts_VideoPlayerState as VideoPlayerState, type index_parts_VideoQuality as VideoQuality, type index_parts_VideoTextTrack as VideoTextTrack, index_parts_VolumeSlider as VolumeSlider, index_parts_VolumeSliderControl as VolumeSliderControl, index_parts_VolumeSliderCssVars as VolumeSliderCssVars, index_parts_VolumeSliderDataAttributes as VolumeSliderDataAttributes, index_parts_VolumeSliderRange as VolumeSliderRange, index_parts_VolumeSliderThumb as VolumeSliderThumb, index_parts_VolumeSliderTrack as VolumeSliderTrack, index_parts_useTransitionStatus as useTransitionStatus, index_parts_useVideoPlayer as useVideoPlayer };
1377
+ }
1378
+
1379
+ export { type PlaybackIntent, type PlaybackStatus, type RenderProp, index_parts as VideoPlayer, type VideoPlayerActions, type VideoPlayerContextValue, type VideoPlayerExternalActions, type VideoPlayerRootProps, type VideoPlayerRootState, type VideoPlayerState, type VideoQuality, type VideoTextTrack, useVideoPlayer };