@hanifhan1f/vidstack 1.12.13 → 1.12.14

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 (949) hide show
  1. package/cdn/chunks/vidstack-2f5gzOW6.js +1 -0
  2. package/cdn/chunks/vidstack-BYgY9wmd.js +1 -0
  3. package/cdn/chunks/vidstack-BfBBPhXV.js +1 -0
  4. package/cdn/chunks/vidstack-Bjo5esRp.js +1 -0
  5. package/cdn/chunks/vidstack-BuL67v3q.js +1 -0
  6. package/cdn/chunks/vidstack-C0msPRTd.js +3 -0
  7. package/cdn/chunks/vidstack-CIjxJCz3.js +1 -0
  8. package/cdn/chunks/vidstack-C_AxqLKV.js +1 -0
  9. package/cdn/chunks/vidstack-CioT3Yw2.js +1 -0
  10. package/cdn/chunks/vidstack-CmpbA3Yd.js +16 -0
  11. package/cdn/chunks/vidstack-CrqkytHl.js +1 -0
  12. package/cdn/chunks/vidstack-D0M8R0ZU.js +1 -0
  13. package/cdn/chunks/vidstack-D40FSa5B.js +3 -0
  14. package/cdn/chunks/vidstack-DD2JwFVU.js +1 -0
  15. package/cdn/chunks/vidstack-DRH_1tFW.js +1 -0
  16. package/cdn/chunks/vidstack-DfDZuHNP.js +1 -0
  17. package/cdn/chunks/vidstack-DiNS2Vx5.js +1 -0
  18. package/cdn/chunks/vidstack-xjJ-ui_l.js +1 -0
  19. package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +1 -0
  20. package/cdn/providers/vidstack-dash-CUtD4e6q.js +1 -0
  21. package/cdn/providers/vidstack-google-cast-BdORATUX.js +1 -0
  22. package/cdn/providers/vidstack-hls-R25Kb6DP.js +1 -0
  23. package/cdn/providers/vidstack-html-DaAUJYsD.js +1 -0
  24. package/cdn/providers/vidstack-video-Csvox7SO.js +1 -0
  25. package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +1 -0
  26. package/cdn/providers/vidstack-youtube-DiND6h3s.js +1 -0
  27. package/cdn/vidstack.js +1 -0
  28. package/cdn/with-layouts/chunks/vidstack-2f5gzOW6.js +1 -0
  29. package/cdn/with-layouts/chunks/vidstack-BL_lNyW_.js +1 -0
  30. package/cdn/with-layouts/chunks/vidstack-BfBBPhXV.js +1 -0
  31. package/cdn/with-layouts/chunks/vidstack-BjOOdDcQ.js +1 -0
  32. package/cdn/with-layouts/chunks/vidstack-Bxv1Qnxe.js +1 -0
  33. package/cdn/with-layouts/chunks/vidstack-C5AP9wid.js +1 -0
  34. package/cdn/with-layouts/chunks/vidstack-CS2aNc61.js +1 -0
  35. package/cdn/with-layouts/chunks/vidstack-C_AxqLKV.js +1 -0
  36. package/cdn/with-layouts/chunks/vidstack-D-3_fAsK.js +1 -0
  37. package/cdn/with-layouts/chunks/vidstack-DKqYI_HJ.js +1 -0
  38. package/cdn/with-layouts/chunks/vidstack-DLVdcWrK.js +3 -0
  39. package/cdn/with-layouts/chunks/vidstack-DPO7J4-v.js +3 -0
  40. package/cdn/with-layouts/chunks/vidstack-DRH_1tFW.js +1 -0
  41. package/cdn/with-layouts/chunks/vidstack-DWjB11vV.js +1 -0
  42. package/cdn/with-layouts/chunks/vidstack-Dge3KT8k.js +1 -0
  43. package/cdn/with-layouts/chunks/vidstack-Dh2GOjra.js +1 -0
  44. package/cdn/with-layouts/chunks/vidstack-DiNS2Vx5.js +1 -0
  45. package/cdn/with-layouts/chunks/vidstack-QW5tTAS4.js +897 -0
  46. package/cdn/with-layouts/chunks/vidstack-Xe_d7ovA.js +1 -0
  47. package/cdn/with-layouts/chunks/vidstack-wt2OT4N7.js +1 -0
  48. package/cdn/with-layouts/providers/vidstack-audio-Bw1csc6N.js +1 -0
  49. package/cdn/with-layouts/providers/vidstack-dash-DHRMFG4Y.js +1 -0
  50. package/cdn/with-layouts/providers/vidstack-google-cast-BSYJYn-o.js +1 -0
  51. package/cdn/with-layouts/providers/vidstack-hls-DG1rTEqu.js +1 -0
  52. package/cdn/with-layouts/providers/vidstack-html-CoKFAYW5.js +1 -0
  53. package/cdn/with-layouts/providers/vidstack-video-CIxFJ9Z1.js +1 -0
  54. package/cdn/with-layouts/providers/vidstack-vimeo-CNLKOGMa.js +1 -0
  55. package/cdn/with-layouts/providers/vidstack-youtube-D1e-LE-8.js +1 -0
  56. package/cdn/with-layouts/vidstack.js +1 -0
  57. package/dev/chunks/vidstack-03oQOdB7.js +58 -0
  58. package/dev/chunks/vidstack-0Of4tJ8D.js +224 -0
  59. package/dev/chunks/vidstack-BJsZjPkB.js +204 -0
  60. package/dev/chunks/vidstack-BQSA-Rux.js +56 -0
  61. package/{src/core/quality/utils.ts → dev/chunks/vidstack-BTM4ERc7.js} +5 -7
  62. package/dev/chunks/vidstack-BXSB7eI9.js +58 -0
  63. package/dev/chunks/vidstack-BaGbgcvz.js +107 -0
  64. package/{src/core/time-ranges.ts → dev/chunks/vidstack-Becy7l6h.js} +22 -61
  65. package/dev/chunks/vidstack-Bf6x4gWe.js +29 -0
  66. package/dev/chunks/vidstack-BjxlZzGu.js +11 -0
  67. package/dev/chunks/vidstack-Blfm1k-4.js +1520 -0
  68. package/dev/chunks/vidstack-Bpr4fI4n.js +7 -0
  69. package/dev/chunks/vidstack-Bs54kFSz.js +66 -0
  70. package/dev/chunks/vidstack-Bur7I7Vy.js +57 -0
  71. package/dev/chunks/vidstack-C0SWkbs7.js +254 -0
  72. package/dev/chunks/vidstack-C1PwJD_4.js +1635 -0
  73. package/dev/chunks/vidstack-C4aPQ7hZ.js +1482 -0
  74. package/dev/chunks/vidstack-C6OqdJO7.js +114 -0
  75. package/dev/chunks/vidstack-C_rvOKWp.js +33 -0
  76. package/dev/chunks/vidstack-CaudO1jl.js +109 -0
  77. package/dev/chunks/vidstack-Cax7aAP-.js +66 -0
  78. package/dev/chunks/vidstack-CcQdBWil.js +58 -0
  79. package/dev/chunks/vidstack-CwTj4H1w.js +18 -0
  80. package/dev/chunks/vidstack-DAOcbKGP.js +254 -0
  81. package/dev/chunks/vidstack-DKaohJzR.js +5181 -0
  82. package/dev/chunks/vidstack-DXxIKXmd.js +50 -0
  83. package/dev/chunks/vidstack-DXzRuMtJ.js +107 -0
  84. package/dev/chunks/vidstack-Db1-Hg_U.js +297 -0
  85. package/dev/chunks/vidstack-DbBJlz7I.js +10 -0
  86. package/dev/chunks/vidstack-Dihypf8P.js +11 -0
  87. package/dev/chunks/vidstack-Dm1xEU9Q.js +34 -0
  88. package/dev/chunks/vidstack-Dv_LIPFu.js +14 -0
  89. package/{src/foundation/observers/raf-loop.ts → dev/chunks/vidstack-DwyWIZjv.js} +8 -11
  90. package/dev/chunks/vidstack-EoLRQZbs.js +2986 -0
  91. package/dev/chunks/vidstack-FKkY62Dr.js +104 -0
  92. package/dev/chunks/vidstack-krOAtKMi.js +32 -0
  93. package/dev/define/plyr-layout.js +52 -0
  94. package/dev/define/templates/plyr-layout.js +571 -0
  95. package/dev/define/templates/vidstack-audio-layout.js +168 -0
  96. package/dev/define/templates/vidstack-video-layout.js +446 -0
  97. package/dev/define/vidstack-icons.js +1 -0
  98. package/dev/define/vidstack-player-default-layout.js +22 -0
  99. package/dev/define/vidstack-player-layouts.js +26 -0
  100. package/dev/define/vidstack-player-ui.js +71 -0
  101. package/dev/define/vidstack-player.js +19 -0
  102. package/dev/global/plyr.js +502 -0
  103. package/dev/global/vidstack-player.js +129 -0
  104. package/dev/providers/vidstack-audio.js +35 -0
  105. package/dev/providers/vidstack-dash.js +516 -0
  106. package/dev/providers/vidstack-google-cast.js +474 -0
  107. package/dev/providers/vidstack-hls.js +408 -0
  108. package/dev/providers/vidstack-html.js +567 -0
  109. package/dev/providers/vidstack-video.js +207 -0
  110. package/dev/providers/vidstack-vimeo.js +554 -0
  111. package/dev/providers/vidstack-youtube.js +286 -0
  112. package/dev/vidstack-elements.js +37 -0
  113. package/dev/vidstack.js +92 -0
  114. package/elements.d.ts +1433 -0
  115. package/global/player.d.ts +52 -0
  116. package/{types/global → global}/plyr.d.ts +32 -33
  117. package/icons.d.ts +1 -0
  118. package/index.d.ts +402 -0
  119. package/package.json +3 -87
  120. package/plugins.d.ts +19 -0
  121. package/plugins.js +13 -0
  122. package/prod/chunks/vidstack-9_r3lWNO.js +45 -0
  123. package/prod/chunks/vidstack-B01xzxC4.js +7 -0
  124. package/prod/chunks/vidstack-BDIzK77F.js +107 -0
  125. package/prod/chunks/vidstack-BHqGlnGz.js +1482 -0
  126. package/prod/chunks/vidstack-BNpgCJJ1.js +1588 -0
  127. package/prod/chunks/vidstack-BP49Gz0m.js +58 -0
  128. package/prod/chunks/vidstack-BRZe2BNi.js +107 -0
  129. package/prod/chunks/vidstack-BTM4ERc7.js +11 -0
  130. package/prod/chunks/vidstack-BaaRY-9x.js +201 -0
  131. package/prod/chunks/vidstack-BdFYWy6h.js +26 -0
  132. package/prod/chunks/vidstack-BpLd9ASW.js +246 -0
  133. package/prod/chunks/vidstack-C05ipjAK.js +1520 -0
  134. package/prod/chunks/vidstack-C9vIqaYT.js +10 -0
  135. package/prod/chunks/vidstack-CA4tDJdF.js +33 -0
  136. package/prod/chunks/vidstack-COLU-zPZ.js +57 -0
  137. package/prod/chunks/vidstack-CwTj4H1w.js +18 -0
  138. package/prod/chunks/vidstack-D5EzK014.js +14 -0
  139. package/prod/chunks/vidstack-D7hJcnN-.js +297 -0
  140. package/prod/chunks/vidstack-DB9WDRL5.js +248 -0
  141. package/prod/chunks/vidstack-DESBVLFp.js +104 -0
  142. package/prod/chunks/vidstack-DXxIKXmd.js +50 -0
  143. package/prod/chunks/vidstack-DcMkaIHJ.js +2976 -0
  144. package/prod/chunks/vidstack-Dihypf8P.js +11 -0
  145. package/prod/chunks/vidstack-Dm1xEU9Q.js +34 -0
  146. package/prod/chunks/vidstack-DwenML7x.js +4771 -0
  147. package/prod/chunks/vidstack-Fem0yF3c.js +77 -0
  148. package/prod/chunks/vidstack-IDWYvfna.js +58 -0
  149. package/prod/chunks/vidstack-MbEMbVfP.js +109 -0
  150. package/prod/chunks/vidstack-Oq65llxr.js +29 -0
  151. package/prod/chunks/vidstack-SnIdjCkV.js +58 -0
  152. package/prod/chunks/vidstack-V1jwkH0s.js +66 -0
  153. package/prod/chunks/vidstack-bdt7uOlN.js +114 -0
  154. package/prod/chunks/vidstack-krOAtKMi.js +32 -0
  155. package/prod/chunks/vidstack-mxJIo4Sg.js +56 -0
  156. package/prod/chunks/vidstack-tt3O1zL6.js +11 -0
  157. package/prod/chunks/vidstack-zfCm-GM5.js +205 -0
  158. package/prod/define/plyr-layout.js +52 -0
  159. package/prod/define/templates/plyr-layout.js +571 -0
  160. package/prod/define/templates/vidstack-audio-layout.js +168 -0
  161. package/prod/define/templates/vidstack-video-layout.js +446 -0
  162. package/prod/define/vidstack-icons.js +1 -0
  163. package/prod/define/vidstack-player-default-layout.js +22 -0
  164. package/prod/define/vidstack-player-layouts.js +26 -0
  165. package/prod/define/vidstack-player-ui.js +71 -0
  166. package/prod/define/vidstack-player.js +19 -0
  167. package/prod/global/plyr.js +494 -0
  168. package/prod/global/vidstack-player.js +129 -0
  169. package/prod/providers/vidstack-audio.js +35 -0
  170. package/prod/providers/vidstack-dash.js +501 -0
  171. package/prod/providers/vidstack-google-cast.js +468 -0
  172. package/prod/providers/vidstack-hls.js +393 -0
  173. package/prod/providers/vidstack-html.js +555 -0
  174. package/prod/providers/vidstack-video.js +204 -0
  175. package/prod/providers/vidstack-vimeo.js +548 -0
  176. package/prod/providers/vidstack-youtube.js +286 -0
  177. package/prod/vidstack-elements.js +37 -0
  178. package/prod/vidstack.js +159 -0
  179. package/server/chunks/vidstack-B4CWj0Hp.js +381 -0
  180. package/server/chunks/vidstack-B8LynzY5.js +1564 -0
  181. package/server/chunks/vidstack-BGgfNYAH.js +141 -0
  182. package/server/chunks/vidstack-BGmwlunt.js +3035 -0
  183. package/server/chunks/vidstack-BOTZD4tC.js +18 -0
  184. package/server/chunks/vidstack-C19bj3Wq.js +307 -0
  185. package/server/chunks/vidstack-CFTkUXGK.js +295 -0
  186. package/server/chunks/vidstack-CQMB7Msg.js +1502 -0
  187. package/server/chunks/vidstack-CdBfecZT.js +205 -0
  188. package/server/chunks/vidstack-Cv_Art04.js +4635 -0
  189. package/server/chunks/vidstack-CwTj4H1w.js +18 -0
  190. package/server/chunks/vidstack-DXxIKXmd.js +50 -0
  191. package/server/chunks/vidstack-DbvCOsqU.js +107 -0
  192. package/server/chunks/vidstack-DgHfFDiw.js +1962 -0
  193. package/server/chunks/vidstack-Dm1xEU9Q.js +34 -0
  194. package/server/chunks/vidstack-DnkB7eGO.js +207 -0
  195. package/server/chunks/vidstack-DsnTqzpL.js +29 -0
  196. package/{src/elements/define/layouts/plyr/ui.ts → server/chunks/vidstack-FHGkN5xj.js} +144 -235
  197. package/server/chunks/vidstack-P_QDjYIl.js +56 -0
  198. package/server/chunks/vidstack-f5-aflD2.js +104 -0
  199. package/server/chunks/vidstack-krOAtKMi.js +32 -0
  200. package/server/define/plyr-layout.js +16 -0
  201. package/server/define/vidstack-icons.js +1 -0
  202. package/server/define/vidstack-player-default-layout.js +13 -0
  203. package/server/define/vidstack-player-layouts.js +16 -0
  204. package/server/define/vidstack-player-ui.js +11 -0
  205. package/server/define/vidstack-player.js +6 -0
  206. package/server/global/plyr.js +322 -0
  207. package/server/global/vidstack-player.js +58 -0
  208. package/server/vidstack-elements.js +46 -0
  209. package/server/vidstack.js +148 -0
  210. package/types/vidstack-BOvzfZjK.d.ts +1269 -0
  211. package/types/vidstack-DYLKXUvI.d.ts +7479 -0
  212. package/.templates/sandbox/favicon-32x32.png +0 -0
  213. package/.templates/sandbox/index.html +0 -42
  214. package/.templates/sandbox/main.ts +0 -137
  215. package/.templates/sandbox/styles.css +0 -68
  216. package/analyze.config.ts +0 -133
  217. package/build/build-styles.js +0 -33
  218. package/build/rollup-decorators.ts +0 -102
  219. package/build/rollup-minify.js +0 -20
  220. package/build/rollup-ts.js +0 -57
  221. package/rollup.config.ts +0 -442
  222. package/src/components/aria/announcer.ts +0 -181
  223. package/src/components/layouts/default/audio-layout.ts +0 -20
  224. package/src/components/layouts/default/context.ts +0 -15
  225. package/src/components/layouts/default/default-layout.ts +0 -67
  226. package/src/components/layouts/default/props.ts +0 -143
  227. package/src/components/layouts/default/translations.ts +0 -70
  228. package/src/components/layouts/default/video-layout.ts +0 -20
  229. package/src/components/layouts/plyr/context.ts +0 -13
  230. package/src/components/layouts/plyr/plyr-layout.ts +0 -90
  231. package/src/components/layouts/plyr/props.ts +0 -114
  232. package/src/components/layouts/plyr/translations.ts +0 -53
  233. package/src/components/player.ts +0 -758
  234. package/src/components/provider/provider.ts +0 -184
  235. package/src/components/provider/source-select.ts +0 -378
  236. package/src/components/provider/tracks.ts +0 -37
  237. package/src/components/ui/buttons/airplay-button.ts +0 -74
  238. package/src/components/ui/buttons/caption-button.ts +0 -68
  239. package/src/components/ui/buttons/fullscreen-button.ts +0 -90
  240. package/src/components/ui/buttons/google-cast-button.ts +0 -75
  241. package/src/components/ui/buttons/live-button.ts +0 -76
  242. package/src/components/ui/buttons/mute-button.ts +0 -69
  243. package/src/components/ui/buttons/pip-button.ts +0 -71
  244. package/src/components/ui/buttons/play-button.ts +0 -62
  245. package/src/components/ui/buttons/seek-button.ts +0 -92
  246. package/src/components/ui/buttons/toggle-button-controller.ts +0 -92
  247. package/src/components/ui/buttons/toggle-button.ts +0 -49
  248. package/src/components/ui/captions/captions-renderer.ts +0 -63
  249. package/src/components/ui/captions/captions.ts +0 -227
  250. package/src/components/ui/controls-group.ts +0 -13
  251. package/src/components/ui/controls.ts +0 -101
  252. package/src/components/ui/gesture.ts +0 -252
  253. package/src/components/ui/menu/menu-button.ts +0 -95
  254. package/src/components/ui/menu/menu-context.ts +0 -27
  255. package/src/components/ui/menu/menu-focus-controller.ts +0 -205
  256. package/src/components/ui/menu/menu-item.ts +0 -9
  257. package/src/components/ui/menu/menu-items.ts +0 -129
  258. package/src/components/ui/menu/menu-portal.ts +0 -105
  259. package/src/components/ui/menu/menu.ts +0 -612
  260. package/src/components/ui/menu/radio/radio-controller.ts +0 -18
  261. package/src/components/ui/menu/radio/radio-group-controller.ts +0 -81
  262. package/src/components/ui/menu/radio/radio-group.ts +0 -78
  263. package/src/components/ui/menu/radio/radio.ts +0 -151
  264. package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +0 -116
  265. package/src/components/ui/menu/radio-groups/audio-radio-group.ts +0 -121
  266. package/src/components/ui/menu/radio-groups/captions-radio-group.ts +0 -153
  267. package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +0 -211
  268. package/src/components/ui/menu/radio-groups/quality-radio-group.ts +0 -181
  269. package/src/components/ui/menu/radio-groups/speed-radio-group.ts +0 -112
  270. package/src/components/ui/popper/popper.ts +0 -103
  271. package/src/components/ui/poster.ts +0 -187
  272. package/src/components/ui/sliders/audio-gain-slider.ts +0 -150
  273. package/src/components/ui/sliders/quality-slider.ts +0 -148
  274. package/src/components/ui/sliders/slider/api/cssvars.ts +0 -10
  275. package/src/components/ui/sliders/slider/api/events.ts +0 -65
  276. package/src/components/ui/sliders/slider/api/state.ts +0 -101
  277. package/src/components/ui/sliders/slider/events-controller.ts +0 -383
  278. package/src/components/ui/sliders/slider/format.ts +0 -12
  279. package/src/components/ui/sliders/slider/slider-context.ts +0 -18
  280. package/src/components/ui/sliders/slider/slider-controller.ts +0 -211
  281. package/src/components/ui/sliders/slider/slider.ts +0 -94
  282. package/src/components/ui/sliders/slider/types.ts +0 -1
  283. package/src/components/ui/sliders/slider/utils.ts +0 -14
  284. package/src/components/ui/sliders/slider-preview.ts +0 -131
  285. package/src/components/ui/sliders/slider-thumbnail.ts +0 -28
  286. package/src/components/ui/sliders/slider-value.ts +0 -122
  287. package/src/components/ui/sliders/slider-video.ts +0 -198
  288. package/src/components/ui/sliders/speed-slider.ts +0 -147
  289. package/src/components/ui/sliders/time-slider/slider-chapters.ts +0 -444
  290. package/src/components/ui/sliders/time-slider/time-slider.ts +0 -319
  291. package/src/components/ui/sliders/volume-slider.ts +0 -145
  292. package/src/components/ui/thumbnails/thumbnail-loader.ts +0 -324
  293. package/src/components/ui/thumbnails/thumbnail.ts +0 -244
  294. package/src/components/ui/time.ts +0 -191
  295. package/src/components/ui/tooltip/tooltip-content.ts +0 -105
  296. package/src/components/ui/tooltip/tooltip-context.ts +0 -13
  297. package/src/components/ui/tooltip/tooltip-trigger.ts +0 -49
  298. package/src/components/ui/tooltip/tooltip.ts +0 -127
  299. package/src/core/api/media-attrs.ts +0 -35
  300. package/src/core/api/media-context.ts +0 -52
  301. package/src/core/api/media-events.ts +0 -601
  302. package/src/core/api/media-request-events.ts +0 -323
  303. package/src/core/api/player-controller.ts +0 -10
  304. package/src/core/api/player-events.ts +0 -49
  305. package/src/core/api/player-props.ts +0 -233
  306. package/src/core/api/player-state.ts +0 -940
  307. package/src/core/api/src-types.ts +0 -97
  308. package/src/core/api/types.ts +0 -69
  309. package/src/core/controls.ts +0 -251
  310. package/src/core/font/font-options.ts +0 -106
  311. package/src/core/font/font-vars.ts +0 -107
  312. package/src/core/keyboard/aria-shortcuts.ts +0 -42
  313. package/src/core/keyboard/controller.ts +0 -302
  314. package/src/core/keyboard/types.ts +0 -40
  315. package/src/core/quality/events.ts +0 -48
  316. package/src/core/quality/symbols.ts +0 -8
  317. package/src/core/quality/video-quality.ts +0 -86
  318. package/src/core/state/media-events-logger.ts +0 -67
  319. package/src/core/state/media-load-controller.ts +0 -40
  320. package/src/core/state/media-player-delegate.ts +0 -170
  321. package/src/core/state/media-request-manager.ts +0 -952
  322. package/src/core/state/media-state-manager.ts +0 -1077
  323. package/src/core/state/media-state-sync.ts +0 -162
  324. package/src/core/state/media-storage.ts +0 -196
  325. package/src/core/state/navigator-media-session.ts +0 -62
  326. package/src/core/state/remote-control.ts +0 -584
  327. package/src/core/state/tracked-media-events.ts +0 -22
  328. package/src/core/tracks/audio/audio-tracks.ts +0 -33
  329. package/src/core/tracks/audio/events.ts +0 -41
  330. package/src/core/tracks/text/events.ts +0 -52
  331. package/src/core/tracks/text/render/libass-text-renderer.ts +0 -246
  332. package/src/core/tracks/text/render/native-text-renderer.ts +0 -106
  333. package/src/core/tracks/text/render/text-renderer.ts +0 -134
  334. package/src/core/tracks/text/symbols.ts +0 -17
  335. package/src/core/tracks/text/text-track.test.ts +0 -407
  336. package/src/core/tracks/text/text-track.ts +0 -413
  337. package/src/core/tracks/text/text-tracks.ts +0 -210
  338. package/src/core/tracks/text/utils.ts +0 -85
  339. package/src/elements/bundles/cdn/player.core.ts +0 -6
  340. package/src/elements/bundles/cdn/player.ts +0 -8
  341. package/src/elements/bundles/cdn/plyr.ts +0 -6
  342. package/src/elements/bundles/cdn-legacy/player-with-default.ts +0 -4
  343. package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +0 -4
  344. package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +0 -3
  345. package/src/elements/bundles/cdn-legacy/player.ts +0 -3
  346. package/src/elements/bundles/icons.ts +0 -3
  347. package/src/elements/bundles/player-layouts/default.ts +0 -7
  348. package/src/elements/bundles/player-layouts/index.ts +0 -9
  349. package/src/elements/bundles/player-layouts/plyr.ts +0 -65
  350. package/src/elements/bundles/player-ui.ts +0 -108
  351. package/src/elements/bundles/player.ts +0 -7
  352. package/src/elements/define/announcer-element.ts +0 -20
  353. package/src/elements/define/buttons/airplay-button-element.ts +0 -21
  354. package/src/elements/define/buttons/caption-button-element.ts +0 -22
  355. package/src/elements/define/buttons/fullscreen-button-element.ts +0 -22
  356. package/src/elements/define/buttons/google-cast-button-element.ts +0 -21
  357. package/src/elements/define/buttons/live-button-element.ts +0 -22
  358. package/src/elements/define/buttons/mute-button-element.ts +0 -23
  359. package/src/elements/define/buttons/pip-button-element.ts +0 -22
  360. package/src/elements/define/buttons/play-button-element.ts +0 -23
  361. package/src/elements/define/buttons/seek-button-element.ts +0 -26
  362. package/src/elements/define/buttons/toggle-button-element.ts +0 -21
  363. package/src/elements/define/captions-element.ts +0 -20
  364. package/src/elements/define/chapter-title-element.ts +0 -54
  365. package/src/elements/define/controls-element.ts +0 -26
  366. package/src/elements/define/controls-group-element.ts +0 -26
  367. package/src/elements/define/gesture-element.ts +0 -24
  368. package/src/elements/define/layouts/default/audio-layout-element.ts +0 -137
  369. package/src/elements/define/layouts/default/audio-layout.ts +0 -113
  370. package/src/elements/define/layouts/default/icons-loader.ts +0 -17
  371. package/src/elements/define/layouts/default/icons.ts +0 -86
  372. package/src/elements/define/layouts/default/slots.ts +0 -12
  373. package/src/elements/define/layouts/default/ui/announcer.ts +0 -14
  374. package/src/elements/define/layouts/default/ui/buttons.ts +0 -291
  375. package/src/elements/define/layouts/default/ui/captions.ts +0 -14
  376. package/src/elements/define/layouts/default/ui/controls.ts +0 -5
  377. package/src/elements/define/layouts/default/ui/keyboard-display.ts +0 -114
  378. package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +0 -79
  379. package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +0 -135
  380. package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +0 -114
  381. package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +0 -117
  382. package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +0 -133
  383. package/src/elements/define/layouts/default/ui/menu/font-menu.ts +0 -253
  384. package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +0 -67
  385. package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +0 -108
  386. package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +0 -59
  387. package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +0 -56
  388. package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +0 -183
  389. package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +0 -98
  390. package/src/elements/define/layouts/default/ui/slider.ts +0 -112
  391. package/src/elements/define/layouts/default/ui/time.ts +0 -41
  392. package/src/elements/define/layouts/default/ui/title.ts +0 -25
  393. package/src/elements/define/layouts/default/ui/utils.ts +0 -10
  394. package/src/elements/define/layouts/default/video-layout-element.ts +0 -125
  395. package/src/elements/define/layouts/default/video-layout.ts +0 -353
  396. package/src/elements/define/layouts/icons/icons-loader.ts +0 -47
  397. package/src/elements/define/layouts/icons/layout-icons-loader.ts +0 -24
  398. package/src/elements/define/layouts/layout-element.ts +0 -78
  399. package/src/elements/define/layouts/layout-name.ts +0 -15
  400. package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +0 -1
  401. package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +0 -1
  402. package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +0 -1
  403. package/src/elements/define/layouts/plyr/icons/plyr-download.js +0 -1
  404. package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  405. package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  406. package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  407. package/src/elements/define/layouts/plyr/icons/plyr-muted.js +0 -1
  408. package/src/elements/define/layouts/plyr/icons/plyr-pause.js +0 -1
  409. package/src/elements/define/layouts/plyr/icons/plyr-pip.js +0 -1
  410. package/src/elements/define/layouts/plyr/icons/plyr-play.js +0 -1
  411. package/src/elements/define/layouts/plyr/icons/plyr-restart.js +0 -1
  412. package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +0 -1
  413. package/src/elements/define/layouts/plyr/icons/plyr-settings.js +0 -1
  414. package/src/elements/define/layouts/plyr/icons/plyr-volume.js +0 -1
  415. package/src/elements/define/layouts/plyr/icons-loader.ts +0 -21
  416. package/src/elements/define/layouts/plyr/icons.ts +0 -34
  417. package/src/elements/define/layouts/plyr/plyr-layout-element.ts +0 -67
  418. package/src/elements/define/layouts/slot-manager.ts +0 -61
  419. package/src/elements/define/layouts/slot-observer.ts +0 -70
  420. package/src/elements/define/menus/_template.ts +0 -47
  421. package/src/elements/define/menus/audio-gain-group-element.ts +0 -37
  422. package/src/elements/define/menus/audio-radio-group-element.ts +0 -37
  423. package/src/elements/define/menus/captions-radio-group-element.ts +0 -37
  424. package/src/elements/define/menus/chapters-radio-group-element.ts +0 -68
  425. package/src/elements/define/menus/menu-button-element.ts +0 -27
  426. package/src/elements/define/menus/menu-element.ts +0 -28
  427. package/src/elements/define/menus/menu-item-element.ts +0 -24
  428. package/src/elements/define/menus/menu-items-element.ts +0 -27
  429. package/src/elements/define/menus/menu-portal-element.ts +0 -35
  430. package/src/elements/define/menus/quality-radio-group-element.ts +0 -51
  431. package/src/elements/define/menus/radio-element.ts +0 -24
  432. package/src/elements/define/menus/radio-group-element.ts +0 -24
  433. package/src/elements/define/menus/speed-radio-group-element.ts +0 -37
  434. package/src/elements/define/player-element.ts +0 -33
  435. package/src/elements/define/poster-element.ts +0 -53
  436. package/src/elements/define/provider-cast-display.ts +0 -36
  437. package/src/elements/define/provider-element.ts +0 -158
  438. package/src/elements/define/sliders/audio-gain-slider-element.ts +0 -34
  439. package/src/elements/define/sliders/quality-slider-element.ts +0 -34
  440. package/src/elements/define/sliders/slider-chapters-element.ts +0 -53
  441. package/src/elements/define/sliders/slider-element.ts +0 -25
  442. package/src/elements/define/sliders/slider-preview-element.ts +0 -16
  443. package/src/elements/define/sliders/slider-steps-element.ts +0 -50
  444. package/src/elements/define/sliders/slider-thumbnail-element.ts +0 -48
  445. package/src/elements/define/sliders/slider-value-element.ts +0 -49
  446. package/src/elements/define/sliders/slider-video-element.ts +0 -59
  447. package/src/elements/define/sliders/speed-slider-element.ts +0 -34
  448. package/src/elements/define/sliders/time-slider-element.ts +0 -34
  449. package/src/elements/define/sliders/volume-slider-element.ts +0 -34
  450. package/src/elements/define/spinner-element.ts +0 -96
  451. package/src/elements/define/thumbnail-element.ts +0 -63
  452. package/src/elements/define/time-element.ts +0 -32
  453. package/src/elements/define/title-element.ts +0 -38
  454. package/src/elements/define/tooltips/tooltip-content-element.ts +0 -28
  455. package/src/elements/define/tooltips/tooltip-element.ts +0 -28
  456. package/src/elements/define/tooltips/tooltip-trigger-element.ts +0 -32
  457. package/src/elements/icon.ts +0 -30
  458. package/src/elements/index.ts +0 -71
  459. package/src/elements/lit/directives/signal.ts +0 -80
  460. package/src/elements/lit/html.ts +0 -11
  461. package/src/elements/lit/lit-element.ts +0 -23
  462. package/src/elements/state-controller.ts +0 -48
  463. package/src/exports/components.ts +0 -79
  464. package/src/exports/core.ts +0 -41
  465. package/src/exports/events.ts +0 -46
  466. package/src/exports/font.ts +0 -3
  467. package/src/exports/foundation.ts +0 -8
  468. package/src/exports/maverick.ts +0 -9
  469. package/src/exports/providers.ts +0 -42
  470. package/src/exports/utils.ts +0 -18
  471. package/src/foundation/fullscreen/controller.ts +0 -128
  472. package/src/foundation/fullscreen/events.ts +0 -26
  473. package/src/foundation/list/list.ts +0 -127
  474. package/src/foundation/list/select-list.ts +0 -86
  475. package/src/foundation/list/symbols.ts +0 -22
  476. package/src/foundation/logger/colors.ts +0 -33
  477. package/src/foundation/logger/controller.ts +0 -71
  478. package/src/foundation/logger/events.ts +0 -29
  479. package/src/foundation/logger/grouped-log.ts +0 -44
  480. package/src/foundation/logger/log-level.ts +0 -17
  481. package/src/foundation/logger/log-printer.ts +0 -119
  482. package/src/foundation/logger/ms.ts +0 -31
  483. package/src/foundation/observers/focus-visible.ts +0 -74
  484. package/src/foundation/observers/intersection-observer.ts +0 -60
  485. package/src/foundation/observers/page-visibility.ts +0 -105
  486. package/src/foundation/orientation/controller.ts +0 -139
  487. package/src/foundation/orientation/events.ts +0 -20
  488. package/src/foundation/orientation/types.ts +0 -96
  489. package/src/foundation/queue/queue.ts +0 -41
  490. package/src/foundation/queue/request-queue.test.ts +0 -139
  491. package/src/foundation/queue/request-queue.ts +0 -94
  492. package/src/global/layouts/default.ts +0 -28
  493. package/src/global/layouts/loader.ts +0 -5
  494. package/src/global/layouts/plyr.ts +0 -24
  495. package/src/global/player.ts +0 -144
  496. package/src/global/plyr.ts +0 -917
  497. package/src/globals.d.ts +0 -11
  498. package/src/index.ts +0 -10
  499. package/src/plugins.ts +0 -369
  500. package/src/providers/audio/loader.ts +0 -45
  501. package/src/providers/audio/provider.ts +0 -50
  502. package/src/providers/dash/dash.ts +0 -417
  503. package/src/providers/dash/events.ts +0 -585
  504. package/src/providers/dash/lib-loader.ts +0 -202
  505. package/src/providers/dash/loader.ts +0 -33
  506. package/src/providers/dash/provider.ts +0 -135
  507. package/src/providers/dash/types.ts +0 -21
  508. package/src/providers/embed/EmbedProvider.ts +0 -84
  509. package/src/providers/google-cast/events.ts +0 -53
  510. package/src/providers/google-cast/loader.ts +0 -174
  511. package/src/providers/google-cast/media-info.ts +0 -49
  512. package/src/providers/google-cast/provider.ts +0 -483
  513. package/src/providers/google-cast/tracks.ts +0 -170
  514. package/src/providers/google-cast/types.ts +0 -3
  515. package/src/providers/google-cast/utils.ts +0 -112
  516. package/src/providers/hls/events.ts +0 -472
  517. package/src/providers/hls/hls.ts +0 -290
  518. package/src/providers/hls/lib-loader.ts +0 -178
  519. package/src/providers/hls/loader.ts +0 -33
  520. package/src/providers/hls/provider.ts +0 -137
  521. package/src/providers/hls/types.ts +0 -10
  522. package/src/providers/html/audio/audio-context.ts +0 -60
  523. package/src/providers/html/audio/audio-gain.ts +0 -100
  524. package/src/providers/html/html/342/200/223media-events.ts +0 -338
  525. package/src/providers/html/native-audio-tracks.ts +0 -91
  526. package/src/providers/html/provider.ts +0 -141
  527. package/src/providers/html/remote-playback.ts +0 -94
  528. package/src/providers/type-check.ts +0 -61
  529. package/src/providers/types.ts +0 -95
  530. package/src/providers/video/loader.ts +0 -45
  531. package/src/providers/video/native-hls-text-tracks.ts +0 -69
  532. package/src/providers/video/picture-in-picture.ts +0 -54
  533. package/src/providers/video/presentation/events.ts +0 -12
  534. package/src/providers/video/presentation/video-presentation.ts +0 -110
  535. package/src/providers/video/provider.ts +0 -91
  536. package/src/providers/vimeo/embed/command.ts +0 -118
  537. package/src/providers/vimeo/embed/event.ts +0 -124
  538. package/src/providers/vimeo/embed/message.ts +0 -9
  539. package/src/providers/vimeo/embed/misc.ts +0 -57
  540. package/src/providers/vimeo/embed/params.ts +0 -168
  541. package/src/providers/vimeo/loader.ts +0 -61
  542. package/src/providers/vimeo/provider.ts +0 -730
  543. package/src/providers/vimeo/utils.ts +0 -53
  544. package/src/providers/youtube/embed/command.ts +0 -21
  545. package/src/providers/youtube/embed/event.ts +0 -1
  546. package/src/providers/youtube/embed/message.ts +0 -54
  547. package/src/providers/youtube/embed/params.ts +0 -238
  548. package/src/providers/youtube/embed/quality.ts +0 -35
  549. package/src/providers/youtube/embed/state.ts +0 -13
  550. package/src/providers/youtube/loader.ts +0 -61
  551. package/src/providers/youtube/provider.ts +0 -403
  552. package/src/providers/youtube/utils.ts +0 -45
  553. package/src/tailwind.test.ts +0 -413
  554. package/src/test-utils/index.ts +0 -22
  555. package/src/test-utils/setup.ts +0 -3
  556. package/src/utils/aria.ts +0 -14
  557. package/src/utils/array.ts +0 -3
  558. package/src/utils/color.ts +0 -5
  559. package/src/utils/dom.ts +0 -458
  560. package/src/utils/error.ts +0 -11
  561. package/src/utils/language.ts +0 -16
  562. package/src/utils/manifest.ts +0 -61
  563. package/src/utils/mime.ts +0 -101
  564. package/src/utils/network.ts +0 -118
  565. package/src/utils/number.ts +0 -25
  566. package/src/utils/promise.ts +0 -12
  567. package/src/utils/scroll.ts +0 -19
  568. package/src/utils/support.ts +0 -163
  569. package/src/utils/time.test.ts +0 -111
  570. package/src/utils/time.ts +0 -123
  571. package/tsconfig.build.json +0 -9
  572. package/tsconfig.json +0 -11
  573. package/types/components/aria/announcer.d.ts +0 -27
  574. package/types/components/layouts/default/audio-layout.d.ts +0 -15
  575. package/types/components/layouts/default/context.d.ts +0 -9
  576. package/types/components/layouts/default/default-layout.d.ts +0 -10
  577. package/types/components/layouts/default/props.d.ts +0 -125
  578. package/types/components/layouts/default/translations.d.ts +0 -6
  579. package/types/components/layouts/default/video-layout.d.ts +0 -15
  580. package/types/components/layouts/plyr/context.d.ts +0 -7
  581. package/types/components/layouts/plyr/plyr-layout.d.ts +0 -9
  582. package/types/components/layouts/plyr/props.d.ts +0 -68
  583. package/types/components/layouts/plyr/translations.d.ts +0 -6
  584. package/types/components/player.d.ts +0 -214
  585. package/types/components/provider/provider.d.ts +0 -24
  586. package/types/components/provider/source-select.d.ts +0 -10
  587. package/types/components/provider/tracks.d.ts +0 -7
  588. package/types/components/ui/buttons/airplay-button.d.ts +0 -23
  589. package/types/components/ui/buttons/caption-button.d.ts +0 -21
  590. package/types/components/ui/buttons/fullscreen-button.d.ts +0 -28
  591. package/types/components/ui/buttons/google-cast-button.d.ts +0 -23
  592. package/types/components/ui/buttons/live-button.d.ts +0 -30
  593. package/types/components/ui/buttons/mute-button.d.ts +0 -21
  594. package/types/components/ui/buttons/pip-button.d.ts +0 -22
  595. package/types/components/ui/buttons/play-button.d.ts +0 -21
  596. package/types/components/ui/buttons/seek-button.d.ts +0 -32
  597. package/types/components/ui/buttons/toggle-button-controller.d.ts +0 -20
  598. package/types/components/ui/buttons/toggle-button.d.ts +0 -29
  599. package/types/components/ui/captions/captions-renderer.d.ts +0 -12
  600. package/types/components/ui/captions/captions.d.ts +0 -22
  601. package/types/components/ui/controls-group.d.ts +0 -9
  602. package/types/components/ui/controls.d.ts +0 -38
  603. package/types/components/ui/gesture.d.ts +0 -64
  604. package/types/components/ui/menu/menu-button.d.ts +0 -37
  605. package/types/components/ui/menu/menu-context.d.ts +0 -23
  606. package/types/components/ui/menu/menu-focus-controller.d.ts +0 -14
  607. package/types/components/ui/menu/menu-item.d.ts +0 -9
  608. package/types/components/ui/menu/menu-items.d.ts +0 -44
  609. package/types/components/ui/menu/menu-portal.d.ts +0 -31
  610. package/types/components/ui/menu/menu.d.ts +0 -66
  611. package/types/components/ui/menu/radio/radio-controller.d.ts +0 -14
  612. package/types/components/ui/menu/radio/radio-group-controller.d.ts +0 -11
  613. package/types/components/ui/menu/radio/radio-group.d.ts +0 -40
  614. package/types/components/ui/menu/radio/radio.d.ts +0 -50
  615. package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +0 -36
  616. package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +0 -37
  617. package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +0 -38
  618. package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +0 -46
  619. package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +0 -48
  620. package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +0 -36
  621. package/types/components/ui/popper/popper.d.ts +0 -15
  622. package/types/components/ui/poster.d.ts +0 -47
  623. package/types/components/ui/sliders/audio-gain-slider.d.ts +0 -43
  624. package/types/components/ui/sliders/quality-slider.d.ts +0 -34
  625. package/types/components/ui/sliders/slider/api/cssvars.d.ts +0 -10
  626. package/types/components/ui/sliders/slider/api/events.d.ts +0 -57
  627. package/types/components/ui/sliders/slider/api/state.d.ts +0 -68
  628. package/types/components/ui/sliders/slider/events-controller.d.ts +0 -23
  629. package/types/components/ui/sliders/slider/format.d.ts +0 -8
  630. package/types/components/ui/sliders/slider/slider-context.d.ts +0 -13
  631. package/types/components/ui/sliders/slider/slider-controller.d.ts +0 -59
  632. package/types/components/ui/sliders/slider/slider.d.ts +0 -39
  633. package/types/components/ui/sliders/slider/types.d.ts +0 -1
  634. package/types/components/ui/sliders/slider/utils.d.ts +0 -2
  635. package/types/components/ui/sliders/slider-preview.d.ts +0 -34
  636. package/types/components/ui/sliders/slider-thumbnail.d.ts +0 -16
  637. package/types/components/ui/sliders/slider-value.d.ts +0 -59
  638. package/types/components/ui/sliders/slider-video.d.ts +0 -73
  639. package/types/components/ui/sliders/speed-slider.d.ts +0 -42
  640. package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +0 -36
  641. package/types/components/ui/sliders/time-slider/time-slider.d.ts +0 -56
  642. package/types/components/ui/sliders/volume-slider.d.ts +0 -35
  643. package/types/components/ui/thumbnails/thumbnail-loader.d.ts +0 -47
  644. package/types/components/ui/thumbnails/thumbnail.d.ts +0 -50
  645. package/types/components/ui/time.d.ts +0 -62
  646. package/types/components/ui/tooltip/tooltip-content.d.ts +0 -39
  647. package/types/components/ui/tooltip/tooltip-context.d.ts +0 -11
  648. package/types/components/ui/tooltip/tooltip-trigger.d.ts +0 -14
  649. package/types/components/ui/tooltip/tooltip.d.ts +0 -23
  650. package/types/core/api/media-attrs.d.ts +0 -3
  651. package/types/core/api/media-context.d.ts +0 -37
  652. package/types/core/api/media-events.d.ts +0 -581
  653. package/types/core/api/media-request-events.d.ts +0 -319
  654. package/types/core/api/player-controller.d.ts +0 -6
  655. package/types/core/api/player-events.d.ts +0 -38
  656. package/types/core/api/player-props.d.ts +0 -163
  657. package/types/core/api/player-state.d.ts +0 -656
  658. package/types/core/api/src-types.d.ts +0 -50
  659. package/types/core/api/types.d.ts +0 -54
  660. package/types/core/controls.d.ts +0 -43
  661. package/types/core/font/font-options.d.ts +0 -42
  662. package/types/core/font/font-vars.d.ts +0 -1
  663. package/types/core/keyboard/aria-shortcuts.d.ts +0 -6
  664. package/types/core/keyboard/controller.d.ts +0 -9
  665. package/types/core/keyboard/types.d.ts +0 -33
  666. package/types/core/quality/events.d.ts +0 -43
  667. package/types/core/quality/symbols.d.ts +0 -6
  668. package/types/core/quality/utils.d.ts +0 -2
  669. package/types/core/quality/video-quality.d.ts +0 -52
  670. package/types/core/state/media-events-logger.d.ts +0 -7
  671. package/types/core/state/media-load-controller.d.ts +0 -6
  672. package/types/core/state/media-player-delegate.d.ts +0 -13
  673. package/types/core/state/media-request-manager.d.ts +0 -71
  674. package/types/core/state/media-state-manager.d.ts +0 -59
  675. package/types/core/state/media-state-sync.d.ts +0 -8
  676. package/types/core/state/media-storage.d.ts +0 -74
  677. package/types/core/state/navigator-media-session.d.ts +0 -5
  678. package/types/core/state/remote-control.d.ts +0 -288
  679. package/types/core/state/tracked-media-events.d.ts +0 -2
  680. package/types/core/time-ranges.d.ts +0 -12
  681. package/types/core/tracks/audio/audio-tracks.d.ts +0 -32
  682. package/types/core/tracks/audio/events.d.ts +0 -37
  683. package/types/core/tracks/text/events.d.ts +0 -49
  684. package/types/core/tracks/text/render/libass-text-renderer.d.ts +0 -181
  685. package/types/core/tracks/text/render/native-text-renderer.d.ts +0 -13
  686. package/types/core/tracks/text/render/text-renderer.d.ts +0 -17
  687. package/types/core/tracks/text/symbols.d.ts +0 -11
  688. package/types/core/tracks/text/text-track.d.ts +0 -137
  689. package/types/core/tracks/text/text-tracks.d.ts +0 -55
  690. package/types/core/tracks/text/utils.d.ts +0 -8
  691. package/types/elements/bundles/cdn/player.core.d.ts +0 -5
  692. package/types/elements/bundles/cdn/player.d.ts +0 -7
  693. package/types/elements/bundles/cdn/plyr.d.ts +0 -5
  694. package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +0 -4
  695. package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +0 -4
  696. package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +0 -3
  697. package/types/elements/bundles/cdn-legacy/player.d.ts +0 -3
  698. package/types/elements/bundles/icons.d.ts +0 -2
  699. package/types/elements/bundles/player-layouts/default.d.ts +0 -1
  700. package/types/elements/bundles/player-layouts/index.d.ts +0 -1
  701. package/types/elements/bundles/player-layouts/plyr.d.ts +0 -1
  702. package/types/elements/bundles/player-ui.d.ts +0 -1
  703. package/types/elements/bundles/player.d.ts +0 -1
  704. package/types/elements/define/announcer-element.d.ts +0 -18
  705. package/types/elements/define/buttons/airplay-button-element.d.ts +0 -19
  706. package/types/elements/define/buttons/caption-button-element.d.ts +0 -20
  707. package/types/elements/define/buttons/fullscreen-button-element.d.ts +0 -20
  708. package/types/elements/define/buttons/google-cast-button-element.d.ts +0 -19
  709. package/types/elements/define/buttons/live-button-element.d.ts +0 -20
  710. package/types/elements/define/buttons/mute-button-element.d.ts +0 -21
  711. package/types/elements/define/buttons/pip-button-element.d.ts +0 -20
  712. package/types/elements/define/buttons/play-button-element.d.ts +0 -21
  713. package/types/elements/define/buttons/seek-button-element.d.ts +0 -24
  714. package/types/elements/define/buttons/toggle-button-element.d.ts +0 -19
  715. package/types/elements/define/captions-element.d.ts +0 -18
  716. package/types/elements/define/chapter-title-element.d.ts +0 -30
  717. package/types/elements/define/controls-element.d.ts +0 -24
  718. package/types/elements/define/controls-group-element.d.ts +0 -24
  719. package/types/elements/define/gesture-element.d.ts +0 -22
  720. package/types/elements/define/layouts/default/audio-layout-element.d.ts +0 -29
  721. package/types/elements/define/layouts/default/audio-layout.d.ts +0 -1
  722. package/types/elements/define/layouts/default/icons-loader.d.ts +0 -5
  723. package/types/elements/define/layouts/default/icons.d.ts +0 -52
  724. package/types/elements/define/layouts/default/slots.d.ts +0 -2
  725. package/types/elements/define/layouts/default/ui/announcer.d.ts +0 -1
  726. package/types/elements/define/layouts/default/ui/buttons.d.ts +0 -31
  727. package/types/elements/define/layouts/default/ui/captions.d.ts +0 -1
  728. package/types/elements/define/layouts/default/ui/controls.d.ts +0 -1
  729. package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +0 -1
  730. package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +0 -1
  731. package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +0 -1
  732. package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +0 -1
  733. package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +0 -8
  734. package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +0 -8
  735. package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +0 -1
  736. package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +0 -8
  737. package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +0 -26
  738. package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +0 -3
  739. package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +0 -4
  740. package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +0 -1
  741. package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +0 -8
  742. package/types/elements/define/layouts/default/ui/slider.d.ts +0 -10
  743. package/types/elements/define/layouts/default/ui/time.d.ts +0 -3
  744. package/types/elements/define/layouts/default/ui/title.d.ts +0 -2
  745. package/types/elements/define/layouts/default/ui/utils.d.ts +0 -3
  746. package/types/elements/define/layouts/default/video-layout-element.d.ts +0 -29
  747. package/types/elements/define/layouts/default/video-layout.d.ts +0 -5
  748. package/types/elements/define/layouts/icons/icons-loader.d.ts +0 -11
  749. package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +0 -4
  750. package/types/elements/define/layouts/layout-element.d.ts +0 -38
  751. package/types/elements/define/layouts/layout-name.d.ts +0 -2
  752. package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  753. package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  754. package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  755. package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +0 -2
  756. package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  757. package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  758. package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  759. package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  760. package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  761. package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  762. package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +0 -2
  763. package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  764. package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  765. package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  766. package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  767. package/types/elements/define/layouts/plyr/icons-loader.d.ts +0 -5
  768. package/types/elements/define/layouts/plyr/icons.d.ts +0 -18
  769. package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +0 -26
  770. package/types/elements/define/layouts/plyr/ui.d.ts +0 -3
  771. package/types/elements/define/layouts/slot-manager.d.ts +0 -7
  772. package/types/elements/define/layouts/slot-observer.d.ts +0 -12
  773. package/types/elements/define/menus/_template.d.ts +0 -7
  774. package/types/elements/define/menus/audio-gain-group-element.d.ts +0 -31
  775. package/types/elements/define/menus/audio-radio-group-element.d.ts +0 -31
  776. package/types/elements/define/menus/captions-radio-group-element.d.ts +0 -31
  777. package/types/elements/define/menus/chapters-radio-group-element.d.ts +0 -36
  778. package/types/elements/define/menus/menu-button-element.d.ts +0 -25
  779. package/types/elements/define/menus/menu-element.d.ts +0 -26
  780. package/types/elements/define/menus/menu-item-element.d.ts +0 -22
  781. package/types/elements/define/menus/menu-items-element.d.ts +0 -25
  782. package/types/elements/define/menus/menu-portal-element.d.ts +0 -25
  783. package/types/elements/define/menus/quality-radio-group-element.d.ts +0 -33
  784. package/types/elements/define/menus/radio-element.d.ts +0 -22
  785. package/types/elements/define/menus/radio-group-element.d.ts +0 -22
  786. package/types/elements/define/menus/speed-radio-group-element.d.ts +0 -31
  787. package/types/elements/define/player-element.d.ts +0 -24
  788. package/types/elements/define/poster-element.d.ts +0 -25
  789. package/types/elements/define/provider-cast-display.d.ts +0 -2
  790. package/types/elements/define/provider-element.d.ts +0 -25
  791. package/types/elements/define/sliders/audio-gain-slider-element.d.ts +0 -32
  792. package/types/elements/define/sliders/quality-slider-element.d.ts +0 -32
  793. package/types/elements/define/sliders/slider-chapters-element.d.ts +0 -31
  794. package/types/elements/define/sliders/slider-element.d.ts +0 -23
  795. package/types/elements/define/sliders/slider-preview-element.d.ts +0 -14
  796. package/types/elements/define/sliders/slider-steps-element.d.ts +0 -28
  797. package/types/elements/define/sliders/slider-thumbnail-element.d.ts +0 -26
  798. package/types/elements/define/sliders/slider-value-element.d.ts +0 -37
  799. package/types/elements/define/sliders/slider-video-element.d.ts +0 -25
  800. package/types/elements/define/sliders/speed-slider-element.d.ts +0 -32
  801. package/types/elements/define/sliders/time-slider-element.d.ts +0 -32
  802. package/types/elements/define/sliders/volume-slider-element.d.ts +0 -32
  803. package/types/elements/define/spinner-element.d.ts +0 -50
  804. package/types/elements/define/thumbnail-element.d.ts +0 -29
  805. package/types/elements/define/time-element.d.ts +0 -24
  806. package/types/elements/define/title-element.d.ts +0 -23
  807. package/types/elements/define/tooltips/tooltip-content-element.d.ts +0 -26
  808. package/types/elements/define/tooltips/tooltip-element.d.ts +0 -26
  809. package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +0 -27
  810. package/types/elements/icon.d.ts +0 -10
  811. package/types/elements/index.d.ts +0 -56
  812. package/types/elements/lit/directives/signal.d.ts +0 -1
  813. package/types/elements/lit/html.d.ts +0 -4
  814. package/types/elements/lit/lit-element.d.ts +0 -8
  815. package/types/elements/state-controller.d.ts +0 -5
  816. package/types/exports/components.d.ts +0 -59
  817. package/types/exports/core.d.ts +0 -26
  818. package/types/exports/events.d.ts +0 -32
  819. package/types/exports/font.d.ts +0 -2
  820. package/types/exports/foundation.d.ts +0 -8
  821. package/types/exports/maverick.d.ts +0 -1
  822. package/types/exports/providers.d.ts +0 -22
  823. package/types/exports/utils.d.ts +0 -4
  824. package/types/foundation/fullscreen/controller.d.ts +0 -39
  825. package/types/foundation/fullscreen/events.d.ts +0 -25
  826. package/types/foundation/list/list.d.ts +0 -64
  827. package/types/foundation/list/select-list.d.ts +0 -30
  828. package/types/foundation/list/symbols.d.ts +0 -14
  829. package/types/foundation/logger/colors.d.ts +0 -5
  830. package/types/foundation/logger/controller.d.ts +0 -20
  831. package/types/foundation/logger/events.d.ts +0 -26
  832. package/types/foundation/logger/grouped-log.d.ts +0 -22
  833. package/types/foundation/logger/log-level.d.ts +0 -15
  834. package/types/foundation/logger/log-printer.d.ts +0 -11
  835. package/types/foundation/logger/ms.d.ts +0 -4
  836. package/types/foundation/observers/focus-visible.d.ts +0 -7
  837. package/types/foundation/observers/intersection-observer.d.ts +0 -36
  838. package/types/foundation/observers/page-visibility.d.ts +0 -37
  839. package/types/foundation/observers/raf-loop.d.ts +0 -6
  840. package/types/foundation/orientation/controller.d.ts +0 -62
  841. package/types/foundation/orientation/events.d.ts +0 -16
  842. package/types/foundation/orientation/types.d.ts +0 -85
  843. package/types/foundation/queue/queue.d.ts +0 -24
  844. package/types/foundation/queue/request-queue.d.ts +0 -42
  845. package/types/global/layouts/default.d.ts +0 -9
  846. package/types/global/layouts/loader.d.ts +0 -5
  847. package/types/global/layouts/plyr.d.ts +0 -9
  848. package/types/global/player.d.ts +0 -26
  849. package/types/index.d.ts +0 -6
  850. package/types/plugins.d.ts +0 -11
  851. package/types/providers/audio/loader.d.ts +0 -12
  852. package/types/providers/audio/provider.d.ts +0 -29
  853. package/types/providers/dash/dash.d.ts +0 -15
  854. package/types/providers/dash/events.d.ts +0 -570
  855. package/types/providers/dash/lib-loader.d.ts +0 -6
  856. package/types/providers/dash/loader.d.ts +0 -10
  857. package/types/providers/dash/provider.d.ts +0 -62
  858. package/types/providers/dash/types.d.ts +0 -13
  859. package/types/providers/embed/EmbedProvider.d.ts +0 -18
  860. package/types/providers/google-cast/events.d.ts +0 -36
  861. package/types/providers/google-cast/loader.d.ts +0 -18
  862. package/types/providers/google-cast/media-info.d.ts +0 -11
  863. package/types/providers/google-cast/provider.d.ts +0 -48
  864. package/types/providers/google-cast/tracks.d.ts +0 -10
  865. package/types/providers/google-cast/types.d.ts +0 -3
  866. package/types/providers/google-cast/utils.d.ts +0 -34
  867. package/types/providers/hls/events.d.ts +0 -463
  868. package/types/providers/hls/hls.d.ts +0 -14
  869. package/types/providers/hls/lib-loader.d.ts +0 -6
  870. package/types/providers/hls/loader.d.ts +0 -10
  871. package/types/providers/hls/provider.d.ts +0 -64
  872. package/types/providers/hls/types.d.ts +0 -9
  873. package/types/providers/html/audio/audio-context.d.ts +0 -6
  874. package/types/providers/html/audio/audio-gain.d.ts +0 -10
  875. package/types/providers/html/html/342/200/223media-events.d.ts +0 -6
  876. package/types/providers/html/native-audio-tracks.d.ts +0 -6
  877. package/types/providers/html/provider.d.ts +0 -34
  878. package/types/providers/html/remote-playback.d.ts +0 -18
  879. package/types/providers/type-check.d.ts +0 -28
  880. package/types/providers/types.d.ts +0 -95
  881. package/types/providers/video/loader.d.ts +0 -12
  882. package/types/providers/video/native-hls-text-tracks.d.ts +0 -9
  883. package/types/providers/video/picture-in-picture.d.ts +0 -16
  884. package/types/providers/video/presentation/events.d.ts +0 -11
  885. package/types/providers/video/presentation/video-presentation.d.ts +0 -30
  886. package/types/providers/video/provider.d.ts +0 -34
  887. package/types/providers/vimeo/embed/command.d.ts +0 -81
  888. package/types/providers/vimeo/embed/event.d.ts +0 -58
  889. package/types/providers/vimeo/embed/message.d.ts +0 -8
  890. package/types/providers/vimeo/embed/misc.d.ts +0 -52
  891. package/types/providers/vimeo/embed/params.d.ts +0 -148
  892. package/types/providers/vimeo/loader.d.ts +0 -14
  893. package/types/providers/vimeo/provider.d.ts +0 -61
  894. package/types/providers/vimeo/utils.d.ts +0 -6
  895. package/types/providers/youtube/embed/command.d.ts +0 -13
  896. package/types/providers/youtube/embed/event.d.ts +0 -1
  897. package/types/providers/youtube/embed/message.d.ts +0 -50
  898. package/types/providers/youtube/embed/params.d.ts +0 -218
  899. package/types/providers/youtube/embed/quality.d.ts +0 -2
  900. package/types/providers/youtube/embed/state.d.ts +0 -12
  901. package/types/providers/youtube/loader.d.ts +0 -14
  902. package/types/providers/youtube/provider.d.ts +0 -61
  903. package/types/providers/youtube/utils.d.ts +0 -2
  904. package/types/utils/aria.d.ts +0 -4
  905. package/types/utils/array.d.ts +0 -1
  906. package/types/utils/color.d.ts +0 -1
  907. package/types/utils/dom.d.ts +0 -41
  908. package/types/utils/error.d.ts +0 -2
  909. package/types/utils/language.d.ts +0 -8
  910. package/types/utils/manifest.d.ts +0 -3
  911. package/types/utils/mime.d.ts +0 -15
  912. package/types/utils/network.d.ts +0 -17
  913. package/types/utils/number.d.ts +0 -17
  914. package/types/utils/promise.d.ts +0 -1
  915. package/types/utils/scroll.d.ts +0 -5
  916. package/types/utils/support.d.ts +0 -72
  917. package/types/utils/time.d.ts +0 -57
  918. package/vite.config.ts +0 -61
  919. /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
  920. /package/{npm/bundle.d.ts → bundle.d.ts} +0 -0
  921. /package/{npm/dom.d.ts → dom.d.ts} +0 -0
  922. /package/{npm/empty.vtt → empty.vtt} +0 -0
  923. /package/{npm/google-cast.d.ts → google-cast.d.ts} +0 -0
  924. /package/{npm/player → player}/index.d.ts +0 -0
  925. /package/{npm/player → player}/layouts/default.d.ts +0 -0
  926. /package/{npm/player → player}/layouts/index.d.ts +0 -0
  927. /package/{npm/player → player}/layouts/plyr.d.ts +0 -0
  928. /package/{styles/player → player/styles}/base.css +0 -0
  929. /package/{styles/player → player/styles}/default/buffering.css +0 -0
  930. /package/{styles/player → player/styles}/default/buttons.css +0 -0
  931. /package/{styles/player → player/styles}/default/captions.css +0 -0
  932. /package/{styles/player → player/styles}/default/chapter-title.css +0 -0
  933. /package/{styles/player → player/styles}/default/controls.css +0 -0
  934. /package/{styles/player → player/styles}/default/gestures.css +0 -0
  935. /package/{styles/player → player/styles}/default/icons.css +0 -0
  936. /package/{styles/player → player/styles}/default/keyboard.css +0 -0
  937. /package/{styles/player → player/styles}/default/layouts/audio.css +0 -0
  938. /package/{styles/player → player/styles}/default/layouts/video.css +0 -0
  939. /package/{styles/player → player/styles}/default/menus.css +0 -0
  940. /package/{styles/player → player/styles}/default/poster.css +0 -0
  941. /package/{styles/player → player/styles}/default/sliders.css +0 -0
  942. /package/{styles/player → player/styles}/default/theme.css +0 -0
  943. /package/{styles/player → player/styles}/default/thumbnail.css +0 -0
  944. /package/{styles/player → player/styles}/default/time.css +0 -0
  945. /package/{styles/player → player/styles}/default/tooltips.css +0 -0
  946. /package/{styles/player → player/styles}/plyr/theme.css +0 -0
  947. /package/{npm/player → player}/ui.d.ts +0 -0
  948. /package/{npm/tailwind.cjs → tailwind.cjs} +0 -0
  949. /package/{npm/tailwind.d.cts → tailwind.d.cts} +0 -0
