@videojs/react 10.0.0-beta.30 → 10.0.0-beta.31
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/i18n/context.js.map +1 -1
- package/dist/default/i18n/create-i18n.js +3 -1
- package/dist/default/i18n/create-i18n.js.map +1 -1
- package/dist/default/i18n/get-provider-root-props.js +4 -2
- package/dist/default/i18n/get-provider-root-props.js.map +1 -1
- package/dist/default/player/container.js +16 -7
- package/dist/default/player/container.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +39 -7
- package/dist/default/presets/audio/skin.css +31 -7
- package/dist/default/presets/live-audio/minimal-skin.css +39 -7
- package/dist/default/presets/live-audio/skin.css +31 -7
- package/dist/default/presets/live-video/minimal-skin.css +39 -7
- package/dist/default/presets/live-video/minimal-skin.js +4 -1
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +4 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/skin.css +31 -7
- package/dist/default/presets/live-video/skin.js +4 -1
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +4 -1
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +39 -7
- package/dist/default/presets/video/minimal-skin.js +27 -11
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +28 -12
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +31 -7
- package/dist/default/presets/video/skin.js +27 -11
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +28 -12
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js +8 -7
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/ui/hooks/use-slider.js +1 -2
- package/dist/default/ui/hooks/use-slider.js.map +1 -1
- package/dist/dev/i18n/context.d.ts +3 -1
- package/dist/dev/i18n/context.d.ts.map +1 -1
- package/dist/dev/i18n/context.js.map +1 -1
- package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
- package/dist/dev/i18n/create-i18n.js +3 -1
- package/dist/dev/i18n/create-i18n.js.map +1 -1
- package/dist/dev/i18n/get-provider-root-props.js +4 -2
- package/dist/dev/i18n/get-provider-root-props.js.map +1 -1
- package/dist/dev/player/container.d.ts.map +1 -1
- package/dist/dev/player/container.js +16 -7
- package/dist/dev/player/container.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +39 -7
- package/dist/dev/presets/audio/skin.css +31 -7
- package/dist/dev/presets/live-audio/minimal-skin.css +39 -7
- package/dist/dev/presets/live-audio/skin.css +31 -7
- package/dist/dev/presets/live-video/minimal-skin.css +39 -7
- package/dist/dev/presets/live-video/minimal-skin.js +4 -1
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js +4 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/skin.css +31 -7
- package/dist/dev/presets/live-video/skin.js +4 -1
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.js +4 -1
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +39 -7
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +27 -11
- 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 +28 -12
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/skin.css +31 -7
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +27 -11
- 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 +28 -12
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +8 -7
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +8 -7
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-slider.js +1 -2
- package/dist/dev/ui/hooks/use-slider.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/media-sources.md +26 -2
- package/docs/concepts/skins.md +48 -16
- package/docs/how-to/customize-skins.md +7933 -50
- package/docs/how-to/i18n-switch-locale.md +27 -0
- package/docs/how-to/installation.md +4 -4
- package/docs/how-to/migrate-from-plyr.md +1 -1
- package/docs/llms.txt +7 -0
- package/docs/reference/cloudflare-video.md +223 -0
- package/docs/reference/dash-video.md +55 -0
- package/docs/reference/feature-metadata.md +3 -1
- package/docs/reference/hls-audio.md +27 -1
- package/docs/reference/hls-video.md +39 -1
- package/docs/reference/hlsjs-video.md +627 -0
- package/docs/reference/native-hls-video.md +41 -0
- package/docs/reference/shaka-video.md +359 -0
- package/docs/reference/spotify-audio.md +188 -0
- package/docs/reference/tiktok-video.md +280 -0
- package/docs/reference/title.md +1 -1
- package/docs/reference/twitch-video.md +211 -0
- package/docs/reference/vimeo-video.md +736 -0
- package/docs/reference/youtube-video.md +339 -0
- package/package.json +8 -8
package/docs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @videojs/react documentation
|
|
2
2
|
|
|
3
|
-
Bundled markdown documentation for `@videojs/react` v10.0.0-beta.
|
|
3
|
+
Bundled markdown documentation for `@videojs/react` v10.0.0-beta.31.
|
|
4
4
|
|
|
5
5
|
Start at [`./llms.txt`](./llms.txt) — it's the structured index of every page in this directory.
|
|
6
6
|
|
|
@@ -138,16 +138,40 @@ options for the browser’s own HLS support (today, [DRM](#licensing-one-engine-
|
|
|
138
138
|
|
|
139
139
|
`engine.vimeo`
|
|
140
140
|
|
|
141
|
-
|
|
141
|
+
[VimeoVideo](../reference/vimeo-video.md)
|
|
142
142
|
|
|
143
143
|
[Vimeo embed parameters](https://developer.vimeo.com/player/sdk/embed)
|
|
144
144
|
|
|
145
145
|
`engine.youtube`
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
[YouTubeVideo](../reference/youtube-video.md)
|
|
148
148
|
|
|
149
149
|
[YouTube player parameters](https://developer.chrome.com/docs/youtube/iframe_api_reference#Parameters)
|
|
150
150
|
|
|
151
|
+
`engine.cloudflare`
|
|
152
|
+
|
|
153
|
+
[CloudflareVideo](../reference/cloudflare-video.md)
|
|
154
|
+
|
|
155
|
+
[Stream player parameters](https://developers.cloudflare.com/stream/viewing-videos/using-the-stream-player/)
|
|
156
|
+
|
|
157
|
+
`engine.spotify`
|
|
158
|
+
|
|
159
|
+
[SpotifyAudio](../reference/spotify-audio.md)
|
|
160
|
+
|
|
161
|
+
[Spotify embed options](https://developer.spotify.com/documentation/embeds)
|
|
162
|
+
|
|
163
|
+
`engine.tiktok`
|
|
164
|
+
|
|
165
|
+
[TikTokVideo](../reference/tiktok-video.md)
|
|
166
|
+
|
|
167
|
+
[TikTok player parameters](https://developers.tiktok.com/doc/embed-player)
|
|
168
|
+
|
|
169
|
+
`engine.twitch`
|
|
170
|
+
|
|
171
|
+
[TwitchVideo](../reference/twitch-video.md)
|
|
172
|
+
|
|
173
|
+
[Twitch embed parameters](https://dev.twitch.tv/docs/embed/video-and-clips/)
|
|
174
|
+
|
|
151
175
|
Naming the engine rather than using one generic key matters where an element has more than one to choose from. `HlsJsVideo` plays through hls.js or through the browser depending on the platform and `preferPlayback`, and only one of them runs — so a single source can describe both paths without either engine reading the other’s options.
|
|
152
176
|
|
|
153
177
|
hls.js reads its options when the engine is constructed, so changing them tears down the engine and builds a new one:
|
package/docs/concepts/skins.md
CHANGED
|
@@ -118,7 +118,9 @@ function SettingsMenu(): ReactNode {
|
|
|
118
118
|
<QualityIcon className="media-icon" />
|
|
119
119
|
<span>{t(qualityText)}</span>
|
|
120
120
|
<span className="media-menu__hint">
|
|
121
|
-
<
|
|
121
|
+
<bdi dir="auto" className="media-menu__hint-label">
|
|
122
|
+
{quality.selectedLabel}
|
|
123
|
+
</bdi>
|
|
122
124
|
<MenuChevron />
|
|
123
125
|
</span>
|
|
124
126
|
</div>
|
|
@@ -135,10 +137,10 @@ function SettingsMenu(): ReactNode {
|
|
|
135
137
|
aria-label={t(qualityText)}
|
|
136
138
|
renderItem={(props, item) => (
|
|
137
139
|
<Menu.RadioItem {...props} className="media-menu__item">
|
|
138
|
-
<
|
|
140
|
+
<bdi dir="auto">
|
|
139
141
|
{item.label}
|
|
140
142
|
{item.tier ? <sup className="media-menu__tier">{item.tier}</sup> : null}
|
|
141
|
-
</
|
|
143
|
+
</bdi>
|
|
142
144
|
{item.badge ? <span className="media-badge">{item.badge}</span> : null}
|
|
143
145
|
<Menu.ItemIndicator checked={item.checked} forceMount className="media-menu__indicator">
|
|
144
146
|
<CheckIcon className="media-icon" />
|
|
@@ -159,7 +161,9 @@ function SettingsMenu(): ReactNode {
|
|
|
159
161
|
<SpeechIcon className="media-icon" />
|
|
160
162
|
<span>{t(audioText)}</span>
|
|
161
163
|
<span className="media-menu__hint">
|
|
162
|
-
<
|
|
164
|
+
<bdi dir="auto" className="media-menu__hint-label">
|
|
165
|
+
{audioTrack.selectedLabel}
|
|
166
|
+
</bdi>
|
|
163
167
|
<MenuChevron />
|
|
164
168
|
</span>
|
|
165
169
|
</div>
|
|
@@ -176,7 +180,7 @@ function SettingsMenu(): ReactNode {
|
|
|
176
180
|
aria-label={t(audioText)}
|
|
177
181
|
renderItem={(props, item) => (
|
|
178
182
|
<Menu.RadioItem {...props} className="media-menu__item">
|
|
179
|
-
<
|
|
183
|
+
<bdi dir="auto">{item.label}</bdi>
|
|
180
184
|
<Menu.ItemIndicator checked={item.checked} forceMount className="media-menu__indicator">
|
|
181
185
|
<CheckIcon className="media-icon" />
|
|
182
186
|
</Menu.ItemIndicator>
|
|
@@ -196,7 +200,9 @@ function SettingsMenu(): ReactNode {
|
|
|
196
200
|
<SpeedIcon className="media-icon" />
|
|
197
201
|
<span>{t(speedText)}</span>
|
|
198
202
|
<span className="media-menu__hint">
|
|
199
|
-
<
|
|
203
|
+
<bdi dir="auto" className="media-menu__hint-label">
|
|
204
|
+
{playbackRate.selectedLabel}
|
|
205
|
+
</bdi>
|
|
200
206
|
<MenuChevron />
|
|
201
207
|
</span>
|
|
202
208
|
</div>
|
|
@@ -213,7 +219,7 @@ function SettingsMenu(): ReactNode {
|
|
|
213
219
|
aria-label={t(playbackRateText)}
|
|
214
220
|
renderItem={(props, item) => (
|
|
215
221
|
<Menu.RadioItem {...props} className="media-menu__item">
|
|
216
|
-
<
|
|
222
|
+
<bdi dir="auto">{item.label}</bdi>
|
|
217
223
|
<Menu.ItemIndicator checked={item.checked} forceMount className="media-menu__indicator">
|
|
218
224
|
<CheckIcon className="media-icon" />
|
|
219
225
|
</Menu.ItemIndicator>
|
|
@@ -233,7 +239,9 @@ function SettingsMenu(): ReactNode {
|
|
|
233
239
|
<CaptionsOffIcon className="media-icon" />
|
|
234
240
|
<span>{t(captionsText)}</span>
|
|
235
241
|
<span className="media-menu__hint">
|
|
236
|
-
<
|
|
242
|
+
<bdi dir="auto" className="media-menu__hint-label">
|
|
243
|
+
{captions.selectedLabel}
|
|
244
|
+
</bdi>
|
|
237
245
|
<MenuChevron />
|
|
238
246
|
</span>
|
|
239
247
|
</div>
|
|
@@ -250,7 +258,7 @@ function SettingsMenu(): ReactNode {
|
|
|
250
258
|
aria-label={t(captionsText)}
|
|
251
259
|
renderItem={(props, item) => (
|
|
252
260
|
<Menu.RadioItem {...props} className="media-menu__item">
|
|
253
|
-
<
|
|
261
|
+
<bdi dir="auto">{item.label}</bdi>
|
|
254
262
|
<Menu.ItemIndicator checked={item.checked} forceMount className="media-menu__indicator">
|
|
255
263
|
<CheckIcon className="media-icon" />
|
|
256
264
|
</Menu.ItemIndicator>
|
|
@@ -853,6 +861,10 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
853
861
|
container: media-controls / inline-size;
|
|
854
862
|
text-shadow: 0 1px 0 var(--shadow-current-color);
|
|
855
863
|
border-radius: calc(Infinity * 1px);
|
|
864
|
+
|
|
865
|
+
&:dir(rtl) {
|
|
866
|
+
flex-direction: row-reverse;
|
|
867
|
+
}
|
|
856
868
|
}
|
|
857
869
|
|
|
858
870
|
.media-default-skin .media-time-controls {
|
|
@@ -862,6 +874,10 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
862
874
|
align-items: center;
|
|
863
875
|
container: media-time-controls / inline-size;
|
|
864
876
|
|
|
877
|
+
&:dir(rtl) {
|
|
878
|
+
flex-direction: row-reverse;
|
|
879
|
+
}
|
|
880
|
+
|
|
865
881
|
> .media-time:last-child {
|
|
866
882
|
@container media-time-controls (width < 16rem) {
|
|
867
883
|
display: none;
|
|
@@ -1066,6 +1082,10 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1066
1082
|
display: flex;
|
|
1067
1083
|
gap: 1px;
|
|
1068
1084
|
align-items: center;
|
|
1085
|
+
|
|
1086
|
+
&:dir(rtl) {
|
|
1087
|
+
flex-direction: row-reverse;
|
|
1088
|
+
}
|
|
1069
1089
|
}
|
|
1070
1090
|
|
|
1071
1091
|
.media-default-skin .media-badge {
|
|
@@ -1088,10 +1108,15 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1088
1108
|
width: var(--media-icon-size);
|
|
1089
1109
|
height: var(--media-icon-size);
|
|
1090
1110
|
}
|
|
1091
|
-
.media-default-skin .media-icon--flipped
|
|
1111
|
+
.media-default-skin .media-icon--flipped,
|
|
1112
|
+
.media-default-skin:dir(rtl) .media-menu__chevron {
|
|
1092
1113
|
scale: -1 1;
|
|
1093
1114
|
}
|
|
1094
1115
|
|
|
1116
|
+
.media-default-skin:dir(rtl) .media-menu__chevron.media-icon--flipped {
|
|
1117
|
+
scale: 1 1;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1095
1120
|
.media-default-skin media-poster,
|
|
1096
1121
|
.media-default-skin > img {
|
|
1097
1122
|
position: absolute;
|
|
@@ -1732,6 +1757,10 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1732
1757
|
filter: blur(8px);
|
|
1733
1758
|
translate: 100% 0;
|
|
1734
1759
|
}
|
|
1760
|
+
|
|
1761
|
+
&:dir(rtl):where([data-starting-style], [data-ending-style]) {
|
|
1762
|
+
translate: -100% 0;
|
|
1763
|
+
}
|
|
1735
1764
|
}
|
|
1736
1765
|
|
|
1737
1766
|
.media-menu__separator {
|
|
@@ -1774,7 +1803,7 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1774
1803
|
gap: calc(var(--spacing) * 1.5);
|
|
1775
1804
|
align-items: center;
|
|
1776
1805
|
padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 2);
|
|
1777
|
-
text-align:
|
|
1806
|
+
text-align: start;
|
|
1778
1807
|
text-shadow: 0 1px 0 var(--shadow-current-color);
|
|
1779
1808
|
cursor: pointer;
|
|
1780
1809
|
user-select: none;
|
|
@@ -1818,8 +1847,7 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1818
1847
|
|
|
1819
1848
|
.media-menu__indicator {
|
|
1820
1849
|
flex-shrink: 0;
|
|
1821
|
-
margin-
|
|
1822
|
-
margin-left: auto;
|
|
1850
|
+
margin-inline: auto calc(var(--spacing) * -1);
|
|
1823
1851
|
opacity: 0;
|
|
1824
1852
|
|
|
1825
1853
|
.media-icon {
|
|
@@ -1856,8 +1884,8 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1856
1884
|
}
|
|
1857
1885
|
|
|
1858
1886
|
.media-menu__tier {
|
|
1887
|
+
padding-inline-start: calc(var(--spacing) * 0.5);
|
|
1859
1888
|
padding-top: 1px;
|
|
1860
|
-
padding-left: calc(var(--spacing) * 0.5);
|
|
1861
1889
|
font-size: var(--font-size-tiny);
|
|
1862
1890
|
font-weight: 600;
|
|
1863
1891
|
line-height: 1;
|
|
@@ -1874,8 +1902,8 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1874
1902
|
gap: calc(var(--spacing) * 1);
|
|
1875
1903
|
align-items: center;
|
|
1876
1904
|
min-width: 0;
|
|
1877
|
-
padding-
|
|
1878
|
-
margin-
|
|
1905
|
+
padding-inline-start: calc(var(--spacing) * 2);
|
|
1906
|
+
margin-inline-start: auto;
|
|
1879
1907
|
color: oklch(from currentColor l c h / 0.65);
|
|
1880
1908
|
}
|
|
1881
1909
|
|
|
@@ -1915,6 +1943,10 @@ export const { Player } = createPlayer({ features: videoFeatures });
|
|
|
1915
1943
|
translate: -100% 0;
|
|
1916
1944
|
}
|
|
1917
1945
|
|
|
1946
|
+
&:dir(rtl)[data-submenu-expanded="true"] > :not([data-submenu]) {
|
|
1947
|
+
translate: 100% 0;
|
|
1948
|
+
}
|
|
1949
|
+
|
|
1918
1950
|
/* WebKit can restart the covered-content transition while the
|
|
1919
1951
|
anchor-positioned highlight remains active. */
|
|
1920
1952
|
&[data-submenu-expanded] > :not([data-submenu])::before {
|