@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
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Menu.Root","Menu.Trigger","Menu.Content","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","VolumeIndicator.Root","VolumeIndicator.Fill","VolumeIndicator.Value","StatusIndicator.Root","StatusIndicator.Value"],"sources":["../../../../src/presets/live-video/skin.tsx"],"sourcesContent":["'use client';\n\nimport { captionsText } from '@videojs/core/i18n/text/menu';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, type CSSProperties, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n AirPlayEnterIcon,\n AirPlayExitIcon,\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n CheckIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { AirPlayButton } from '@/ui/airplay-button';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { useCaptionsOptions } from '@/ui/captions-radio-group';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { Gesture } from '@/ui/gesture';\nimport { Hotkey } from '@/ui/hotkey';\nimport { LiveButton } from '@/ui/live-button';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { StatusAnnouncer } from '@/ui/status-announcer';\nimport { StatusIndicator } from '@/ui/status-indicator';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeIndicator } from '@/ui/volume-indicator';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { BaseVideoSkinProps } from '../types';\n\nconst TOP_STATUS_ACTIONS = ['toggleSubtitles', 'toggleFullscreen', 'togglePictureInPicture'] as const;\nconst CENTER_STATUS_ACTIONS = ['togglePaused'] as const;\n\nexport type LiveVideoSkinProps = BaseVideoSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn('media-button media-button--subtle media-button--icon', className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnavailable = usePlayer((s) => s.volumeAvailability !== 'available');\n\n const muteButton = (\n <MuteButton className=\"media-button--mute\" render={<Button />}>\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n </MuteButton>\n );\n\n if (volumeUnavailable) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className=\"media-surface media-popover media-popover--volume\">\n <VolumeSlider.Root className=\"media-slider\" orientation=\"vertical\" thumbAlignment=\"edge\">\n <VolumeSlider.Track className=\"media-slider__track\">\n <VolumeSlider.Fill className=\"media-slider__fill\" />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb className=\"media-slider__thumb media-slider__thumb--persistent\" />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\n/**\n * Default video skin configured for live playback. Mirrors {@link VideoSkin}\n * but omits the time slider and the duration / current-time displays. A\n * flexible spacer stretches between the start and end button groups so they\n * sit at opposite edges of the control bar.\n */\nfunction CaptionsTrigger(): ReactNode {\n const t = useTranslator();\n const captions = useCaptionsOptions();\n if (!captions) return null;\n\n const { disabled } = captions;\n\n if (!captions.showMenu) {\n return (\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n );\n }\n\n const { options, setValue, value } = captions;\n\n return (\n <Menu.Root side=\"top\" align=\"center\">\n <Menu.Trigger\n disabled={disabled}\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Menu.Content className=\"media-surface media-popover media-menu media-menu--captions\">\n <Menu.RadioGroup\n className=\"media-menu__group\"\n value={value}\n onValueChange={setValue}\n aria-label={t(captionsText)}\n >\n {options.map((option) => (\n <Menu.RadioItem\n key={option.value}\n className=\"media-menu__item\"\n value={option.value}\n disabled={option.disabled}\n >\n <span>{option.label}</span>\n <Menu.ItemIndicator checked={option.value === value} forceMount className=\"media-menu__indicator\">\n <CheckIcon className=\"media-icon\" />\n </Menu.ItemIndicator>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu.Root>\n );\n}\n\nexport function LiveVideoSkin(props: LiveVideoSkinProps): ReactNode {\n const { children, className, poster, placeholder, style, ...rest } = props;\n\n const containerStyle = placeholder\n ? ({ '--media-poster-placeholder': `url(${placeholder})`, ...style } as CSSProperties)\n : style;\n\n return (\n <Container\n className={cn('media-default-skin media-default-skin--video', className)}\n style={containerStyle}\n {...rest}\n >\n {children}\n\n {poster && (\n <Poster src={isString(poster) ? poster : undefined} render={isRenderProp(poster) ? poster : undefined} />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className=\"media-buffering-indicator\">\n <SpinnerIcon className=\"media-icon\" />\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className=\"media-error\">\n <div className=\"media-error__dialog media-surface\">\n <div className=\"media-error__content\">\n <ErrorDialog.Title className=\"media-error__title\"></ErrorDialog.Title>\n <ErrorDialog.Description className=\"media-error__description\" />\n </div>\n <div className=\"media-error__actions\">\n <ErrorDialog.Close className=\"media-button media-button--primary\"></ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root className=\"media-surface media-controls media-controls--root\">\n <Tooltip.Provider>\n <div className=\"media-surface media-controls media-controls--primary\">\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className=\"media-button--play\" render={<Button />}>\n <RestartIcon className=\"media-icon media-icon--restart\" />\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </PlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <LiveButton className=\"media-button media-button--subtle media-button--live\" />\n </div>\n\n <div className=\"media-time-controls\" aria-hidden=\"true\" />\n\n <div className=\"media-button-group\">\n <VolumePopover />\n\n <CaptionsTrigger />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className=\"media-button--cast\" render={<Button />}>\n <CastEnterIcon className=\"media-icon media-icon--cast-enter\" />\n <CastExitIcon className=\"media-icon media-icon--cast-exit\" />\n </CastButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <AirPlayButton className=\"media-button--airplay\" render={<Button />}>\n <AirPlayEnterIcon className=\"media-icon media-icon--airplay-enter\" />\n <AirPlayExitIcon className=\"media-icon media-icon--airplay-exit\" />\n </AirPlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className=\"media-button--pip\" render={<Button />}>\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n </PiPButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className=\"media-button--fullscreen\" render={<Button />}>\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n\n {/* Hotkeys */}\n <Hotkey keys=\"Space\" action=\"togglePaused\" />\n <Hotkey keys=\"k\" action=\"togglePaused\" />\n <Hotkey keys=\"m\" action=\"toggleMuted\" />\n <Hotkey keys=\"f\" action=\"toggleFullscreen\" />\n <Hotkey keys=\"c\" action=\"toggleSubtitles\" />\n <Hotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <Hotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <Hotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n\n {/* Gestures */}\n <Gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <Gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <Gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n\n {/* Input Indicators */}\n <StatusAnnouncer className=\"media-sr-only\" />\n <div className=\"media-input-indicator-overlay\">\n <VolumeIndicator.Root className=\"media-surface media-volume-indicator\">\n <VolumeIndicator.Fill className=\"media-volume-indicator__content\">\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeIndicator.Value className=\"media-volume-indicator__value\" />\n </VolumeIndicator.Fill>\n </VolumeIndicator.Root>\n\n <StatusIndicator.Root\n actions={TOP_STATUS_ACTIONS}\n className=\"media-surface media-status-indicator media-status-indicator--state\"\n >\n <div className=\"media-status-indicator__content\">\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n <StatusIndicator.Value className=\"media-status-indicator__value\" />\n </div>\n </StatusIndicator.Root>\n\n <StatusIndicator.Root\n actions={CENTER_STATUS_ACTIONS}\n className=\"media-status-indicator media-status-indicator--playback\"\n >\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </StatusIndicator.Root>\n </div>\n </Container>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Menu.Root","Menu.Trigger","Menu.Content","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","VolumeIndicator.Root","VolumeIndicator.Fill","VolumeIndicator.Value","StatusIndicator.Root","StatusIndicator.Value"],"sources":["../../../../src/presets/live-video/skin.tsx"],"sourcesContent":["'use client';\n\nimport { captionsText } from '@videojs/core/i18n/text/menu';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, type CSSProperties, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n AirPlayEnterIcon,\n AirPlayExitIcon,\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n CheckIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { AirPlayButton } from '@/ui/airplay-button';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { useCaptionsOptions } from '@/ui/captions-radio-group';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { Gesture } from '@/ui/gesture';\nimport { Hotkey } from '@/ui/hotkey';\nimport { LiveButton } from '@/ui/live-button';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { StatusAnnouncer } from '@/ui/status-announcer';\nimport { StatusIndicator } from '@/ui/status-indicator';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeIndicator } from '@/ui/volume-indicator';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport type { BaseVideoSkinProps } from '../types';\n\nconst TOP_STATUS_ACTIONS = ['toggleSubtitles', 'toggleFullscreen', 'togglePictureInPicture'] as const;\nconst CENTER_STATUS_ACTIONS = ['togglePaused'] as const;\n\nexport type LiveVideoSkinProps = BaseVideoSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn('media-button media-button--subtle media-button--icon', className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnavailable = usePlayer((s) => s.volumeAvailability !== 'available');\n\n const muteButton = (\n <MuteButton className=\"media-button--mute\" render={<Button />}>\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n </MuteButton>\n );\n\n if (volumeUnavailable) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className=\"media-surface media-popover media-popover--volume\">\n <VolumeSlider.Root className=\"media-slider\" orientation=\"vertical\" thumbAlignment=\"edge\">\n <VolumeSlider.Track className=\"media-slider__track\">\n <VolumeSlider.Fill className=\"media-slider__fill\" />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb className=\"media-slider__thumb media-slider__thumb--persistent\" />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\n/**\n * Default video skin configured for live playback. Mirrors {@link VideoSkin}\n * but omits the time slider and the duration / current-time displays. A\n * flexible spacer stretches between the start and end button groups so they\n * sit at opposite edges of the control bar.\n */\nfunction CaptionsTrigger(): ReactNode {\n const t = useTranslator();\n const captions = useCaptionsOptions();\n if (!captions) return null;\n\n const { disabled } = captions;\n\n if (!captions.showMenu) {\n return (\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n );\n }\n\n const { options, setValue, value } = captions;\n\n return (\n <Menu.Root side=\"top\" align=\"center\">\n <Menu.Trigger\n disabled={disabled}\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Menu.Content className=\"media-surface media-popover media-menu media-menu--captions\">\n <Menu.RadioGroup\n className=\"media-menu__group\"\n value={value}\n onValueChange={setValue}\n aria-label={t(captionsText)}\n >\n {options.map((option) => (\n <Menu.RadioItem\n key={option.value}\n className=\"media-menu__item\"\n value={option.value}\n disabled={option.disabled}\n >\n <span>{option.label}</span>\n <Menu.ItemIndicator checked={option.value === value} forceMount className=\"media-menu__indicator\">\n <CheckIcon className=\"media-icon\" />\n </Menu.ItemIndicator>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu.Root>\n );\n}\n\nexport function LiveVideoSkin(props: LiveVideoSkinProps): ReactNode {\n const { children, className, renderPoster, placeholder, style, ...rest } = props;\n\n const containerStyle = placeholder\n ? ({ '--media-poster-placeholder': `url(${placeholder})`, ...style } as CSSProperties)\n : style;\n\n return (\n <Container\n className={cn('media-default-skin media-default-skin--video', className)}\n style={containerStyle}\n {...rest}\n >\n {children}\n\n <Poster render={renderPoster} />\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className=\"media-buffering-indicator\">\n <SpinnerIcon className=\"media-icon\" />\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className=\"media-error\">\n <div className=\"media-error__dialog media-surface\">\n <div className=\"media-error__content\">\n <ErrorDialog.Title className=\"media-error__title\"></ErrorDialog.Title>\n <ErrorDialog.Description className=\"media-error__description\" />\n </div>\n <div className=\"media-error__actions\">\n <ErrorDialog.Close className=\"media-button media-button--primary\"></ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root className=\"media-surface media-controls media-controls--root\">\n <Tooltip.Provider>\n <div className=\"media-surface media-controls media-controls--primary\">\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className=\"media-button--play\" render={<Button />}>\n <RestartIcon className=\"media-icon media-icon--restart\" />\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </PlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <LiveButton className=\"media-button media-button--subtle media-button--live\" />\n </div>\n\n <div className=\"media-time-controls\" aria-hidden=\"true\" />\n\n <div className=\"media-button-group\">\n <VolumePopover />\n\n <CaptionsTrigger />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className=\"media-button--cast\" render={<Button />}>\n <CastEnterIcon className=\"media-icon media-icon--cast-enter\" />\n <CastExitIcon className=\"media-icon media-icon--cast-exit\" />\n </CastButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <AirPlayButton className=\"media-button--airplay\" render={<Button />}>\n <AirPlayEnterIcon className=\"media-icon media-icon--airplay-enter\" />\n <AirPlayExitIcon className=\"media-icon media-icon--airplay-exit\" />\n </AirPlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className=\"media-button--pip\" render={<Button />}>\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n </PiPButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className=\"media-button--fullscreen\" render={<Button />}>\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">\n <Tooltip.Label />\n <Tooltip.Shortcut className=\"media-tooltip__kbd\" />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n\n {/* Hotkeys */}\n <Hotkey keys=\"Space\" action=\"togglePaused\" />\n <Hotkey keys=\"k\" action=\"togglePaused\" />\n <Hotkey keys=\"m\" action=\"toggleMuted\" />\n <Hotkey keys=\"f\" action=\"toggleFullscreen\" />\n <Hotkey keys=\"c\" action=\"toggleSubtitles\" />\n <Hotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <Hotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <Hotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n\n {/* Gestures */}\n <Gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <Gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <Gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n\n {/* Input Indicators */}\n <StatusAnnouncer className=\"media-sr-only\" />\n <div className=\"media-input-indicator-overlay\">\n <VolumeIndicator.Root className=\"media-surface media-volume-indicator\">\n <VolumeIndicator.Fill className=\"media-volume-indicator__content\">\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeIndicator.Value className=\"media-volume-indicator__value\" />\n </VolumeIndicator.Fill>\n </VolumeIndicator.Root>\n\n <StatusIndicator.Root\n actions={TOP_STATUS_ACTIONS}\n className=\"media-surface media-status-indicator media-status-indicator--state\"\n >\n <div className=\"media-status-indicator__content\">\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n <StatusIndicator.Value className=\"media-status-indicator__value\" />\n </div>\n </StatusIndicator.Root>\n\n <StatusIndicator.Root\n actions={CENTER_STATUS_ACTIONS}\n className=\"media-status-indicator media-status-indicator--playback\"\n >\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </StatusIndicator.Root>\n </div>\n </Container>\n );\n}\n"],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  import { useTranslator } from "../../i18n/context.js";
3
3
  import { usePlayer } from "../../player/context.js";
4
4
  import { Container } from "../../player/container.js";
5
- import { isRenderProp } from "../../utils/use-render.js";
6
5
  import { AirPlayButton } from "../../ui/airplay-button/airplay-button.js";
7
6
  import { AlertDialogPopup } from "../../ui/alert-dialog/alert-dialog-popup.js";
8
7
  import { MenuRadioGroup } from "../../ui/menu/menu-radio-group.js";
@@ -74,9 +73,8 @@ import { poster } from "../../skins/dist/default/default/tailwind/components/pos
74
73
  import { bufferingIndicator, buttonGroupEnd, buttonGroupStart, container, controls, error, menu, popup, primaryControls, slider, spacer, statusIndicator, volumeIndicator } from "../../skins/dist/default/default/tailwind/video.tailwind.js";
75
74
  import { forwardRef } from "react";
76
75
  import { jsx, jsxs } from "react/jsx-runtime";
77
- import { isString } from "@videojs/utils/predicate";
78
- import { captionsText } from "@videojs/core/i18n/text/menu";
79
76
  import { cn } from "@videojs/utils/style";
77
+ import { captionsText } from "@videojs/core/i18n/text/menu";
80
78
  //#region src/presets/live-video/skin.tailwind.tsx
81
79
  const TOP_STATUS_ACTIONS = [
82
80
  "toggleSubtitles",
@@ -162,7 +160,7 @@ function CaptionsTrigger() {
162
160
  if (!captions.showMenu) return /* @__PURE__ */ jsxs(TooltipRoot, {
163
161
  side: "top",
164
162
  children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(CaptionsButton, {
165
- className: iconState.captions.button,
163
+ className: cn(button.captions, iconState.captions.button),
166
164
  render: /* @__PURE__ */ jsx(Button, {}),
167
165
  children: [/* @__PURE__ */ jsx(CaptionsOffIcon, { className: cn(icon, iconState.captions.off) }), /* @__PURE__ */ jsx(CaptionsOnIcon, { className: cn(icon, iconState.captions.on) })]
168
166
  }) }), /* @__PURE__ */ jsxs(TooltipPopup, {
@@ -176,7 +174,7 @@ function CaptionsTrigger() {
176
174
  children: [/* @__PURE__ */ jsx(MenuTrigger, {
177
175
  disabled,
178
176
  render: /* @__PURE__ */ jsxs(CaptionsButton, {
179
- className: iconState.captions.button,
177
+ className: cn(button.captions, iconState.captions.button),
180
178
  render: /* @__PURE__ */ jsx(Button, {}),
181
179
  children: [/* @__PURE__ */ jsx(CaptionsOffIcon, { className: cn(icon, iconState.captions.off) }), /* @__PURE__ */ jsx(CaptionsOnIcon, { className: cn(icon, iconState.captions.on) })]
182
180
  })
@@ -203,7 +201,7 @@ function CaptionsTrigger() {
203
201
  });
204
202
  }
205
203
  function LiveVideoSkinTailwind(props) {
206
- const { children, className, poster: posterProp, placeholder, style, ...rest } = props;
204
+ const { children, className, renderPoster, placeholder, style, ...rest } = props;
207
205
  const containerStyle = placeholder ? {
208
206
  "--media-poster-placeholder": `url(${placeholder})`,
209
207
  ...style
@@ -214,10 +212,9 @@ function LiveVideoSkinTailwind(props) {
214
212
  ...rest,
215
213
  children: [
216
214
  children,
217
- posterProp && /* @__PURE__ */ jsx(Poster, {
218
- src: isString(posterProp) ? posterProp : void 0,
219
- render: isRenderProp(posterProp) ? posterProp : void 0,
220
- className: poster(false)
215
+ /* @__PURE__ */ jsx(Poster, {
216
+ className: poster(false),
217
+ render: renderPoster
221
218
  }),
222
219
  /* @__PURE__ */ jsx(BufferingIndicator, { render: (props) => /* @__PURE__ */ jsx("div", {
223
220
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Menu.Root","Menu.Trigger","Menu.Content","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","VolumeIndicator.Root","VolumeIndicator.Fill","VolumeIndicator.Value","StatusIndicator.Root","StatusIndicator.Value"],"sources":["../../../../src/presets/live-video/skin.tailwind.tsx"],"sourcesContent":["'use client';\n\nimport { captionsText } from '@videojs/core/i18n/text/menu';\nimport {\n bufferingIndicator,\n button,\n buttonGroupEnd,\n buttonGroupStart,\n container,\n controls,\n error,\n icon,\n iconState,\n inputIndicatorOverlay,\n menu,\n overlay,\n popup,\n poster,\n primaryControls,\n slider,\n spacer,\n statusIndicator,\n volumeIndicator,\n} from '@videojs/skins/default/tailwind/video.tailwind';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, type CSSProperties, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n AirPlayEnterIcon,\n AirPlayExitIcon,\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n CheckIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { AirPlayButton } from '@/ui/airplay-button';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { useCaptionsOptions } from '@/ui/captions-radio-group';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { Gesture } from '@/ui/gesture';\nimport { Hotkey } from '@/ui/hotkey';\nimport { LiveButton } from '@/ui/live-button';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { StatusAnnouncer } from '@/ui/status-announcer';\nimport { StatusIndicator } from '@/ui/status-indicator';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeIndicator } from '@/ui/volume-indicator';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { LiveVideoSkinProps } from './skin';\n\nconst TOP_STATUS_ACTIONS = ['toggleSubtitles', 'toggleFullscreen', 'togglePictureInPicture'] as const;\nconst CENTER_STATUS_ACTIONS = ['togglePaused'] as const;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button ref={ref} type=\"button\" className={cn(button.base, button.subtle, button.icon, className)} {...props} />\n );\n});\n\nconst SliderRoot = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderRoot({ className, ...props }, ref) {\n return <div ref={ref} className={cn(slider.root, className)} {...props} />;\n});\n\nconst SliderTrack = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderTrack(\n { className, ...props },\n ref\n) {\n return <div ref={ref} className={cn(slider.track, className)} {...props} />;\n});\n\nconst SliderFill = forwardRef<HTMLDivElement, ComponentProps<'div'> & { type?: 'fill' | 'buffer' }>(function SliderFill(\n { type = 'fill', className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.fill.base, type === 'fill' ? slider.fill.fill : slider.fill.buffer, className)}\n {...props}\n />\n );\n});\n\nconst SliderThumb = forwardRef<HTMLDivElement, ComponentProps<'div'> & { persistent?: boolean }>(function SliderThumb(\n { persistent, className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.thumb.base, persistent ? slider.thumb.persistent : slider.thumb.interactive, className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnavailable = usePlayer((s) => s.volumeAvailability !== 'available');\n\n const muteButton = (\n <MuteButton className={iconState.mute.button} render={<Button />}>\n <VolumeOffIcon className={cn(icon, iconState.mute.volumeOff)} />\n <VolumeLowIcon className={cn(icon, iconState.mute.volumeLow)} />\n <VolumeHighIcon className={cn(icon, iconState.mute.volumeHigh)} />\n </MuteButton>\n );\n\n if (volumeUnavailable) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.popover, popup.volume)}>\n <VolumeSlider.Root orientation=\"vertical\" thumbAlignment=\"edge\" render={<SliderRoot />}>\n <VolumeSlider.Track render={<SliderTrack />}>\n <VolumeSlider.Fill render={<SliderFill />} />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb render={(props) => <SliderThumb persistent {...props} />} />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\nfunction CaptionsTrigger(): ReactNode {\n const t = useTranslator();\n const captions = useCaptionsOptions();\n if (!captions) return null;\n\n const { disabled } = captions;\n\n if (!captions.showMenu) {\n return (\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className={iconState.captions.button} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n );\n }\n\n return (\n <Menu.Root side=\"top\" align=\"center\">\n <Menu.Trigger\n disabled={disabled}\n render={\n <CaptionsButton className={iconState.captions.button} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Menu.Content className={cn(popup.popover, menu.root)}>\n <Menu.RadioGroup\n className={menu.group}\n value={captions.value}\n onValueChange={captions.setValue}\n aria-label={t(captionsText)}\n >\n {captions.options.map((option) => (\n <Menu.RadioItem key={option.value} className={menu.item} value={option.value} disabled={option.disabled}>\n <span>{option.label}</span>\n <Menu.ItemIndicator checked={option.value === captions.value} forceMount className={menu.indicator}>\n <CheckIcon className={cn(icon, menu.icon)} />\n </Menu.ItemIndicator>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu.Root>\n );\n}\n\nexport function LiveVideoSkinTailwind(props: LiveVideoSkinProps): ReactNode {\n const { children, className, poster: posterProp, placeholder, style, ...rest } = props;\n\n const containerStyle = placeholder\n ? ({ '--media-poster-placeholder': `url(${placeholder})`, ...style } as CSSProperties)\n : style;\n\n return (\n <Container className={cn(container(false), className)} style={containerStyle} {...rest}>\n {children}\n\n {posterProp && (\n <Poster\n src={isString(posterProp) ? posterProp : undefined}\n render={isRenderProp(posterProp) ? posterProp : undefined}\n className={poster(false)}\n />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className={bufferingIndicator.root}>\n <SpinnerIcon className={icon} />\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className={error.root}>\n <div className={error.dialog}>\n <div className={error.content}>\n <ErrorDialog.Title className={error.title}></ErrorDialog.Title>\n <ErrorDialog.Description className={error.description} />\n </div>\n <div className={error.actions}>\n <ErrorDialog.Close className={cn(button.base, button.primary)}></ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root\n data-controls=\"\" // Used as a hook for Tailwind has-[] styles\n className={controls}\n >\n <Tooltip.Provider>\n <div className={primaryControls}>\n <div className={buttonGroupStart}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className={iconState.play.button} render={<Button />}>\n <RestartIcon className={cn(icon, iconState.play.restart)} />\n <PlayIcon className={cn(icon, iconState.play.play)} />\n <PauseIcon className={cn(icon, iconState.play.pause)} />\n </PlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <LiveButton className={cn(button.base, button.subtle, button.live)} />\n </div>\n\n <div className={spacer} aria-hidden=\"true\" />\n\n <div className={buttonGroupEnd}>\n <VolumePopover />\n\n <CaptionsTrigger />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className={iconState.cast.button} render={<Button />}>\n <CastEnterIcon className={cn(icon, iconState.cast.enter)} />\n <CastExitIcon className={cn(icon, iconState.cast.exit)} />\n </CastButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <AirPlayButton className={iconState.airplay.button} render={<Button />}>\n <AirPlayEnterIcon className={cn(icon, iconState.airplay.enter)} />\n <AirPlayExitIcon className={cn(icon, iconState.airplay.exit)} />\n </AirPlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className={iconState.pip.button} render={<Button />}>\n <PipEnterIcon className={cn(icon, iconState.pip.off)} />\n <PipExitIcon className={cn(icon, iconState.pip.on)} />\n </PiPButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className={iconState.fullscreen.button} render={<Button />}>\n <FullscreenEnterIcon className={cn(icon, iconState.fullscreen.enter)} />\n <FullscreenExitIcon className={cn(icon, iconState.fullscreen.exit)} />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className={overlay} />\n\n {/* Hotkeys */}\n <Hotkey keys=\"Space\" action=\"togglePaused\" />\n <Hotkey keys=\"k\" action=\"togglePaused\" />\n <Hotkey keys=\"m\" action=\"toggleMuted\" />\n <Hotkey keys=\"f\" action=\"toggleFullscreen\" />\n <Hotkey keys=\"c\" action=\"toggleSubtitles\" />\n <Hotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <Hotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <Hotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n\n {/* Gestures */}\n <Gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <Gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <Gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n\n {/* Input Indicators */}\n <StatusAnnouncer className=\"sr-only\" />\n <div className={inputIndicatorOverlay}>\n <VolumeIndicator.Root className={volumeIndicator.root}>\n <VolumeIndicator.Fill className={volumeIndicator.content}>\n <VolumeHighIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.high)} />\n <VolumeLowIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.low)} />\n <VolumeOffIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.off)} />\n <VolumeIndicator.Value className={volumeIndicator.value} />\n </VolumeIndicator.Fill>\n </VolumeIndicator.Root>\n\n <StatusIndicator.Root actions={TOP_STATUS_ACTIONS} className={statusIndicator.root}>\n <div className={statusIndicator.content}>\n <CaptionsOnIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.captionsOn)} />\n <CaptionsOffIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.captionsOff)} />\n <FullscreenEnterIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.fullscreenEnter)} />\n <FullscreenExitIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.fullscreenExit)} />\n <PipEnterIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.pipEnter)} />\n <PipExitIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.pipExit)} />\n <StatusIndicator.Value className={statusIndicator.value} />\n </div>\n </StatusIndicator.Root>\n\n <StatusIndicator.Root actions={CENTER_STATUS_ACTIONS} className={statusIndicator.playback.root}>\n <PlayIcon className={cn(statusIndicator.playback.icon.base, statusIndicator.playback.icon.play)} />\n <PauseIcon className={cn(statusIndicator.playback.icon.base, statusIndicator.playback.icon.pause)} />\n </StatusIndicator.Root>\n </div>\n </Container>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"skin.tailwind.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Tooltip.Label","Tooltip.Shortcut","Menu.Root","Menu.Trigger","Menu.Content","Menu.RadioGroup","Menu.RadioItem","Menu.ItemIndicator","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","VolumeIndicator.Root","VolumeIndicator.Fill","VolumeIndicator.Value","StatusIndicator.Root","StatusIndicator.Value"],"sources":["../../../../src/presets/live-video/skin.tailwind.tsx"],"sourcesContent":["'use client';\n\nimport { captionsText } from '@videojs/core/i18n/text/menu';\nimport {\n bufferingIndicator,\n button,\n buttonGroupEnd,\n buttonGroupStart,\n container,\n controls,\n error,\n icon,\n iconState,\n inputIndicatorOverlay,\n menu,\n overlay,\n popup,\n poster,\n primaryControls,\n slider,\n spacer,\n statusIndicator,\n volumeIndicator,\n} from '@videojs/skins/default/tailwind/video.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, type CSSProperties, forwardRef, type ReactNode } from 'react';\nimport { useTranslator } from '@/i18n/context';\nimport {\n AirPlayEnterIcon,\n AirPlayExitIcon,\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n CheckIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@/icons';\nimport { Container } from '@/player/container';\nimport { usePlayer } from '@/player/context';\nimport { AirPlayButton } from '@/ui/airplay-button';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { useCaptionsOptions } from '@/ui/captions-radio-group';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { Gesture } from '@/ui/gesture';\nimport { Hotkey } from '@/ui/hotkey';\nimport { LiveButton } from '@/ui/live-button';\nimport { Menu } from '@/ui/menu';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { StatusAnnouncer } from '@/ui/status-announcer';\nimport { StatusIndicator } from '@/ui/status-indicator';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeIndicator } from '@/ui/volume-indicator';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport type { LiveVideoSkinProps } from './skin';\n\nconst TOP_STATUS_ACTIONS = ['toggleSubtitles', 'toggleFullscreen', 'togglePictureInPicture'] as const;\nconst CENTER_STATUS_ACTIONS = ['togglePaused'] as const;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button ref={ref} type=\"button\" className={cn(button.base, button.subtle, button.icon, className)} {...props} />\n );\n});\n\nconst SliderRoot = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderRoot({ className, ...props }, ref) {\n return <div ref={ref} className={cn(slider.root, className)} {...props} />;\n});\n\nconst SliderTrack = forwardRef<HTMLDivElement, ComponentProps<'div'>>(function SliderTrack(\n { className, ...props },\n ref\n) {\n return <div ref={ref} className={cn(slider.track, className)} {...props} />;\n});\n\nconst SliderFill = forwardRef<HTMLDivElement, ComponentProps<'div'> & { type?: 'fill' | 'buffer' }>(function SliderFill(\n { type = 'fill', className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.fill.base, type === 'fill' ? slider.fill.fill : slider.fill.buffer, className)}\n {...props}\n />\n );\n});\n\nconst SliderThumb = forwardRef<HTMLDivElement, ComponentProps<'div'> & { persistent?: boolean }>(function SliderThumb(\n { persistent, className, ...props },\n ref\n) {\n return (\n <div\n ref={ref}\n className={cn(slider.thumb.base, persistent ? slider.thumb.persistent : slider.thumb.interactive, className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnavailable = usePlayer((s) => s.volumeAvailability !== 'available');\n\n const muteButton = (\n <MuteButton className={iconState.mute.button} render={<Button />}>\n <VolumeOffIcon className={cn(icon, iconState.mute.volumeOff)} />\n <VolumeLowIcon className={cn(icon, iconState.mute.volumeLow)} />\n <VolumeHighIcon className={cn(icon, iconState.mute.volumeHigh)} />\n </MuteButton>\n );\n\n if (volumeUnavailable) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.popover, popup.volume)}>\n <VolumeSlider.Root orientation=\"vertical\" thumbAlignment=\"edge\" render={<SliderRoot />}>\n <VolumeSlider.Track render={<SliderTrack />}>\n <VolumeSlider.Fill render={<SliderFill />} />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb render={(props) => <SliderThumb persistent {...props} />} />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\nfunction CaptionsTrigger(): ReactNode {\n const t = useTranslator();\n const captions = useCaptionsOptions();\n if (!captions) return null;\n\n const { disabled } = captions;\n\n if (!captions.showMenu) {\n return (\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className={cn(button.captions, iconState.captions.button)} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n );\n }\n\n return (\n <Menu.Root side=\"top\" align=\"center\">\n <Menu.Trigger\n disabled={disabled}\n render={\n <CaptionsButton className={cn(button.captions, iconState.captions.button)} render={<Button />}>\n <CaptionsOffIcon className={cn(icon, iconState.captions.off)} />\n <CaptionsOnIcon className={cn(icon, iconState.captions.on)} />\n </CaptionsButton>\n }\n />\n <Menu.Content className={cn(popup.popover, menu.root)}>\n <Menu.RadioGroup\n className={menu.group}\n value={captions.value}\n onValueChange={captions.setValue}\n aria-label={t(captionsText)}\n >\n {captions.options.map((option) => (\n <Menu.RadioItem key={option.value} className={menu.item} value={option.value} disabled={option.disabled}>\n <span>{option.label}</span>\n <Menu.ItemIndicator checked={option.value === captions.value} forceMount className={menu.indicator}>\n <CheckIcon className={cn(icon, menu.icon)} />\n </Menu.ItemIndicator>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu.Root>\n );\n}\n\nexport function LiveVideoSkinTailwind(props: LiveVideoSkinProps): ReactNode {\n const { children, className, renderPoster, placeholder, style, ...rest } = props;\n\n const containerStyle = placeholder\n ? ({ '--media-poster-placeholder': `url(${placeholder})`, ...style } as CSSProperties)\n : style;\n\n return (\n <Container className={cn(container(false), className)} style={containerStyle} {...rest}>\n {children}\n\n <Poster className={poster(false)} render={renderPoster} />\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className={bufferingIndicator.root}>\n <SpinnerIcon className={icon} />\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className={error.root}>\n <div className={error.dialog}>\n <div className={error.content}>\n <ErrorDialog.Title className={error.title}></ErrorDialog.Title>\n <ErrorDialog.Description className={error.description} />\n </div>\n <div className={error.actions}>\n <ErrorDialog.Close className={cn(button.base, button.primary)}></ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root\n data-controls=\"\" // Used as a hook for Tailwind has-[] styles\n className={controls}\n >\n <Tooltip.Provider>\n <div className={primaryControls}>\n <div className={buttonGroupStart}>\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className={iconState.play.button} render={<Button />}>\n <RestartIcon className={cn(icon, iconState.play.restart)} />\n <PlayIcon className={cn(icon, iconState.play.play)} />\n <PauseIcon className={cn(icon, iconState.play.pause)} />\n </PlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <LiveButton className={cn(button.base, button.subtle, button.live)} />\n </div>\n\n <div className={spacer} aria-hidden=\"true\" />\n\n <div className={buttonGroupEnd}>\n <VolumePopover />\n\n <CaptionsTrigger />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className={iconState.cast.button} render={<Button />}>\n <CastEnterIcon className={cn(icon, iconState.cast.enter)} />\n <CastExitIcon className={cn(icon, iconState.cast.exit)} />\n </CastButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <AirPlayButton className={iconState.airplay.button} render={<Button />}>\n <AirPlayEnterIcon className={cn(icon, iconState.airplay.enter)} />\n <AirPlayExitIcon className={cn(icon, iconState.airplay.exit)} />\n </AirPlayButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className={iconState.pip.button} render={<Button />}>\n <PipEnterIcon className={cn(icon, iconState.pip.off)} />\n <PipExitIcon className={cn(icon, iconState.pip.on)} />\n </PiPButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className={iconState.fullscreen.button} render={<Button />}>\n <FullscreenEnterIcon className={cn(icon, iconState.fullscreen.enter)} />\n <FullscreenExitIcon className={cn(icon, iconState.fullscreen.exit)} />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className={cn(popup.tooltip)}>\n <Tooltip.Label />\n <Tooltip.Shortcut className={popup.tooltipShortcut} />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className={overlay} />\n\n {/* Hotkeys */}\n <Hotkey keys=\"Space\" action=\"togglePaused\" />\n <Hotkey keys=\"k\" action=\"togglePaused\" />\n <Hotkey keys=\"m\" action=\"toggleMuted\" />\n <Hotkey keys=\"f\" action=\"toggleFullscreen\" />\n <Hotkey keys=\"c\" action=\"toggleSubtitles\" />\n <Hotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <Hotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <Hotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n\n {/* Gestures */}\n <Gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <Gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <Gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n\n {/* Input Indicators */}\n <StatusAnnouncer className=\"sr-only\" />\n <div className={inputIndicatorOverlay}>\n <VolumeIndicator.Root className={volumeIndicator.root}>\n <VolumeIndicator.Fill className={volumeIndicator.content}>\n <VolumeHighIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.high)} />\n <VolumeLowIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.low)} />\n <VolumeOffIcon className={cn(volumeIndicator.icon.base, volumeIndicator.icon.off)} />\n <VolumeIndicator.Value className={volumeIndicator.value} />\n </VolumeIndicator.Fill>\n </VolumeIndicator.Root>\n\n <StatusIndicator.Root actions={TOP_STATUS_ACTIONS} className={statusIndicator.root}>\n <div className={statusIndicator.content}>\n <CaptionsOnIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.captionsOn)} />\n <CaptionsOffIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.captionsOff)} />\n <FullscreenEnterIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.fullscreenEnter)} />\n <FullscreenExitIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.fullscreenExit)} />\n <PipEnterIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.pipEnter)} />\n <PipExitIcon className={cn(statusIndicator.icon.base, statusIndicator.icon.pipExit)} />\n <StatusIndicator.Value className={statusIndicator.value} />\n </div>\n </StatusIndicator.Root>\n\n <StatusIndicator.Root actions={CENTER_STATUS_ACTIONS} className={statusIndicator.playback.root}>\n <PlayIcon className={cn(statusIndicator.playback.icon.base, statusIndicator.playback.icon.play)} />\n <PauseIcon className={cn(statusIndicator.playback.icon.base, statusIndicator.playback.icon.pause)} />\n </StatusIndicator.Root>\n </div>\n </Container>\n );\n}\n"],"mappings":"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"}