@@ -0,0 +1,1482 @@
1
+ import { createContext, useContext, prop, Component, computed, provideContext, signal, isBoolean, effect, setAttribute, uppercaseFirstChar, isNil, isString, noop, isFunction, unwrap, camelToKebabCase, onDispose, scoped, keysOf, isArray, tick, peek, isKeyboardClick } from './vidstack-C1PwJD_4.js';
2
+ import { useMediaContext, useMediaState } from './vidstack-BjxlZzGu.js';
3
+ import { watchColorScheme, $ariaBool, useResizeObserver, useActive } from './vidstack-C0SWkbs7.js';
4
+ import { html } from 'lit-html';
5
+ import { $signal, LayoutIconsLoader, Icon } from './vidstack-0Of4tJ8D.js';
6
+ import { watchActiveTextTrack } from './vidstack-CcQdBWil.js';
7
+ import { sortVideoQualities } from './vidstack-BTM4ERc7.js';
8
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
9
+ import { ref } from 'lit-html/directives/ref.js';
10
+ import { getDownloadFile, appendParamsToURL } from './vidstack-Bs54kFSz.js';
11
+
12
+ const defaultLayoutContext = createContext();
13
+ function useDefaultLayoutContext() {
14
+ return useContext(defaultLayoutContext);
15
+ }
16
+
17
+ const defaultLayoutProps = {
18
+ colorScheme: "system",
19
+ download: null,
20
+ customIcons: false,
21
+ disableTimeSlider: false,
22
+ menuContainer: null,
23
+ menuGroup: "bottom",
24
+ noAudioGain: false,
25
+ noGestures: false,
26
+ noKeyboardAnimations: false,
27
+ noModal: false,
28
+ noScrubGesture: false,
29
+ playbackRates: { min: 0, max: 2, step: 0.25 },
30
+ audioGains: { min: 0, max: 300, step: 25 },
31
+ seekStep: 5,
32
+ sliderChaptersMinWidth: 325,
33
+ hideQualityBitrate: false,
34
+ episodes: null,
35
+ episodesTitle: "Episodes",
36
+ smallWhen: false,
37
+ thumbnails: null,
38
+ translations: null,
39
+ when: false
40
+ };
41
+
42
+ class DefaultLayout extends Component {
43
+ static props = defaultLayoutProps;
44
+ #media;
45
+ #when = computed(() => {
46
+ const when = this.$props.when();
47
+ return this.#matches(when);
48
+ });
49
+ #smallWhen = computed(() => {
50
+ const when = this.$props.smallWhen();
51
+ return this.#matches(when);
52
+ });
53
+ get isMatch() {
54
+ return this.#when();
55
+ }
56
+ get isSmallLayout() {
57
+ return this.#smallWhen();
58
+ }
59
+ onSetup() {
60
+ this.#media = useMediaContext();
61
+ this.setAttributes({
62
+ "data-match": this.#when,
63
+ "data-sm": () => this.#smallWhen() ? "" : null,
64
+ "data-lg": () => !this.#smallWhen() ? "" : null,
65
+ "data-size": () => this.#smallWhen() ? "sm" : "lg",
66
+ "data-no-scrub-gesture": this.$props.noScrubGesture
67
+ });
68
+ provideContext(defaultLayoutContext, {
69
+ ...this.$props,
70
+ when: this.#when,
71
+ smallWhen: this.#smallWhen,
72
+ userPrefersAnnouncements: signal(true),
73
+ userPrefersKeyboardAnimations: signal(true),
74
+ menuPortal: signal(null)
75
+ });
76
+ }
77
+ onAttach(el) {
78
+ watchColorScheme(el, this.$props.colorScheme);
79
+ }
80
+ #matches(query) {
81
+ return query !== "never" && (isBoolean(query) ? query : computed(() => query(this.#media.player.state))());
82
+ }
83
+ }
84
+ const defaultlayout__proto = DefaultLayout.prototype;
85
+ prop(defaultlayout__proto, "isMatch");
86
+ prop(defaultlayout__proto, "isSmallLayout");
87
+
88
+ function setLayoutName(name, isMatch) {
89
+ effect(() => {
90
+ const { player } = useMediaContext(), el = player.el;
91
+ el && setAttribute(el, "data-layout", isMatch() && name);
92
+ return () => el?.removeAttribute("data-layout");
93
+ });
94
+ }
95
+
96
+ function i18n(translations, word) {
97
+ return translations()?.[word] ?? word;
98
+ }
99
+
100
+ function DefaultAnnouncer() {
101
+ return $signal(() => {
102
+ const { translations, userPrefersAnnouncements } = useDefaultLayoutContext();
103
+ if (!userPrefersAnnouncements()) return null;
104
+ return html`<media-announcer .translations=${$signal(translations)}></media-announcer>`;
105
+ });
106
+ }
107
+
108
+ function IconSlot(name, classes = "") {
109
+ return html`<slot
110
+ name=${`${name}-icon`}
111
+ data-class=${`vds-icon vds-${name}-icon${classes ? ` ${classes}` : ""}`}
112
+ ></slot>`;
113
+ }
114
+ function IconSlots(names) {
115
+ return names.map((name) => IconSlot(name));
116
+ }
117
+
118
+ function $i18n(translations, word) {
119
+ return $signal(() => i18n(translations, word));
120
+ }
121
+
122
+ function DefaultAirPlayButton({ tooltip }) {
123
+ const { translations } = useDefaultLayoutContext(), { remotePlaybackState } = useMediaState(), $label = $signal(() => {
124
+ const airPlayText = i18n(translations, "AirPlay"), stateText = uppercaseFirstChar(remotePlaybackState());
125
+ return `${airPlayText} ${stateText}`;
126
+ }), $airPlayText = $i18n(translations, "AirPlay");
127
+ return html`
128
+ <media-tooltip class="vds-airplay-tooltip vds-tooltip">
129
+ <media-tooltip-trigger>
130
+ <media-airplay-button class="vds-airplay-button vds-button" aria-label=${$label}>
131
+ ${IconSlot("airplay")}
132
+ </media-airplay-button>
133
+ </media-tooltip-trigger>
134
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
135
+ <span class="vds-airplay-tooltip-text">${$airPlayText}</span>
136
+ </media-tooltip-content>
137
+ </media-tooltip>
138
+ `;
139
+ }
140
+ function DefaultPlayButton({ tooltip }) {
141
+ const { translations } = useDefaultLayoutContext(), $playText = $i18n(translations, "Play"), $pauseText = $i18n(translations, "Pause");
142
+ return html`
143
+ <media-tooltip class="vds-play-tooltip vds-tooltip">
144
+ <media-tooltip-trigger>
145
+ <media-play-button
146
+ class="vds-play-button vds-button"
147
+ aria-label=${$i18n(translations, "Play")}
148
+ >
149
+ ${IconSlots(["play", "pause", "replay"])}
150
+ </media-play-button>
151
+ </media-tooltip-trigger>
152
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
153
+ <span class="vds-play-tooltip-text">${$playText}</span>
154
+ <span class="vds-pause-tooltip-text">${$pauseText}</span>
155
+ </media-tooltip-content>
156
+ </media-tooltip>
157
+ `;
158
+ }
159
+ function DefaultMuteButton({
160
+ tooltip,
161
+ ref: ref$1 = noop
162
+ }) {
163
+ const { translations } = useDefaultLayoutContext(), $muteText = $i18n(translations, "Mute"), $unmuteText = $i18n(translations, "Unmute");
164
+ return html`
165
+ <media-tooltip class="vds-mute-tooltip vds-tooltip">
166
+ <media-tooltip-trigger>
167
+ <media-mute-button
168
+ class="vds-mute-button vds-button"
169
+ aria-label=${$i18n(translations, "Mute")}
170
+ ${ref(ref$1)}
171
+ >
172
+ ${IconSlots(["mute", "volume-low", "volume-high"])}
173
+ </media-mute-button>
174
+ </media-tooltip-trigger>
175
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
176
+ <span class="vds-mute-tooltip-text">${$unmuteText}</span>
177
+ <span class="vds-unmute-tooltip-text">${$muteText}</span>
178
+ </media-tooltip-content>
179
+ </media-tooltip>
180
+ `;
181
+ }
182
+ function DefaultCaptionButton({ tooltip }) {
183
+ const { translations } = useDefaultLayoutContext(), $ccOnText = $i18n(translations, "Closed-Captions On"), $ccOffText = $i18n(translations, "Closed-Captions Off");
184
+ return html`
185
+ <media-tooltip class="vds-caption-tooltip vds-tooltip">
186
+ <media-tooltip-trigger>
187
+ <media-caption-button
188
+ class="vds-caption-button vds-button"
189
+ aria-label=${$i18n(translations, "Captions")}
190
+ >
191
+ ${IconSlots(["cc-on", "cc-off"])}
192
+ </media-caption-button>
193
+ </media-tooltip-trigger>
194
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
195
+ <span class="vds-cc-on-tooltip-text">${$ccOffText}</span>
196
+ <span class="vds-cc-off-tooltip-text">${$ccOnText}</span>
197
+ </media-tooltip-content>
198
+ </media-tooltip>
199
+ `;
200
+ }
201
+ function DefaultPIPButton() {
202
+ const { translations } = useDefaultLayoutContext(), $enterText = $i18n(translations, "Enter PiP"), $exitText = $i18n(translations, "Exit PiP");
203
+ return html`
204
+ <media-tooltip class="vds-pip-tooltip vds-tooltip">
205
+ <media-tooltip-trigger>
206
+ <media-pip-button
207
+ class="vds-pip-button vds-button"
208
+ aria-label=${$i18n(translations, "PiP")}
209
+ >
210
+ ${IconSlots(["pip-enter", "pip-exit"])}
211
+ </media-pip-button>
212
+ </media-tooltip-trigger>
213
+ <media-tooltip-content class="vds-tooltip-content">
214
+ <span class="vds-pip-enter-tooltip-text">${$enterText}</span>
215
+ <span class="vds-pip-exit-tooltip-text">${$exitText}</span>
216
+ </media-tooltip-content>
217
+ </media-tooltip>
218
+ `;
219
+ }
220
+ function DefaultFullscreenButton({ tooltip }) {
221
+ const { translations } = useDefaultLayoutContext(), $enterText = $i18n(translations, "Enter Fullscreen"), $exitText = $i18n(translations, "Exit Fullscreen");
222
+ return html`
223
+ <media-tooltip class="vds-fullscreen-tooltip vds-tooltip">
224
+ <media-tooltip-trigger>
225
+ <media-fullscreen-button
226
+ class="vds-fullscreen-button vds-button"
227
+ aria-label=${$i18n(translations, "Fullscreen")}
228
+ >
229
+ ${IconSlots(["fs-enter", "fs-exit"])}
230
+ </media-fullscreen-button>
231
+ </media-tooltip-trigger>
232
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
233
+ <span class="vds-fs-enter-tooltip-text">${$enterText}</span>
234
+ <span class="vds-fs-exit-tooltip-text">${$exitText}</span>
235
+ </media-tooltip-content>
236
+ </media-tooltip>
237
+ `;
238
+ }
239
+ function DefaultSeekButton({
240
+ backward,
241
+ tooltip
242
+ }) {
243
+ const { translations, seekStep } = useDefaultLayoutContext(), seekText = !backward ? "Seek Forward" : "Seek Backward", $label = $i18n(translations, seekText), $seconds = () => (backward ? -1 : 1) * seekStep();
244
+ return html`
245
+ <media-tooltip class="vds-seek-tooltip vds-tooltip">
246
+ <media-tooltip-trigger>
247
+ <media-seek-button
248
+ class="vds-seek-button vds-button"
249
+ seconds=${$signal($seconds)}
250
+ aria-label=${$label}
251
+ >
252
+ ${!backward ? IconSlot("seek-forward") : IconSlot("seek-backward")}
253
+ </media-seek-button>
254
+ </media-tooltip-trigger>
255
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
256
+ ${$i18n(translations, seekText)}
257
+ </media-tooltip-content>
258
+ </media-tooltip>
259
+ `;
260
+ }
261
+ function DefaultLiveButton() {
262
+ const { translations } = useDefaultLayoutContext(), { live } = useMediaState(), $label = $i18n(translations, "Skip To Live"), $liveText = $i18n(translations, "LIVE");
263
+ return live() ? html`
264
+ <media-live-button class="vds-live-button" aria-label=${$label}>
265
+ <span class="vds-live-button-text">${$liveText}</span>
266
+ </media-live-button>
267
+ ` : null;
268
+ }
269
+ function DefaultDownloadButton() {
270
+ return $signal(() => {
271
+ const { download, translations } = useDefaultLayoutContext(), $download = download();
272
+ if (isNil($download)) return null;
273
+ const { source, title } = useMediaState(), $src = source(), file = getDownloadFile({
274
+ title: title(),
275
+ src: $src,
276
+ download: $download
277
+ });
278
+ return isString(file?.url) ? html`
279
+ <media-tooltip class="vds-download-tooltip vds-tooltip">
280
+ <media-tooltip-trigger>
281
+ <a
282
+ role="button"
283
+ class="vds-download-button vds-button"
284
+ aria-label=${$i18n(translations, "Download")}
285
+ href=${appendParamsToURL(file.url, { download: file.name })}
286
+ download=${file.name}
287
+ target="_blank"
288
+ >
289
+ <slot name="download-icon" data-class="vds-icon" />
290
+ </a>
291
+ </media-tooltip-trigger>
292
+ <media-tooltip-content class="vds-tooltip-content" placement="top">
293
+ ${$i18n(translations, "Download")}
294
+ </media-tooltip-content>
295
+ </media-tooltip>
296
+ ` : null;
297
+ });
298
+ }
299
+ function DefaultEpisodeButton({ tooltip } = {}) {
300
+ const $label = "Episodes", $episodesText = "Episodes";
301
+ function openEpisodes(e) {
302
+ e.stopPropagation();
303
+ e.currentTarget?.dispatchEvent(
304
+ new CustomEvent("vds-episodes-open", { bubbles: true, composed: true })
305
+ );
306
+ }
307
+ const content = html`
308
+ <button
309
+ type="button"
310
+ class="vds-episode-button vds-button"
311
+ aria-label=${$label}
312
+ @pointerup=${openEpisodes}
313
+ >
314
+ ${IconSlot("menu-episodes")}
315
+ </button>
316
+ `;
317
+ if (!tooltip) return content;
318
+ return html`
319
+ <media-tooltip class="vds-episode-tooltip vds-tooltip">
320
+ <media-tooltip-trigger> ${content} </media-tooltip-trigger>
321
+ <media-tooltip-content class="vds-tooltip-content" placement=${tooltip}>
322
+ <span class="vds-episode-tooltip-text">${$episodesText}</span>
323
+ </media-tooltip-content>
324
+ </media-tooltip>
325
+ `;
326
+ }
327
+
328
+ function DefaultCaptions() {
329
+ const { translations } = useDefaultLayoutContext();
330
+ return html`
331
+ <media-captions
332
+ class="vds-captions"
333
+ .exampleText=${$i18n(translations, "Captions look like this")}
334
+ ></media-captions>
335
+ `;
336
+ }
337
+
338
+ function DefaultControlsSpacer() {
339
+ return html`<div class="vds-controls-spacer"></div>`;
340
+ }
341
+
342
+ function MenuPortal(container, template) {
343
+ return html`
344
+ <media-menu-portal .container=${$signal(container)} disabled="fullscreen">
345
+ ${template}
346
+ </media-menu-portal>
347
+ `;
348
+ }
349
+ function createMenuContainer(layoutEl, rootSelector, className, isSmallLayout) {
350
+ let root = isString(rootSelector) ? document.querySelector(rootSelector) : rootSelector;
351
+ if (!root) root = layoutEl?.closest("dialog");
352
+ if (!root) root = document.body;
353
+ const container = document.createElement("div");
354
+ container.style.display = "contents";
355
+ container.classList.add(className);
356
+ root.append(container);
357
+ effect(() => {
358
+ if (!container) return;
359
+ const { viewType } = useMediaState(), isSmall = isSmallLayout();
360
+ setAttribute(container, "data-view-type", viewType());
361
+ setAttribute(container, "data-sm", isSmall);
362
+ setAttribute(container, "data-lg", !isSmall);
363
+ setAttribute(container, "data-size", isSmall ? "sm" : "lg");
364
+ });
365
+ const { colorScheme } = useDefaultLayoutContext();
366
+ watchColorScheme(container, colorScheme);
367
+ return container;
368
+ }
369
+
370
+ function DefaultChaptersMenu({
371
+ placement,
372
+ tooltip,
373
+ portal
374
+ }) {
375
+ const { textTracks } = useMediaContext(), { viewType, seekableStart, seekableEnd } = useMediaState(), {
376
+ translations,
377
+ thumbnails,
378
+ menuPortal,
379
+ noModal,
380
+ menuGroup,
381
+ smallWhen: smWhen
382
+ } = useDefaultLayoutContext(), $disabled = computed(() => {
383
+ const $startTime = seekableStart(), $endTime = seekableEnd(), $track = signal(null);
384
+ watchActiveTextTrack(textTracks, "chapters", $track.set);
385
+ const cues = $track()?.cues.filter(
386
+ (cue) => cue.startTime <= $endTime && cue.endTime >= $startTime
387
+ );
388
+ return !cues?.length;
389
+ });
390
+ if ($disabled()) return null;
391
+ const $placement = computed(
392
+ () => noModal() ? unwrap(placement) : !smWhen() ? unwrap(placement) : null
393
+ ), $offset = computed(
394
+ () => !smWhen() && menuGroup() === "bottom" && viewType() === "video" ? 26 : 0
395
+ ), $isOpen = signal(false);
396
+ function onOpen() {
397
+ $isOpen.set(true);
398
+ }
399
+ function onClose() {
400
+ $isOpen.set(false);
401
+ }
402
+ const items = html`
403
+ <media-menu-items
404
+ class="vds-chapters-menu-items vds-menu-items"
405
+ placement=${$signal($placement)}
406
+ offset=${$signal($offset)}
407
+ >
408
+ ${$signal(() => {
409
+ if (!$isOpen()) return null;
410
+ return html`
411
+ <media-chapters-radio-group
412
+ class="vds-chapters-radio-group vds-radio-group"
413
+ .thumbnails=${$signal(thumbnails)}
414
+ >
415
+ <template>
416
+ <media-radio class="vds-chapter-radio vds-radio">
417
+ <media-thumbnail class="vds-thumbnail"></media-thumbnail>
418
+ <div class="vds-chapter-radio-content">
419
+ <span class="vds-chapter-radio-label" data-part="label"></span>
420
+ <span class="vds-chapter-radio-start-time" data-part="start-time"></span>
421
+ <span class="vds-chapter-radio-duration" data-part="duration"></span>
422
+ </div>
423
+ </media-radio>
424
+ </template>
425
+ </media-chapters-radio-group>
426
+ `;
427
+ })}
428
+ </media-menu-items>
429
+ `;
430
+ return html`
431
+ <media-menu class="vds-chapters-menu vds-menu" @open=${onOpen} @close=${onClose}>
432
+ <media-tooltip class="vds-tooltip">
433
+ <media-tooltip-trigger>
434
+ <media-menu-button
435
+ class="vds-menu-button vds-button"
436
+ aria-label=${$i18n(translations, "Chapters")}
437
+ >
438
+ ${IconSlot("menu-chapters")}
439
+ </media-menu-button>
440
+ </media-tooltip-trigger>
441
+ <media-tooltip-content
442
+ class="vds-tooltip-content"
443
+ placement=${isFunction(tooltip) ? $signal(tooltip) : tooltip}
444
+ >
445
+ ${$i18n(translations, "Chapters")}
446
+ </media-tooltip-content>
447
+ </media-tooltip>
448
+ ${MenuPortal(menuPortal, items) }
449
+ </media-menu>
450
+ `;
451
+ }
452
+
453
+ function hexToRgb(hex) {
454
+ const { style } = new Option();
455
+ style.color = hex;
456
+ return style.color.match(/\((.*?)\)/)[1].replace(/,/g, " ");
457
+ }
458
+
459
+ const FONT_COLOR_OPTION = {
460
+ type: "color"
461
+ };
462
+ const FONT_FAMILY_OPTION = {
463
+ type: "radio",
464
+ values: {
465
+ "Monospaced Serif": "mono-serif",
466
+ "Proportional Serif": "pro-serif",
467
+ "Monospaced Sans-Serif": "mono-sans",
468
+ "Proportional Sans-Serif": "pro-sans",
469
+ Casual: "casual",
470
+ Cursive: "cursive",
471
+ "Small Capitals": "capitals"
472
+ }
473
+ };
474
+ const FONT_SIZE_OPTION = {
475
+ type: "slider",
476
+ min: 0,
477
+ max: 400,
478
+ step: 25,
479
+ upIcon: null,
480
+ downIcon: null
481
+ };
482
+ const FONT_OPACITY_OPTION = {
483
+ type: "slider",
484
+ min: 0,
485
+ max: 100,
486
+ step: 5,
487
+ upIcon: null,
488
+ downIcon: null
489
+ };
490
+ const FONT_TEXT_SHADOW_OPTION = {
491
+ type: "radio",
492
+ values: ["None", "Drop Shadow", "Raised", "Depressed", "Outline"]
493
+ };
494
+ const FONT_DEFAULTS = {
495
+ fontFamily: "pro-sans",
496
+ fontSize: "100%",
497
+ textColor: "#ffffff",
498
+ textOpacity: "100%",
499
+ textShadow: "none",
500
+ textBg: "#000000",
501
+ textBgOpacity: "100%",
502
+ displayBg: "#000000",
503
+ displayBgOpacity: "0%"
504
+ };
505
+ const FONT_SIGNALS = Object.keys(FONT_DEFAULTS).reduce(
506
+ (prev, type) => ({
507
+ ...prev,
508
+ [type]: signal(FONT_DEFAULTS[type])
509
+ }),
510
+ {}
511
+ );
512
+ {
513
+ for (const type of Object.keys(FONT_SIGNALS)) {
514
+ const value = localStorage.getItem(`vds-player:${camelToKebabCase(type)}`);
515
+ if (isString(value)) FONT_SIGNALS[type].set(value);
516
+ }
517
+ }
518
+ function onFontReset() {
519
+ for (const type of Object.keys(FONT_SIGNALS)) {
520
+ const defaultValue = FONT_DEFAULTS[type];
521
+ FONT_SIGNALS[type].set(defaultValue);
522
+ }
523
+ }
524
+
525
+ let isWatchingVars = false, players = /* @__PURE__ */ new Set();
526
+ function updateFontCssVars() {
527
+ const { player } = useMediaContext();
528
+ players.add(player);
529
+ onDispose(() => players.delete(player));
530
+ if (!isWatchingVars) {
531
+ scoped(() => {
532
+ for (const type of keysOf(FONT_SIGNALS)) {
533
+ const $value = FONT_SIGNALS[type], defaultValue = FONT_DEFAULTS[type], varName = `--media-user-${camelToKebabCase(type)}`, storageKey = `vds-player:${camelToKebabCase(type)}`;
534
+ effect(() => {
535
+ const value = $value(), isDefaultVarValue = value === defaultValue, varValue = !isDefaultVarValue ? getCssVarValue(player, type, value) : null;
536
+ for (const player2 of players) {
537
+ player2.el?.style.setProperty(varName, varValue);
538
+ }
539
+ if (isDefaultVarValue) {
540
+ localStorage.removeItem(storageKey);
541
+ } else {
542
+ localStorage.setItem(storageKey, value);
543
+ }
544
+ });
545
+ }
546
+ }, null);
547
+ isWatchingVars = true;
548
+ }
549
+ }
550
+ function getCssVarValue(player, type, value) {
551
+ switch (type) {
552
+ case "fontFamily":
553
+ const fontVariant = value === "capitals" ? "small-caps" : "";
554
+ player.el?.style.setProperty("--media-user-font-variant", fontVariant);
555
+ return getFontFamilyCSSVarValue(value);
556
+ case "fontSize":
557
+ case "textOpacity":
558
+ case "textBgOpacity":
559
+ case "displayBgOpacity":
560
+ return percentToRatio(value);
561
+ case "textColor":
562
+ return `rgb(${hexToRgb(value)} / var(--media-user-text-opacity, 1))`;
563
+ case "textShadow":
564
+ return getTextShadowCssVarValue(value);
565
+ case "textBg":
566
+ return `rgb(${hexToRgb(value)} / var(--media-user-text-bg-opacity, 1))`;
567
+ case "displayBg":
568
+ return `rgb(${hexToRgb(value)} / var(--media-user-display-bg-opacity, 1))`;
569
+ }
570
+ }
571
+ function percentToRatio(value) {
572
+ return (parseInt(value) / 100).toString();
573
+ }
574
+ function getFontFamilyCSSVarValue(value) {
575
+ switch (value) {
576
+ case "mono-serif":
577
+ return '"Courier New", Courier, "Nimbus Mono L", "Cutive Mono", monospace';
578
+ case "mono-sans":
579
+ return '"Deja Vu Sans Mono", "Lucida Console", Monaco, Consolas, "PT Mono", monospace';
580
+ case "pro-sans":
581
+ return 'Roboto, "Arial Unicode Ms", Arial, Helvetica, Verdana, "PT Sans Caption", sans-serif';
582
+ case "casual":
583
+ return '"Comic Sans MS", Impact, Handlee, fantasy';
584
+ case "cursive":
585
+ return '"Monotype Corsiva", "URW Chancery L", "Apple Chancery", "Dancing Script", cursive';
586
+ case "capitals":
587
+ return '"Arial Unicode Ms", Arial, Helvetica, Verdana, "Marcellus SC", sans-serif + font-variant=small-caps';
588
+ default:
589
+ return '"Times New Roman", Times, Georgia, Cambria, "PT Serif Caption", serif';
590
+ }
591
+ }
592
+ function getTextShadowCssVarValue(value) {
593
+ switch (value) {
594
+ case "drop shadow":
595
+ return "rgb(34, 34, 34) 1.86389px 1.86389px 2.79583px, rgb(34, 34, 34) 1.86389px 1.86389px 3.72778px, rgb(34, 34, 34) 1.86389px 1.86389px 4.65972px";
596
+ case "raised":
597
+ return "rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px";
598
+ case "depressed":
599
+ return "rgb(204, 204, 204) 1px 1px, rgb(34, 34, 34) -1px -1px";
600
+ case "outline":
601
+ return "rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px";
602
+ default:
603
+ return "";
604
+ }
605
+ }
606
+
607
+ let sectionId = 0;
608
+ function DefaultMenuSection({ label = "", value = "", children }) {
609
+ if (!label) {
610
+ return html`
611
+ <div class="vds-menu-section">
612
+ <div class="vds-menu-section-body">${children}</div>
613
+ </div>
614
+ `;
615
+ }
616
+ const id = `vds-menu-section-${++sectionId}`;
617
+ return html`
618
+ <section class="vds-menu-section" role="group" aria-labelledby=${id}>
619
+ <div class="vds-menu-section-title">
620
+ <header id=${id}>${label}</header>
621
+ ${value ? html`<div class="vds-menu-section-value">${value}</div>` : null}
622
+ </div>
623
+ <div class="vds-menu-section-body">${children}</div>
624
+ </section>
625
+ `;
626
+ }
627
+ function DefaultMenuItem({ label, children }) {
628
+ return html`
629
+ <div class="vds-menu-item">
630
+ <div class="vds-menu-item-label">${label}</div>
631
+ ${children}
632
+ </div>
633
+ `;
634
+ }
635
+ function DefaultMenuButton({
636
+ label,
637
+ icon,
638
+ hint
639
+ }) {
640
+ return html`
641
+ <media-menu-button class="vds-menu-item">
642
+ ${IconSlot("menu-arrow-left", "vds-menu-close-icon")}
643
+ ${icon ? IconSlot(icon, "vds-menu-item-icon") : null}
644
+ <span class="vds-menu-item-label">${$signal(label)}</span>
645
+ <span class="vds-menu-item-hint" data-part="hint">${hint ? $signal(hint) : null} </span>
646
+ ${IconSlot("menu-arrow-right", "vds-menu-open-icon")}
647
+ </media-menu-button>
648
+ `;
649
+ }
650
+ function DefaultRadioGroup({
651
+ value = null,
652
+ options,
653
+ hideLabel = false,
654
+ children = null,
655
+ onChange = null
656
+ }) {
657
+ function renderRadio(option) {
658
+ const { value: value2, label: content } = option;
659
+ return html`
660
+ <media-radio class="vds-radio" value=${value2}>
661
+ ${IconSlot("menu-radio-check")}
662
+ ${!hideLabel ? html`
663
+ <span class="vds-radio-label" data-part="label">
664
+ ${isString(content) ? content : $signal(content)}
665
+ </span>
666
+ ` : null}
667
+ ${isFunction(children) ? children(option) : children}
668
+ </media-radio>
669
+ `;
670
+ }
671
+ return html`
672
+ <media-radio-group
673
+ class="vds-radio-group"
674
+ value=${isString(value) ? value : value ? $signal(value) : ""}
675
+ @change=${onChange}
676
+ >
677
+ ${isArray(options) ? options.map(renderRadio) : $signal(() => options().map(renderRadio))}
678
+ </media-radio-group>
679
+ `;
680
+ }
681
+ function createRadioOptions(entries) {
682
+ return isArray(entries) ? entries.map((entry) => ({ label: entry, value: entry.toLowerCase() })) : Object.keys(entries).map((label) => ({ label, value: entries[label] }));
683
+ }
684
+
685
+ function DefaultSliderParts() {
686
+ return html`
687
+ <div class="vds-slider-track"></div>
688
+ <div class="vds-slider-track-fill vds-slider-track"></div>
689
+ <div class="vds-slider-thumb"></div>
690
+ `;
691
+ }
692
+ function DefaultSliderSteps() {
693
+ return html`
694
+ <media-slider-steps class="vds-slider-steps">
695
+ <template>
696
+ <div class="vds-slider-step"></div>
697
+ </template>
698
+ </media-slider-steps>
699
+ `;
700
+ }
701
+ function DefaultMenuSliderItem({
702
+ label = null,
703
+ value = null,
704
+ upIcon = "",
705
+ downIcon = "",
706
+ children,
707
+ isMin,
708
+ isMax
709
+ }) {
710
+ const hasTitle = label || value, content = [
711
+ downIcon ? IconSlot(downIcon, "down") : null,
712
+ children,
713
+ upIcon ? IconSlot(upIcon, "up") : null
714
+ ];
715
+ return html`
716
+ <div
717
+ class=${`vds-menu-item vds-menu-slider-item${hasTitle ? " group" : ""}`}
718
+ data-min=${$signal(() => isMin() ? "" : null)}
719
+ data-max=${$signal(() => isMax() ? "" : null)}
720
+ >
721
+ ${hasTitle ? html`
722
+ <div class="vds-menu-slider-title">
723
+ ${[
724
+ label ? html`<div>${label}</div>` : null,
725
+ value ? html`<div>${value}</div>` : null
726
+ ]}
727
+ </div>
728
+ <div class="vds-menu-slider-body">${content}</div>
729
+ ` : content}
730
+ </div>
731
+ `;
732
+ }
733
+
734
+ const FONT_SIZE_OPTION_WITH_ICONS = {
735
+ ...FONT_SIZE_OPTION,
736
+ upIcon: "menu-opacity-up",
737
+ downIcon: "menu-opacity-down"
738
+ };
739
+ const FONT_OPACITY_OPTION_WITH_ICONS = {
740
+ ...FONT_OPACITY_OPTION,
741
+ upIcon: "menu-opacity-up",
742
+ downIcon: "menu-opacity-down"
743
+ };
744
+ function DefaultFontMenu() {
745
+ return $signal(() => {
746
+ const { hasCaptions } = useMediaState(), { translations } = useDefaultLayoutContext();
747
+ if (!hasCaptions()) return null;
748
+ return html`
749
+ <media-menu class="vds-font-menu vds-menu">
750
+ ${DefaultMenuButton({
751
+ label: () => i18n(translations, "Caption Styles")
752
+ })}
753
+ <media-menu-items class="vds-menu-items">
754
+ ${[
755
+ DefaultMenuSection({
756
+ label: $i18n(translations, "Font"),
757
+ children: [DefaultFontFamilyMenu(), DefaultFontSizeSlider()]
758
+ }),
759
+ DefaultMenuSection({
760
+ label: $i18n(translations, "Text"),
761
+ children: [
762
+ DefaultTextColorInput(),
763
+ DefaultTextShadowMenu(),
764
+ DefaultTextOpacitySlider()
765
+ ]
766
+ }),
767
+ DefaultMenuSection({
768
+ label: $i18n(translations, "Text Background"),
769
+ children: [DefaultTextBgInput(), DefaultTextBgOpacitySlider()]
770
+ }),
771
+ DefaultMenuSection({
772
+ label: $i18n(translations, "Display Background"),
773
+ children: [DefaultDisplayBgInput(), DefaultDisplayOpacitySlider()]
774
+ }),
775
+ DefaultMenuSection({
776
+ children: [DefaultResetMenuItem()]
777
+ })
778
+ ]}
779
+ </media-menu-items>
780
+ </media-menu>
781
+ `;
782
+ });
783
+ }
784
+ function DefaultFontFamilyMenu() {
785
+ return DefaultFontSetting({
786
+ label: "Family",
787
+ option: FONT_FAMILY_OPTION,
788
+ type: "fontFamily"
789
+ });
790
+ }
791
+ function DefaultFontSizeSlider() {
792
+ return DefaultFontSetting({
793
+ label: "Size",
794
+ option: FONT_SIZE_OPTION_WITH_ICONS,
795
+ type: "fontSize"
796
+ });
797
+ }
798
+ function DefaultTextColorInput() {
799
+ return DefaultFontSetting({
800
+ label: "Color",
801
+ option: FONT_COLOR_OPTION,
802
+ type: "textColor"
803
+ });
804
+ }
805
+ function DefaultTextOpacitySlider() {
806
+ return DefaultFontSetting({
807
+ label: "Opacity",
808
+ option: FONT_OPACITY_OPTION_WITH_ICONS,
809
+ type: "textOpacity"
810
+ });
811
+ }
812
+ function DefaultTextShadowMenu() {
813
+ return DefaultFontSetting({
814
+ label: "Shadow",
815
+ option: FONT_TEXT_SHADOW_OPTION,
816
+ type: "textShadow"
817
+ });
818
+ }
819
+ function DefaultTextBgInput() {
820
+ return DefaultFontSetting({
821
+ label: "Color",
822
+ option: FONT_COLOR_OPTION,
823
+ type: "textBg"
824
+ });
825
+ }
826
+ function DefaultTextBgOpacitySlider() {
827
+ return DefaultFontSetting({
828
+ label: "Opacity",
829
+ option: FONT_OPACITY_OPTION_WITH_ICONS,
830
+ type: "textBgOpacity"
831
+ });
832
+ }
833
+ function DefaultDisplayBgInput() {
834
+ return DefaultFontSetting({
835
+ label: "Color",
836
+ option: FONT_COLOR_OPTION,
837
+ type: "displayBg"
838
+ });
839
+ }
840
+ function DefaultDisplayOpacitySlider() {
841
+ return DefaultFontSetting({
842
+ label: "Opacity",
843
+ option: FONT_OPACITY_OPTION_WITH_ICONS,
844
+ type: "displayBgOpacity"
845
+ });
846
+ }
847
+ function DefaultResetMenuItem() {
848
+ const { translations } = useDefaultLayoutContext(), $label = () => i18n(translations, "Reset");
849
+ return html`
850
+ <button class="vds-menu-item" role="menuitem" @click=${onFontReset}>
851
+ <span class="vds-menu-item-label">${$signal($label)}</span>
852
+ </button>
853
+ `;
854
+ }
855
+ function DefaultFontSetting({ label, option, type }) {
856
+ const { player } = useMediaContext(), { translations } = useDefaultLayoutContext(), $currentValue = FONT_SIGNALS[type], $label = () => i18n(translations, label);
857
+ function notify() {
858
+ tick();
859
+ player.dispatchEvent(new Event("vds-font-change"));
860
+ }
861
+ if (option.type === "color") {
862
+ let onColorChange2 = function(event) {
863
+ $currentValue.set(event.target.value);
864
+ notify();
865
+ };
866
+ return DefaultMenuItem({
867
+ label: $signal($label),
868
+ children: html`
869
+ <input
870
+ class="vds-color-picker"
871
+ type="color"
872
+ .value=${$signal($currentValue)}
873
+ @input=${onColorChange2}
874
+ />
875
+ `
876
+ });
877
+ }
878
+ if (option.type === "slider") {
879
+ let onSliderValueChange2 = function(event) {
880
+ $currentValue.set(event.detail + "%");
881
+ notify();
882
+ };
883
+ const { min, max, step, upIcon, downIcon } = option;
884
+ return DefaultMenuSliderItem({
885
+ label: $signal($label),
886
+ value: $signal($currentValue),
887
+ upIcon,
888
+ downIcon,
889
+ isMin: () => $currentValue() === min + "%",
890
+ isMax: () => $currentValue() === max + "%",
891
+ children: html`
892
+ <media-slider
893
+ class="vds-slider"
894
+ min=${min}
895
+ max=${max}
896
+ step=${step}
897
+ key-step=${step}
898
+ .value=${$signal(() => parseInt($currentValue()))}
899
+ aria-label=${$signal($label)}
900
+ @value-change=${onSliderValueChange2}
901
+ @drag-value-change=${onSliderValueChange2}
902
+ >
903
+ ${DefaultSliderParts()}${DefaultSliderSteps()}
904
+ </media-slider>
905
+ `
906
+ });
907
+ }
908
+ const radioOptions = createRadioOptions(option.values), $hint = () => {
909
+ const value = $currentValue(), label2 = radioOptions.find((radio) => radio.value === value)?.label || "";
910
+ return i18n(translations, isString(label2) ? label2 : label2());
911
+ };
912
+ return html`
913
+ <media-menu class=${`vds-${camelToKebabCase(type)}-menu vds-menu`}>
914
+ ${DefaultMenuButton({ label: $label, hint: $hint })}
915
+ <media-menu-items class="vds-menu-items">
916
+ ${DefaultRadioGroup({
917
+ value: $currentValue,
918
+ options: radioOptions,
919
+ onChange({ detail: value }) {
920
+ $currentValue.set(value);
921
+ notify();
922
+ }
923
+ })}
924
+ </media-menu-items>
925
+ </media-menu>
926
+ `;
927
+ }
928
+
929
+ function DefaultMenuCheckbox({
930
+ label,
931
+ checked,
932
+ defaultChecked = false,
933
+ storageKey,
934
+ onChange
935
+ }) {
936
+ const { translations } = useDefaultLayoutContext(), savedValue = storageKey ? localStorage.getItem(storageKey) : null, $checked = signal(!!(savedValue ?? defaultChecked)), $active = signal(false), $ariaChecked = $signal($ariaBool($checked)), $label = $i18n(translations, label);
937
+ if (storageKey) onChange(peek($checked));
938
+ if (checked) {
939
+ effect(() => void $checked.set(checked()));
940
+ }
941
+ function onPress(event) {
942
+ if (event?.button === 1) return;
943
+ $checked.set((checked2) => !checked2);
944
+ if (storageKey) localStorage.setItem(storageKey, $checked() ? "1" : "");
945
+ onChange($checked(), event);
946
+ $active.set(false);
947
+ }
948
+ function onKeyDown(event) {
949
+ if (isKeyboardClick(event)) onPress();
950
+ }
951
+ function onActive(event) {
952
+ if (event.button !== 0) return;
953
+ $active.set(true);
954
+ }
955
+ return html`
956
+ <div
957
+ class="vds-menu-checkbox"
958
+ role="menuitemcheckbox"
959
+ tabindex="0"
960
+ aria-label=${$label}
961
+ aria-checked=${$ariaChecked}
962
+ data-active=${$signal(() => $active() ? "" : null)}
963
+ @pointerup=${onPress}
964
+ @pointerdown=${onActive}
965
+ @keydown=${onKeyDown}
966
+ ></div>
967
+ `;
968
+ }
969
+
970
+ function DefaultAccessibilityMenu() {
971
+ return $signal(() => {
972
+ const { translations } = useDefaultLayoutContext();
973
+ return html`
974
+ <media-menu class="vds-accessibility-menu vds-menu">
975
+ ${DefaultMenuButton({
976
+ label: () => i18n(translations, "Accessibility"),
977
+ icon: "menu-accessibility"
978
+ })}
979
+ <media-menu-items class="vds-menu-items">
980
+ ${[
981
+ DefaultMenuSection({
982
+ children: [
983
+ DefaultAnnouncementsMenuCheckbox(),
984
+ DefaultKeyboardAnimationsMenuCheckbox()
985
+ ]
986
+ }),
987
+ DefaultMenuSection({
988
+ children: [DefaultFontMenu()]
989
+ })
990
+ ]}
991
+ </media-menu-items>
992
+ </media-menu>
993
+ `;
994
+ });
995
+ }
996
+ function DefaultAnnouncementsMenuCheckbox() {
997
+ const { userPrefersAnnouncements, translations } = useDefaultLayoutContext(), label = "Announcements";
998
+ return DefaultMenuItem({
999
+ label: $i18n(translations, label),
1000
+ children: DefaultMenuCheckbox({
1001
+ label,
1002
+ storageKey: "vds-player::announcements",
1003
+ onChange(checked) {
1004
+ userPrefersAnnouncements.set(checked);
1005
+ }
1006
+ })
1007
+ });
1008
+ }
1009
+ function DefaultKeyboardAnimationsMenuCheckbox() {
1010
+ return $signal(() => {
1011
+ const { translations, userPrefersKeyboardAnimations, noKeyboardAnimations } = useDefaultLayoutContext(), { viewType } = useMediaState(), $disabled = computed(() => viewType() !== "video" || noKeyboardAnimations());
1012
+ if ($disabled()) return null;
1013
+ const label = "Keyboard Animations";
1014
+ return DefaultMenuItem({
1015
+ label: $i18n(translations, label),
1016
+ children: DefaultMenuCheckbox({
1017
+ label,
1018
+ defaultChecked: true,
1019
+ storageKey: "vds-player::keyboard-animations",
1020
+ onChange(checked) {
1021
+ userPrefersKeyboardAnimations.set(checked);
1022
+ }
1023
+ })
1024
+ });
1025
+ });
1026
+ }
1027
+
1028
+ function DefaultAudioMenu() {
1029
+ return $signal(() => {
1030
+ const { noAudioGain, translations } = useDefaultLayoutContext(), { audioTracks, canSetAudioGain } = useMediaState(), $disabled = computed(() => {
1031
+ const hasGainSlider = canSetAudioGain() && !noAudioGain();
1032
+ return !hasGainSlider && audioTracks().length <= 1;
1033
+ });
1034
+ if ($disabled()) return null;
1035
+ return html`
1036
+ <media-menu class="vds-audio-menu vds-menu">
1037
+ ${DefaultMenuButton({
1038
+ label: () => i18n(translations, "Audio"),
1039
+ icon: "menu-audio"
1040
+ })}
1041
+ <media-menu-items class="vds-menu-items">
1042
+ ${[DefaultAudioTracksMenu(), DefaultAudioBoostSection()]}
1043
+ </media-menu-items>
1044
+ </media-menu>
1045
+ `;
1046
+ });
1047
+ }
1048
+ function DefaultAudioTracksMenu() {
1049
+ return $signal(() => {
1050
+ const { translations } = useDefaultLayoutContext(), { audioTracks } = useMediaState(), $defaultText = $i18n(translations, "Default"), $disabled = computed(() => audioTracks().length <= 1);
1051
+ if ($disabled()) return null;
1052
+ return DefaultMenuSection({
1053
+ children: html`
1054
+ <media-menu class="vds-audio-tracks-menu vds-menu">
1055
+ ${DefaultMenuButton({
1056
+ label: () => i18n(translations, "Track")
1057
+ })}
1058
+ <media-menu-items class="vds-menu-items">
1059
+ <media-audio-radio-group
1060
+ class="vds-audio-track-radio-group vds-radio-group"
1061
+ empty-label=${$defaultText}
1062
+ >
1063
+ <template>
1064
+ <media-radio class="vds-audio-track-radio vds-radio">
1065
+ <slot name="menu-radio-check-icon" data-class="vds-icon"></slot>
1066
+ <span class="vds-radio-label" data-part="label"></span>
1067
+ </media-radio>
1068
+ </template>
1069
+ </media-audio-radio-group>
1070
+ </media-menu-items>
1071
+ </media-menu>
1072
+ `
1073
+ });
1074
+ });
1075
+ }
1076
+ function DefaultAudioBoostSection() {
1077
+ return $signal(() => {
1078
+ const { noAudioGain, translations } = useDefaultLayoutContext(), { canSetAudioGain } = useMediaState(), $disabled = computed(() => !canSetAudioGain() || noAudioGain());
1079
+ if ($disabled()) return null;
1080
+ const { audioGain } = useMediaState();
1081
+ return DefaultMenuSection({
1082
+ label: $i18n(translations, "Boost"),
1083
+ value: $signal(() => Math.round(((audioGain() ?? 1) - 1) * 100) + "%"),
1084
+ children: [
1085
+ DefaultMenuSliderItem({
1086
+ upIcon: "menu-audio-boost-up",
1087
+ downIcon: "menu-audio-boost-down",
1088
+ children: DefaultAudioGainSlider(),
1089
+ isMin: () => ((audioGain() ?? 1) - 1) * 100 <= getGainMin(),
1090
+ isMax: () => ((audioGain() ?? 1) - 1) * 100 === getGainMax()
1091
+ })
1092
+ ]
1093
+ });
1094
+ });
1095
+ }
1096
+ function DefaultAudioGainSlider() {
1097
+ const { translations } = useDefaultLayoutContext(), $label = $i18n(translations, "Boost"), $min = getGainMin, $max = getGainMax, $step = getGainStep;
1098
+ return html`
1099
+ <media-audio-gain-slider
1100
+ class="vds-audio-gain-slider vds-slider"
1101
+ aria-label=${$label}
1102
+ min=${$signal($min)}
1103
+ max=${$signal($max)}
1104
+ step=${$signal($step)}
1105
+ key-step=${$signal($step)}
1106
+ >
1107
+ ${DefaultSliderParts()}${DefaultSliderSteps()}
1108
+ </media-audio-gain-slider>
1109
+ `;
1110
+ }
1111
+ function getGainMin() {
1112
+ const { audioGains } = useDefaultLayoutContext(), gains = audioGains();
1113
+ return isArray(gains) ? gains[0] ?? 0 : gains.min;
1114
+ }
1115
+ function getGainMax() {
1116
+ const { audioGains } = useDefaultLayoutContext(), gains = audioGains();
1117
+ return isArray(gains) ? gains[gains.length - 1] ?? 300 : gains.max;
1118
+ }
1119
+ function getGainStep() {
1120
+ const { audioGains } = useDefaultLayoutContext(), gains = audioGains();
1121
+ return isArray(gains) ? gains[1] - gains[0] || 25 : gains.step;
1122
+ }
1123
+
1124
+ function DefaultCaptionsMenu() {
1125
+ return $signal(() => {
1126
+ const { translations } = useDefaultLayoutContext(), { hasCaptions, textTracks } = useMediaState(), $offText = $i18n(translations, "Off");
1127
+ if (!hasCaptions()) return null;
1128
+ return html`
1129
+ <media-menu class="vds-captions-menu vds-menu">
1130
+ ${DefaultMenuButton({
1131
+ label: () => i18n(translations, "Captions"),
1132
+ icon: "menu-captions"
1133
+ })}
1134
+ <media-menu-items class="vds-menu-items">
1135
+ <media-captions-radio-group
1136
+ class="vds-captions-radio-group vds-radio-group"
1137
+ off-label=${$offText}
1138
+ >
1139
+ <template>
1140
+ <media-radio class="vds-caption-radio vds-radio">
1141
+ <slot name="menu-radio-check-icon" data-class="vds-icon"></slot>
1142
+ <span class="vds-caption-flag" data-part="flag"></span>
1143
+ <span class="vds-radio-label" data-part="label"></span>
1144
+ </media-radio>
1145
+ </template>
1146
+ </media-captions-radio-group>
1147
+ </media-menu-items>
1148
+ </media-menu>
1149
+ `;
1150
+ });
1151
+ }
1152
+
1153
+ function DefaultPlaybackMenu() {
1154
+ return $signal(() => {
1155
+ const { translations } = useDefaultLayoutContext();
1156
+ return html`
1157
+ <media-menu class="vds-playback-menu vds-menu">
1158
+ ${DefaultMenuButton({
1159
+ label: () => i18n(translations, "Playback"),
1160
+ icon: "menu-playback"
1161
+ })}
1162
+ <media-menu-items class="vds-menu-items">
1163
+ ${[
1164
+ DefaultMenuSection({
1165
+ children: DefaultLoopCheckbox()
1166
+ }),
1167
+ DefaultSpeedMenuSection(),
1168
+ DefaultQualityMenuSection()
1169
+ ]}
1170
+ </media-menu-items>
1171
+ </media-menu>
1172
+ `;
1173
+ });
1174
+ }
1175
+ function DefaultLoopCheckbox() {
1176
+ const { remote } = useMediaContext(), { translations } = useDefaultLayoutContext(), label = "Loop";
1177
+ return DefaultMenuItem({
1178
+ label: $i18n(translations, label),
1179
+ children: DefaultMenuCheckbox({
1180
+ label,
1181
+ storageKey: "vds-player::user-loop",
1182
+ onChange(checked, trigger) {
1183
+ remote.userPrefersLoopChange(checked, trigger);
1184
+ }
1185
+ })
1186
+ });
1187
+ }
1188
+ function DefaultSpeedMenuSection() {
1189
+ return $signal(() => {
1190
+ const { translations } = useDefaultLayoutContext(), { canSetPlaybackRate, playbackRate } = useMediaState();
1191
+ if (!canSetPlaybackRate()) return null;
1192
+ return DefaultMenuSection({
1193
+ label: $i18n(translations, "Speed"),
1194
+ value: $signal(
1195
+ () => playbackRate() === 1 ? i18n(translations, "Normal") : playbackRate() + "x"
1196
+ ),
1197
+ children: [
1198
+ DefaultMenuSliderItem({
1199
+ upIcon: "menu-speed-up",
1200
+ downIcon: "menu-speed-down",
1201
+ children: DefaultSpeedSlider(),
1202
+ isMin: () => playbackRate() === getSpeedMin(),
1203
+ isMax: () => playbackRate() === getSpeedMax()
1204
+ })
1205
+ ]
1206
+ });
1207
+ });
1208
+ }
1209
+ function getSpeedMin() {
1210
+ const { playbackRates } = useDefaultLayoutContext(), rates = playbackRates();
1211
+ return isArray(rates) ? rates[0] ?? 0 : rates.min;
1212
+ }
1213
+ function getSpeedMax() {
1214
+ const { playbackRates } = useDefaultLayoutContext(), rates = playbackRates();
1215
+ return isArray(rates) ? rates[rates.length - 1] ?? 2 : rates.max;
1216
+ }
1217
+ function getSpeedStep() {
1218
+ const { playbackRates } = useDefaultLayoutContext(), rates = playbackRates();
1219
+ return isArray(rates) ? rates[1] - rates[0] || 0.25 : rates.step;
1220
+ }
1221
+ function DefaultSpeedSlider() {
1222
+ const { translations } = useDefaultLayoutContext(), $label = $i18n(translations, "Speed"), $min = getSpeedMin, $max = getSpeedMax, $step = getSpeedStep;
1223
+ return html`
1224
+ <media-speed-slider
1225
+ class="vds-speed-slider vds-slider"
1226
+ aria-label=${$label}
1227
+ min=${$signal($min)}
1228
+ max=${$signal($max)}
1229
+ step=${$signal($step)}
1230
+ key-step=${$signal($step)}
1231
+ >
1232
+ ${DefaultSliderParts()}${DefaultSliderSteps()}
1233
+ </media-speed-slider>
1234
+ `;
1235
+ }
1236
+ function DefaultAutoQualityCheckbox() {
1237
+ const { remote, qualities } = useMediaContext(), { autoQuality, canSetQuality, qualities: $qualities } = useMediaState(), { translations } = useDefaultLayoutContext(), label = "Auto", $disabled = computed(() => !canSetQuality() || $qualities().length <= 1);
1238
+ if ($disabled()) return null;
1239
+ return DefaultMenuItem({
1240
+ label: $i18n(translations, label),
1241
+ children: DefaultMenuCheckbox({
1242
+ label,
1243
+ checked: autoQuality,
1244
+ onChange(checked, trigger) {
1245
+ if (checked) {
1246
+ remote.requestAutoQuality(trigger);
1247
+ } else {
1248
+ remote.changeQuality(qualities.selectedIndex, trigger);
1249
+ }
1250
+ }
1251
+ })
1252
+ });
1253
+ }
1254
+ function DefaultQualityMenuSection() {
1255
+ return $signal(() => {
1256
+ const { hideQualityBitrate, translations } = useDefaultLayoutContext(), { canSetQuality, qualities, quality } = useMediaState(), $disabled = computed(() => !canSetQuality() || qualities().length <= 1), $sortedQualities = computed(() => sortVideoQualities(qualities()));
1257
+ if ($disabled()) return null;
1258
+ return DefaultMenuSection({
1259
+ label: $i18n(translations, "Quality"),
1260
+ value: $signal(() => {
1261
+ const height = quality()?.height, bitrate = !hideQualityBitrate() ? quality()?.bitrate : null, bitrateText = bitrate && bitrate > 0 ? `${(bitrate / 1e6).toFixed(2)} Mbps` : null, autoText = i18n(translations, "Auto");
1262
+ return height ? `${height}p${bitrateText ? ` (${bitrateText})` : ""}` : autoText;
1263
+ }),
1264
+ children: [
1265
+ DefaultMenuSliderItem({
1266
+ upIcon: "menu-quality-up",
1267
+ downIcon: "menu-quality-down",
1268
+ children: DefaultQualitySlider(),
1269
+ isMin: () => $sortedQualities()[0] === quality(),
1270
+ isMax: () => $sortedQualities().at(-1) === quality()
1271
+ }),
1272
+ DefaultAutoQualityCheckbox()
1273
+ ]
1274
+ });
1275
+ });
1276
+ }
1277
+ function DefaultQualitySlider() {
1278
+ const { translations } = useDefaultLayoutContext(), $label = $i18n(translations, "Quality");
1279
+ return html`
1280
+ <media-quality-slider class="vds-quality-slider vds-slider" aria-label=${$label}>
1281
+ ${DefaultSliderParts()}${DefaultSliderSteps()}
1282
+ </media-quality-slider>
1283
+ `;
1284
+ }
1285
+
1286
+ function DefaultSettingsMenu({
1287
+ placement,
1288
+ portal,
1289
+ tooltip
1290
+ }) {
1291
+ return $signal(() => {
1292
+ const { viewType } = useMediaState(), {
1293
+ translations,
1294
+ menuPortal,
1295
+ noModal,
1296
+ menuGroup,
1297
+ smallWhen: smWhen
1298
+ } = useDefaultLayoutContext(), $placement = computed(
1299
+ () => noModal() ? unwrap(placement) : !smWhen() ? unwrap(placement) : null
1300
+ ), $offset = computed(
1301
+ () => !smWhen() && menuGroup() === "bottom" && viewType() === "video" ? 26 : 0
1302
+ ), $isOpen = signal(false);
1303
+ updateFontCssVars();
1304
+ function onOpen() {
1305
+ $isOpen.set(true);
1306
+ }
1307
+ function onClose() {
1308
+ $isOpen.set(false);
1309
+ }
1310
+ const items = html`
1311
+ <media-menu-items
1312
+ class="vds-settings-menu-items vds-menu-items"
1313
+ placement=${$signal($placement)}
1314
+ offset=${$signal($offset)}
1315
+ >
1316
+ ${$signal(() => {
1317
+ if (!$isOpen()) {
1318
+ return null;
1319
+ }
1320
+ return [
1321
+ DefaultPlaybackMenu(),
1322
+ DefaultAccessibilityMenu(),
1323
+ DefaultAudioMenu(),
1324
+ DefaultCaptionsMenu()
1325
+ ];
1326
+ })}
1327
+ </media-menu-items>
1328
+ `;
1329
+ return html`
1330
+ <media-menu class="vds-settings-menu vds-menu" @open=${onOpen} @close=${onClose}>
1331
+ <media-tooltip class="vds-tooltip">
1332
+ <media-tooltip-trigger>
1333
+ <media-menu-button
1334
+ class="vds-menu-button vds-button"
1335
+ aria-label=${$i18n(translations, "Settings")}
1336
+ >
1337
+ ${IconSlot("menu-settings", "vds-rotate-icon")}
1338
+ </media-menu-button>
1339
+ </media-tooltip-trigger>
1340
+ <media-tooltip-content
1341
+ class="vds-tooltip-content"
1342
+ placement=${isFunction(tooltip) ? $signal(tooltip) : tooltip}
1343
+ >
1344
+ ${$i18n(translations, "Settings")}
1345
+ </media-tooltip-content>
1346
+ </media-tooltip>
1347
+ ${MenuPortal(menuPortal, items) }
1348
+ </media-menu>
1349
+ `;
1350
+ });
1351
+ }
1352
+
1353
+ function DefaultVolumePopup({
1354
+ orientation,
1355
+ tooltip
1356
+ }) {
1357
+ return $signal(() => {
1358
+ const { pointer, muted, canSetVolume } = useMediaState();
1359
+ if (pointer() === "coarse" && !muted()) return null;
1360
+ if (!canSetVolume()) {
1361
+ return DefaultMuteButton({ tooltip });
1362
+ }
1363
+ const $rootRef = signal(void 0), $isRootActive = useActive($rootRef);
1364
+ return html`
1365
+ <div class="vds-volume" ?data-active=${$signal($isRootActive)} ${ref($rootRef.set)}>
1366
+ ${DefaultMuteButton({ tooltip })}
1367
+ <div class="vds-volume-popup">${DefaultVolumeSlider({ orientation })}</div>
1368
+ </div>
1369
+ `;
1370
+ });
1371
+ }
1372
+ function DefaultVolumeSlider({ orientation } = {}) {
1373
+ const { translations } = useDefaultLayoutContext(), $label = $i18n(translations, "Volume");
1374
+ return html`
1375
+ <media-volume-slider
1376
+ class="vds-volume-slider vds-slider"
1377
+ aria-label=${$label}
1378
+ orientation=${ifDefined(orientation)}
1379
+ >
1380
+ <div class="vds-slider-track"></div>
1381
+ <div class="vds-slider-track-fill vds-slider-track"></div>
1382
+ <media-slider-preview class="vds-slider-preview" no-clamp>
1383
+ <media-slider-value class="vds-slider-value"></media-slider-value>
1384
+ </media-slider-preview>
1385
+ <div class="vds-slider-thumb"></div>
1386
+ </media-volume-slider>
1387
+ `;
1388
+ }
1389
+ function DefaultTimeSlider() {
1390
+ const $ref = signal(void 0), $width = signal(0), {
1391
+ thumbnails,
1392
+ translations,
1393
+ sliderChaptersMinWidth,
1394
+ disableTimeSlider,
1395
+ seekStep,
1396
+ noScrubGesture
1397
+ } = useDefaultLayoutContext(), $label = $i18n(translations, "Seek"), $isDisabled = $signal(disableTimeSlider), $isChaptersDisabled = $signal(() => $width() < sliderChaptersMinWidth()), $thumbnails = $signal(thumbnails);
1398
+ useResizeObserver($ref, () => {
1399
+ const el = $ref();
1400
+ el && $width.set(el.clientWidth);
1401
+ });
1402
+ return html`
1403
+ <media-time-slider
1404
+ class="vds-time-slider vds-slider"
1405
+ aria-label=${$label}
1406
+ key-step=${$signal(seekStep)}
1407
+ ?disabled=${$isDisabled}
1408
+ ?no-swipe-gesture=${$signal(noScrubGesture)}
1409
+ ${ref($ref.set)}
1410
+ >
1411
+ <media-slider-chapters class="vds-slider-chapters" ?disabled=${$isChaptersDisabled}>
1412
+ <template>
1413
+ <div class="vds-slider-chapter">
1414
+ <div class="vds-slider-track"></div>
1415
+ <div class="vds-slider-track-fill vds-slider-track"></div>
1416
+ <div class="vds-slider-progress vds-slider-track"></div>
1417
+ </div>
1418
+ </template>
1419
+ </media-slider-chapters>
1420
+ <div class="vds-slider-thumb"></div>
1421
+ <media-slider-preview class="vds-slider-preview">
1422
+ <media-slider-thumbnail
1423
+ class="vds-slider-thumbnail vds-thumbnail"
1424
+ .src=${$thumbnails}
1425
+ ></media-slider-thumbnail>
1426
+ <div class="vds-slider-chapter-title" data-part="chapter-title"></div>
1427
+ <media-slider-value class="vds-slider-value"></media-slider-value>
1428
+ </media-slider-preview>
1429
+ </media-time-slider>
1430
+ `;
1431
+ }
1432
+
1433
+ function DefaultTimeGroup() {
1434
+ return html`
1435
+ <div class="vds-time-group">
1436
+ ${$signal(() => {
1437
+ const { duration } = useMediaState();
1438
+ if (!duration()) return null;
1439
+ return [
1440
+ html`<media-time class="vds-time" type="current"></media-time>`,
1441
+ html`<div class="vds-time-divider">/</div>`,
1442
+ html`<media-time class="vds-time" type="duration"></media-time>`
1443
+ ];
1444
+ })}
1445
+ </div>
1446
+ `;
1447
+ }
1448
+ function DefaultTimeInvert() {
1449
+ return $signal(() => {
1450
+ const { live, duration } = useMediaState();
1451
+ return live() ? DefaultLiveButton() : duration() ? html`<media-time class="vds-time" type="current" toggle remainder></media-time>` : null;
1452
+ });
1453
+ }
1454
+ function DefaultTimeInfo() {
1455
+ return $signal(() => {
1456
+ const { live } = useMediaState();
1457
+ return live() ? DefaultLiveButton() : DefaultTimeGroup();
1458
+ });
1459
+ }
1460
+
1461
+ function DefaultTitle() {
1462
+ return $signal(() => {
1463
+ const { textTracks } = useMediaContext(), { title, started } = useMediaState(), $hasChapters = signal(null);
1464
+ watchActiveTextTrack(textTracks, "chapters", $hasChapters.set);
1465
+ return $hasChapters() && (started() || !title()) ? DefaultChapterTitle() : html`<media-title class="vds-chapter-title"></media-title>`;
1466
+ });
1467
+ }
1468
+ function DefaultChapterTitle() {
1469
+ return html`<media-chapter-title class="vds-chapter-title"></media-chapter-title>`;
1470
+ }
1471
+
1472
+ class DefaultLayoutIconsLoader extends LayoutIconsLoader {
1473
+ async loadIcons() {
1474
+ const paths = (await import('./vidstack-BQSA-Rux.js')).icons, icons = {};
1475
+ for (const iconName of Object.keys(paths)) {
1476
+ icons[iconName] = Icon({ name: iconName, paths: paths[iconName] });
1477
+ }
1478
+ return icons;
1479
+ }
1480
+ }
1481
+
1482
+ export { DefaultAirPlayButton, DefaultAnnouncer, DefaultCaptionButton, DefaultCaptions, DefaultChapterTitle, DefaultChaptersMenu, DefaultControlsSpacer, DefaultDownloadButton, DefaultEpisodeButton, DefaultFullscreenButton, DefaultLayout, DefaultLayoutIconsLoader, DefaultPIPButton, DefaultPlayButton, DefaultSeekButton, DefaultSettingsMenu, DefaultTimeInfo, DefaultTimeInvert, DefaultTimeSlider, DefaultTitle, DefaultVolumePopup, createMenuContainer, i18n, setLayoutName, useDefaultLayoutContext };