@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.
Files changed (259) hide show
  1. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  2. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  3. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  4. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  5. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  6. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  7. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  8. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  9. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  10. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  11. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  12. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  13. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  14. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  15. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  16. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  17. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  18. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  19. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  20. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  21. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  22. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  23. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  24. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  25. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  26. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  27. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  28. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  29. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  30. package/dist/default/i18n/index.js +2 -1
  31. package/dist/default/i18n/text.js +20 -0
  32. package/dist/default/i18n/text.js.map +1 -0
  33. package/dist/default/icons/dist/react/default/airplay-exit.js +3 -3
  34. package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
  35. package/dist/default/icons/dist/react/minimal/airplay-exit.js +3 -3
  36. package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  37. package/dist/default/index.js +2 -1
  38. package/dist/default/media/hls-background-video/media.js +18 -3
  39. package/dist/default/media/hls-background-video/media.js.map +1 -1
  40. package/dist/default/presets/audio/minimal-skin.css +103 -101
  41. package/dist/default/presets/audio/minimal-skin.js +1 -1
  42. package/dist/default/presets/audio/minimal-skin.tailwind.js +1 -1
  43. package/dist/default/presets/audio/skin.css +68 -69
  44. package/dist/default/presets/audio/skin.js +1 -1
  45. package/dist/default/presets/audio/skin.tailwind.js +1 -1
  46. package/dist/default/presets/live-audio/minimal-skin.css +103 -101
  47. package/dist/default/presets/live-audio/skin.css +68 -69
  48. package/dist/default/presets/live-video/minimal-skin.css +140 -120
  49. package/dist/default/presets/live-video/minimal-skin.js +3 -8
  50. package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
  51. package/dist/default/presets/live-video/minimal-skin.tailwind.js +5 -8
  52. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  53. package/dist/default/presets/live-video/skin.css +89 -76
  54. package/dist/default/presets/live-video/skin.js +3 -8
  55. package/dist/default/presets/live-video/skin.js.map +1 -1
  56. package/dist/default/presets/live-video/skin.tailwind.js +7 -10
  57. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
  58. package/dist/default/presets/video/minimal-skin.css +140 -120
  59. package/dist/default/presets/video/minimal-skin.js +3 -8
  60. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  61. package/dist/default/presets/video/minimal-skin.tailwind.js +5 -8
  62. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  63. package/dist/default/presets/video/skin.css +89 -76
  64. package/dist/default/presets/video/skin.js +3 -8
  65. package/dist/default/presets/video/skin.js.map +1 -1
  66. package/dist/default/presets/video/skin.tailwind.js +6 -9
  67. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  68. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  69. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  70. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  71. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  72. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
  73. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  74. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  75. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  76. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  77. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  78. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  79. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  80. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  81. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  82. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  83. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  84. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  85. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  86. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  87. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  88. package/dist/default/ui/gesture/gesture.js.map +1 -1
  89. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
  90. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
  91. package/dist/default/ui/hotkey/hotkey.js.map +1 -1
  92. package/dist/default/ui/menu/context.js +6 -1
  93. package/dist/default/ui/menu/context.js.map +1 -1
  94. package/dist/default/ui/menu/menu-item-indicator.js +3 -2
  95. package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
  96. package/dist/default/ui/menu/menu-radio-item.js +19 -15
  97. package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
  98. package/dist/default/ui/menu/menu-root.js +5 -6
  99. package/dist/default/ui/menu/menu-root.js.map +1 -1
  100. package/dist/default/ui/poster/poster.js +64 -17
  101. package/dist/default/ui/poster/poster.js.map +1 -1
  102. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  103. package/dist/default/utils/use-render.js +2 -8
  104. package/dist/default/utils/use-render.js.map +1 -1
  105. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  106. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  107. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  108. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  109. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  110. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  111. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  112. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  113. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  114. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  115. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  116. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  117. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  118. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  119. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  120. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  121. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  122. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  123. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  124. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  125. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  126. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  127. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  128. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  129. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  130. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  131. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  132. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  133. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  134. package/dist/dev/i18n/index.d.ts +2 -1
  135. package/dist/dev/i18n/index.js +2 -1
  136. package/dist/dev/i18n/text.d.ts +11 -0
  137. package/dist/dev/i18n/text.d.ts.map +1 -0
  138. package/dist/dev/i18n/text.js +20 -0
  139. package/dist/dev/i18n/text.js.map +1 -0
  140. package/dist/dev/icons/dist/react/default/airplay-exit.js +3 -3
  141. package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
  142. package/dist/dev/icons/dist/react/minimal/airplay-exit.js +3 -3
  143. package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
  144. package/dist/dev/icons/index.d.ts +6 -1
  145. package/dist/dev/icons/index.d.ts.map +1 -0
  146. package/dist/dev/icons/minimal/index.d.ts +6 -1
  147. package/dist/dev/icons/minimal/index.d.ts.map +1 -0
  148. package/dist/dev/index.d.ts +3 -2
  149. package/dist/dev/index.js +2 -1
  150. package/dist/dev/media/hls-background-video/media.d.ts +8 -0
  151. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  152. package/dist/dev/media/hls-background-video/media.js +18 -3
  153. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  154. package/dist/dev/presets/audio/minimal-skin.css +103 -101
  155. package/dist/dev/presets/audio/minimal-skin.js +1 -1
  156. package/dist/dev/presets/audio/minimal-skin.tailwind.js +1 -1
  157. package/dist/dev/presets/audio/player.d.ts +2 -2
  158. package/dist/dev/presets/audio/skin.css +68 -69
  159. package/dist/dev/presets/audio/skin.js +1 -1
  160. package/dist/dev/presets/audio/skin.tailwind.js +1 -1
  161. package/dist/dev/presets/live-audio/minimal-skin.css +103 -101
  162. package/dist/dev/presets/live-audio/player.d.ts +2 -2
  163. package/dist/dev/presets/live-audio/skin.css +68 -69
  164. package/dist/dev/presets/live-video/minimal-skin.css +140 -120
  165. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
  166. package/dist/dev/presets/live-video/minimal-skin.js +3 -8
  167. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
  168. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  169. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +5 -8
  170. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
  171. package/dist/dev/presets/live-video/player.d.ts +2 -2
  172. package/dist/dev/presets/live-video/skin.css +89 -76
  173. package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
  174. package/dist/dev/presets/live-video/skin.js +3 -8
  175. package/dist/dev/presets/live-video/skin.js.map +1 -1
  176. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
  177. package/dist/dev/presets/live-video/skin.tailwind.js +7 -10
  178. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
  179. package/dist/dev/presets/types.d.ts +15 -2
  180. package/dist/dev/presets/types.d.ts.map +1 -1
  181. package/dist/dev/presets/video/minimal-skin.css +140 -120
  182. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  183. package/dist/dev/presets/video/minimal-skin.js +3 -8
  184. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  185. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  186. package/dist/dev/presets/video/minimal-skin.tailwind.js +5 -8
  187. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  188. package/dist/dev/presets/video/player.d.ts +2 -2
  189. package/dist/dev/presets/video/skin.css +89 -76
  190. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  191. package/dist/dev/presets/video/skin.js +3 -8
  192. package/dist/dev/presets/video/skin.js.map +1 -1
  193. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  194. package/dist/dev/presets/video/skin.tailwind.js +6 -9
  195. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  196. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -1
  197. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  198. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +8 -1
  199. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  200. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +10 -10
  201. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  202. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  203. package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  204. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
  205. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  206. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  207. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  208. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  209. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  210. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  211. package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  212. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
  213. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  214. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  215. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  216. package/dist/dev/ui/gesture/gesture.d.ts +6 -13
  217. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -1
  218. package/dist/dev/ui/gesture/gesture.js.map +1 -1
  219. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +2 -5
  220. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
  221. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
  222. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +2 -5
  223. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
  224. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
  225. package/dist/dev/ui/hotkey/hotkey.d.ts +6 -12
  226. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -1
  227. package/dist/dev/ui/hotkey/hotkey.js.map +1 -1
  228. package/dist/dev/ui/menu/context.js +6 -1
  229. package/dist/dev/ui/menu/context.js.map +1 -1
  230. package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
  231. package/dist/dev/ui/menu/menu-item-indicator.js +3 -2
  232. package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
  233. package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
  234. package/dist/dev/ui/menu/menu-radio-item.js +19 -15
  235. package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
  236. package/dist/dev/ui/menu/menu-root.js +5 -6
  237. package/dist/dev/ui/menu/menu-root.js.map +1 -1
  238. package/dist/dev/ui/poster/poster.d.ts +15 -4
  239. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  240. package/dist/dev/ui/poster/poster.js +64 -17
  241. package/dist/dev/ui/poster/poster.js.map +1 -1
  242. package/dist/dev/ui/slider/slider-preview.d.ts +5 -9
  243. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  244. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  245. package/dist/dev/utils/use-render.d.ts.map +1 -1
  246. package/dist/dev/utils/use-render.js +2 -8
  247. package/dist/dev/utils/use-render.js.map +1 -1
  248. package/docs/README.md +1 -1
  249. package/docs/concepts/skins.md +97 -96
  250. package/docs/how-to/customize-skins.md +421 -411
  251. package/docs/reference/create-player.md +2 -2
  252. package/docs/reference/menu.md +6 -18
  253. package/docs/reference/popover.md +6 -6
  254. package/docs/reference/poster.md +187 -13
  255. package/docs/reference/slider.md +1 -1
  256. package/docs/reference/time-slider.md +1 -1
  257. package/docs/reference/tooltip.md +10 -10
  258. package/docs/reference/volume-slider.md +1 -1
  259. package/package.json +13 -8
