@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":"minimal-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/minimal-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 slider,\n spacer,\n statusIndicator,\n volumeIndicator,\n} from '@videojs/skins/minimal/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/minimal';\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 { MinimalLiveVideoSkinProps } from './minimal-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 ? undefined : 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=\"right\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.volume)}>\n <VolumeSlider.Root orientation=\"horizontal\" 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 MinimalLiveVideoSkinTailwind(props: MinimalLiveVideoSkinProps): 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}>\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={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\n <VolumePopover />\n </div>\n\n <div className={spacer} aria-hidden=\"true\" />\n\n <div className={buttonGroupEnd}>\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 </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 <div aria-hidden=\"true\" className={volumeIndicator.progress} />\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":"minimal-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/minimal-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 slider,\n spacer,\n statusIndicator,\n volumeIndicator,\n} from '@videojs/skins/minimal/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/minimal';\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 { MinimalLiveVideoSkinProps } from './minimal-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 ? undefined : 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=\"right\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className={cn(popup.volume)}>\n <VolumeSlider.Root orientation=\"horizontal\" 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 MinimalLiveVideoSkinTailwind(props: MinimalLiveVideoSkinProps): 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}>\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={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\n <VolumePopover />\n </div>\n\n <div className={spacer} aria-hidden=\"true\" />\n\n <div className={buttonGroupEnd}>\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 </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 <div aria-hidden=\"true\" className={volumeIndicator.progress} />\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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"}
@@ -3,8 +3,8 @@ import { index_d_exports } from "../../index.js";
3
3
  //#region src/presets/live-video/player.d.ts
4
4
  /** Preconfigured player with the live video features. */
5
5
  declare const LiveVideoPlayer: import("react").FC<PlayerProps<{
6
- contentTitle: import("@videojs/media").MediaContentValue;
7
- defaultContentTitle: import("@videojs/media").MediaContentValue;
6
+ title: import("@videojs/media").MediaContentValue;
7
+ poster: import("@videojs/media").MediaContentValue;
8
8
  }>>,
9
9
  /** Access the live video player store or select a value from it. */
10
10
  usePlayer: UsePlayerHook<index_d_exports.PlayerStore<index_d_exports.LiveVideoFeatures>>;
@@ -557,7 +557,7 @@
557
557
  position: relative;
558
558
  display: block;
559
559
  max-width: var(--thumbnail-max-width);
560
- max-height: var(--max-height);
560
+ max-height: var(--thumbnail-max-height);
561
561
  overflow: clip;
562
562
  border-radius: inherit;
563
563
 
@@ -612,8 +612,7 @@
612
612
  --track-size: calc(var(--spacing) * 1);
613
613
  --track-highlighted-size: calc(var(--spacing) * 1.75);
614
614
  --track-border-radius: 99px;
615
- --thumb-size: calc(var(--spacing) * 2.5);
616
- --thumb-active-size: calc(var(--spacing) * 3);
615
+ --thumb-size: calc(var(--spacing) * 3);
617
616
  --chapter-gap: calc(var(--spacing) * 1);
618
617
  --chapter-inset-start: calc(var(--chapter-gap) / 2);
619
618
  --chapter-inset-end: calc(var(--chapter-gap) / 2);
@@ -666,13 +665,22 @@
666
665
  inset-block: 0;
667
666
  left: 0;
668
667
  width: 100%;
669
- transition-property: clip-path;
670
668
  }
671
669
  &[data-orientation="vertical"] {
672
670
  inset-inline: 0;
673
671
  bottom: 0;
674
672
  height: 100%;
675
- transition-property: clip-path;
673
+ }
674
+
675
+ @media (prefers-reduced-motion: no-preference) {
676
+ transition: clip-path 200ms ease-out;
677
+ }
678
+ }
679
+ &[data-dragging],
680
+ &[data-seeking] {
681
+ .media-slider__fill,
682
+ .media-slider__buffer {
683
+ transition-duration: 0ms;
676
684
  }
677
685
  }
678
686
 
