@videojs/react 10.0.0-beta.28 → 10.0.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/default/i18n/index.js +2 -1
- package/dist/default/i18n/text.js +20 -0
- package/dist/default/i18n/text.js.map +1 -0
- package/dist/default/icons/dist/react/default/airplay-exit.js +3 -3
- package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/airplay-exit.js +3 -3
- package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/default/index.js +2 -1
- package/dist/default/media/hls-background-video/media.js +18 -3
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +103 -101
- package/dist/default/presets/audio/minimal-skin.js +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -1
- package/dist/default/presets/audio/skin.css +68 -69
- package/dist/default/presets/audio/skin.js +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +1 -1
- package/dist/default/presets/live-audio/minimal-skin.css +103 -101
- package/dist/default/presets/live-audio/skin.css +68 -69
- package/dist/default/presets/live-video/minimal-skin.css +140 -120
- package/dist/default/presets/live-video/minimal-skin.js +3 -8
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +5 -8
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/skin.css +89 -76
- package/dist/default/presets/live-video/skin.js +3 -8
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +7 -10
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +140 -120
- package/dist/default/presets/video/minimal-skin.js +3 -8
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +5 -8
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +89 -76
- package/dist/default/presets/video/skin.js +3 -8
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +6 -9
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/ui/gesture/gesture.js.map +1 -1
- package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/default/ui/hotkey/hotkey.js.map +1 -1
- package/dist/default/ui/menu/context.js +6 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/menu-item-indicator.js +3 -2
- package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-item.js +19 -15
- package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/default/ui/menu/menu-root.js +5 -6
- package/dist/default/ui/menu/menu-root.js.map +1 -1
- package/dist/default/ui/poster/poster.js +64 -17
- package/dist/default/ui/poster/poster.js.map +1 -1
- package/dist/default/ui/slider/slider-preview.js.map +1 -1
- package/dist/default/utils/use-render.js +2 -8
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/dev/i18n/index.d.ts +2 -1
- package/dist/dev/i18n/index.js +2 -1
- package/dist/dev/i18n/text.d.ts +11 -0
- package/dist/dev/i18n/text.d.ts.map +1 -0
- package/dist/dev/i18n/text.js +20 -0
- package/dist/dev/i18n/text.js.map +1 -0
- package/dist/dev/icons/dist/react/default/airplay-exit.js +3 -3
- package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js +3 -3
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/icons/index.d.ts +6 -1
- package/dist/dev/icons/index.d.ts.map +1 -0
- package/dist/dev/icons/minimal/index.d.ts +6 -1
- package/dist/dev/icons/minimal/index.d.ts.map +1 -0
- package/dist/dev/index.d.ts +3 -2
- package/dist/dev/index.js +2 -1
- package/dist/dev/media/hls-background-video/media.d.ts +8 -0
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +18 -3
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +103 -101
- package/dist/dev/presets/audio/minimal-skin.js +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -1
- package/dist/dev/presets/audio/player.d.ts +2 -2
- package/dist/dev/presets/audio/skin.css +68 -69
- package/dist/dev/presets/audio/skin.js +1 -1
- package/dist/dev/presets/audio/skin.tailwind.js +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.css +103 -101
- package/dist/dev/presets/live-audio/player.d.ts +2 -2
- package/dist/dev/presets/live-audio/skin.css +68 -69
- package/dist/dev/presets/live-video/minimal-skin.css +140 -120
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.js +3 -8
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js +5 -8
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/player.d.ts +2 -2
- package/dist/dev/presets/live-video/skin.css +89 -76
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.js +3 -8
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.js +7 -10
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +15 -2
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +140 -120
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +3 -8
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.js +5 -8
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/player.d.ts +2 -2
- package/dist/dev/presets/video/skin.css +89 -76
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +3 -8
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.js +6 -9
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/ui/gesture/gesture.d.ts +6 -13
- package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/gesture.js.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +2 -5
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts +2 -5
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/dev/ui/hotkey/hotkey.d.ts +6 -12
- package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
- package/dist/dev/ui/menu/context.js +6 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.js +3 -2
- package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.js +19 -15
- package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-root.js +5 -6
- package/dist/dev/ui/menu/menu-root.js.map +1 -1
- package/dist/dev/ui/poster/poster.d.ts +15 -4
- package/dist/dev/ui/poster/poster.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster.js +64 -17
- package/dist/dev/ui/poster/poster.js.map +1 -1
- package/dist/dev/ui/slider/slider-preview.d.ts +5 -9
- package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-preview.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +2 -8
- package/dist/dev/utils/use-render.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/skins.md +97 -96
- package/docs/how-to/customize-skins.md +421 -411
- package/docs/reference/create-player.md +2 -2
- package/docs/reference/menu.md +6 -18
- package/docs/reference/popover.md +6 -6
- package/docs/reference/poster.md +187 -13
- package/docs/reference/slider.md +1 -1
- package/docs/reference/time-slider.md +1 -1
- package/docs/reference/tooltip.md +10 -10
- package/docs/reference/volume-slider.md +1 -1
- package/package.json +13 -8
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@layer videojs.theme.base, videojs.theme.variant, videojs.theme.preferences;
|
|
2
|
+
|
|
3
|
+
@layer videojs.theme.base {
|
|
4
|
+
:is(.media-theme-default, .media-theme-minimal) {
|
|
5
|
+
--media-controls-transition-duration: 100ms;
|
|
6
|
+
--media-scale: 1;
|
|
7
|
+
--media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@layer videojs.theme.preferences {
|
|
12
|
+
@media (pointer: fine) {
|
|
13
|
+
:is(.media-theme-default, .media-theme-minimal):has([data-controls]:not([data-visible])) {
|
|
14
|
+
--media-controls-transition-duration: 300ms;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@media (pointer: coarse) {
|
|
19
|
+
:is(.media-theme-default, .media-theme-minimal):has([data-controls]:not([data-visible])) {
|
|
20
|
+
--media-controls-transition-duration: 150ms;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@media (prefers-reduced-motion: reduce) {
|
|
25
|
+
:is(.media-theme-default, .media-theme-minimal) {
|
|
26
|
+
--media-controls-transition-duration: 50ms;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
package/dist/dev/i18n/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { I18nContext, I18nContextValue, useLocale, useTranslator } from "./context.js";
|
|
2
2
|
import { CreateI18nOptions, CreateI18nResult, I18nProvider, I18nProviderProps, createI18n } from "./create-i18n.js";
|
|
3
|
+
import { Text, TextProps } from "./text.js";
|
|
3
4
|
import { FlatTranslations, LOCALES, Locale, TranslationParams, Translations, Translator, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n } from "@videojs/core/i18n";
|
|
4
|
-
export { type CreateI18nOptions, type CreateI18nResult, type FlatTranslations, I18nContext, type I18nContextValue, I18nProvider, type I18nProviderProps, LOCALES, type Locale, type TranslationParams, type Translations, type Translator, createI18n, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n, useLocale, useTranslator };
|
|
5
|
+
export { type CreateI18nOptions, type CreateI18nResult, type FlatTranslations, I18nContext, type I18nContextValue, I18nProvider, type I18nProviderProps, LOCALES, type Locale, Text, type TextProps, type TranslationParams, type Translations, type Translator, createI18n, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n, useLocale, useTranslator };
|
package/dist/dev/i18n/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { I18nContext, useLocale, useTranslator } from "./context.js";
|
|
3
3
|
import { I18nProvider, createI18n } from "./create-i18n.js";
|
|
4
|
+
import { Text } from "./text.js";
|
|
4
5
|
import { LOCALES, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n } from "@videojs/core/i18n";
|
|
5
|
-
export { I18nContext, I18nProvider, LOCALES, createI18n, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n, useLocale, useTranslator };
|
|
6
|
+
export { I18nContext, I18nProvider, LOCALES, Text, createI18n, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, isText, onI18nRegistryChange, registerI18n, useLocale, useTranslator };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentProps, ReactNode } from "react";
|
|
2
|
+
//#region src/i18n/text.d.ts
|
|
3
|
+
interface TextProps extends Omit<ComponentProps<'span'>, 'children'> {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
token?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
/** Renders translated compiler text through a native React span. */
|
|
8
|
+
declare function Text({ children, token, ...props }: TextProps): import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Text, TextProps };
|
|
11
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","names":[],"sources":["../../../src/i18n/text.tsx"],"mappings":";;UAKiB,kBAAkB,KAAK;EACtC,WAAW;EACX;;;iBAIc,OAAO,UAAU,UAAU,SAAS,4BAAS,IAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useTranslator } from "./context.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/i18n/text.tsx
|
|
5
|
+
/** Renders translated compiler text through a native React span. */
|
|
6
|
+
function Text({ children, token, ...props }) {
|
|
7
|
+
const t = useTranslator();
|
|
8
|
+
const fallback = typeof children === "string" || typeof children === "number" ? String(children) : void 0;
|
|
9
|
+
return /* @__PURE__ */ jsx("span", {
|
|
10
|
+
...props,
|
|
11
|
+
children: token ? t({
|
|
12
|
+
key: token,
|
|
13
|
+
text: fallback ?? token
|
|
14
|
+
}) : children
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Text };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","names":[],"sources":["../../../src/i18n/text.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useTranslator } from './context';\n\nexport interface TextProps extends Omit<ComponentProps<'span'>, 'children'> {\n children?: ReactNode;\n token?: string | undefined;\n}\n\n/** Renders translated compiler text through a native React span. */\nexport function Text({ children, token, ...props }: TextProps) {\n const t = useTranslator();\n const fallback = typeof children === 'string' || typeof children === 'number' ? String(children) : undefined;\n\n return <span {...props}>{token ? t({ key: token, text: fallback ?? token }) : children}</span>;\n}\n"],"mappings":";;;;;AAWA,SAAgB,KAAK,EAAE,UAAU,OAAO,GAAG,SAAoB;CAC7D,MAAM,IAAI,cAAc;CACxB,MAAM,WAAW,OAAO,aAAa,YAAY,OAAO,aAAa,WAAW,OAAO,QAAQ,IAAI,KAAA;CAEnG,OAAO,oBAAC,QAAD;EAAM,GAAI;EAAQ,UAAA,QAAQ,EAAE;GAAE,KAAK;GAAO,MAAM,YAAY;EAAM,CAAC,IAAI;CAAe,CAAA;AAC/F"}
|
|
@@ -9,15 +9,15 @@ const AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs("svg", {
|
|
|
9
9
|
viewBox: "0 0 18 18",
|
|
10
10
|
...props,
|
|
11
11
|
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("style", { children: "@keyframes media-icon
|
|
12
|
+
/* @__PURE__ */ jsx("style", { children: "@keyframes media-icon-airplay-triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon-airplay-fill{0%{opacity:0}to{opacity:.2}}@media (prefers-reduced-motion:reduce){:root{--media-icon-airplay-fill-animation:none;--media-icon-airplay-triangle-animation:none}}" }),
|
|
13
13
|
/* @__PURE__ */ jsx("path", {
|
|
14
14
|
d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z",
|
|
15
|
-
style: { animation: "var(--media-icon
|
|
15
|
+
style: { animation: "var(--media-icon-airplay-fill-animation, media-icon-airplay-fill 1s ease-in-out infinite alternate)" }
|
|
16
16
|
}),
|
|
17
17
|
/* @__PURE__ */ jsx("path", { d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z" }),
|
|
18
18
|
/* @__PURE__ */ jsx("path", {
|
|
19
19
|
d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z",
|
|
20
|
-
style: { animation: "var(--media-icon
|
|
20
|
+
style: { animation: "var(--media-icon-airplay-triangle-animation, media-icon-airplay-triangle 1s ease-in-out infinite alternate)" }
|
|
21
21
|
})
|
|
22
22
|
]
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/airplay-exit.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ _jsxs(\"svg\", {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: 18,\n\theight: 18,\n\tfill: \"currentColor\",\n\t\"aria-hidden\": \"true\",\n\tviewBox: \"0 0 18 18\",\n\t...props,\n\tchildren: [\n\t\t/* @__PURE__ */ _jsx(\"style\", { children: \"@keyframes media-icon
|
|
1
|
+
{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/default/airplay-exit.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ _jsxs(\"svg\", {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: 18,\n\theight: 18,\n\tfill: \"currentColor\",\n\t\"aria-hidden\": \"true\",\n\tviewBox: \"0 0 18 18\",\n\t...props,\n\tchildren: [\n\t\t/* @__PURE__ */ _jsx(\"style\", { children: \"@keyframes media-icon-airplay-triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon-airplay-fill{0%{opacity:0}to{opacity:.2}}@media (prefers-reduced-motion:reduce){:root{--media-icon-airplay-fill-animation:none;--media-icon-airplay-triangle-animation:none}}\" }),\n\t\t/* @__PURE__ */ _jsx(\"path\", {\n\t\t\td: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\",\n\t\t\tstyle: { animation: \"var(--media-icon-airplay-fill-animation, media-icon-airplay-fill 1s ease-in-out infinite alternate)\" }\n\t\t}),\n\t\t/* @__PURE__ */ _jsx(\"path\", { d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13 12h1.5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 14.5 4h-11A1.5 1.5 0 0 0 2 5.5v5A1.5 1.5 0 0 0 3.5 12H5l-1.968 1.967A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\" }),\n\t\t/* @__PURE__ */ _jsx(\"path\", {\n\t\t\td: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\",\n\t\t\tstyle: { animation: \"var(--media-icon-airplay-triangle-animation, media-icon-airplay-triangle 1s ease-in-out infinite alternate)\" }\n\t\t})\n\t]\n});\nexport default AirPlayExitIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAM,OAAO;CAC/D,OAAO;CACP,OAAO;CACP,QAAQ;CACR,MAAM;CACN,eAAe;CACf,SAAS;CACT,GAAG;CACH,UAAU;EACO,oBAAK,SAAS,EAAE,UAAU,kRAAkR,CAAC;EAC7S,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,sGAAsG;EAC3H,CAAC;EACe,oBAAK,QAAQ,EAAE,GAAG,uOAAuO,CAAC;EAC1P,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,8GAA8G;EACnI,CAAC;CACF;AACD,CAAC"}
|
|
@@ -9,15 +9,15 @@ const AirPlayExitIcon = (props) => /* @__PURE__ */ jsxs("svg", {
|
|
|
9
9
|
viewBox: "0 0 18 18",
|
|
10
10
|
...props,
|
|
11
11
|
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("style", { children: "@keyframes media-icon
|
|
12
|
+
/* @__PURE__ */ jsx("style", { children: "@keyframes media-icon-airplay-triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon-airplay-fill{0%{opacity:0}to{opacity:.2}}@media (prefers-reduced-motion:reduce){:root{--media-icon-airplay-fill-animation:none;--media-icon-airplay-triangle-animation:none}}" }),
|
|
13
13
|
/* @__PURE__ */ jsx("path", {
|
|
14
14
|
d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z",
|
|
15
|
-
style: { animation: "var(--media-icon
|
|
15
|
+
style: { animation: "var(--media-icon-airplay-fill-animation, media-icon-airplay-fill 1s ease-in-out infinite alternate)" }
|
|
16
16
|
}),
|
|
17
17
|
/* @__PURE__ */ jsx("path", { d: "M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13.5 12.5h1a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2h-11a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h1l-1.468 1.467A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z" }),
|
|
18
18
|
/* @__PURE__ */ jsx("path", {
|
|
19
19
|
d: "M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z",
|
|
20
|
-
style: { animation: "var(--media-icon
|
|
20
|
+
style: { animation: "var(--media-icon-airplay-triangle-animation, media-icon-airplay-triangle 1s ease-in-out infinite alternate)" }
|
|
21
21
|
})
|
|
22
22
|
]
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/airplay-exit.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ _jsxs(\"svg\", {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: 18,\n\theight: 18,\n\tfill: \"currentColor\",\n\t\"aria-hidden\": \"true\",\n\tviewBox: \"0 0 18 18\",\n\t...props,\n\tchildren: [\n\t\t/* @__PURE__ */ _jsx(\"style\", { children: \"@keyframes media-icon
|
|
1
|
+
{"version":3,"file":"airplay-exit.js","names":[],"sources":["../../../../../../../icons/dist/react/minimal/airplay-exit.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst AirPlayExitIcon = (props) => /* @__PURE__ */ _jsxs(\"svg\", {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: 18,\n\theight: 18,\n\tfill: \"currentColor\",\n\t\"aria-hidden\": \"true\",\n\tviewBox: \"0 0 18 18\",\n\t...props,\n\tchildren: [\n\t\t/* @__PURE__ */ _jsx(\"style\", { children: \"@keyframes media-icon-airplay-triangle{0%{translate:0 0}to{translate:0-2px}}@keyframes media-icon-airplay-fill{0%{opacity:0}to{opacity:.2}}@media (prefers-reduced-motion:reduce){:root{--media-icon-airplay-fill-animation:none;--media-icon-airplay-triangle-animation:none}}\" }),\n\t\t/* @__PURE__ */ _jsx(\"path\", {\n\t\t\td: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5a3.5 3.5 0 0 1-3.032 3.468L9.354 8.354a.5.5 0 0 0-.708 0l-5.615 5.614A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\",\n\t\t\tstyle: { animation: \"var(--media-icon-airplay-fill-animation, media-icon-airplay-fill 1s ease-in-out infinite alternate)\" }\n\t\t}),\n\t\t/* @__PURE__ */ _jsx(\"path\", { d: \"M14.5 2A3.5 3.5 0 0 1 18 5.5v5l-.005.18a3.5 3.5 0 0 1-3.027 3.288L13.5 12.5h1a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2h-11a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h1l-1.468 1.467A3.5 3.5 0 0 1 0 10.5v-5A3.5 3.5 0 0 1 3.5 2z\" }),\n\t\t/* @__PURE__ */ _jsx(\"path\", {\n\t\t\td: \"M8.631 10.902a.5.5 0 0 1 .738 0l4.363 4.76a.5.5 0 0 1-.369.838H4.637a.5.5 0 0 1-.369-.838z\",\n\t\t\tstyle: { animation: \"var(--media-icon-airplay-triangle-animation, media-icon-airplay-triangle 1s ease-in-out infinite alternate)\" }\n\t\t})\n\t]\n});\nexport default AirPlayExitIcon;\n"],"mappings":";;AACA,MAAM,mBAAmB,UAA0B,qBAAM,OAAO;CAC/D,OAAO;CACP,OAAO;CACP,QAAQ;CACR,MAAM;CACN,eAAe;CACf,SAAS;CACT,GAAG;CACH,UAAU;EACO,oBAAK,SAAS,EAAE,UAAU,kRAAkR,CAAC;EAC7S,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,sGAAsG;EAC3H,CAAC;EACe,oBAAK,QAAQ,EAAE,GAAG,6MAA6M,CAAC;EAChO,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,8GAA8G;EACnI,CAAC;CACF;AACD,CAAC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon } from "./dist/react/default/index.js";
|
|
2
|
-
|
|
2
|
+
import { SVGProps } from "react";
|
|
3
|
+
//#region src/icons/index.d.ts
|
|
4
|
+
type IconProps = SVGProps<SVGSVGElement>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, IconProps, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/icons/index.ts"],"mappings":";;;KAIY,YAAY,SAAS"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon } from "../dist/react/minimal/index.js";
|
|
2
|
-
|
|
2
|
+
import { SVGProps } from "react";
|
|
3
|
+
//#region src/icons/minimal/index.d.ts
|
|
4
|
+
type IconProps = SVGProps<SVGSVGElement>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { AirPlayEnterIcon, AirPlayExitIcon, CaptionsOffIcon, CaptionsOnIcon, CastEnterIcon, CastExitIcon, CheckIcon, ChevronIcon, FullscreenEnterIcon, FullscreenExitIcon, GearIcon, IconProps, PauseIcon, PipEnterIcon, PipExitIcon, PlayIcon, QualityIcon, RestartIcon, SeekIcon, SpeechIcon, SpeedIcon, SpinnerIcon, SwitchesIcon, VolumeHighIcon, VolumeLowIcon, VolumeOffIcon };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/icons/minimal/index.ts"],"mappings":";;;KAIY,YAAY,SAAS"}
|
package/dist/dev/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { I18nContext, I18nContextValue, useLocale, useTranslator } from "./i18n/context.js";
|
|
2
2
|
import { CreateI18nOptions, CreateI18nResult, I18nProvider, I18nProviderProps, createI18n } from "./i18n/create-i18n.js";
|
|
3
|
+
import { Text, TextProps } from "./i18n/text.js";
|
|
3
4
|
import { FlatTranslations, Locale, TranslationParams, Translations, Translator, createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n } from "./i18n/index.js";
|
|
4
5
|
import { Container, ContainerProps } from "./player/container.js";
|
|
5
6
|
import { PlayerContextValue, useContainer, useContainerAttach, useMedia, useMediaAttach, useOptionalContainer, useOptionalPlayer, usePlayer, usePlayerContext } from "./player/context.js";
|
|
@@ -106,10 +107,10 @@ import { IndicatorStatus, InputAction, InputIndicatorLabels } from "@videojs/cor
|
|
|
106
107
|
export * from "@videojs/core/dom";
|
|
107
108
|
export * from "@videojs/media/dom";
|
|
108
109
|
declare namespace index_d_exports {
|
|
109
|
-
export { AirPlayButton, AirPlayButtonProps, index_parts_d_exports as AlertDialog, AlertDialogContextValue, AudioTrackOption, AudioTrackOptionsProps, AudioTrackOptionsResult, AudioTrackRadioGroup, AudioTrackRadioGroupItemProps, AudioTrackRadioGroupItemState, AudioTrackRadioGroupProps, BufferingIndicator, BufferingIndicatorProps, CaptionsButton, CaptionsButtonProps, CaptionsOption, CaptionsOptionsProps, CaptionsOptionsResult, CaptionsRadioGroup, CaptionsRadioGroupItemProps, CaptionsRadioGroupItemState, CaptionsRadioGroupProps, CastButton, CastButtonProps, Comparator, Container, ContainerProps, index_parts_d_exports$1 as Controls, ControlsGroupProps, ControlsRootProps, CreateI18nOptions, CreateI18nResult, CreatePlayerConfig, CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, ErrorDialogContextValue, FlatTranslations, FullscreenButton, FullscreenButtonProps, Gesture, GestureProps, HTMLProps, Hotkey, HotkeyProps, I18nContext, I18nContextValue, I18nProvider, I18nProviderProps, IndicatorStatus, InputAction, InputIndicatorLabels, LiveButton, LiveButtonProps, Locale, MediaGesture, MediaGestureProps, MediaHotkey, MediaHotkeyProps, index_parts_d_exports$3 as Menu, MenuContextValue, MuteButton, MuteButtonProps, NodeListLike, PiPButton, PiPButtonProps, PlayButton, PlayButtonProps, PlaybackRateButton, PlaybackRateButtonProps, PlaybackRateOption, PlaybackRateOptionsProps, PlaybackRateOptionsResult, PlaybackRateRadioGroup, PlaybackRateRadioGroupItemProps, PlaybackRateRadioGroupItemState, PlaybackRateRadioGroupProps, PlayerContextValue, PlayerProps, index_parts_d_exports$4 as Popover, PopoverContextValue, Poster, PosterProps, QualityOption, QualityOptionsProps, QualityOptionsResult, QualityRadioGroup, QualityRadioGroupItemProps, QualityRadioGroupItemState, QualityRadioGroupProps, RenderFunction, RenderProp, SeekButton, SeekButtonProps, index_parts_d_exports$5 as SeekIndicator, SeekIndicatorRootProps, SeekIndicatorValueProps, Selector, index_parts_d_exports$6 as Slider, SliderBufferProps, SliderFillProps, SliderRootProps, SliderThumbProps, SliderThumbnailProps, SliderTrackProps, SliderValueProps, StatusAnnouncer, StatusAnnouncerProps, index_parts_d_exports$7 as StatusIndicator, StatusIndicatorRootProps, StatusIndicatorValueProps, Thumbnail, ThumbnailProps, index_parts_d_exports$8 as Time, index_parts_d_exports$9 as TimeSlider, TimeSliderChapterState, TimeSliderChapterTitleProps, TimeSliderChapterTitleState, TimeSliderChaptersProps, TimeSliderChaptersState, index_parts_d_exports$10 as Tooltip, TooltipContent, TooltipContextValue, TranslationParams, Translations, Translator, UIComponentProps, UseDoubleTapGestureOptions, UseHotkeyOptions, UseTapGestureOptions, index_parts_d_exports$11 as VolumeIndicator, VolumeIndicatorFillProps, VolumeIndicatorRootProps, VolumeIndicatorValueProps, index_parts_d_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
110
|
+
export { AirPlayButton, AirPlayButtonProps, index_parts_d_exports as AlertDialog, AlertDialogContextValue, AudioTrackOption, AudioTrackOptionsProps, AudioTrackOptionsResult, AudioTrackRadioGroup, AudioTrackRadioGroupItemProps, AudioTrackRadioGroupItemState, AudioTrackRadioGroupProps, BufferingIndicator, BufferingIndicatorProps, CaptionsButton, CaptionsButtonProps, CaptionsOption, CaptionsOptionsProps, CaptionsOptionsResult, CaptionsRadioGroup, CaptionsRadioGroupItemProps, CaptionsRadioGroupItemState, CaptionsRadioGroupProps, CastButton, CastButtonProps, Comparator, Container, ContainerProps, index_parts_d_exports$1 as Controls, ControlsGroupProps, ControlsRootProps, CreateI18nOptions, CreateI18nResult, CreatePlayerConfig, CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, ErrorDialogContextValue, FlatTranslations, FullscreenButton, FullscreenButtonProps, Gesture, GestureProps, HTMLProps, Hotkey, HotkeyProps, I18nContext, I18nContextValue, I18nProvider, I18nProviderProps, IndicatorStatus, InputAction, InputIndicatorLabels, LiveButton, LiveButtonProps, Locale, MediaGesture, MediaGestureProps, MediaHotkey, MediaHotkeyProps, index_parts_d_exports$3 as Menu, MenuContextValue, MuteButton, MuteButtonProps, NodeListLike, PiPButton, PiPButtonProps, PlayButton, PlayButtonProps, PlaybackRateButton, PlaybackRateButtonProps, PlaybackRateOption, PlaybackRateOptionsProps, PlaybackRateOptionsResult, PlaybackRateRadioGroup, PlaybackRateRadioGroupItemProps, PlaybackRateRadioGroupItemState, PlaybackRateRadioGroupProps, PlayerContextValue, PlayerProps, index_parts_d_exports$4 as Popover, PopoverContextValue, Poster, PosterProps, QualityOption, QualityOptionsProps, QualityOptionsResult, QualityRadioGroup, QualityRadioGroupItemProps, QualityRadioGroupItemState, QualityRadioGroupProps, RenderFunction, RenderProp, SeekButton, SeekButtonProps, index_parts_d_exports$5 as SeekIndicator, SeekIndicatorRootProps, SeekIndicatorValueProps, Selector, index_parts_d_exports$6 as Slider, SliderBufferProps, SliderFillProps, SliderRootProps, SliderThumbProps, SliderThumbnailProps, SliderTrackProps, SliderValueProps, StatusAnnouncer, StatusAnnouncerProps, index_parts_d_exports$7 as StatusIndicator, StatusIndicatorRootProps, StatusIndicatorValueProps, Text, TextProps, Thumbnail, ThumbnailProps, index_parts_d_exports$8 as Time, index_parts_d_exports$9 as TimeSlider, TimeSliderChapterState, TimeSliderChapterTitleProps, TimeSliderChapterTitleState, TimeSliderChaptersProps, TimeSliderChaptersState, index_parts_d_exports$10 as Tooltip, TooltipContent, TooltipContextValue, TranslationParams, Translations, Translator, UIComponentProps, UseDoubleTapGestureOptions, UseHotkeyOptions, UseTapGestureOptions, index_parts_d_exports$11 as VolumeIndicator, VolumeIndicatorFillProps, VolumeIndicatorRootProps, VolumeIndicatorValueProps, index_parts_d_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
110
111
|
}
|
|
111
112
|
import * as import__videojs_core_dom from "@videojs/core/dom";
|
|
112
113
|
import * as import__videojs_media_dom from "@videojs/media/dom";
|
|
113
114
|
//#endregion
|
|
114
|
-
export { AirPlayButton, type AirPlayButtonProps, index_parts_d_exports as AlertDialog, type AlertDialogContextValue, type AudioTrackOption, type AudioTrackOptionsProps, type AudioTrackOptionsResult, AudioTrackRadioGroup, type AudioTrackRadioGroupItemProps, type AudioTrackRadioGroupItemState, type AudioTrackRadioGroupProps, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, type CaptionsOption, type CaptionsOptionsProps, type CaptionsOptionsResult, CaptionsRadioGroup, type CaptionsRadioGroupItemProps, type CaptionsRadioGroupItemState, type CaptionsRadioGroupProps, CastButton, type CastButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreateI18nOptions, type CreateI18nResult, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, type FlatTranslations, FullscreenButton, type FullscreenButtonProps, Gesture, type GestureProps, type HTMLProps, Hotkey, type HotkeyProps, I18nContext, type I18nContextValue, I18nProvider, type I18nProviderProps, type IndicatorStatus, type InputAction, type InputIndicatorLabels, LiveButton, type LiveButtonProps, type Locale, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, index_parts_d_exports$3 as Menu, type MenuContextValue, MuteButton, type MuteButtonProps, type NodeListLike, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlaybackRateOption, type PlaybackRateOptionsProps, type PlaybackRateOptionsResult, PlaybackRateRadioGroup, type PlaybackRateRadioGroupItemProps, type PlaybackRateRadioGroupItemState, type PlaybackRateRadioGroupProps, type PlayerContextValue, type PlayerProps, index_parts_d_exports$4 as Popover, type PopoverContextValue, Poster, type PosterProps, type QualityOption, type QualityOptionsProps, type QualityOptionsResult, QualityRadioGroup, type QualityRadioGroupItemProps, type QualityRadioGroupItemState, type QualityRadioGroupProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, index_parts_d_exports$5 as SeekIndicator, type SeekIndicatorRootProps, type SeekIndicatorValueProps, type Selector, index_parts_d_exports$6 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, StatusAnnouncer, type StatusAnnouncerProps, index_parts_d_exports$7 as StatusIndicator, type StatusIndicatorRootProps, type StatusIndicatorValueProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$8 as Time, index_parts_d_exports$9 as TimeSlider, type TimeSliderChapterState, type TimeSliderChapterTitleProps, type TimeSliderChapterTitleState, type TimeSliderChaptersProps, type TimeSliderChaptersState, index_parts_d_exports$10 as Tooltip, type TooltipContent, type TooltipContextValue, type TranslationParams, type Translations, type Translator, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$11 as VolumeIndicator, type VolumeIndicatorFillProps, type VolumeIndicatorRootProps, type VolumeIndicatorValueProps, index_parts_d_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, index_d_exports, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
115
|
+
export { AirPlayButton, type AirPlayButtonProps, index_parts_d_exports as AlertDialog, type AlertDialogContextValue, type AudioTrackOption, type AudioTrackOptionsProps, type AudioTrackOptionsResult, AudioTrackRadioGroup, type AudioTrackRadioGroupItemProps, type AudioTrackRadioGroupItemState, type AudioTrackRadioGroupProps, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, type CaptionsOption, type CaptionsOptionsProps, type CaptionsOptionsResult, CaptionsRadioGroup, type CaptionsRadioGroupItemProps, type CaptionsRadioGroupItemState, type CaptionsRadioGroupProps, CastButton, type CastButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreateI18nOptions, type CreateI18nResult, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, type FlatTranslations, FullscreenButton, type FullscreenButtonProps, Gesture, type GestureProps, type HTMLProps, Hotkey, type HotkeyProps, I18nContext, type I18nContextValue, I18nProvider, type I18nProviderProps, type IndicatorStatus, type InputAction, type InputIndicatorLabels, LiveButton, type LiveButtonProps, type Locale, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, index_parts_d_exports$3 as Menu, type MenuContextValue, MuteButton, type MuteButtonProps, type NodeListLike, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlaybackRateOption, type PlaybackRateOptionsProps, type PlaybackRateOptionsResult, PlaybackRateRadioGroup, type PlaybackRateRadioGroupItemProps, type PlaybackRateRadioGroupItemState, type PlaybackRateRadioGroupProps, type PlayerContextValue, type PlayerProps, index_parts_d_exports$4 as Popover, type PopoverContextValue, Poster, type PosterProps, type QualityOption, type QualityOptionsProps, type QualityOptionsResult, QualityRadioGroup, type QualityRadioGroupItemProps, type QualityRadioGroupItemState, type QualityRadioGroupProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, index_parts_d_exports$5 as SeekIndicator, type SeekIndicatorRootProps, type SeekIndicatorValueProps, type Selector, index_parts_d_exports$6 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, StatusAnnouncer, type StatusAnnouncerProps, index_parts_d_exports$7 as StatusIndicator, type StatusIndicatorRootProps, type StatusIndicatorValueProps, Text, type TextProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$8 as Time, index_parts_d_exports$9 as TimeSlider, type TimeSliderChapterState, type TimeSliderChapterTitleProps, type TimeSliderChapterTitleState, type TimeSliderChaptersProps, type TimeSliderChaptersState, index_parts_d_exports$10 as Tooltip, type TooltipContent, type TooltipContextValue, type TranslationParams, type Translations, type Translator, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$11 as VolumeIndicator, type VolumeIndicatorFillProps, type VolumeIndicatorRootProps, type VolumeIndicatorValueProps, index_parts_d_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, index_d_exports, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
115
116
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dev/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { I18nContext, useLocale, useTranslator } from "./i18n/context.js";
|
|
3
3
|
import { I18nProvider, createI18n } from "./i18n/create-i18n.js";
|
|
4
|
+
import { Text } from "./i18n/text.js";
|
|
4
5
|
import { createTranslator, findLocaleKeys, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n } from "./i18n/index.js";
|
|
5
6
|
import { composeRefs, useComposedRefs } from "./utils/use-composed-refs.js";
|
|
6
7
|
import { useContainer, useContainerAttach, useMedia, useMediaAttach, useOptionalContainer, useOptionalPlayer, usePlayer, usePlayerContext } from "./player/context.js";
|
|
@@ -66,4 +67,4 @@ import { createSelector, shallowEqual } from "@videojs/store";
|
|
|
66
67
|
import { useSelector, useStore } from "@videojs/store/react";
|
|
67
68
|
export * from "@videojs/core/dom";
|
|
68
69
|
export * from "@videojs/media/dom";
|
|
69
|
-
export { AirPlayButton, index_parts_exports as AlertDialog, AudioTrackRadioGroup, BufferingIndicator, CaptionsButton, CaptionsRadioGroup, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, Gesture, Hotkey, I18nContext, I18nProvider, LiveButton, MediaGesture, MediaHotkey, index_parts_exports$3 as Menu, MuteButton, PiPButton, PlayButton, PlaybackRateButton, PlaybackRateRadioGroup, index_parts_exports$4 as Popover, Poster, QualityRadioGroup, SeekButton, index_parts_exports$5 as SeekIndicator, index_parts_exports$6 as Slider, StatusAnnouncer, index_parts_exports$7 as StatusIndicator, Thumbnail, index_parts_exports$8 as Time, index_parts_exports$9 as TimeSlider, index_parts_exports$10 as Tooltip, index_parts_exports$11 as VolumeIndicator, index_parts_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
70
|
+
export { AirPlayButton, index_parts_exports as AlertDialog, AudioTrackRadioGroup, BufferingIndicator, CaptionsButton, CaptionsRadioGroup, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, Gesture, Hotkey, I18nContext, I18nProvider, LiveButton, MediaGesture, MediaHotkey, index_parts_exports$3 as Menu, MuteButton, PiPButton, PlayButton, PlaybackRateButton, PlaybackRateRadioGroup, index_parts_exports$4 as Popover, Poster, QualityRadioGroup, SeekButton, index_parts_exports$5 as SeekIndicator, index_parts_exports$6 as Slider, StatusAnnouncer, index_parts_exports$7 as StatusIndicator, Text, Thumbnail, index_parts_exports$8 as Time, index_parts_exports$9 as TimeSlider, index_parts_exports$10 as Tooltip, index_parts_exports$11 as VolumeIndicator, index_parts_exports$12 as VolumeSlider, composeRefs, createI18n, createPlayer, createSelector, createTranslator, findLocaleKeys, getI18nTranslations, hasMetadata, hasRegisteredLocale, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable, mergeProps, onI18nRegistryChange, registerI18n, renderElement, shallowEqual, useAlertDialogContext, useAttachMedia, useAudioTrackOptions, useButton, useCaptionsOptions, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useHotkeyShortcut, useLatestRef, useLocale, useMedia, useMediaAttach, useMediaComponent, useMediaInstance, useMenuContext, useOptionalContainer, useOptionalMenuContext, useOptionalPlayer, usePlaybackRateOptions, usePlayer, usePlayerContext, usePopoverContext, useQualityOptions, useSelector, useSlider, useStore, useTapGesture, useTooltipContext, useTranslator };
|
|
@@ -16,6 +16,14 @@ interface HlsBackgroundVideoProps extends Omit<VideoHTMLAttributes<HTMLVideoElem
|
|
|
16
16
|
* storyboard belong to `MuxVideo`, since none of them mean anything without
|
|
17
17
|
* controls to hang them on.
|
|
18
18
|
*
|
|
19
|
+
* `onError` fires for an unplayable source, which it could not do on its own:
|
|
20
|
+
* nothing about one reaches the media element, so the `<video>`'s own `error`
|
|
21
|
+
* stays null at `readyState 0`. The engine reports the condition, the Media
|
|
22
|
+
* promotes the fatal one, and this component re-fires it on the `<video>` — where
|
|
23
|
+
* a handler already listening for a failed source receives it. Which condition it
|
|
24
|
+
* was is on the console and `engine.state.errors`; the handler gets "this source
|
|
25
|
+
* won't play", which is the decision a background video actually has to make.
|
|
26
|
+
*
|
|
19
27
|
* `MuxBackgroundVideo` is this same component under the name the package it
|
|
20
28
|
* replaces used — an alias, not a variant.
|
|
21
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","names":[],"sources":["../../../../src/media/hls-background-video/media.tsx"],"mappings":";;;UAgBiB,gCACP,KAAK,oBAAoB,yBAAyB,+BACxD,QAAQ
|
|
1
|
+
{"version":3,"file":"media.d.ts","names":[],"sources":["../../../../src/media/hls-background-video/media.tsx"],"mappings":";;;UAgBiB,gCACP,KAAK,oBAAoB,yBAAyB,+BACxD,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BC,oCAAkB,0BAAA,0CAAA,cAAA;kBA6Cd;OACH,QAAQ"}
|
|
@@ -3,7 +3,7 @@ import { useComposedRefs } from "../../utils/use-composed-refs.js";
|
|
|
3
3
|
import { useAttachMedia } from "../../utils/use-attach-media.js";
|
|
4
4
|
import { useMediaInstance } from "../../utils/use-media-instance.js";
|
|
5
5
|
import { useSyncProps } from "../../utils/use-sync-props.js";
|
|
6
|
-
import { forwardRef } from "react";
|
|
6
|
+
import { forwardRef, useEffect, useRef } from "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
import { HlsBackgroundVideoMedia, hlsBackgroundVideoMediaDefaultProps } from "@videojs/spf/hls-background-video";
|
|
9
9
|
//#region src/media/hls-background-video/media.tsx
|
|
@@ -21,14 +21,29 @@ import { HlsBackgroundVideoMedia, hlsBackgroundVideoMediaDefaultProps } from "@v
|
|
|
21
21
|
* storyboard belong to `MuxVideo`, since none of them mean anything without
|
|
22
22
|
* controls to hang them on.
|
|
23
23
|
*
|
|
24
|
+
* `onError` fires for an unplayable source, which it could not do on its own:
|
|
25
|
+
* nothing about one reaches the media element, so the `<video>`'s own `error`
|
|
26
|
+
* stays null at `readyState 0`. The engine reports the condition, the Media
|
|
27
|
+
* promotes the fatal one, and this component re-fires it on the `<video>` — where
|
|
28
|
+
* a handler already listening for a failed source receives it. Which condition it
|
|
29
|
+
* was is on the console and `engine.state.errors`; the handler gets "this source
|
|
30
|
+
* won't play", which is the decision a background video actually has to make.
|
|
31
|
+
*
|
|
24
32
|
* `MuxBackgroundVideo` is this same component under the name the package it
|
|
25
33
|
* replaces used — an alias, not a variant.
|
|
26
34
|
*/
|
|
27
35
|
const HlsBackgroundVideo = forwardRef(function HlsBackgroundVideo({ children, ...props }, ref) {
|
|
28
36
|
const media = useMediaInstance(HlsBackgroundVideoMedia);
|
|
29
|
-
const
|
|
37
|
+
const videoRef = useRef(null);
|
|
38
|
+
const composedRef = useComposedRefs(useAttachMedia(media), videoRef, ref);
|
|
39
|
+
const htmlProps = useSyncProps(media, props, hlsBackgroundVideoMediaDefaultProps);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const forward = () => videoRef.current?.dispatchEvent(new Event("error"));
|
|
42
|
+
media.addEventListener("error", forward);
|
|
43
|
+
return () => media.removeEventListener("error", forward);
|
|
44
|
+
}, [media]);
|
|
30
45
|
return /* @__PURE__ */ jsx("video", {
|
|
31
|
-
...
|
|
46
|
+
...htmlProps,
|
|
32
47
|
ref: composedRef,
|
|
33
48
|
muted: true,
|
|
34
49
|
autoPlay: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/hls-background-video/media.tsx"],"sourcesContent":["'use client';\n\nimport {\n HlsBackgroundVideoMedia,\n type HlsBackgroundVideoMediaProps,\n hlsBackgroundVideoMediaDefaultProps,\n} from '@videojs/spf/hls-background-video';\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\n// `src` is the only prop the Media owns, taken from the adapter rather than\n// restated here so the two can't disagree about what the surface is.\nexport interface HlsBackgroundVideoProps\n extends Omit<VideoHTMLAttributes<HTMLVideoElement>, keyof HlsBackgroundVideoMediaProps>,\n Partial<HlsBackgroundVideoMediaProps> {}\n\n/**\n * A muted, looping, chrome-less video over the SPF background-video engine — the\n * React counterpart to `<hls-background-video>`, and the replacement for the\n * standalone `mux-background-video` package's component.\n *\n * `src` is an HLS URL and the whole surface. Capping which rendition is fetched\n * is a param on that URL (`?max_resolution=720p` on a Mux stream, for one) rather\n * than a prop, which keeps the renditions it excludes out of the manifest instead\n * of merely unpicked.\n *\n * There is no structured Mux `source`: playback-ID identity, poster, and\n * storyboard belong to `MuxVideo`, since none of them mean anything without\n * controls to hang them on.\n *\n * `MuxBackgroundVideo` is this same component under the name the package it\n * replaces used — an alias, not a variant.\n */\nexport const HlsBackgroundVideo = forwardRef<HTMLVideoElement, HlsBackgroundVideoProps>(function HlsBackgroundVideo(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(HlsBackgroundVideoMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, hlsBackgroundVideoMediaDefaultProps);\n\n return (\n // The same set `<hls-background-video>` forces onto its inner video, so the\n // two platforms present the same surface: silent looping playback with no\n // affordance a UA could hang chrome on — AirPlay, Cast, and picture-in-picture\n // all being things a background video has nowhere to put.\n //\n // Applied after the spread rather than before it, unlike the generic\n // `BackgroundVideo`: they're what the component is for, and attaching the\n // Media re-applies its own anyway, so honoring `muted={false}` would only\n // look like it worked.\n <video\n {...htmlProps}\n ref={composedRef}\n muted\n autoPlay\n loop\n playsInline\n disableRemotePlayback\n disablePictureInPicture\n >\n {children}\n </video>\n );\n});\n\nexport namespace HlsBackgroundVideo {\n export type Props = HlsBackgroundVideoProps;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"media.js","names":[],"sources":["../../../../src/media/hls-background-video/media.tsx"],"sourcesContent":["'use client';\n\nimport {\n HlsBackgroundVideoMedia,\n type HlsBackgroundVideoMediaProps,\n hlsBackgroundVideoMediaDefaultProps,\n} from '@videojs/spf/hls-background-video';\nimport type { VideoHTMLAttributes } from 'react';\nimport { forwardRef, useEffect, useRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\n// `src` is the only prop the Media owns, taken from the adapter rather than\n// restated here so the two can't disagree about what the surface is.\nexport interface HlsBackgroundVideoProps\n extends Omit<VideoHTMLAttributes<HTMLVideoElement>, keyof HlsBackgroundVideoMediaProps>,\n Partial<HlsBackgroundVideoMediaProps> {}\n\n/**\n * A muted, looping, chrome-less video over the SPF background-video engine — the\n * React counterpart to `<hls-background-video>`, and the replacement for the\n * standalone `mux-background-video` package's component.\n *\n * `src` is an HLS URL and the whole surface. Capping which rendition is fetched\n * is a param on that URL (`?max_resolution=720p` on a Mux stream, for one) rather\n * than a prop, which keeps the renditions it excludes out of the manifest instead\n * of merely unpicked.\n *\n * There is no structured Mux `source`: playback-ID identity, poster, and\n * storyboard belong to `MuxVideo`, since none of them mean anything without\n * controls to hang them on.\n *\n * `onError` fires for an unplayable source, which it could not do on its own:\n * nothing about one reaches the media element, so the `<video>`'s own `error`\n * stays null at `readyState 0`. The engine reports the condition, the Media\n * promotes the fatal one, and this component re-fires it on the `<video>` — where\n * a handler already listening for a failed source receives it. Which condition it\n * was is on the console and `engine.state.errors`; the handler gets \"this source\n * won't play\", which is the decision a background video actually has to make.\n *\n * `MuxBackgroundVideo` is this same component under the name the package it\n * replaces used — an alias, not a variant.\n */\nexport const HlsBackgroundVideo = forwardRef<HTMLVideoElement, HlsBackgroundVideoProps>(function HlsBackgroundVideo(\n { children, ...props },\n ref\n) {\n const media = useMediaInstance(HlsBackgroundVideoMedia);\n const videoRef = useRef<HTMLVideoElement>(null);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, videoRef, ref);\n const htmlProps = useSyncProps(media, props, hlsBackgroundVideoMediaDefaultProps);\n\n // Re-fired on the element rather than handed to `onError` directly, so React's\n // own event plumbing delivers it: the handler gets the synthetic event it is\n // typed for, and anything else listening on the node — the consumer's own\n // `addEventListener`, a testing-library assertion — sees the same failure.\n useEffect(() => {\n const forward = () => videoRef.current?.dispatchEvent(new Event('error'));\n media.addEventListener('error', forward);\n return () => media.removeEventListener('error', forward);\n }, [media]);\n\n return (\n // The same set `<hls-background-video>` forces onto its inner video, so the\n // two platforms present the same surface: silent looping playback with no\n // affordance a UA could hang chrome on — AirPlay, Cast, and picture-in-picture\n // all being things a background video has nowhere to put.\n //\n // Applied after the spread rather than before it, unlike the generic\n // `BackgroundVideo`: they're what the component is for, and attaching the\n // Media re-applies its own anyway, so honoring `muted={false}` would only\n // look like it worked.\n <video\n {...htmlProps}\n ref={composedRef}\n muted\n autoPlay\n loop\n playsInline\n disableRemotePlayback\n disablePictureInPicture\n >\n {children}\n </video>\n );\n});\n\nexport namespace HlsBackgroundVideo {\n export type Props = HlsBackgroundVideoProps;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAa,qBAAqB,WAAsD,SAAS,mBAC/F,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,uBAAuB;CACtD,MAAM,WAAW,OAAyB,IAAI;CAE9C,MAAM,cAAc,gBADF,eAAe,KACW,GAAG,UAAU,GAAG;CAC5D,MAAM,YAAY,aAAa,OAAO,OAAO,mCAAmC;CAMhF,gBAAgB;EACd,MAAM,gBAAgB,SAAS,SAAS,cAAc,IAAI,MAAM,OAAO,CAAC;EACxE,MAAM,iBAAiB,SAAS,OAAO;EACvC,aAAa,MAAM,oBAAoB,SAAS,OAAO;CACzD,GAAG,CAAC,KAAK,CAAC;CAEV,OAUE,oBAAC,SAAD;EACE,GAAI;EACJ,KAAK;EACL,OAAA;EACA,UAAA;EACA,MAAA;EACA,aAAA;EACA,uBAAA;EACA,yBAAA;EAEC;CACI,CAAA;AAEX,CAAC"}
|