@@ -0,0 +1,7 @@
1
+ @layer videojs.theme.variant {
2
+ .media-theme-minimal {
3
+ --media-video-border-radius: var(--media-border-radius, 0.75rem);
4
+ --media-control-radius: calc(var(--media-spacing) * 2);
5
+ --media-surface-radius: calc(var(--media-spacing) * 2.5);
6
+ }
7
+ }
@@ -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
+ }
@@ -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,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--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}}" }),
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--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)" }
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--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)" }
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--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,0RAA0R,CAAC;EACrT,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,0GAA0G;EAC/H,CAAC;EACe,oBAAK,QAAQ,EAAE,GAAG,uOAAuO,CAAC;EAC1P,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,kHAAkH;EACvI,CAAC;CACF;AACD,CAAC"}
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--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}}" }),
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--airplay__fill-animation, media-icon--airplay__fill 1s ease-in-out infinite alternate)" }
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--airplay__triangle-animation, media-icon--airplay__triangle 1s ease-in-out infinite alternate)" }
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--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,0RAA0R,CAAC;EACrT,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,0GAA0G;EAC/H,CAAC;EACe,oBAAK,QAAQ,EAAE,GAAG,6MAA6M,CAAC;EAChO,oBAAK,QAAQ;GAC5B,GAAG;GACH,OAAO,EAAE,WAAW,kHAAkH;EACvI,CAAC;CACF;AACD,CAAC"}
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,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 };
@@ -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 composedRef = useComposedRefs(useAttachMedia(media), ref);
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
- ...useSyncProps(media, props, hlsBackgroundVideoMediaDefaultProps),
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAa,qBAAqB,WAAsD,SAAS,mBAC/F,EAAE,UAAU,GAAG,SACf,KACA;CACA,MAAM,QAAQ,iBAAiB,uBAAuB;CAEtD,MAAM,cAAc,gBADF,eAAe,KACW,GAAG,GAAG;CAGlD,OAUE,oBAAC,SAAD;EACE,GAbc,aAAa,OAAO,OAAO,mCAa7B;EACZ,KAAK;EACL,OAAA;EACA,UAAA;EACA,MAAA;EACA,aAAA;EACA,uBAAA;EACA,yBAAA;EAEC;CACI,CAAA;AAEX,CAAC"}
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"}
@@ -444,9 +444,13 @@
444
444
  }