@@ -699,6 +707,14 @@
699
707
  clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round var(--track-border-radius));
700
708
  }
701
709
  }
710
+ &[data-dragging] {
711
+ .media-slider__fill[data-orientation="horizontal"] {
712
+ clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));
713
+ }
714
+ .media-slider__fill[data-orientation="vertical"] {
715
+ clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));
716
+ }
717
+ }
702
718
 
703
719
  /* Chapters */
704
720
  .media-slider__chapters {
@@ -780,45 +796,6 @@
780
796
  }
781
797
  }
782
798
 
783
- /* Dragging — thumb and fill follow the pointer position */
784
- &[data-dragging] {
785
- .media-slider__thumb[data-orientation="horizontal"] {
786
- left: var(--media-slider-pointer);
787
- }
788
- .media-slider__thumb[data-orientation="vertical"] {
789
- top: calc(100% - var(--media-slider-pointer));
790
- }
791
- .media-slider__fill[data-orientation="horizontal"] {
792
- clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));
793
- }
794
- .media-slider__fill[data-orientation="vertical"] {
795
- clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));
796
- }
797
- }
798
-
799
- @media (prefers-reduced-motion: no-preference) {
800
- .media-slider__thumb {
801
- transition-property: opacity, height, width, outline-offset, left, top;
802
- }
803
- .media-slider__fill {
804
- transition-timing-function: linear;
805
- transition-duration: 200ms;
806
- }
807
- .media-slider__buffer {
808
- transition-timing-function: ease-out;
809
- transition-duration: 250ms;
810
- }
811
- }
812
-
813
- &[data-dragging],
814
- &[data-seeking] {
815
- .media-slider__thumb,
816
- .media-slider__fill,
817
- .media-slider__buffer {
818
- transition-duration: 0ms;
819
- }
820
- }
821
-
822
799
  /* Thumb */
823
800
  .media-slider__thumb {
824
801
  position: absolute;
@@ -835,10 +812,8 @@
835
812
  0 1px 3px 0 oklch(0 0 0 / 0.35),
836
813
  0 1px 2px -1px oklch(0 0 0 / 0.35);
837
814
  opacity: 0;
815
+ scale: 0.8;
838
816
  translate: -50% -50%;
839
- transition-timing-function: ease-out;
840
- transition-duration: 150ms;
841
- transition-property: opacity, height, width, outline-offset;
842
817
 
843
818
  &[data-orientation="horizontal"] {
844
819
  top: 50%;
@@ -855,22 +830,12 @@
855
830
  opacity: 1;
856
831
  }
857
832
 
858
- @media (hover: hover) and (pointer: fine) {
859
- &:hover {
860
- outline-color: oklch(from currentColor l c h / 0.15);
861
- outline-offset: 0;
862
- }
863
- }
864
-
865
833
  &::after {
866
834
  position: absolute;
867
835
  inset: -4px;
868
836
  content: "";
869
837
  border-radius: inherit;
870
838
  box-shadow: 0 0 0 2px currentColor;
871
- transition-timing-function: ease-out;
872
- transition-duration: 150ms;
873
- transition-property: opacity, scale;
874
839
  }
875
840
 
876
841
  &:not(:focus-visible)::after {
@@ -879,37 +844,70 @@
879
844
  }
880
845
 
881
846
  &.media-slider__thumb--persistent {
882
- width: var(--thumb-active-size);
883
- height: var(--thumb-active-size);
884
847
  opacity: 1;
848
+ scale: 1;
849
+ }
850
+
851
+ @media (hover: hover) and (pointer: fine) {
852
+ &:hover {
853
+ outline-color: oklch(from currentColor l c h / 0.15);
854
+ outline-offset: 0;
855
+ }
885
856
  }
886
- }
887
857
 