445
445
 
446
446
  .media-minimal-skin .media-slider {
447
+ --track-size: calc(var(--spacing) * 1);
448
+ --track-highlighted-size: calc(var(--spacing) * 1.75);
449
+ --track-border-radius: 99px;
447
450
  --thumb-size: calc(var(--spacing) * 3);
448
- --thumb-active-size: calc(var(--spacing) * 3);
449
- --track-border-radius: calc(Infinity * 1px);
451
+ --chapter-gap: calc(var(--spacing) * 1);
452
+ --chapter-inset-start: calc(var(--chapter-gap) / 2);
453
+ --chapter-inset-end: calc(var(--chapter-gap) / 2);
450
454
 
451
455
  position: relative;
452
456
  display: flex;
@@ -478,68 +482,14 @@
478
482
 
479
483
  &[data-orientation="horizontal"] {
480
484
  width: 100%;
481
- height: calc(var(--spacing) * 0.75);
485
+ height: var(--track-size);
482
486
  }
483
487
  &[data-orientation="vertical"] {
484
- width: calc(var(--spacing) * 0.75);
488
+ width: var(--track-size);
485
489
  height: 100%;
486
490
  }
487
491
  }
488
492
 
489
- /* Thumb */
490
- .media-slider__thumb {
491
- position: absolute;
492
- z-index: 10;
493
- width: var(--thumb-size);
494
- height: var(--thumb-size);
495
- user-select: none;
496
- outline: 2px solid transparent;
497
- outline-offset: -2px;
498
- background-color: currentColor;
499
- border-radius: calc(Infinity * 1px);
500
- box-shadow:
501
- 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.15)),
502
- 0 1px 3px 0 oklch(0 0 0 / 0.15),
503
- 0 1px 2px -1px oklch(0 0 0 / 0.15);
504
- opacity: 0;
505
- transform-origin: center;
506
- scale: 0.7;
507
- translate: -50% -50%;
508
- transition-timing-function: ease-out;
509
- transition-duration: 150ms;
510
-
511
- &[data-orientation="horizontal"] {
512
- top: 50%;
513
- left: var(--media-slider-fill);
514
- }
515
- &[data-orientation="vertical"] {
516
- top: calc(100% - var(--media-slider-fill));
517
- left: 50%;
518
- }
519
-
520
- &:focus-visible {
521
- outline-color: var(--focus-ring-color);
522
- outline-offset: 2px;
523
- }
524
- }
525
-
526
- &:focus-within .media-slider__thumb,
527
- .media-slider__thumb--persistent {
528
- width: var(--thumb-active-size);
529
- height: var(--thumb-active-size);
530
- opacity: 1;
531
- scale: 1;
532
- }
533
-
534
- @media (hover: hover) and (pointer: fine) {
535
- &:hover .media-slider__thumb {
536
- width: var(--thumb-active-size);
537
- height: var(--thumb-active-size);
538
- opacity: 1;
539
- scale: 1;
540
- }
541
- }
542
-
543
493
  /* Shared track fills */
544
494
  .media-slider__buffer,
545
495
  .media-slider__fill {
@@ -551,13 +501,22 @@
551
501
  inset-block: 0;
552
502
  left: 0;
553
503
  width: 100%;
554
- transition-property: clip-path;
555
504
  }
556
505
  &[data-orientation="vertical"] {
557
506
  inset-inline: 0;
558
507
  bottom: 0;
559
508
  height: 100%;
560
- transition-property: clip-path;
509
+ }
510
+
511
+ @media (prefers-reduced-motion: no-preference) {
512
+ transition: clip-path 200ms ease-out;
513
+ }
514
+ }
515
+ &[data-dragging],
516
+ &[data-seeking] {
517
+ .media-slider__fill,
518
+ .media-slider__buffer {
519
+ transition-duration: 0ms;
561
520
  }
562
521
  }
563
522
 
@@ -584,6 +543,14 @@
584
543
  clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round var(--track-border-radius));
585
544
  }
586
545
  }
546
+ &[data-dragging] {
547
+ .media-slider__fill[data-orientation="horizontal"] {
548
+ clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));
549
+ }
550
+ .media-slider__fill[data-orientation="vertical"] {
551
+ clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));
552
+ }
553
+ }
587
554
 
588
555
  /* Chapters */
589
556
  .media-slider__chapters {
@@ -607,9 +574,6 @@
607
574
  }
608
575
 