888
- &:active .media-slider__thumb,
889
- &:focus-within .media-slider__thumb {
890
- width: var(--thumb-active-size);
891
- height: var(--thumb-active-size);
858
+ @media (prefers-reduced-motion: no-preference) {
859
+ transition-timing-function: ease-out;
860
+ transition-duration: 150ms;
861
+ transition-property: opacity, outline-offset, left, top, scale;
862
+
863
+ &::after {
864
+ transition-timing-function: ease-out;
865
+ transition-duration: 150ms;
866
+ transition-property: opacity, scale;
867
+ }
868
+ }
892
869
  }
893
870
 
894
871
  @media (hover: hover) and (pointer: fine) {
895
872
  &:hover .media-slider__thumb {
896
873
  opacity: 1;
874
+ scale: 1;
875
+ }
876
+ }
877
+
878
+ &[data-dragging] .media-slider__thumb {
879
+ opacity: 1;
880
+ scale: 0.9;
881
+
882
+ @media (prefers-reduced-motion: no-preference) {
883
+ transition-property: opacity, outline-offset, scale;
884
+ }
885
+
886
+ &[data-orientation="horizontal"] {
887
+ left: var(--media-slider-pointer);
888
+ }
889
+ &[data-orientation="vertical"] {
890
+ top: calc(100% - var(--media-slider-pointer));
897
891
  }
898
892
  }
899
893
 
900
894
  /* Preview */
901
895
  .media-slider__preview {
902
- --max-width: min(calc(var(--spacing) * 48), 100cqi);
903
- --max-height: calc(var(--spacing) * 32);
896
+ --max-size-factor: 36;
897
+ --max-size: min(calc(var(--spacing) * var(--max-size-factor)), 100cqi);
904
898
 
905
- min-width: var(--max-width);
899
+ min-width: var(--max-size);
906
900
  height: calc(var(--spacing) * 1);
907
901
 
902
+ @container media-root (width > 42rem) {
903
+ --max-size-factor: 48;
904
+ }
905
+
908
906
  .media-slider__thumbnail,
909
907
  .media-slider__value {
910
908
  position: absolute;
911
909
  left: 50%;
912
- max-width: var(--max-width);
910
+ max-width: var(--max-size);
913
911
  opacity: 0;
914
912
  filter: blur(8px);
915
913
  transform-origin: bottom;
@@ -920,7 +918,8 @@
920
918
  }
921
919
 
922
920
  .media-slider__thumbnail {
923
- --thumbnail-max-width: var(--max-width);
921
+ --thumbnail-max-width: var(--max-size);
922
+ --thumbnail-max-height: var(--max-size);
924
923
  bottom: calc(100% + (var(--spacing) * 9));
925
924
  }
926
925
 
@@ -934,7 +933,7 @@
934
933
 
935
934
  .media-slider__chapter-title {
936
935
  min-width: 0;
937
- max-width: var(--max-width);
936
+ max-width: var(--max-size);
938
937
  padding-inline: calc(var(--spacing) * 6);
939
938
  overflow: hidden;
940
939
  text-overflow: ellipsis;
@@ -1681,8 +1680,8 @@
1681
1680
  still in the DOM — just `display: none` — so its animations would keep
1682
1681
  running. Set the variables to `none` to short-circuit the keyframes. */
1683
1682
  .media-button--airplay:not([data-airplay-state="connected"]) {
1684
- --media-icon--airplay__fill-animation: none;
1685
- --media-icon--airplay__triangle-animation: none;
1683
+ --media-icon-airplay-fill-animation: none;
1684
+ --media-icon-airplay-triangle-animation: none;
1686
1685
  }
1687
1686
 
1688
1687
  @media (prefers-reduced-motion: reduce) {
@@ -1849,6 +1848,12 @@
1849
1848
  .media-controls--primary,
1850
1849
  .media-controls--secondary {
1851
1850
  position: absolute;
1851
+ }
1852
+ /* Primary must be higher for the preview/thumbnail */
1853
+ .media-controls--primary {
1854
+ z-index: 20;
1855
+ }
1856
+ .media-controls--secondary {
1852
1857
  z-index: 10;
1853
1858
  }
1854
1859
 
@@ -1865,6 +1870,11 @@
1865
1870
  transform-origin: top;
1866
1871
  }
1867
1872
 
1873
+ .media-time-controls {
1874
+ flex: 1;
1875
+ padding-inline: calc(var(--spacing) * 2);
1876
+ }
1877
+
1868
1878
  @container media-root (width < 32rem) {
1869
1879
  .media-controls--primary,
1870
1880
  .media-controls--secondary {
@@ -1915,6 +1925,10 @@
1915
1925
  }
1916
1926
  }
1917
1927
  }
1928
+
1929
+ .media-button--captions {
1930
+ display: none;
1931
+ }
1918
1932
  }