609
576
  .media-slider__chapter {
610
- --chapter-gap: calc(var(--spacing) * 1);
611
- --chapter-inset-start: calc(var(--chapter-gap) / 2);
612
- --chapter-inset-end: calc(var(--chapter-gap) / 2);
613
577
  position: absolute;
614
578
  inset: 0;
615
579
  display: flex;
@@ -626,8 +590,6 @@
626
590
  }
627
591
 
628
592
  .media-slider__chapter-track {
629
- --chapter-track-size: calc(var(--spacing) * 0.75);
630
- --chapter-track-highlighted-size: calc(var(--spacing) * 1.25);
631
593
  border-radius: var(--track-border-radius);
632
594
 
633
595
  @media (prefers-reduced-motion: no-preference) {
@@ -640,7 +602,7 @@
640
602
  clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));
641
603
 
642
604
  .media-slider__chapter-track {
643
- height: var(--chapter-track-size);
605
+ height: var(--track-size);
644
606
  clip-path: inset(
645
607
  0 calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0
646
608
  calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) round var(--track-border-radius)
@@ -648,7 +610,7 @@
648
610
  }
649
611
 
650
612
  &[data-highlighted] .media-slider__chapter-track {
651
- height: var(--chapter-track-highlighted-size);
613
+ height: var(--track-highlighted-size);
652
614
  }
653
615
  }
654
616
 
@@ -656,7 +618,7 @@
656
618
  clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);
657
619
 
658
620
  .media-slider__chapter-track {
659
- width: var(--chapter-track-size);
621
+ width: var(--track-size);
660
622
  clip-path: inset(
661
623
  calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0
662
624
  calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) 0 round var(--track-border-radius)
@@ -664,63 +626,102 @@
664
626
  }
665
627
 
666
628
  &[data-highlighted] .media-slider__chapter-track {
667
- width: var(--chapter-track-highlighted-size);
629
+ width: var(--track-highlighted-size);
668
630
  }
669
631
  }
670
632
  }
671
633
 
672
- /* Dragging — thumb and fill follow the pointer position */
673
- &[data-dragging] {
674
- .media-slider__thumb[data-orientation="horizontal"] {
675
- left: var(--media-slider-pointer);
676
- }
677
- .media-slider__thumb[data-orientation="vertical"] {
678
- top: calc(100% - var(--media-slider-pointer));
679
- }
680
- .media-slider__fill[data-orientation="horizontal"] {
681
- clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));
634
+ /* Thumb */
635
+ .media-slider__thumb {
636
+ position: absolute;
637
+ z-index: 10;
638
+ width: var(--thumb-size);
639
+ height: var(--thumb-size);
640
+ user-select: none;
641
+ outline: 2px solid transparent;
642
+ outline-offset: -2px;
643
+ background-color: currentColor;
644
+ border-radius: calc(Infinity * 1px);
645
+ box-shadow:
646
+ 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.15)),
647
+ 0 1px 3px 0 oklch(0 0 0 / 0.15),
648
+ 0 1px 2px -1px oklch(0 0 0 / 0.15);
649
+ opacity: 0;
650
+ transform-origin: center;
651
+ scale: 0.7;
652
+ translate: -50% -50%;
653
+
654
+ &[data-orientation="horizontal"] {
655
+ top: 50%;
656
+ left: var(--media-slider-fill);
682
657
  }
683
- .media-slider__fill[data-orientation="vertical"] {
684
- clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));
658
+ &[data-orientation="vertical"] {
659
+ top: calc(100% - var(--media-slider-fill));
660
+ left: 50%;
685
661
  }
686
- }
687
662
 
688
- @media (prefers-reduced-motion: no-preference) {
689
- .media-slider__thumb {
690
- transition-property: opacity, scale, height, width, outline-offset, left, top;
663
+ &:focus-visible {
664
+ outline-color: var(--focus-ring-color);
665
+ outline-offset: 2px;
691
666
  }
692
- .media-slider__fill {
693
- transition-timing-function: linear;
694
- transition-duration: 200ms;
667
+
668
+ &:focus-visible,
669
+ &.media-slider__thumb--persistent {
670
+ opacity: 1;
671
+ scale: 1;
695
672
  }
696
- .media-slider__buffer {
673
+
674
+ @media (prefers-reduced-motion: no-preference) {
697
675
  transition-timing-function: ease-out;
698
- transition-duration: 250ms;
676
+ transition-duration: 150ms;
677
+ transition-property: opacity, outline-offset, left, top, scale;
699
678
  }
700
679
  }
701
680
 
702
- &[data-dragging],
703
- &[data-seeking] {
704
- .media-slider__thumb,
705
- .media-slider__fill,
706
- .media-slider__buffer {
707
- transition-duration: 0ms;
681
+ @media (hover: hover) and (pointer: fine) {
682
+ &:hover .media-slider__thumb {
683
+ opacity: 1;
684
+ scale: 1;
685
+ }
686
+ }
687
+
688
+ &[data-dragging] .media-slider__thumb {
689
+ opacity: 1;
690
+ scale: 0.9;
691
+
692
+ @media (prefers-reduced-motion: no-preference) {
693
+ transition-property: opacity, outline-offset, scale;
694
+ }
695
+
696
+ &[data-orientation="horizontal"] {
697
+ left: var(--media-slider-pointer);
698
+ }
699
+ &[data-orientation="vertical"] {
700
+ top: calc(100% - var(--media-slider-pointer));
708
701
  }
709
702
  }
710
703
 
711
704
  /* Preview */
712
705
  .media-slider__preview {
713
- --max-width: min(calc(var(--spacing) * 48), 100cqi);
714
- --max-height: calc(var(--spacing) * 32);
706
+ --max-size-factor: 28;
707
+ --max-size: min(calc(var(--spacing) * var(--max-size-factor)), 100cqi);
715
708
 
716
709
  min-width: 100%;
717
710
  height: calc(var(--spacing) * 1);
718
711
 
712
+ @container media-root (width > 32rem) {
713
+ --max-size-factor: 36;
714
+ }
715
+
716
+ @container media-root (width > 42rem) {
717
+ --max-size-factor: 48;
718
+ }
719
+
719
720
  .media-slider__thumbnail,
720
721
  .media-slider__value {
721
722
  position: absolute;
722
723
  left: var(--preview-left, var(--media-slider-pointer));
723
- max-width: var(--max-width);
724
+ max-width: var(--max-size);
724
725
  opacity: 0;
725
726
  filter: blur(8px);
726
727
  transform-origin: bottom;
@@ -732,8 +733,9 @@
732
733
  }
733
734
 
734
735
  .media-slider__thumbnail {
735
- --thumbnail-max-width: var(--max-width);
736
- bottom: calc(100% + (var(--spacing) * 12));
736
+ --thumbnail-max-width: var(--max-size);
737
+ --thumbnail-max-height: var(--max-size);
738
+ bottom: calc(100% + (var(--spacing) * 11));
737
739
  }
738
740
 
739
741
  .media-slider__value {
@@ -52,8 +52,8 @@ import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js";
52
52
  import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js";
53
53
  import { forwardRef } from "react";
54
54
  import { jsx, jsxs } from "react/jsx-runtime";
55
- import { playbackRateText } from "@videojs/core/i18n/text/menu";
56
55
  import { cn } from "@videojs/utils/style";
56
+ import { playbackRateText } from "@videojs/core/i18n/text/menu";
57
57
  //#region src/presets/audio/minimal-skin.tsx
58
58
  const SEEK_TIME = 10;
59
59
  const Button = forwardRef(function Button({ className, ...props }, ref) {
@@ -61,8 +61,8 @@ import { time } from "../../skins/dist/default/minimal/tailwind/components/time.
61
61
  import { container, controls, error, playButton, popup, slider } from "../../skins/dist/default/minimal/tailwind/audio.tailwind.js";
62
62
  import { forwardRef } from "react";
63
63
  import { jsx, jsxs } from "react/jsx-runtime";
64
- import { playbackRateText } from "@videojs/core/i18n/text/menu";
65
64
  import { cn } from "@videojs/utils/style";
65
+ import { playbackRateText } from "@videojs/core/i18n/text/menu";
66
66
  //#region src/presets/audio/minimal-skin.tailwind.tsx
67
67
  const SEEK_TIME = 10;
68
68
  const Button = forwardRef(function Button({ className, ...props }, ref) {