1919
1933
 
1920
1934
  @container media-root (width >= 32rem) {
@@ -1951,11 +1965,10 @@
1951
1965
  translate: 0 4px;
1952
1966
  }
1953
1967
  }
1954
- }
1955
1968
 
1956
- .media-time-controls {
1957
- flex: 1;
1958
- padding-inline: calc(var(--spacing) * 3);
1969
+ .media-time-controls {
1970
+ padding-inline: calc(var(--spacing) * 3);
1971
+ }
1959
1972
  }
1960
1973
 
1961
1974
  @media (pointer: fine) {
@@ -1 +1 @@
1
- {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/presets/live-video/skin.tsx"],"mappings":";;;KAyDY,qBAAqB;iBAgHjB,cAAc,OAAO,qBAAqB"}
1
+ {"version":3,"file":"skin.d.ts","names":[],"sources":["../../../../src/presets/live-video/skin.tsx"],"mappings":";;;KAuDY,qBAAqB;iBAgHjB,cAAc,OAAO,qBAAqB"}
@@ -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";
@@ -67,9 +66,8 @@ import VolumeLowIcon from "../../icons/dist/react/default/volume-low.js";
67
66
  import VolumeOffIcon from "../../icons/dist/react/default/volume-off.js";
68
67
  import { forwardRef } from "react";
69
68
  import { jsx, jsxs } from "react/jsx-runtime";
70
- import { isString } from "@videojs/utils/predicate";
71
- import { captionsText } from "@videojs/core/i18n/text/menu";
72
69
  import { cn } from "@videojs/utils/style";
70
+ import { captionsText } from "@videojs/core/i18n/text/menu";
73
71
  //#region src/presets/live-video/skin.tsx
74
72
  const TOP_STATUS_ACTIONS = [
75
73
  "toggleSubtitles",
@@ -172,7 +170,7 @@ function CaptionsTrigger() {
172
170
  });
173
171
  }
174
172
  function LiveVideoSkin(props) {
175
- const { children, className, poster, placeholder, style, ...rest } = props;
173
+ const { children, className, renderPoster, placeholder, style, ...rest } = props;
176
174
  const containerStyle = placeholder ? {
177
175
  "--media-poster-placeholder": `url(${placeholder})`,
178
176
  ...style
@@ -183,10 +181,7 @@ function LiveVideoSkin(props) {
183
181
  ...rest,
184
182
  children: [
185
183
  children,
186
- poster && /* @__PURE__ */ jsx(Poster, {
187
- src: isString(poster) ? poster : void 0,
188
- render: isRenderProp(poster) ? poster : void 0
189
- }),
184
+ /* @__PURE__ */ jsx(Poster, { render: renderPoster }),
190
185
  /* @__PURE__ */ jsx(BufferingIndicator, { render: (props) => /* @__PURE__ */ jsx("div", {
191
186
  ...props,
192
187
  className: "media-buffering-indicator",
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skin.tailwind.d.ts","names":[],"sources":["../../../../src/presets/live-video/skin.tailwind.tsx"],"mappings":";;;iBA+MgB,sBAAsB,OAAO,qBAAqB"}
1
+ {"version":3,"file":"skin.tailwind.d.ts","names":[],"sources":["../../../../src/presets/live-video/skin.tailwind.tsx"],"mappings":";;;iBA6MgB,sBAAsB,OAAO,qBAAqB"}